/* prototype-emergeia/assets/css/components.css */

/* ---- 全局链接：一律去除下划线 ---- */
a, a:hover, a:focus, a:active { text-decoration: none; }

/* ---- Page frame ---- */
.page-frame { max-width: 1160px; margin: 0 auto; margin-top: 0; margin-bottom: 48px; }

/* ---- Header ---- */
.ph-header { position:sticky; top:0; z-index:50; background:rgba(255,255,255,.72); backdrop-filter:saturate(180%) blur(16px); -webkit-backdrop-filter:saturate(180%) blur(16px); border-bottom:1px solid transparent; transition:border-color .25s ease, background .25s ease; }
.ph-header.scrolled { border-bottom-color:var(--line); background:rgba(255,255,255,.9); }
.ph-header-inner { max-width:1160px; margin:0 auto; padding:14px 24px; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.ph-left { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.logo-mark { display:flex; align-items:center; gap:7px; text-decoration:none; }
.logo-icon { width:24px; height:24px; display:block; }
.ph-logo { font-size: 18px; font-weight: 800; letter-spacing: -0.01em; color: var(--accent); line-height:1; display:flex; align-items:center; height:24px; }
.ph-slogan { font-size: 14px; color: var(--muted); font-weight: 500; border-left: 1px solid var(--line); padding-left: 12px; white-space:nowrap; line-height:1; display:flex; align-items:center; height:24px; }
.ph-nav { display:flex; gap: 2px; flex-wrap:wrap; }
.ph-nav a { font-size: 14px; font-weight: 500; color: var(--muted); text-decoration:none; white-space:nowrap; padding: 8px 13px; border-radius: 8px; transition: color .15s ease, background .15s ease; }
.ph-nav a:hover { color: var(--text); background: rgba(0,0,0,.04); }
.ph-nav a.active { color: var(--accent); }
.ph-right { display:flex; align-items:center; gap: 14px; flex-shrink:0; }
.header-search-wrap { position:relative; }
.header-search { width: 200px; padding: 7px 38px 7px 32px; border-radius: var(--radius-pill); border:1px solid var(--line); font-size:13px; color:var(--text); background:var(--surface); font-family:inherit; outline:none; transition: width .15s, border-color .15s, background .15s; }
.header-search:focus { width: 260px; border-color: var(--accent); background:var(--bg); }
.header-search::placeholder { color: var(--muted-2); }
.header-search-icon { position:absolute; left:11px; top:50%; transform:translateY(-50%); width:13px; height:13px; pointer-events:none; }
.header-search-send { position:absolute; right:3px; top:50%; transform:translateY(-50%); width:26px; height:26px; border-radius:9999px; border:none; background:var(--accent); color:var(--bg); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition: transform .15s ease; }
.header-search-send:hover { transform: translateY(-50%) scale(1.06); }
.ph-actions { display:flex; gap: 8px; }
.btn-icon { flex-shrink:0; }
.btn-outline { display:inline-flex; align-items:center; gap:6px; font-size: 13px; font-weight: 600; padding: 7px 16px; border-radius: var(--radius-pill); border: 1px solid var(--accent); background:var(--bg); color: var(--accent); text-decoration:none; cursor:pointer; transition: background .15s ease, transform .15s ease, box-shadow .15s ease; }
.btn-outline:hover { background: var(--accent-soft); transform: translateY(-1px); box-shadow: 0 6px 16px -6px rgba(var(--accent-rgb, 77,107,254), .35); }
.btn-solid { display:inline-flex; align-items:center; gap:6px; font-size: 13px; font-weight: 600; padding: 7px 16px; border-radius: var(--radius-pill); border: none; background: var(--grad-brand-btn); color: var(--bg); text-decoration:none; box-shadow: var(--shadow-btn); cursor:pointer; transition: transform .15s ease, box-shadow .15s ease; }
.btn-solid:hover { color: var(--bg); transform: translateY(-1px); box-shadow: var(--shadow-btn-hover); }

/* ---- Filter block ---- */
.filter-block { position:relative; overflow:hidden; background: var(--bg); padding: 22px 24px 24px; display:flex; flex-direction:column; gap:16px; }
.filter-glow { position:absolute; top:0; left:0; right:0; height:190px; pointer-events:none; z-index:0; filter:blur(2px); background: radial-gradient(ellipse 65% 100% at 38% -8%, rgba(var(--accent-rgb),.20), transparent 65%), radial-gradient(ellipse 50% 90% at 70% -4%, rgba(var(--accent-rgb),.13), transparent 65%); }
.filter-line { position:relative; z-index:1; display:flex; align-items:flex-start; gap: 20px; flex-wrap:wrap; }
.filter-label { font-size: 11px; font-weight:600; color: var(--muted-2); text-transform:uppercase; letter-spacing:.08em; width: 56px; flex-shrink:0; }
.city-row { display:flex; gap: 18px; flex-wrap:wrap; flex:1 1 0%; min-width:0; }
.city-btn { font-size: 13px; padding-bottom:3px; background:none; border:none; border-bottom:2px solid transparent; color: var(--muted); font-family:inherit; }
.city-btn.active { color: var(--accent); font-weight:700; border-bottom-color: var(--accent); }
.track-row { display:flex; gap: 18px; flex-wrap:wrap; flex:1 1 0%; min-width:0; }
.track-chip { display:flex; align-items:center; gap:6px; font-size:13px; padding-bottom:3px; border-bottom:2px solid transparent; color: var(--muted); background:none; border-left:none; border-right:none; border-top:none; font-family:inherit; }
.track-chip .dot { width:6px; height:6px; border-radius:9999px; background:var(--accent); display:none; }
.track-chip.active { color: var(--accent); font-weight:700; border-bottom-color: var(--accent); }
.subtag-row { display:flex; gap:8px; flex-wrap:wrap; flex:1 1 0%; min-width:0; }
.subtag { display:inline-block; flex-shrink:0; font-size: 11px; padding: 3px 10px 3px 0px; border-bottom:2px solid transparent; background:none; border-left:none; border-right:none; border-top:none; color: var(--text); text-transform:uppercase; letter-spacing:.05em; cursor:pointer; transition:color .15s ease; white-space:nowrap; }
.subtag.active { color:var(--accent); font-weight:700; border-bottom-color: var(--accent); }
.filter-count { font-size:12px; color:var(--muted-2); margin-left:auto; }

/* ---- Body / view toggle ---- */
.ph-body { padding: 28px 24px 36px; }
.view-toggle { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.result-summary { font-size:14px; color:var(--muted); }
.sop-summary { font-size:14px; color:var(--muted); }
.difficulty-row { display:flex; gap:8px; flex-wrap:wrap; }
.difficulty-tag { display:inline-block; flex-shrink:0; font-size:11px; padding:3px 10px 3px 0px; border-bottom:2px solid transparent; background:none; border-left:none; border-right:none; border-top:none; color:var(--text); text-transform:uppercase; letter-spacing:.05em; cursor:pointer; transition:color .15s ease; white-space:nowrap; }
.difficulty-tag.active { color:var(--accent); font-weight:700; border-bottom-color: var(--accent); }
.sort-tabs { display:flex; gap:6px; }
.sort-tab { font-size:12px; font-weight:500; padding:6px 14px; border-radius:var(--radius-pill); border:1px solid var(--line); background:var(--bg); color:var(--muted); cursor:pointer; transition:color .15s ease, background .15s ease, border-color .15s ease; }
.sort-tab.active { background:var(--accent); color:var(--bg); border-color:var(--accent); }

/* ---- Pills / badges ---- */
.pill { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; padding: 4px 12px; border-radius: var(--radius-pill); background: var(--surface); color: var(--muted); }
.pill.verified { background: var(--accent-soft); color: var(--accent); }
.pill.track-tag { background: var(--surface); color: var(--muted); border:1px solid var(--line); }
.pill.type-community { background:var(--semantic-community-bg); color:var(--semantic-community-fg); }
.pill.type-incubator { background:var(--semantic-incubator-bg); color:var(--semantic-incubator-fg); }
.pill.type-alliance { background:var(--semantic-alliance-bg); color:var(--semantic-alliance-fg); }

/* ---- View A: two independent columns ---- */
.two-col-wrap {
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  position:relative;
  padding: 10px 24px;
}
.two-col-wrap::after { content:""; position:absolute; top:0; bottom:0; left:50%; width:1px; background: var(--line); transform: translateX(-0.5px); }
.idea-col-wrap { padding: 10px 0px; }

/* ---- View A 变体：成功上岸的OPC案例专属圆角方框 + 渐变背景 ---- */
.two-col-wrap.case-two-col {
  border-radius: 24px;
  border: 1px solid var(--line);
  overflow: hidden;
  background:
    radial-gradient(ellipse 55% 60% at 92% 8%, rgba(var(--accent-rgb, 77,107,254), .12), transparent 60%),
    radial-gradient(ellipse 55% 60% at 8% 92%, rgba(var(--accent-rgb, 77,107,254), .10), transparent 60%),
    var(--bg);
}
.col-stack { display:flex; flex-direction:column; padding: 0 35px; }
.col-stack:first-child { padding-left: 0; }
.col-stack:last-child { padding-right: 0; }
.rich-row { display:flex; gap:14px; height:136px; overflow:hidden; padding: 22px 14px; margin: 0 -14px; border-radius: 12px; text-decoration:none; color:inherit; background:none; border:none; border-bottom:1px dashed var(--line); width:calc(100% + 28px); text-align:left; font-family:inherit; cursor:pointer; transition: background .18s ease; }
.col-stack .rich-row:last-child { border-bottom:none; }
.rich-row:hover { background: var(--surface); }
.rich-row:hover .rich-name { color: var(--accent); }
.rich-row:hover .rich-thumb { box-shadow: 0 0 0 1px rgba(var(--accent-rgb),.16); }
.rich-thumb { width: 96px; height: 72px; border-radius:10px; background:var(--surface); flex-shrink:0; position:relative; overflow:hidden; }
.rich-thumb img { width:100%; height:100%; object-fit:cover; }
.rich-thumb--ph { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg, var(--accent-soft) 0%, var(--surface) 100%); color:var(--accent); font-family:var(--font-display); font-size:14px; font-weight:700; letter-spacing:.04em; user-select:none; }
.rich-body { flex:1; min-width:0; display:flex; flex-direction:column; gap:6px; }
.rich-name-row { display:flex; align-items:baseline; gap:6px; }
.rich-name { font-size:14px; font-weight:700; color:var(--text); transition:color .15s ease; }
.rich-batch { font-size:11px; color:var(--muted-2); }
.rich-verified { font-size:11px; font-weight:600; color:var(--muted-2); flex-shrink:0; }
.rich-verified.is-verified { color:var(--accent); }
.rich-desc { font-size:12.5px; color:var(--muted); line-height:1.55; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.rich-tags { display:flex; gap:4px; flex-wrap:wrap; }
.rich-tags span { font-size:10.5px; color:var(--muted-2); background:var(--surface); padding:2px 8px; border-radius:var(--radius-pill); }
.rich-meta { width: 76px; flex-shrink:0; display:flex; flex-direction:column; gap:5px; align-items:flex-end; text-align:right; padding-left:12px; }
.rich-meta .who { font-size:12px; font-weight:600; color:var(--text); }
.rich-meta .revenue { font-size:12px; font-weight:700; color: var(--text); }

/* ---- View B / community cards: grid ---- */
.card-grid, .comm-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.grid-card, .comm-card { border: 1px solid var(--line); border-radius: var(--radius-card); padding: 20px; display:flex; flex-direction:column; gap: 12px; text-decoration:none; color:inherit; transition: transform .2s ease, box-shadow .2s ease; }
.grid-card, .comm-card { background-image: linear-gradient(14deg, var(--bg) 76.81%, var(--accent-soft) 100%); background-repeat: no-repeat; }
.grid-card:hover, .comm-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-lg); }
.grid-top-row, .comm-top { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.grid-name, .comm-name { font-size: 15px; font-weight: 700; color:var(--text); }
.grid-city, .comm-city { font-size: 12px; color: var(--muted-2); margin-top:2px; }
.grid-pitch, .comm-desc { font-size: 13px; color: var(--muted); line-height:1.6; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.grid-tags, .comm-track-row { display:flex; gap:6px; flex-wrap:wrap; }
.grid-bottom { display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:6px; border-top:1px dashed var(--line); }
.grid-revenue { font-size: 13px; font-weight: 700; color:var(--text); }
.comm-stats { display:flex; gap: 16px; padding: 12px 0; border-top:1px dashed var(--line); border-bottom:1px dashed var(--line); }
.comm-stat { display:flex; flex-direction:column; gap:2px; }
.comm-stat .k { font-size: 10.5px; color: var(--muted-2); text-transform:uppercase; letter-spacing:.05em; }
.comm-stat .v { font-size: 13px; font-weight:600; color:var(--text); }
.comm-bottom { display:flex; align-items:center; justify-content:space-between; }
.comm-source { font-size:11px; color: var(--muted-2); }
.join-btn { font-size:12px; padding:6px 14px; border-radius: var(--radius-pill); background: var(--accent); color:var(--bg); border:none; }

/* ---- Pagination ---- */
.pagination { display:flex; align-items:center; justify-content:center; gap:6px; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--line); }
.page-btn { min-width:30px; height:30px; padding:0 8px; border-radius: var(--radius-pill); border:1px solid var(--line); background:var(--bg); color:var(--muted); font-size:12.5px; font-family:inherit; }
.page-btn.active { background:var(--accent); border-color:var(--accent); color:var(--bg); font-weight:700; }
.page-btn:disabled { opacity:0.35; cursor:default; }

/* WordPress the_posts_pagination() 输出 .nav-links / .page-numbers；此处统一 6 个 CPT
 * 归档页的原生分页观感（圆角 pill、hover 描边强调、当前页 accent 实心），贴合原型
 * case.html / idea.html。各分片(opc-idea/opc-list/opc-community).css 不再各自覆盖。 */
.pagination .nav-links { display:flex; align-items:center; justify-content:center; gap:6px; flex-wrap:wrap; }
.pagination .page-numbers { min-width:32px; height:32px; padding:0 12px; display:inline-flex; align-items:center; justify-content:center; border-radius:var(--radius-pill); border:1px solid var(--line); background:var(--bg); color:var(--muted); font-size:12.5px; font-weight:600; text-decoration:none; transition:border-color .15s ease, color .15s ease, background .15s ease; }
.pagination a.page-numbers:hover { border-color:var(--accent); color:var(--accent); }
.pagination .page-numbers.current { background:var(--accent); border-color:var(--accent); color:var(--bg); font-weight:700; }
.pagination .page-numbers.dots { border-color:transparent; background:transparent; }
.pagination .page-numbers.prev, .pagination .page-numbers.next { font-weight:600; }

/* ---- Toast (nav placeholder) ---- */
.toast { position: fixed; left:50%; bottom: 32px; transform: translate(-50%, 16px); background: var(--text); color:var(--bg); font-size:13px; padding: 10px 20px; border-radius: var(--radius-pill); opacity:0; pointer-events:none; transition: opacity .2s, transform .2s; z-index: 999; }
.toast.show { opacity:1; transform: translate(-50%, 0); }

/* ---- Detail pages ---- */
.detail-page { max-width: 1160px; margin: 32px auto 72px; display:grid; grid-template-columns: 1fr 300px; gap: 48px; padding: 0 24px; align-items:start; }
.back-link { display:inline-flex; align-items:center; gap:6px; font-size:12px; color:var(--muted-2); text-decoration:none; margin-bottom:20px; }
.detail-thumb { width:100%; aspect-ratio:16/9; object-fit:cover; border-radius: var(--radius-card); background:var(--surface); margin-bottom:24px; }
.detail-title-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:8px; }
.detail-title { font-family: var(--font-display); font-size:30px; font-weight:700; letter-spacing:-0.01em; color:var(--text); }
.detail-subtitle { font-size:14px; color:var(--muted); line-height:1.7; max-width:560px; margin-bottom:20px; }
.field-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap:20px; padding:22px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-bottom: 32px; }
.field-item .k { font-size:10.5px; color:var(--muted-2); text-transform:uppercase; letter-spacing:.05em; margin-bottom:4px; }
.field-item .v { font-size:14px; font-weight:700; color:var(--text); }
.sb-block { margin-bottom: 36px; }
.sb-label { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--muted-2); margin-bottom: 14px; }
.sb-list-item { display:block; padding: 14px 0; border-bottom: 1px solid var(--line); text-decoration:none; color:inherit; }
.sb-list-item:last-child { border-bottom:none; }
.sb-list-item .name { font-size:13px; color:var(--text); margin-bottom:3px; }
.sb-list-item .desc { font-size:11.5px; color:var(--muted); line-height:1.55; }

/* ---- Forum (互助交流) ---- */
.forum-body { display:grid; grid-template-columns: 180px 1fr; gap:0; }
.forum-sidebar { padding: 20px 16px; border-right:1px solid var(--line); display:flex; flex-direction:column; gap:4px; }
.forum-cat-btn { display:flex; align-items:center; justify-content:space-between; font-size:13px; padding:8px 10px; border-radius:8px; background:none; border:none; color:var(--muted); font-family:inherit; text-align:left; }
.forum-cat-btn.active { color:var(--accent); font-weight:700; background: var(--accent-soft); }
.forum-cat-btn .count { font-size:11px; color:var(--muted-2); }
.forum-cat-btn.active .count { color:var(--accent); }
.forum-main { padding: 18px 24px 28px; }
.forum-toolbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.forum-sort { display:flex; gap:6px; }
.forum-sort button, .forum-sort a { font-size:12px; padding:6px 14px; border-radius:9999px; border:1px solid var(--line); background:var(--bg); color:var(--muted); font-family:inherit; text-decoration:none; display:inline-block; }
.forum-sort button.active, .forum-sort a.active { background:var(--accent); color:var(--bg); border-color:var(--accent); }
.forum-hero { position:relative; overflow:hidden; display:flex; align-items:center; justify-content:space-between; gap:24px; padding: 30px 24px; flex-wrap:wrap; }
.forum-hero-text { position:relative; z-index:1; max-width:520px; }
.forum-hero-title { position:relative; font-family:var(--font-display); font-size:24px; font-weight:700; letter-spacing:-0.01em; color:var(--text); margin:0 0 8px; }
.forum-hero-sub { position:relative; font-size:13.5px; color:var(--muted); line-height:1.6; margin:0; }
.forum-hero-stats { position:relative; z-index:1; display:flex; flex-wrap:wrap; }
.forum-hero-stats > div { display:flex; flex-direction:column; align-items:center; padding:0 20px; }
.forum-hero-stats > div + div { border-left:1px solid var(--line); }
.forum-hero-stats b { font-family:var(--font-display); font-size:20px; font-weight:700; letter-spacing:-.02em; color:var(--accent); line-height:1; }
.forum-hero-stats span { display:block; font-size:11px; color:var(--muted-2); margin-top:5px; }
@media (max-width:600px) {
  .forum-hero { padding: 24px 20px; }
  .forum-hero-stats > div { padding:0 14px; }
}
.thread-row { display:flex; align-items:center; gap:14px; padding:14px; margin:0 -14px; border-bottom:1px dashed var(--line); text-decoration:none; color:inherit; background:none; border-left:none; border-right:none; border-top:none; width:calc(100% + 28px); text-align:left; font-family:inherit; cursor:pointer; transition: background .18s ease; }
.thread-row:last-child { border-bottom:none; }
.thread-row:hover { background: var(--surface); }
.thread-row:hover .thread-title { color: var(--accent); }
.thread-avatar { width:36px; height:36px; border-radius:9999px; background:var(--accent-soft); color:var(--accent); font-size:13px; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.thread-body { flex:1; min-width:0; }
.thread-title { font-size:13.5px; font-weight:600; color:var(--text); margin-bottom:4px; transition:color .15s ease; }
.thread-meta { font-size:11.5px; color:var(--muted-2); display:flex; gap:8px; align-items:center; }
.thread-stats { display:flex; gap:16px; flex-shrink:0; text-align:right; }
.thread-stats .stat { display:flex; flex-direction:column; gap:2px; }
.thread-stats .stat .n { font-size:13px; font-weight:700; color:var(--text); }
.thread-stats .stat .l { font-size:10px; color:var(--muted-2); text-transform:uppercase; }

/* ---- News rows (资讯列表) ---- */
.news-two-col {padding: 0 0 10px;}
.news-two-col .col-title { font-size:15px; font-weight:700; color:var(--text); margin:0 0 18px 0; padding-bottom:10px; border-bottom:2px solid var(--accent); }
.news-row { display:flex; align-items:flex-start; gap:14px; padding:14px; margin:0 -14px; border-bottom:1px dashed var(--line); text-decoration:none; color:inherit; background:none; width:calc(100% + 28px); transition:background .18s ease; }
.news-row:last-child { border-bottom:none; }
.news-row:hover { background:var(--surface); }
.news-row:hover .news-title { color:var(--accent); }
.news-thumb { width:100px; height:63px; object-fit:cover; border-radius:8px; flex-shrink:0; background:var(--surface); }
.news-body { flex:1; min-width:0; display:flex; flex-direction:column; justify-content:space-between; min-height:63px; }
.news-title { font-size:13.5px; font-weight:600; color:var(--text); margin-bottom:6px; line-height:1.5; transition:color .15s ease; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.news-meta { font-size:11.5px; color:var(--muted-2); display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.news-stats { display:flex; gap:16px; flex-shrink:0; text-align:right; align-self:flex-end; }
.news-stats .stat { display:flex; flex-direction:column; gap:2px; }
.news-stats .stat .n { font-size:13px; font-weight:700; color:var(--muted); }
.news-stats .stat .l { font-size:10px; color:var(--muted-2); text-transform:uppercase; }

/* ---- Footer ---- */
.site-footer { background:var(--footer-bg); border-top:1px solid var(--footer-border); color:var(--footer-text); margin-top:12px; }
.footer-grid { max-width:1160px; margin:0 auto; padding:48px 24px 32px; display:grid; grid-template-columns:1.6fr 1fr 1fr 1.3fr; gap:44px; }
.footer-brand-col .footer-brand { display:inline-flex; align-items:center; gap:9px; text-decoration:none; }
.footer-brand-col .footer-brand span { color:var(--bg); font-size:15px; }
.footer-brand-col .footer-brand b { color:var(--bg); }
.footer-tagline { margin:16px 0 18px; font-size:13px; line-height:1.7; color:var(--footer-text-muted); }
.footer-cta { display:inline-flex; align-items:center; gap:4px; font-size:13px; font-weight:600; padding:8px 16px; border-radius:var(--radius-pill); background:var(--accent); color:#fff; border:none; text-decoration:none; cursor:pointer; font-family:inherit; box-shadow:0 6px 16px -6px rgba(var(--accent-rgb),.6); transition:transform .15s ease; }
.footer-cta:hover { color:#fff; transform:translateY(-1px); }
.footer-col { display:flex; flex-direction:column; }
.footer-col-title { font-size:12px; font-weight:700; letter-spacing:.06em; color:var(--footer-hover); margin-bottom:16px; text-transform:uppercase; }
.footer-link { display:block; font-size:13px; line-height:1; color:var(--footer-text); padding:7px 0; text-decoration:none; background:none; border:none; text-align:left; font-family:inherit; cursor:pointer; transition:color .15s ease; width:fit-content; }
.footer-link:hover { color:var(--bg); }
.footer-contact-item { display:flex; align-items:center; gap:9px; font-size:13px; color:var(--footer-text); padding:5px 0; text-decoration:none; }
a.footer-contact-item:hover { color:var(--bg); }
.footer-contact-ic { display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:6px; background:var(--footer-border); font-size:12px; color:rgba(255,255,255,.7); flex-shrink:0; }
.footer-qr-empty { margin-top:14px; width:96px; height:96px; display:flex; align-items:center; justify-content:center; text-align:center; font-size:12px; line-height:1.4; color:rgba(255,255,255,.3); background:rgba(255,255,255,.05); border:1px dashed rgba(255,255,255,.16); border-radius:10px; }
.footer-wechat { position:relative; cursor:pointer; outline:none; }
.footer-qr-pop { position:absolute; left:0; bottom:calc(100% + 12px); z-index:20; display:flex; flex-direction:column; align-items:center; gap:8px; padding:12px; background:#fff; border-radius:12px; box-shadow:0 12px 32px rgba(0,0,0,.28); opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .18s ease, transform .18s ease, visibility .18s; }
.footer-qr-pop::after { content:""; position:absolute; top:100%; left:24px; border:7px solid transparent; border-top-color:#fff; }
.footer-wechat:hover .footer-qr-pop, .footer-wechat:focus .footer-qr-pop, .footer-wechat:focus-within .footer-qr-pop { opacity:1; visibility:visible; transform:translateY(0); }
.footer-qr-pop img { width:120px; height:120px; border-radius:8px; display:block; }
.footer-qr-cap { font-size:12px; color:#6b7280; letter-spacing:.02em; }
.footer-bottom { max-width:1160px; margin:0 auto; padding:18px 24px 28px; border-top:1px solid var(--footer-border); display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.footer-copy { font-size:12.5px; color:var(--footer-text-dim); }
.footer-beian { font-size:12px; color:var(--footer-text-dim); letter-spacing:.02em; }
.footer-beian a { color:var(--footer-text-dim); }
.footer-meta { font-size:12px; color:var(--footer-text-dim); letter-spacing:.02em; }
.footer-meta a { color:var(--footer-text-dim); }
.footer-partners-col { grid-column: span 2; }
.footer-partners-wrap { display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:16px; }
.footer-partner-link, .footer-partner-text { display:inline-block; font-size:13px; line-height:1.6; color:var(--footer-text); text-decoration:none; transition:color .2s ease; }
.footer-partner-link:hover { color:var(--bg); }
.footer-partner-text { color:var(--footer-text-dim); }
.footer-partner-placeholder { font-size:13px; color:var(--footer-text-dim); margin-top:14px; opacity:.5; }
@media (max-width:920px) {
  .footer-grid { grid-template-columns:1fr 1fr; gap:28px 32px; padding:40px 20px 28px; }
  .footer-brand-col { grid-column:1 / -1; }
}
@media (max-width:600px) {
  .footer-grid { grid-template-columns:1fr; gap:24px; padding:32px 20px 24px; }
  .footer-bottom { flex-direction:column; align-items:flex-start; gap:8px; padding:16px 20px 24px; }
}
/* 小屏（<930px）隐藏四列品牌/导航区，仅保留底部版权条 .footer-bottom；≥930px（电脑版）正常显示 */
@media (max-width:929px) {
  .footer-grid { display:none; }
}

/* ---- Home: hero ---- */
.hero { position:relative; overflow:hidden; padding: 64px 24px 20px; text-align:center; }
.hero-glow { position:absolute; top:-160px; left:50%; transform:translateX(-50%); width:1000px; height:440px; pointer-events:none; z-index:0; filter:blur(4px); background: radial-gradient(ellipse 52% 60% at 46% 18%, rgba(var(--accent-rgb),.22), transparent 62%), radial-gradient(ellipse 42% 52% at 66% 20%, rgba(var(--accent-rgb),.14), transparent 62%); }
.hero-title { position:relative; z-index:1; font-family:var(--font-display); font-size:34px; line-height:1.22; font-weight:700; letter-spacing:-0.02em; color:#0b0c10; max-width:680px; margin:0 auto 12px; }
.hero-title .accent { color: var(--accent); }
.hero-sub { position:relative; z-index:1; font-size:15px; color:var(--muted); max-width:none; margin:0 auto 20px; line-height:1.7; }
.hero-stats { position:relative; z-index:1; display:inline-flex; align-items:center; justify-content:center; flex-wrap:wrap; margin:0 auto 28px; }
.hero-stats > div { display:flex; flex-direction:column; align-items:center; padding:0 24px; position:relative; }
.hero-stats > div + div::before { content:""; position:absolute; left:0; top:50%; transform:translateY(-50%); width:1px; height:24px; background:var(--line); }
.hero-stats b { font-family:var(--font-display); font-size:22px; font-weight:700; letter-spacing:-.02em; line-height:1; color:var(--accent); }
.hero-stats span { display:block; font-size:12px; color:var(--muted-2); margin-top:6px; }
.hero-actions { position:relative; z-index:1; display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.hero-actions .btn-outline, .hero-actions .btn-solid { padding:10px 22px; font-size:14px; }

/* ---- Home: "你在一人公司的哪一站？" stage router ---- */
.stage-section-sub { font-size:13px; color:var(--muted); }
.stage-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; }
.stage-card { position:relative; overflow:hidden; display:flex; flex-direction:column; gap:8px; padding:20px 20px 18px; border:1px solid var(--line); border-radius:var(--radius-card); text-decoration:none; color:inherit; background-image: linear-gradient(14deg, var(--bg) 76.81%, var(--accent-soft) 100%); background-repeat: no-repeat; transition:transform .2s ease, box-shadow .2s ease; }
.stage-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-lg); }
.stage-card.focus { background:var(--accent-soft); border-color:transparent; }
.stage-card.focus::after { content:""; position:absolute; right:-40px; top:-40px; width:140px; height:140px; border-radius:50%; background:radial-gradient(circle, rgba(var(--accent-rgb),.18), transparent 70%); pointer-events:none; }
.stage-card-top { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.stage-title { font-size:16px; font-weight:700; color:var(--text); }
.stage-station { position:relative; z-index:1; font-size:12px; font-weight:600; color:var(--muted); white-space:nowrap; }
.stage-card.focus .stage-station { color:var(--accent); }
.stage-desc { position:relative; z-index:1; font-size:12.5px; color:var(--muted); line-height:1.6; }
.stage-cta { position:relative; z-index:1; margin-top:auto; padding-top:4px; display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:700; color:var(--accent); }

/* ---- Home: module preview sections ---- */
.home-section { max-width:1160px; margin:0 auto; padding:30px 24px 0; }
.home-section-head { display:flex; align-items:baseline; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:20px; }
.home-section-head h2 { font-family:var(--font-display); font-size:20px; font-weight:700; letter-spacing:-0.01em; color:var(--text); }
.home-section-link { font-size:13px; font-weight:600; color:var(--muted); text-decoration:none; white-space:nowrap; transition:color .15s ease; }
.home-section-link:hover { color:var(--accent); }
.home-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; }
.home-card { display:flex; flex-direction:column; gap:10px; border:1px solid var(--line); border-radius:var(--radius-card); padding:20px; text-decoration:none; color:inherit; background-image: linear-gradient(14deg, var(--bg) 76.81%, var(--accent-soft) 100%); background-repeat: no-repeat; text-align:left; font-family:inherit; cursor:pointer; width:100%; transition:transform .2s ease, box-shadow .2s ease; }
.home-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-lg); }
.home-card-top { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.home-card-tag { font-size:11.5px; color:var(--muted-2); }
.home-card-title { font-size:14.5px; font-weight:700; color:var(--text); line-height:1.4; }
.home-card-desc { font-size:12.5px; color:var(--muted); line-height:1.6; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.home-card-meta { font-size:12px; font-weight:700; color:var(--text); margin-top:auto; padding-top:6px; border-top:1px solid var(--line); }

/* ---- Home: feature spotlight card (first SOP / Community item), 参考 shuihoushouru.com case-feature 适配 ---- */
.feature-card { display:flex; border:1px solid var(--line); border-radius:var(--radius-card); overflow:hidden; margin-bottom:20px; text-decoration:none; color:inherit; transition:transform .2s ease, box-shadow .2s ease; }
.feature-card:hover { transform:translateY(-3px); box-shadow:0 16px 30px -18px rgba(29, 29, 31, .22); }
.feature-body { flex:1.5; padding:28px 30px; display:flex; flex-direction:column; }
.feature-flag { font-size:12px; font-weight:700; color:var(--accent); margin-bottom:12px; }
.feature-title { font-size:19px; font-weight:700; letter-spacing:-0.01em; line-height:1.35; color:var(--text); margin-bottom:8px; }
.feature-desc { font-size:13px; color:var(--muted); line-height:1.6; margin-bottom:18px; }
.feature-stats { display:flex; align-items:flex-start; margin-bottom:18px; }
.feature-stat { display:flex; flex-direction:column; gap:4px; padding:0 18px; position:relative; }
.feature-stat:first-child { padding-left:0; }
.feature-stat + .feature-stat::before { content:""; position:absolute; left:0; top:2px; bottom:2px; width:1px; background:var(--line); }
.feature-stat b { font-size:17px; font-weight:700; color:var(--text); line-height:1.2; }
.feature-stat span { font-size:11px; color:var(--muted-2); }
.feature-badges { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; }
.feature-foot { margin-top:auto; display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:700; color:var(--accent); }
.feature-side { position:relative; overflow:hidden; flex:1; background: var(--grad-ambient-light); padding:28px; display:flex; flex-direction:column; justify-content:center; }
.feature-side::before { content:""; position:absolute; right:-36px; top:-36px; width:150px; height:150px; border-radius:50%; border:1px solid rgba(var(--accent-rgb),.22); box-shadow: 0 0 0 14px rgba(var(--accent-rgb),.05), 0 0 0 30px rgba(var(--accent-rgb),.035); pointer-events:none; }
.feature-side::after { content:""; position:absolute; left:-30px; bottom:-30px; width:110px; height:110px; border-radius:50%; background: radial-gradient(circle, rgba(var(--accent-rgb),.14), transparent 70%); pointer-events:none; }
.feature-side-head { position:relative; z-index:1; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--accent); margin-bottom:16px; }
.feature-path { position:relative; z-index:1; list-style:none; display:flex; flex-direction:column; gap:14px; }
.feature-path li { display:flex; align-items:flex-start; gap:10px; }
.feature-step { flex-shrink:0; width:22px; height:22px; border-radius:50%; background:var(--accent); color:var(--bg); font-size:11px; font-weight:700; display:flex; align-items:center; justify-content:center; }
.feature-path li div { font-size:12.5px; color:var(--muted); line-height:1.5; }
.feature-path li b { display:block; color:var(--text); font-weight:700; font-size:13px; margin-bottom:1px; }
.feature-path-empty { position:relative; z-index:1; font-size:12.5px; color:var(--muted); line-height:1.6; margin:0; }

/* 精选 SOP：适用人群定位行（带标签，替代原裸露描述，2026-07-14 重规划）*/
.feature-audience { display:flex; align-items:center; gap:8px; margin-bottom:12px; font-size:13px; font-weight:600; color:var(--text); }
.feature-audience-label { flex-shrink:0; font-size:11px; font-weight:700; letter-spacing:.02em; color:var(--accent); background:var(--accent-soft); border:1px solid var(--accent-soft-line); border-radius:var(--radius-tag); padding:3px 8px; }
/* 左栏改为 2 项指标后，加大项间呼吸感 */
.sop-home-section .feature-stat { padding:0 22px; }
.sop-home-section .feature-stat:first-child { padding-left:0; }
/* 右栏避坑清单：标记由"编号步骤"改为警示感的软底描边，与流程步骤语义区分 */
.feature-path--pitfall .feature-step { background:var(--accent-soft); color:var(--accent); border:1px solid var(--accent-soft-line); font-size:12px; font-weight:800; }

/* ---- Home: CTA glow band ---- */
.cta-glow { position:relative; overflow:hidden; margin-top:40px; padding:72px 24px 76px; text-align:center; color:var(--text); background:var(--bg); }
.cta-glow::before { content:""; position:absolute; top:-160px; left:50%; transform:translateX(-50%); width:1000px; height:440px; pointer-events:none; z-index:0; filter:blur(4px);
  background: radial-gradient(ellipse 52% 60% at 46% 18%, rgba(var(--accent-rgb),.22), transparent 62%), radial-gradient(ellipse 42% 52% at 66% 20%, rgba(var(--accent-rgb),.14), transparent 62%); }
.cta-glow-inner { position:relative; z-index:1; max-width:560px; margin:0 auto; }
.cta-glow-inner h2 { font-family:var(--font-display); font-size:24px; font-weight:700; letter-spacing:-0.02em; line-height:1.25; margin-bottom:10px; color:var(--text); }
.cta-glow-inner p { font-size:14px; color:var(--muted); max-width:none; margin:0 auto 20px; line-height:1.7; }
.cta-actions { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.btn-cta-light { display:inline-flex; align-items:center; justify-content:center; gap:6px; height:42px; padding:0 24px; border-radius:var(--radius-pill); background:var(--grad-brand-btn); color:var(--bg); font-weight:700; font-size:14px; border:none; text-decoration:none; cursor:pointer; font-family:inherit; box-shadow: var(--shadow-btn); transition: transform .15s ease, box-shadow .15s ease; }
.btn-cta-light:hover { color:var(--bg); transform: translateY(-1px); box-shadow: var(--shadow-btn-hover); }
.btn-cta-ghost { display:inline-flex; align-items:center; justify-content:center; gap:6px; height:42px; padding:0 24px; border-radius:var(--radius-pill); background:var(--bg); color:var(--accent); font-weight:600; font-size:14px; border:1px solid var(--accent); cursor:pointer; font-family:inherit; text-decoration:none; transition: background .15s ease, transform .15s ease, box-shadow .15s ease; }
.btn-cta-ghost:hover { background: var(--accent-soft); transform: translateY(-1px); box-shadow: 0 6px 16px -6px rgba(var(--accent-rgb, 77,107,254), .35); }

/* ===== CTA: 最新入驻的OPC - 产品级设计 ===== */
.cta-latest-opc { position:relative; z-index:1; margin-top:56px; padding-top:40px; border-top:1px solid var(--line); }

/* Section Header */
.cta-section-header { display:flex; flex-direction:column; align-items:center; gap:8px; margin-bottom:32px; text-align:center; }
.cta-section-title { font-size:18px; font-weight:700; letter-spacing:-0.01em; color:var(--text); }
.cta-section-subtitle { display:inline-flex; align-items:center; gap:8px; font-size:13px; color:var(--muted); }
.cta-live-indicator { display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--accent); animation:pulse-glow 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; }

@keyframes pulse-glow {
  0%, 100% { opacity:1; transform:scale(1); }
  50% { opacity:0.6; transform:scale(1.15); }
}

/* Grid Layout - Asymmetric Featured + Standard Cards */
.cta-opc-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; max-width:1000px; margin:0 auto; }

/* Featured Card (First Item, Spans 2 Columns + 2 Rows) */
.cta-opc-featured { position:relative; isolation:isolate; grid-column:span 2; grid-row:span 2; display:flex; flex-direction:column; gap:20px; padding:28px; border:1px solid var(--line); border-radius:var(--radius-card); background:linear-gradient(135deg, #fff 0%, var(--accent-soft) 100%); text-decoration:none; color:inherit; overflow:hidden; transition:all 0.4s cubic-bezier(0.16, 1, 0.3, 1); }
.cta-opc-featured:hover { transform:translateY(-4px); box-shadow:0 20px 40px -12px rgba(0, 0, 0, 0.18); border-color:var(--accent); }
.cta-opc-featured:hover .cta-card-glow { opacity:1; }
.cta-opc-featured:active { transform:translateY(-2px); }

/* Animated Gradient Glow Overlay */
.cta-card-glow { position:absolute; top:-50%; right:-50%; width:200%; height:200%; background:radial-gradient(circle at center, rgba(var(--accent-rgb), 0.12) 0%, transparent 60%); opacity:0; transition:opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1); pointer-events:none; z-index:0; animation:rotate-glow 12s linear infinite; }

@keyframes rotate-glow {
  from { transform:rotate(0deg); }
  to { transform:rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .cta-card-glow { animation:none; }
  .cta-live-indicator { animation:none; }
}

/* Avatar Section (Featured) */
.cta-opc-avatar-wrap { position:relative; z-index:1; display:inline-flex; align-items:flex-end; width:fit-content; }
.cta-opc-avatar { width:80px; height:80px; border-radius:50%; object-fit:cover; border:3px solid var(--bg); box-shadow:var(--shadow-avatar-lg); }
.cta-verified-badge-large { position:absolute; bottom:-4px; right:-4px; display:flex; align-items:center; justify-content:center; width:28px; height:28px; border-radius:50%; background:var(--accent); color:var(--bg); font-size:14px; font-weight:700; box-shadow:0 2px 8px rgba(var(--accent-rgb), 0.4); border:2px solid var(--bg); }

/* Content Section (Featured) */
.cta-opc-content { position:relative; z-index:1; display:flex; flex-direction:column; gap:12px; }
.cta-opc-meta { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.cta-opc-name { font-size:20px; font-weight:700; letter-spacing:-0.01em; color:var(--text); }
.cta-opc-timestamp { font-size:11px; font-weight:600; color:var(--muted-2); white-space:nowrap; }
.cta-opc-track-pill { display:inline-flex; align-items:center; width:fit-content; padding:6px 14px; font-size:12px; font-weight:600; color:var(--accent); background:rgba(var(--accent-rgb), 0.08); border:1px solid rgba(var(--accent-rgb), 0.16); border-radius:var(--radius-pill); }
.cta-opc-intro-full { font-size:13.5px; color:var(--muted); line-height:1.6; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }

/* Standard Cards (Remaining 5) */
.cta-opc-card { position:relative; display:flex; flex-direction:column; gap:14px; padding:20px; border:1px solid var(--line); border-radius:var(--radius-card); background:var(--bg); text-decoration:none; color:inherit; transition:all 0.3s cubic-bezier(0.16, 1, 0.3, 1); }
.cta-opc-card:hover { transform:translateY(-3px); box-shadow:0 12px 24px -8px rgba(29, 29, 31, .12); border-color:rgba(var(--accent-rgb), 0.3); }
.cta-opc-card:active { transform:translateY(-1px); }

/* Small Avatar (Standard Cards) */
.cta-opc-avatar-small-wrap { position:relative; width:48px; height:48px; }
.cta-opc-avatar-small { width:100%; height:100%; border-radius:50%; object-fit:cover; border:2px solid var(--bg); box-shadow:var(--shadow-avatar); }
.cta-verified-dot { position:absolute; bottom:0; right:0; width:14px; height:14px; border-radius:50%; background:var(--accent); border:2px solid var(--bg); box-shadow:0 1px 4px rgba(var(--accent-rgb), 0.3); }
.cta-verified-dot::after { content:'✓'; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:8px; font-weight:700; color:var(--bg); }

/* Card Body (Standard Cards) */
.cta-opc-card-body { display:flex; flex-direction:column; gap:6px; }
.cta-opc-name-compact { font-size:15px; font-weight:700; color:var(--text); line-height:1.3; }
.cta-opc-track-compact { font-size:11.5px; font-weight:600; color:var(--muted-2); letter-spacing:0.01em; }
.cta-opc-intro-snippet { font-size:12.5px; color:var(--muted); line-height:1.5; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

@media (max-width:920px) {
  .home-grid { grid-template-columns:repeat(2, 1fr); }
  .stage-grid { grid-template-columns:repeat(2, 1fr); }
  .hero-title { font-size:28px; }
  .feature-card { flex-direction:column; }
  .feature-stat b { font-size:16px; }
  /* OPC Grid Responsive */
  .cta-opc-grid { grid-template-columns:repeat(2, 1fr); }
  .cta-opc-featured { grid-column:span 2; grid-row:span 1; flex-direction:row; gap:24px; }
  .cta-opc-avatar { width:64px; height:64px; }
  .cta-verified-badge-large { width:24px; height:24px; font-size:12px; }
  .cta-opc-name { font-size:18px; }
  .cta-opc-intro-full { -webkit-line-clamp:2; }
}
@media (max-width:600px) {
  .home-grid { grid-template-columns:1fr; }
  .stage-grid { grid-template-columns:1fr; }
  .hero-title { font-size:24px; }
  .hero-sub { font-size:13.5px; white-space:normal; }
  .hero-stats { display:grid; grid-template-columns:repeat(2, 1fr); max-width:280px; gap:0; }
  .hero-stats > div { padding:14px 10px; }
  .hero-stats > div + div::before { display:none; }
  .hero-stats > div:nth-child(even) { border-left:1px solid var(--line); }
  .hero-stats > div:nth-child(n+3) { border-top:1px solid var(--line); }
  .hero-stats b { font-size:19px; }
  .cta-glow-inner h2 { font-size:20px; }
  .cta-glow-inner p { white-space:normal; }
  /* OPC Grid Mobile */
  .cta-latest-opc { margin-top:48px; padding-top:32px; }
  .cta-section-header { margin-bottom:24px; }
  .cta-opc-grid { grid-template-columns:1fr; gap:16px; }
  .cta-opc-featured { grid-column:span 1; flex-direction:column; gap:16px; padding:20px; }
  .cta-opc-avatar { width:56px; height:56px; }
  .cta-opc-name { font-size:16px; }
  .cta-opc-intro-full { font-size:13px; }
  .cta-opc-card { padding:16px; }
}

/* Dark Mode Support for OPC Section */
@media (prefers-color-scheme: dark) {
  .cta-opc-featured { background:linear-gradient(135deg, rgba(var(--accent-rgb), 0.06) 0%, rgba(var(--accent-rgb), 0.02) 100%); border-color:rgba(255, 255, 255, 0.08); }
  .cta-opc-card { background:rgba(255, 255, 255, 0.02); border-color:rgba(255, 255, 255, 0.08); }
  .cta-opc-avatar, .cta-opc-avatar-small { border-color:rgba(255, 255, 255, 0.12); }
  .cta-verified-badge-large, .cta-verified-dot { border-color:var(--surface); }
  .cta-opc-track-pill { background:rgba(var(--accent-rgb), 0.12); border-color:rgba(var(--accent-rgb), 0.24); }
}

/* OPC List Card - Enhanced with Avatar */
.comm-card { position:relative; flex-direction:row !important; gap:16px !important; align-items:flex-start; }
.comm-avatar-wrap { position:relative; flex-shrink:0; }
.comm-avatar { width:64px; height:64px; border-radius:50%; object-fit:cover; border:2px solid var(--bg); box-shadow:var(--shadow-avatar); }
.comm-verified-badge { position:absolute; bottom:-2px; right:-2px; display:flex; align-items:center; justify-content:center; width:20px; height:20px; border-radius:50%; background:var(--accent); color:var(--bg); font-size:11px; font-weight:700; border:2px solid var(--bg); box-shadow:0 1px 4px rgba(var(--accent-rgb),0.3); }
.comm-body { flex:1; display:flex; flex-direction:column; gap:12px; min-width:0; }
.comm-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(360px, 1fr)); gap:20px; }

@media (max-width:768px) {
  .comm-card { flex-direction:column !important; }
  .comm-avatar-wrap { align-self:center; }
  .comm-grid { grid-template-columns:1fr; }
}

/* ============================================================
 * 归档页统一工具条（opc-arc-bar）：结果计数 + 搜索框 + 投稿按钮
 * 2026-07-09 需求：6 个 CPT 归档页投稿按钮统一移入此处（文案随 CPT 变化），
 * 右侧「搜索框 + 投稿按钮」，投稿按钮为纯科技蓝（无蓝紫渐变）。
 * ============================================================ */
.opc-arc-bar { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.opc-arc-bar-actions { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }

.opc-arc-search { position:relative; display:flex; align-items:center; }
.opc-arc-search-ic { position:absolute; left:12px; width:16px; height:16px; color:var(--muted-2); pointer-events:none; }
.opc-arc-search-input { width:240px; max-width:52vw; height:34px; padding:0 40px 0 34px; border:1px solid var(--line); border-radius:var(--radius-pill); background:var(--bg); font-size:13px; color:var(--text); font-family:inherit; transition:border-color .18s ease, box-shadow .18s ease; }
.opc-arc-search-input::placeholder { color:var(--muted-2); }
.opc-arc-search-input:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(var(--accent-rgb),0.14); }
.opc-arc-search-send { position:absolute; right:4px; display:flex; align-items:center; justify-content:center; width:26px; height:26px; border:none; border-radius:50%; background:var(--accent); color:var(--bg); cursor:pointer; transition:background .18s ease, transform .18s ease; }
.opc-arc-search-send:hover { background:var(--accent-hover); transform:scale(1.05); }

/* 投稿按钮：纯科技蓝（不使用 .btn-solid 的蓝紫渐变） */
.opc-arc-submit-btn { display:inline-flex; align-items:center; gap:6px; height:34px; padding:0 16px; border-radius:var(--radius-pill); background:var(--accent); color:var(--bg); font-size:13px; font-weight:600; text-decoration:none; white-space:nowrap; box-shadow:0 4px 14px rgba(var(--accent-rgb),0.28); transition:transform .18s ease, box-shadow .18s ease, background .18s ease; }
.opc-arc-submit-btn:hover { transform:translateY(-1px); color:var(--bg); background:var(--accent-hover); box-shadow:0 6px 20px rgba(var(--accent-rgb),0.36); }
.opc-arc-submit-plus { font-size:16px; line-height:1; font-weight:400; margin-top:-1px; }

@media (max-width:768px) {
  .opc-arc-bar { flex-direction:column; align-items:stretch; }
  .opc-arc-bar-actions { justify-content:space-between; }
  .opc-arc-search-input { width:100%; max-width:none; flex:1; }
  .opc-arc-search { flex:1; }
}

/* ============================================================
 * 投稿/提交按钮统一纯科技蓝（去除 .btn-solid 蓝紫渐变）
 * 覆盖各归档页历史投稿按钮 class，保证「所有投稿按钮就使用纯蓝色」。
 * ============================================================ */
.btn-solid.opc-arc-submit,
.btn-solid.idea-submit-btn,
.btn-solid.opc-tool-submit,
a.opc-tool-submit,
a.opc-tool-hero-cta {
  background: var(--accent) !important;
  box-shadow: 0 4px 14px rgba(var(--accent-rgb),0.28);
}
.btn-solid.opc-arc-submit:hover,
.btn-solid.idea-submit-btn:hover,
.btn-solid.opc-tool-submit:hover,
a.opc-tool-submit:hover,
a.opc-tool-hero-cta:hover {
  background: var(--accent-hover) !important;
}

/* ============================================================
 * P7 · 浮动操作栏品牌化（父主题 wp_footer 注入的 .action 组件）
 * 仅在 OPC 页面（body.opc-module-page）覆盖：由默认蓝色方块升级为
 * 白底发丝边框 + 柔和阴影 + accent 悬停的圆角按钮组，统一圆角语言。
 * ============================================================ */
body.opc-module-page .action {
  right: 24px;
  bottom: 28px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  z-index: 90;
}
body.opc-module-page .action .action-item {
  width: 44px;
  height: 44px;
  min-width: 44px;
  border-radius: 14px !important;
  background: var(--bg) !important;
  border: 1px solid var(--line) !important;
  box-shadow: var(--shadow-md) !important;
  color: var(--muted) !important;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: color .15s ease, background .15s ease, transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
body.opc-module-page .action .action-item:hover {
  color: var(--bg) !important;
  background: var(--accent) !important;
  border-color: var(--accent) !important;
  transform: translateY(-2px);
  box-shadow: var(--shadow-accent) !important;
}
body.opc-module-page .action .action-item .action-item-icon { font-size: 19px; line-height: 1; }
body.opc-module-page .action .action-item .action-item-icon svg { width: 19px; height: 19px; }
/* 悬浮标签（若开启文字样式）隐藏，保持极简图标组 */
body.opc-module-page .action .action-item > span { display: none; }
/* 微信二维码 / 分享等弹层保留，仅统一为品牌卡片外观 */
body.opc-module-page .action .action-item-inner {
  border-radius: 12px !important;
  border: 1px solid var(--line) !important;
  box-shadow: var(--shadow-md) !important;
}

/* ------------------------------------------------------------------ *
 * 用户名片下拉（wpcom-member user-card 公共组件）产品级重构
 * 2026-07-14：作者 hover 下拉卡片全面提质——品牌渐变封面 + 光环头像 +
 * 显示字体数字统计（带分隔线）+ 胶囊按钮微交互。双类/后代选择器提高特异性
 * 覆盖插件单类样式；全局 components.css 加载 → 全站所有 user-card 一致生效。
 * ------------------------------------------------------------------ */
/* 根容器：发丝边框 + 柔和阴影 + 大圆角 + 入场动画（双类提权，稳胜插件单类） */
.user-card-wrap.user-card-wrap {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-md);
  padding: 0 0 18px;
  min-height: 0;
  animation: opcUserCardIn .22s cubic-bezier(.22,.61,.36,1) both;
}
@keyframes opcUserCardIn {
  from { opacity: 0; transform: translateY(7px); }
  to   { opacity: 1; transform: translateY(0); }
}
/* 封面：参考 .stage-card.focus——淡蓝纯色填充 + 右上蓝色径向柔光（无紫）；保留半高比例 */
.user-card-header .user-card-cover {
  padding-bottom: 20%;
  background: var(--accent-soft);
}
/* 右上角蓝色柔光（复刻 stage-card.focus::after 的径向渐变光晕） */
.user-card-header .user-card-cover::before {
  display: block;
  content: "";
  position: absolute;
  left: auto;
  right: -30px;
  top: -46px;
  width: 140px;
  height: 140px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(var(--accent-rgb), .18), transparent 70%);
  pointer-events: none;
}
.user-card-header .user-card-cover > img { display: none; }
/* 头像：白底 + 发丝环 + 抬升阴影，悬停轻微上浮 */
.user-card-header .user-card-avatar {
  width: 72px;
  height: 72px;
  margin-top: -38px;
  padding: 3px;
  background: var(--bg);
  box-shadow: 0 0 0 1px var(--line), var(--shadow-avatar-lg);
  transition: transform .2s ease, box-shadow .2s ease;
}
.user-card-header .user-card-avatar:hover {
  transform: translateY(-2px);
  box-shadow: 0 0 0 1px var(--accent-soft-line), var(--shadow-md);
}
.user-card-header .user-card-avatar:hover img { opacity: 1; }
/* 用户名：更沉稳字重与字距 */
.user-card-wrap .user-card-name {
  color: var(--text);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 10px 0 0;
}
.user-card-wrap .user-card-name:hover { color: var(--accent); }
/* 用户组徽标：淡蓝胶囊，替代插件描边+伪元素叠色方案 */
.user-card-wrap .user-card-name .user-group {
  border: 1px solid var(--accent-soft-line);
  border-radius: var(--radius-pill);
  background: var(--accent-soft);
  color: var(--accent);
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
  padding: 3px 9px;
  margin-left: 8px;
}
.user-card-wrap .user-card-name .user-group::before,
.user-card-wrap .user-card-name .user-group::after { display: none; }
/* 简介：次级灰、留出呼吸空间 */
.user-card-wrap .user-card-desc {
  color: var(--muted);
  font-size: 13px;
  height: auto;
  line-height: 1.5 !important;
  margin: 6px 0 0 !important;
  padding: 0 20px;
}
/* 统计面板：柔和底 + 发丝上边线，数字用显示字体，项间竖分隔线 */
.user-card-wrap .user-card-stats {
  margin: 16px 16px 0;
  padding: 12px 8px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-field);
  gap: 0;
}
.user-card-wrap .user-card-stats .user-stats-item {
  position: relative;
  padding: 0 16px;
  margin: 0;
}
.user-card-wrap .user-card-stats .user-stats-item + .user-stats-item::before {
  content: "";
  position: absolute;
  left: 0; top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 22px;
  background: var(--line-strong);
}
.user-card-wrap .user-card-stats .user-stats-item b {
  font-family: var(--font-display);
  color: var(--text);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.2;
}
.user-card-wrap .user-card-stats .user-stats-item span {
  color: var(--muted-2);
  font-size: 11px;
  letter-spacing: .02em;
}
.user-card-wrap .user-card-stats .user-stats-item:hover b { color: var(--accent); }
/* 关注按钮：品牌胶囊 + 悬停上浮阴影 */
.user-card-wrap .user-card-action { padding: 0 16px; }
.user-card-wrap .user-card-action .btn-follow {
  border-radius: var(--radius-pill);
  padding: 8px 22px;
  font-size: 13px;
  font-weight: 600;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.user-card-wrap .user-card-action .btn-follow.btn-primary {
  background: var(--accent);
  border-color: var(--accent);
  box-shadow: var(--shadow-btn);
}
.user-card-wrap .user-card-action .btn-follow.btn-primary:hover {
  background: var(--accent-hover);
  transform: translateY(-2px);
  box-shadow: var(--shadow-btn-hover);
}
.user-card-wrap .user-card-action .btn-follow.followed {
  background: var(--surface-2);
  border-color: var(--line-strong);
  color: var(--muted);
}
.user-card-wrap .user-card-action .btn-follow.followed:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-sm);
}
