/* ============================================================================
 * 和世纪API 官网首页 — site.css
 * 依据《设计交接文档》v1.0 /《设计稿交付说明》v2.0 实现
 * 令牌来源：tokens/design-tokens.css（1:1 引入，不重复定义）
 * ========================================================================== */

/* ---------- 基础 ---------- */
/* tokens 深色主题未定义 --c-accent-violet（Style Guide 有、tokens 漏定义），此处补齐 */
html[data-theme="dark"] { --c-accent-violet: #8f6bf8; }

html { scroll-behavior: smooth; }
html.no-smooth { scroll-behavior: auto; }
body {
  min-width: 320px;
  font-synthesis: none;
  background: var(--c-canvas);
  color: var(--c-text);
  transition: background-color var(--dur-theme) ease, color var(--dur-theme) ease;
}
::selection { background: rgba(40,120,240,.22); }

/* 跳转链接（P0） */
.skip-link{
  position:fixed; top:-60px; left:12px; z-index:300;
  background:var(--c-card); color:var(--c-title);
  border:1px solid var(--c-border-strong); border-radius:var(--radius-md);
  padding:9px 16px; font-size:13.5px; font-weight:600;
  box-shadow:var(--shadow-popover-light);
  transition:top var(--dur-fast) var(--ease-out);
}
.skip-link:focus{ top:10px; }

/* 粒子背景层（P1：aria-hidden 于 canvas） */
.page-particles{
  position:fixed; inset:0; z-index:0; pointer-events:none;
  opacity:var(--c-particle-opacity);
  transition:opacity var(--dur-theme) ease;
}
.page-particles canvas{ width:100%; height:100%; display:block; }

main{ position:relative; z-index:1; }
.site-footer{ position:relative; z-index:1; }

.shell{ width:var(--shell-width); margin:0 auto; }

/* ---------- Header ---------- */
.site-header{
  position:fixed; inset:0 0 auto; z-index:50; height:var(--header-height);
  border-bottom:1px solid var(--c-header-border);
  background:var(--c-header-bg);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  transition:background-color var(--dur-theme) ease, border-color var(--dur-theme) ease;
}
.site-header-inner{
  width:var(--shell-width); height:100%; margin:0 auto;
  display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:42px;
  transition:width var(--dur-shell) var(--ease-out), height var(--dur-shell) var(--ease-out),
             gap var(--dur-shell) var(--ease-out), padding var(--dur-shell) var(--ease-out);
}
.brand{ display:flex; align-items:center; gap:9px; min-width:0; }
.brand img{ width:25px; height:25px; border-radius:7px; flex:none; }
.brand strong{ color:var(--c-title); font-size:15px; white-space:nowrap; letter-spacing:.1px; }
.brand .brand-short{ display:none; color:var(--c-title); font-size:15px; font-weight:700; white-space:nowrap; }
/* 窄屏：长名隐藏，短名显示（§7.1 Logo 行为） */
@media(max-width:820px){
  .brand strong{ display:none; }
  .brand .brand-short{ display:inline; }
}
.main-nav{ justify-self:center; }
.nav-list{ display:flex; align-items:center; gap:4px; list-style:none; margin:0; padding:0; }
.nav-list > li { position:relative; }
.nav-list a, .nav-dropdown-trigger{
  display:inline-flex; align-items:center; gap:5px;
  font-size:14px; color:var(--c-text); white-space:nowrap;
  padding:8px 11px; border-radius:var(--radius-sm);
  transition:color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) ease;
  background:transparent; border:0; cursor:pointer; font-family:var(--font-sans);
}
.nav-list a:hover, .nav-dropdown-trigger:hover{ color:var(--c-link); background:var(--c-hover); }
.nav-list a.active{ color:var(--c-link); font-weight:600; }
.nav-ext{ font-size:11px; color:var(--c-faint); transform:translateY(-1px); }

/* 商业合作下拉（§7.1：SSR hidden → JS 解禁；P0 无障碍三项） */
.nav-biz .nav-dropdown-trigger svg{ transition:transform var(--dur-fast) var(--ease-out); }
.nav-biz.open .nav-dropdown-trigger svg{ transform:rotate(180deg); }
.biz-menu{
  position:absolute; top:calc(100% + 10px); left:50%; transform:translateX(-50%) translateY(6px);
  width:308px; padding:8px;
  background:var(--c-popover); border:1px solid var(--c-border);
  border-radius:var(--radius-lg); box-shadow:var(--shadow-popover-light);
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out), visibility var(--dur-fast);
}
.nav-biz.open .biz-menu{ opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0); }
.bm-item{ display:flex; align-items:center; gap:12px; padding:10px 11px; border-radius:var(--radius-md); transition:background-color var(--dur-fast) ease; }
.bm-item:hover{ background:var(--c-hover); }
.bm-icon{ width:36px; height:36px; border-radius:var(--radius-md); display:grid; place-items:center; flex:none; font-size:17px; }
.bm-icon.blue{ color:var(--c-tag-blue); background:var(--c-tag-blue-bg); border:1px solid var(--c-tag-blue-bd); }
.bm-icon.violet{ color:var(--c-accent-violet); background:rgba(122,78,244,.08); border:1px solid rgba(122,78,244,.22); }
.bm-text{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.bm-text b{ font-size:13.5px; color:var(--c-title); font-weight:650; }
.bm-text small{ font-size:12px; color:var(--c-muted); }
.bm-arrow{ margin-left:auto; color:var(--c-faint); font-size:14px; flex:none; }

.header-actions{ display:flex; align-items:center; gap:10px; justify-self:end; }
.icon-button{
  width:38px; height:38px; border-radius:var(--radius-md);
  border:1px solid var(--c-border); background:var(--c-card); color:var(--c-title);
  cursor:pointer; display:grid; place-items:center; flex:none;
  transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease;
}
.icon-button:hover{ background:var(--c-hover); border-color:var(--c-border-strong); }
.header-login{
  display:inline-flex; align-items:center; height:38px; padding:0 18px;
  border-radius:var(--radius-md); font-size:13.5px; font-weight:650; white-space:nowrap;
  color:var(--c-title); background:var(--c-outline-btn-bg); border:1px solid var(--c-outline-btn-bd);
  transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease;
}
.header-login:hover{ background:var(--c-hover); border-color:var(--c-border-strong); }

/* 汉堡菜单（≤960px） */
.nav-toggle{ display:none; }
@media(max-width:960px){
  .main-nav{ display:none; }
  .nav-toggle{ display:grid; }
  .site-header-inner{ gap:16px; }
}
.mobile-nav{
  position:fixed; top:var(--header-height); left:0; right:0; z-index:49;
  background:var(--c-popover); border-bottom:1px solid var(--c-border);
  box-shadow:var(--shadow-popover-light);
  padding:12px 16px 18px;
  display:none;
}
.mobile-nav.open{ display:block; }
.mobile-nav ul{ list-style:none; margin:0; padding:0; }
.mobile-nav a{ display:flex; align-items:center; min-height:48px; padding:0 8px; font-size:15px; color:var(--c-text); border-radius:var(--radius-md); }
.mobile-nav a:hover{ background:var(--c-hover); color:var(--c-link); }
.mobile-nav a.active{ color:var(--c-link); font-weight:650; }
.mobile-nav .mn-group{ margin-top:10px; padding-top:10px; border-top:1px solid var(--c-border); }
.mobile-nav .mn-label{ font-size:12px; color:var(--c-faint); padding:4px 8px 8px; font-weight:700; letter-spacing:.5px; }
.mobile-nav .mn-actions{ display:flex; gap:10px; margin-top:14px; }
.mobile-nav .mn-actions .header-login{ flex:1; justify-content:center; }

/* ---------- Hero（§5.3：0.9fr / 1.18fr 非对称双列） ---------- */
.hero{ padding:calc(var(--header-height) + 30px) 0 var(--section-gap); }
.hero-inner{
  min-height:400px;
  display:grid; grid-template-columns:.9fr 1.18fr; align-items:center; gap:64px;
}
.hero-copy{ padding:22px 0 28px; }
.eyebrow{
  width:max-content; min-height:31px; padding:0 12px;
  display:inline-flex; align-items:center; gap:7px;
  border:1px solid var(--c-eyebrow-bd); border-radius:15px;
  color:var(--c-eyebrow-fg); background:var(--c-eyebrow-bg);
  font-size:13px; font-weight:650;
}
.eyebrow svg{ font-size:16px; }
.hero h1{ margin:19px 0; font-size:40px; line-height:1.2; font-weight:800; letter-spacing:-.6px; color:var(--c-title); }
.hero h1 .h1-sub{ display:block; font-size:.52em; font-weight:700; letter-spacing:-.2px; margin-top:10px; color:var(--blue); }
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .hero h1 .h1-sub{ background:linear-gradient(90deg,var(--blue),var(--violet)); -webkit-background-clip:text; background-clip:text; color:transparent; }
}
.hero-lead{ font-size:16px; line-height:1.65; color:var(--c-text); max-width:56ch; }
.hero-caps{ display:flex; gap:10px; flex-wrap:wrap; margin-top:24px; }
.cap{ display:inline-flex; align-items:center; gap:7px; padding:7px 13px; border-radius:var(--radius-pill);
  font-size:13px; font-weight:600; border:1px solid transparent; }
.cap-green{ color:var(--c-tag-green); background:var(--c-tag-green-bg); border-color:var(--c-tag-green-bd); }
.cap-blue{ color:var(--c-tag-blue); background:var(--c-tag-blue-bg); border-color:var(--c-tag-blue-bd); }
.cap-cyan{ color:var(--c-tag-cyan); background:var(--c-tag-cyan-bg); border-color:var(--c-tag-cyan-bd); }
.hero-cta{ display:flex; gap:12px; flex-wrap:wrap; margin-top:28px; }
@media(max-width:960px){
  .hero-inner{ grid-template-columns:1fr; gap:36px; min-height:0; }
}
@media(max-width:820px){
  .hero h1{ font-size:30px; }
}
@media(max-width:520px){
  .hero h1 .h1-sub{ font-size:.58em; }
  .hero-cta .button{ flex:1; justify-content:center; }
}

/* ---------- 按钮（§7.3） ---------- */
.button{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  border:0; border-radius:var(--radius-md); padding:12px 22px;
  font-size:14.5px; font-weight:650; cursor:pointer; font-family:var(--font-sans);
  transition:all var(--dur-base) var(--ease-out);
}
.button-primary{ background:linear-gradient(135deg,var(--blue),var(--blue-dark)); color:#fff;
  box-shadow:0 6px 18px rgba(40,120,240,.28); }
.button-primary:hover{ filter:brightness(1.07); box-shadow:0 10px 26px rgba(40,120,240,.34); }
.button-outline{ background:var(--c-outline-btn-bg); color:var(--c-title); border:1px solid var(--c-outline-btn-bd); }
.button-outline:hover{ background:var(--c-hover); border-color:var(--c-border-strong); }
.button:disabled{ opacity:.5; cursor:not-allowed; }
.button svg{ font-size:17px; }

/* ---------- API Console（§7.4，全站最需像素级还原） ---------- */
.api-console{
  background:var(--c-code-area-bg);
  border:1px solid var(--c-border); border-radius:var(--radius-lg);
  box-shadow:var(--c-shadow-elevated); overflow:hidden;
}
.protocol-tabs{ display:flex; gap:2px; padding:9px 10px; border-bottom:1px solid var(--c-border); overflow-x:auto; scrollbar-width:none; }
.protocol-tabs::-webkit-scrollbar{ display:none; }
.protocol-tabs button{
  border:0; background:transparent; color:var(--c-muted);
  font-size:12.5px; font-weight:600; font-family:var(--font-sans);
  padding:7px 13px; border-radius:var(--radius-sm); cursor:pointer; white-space:nowrap;
  transition:background-color var(--dur-fast) ease, color var(--dur-fast) ease;
}
.protocol-tabs button:hover{ background:var(--c-hover); }
.protocol-tabs button.active{ color:var(--c-protocol-tab-active); background:var(--c-hover); }
.endpoint-row{
  display:flex; align-items:center; gap:9px; padding:11px 14px;
  border-bottom:1px solid var(--c-border);
  font-family:var(--font-mono); font-size:12px; color:var(--c-faint);
  overflow-x:auto; scrollbar-width:thin; white-space:nowrap;
}
.endpoint-row > span{
  color:var(--c-endpoint-chip-fg); background:var(--c-endpoint-chip-bg);
  border:1px solid var(--c-tag-blue-bd); padding:2px 8px; border-radius:var(--radius-xs);
  font-size:11px; font-weight:700; flex:none;
}
.code-area{ height:220px; background:var(--c-code-area-bg); overflow:auto; scrollbar-width:thin; }
.code-area pre{ margin:0; padding:16px 18px; color:var(--c-code); font-size:12px; line-height:1.6; white-space:pre; }
.lbl-row{
  display:flex; justify-content:space-between; align-items:center; gap:10px;
  padding:9px 14px; border-top:1px solid var(--c-border);
  font-size:11px; font-weight:700; letter-spacing:.5px; color:var(--c-faint);
}
.lbl-row .ok{ color:var(--c-tag-green); }
.response-code{ height:112px; background:var(--c-response-bg); overflow:auto; scrollbar-width:thin; }
.response-code pre{ margin:0; padding:14px 18px; color:var(--c-code); font-size:12px; line-height:1.6; white-space:pre; }
.api-health{ display:flex; align-items:center; gap:8px; padding:9px 14px; border-top:1px solid var(--c-border);
  font-size:12px; color:var(--c-muted); }
.api-health .dot{ width:7px; height:7px; border-radius:50%; background:var(--green); flex:none; animation:pulse 2s infinite; }
.console-footer{ display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--c-border); background:var(--c-canvas); }
.console-footer > div{ padding:13px 14px; border-right:1px solid var(--c-border); }
.console-footer > div:last-child{ border-right:0; }
.console-footer small{ display:block; font-size:10px; letter-spacing:.6px; color:var(--c-faint); font-weight:700; }
.console-footer b{ display:block; margin-top:5px; font-size:16px; color:var(--c-stat); font-family:var(--font-mono); }
@media(max-width:640px){
  .console-footer{ grid-template-columns:repeat(2,1fr); }
  .console-footer > div:nth-child(2){ border-right:0; }
  .endpoint-row{ font-size:11px; }   /* 390 稿规则：URL 字号降至 11px 防截断 */
}

/* ---------- 平台动态 Feed（§6.3 首屏空态 + 公告条） ---------- */
.platform-feed{ padding-bottom:var(--section-gap); }
.feed-card{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  padding:13px 16px; border-radius:var(--radius-md);
  background:var(--c-card); border:1px solid var(--c-border);
}
.feed-card .dot{ width:8px; height:8px; border-radius:50%; background:var(--green); flex:none; animation:pulse 2s infinite; }
.feed-card .feed-text{ font-size:13.5px; font-weight:600; color:var(--c-title); }
.feed-card .feed-date{ margin-left:auto; font-size:12.5px; color:var(--c-faint); font-family:var(--font-mono); }
.feed-empty{ min-height:34px; display:flex; align-items:center; font-size:12.5px; color:var(--c-faint); margin-top:12px; }
@keyframes pulse{ 0%,100%{opacity:1} 50%{opacity:.35} }

/* ---------- 区块通用 ---------- */
.sec{ padding-bottom:var(--section-gap); }
.sec-head{ margin-bottom:28px; }
.sec-title{ font-size:var(--section-title-size); font-weight:var(--section-title-weight); letter-spacing:-.2px; color:var(--c-title); }
.sec-desc{ margin-top:10px; font-size:14.5px; line-height:1.7; color:var(--c-muted); max-width:78ch; }
.sec-desc code{ font-family:var(--font-mono); font-size:12.5px; color:var(--c-faint); }

/* reveal 动效（§9.2：no-js 兜底内容可见） */
.js .reveal-section{ opacity:0; transform:translateY(18px); }
.js .reveal-section.is-visible{
  opacity:1; transform:none;
  transition:opacity .6s var(--ease-out), transform .6s var(--ease-out);
}
@media(prefers-reduced-motion:reduce){
  .js .reveal-section{ opacity:1; transform:none; }
}

/* ---------- 客户端跑马灯（§7.5） ---------- */
.client-row{ padding-bottom:var(--section-gap); }
.client-row > strong{ display:block; font-size:19px; color:var(--c-title); margin-bottom:23px; font-weight:700; }
.client-row .cr-note{ font-size:13px; color:var(--c-faint); margin-top:14px; }
.client-row .cr-note a{ color:var(--c-link); font-weight:600; }
.marquee{
  position:relative; overflow:hidden; padding:6px 0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 var(--client-loop-edge,44px),#000 calc(100% - var(--client-loop-edge,44px)),transparent);
  mask-image:linear-gradient(90deg,transparent,#000 var(--client-loop-edge,44px),#000 calc(100% - var(--client-loop-edge,44px)),transparent);
}
.marquee-track{ display:flex; gap:22px; width:max-content; animation:marquee-scroll 46s linear infinite; }
.marquee:hover .marquee-track, .marquee:focus-within .marquee-track{ animation-play-state:paused; }
@keyframes marquee-scroll{ to{ transform:translateX(-50%); } }
.client-loop-link{
  display:flex; align-items:center; gap:9px; height:52px; padding:0 12px; flex:none;
  border:1px solid var(--c-border); border-radius:var(--radius-md); background:var(--c-card);
  font-size:14px; color:var(--c-text); font-weight:500;
  transition:border-color var(--dur-fast) ease, background-color var(--dur-fast) ease;
}
.client-loop-link:hover{ border-color:var(--c-link); background:var(--c-hover); }
.client-logo-frame{
  width:26px; height:26px; border-radius:7px; flex:none; display:grid; place-items:center;
  font-size:12px; font-weight:800; color:#fff; letter-spacing:0;
}
.client-loop-link span{ white-space:nowrap; }
.marquee-pause{
  margin-top:12px; display:inline-flex; align-items:center; gap:6px;
  background:transparent; border:1px solid var(--c-border); border-radius:var(--radius-pill);
  color:var(--c-muted); font-size:12px; padding:5px 12px; cursor:pointer; font-family:var(--font-sans);
  transition:color var(--dur-fast) ease, border-color var(--dur-fast) ease;
}
.marquee-pause:hover{ color:var(--c-link); border-color:var(--c-border-strong); }
@media(prefers-reduced-motion:reduce){ .marquee-track{ animation:none; } }
@media(max-width:960px){ :root{ --client-loop-edge:26px; } .client-loop-link{ height:52px; } }
@media(max-width:520px){ :root{ --client-loop-edge:18px; } .client-loop-link{ height:48px; padding:0 10px; font-size:13px; } }
@media(min-width:1240px){ .client-loop-link{ height:56px; } }

/* ---------- 三步快速接入（§7.6：nth-child 换肤，禁止拆成三个 class） ---------- */
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.step{
  --step-accent:var(--step-1-accent); --step-glow:var(--step-1-glow); --step-soft:var(--step-1-soft);
  background:var(--c-card); border:1px solid var(--c-border); border-radius:var(--radius-card);
  padding:22px; position:relative; overflow:hidden;
  transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out),
             border-color var(--dur-base) var(--ease-out), background-color var(--dur-theme) ease;
}
.step:nth-child(2){ --step-accent:var(--step-2-accent); --step-glow:var(--step-2-glow); --step-soft:var(--step-2-soft); }
.step:nth-child(3){ --step-accent:var(--step-3-accent); --step-glow:var(--step-3-glow); --step-soft:var(--step-3-soft); }
.step:hover{ transform:translateY(-3px); box-shadow:0 14px 34px var(--step-glow); border-color:var(--step-accent); }
.step-number{
  position:relative; width:38px; height:38px; border-radius:var(--radius-md);
  display:grid; place-items:center; margin-bottom:14px;
  background:var(--step-soft); color:var(--step-accent); font-weight:800; font-size:15px;
  border:1px solid var(--step-accent);
}
.step h3{ font-size:15.5px; margin:0 0 6px; color:var(--c-title); }
.step small{ font-size:13.5px; color:var(--c-muted); line-height:1.6; display:block; }
.step .accent-line{ position:absolute; left:0; top:0; width:3px; height:100%; background:var(--step-accent); opacity:.75; }
.steps-link{ display:inline-flex; align-items:center; gap:6px; margin-top:20px; font-size:14px; font-weight:650; color:var(--c-link); }
.steps-link:hover{ text-decoration:underline; }
@media(max-width:820px){ .steps{ grid-template-columns:1fr; } }

/* ---------- 走进 和世纪API（企业资质 §6.2，红线文案锁定） ---------- */
.company-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.company-card{ background:var(--c-card); border:1px solid var(--c-border); border-radius:var(--radius-card);
  box-shadow:var(--c-shadow); padding:18px; }
.company-card dt{ font-size:12px; color:var(--c-faint); font-weight:700; letter-spacing:.4px; margin-bottom:8px; }
.company-card dd{ margin:0; font-size:14px; color:var(--c-title); font-weight:600; line-height:1.55; word-break:break-all; }
.company-card dd.mono{ font-family:var(--font-mono); font-size:13.5px; }
.compute-row{
  margin-top:16px; display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  background:var(--c-card); border:1px solid var(--c-border); border-radius:var(--radius-card);
  box-shadow:var(--c-shadow); padding:16px 18px; font-size:13.5px; color:var(--c-text); line-height:1.7;
}
.compute-row b{ color:var(--c-title); }
.compute-row .verify{ margin-left:auto; font-size:13px; font-weight:650; color:var(--c-link); white-space:nowrap; }
.compute-row .verify:hover{ text-decoration:underline; }
@media(max-width:960px){ .company-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:520px){
  .company-grid{ grid-template-columns:1fr; }
  .compute-row .verify{ margin-left:0; width:100%; }
}

/* ---------- 商业合作卡（§7.7） ---------- */
.biz-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.biz-card{ background:var(--c-card); border:1px solid var(--c-border); border-radius:var(--radius-card);
  box-shadow:var(--c-shadow); padding:22px; display:flex; flex-direction:column;
  transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); }
.biz-card:hover{ transform:translateY(-3px); box-shadow:0 14px 34px rgba(51,65,85,.08); }
.biz-card h3{ font-size:16.5px; margin:0 0 12px; color:var(--c-title); display:flex; align-items:center; gap:9px; }
.biz-card h3 .bm-icon{ width:30px; height:30px; font-size:15px; border-radius:var(--radius-sm); }
.check-list{ list-style:none; margin:0 0 18px; padding:0; display:flex; flex-direction:column; gap:9px; }
.check-list li{ display:flex; gap:9px; font-size:13.5px; color:var(--c-muted); line-height:1.6; }
.check-list svg{ color:var(--green); flex:none; margin-top:3px; font-size:15px; }
.co-actions{ margin-top:auto; }
.co-btn{
  display:inline-flex; align-items:center; gap:6px; height:36px; padding:0 16px;
  border-radius:var(--radius-md); font-size:13px; font-weight:650;
  border:1px solid var(--c-outline-btn-bd); background:var(--c-outline-btn-bg); color:var(--c-title);
  transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease;
}
.co-btn:hover{ background:var(--c-hover); border-color:var(--c-border-strong); }
.co-btn-accent{ background:linear-gradient(135deg,var(--blue),var(--blue-dark)); border-color:transparent; color:#fff; }
.co-btn-accent:hover{ filter:brightness(1.07); background:linear-gradient(135deg,var(--blue),var(--blue-dark)); }
@media(max-width:960px){ .biz-grid{ grid-template-columns:1fr; } }

/* ---------- 文档与帮助（§7.7 resource cards） ---------- */
.resource-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.resource-panel{
  background:var(--c-card); border:1px solid var(--c-border); border-radius:var(--radius-card);
  box-shadow:var(--c-shadow); padding:20px;
  transition:transform var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
}
.resource-panel:hover{ transform:translateY(-3px); border-color:var(--c-border-strong); }
.resource-panel .rp-icon{
  width:40px; height:40px; border-radius:var(--radius-md); display:grid; place-items:center;
  margin-bottom:13px; font-size:19px;
  color:var(--c-tag-blue); background:var(--c-tag-blue-bg); border:1px solid var(--c-tag-blue-bd);
}
.resource-panel:nth-child(2n) .rp-icon{ color:var(--c-accent-violet); background:rgba(122,78,244,.08); border-color:rgba(122,78,244,.22); }
.resource-panel:nth-child(3n) .rp-icon{ color:var(--c-tag-green); background:var(--c-tag-green-bg); border-color:var(--c-tag-green-bd); }
.resource-panel h3{ font-size:15px; margin:0 0 6px; color:var(--c-title); }
.resource-panel small{ font-size:13px; color:var(--c-muted); line-height:1.6; display:block; }
@media(max-width:960px){ .resource-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:520px){ .resource-grid{ grid-template-columns:1fr; } }

/* ---------- 模型与协议覆盖 ---------- */
.coverage-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:22px; }
.coverage-stat{ background:var(--c-card); border:1px solid var(--c-border); border-radius:var(--radius-card);
  box-shadow:var(--c-shadow); padding:22px; text-align:center; }
.coverage-stat b{ display:block; font-size:34px; font-weight:800; color:var(--c-stat); font-family:var(--font-mono); letter-spacing:-.5px; }
.coverage-stat small{ display:block; margin-top:6px; font-size:13px; color:var(--c-muted); }
.coverage-panel{ background:var(--c-card); border:1px solid var(--c-border); border-radius:var(--radius-card);
  box-shadow:var(--c-shadow); padding:22px; }
.coverage-panel .cp-title{ font-size:14px; font-weight:700; color:var(--c-title); margin-bottom:14px; }
.brand-tags{ display:flex; flex-wrap:wrap; gap:9px; }
.brand-tag{ padding:6px 13px; border-radius:var(--radius-pill); font-size:13px; font-weight:600;
  color:var(--c-tag-blue); background:var(--c-tag-blue-bg); border:1px solid var(--c-tag-blue-bd); }
.brand-tag:nth-child(3n){ color:var(--c-tag-cyan); background:var(--c-tag-cyan-bg); border-color:var(--c-tag-cyan-bd); }
.brand-tag:nth-child(3n+1){ color:var(--c-accent-violet); background:rgba(122,78,244,.07); border-color:rgba(122,78,244,.22); }
.coverage-actions{ margin-top:18px; }
@media(max-width:520px){ .coverage-stats{ grid-template-columns:1fr; } }

/* ---------- FAQ（§7.8） ---------- */
.faq-tabs{ display:flex; gap:8px; margin-bottom:18px; }
.faq-tabs button{
  border:1px solid var(--c-border); background:var(--c-card); color:var(--c-muted);
  padding:9px 17px; border-radius:var(--radius-pill); font-size:13.5px; font-weight:650;
  cursor:pointer; font-family:var(--font-sans);
  transition:color var(--dur-fast) ease, background-color var(--dur-fast) ease, border-color var(--dur-fast) ease;
}
.faq-tabs button:hover{ color:var(--c-link); }
.faq-tabs button.active{ color:#fff; background:var(--blue); border-color:var(--blue); }
.faq-item{ border:1px solid var(--c-border); border-radius:var(--radius-md); background:var(--c-card); margin-bottom:10px; overflow:hidden; }
.faq-heading{
  width:100%; display:flex; justify-content:space-between; align-items:center; gap:12px;
  padding:15px 17px; background:transparent; border:0; color:var(--c-title);
  font-size:14px; font-weight:650; text-align:left; cursor:pointer; font-family:var(--font-sans);
}
.faq-heading svg{ transition:transform var(--dur-base) var(--ease-out); flex:none; color:var(--c-faint); }
.faq-item.open .faq-heading svg{ transform:rotate(180deg); }
.faq-answer{ display:grid; grid-template-rows:0fr; transition:grid-template-rows var(--dur-base) var(--ease-out); }
.faq-item.open .faq-answer{ grid-template-rows:1fr; }
.faq-answer > div{ overflow:hidden; }
.faq-answer p{ padding:0 17px 16px; font-size:13.5px; color:var(--c-muted); line-height:1.75; }
.faq-more{ display:inline-flex; align-items:center; gap:6px; margin-top:8px; font-size:13.5px; font-weight:650; color:var(--c-link); }
.faq-more:hover{ text-decoration:underline; }
@media(max-width:520px){ .faq-heading{ min-height:48px; } }

/* ---------- 收尾 CTA ---------- */
.bottom-cta{
  text-align:center; padding:56px 28px; border-radius:var(--radius-lg);
  background:var(--c-card); border:1px solid var(--c-border); box-shadow:var(--c-shadow);
  position:relative; overflow:hidden;
}
.bottom-cta::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(60% 90% at 50% 0%, rgba(40,120,240,.10), transparent 70%);
  pointer-events:none;
}
.bottom-cta h2{ font-size:var(--section-title-size); font-weight:var(--section-title-weight); margin:0 0 12px; position:relative; }
.bottom-cta p{ font-size:14.5px; color:var(--c-muted); max-width:56ch; margin:0 auto 24px; line-height:1.7; position:relative; }
.bottom-cta .cta-row{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; position:relative; }
@media(max-width:520px){ .bottom-cta .cta-row .button{ flex:1; } }

/* ---------- Footer（§7.9） ---------- */
.site-footer{ border-top:1px solid var(--c-border); padding:44px 0 40px; margin-top:0; }
.ft-grid{ display:grid; grid-template-columns:1.5fr repeat(4,1fr); gap:28px; }
.ft-brand .brand{ margin-bottom:14px; }
.ft-scope{ font-size:13px; color:var(--c-muted); line-height:1.75; max-width:34ch; }
.ft-addr{ font-size:12.5px; color:var(--c-faint); line-height:1.75; margin-top:12px; max-width:36ch; }
.ft-links h5{ font-size:13px; color:var(--c-title); margin:2px 0 13px; font-weight:700; letter-spacing:.2px; }
.ft-links ul{ list-style:none; margin:0; padding:0; }
.ft-links li{ margin-bottom:9px; }
.ft-links a{ font-size:13px; color:var(--c-muted); transition:color var(--dur-fast) ease; }
.ft-links a:hover{ color:var(--c-link); }
.ft-legal{ margin-top:30px; padding-top:20px; border-top:1px solid var(--c-border);
  display:flex; flex-wrap:wrap; gap:6px 22px; align-items:center;
  font-size:12.5px; color:var(--c-faint); line-height:1.8; }
.ft-legal .co-nowrap{ white-space:nowrap; }
.ft-legal a{ color:var(--c-faint); }
.ft-legal a:hover{ color:var(--c-link); }
@media(max-width:960px){ .ft-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:520px){ .ft-grid{ grid-template-columns:1fr; gap:24px; } }

/* ---------- 弹层（公告 / 模型列表） ---------- */
.modal-overlay{
  position:fixed; inset:0; z-index:100;
  background:rgba(15,23,42,.44);
  backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px);
  display:flex; align-items:center; justify-content:center; padding:20px;
  opacity:0; visibility:hidden;
  transition:opacity var(--dur-base) var(--ease-out), visibility var(--dur-base);
}
.modal-overlay.open{ opacity:1; visibility:visible; }
.modal-dialog{
  width:min(520px,100%); max-height:min(76vh,640px); overflow:auto;
  background:var(--c-popover); border:1px solid var(--c-border);
  border-radius:var(--radius-lg); box-shadow:var(--shadow-popover-light);
  padding:24px; transform:translateY(10px) scale(.98);
  transition:transform var(--dur-base) var(--ease-out);
}
.modal-overlay.open .modal-dialog{ transform:none; }
.modal-dialog h2{ font-size:18px; margin:0 0 6px; color:var(--c-title); display:flex; align-items:center; gap:9px; }
.modal-dialog .md-date{ font-size:12.5px; color:var(--c-faint); font-family:var(--font-mono); }
.modal-dialog .md-body{ margin-top:14px; font-size:14px; color:var(--c-text); line-height:1.75; }
.modal-dialog .md-body p{ margin:0 0 10px; }
.modal-dialog .md-actions{ display:flex; gap:10px; margin-top:20px; flex-wrap:wrap; }
.modal-dialog .md-actions .button{ flex:1; min-width:140px; }
.modal-close{ position:absolute; top:14px; right:14px; }
.md-list{ display:grid; grid-template-columns:repeat(2,1fr); gap:10px 20px; margin-top:14px; }
.md-list h4{ grid-column:1/-1; font-size:13px; color:var(--c-kicker); margin:12px 0 2px; font-weight:700; }
.md-list h4:first-child{ margin-top:0; }
.md-list span{ font-size:13px; color:var(--c-muted); font-family:var(--font-mono); }
@media(max-width:520px){ .md-list{ grid-template-columns:1fr; } }

/* 复制反馈 */
.copy-feedback{ font-size:12px; color:var(--c-tag-green); opacity:0; transition:opacity var(--dur-fast) ease; }
.copy-feedback.show{ opacity:1; }

/* no-smooth 工具类 */
.no-smooth{ scroll-behavior:auto; }

/* ============================================================================
 * 移动端重排规则（≤520px，设计稿 v2.0 §4 前端落地依据）
 * 置于文件末尾以确保覆盖同特异性的基础规则
 * ========================================================================== */
@media(max-width:520px){
  /* 容器：390px 稿，左右安全边距 16px */
  :root{ --shell-width: min(calc(100% - 32px), 390px); }

  /* 资质四宫格 → 2 列网格（禁止横向滚动） */
  .company-grid{ grid-template-columns:repeat(2,1fr); gap:12px; }
  .company-card{ padding:14px; }
  .company-card dd{ font-size:13px; }

  /* 文档与帮助 → 2 列网格 */
  .resource-grid{ grid-template-columns:repeat(2,1fr); gap:12px; }
  .resource-panel{ padding:14px; }
  .resource-panel .rp-icon{ width:34px; height:34px; font-size:16px; margin-bottom:10px; }

  /* 页脚 → 2 列 + 法律信息单列 */
  .ft-grid{ grid-template-columns:repeat(2,1fr); gap:22px; }

  /* 三步 / biz-card 纵向堆叠，间距 16px */
  .steps{ gap:16px; }
  .biz-grid{ gap:16px; }

  /* 跑马灯 → 换行网格（非滚动），隐藏副本与暂停控件 */
  .marquee{ -webkit-mask-image:none; mask-image:none; }
  .marquee-track{ flex-wrap:wrap; width:100%; animation:none; gap:10px; }
  .marquee-track .client-loop-link[aria-hidden="true"]{ display:none; }
  .marquee-pause{ display:none; }

  /* 触控目标 ≥ 44px */
  .icon-button, .nav-toggle{ width:44px; height:44px; }
  .header-login{ height:44px; padding:0 16px; }
  .button{ height:44px; }
  .co-btn{ height:44px; padding:0 18px; }
  .faq-heading{ min-height:48px; }

  /* 代码字号降至 11px（390 稿规则） */
  .code-area pre, .response-code pre{ font-size:11px; }
  .endpoint-row{ padding:10px 12px; }
  .console-footer b{ font-size:15px; }
  .coverage-stat b{ font-size:30px; }
}
