/* ==========================================================================
   UI 统一层 v10 — 顶部（导航 + 页头区）、产品卡、买家侧交互、内页问答
   v10 只改了一件事：右下角悬浮件（对话按钮 / 审阅钉 / 对话面板）的定位
   收进「0.3 几何令牌」，修掉实测到的圆心错位 6px、间隙四种值、
   有询价底栏时多抬 30px。详见 0.3 节与第 5 / 6 节注释。
   v9 是在文件最前面加「0.1 hidden 属性优先」兜底，让 `el.hidden = true`
   真的能隐藏元素（修登录弹层关不掉的根因）。v8 是把离角距离 22px -> 30px。
   --------------------------------------------------------------------------
   覆盖范围
     1) header —— 全站唯一的导航规范
     2) section.cs-hero —— 全站唯一的页头区规范
     3) article.card .card-media —— 产品卡媒体区（图片完整展示 + 整块可点）
     4) 站内搜索框（DOM 由 /assets/nav.v4.js 挂载）
   --------------------------------------------------------------------------
   背景：站上长期并存两套页面模板 ——
     · A 类（225 页）外链 CSS（/_astro/ 下的构建产物），标题用衬线，页头区 .cs-hero
     · B 类（ 12 页）内联 CSS（首页那套），标题用无衬线细体，页头区 .page-head
   两套的 logo 形态、导航项、CTA 配色、标题字体、页头底色与间距都不同，
   所以"顶部看上去有很多种"。本文件把顶部拉齐到**唯一一套规范**。

   原则
     · 字面色值 + 限定作用域（只命中 header 与 section.cs-hero），
       不触碰内容区，因此与页面原有 CSS 不冲突、无需改动原样式表。
     · 静态 CSS，不依赖 JS —— 导航样式即使脚本未执行也完整。
     · 加载位置：置于各页原有样式之后（</head> 之前），保证优先级。

   顶部规范
     导航：sticky 半透明米色 + 底边框 / 1180px 容器 / 铜色方块 AJMZ
           6 项导航（sans 14.5px·500）/ 常显搜索框 264px / 铜色 CTA
     页头：无底色无边框、上边距 64px
           面包屑 13.5px muted（链接铜色）
           小标签 12.5px 铜色大写·字距 .16em
           大标题 衬线 clamp(34px,4.4vw,52px)·600·字距 -.02em·22ch
           导语   19.5px ink-2·62ch
           数据条 4 列（窄屏 2 列）白卡 + 线色描边
   ========================================================================== */

/* ==========================================================================
   0.1 hidden 属性优先（全局兜底）—— 必须放在最前面
   --------------------------------------------------------------------------
   ⚠️ 这条是踩坑补的（2026-09-15）：我们自己的组件用 `el.hidden = true` 控制显隐，
      但浏览器默认的 `[hidden]{display:none}` 是**用户代理样式**，
      下面任何一条 `display:flex` 的作者样式都能把它盖掉 —— hidden 就失效了。
      症状：登录弹层点 × 关不掉（整个页面被遮罩盖住点不动）、
            "审阅模式"提示条常显、钉角标常显 0、助手角标常显 1。
   ⚠️ 只治「元素自身」是不够的，也不能只治「后代」——
      旧版写的是 `.ajmz-auth-modal [hidden]`（后代），压根没命中弹层自己。
   ⚠️ 新增组件时二选一：
        · 用 class 开关（`.is-open`），别用 hidden  —— 推荐；
        · 或者给元素加 `data-ajmz-ui` 标记，就能被下面第一条兜住。
   ========================================================================== */
[data-ajmz-ui][hidden],
.ajmz-auth-modal[hidden],
.ajmz-pin-banner[hidden],
.ajmz-pin-hl[hidden],
.ajmz-pin-count[hidden],
.ajmz-pin-panel[hidden],
.ajmz-bot-badge[hidden],
.ajmz-bot-panel[hidden],
.ajmz-q-picks[hidden],
.ajmz-q-hint[hidden],
.ajmz-results[hidden],
.ajmz-auth-modal [hidden],
.ajmz-pin-banner [hidden]{ display:none !important }

/* ---------- 0.2 字体：站上已自托管 Inter，外链 CSS 那批页面此前没加载它 ---------- */
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;
  src:url("/fonts/inter-latin-400-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;
  src:url("/fonts/inter-latin-500-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;
  src:url("/fonts/inter-latin-600-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122}
@font-face{font-family:"Inter";font-style:normal;font-weight:700;font-display:swap;
  src:url("/fonts/inter-latin-700-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122}

/* ---------- 0.3 右下角悬浮件几何令牌 ---------- */
/* 站上有 4 个东西会占右下角：对话按钮、审阅钉按钮、对话面板、询价底栏。
   它们互相之间要错开，以前每个位置各写一个魔法数，散在两个文件里共四份，
   于是实测出现：两个圆的圆心错开 6px、按钮间隙四种值、
   有底栏时空出 36px（注释却写 8px）。改成一处定义、三处引用。

   改这里就够了，别再往 quote.css 里写 bottom 覆盖。

   ⚠️ 整块必须声明在 body 上，**不能写在 :root**。
      CSS 自定义属性里的 var() 是在「声明它的那个元素」上完成替换的，
      不是在使用它的元素上 —— 写在 :root 的话：
        --ajmz-fab-bottom 在 html 上就把 var(--ajmz-tray-h) 替换成了 0px，
        再原样继承下来，body 上改的 64px 永远传不进去（实测踩过：
        底栏明明在，按钮却纹丝不动）。
      声明在 body 上，body 自己那一堆覆盖值就能一起参与替换。 */
body{
  /* 距右边 / 距底边（最下方那颗按钮 = 对话按钮） */
  --ajmz-fab-inset: 30px;
  --ajmz-fab-base: 30px;
  /* 两颗按钮的直径：主（对话）与次（审阅钉） */
  --ajmz-bot-size: 58px;
  --ajmz-pin-size: 46px;
  /* 唯一的一套间隙：按钮之间、按钮与面板、按钮与底栏，全用这个值 */
  --ajmz-fab-gap: 12px;

  /* 询价底栏的两个尺寸由 quote.css 声明（它才是底栏的属主）；
     没底栏时是 0，公式自动退回基础值。 */
  --ajmz-tray-h: 0px;
  --ajmz-tray-protrude: 0px;

  /* 圆心距右边缘。两颗圆直径不同，必须按**圆心**对齐 ——
     都锚右边缘的话小圆看起来会往左滑。 */
  --ajmz-fab-cx: calc(var(--ajmz-fab-inset) + var(--ajmz-bot-size) / 2);

  /* 主按钮的底边距：取「基础值」与「让开底栏所需」的较大者 */
  --ajmz-fab-bottom: max(
    var(--ajmz-fab-base),
    calc(var(--ajmz-tray-h) + var(--ajmz-tray-protrude) + var(--ajmz-fab-gap))
  );

  /* 第二槽位：审阅钉按钮与对话面板共用同一条基线（两者都紧贴主按钮上方） */
  --ajmz-slot-2: calc(var(--ajmz-fab-bottom) + var(--ajmz-bot-size) + var(--ajmz-fab-gap));
}

/* ==========================================================================
   1. 导航
   ========================================================================== */
header.nav,
header.site-header{
  /* display/height 必须显式声明：外部 CSS 里的 .nav{display:flex;height:72px}
     是给旧结构 <nav class="nav"> 写的，而新结构的 header 本身就叫 .nav，
     会被它命中、把导航压成固定高度的弹性行 → 内容宽度随内容浮动 */
  display:block; height:auto;
  position:sticky; top:0; z-index:200;
  background:rgba(250,248,245,.94);
  -webkit-backdrop-filter:saturate(180%) blur(8px);
  backdrop-filter:saturate(180%) blur(8px);
  border-bottom:1px solid #E2DDD5;
}
header.nav .nav-inner,
header.site-header .nav-inner,
header.site-header > .wrap{
  max-width:1180px; margin-inline:auto;
  padding:15px 24px;
  display:flex; align-items:center; gap:22px;
}
/* 品牌 */
header .brand{
  display:inline-flex; align-items:center; flex:none;
  text-decoration:none; font-weight:700; color:#141A21;
}
header .brand-mark{
  display:inline-flex; align-items:center; justify-content:center;
  width:auto;                 /* 必须显式声明：内联 CSS 里写死了 28px，会把 Z 挤出方块 */
  min-width:32px; height:31px; padding:0 11px; box-sizing:border-box;
  background:#9A6B3F; color:#fff; border-radius:8px;
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:13.5px; font-weight:700; line-height:1; letter-spacing:.04em;
}
/* 导航项 */
header .nav-links{
  display:flex; flex-wrap:nowrap; align-items:center; gap:22px;
  margin-left:auto;
}
header .nav-links a{
  display:inline-block; white-space:nowrap;
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:14.5px; font-weight:500; line-height:1.2;
  color:#2C3743; text-decoration:none;
  transition:color .15s ease;
}
header .nav-links a:hover,
header .nav-links a[aria-current="page"]{ color:#7A5432 }
/* CTA —— margin-left 归零：靠右由 .nav-links 的 margin-left:auto 统一决定，
   避免两处 auto 平分剩余空间导致导航与搜索框之间出现不可控的空隙 */
header .nav-cta{ flex:none; margin-left:0 }
header .nav-cta .btn,
header.nav .btn.btn-primary{
  display:inline-block; white-space:nowrap;
  padding:11px 20px; border:0; border-radius:6px;
  background:#9A6B3F; color:#fff;
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:14.5px; font-weight:600; line-height:1.2;
  text-decoration:none; cursor:pointer;
  transition:background .15s ease,transform .15s ease;
}
header .nav-cta .btn:hover,
header.nav .btn.btn-primary:hover{ background:#7A5432; transform:translateY(-1px) }

/* ==========================================================================
   2. 页头区（全站唯一：section.cs-hero）
   ========================================================================== */
section.cs-hero{
  padding:64px 0 0;
  background:transparent;
  border-bottom:0;
}
section.cs-hero > .wrap{
  max-width:1180px; margin-inline:auto; padding:0 24px;
}
/* 面包屑 */
section.cs-hero .crumbs,
section.cs-hero .crumb{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px;
  margin:0 0 22px;
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:13.5px; font-weight:400; line-height:1.5; color:#6B7683;
}
section.cs-hero .crumb{ display:block }
section.cs-hero .crumbs a,
section.cs-hero .crumb a{ color:#9A6B3F; text-decoration:none }
section.cs-hero .crumbs a:hover,
section.cs-hero .crumb a:hover{ text-decoration:underline }
section.cs-hero .crumbs .sep{ color:#C4BDB3; margin:0 2px }
section.cs-hero .crumbs .here{ color:#6B7683 }
/* 小标签 */
section.cs-hero .eyebrow{
  display:block;
  margin:0 0 16px;
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:12.5px; font-weight:700; line-height:1.4;
  letter-spacing:.16em; text-transform:uppercase; color:#9A6B3F;
}
/* 大标题 */
section.cs-hero h1{
  margin:0 0 22px; max-width:22ch;
  font-family:ui-serif,"Iowan Old Style","Palatino Linotype",Georgia,"Songti SC",serif;
  font-size:clamp(34px,4.4vw,52px); font-weight:600;
  line-height:1.14; letter-spacing:-.02em; color:#141A21;
}
/* 导语 */
section.cs-hero .cs-lede,
section.cs-hero .lead{
  margin:0 0 34px; max-width:62ch;
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:19.5px; font-weight:400; line-height:1.6; color:#2C3743;
}
/* 数据条 */
section.cs-hero .cs-facts,
section.cs-hero .facts{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  margin:8px 0 0;
  background:#E2DDD5; border:1px solid #E2DDD5;
  border-radius:6px; overflow:hidden;
}
section.cs-hero .cs-facts .cs-fact,
section.cs-hero .facts .fact{
  background:#fff; padding:20px 22px;
}
section.cs-hero .cs-facts dt,
section.cs-hero .facts dt{
  margin:0 0 6px;
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:11px; font-weight:700; line-height:1.4;
  letter-spacing:.1em; text-transform:uppercase; color:#6B7683;
}
section.cs-hero .cs-facts dd,
section.cs-hero .facts dd{
  margin:0;
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:19px; font-weight:600; line-height:1.3; color:#141A21;
}

/* ==========================================================================
   3. 搜索框（DOM 由 /assets/nav.v4.js 挂载，样式在此，纯静态）
   ========================================================================== */
header .ajmz-search-wrap{
  position:relative; flex:0 0 auto; width:264px; margin-left:2px;
}
header .ajmz-search{
  display:flex; align-items:center; gap:9px;
  height:44px; padding:0 16px; box-sizing:border-box;
  background:#fff; border:1px solid #CFC7BB; border-radius:999px;
  transition:border-color .15s ease,box-shadow .15s ease;
}
header .ajmz-search:focus-within{
  border-color:#9A6B3F; box-shadow:0 0 0 3px rgba(154,107,63,.12);
}
header .ajmz-search svg{
  flex:none; width:17px; height:17px;
  stroke:#6B7683; fill:none; stroke-width:1.8; stroke-linecap:round;
}
header .ajmz-search input{
  flex:1; min-width:0; border:0; outline:0; background:transparent;
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:15px; font-weight:400; line-height:1.4; color:#141A21;
  -webkit-appearance:none; appearance:none;
}
header .ajmz-search input::placeholder{ color:#6B7683 }
header .ajmz-search input::-webkit-search-cancel-button{ display:none }

/* 结果浮层 */
.ajmz-results{
  position:absolute; top:calc(100% + 8px); right:0;
  width:min(420px,88vw);
  background:#fff; border:1px solid #E2DDD5; border-radius:12px;
  box-shadow:0 18px 44px rgba(15,29,46,.18);
  overflow:hidden; z-index:300;
}
.ajmz-results[hidden]{ display:none }
.ajmz-results ul{ list-style:none; margin:0; padding:0; max-height:56vh; overflow:auto }
.ajmz-results li{ border-bottom:1px solid #F2EEE8 }
.ajmz-results li:last-child{ border-bottom:0 }
.ajmz-results a{ display:block; padding:11px 16px; text-decoration:none; color:#141A21 }
.ajmz-results a:hover,
.ajmz-results a[data-act="1"]{ background:#FAF8F5 }
.ajmz-results b{ font-weight:600 }
.ajmz-results em{ display:block; font-style:normal; font-size:13px; color:#6B7683; margin-top:2px }
.ajmz-results .ajmz-empty{ padding:14px 16px; color:#6B7683; font-size:15px; line-height:1.5 }
.ajmz-results .ajmz-empty a{ display:inline; padding:0; color:#9A6B3F; text-decoration:underline }
.ajmz-results .ajmz-foot{
  padding:9px 16px; border-top:1px solid #E2DDD5;
  font-size:13px; color:#6B7683;
}
.ajmz-results .ajmz-foot a{ display:inline; padding:0; color:#9A6B3F; text-decoration:underline }

/* ==========================================================================
   4. 产品卡（分类页 / L1 落地页 / 首页产品区）
   --------------------------------------------------------------------------
   图片本身是 1:1 —— 213 张卡片图里 203 张是 800×800 —— 但原容器是 4:3
   且用 object-fit:cover，于是左右被裁掉，只看到中间一块。
   这里统一为 1:1 容器 + contain：方形图正好填满，少数 4:3 图完整显示、
   两侧留白，两种都不再裁切。
   同时图片容器已由 div 改为 a（指向该产品详情页），整张图可点。
   ========================================================================== */
article.card .card-media{ aspect-ratio:1/1 }
article.card .card-media--none{ aspect-ratio:1/1 }
article.card .card-media img{ object-fit:contain }
article.card a.card-media{ display:block; text-decoration:none; color:inherit }
article.card a.card-media img{ transition:opacity .18s ease }
article.card a.card-media:hover img{ opacity:.88 }
article.card a.card-media:focus-visible{ outline:2px solid #9A6B3F; outline-offset:-2px }

/* ==========================================================================
   5. 询盘助手（右下角悬浮按钮 + 对话面板）
   --------------------------------------------------------------------------
   买家从任意页面点右下角即可开始对话；对话逻辑在 /assets/assistant.v3.js，
   视觉全部在此，便于一处调整。面板为固定定位，不影响页面布局。
   ========================================================================== */
/* 几何全部来自 0.3 节的令牌：这里是整套定位的**锚点**（其他三个都相对它推） */
.ajmz-bot-btn{
  position:fixed; right:var(--ajmz-fab-inset); bottom:var(--ajmz-fab-bottom); z-index:400;
  width:var(--ajmz-bot-size); height:var(--ajmz-bot-size);
  border-radius:50%; border:0; cursor:pointer;
  background:#9A6B3F; color:#fff; display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 30px rgba(20,26,33,.26);
  /* bottom 也要过渡：询价底栏出现时按钮要跟底栏一起滑上去，不能瞬移 */
  transition:transform .18s ease, background .18s ease, opacity .18s ease, bottom .24s ease;
}
.ajmz-bot-btn:hover{ background:#7A5432; transform:translateY(-2px) }
.ajmz-bot-btn.is-hidden{ opacity:0; pointer-events:none; transform:scale(.92) }
.ajmz-bot-btn svg{ width:27px; height:27px }
.ajmz-bot-badge{
  position:absolute; top:-3px; right:-3px; min-width:19px; height:19px;
  border-radius:999px; background:#16283C; color:#fff; font-size:11px; font-weight:700;
  display:flex; align-items:center; justify-content:center; border:2px solid #FAF8F5;
}

/* 面板占的正是「第二槽位」——与审阅钉按钮同一条基线，两者不会同时出现 */
.ajmz-bot-panel{
  position:fixed; right:var(--ajmz-fab-inset); bottom:var(--ajmz-slot-2); z-index:401;
  width:384px; height:min(620px, calc(100vh - var(--ajmz-slot-2) - 32px));
  display:none; flex-direction:column;
  background:#fff; border:1px solid #E2DDD5; border-radius:14px;
  box-shadow:0 24px 60px rgba(20,26,33,.22);
  overflow:hidden; text-align:left;
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
.ajmz-bot-panel.is-open{ display:flex }

.ajmz-bot-head{
  flex:none; display:flex; align-items:center; gap:10px;
  padding:13px 14px; background:#16283C; color:#fff;
}
.ajmz-bot-id{ display:flex; align-items:center; gap:10px; min-width:0 }
.ajmz-bot-ava{
  flex:none; display:inline-flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:8px; background:#9A6B3F;
  font-size:11px; font-weight:700; letter-spacing:.04em;
}
.ajmz-bot-id b{ display:block; font-size:14px; font-weight:600; line-height:1.3 }
.ajmz-bot-id em{ display:block; font-style:normal; font-size:11.5px; color:#B9C7D6; line-height:1.3 }
.ajmz-bot-close{
  margin-left:auto; flex:none; width:30px; height:30px; border:0; border-radius:8px;
  background:transparent; color:#B9C7D6; font-size:22px; line-height:1; cursor:pointer;
}
.ajmz-bot-close:hover{ background:rgba(255,255,255,.12); color:#fff }

.ajmz-bot-body{
  flex:1; overflow-y:auto; padding:16px 14px 6px;
  background:#FAF8F5; display:flex; flex-direction:column; gap:10px;
  scroll-behavior:smooth;
}
.ajmz-msg{ display:flex }
.ajmz-msg--bot{ justify-content:flex-start }
.ajmz-msg--me{ justify-content:flex-end }
.ajmz-bubble{
  max-width:85%; padding:10px 13px; border-radius:12px;
  font-size:14.5px; line-height:1.55; white-space:pre-line; word-break:break-word;
}
.ajmz-msg--bot .ajmz-bubble{ background:#fff; border:1px solid #E7E2DA; color:#2C3743; border-bottom-left-radius:4px }
.ajmz-msg--me .ajmz-bubble{ background:#9A6B3F; color:#fff; border-bottom-right-radius:4px }
.ajmz-bubble a{ color:#9A6B3F; text-decoration:underline }
.ajmz-msg--me .ajmz-bubble a{ color:#fff }
.ajmz-bubble p{ margin:0 0 8px }
.ajmz-bubble p:last-child{ margin-bottom:0 }

.ajmz-typing{ display:inline-flex; gap:3px; align-items:center; height:14px }
.ajmz-typing i{
  width:6px; height:6px; border-radius:50%; background:#B4B2A9;
  animation:ajmz-dot 1.1s infinite ease-in-out;
}
.ajmz-typing i:nth-child(2){ animation-delay:.15s }
.ajmz-typing i:nth-child(3){ animation-delay:.3s }
@keyframes ajmz-dot{ 0%,60%,100%{ opacity:.35; transform:translateY(0) } 30%{ opacity:1; transform:translateY(-3px) } }

.ajmz-bot-foot{
  flex:none; padding:10px 14px 12px; background:#fff; border-top:1px solid #EFEAE2;
}
.ajmz-bot-quick{ display:flex; flex-wrap:wrap; gap:7px; margin-bottom:9px }
.ajmz-bot-quick:empty{ display:none }
.ajmz-chip{
  border:1px solid #D9D2C7; background:#fff; color:#2C3743; border-radius:999px;
  padding:7px 13px; font-size:13.5px; line-height:1.2; cursor:pointer;
  font-family:inherit; transition:border-color .14s ease, background .14s ease, color .14s ease;
}
.ajmz-chip:hover{ border-color:#9A6B3F; background:#FBF6F0; color:#7A5432 }
.ajmz-bot-send{ display:flex; align-items:center; gap:8px }
.ajmz-bot-send input{
  flex:1; min-width:0; height:42px; padding:0 14px; box-sizing:border-box;
  border:1px solid #D9D2C7; border-radius:999px; outline:0;
  font-family:inherit; font-size:14.5px; color:#141A21; background:#fff;
  -webkit-appearance:none; appearance:none;
}
.ajmz-bot-send input:focus{ border-color:#9A6B3F; box-shadow:0 0 0 3px rgba(154,107,63,.12) }
.ajmz-bot-send input:disabled{ background:#F6F3EE; color:#9AA0A6 }
.ajmz-bot-send button{
  flex:none; width:42px; height:42px; border:0; border-radius:50%; cursor:pointer;
  background:#9A6B3F; color:#fff; display:flex; align-items:center; justify-content:center;
  transition:background .14s ease;
}
.ajmz-bot-send button:hover{ background:#7A5432 }
.ajmz-bot-send button:disabled{ background:#C9C2B6; cursor:not-allowed }
.ajmz-bot-send button svg{ width:19px; height:19px }
.ajmz-bot-tip{ margin:9px 0 0; font-size:11.5px; line-height:1.45; color:#8A9099 }
.ajmz-bot-tip a{ color:#9A6B3F }

/* 联系信息字段 */
.ajmz-fields{ display:flex; flex-direction:column; gap:8px; width:100% }
.ajmz-fields label{ display:flex; flex-direction:column; gap:4px }
.ajmz-fields span{ font-size:12px; font-weight:600; color:#5F6B77; letter-spacing:.01em }
.ajmz-fields input{
  height:40px; padding:0 12px; box-sizing:border-box;
  border:1px solid #D9D2C7; border-radius:9px; outline:0;
  font-family:inherit; font-size:14.5px; color:#141A21; background:#fff;
  -webkit-appearance:none; appearance:none;
}
.ajmz-fields input:focus{ border-color:#9A6B3F; box-shadow:0 0 0 3px rgba(154,107,63,.12) }
.ajmz-btn-primary{
  margin-top:4px; height:42px; border:0; border-radius:9px; cursor:pointer;
  background:#9A6B3F; color:#fff; font-family:inherit; font-size:14.5px; font-weight:600;
  transition:background .14s ease;
}
.ajmz-btn-primary:hover{ background:#7A5432 }

/* 需求摘要 */
.ajmz-rcap{
  margin:8px 0 4px; padding:0; display:flex; flex-direction:column; gap:6px;
  border-top:1px solid #EFEAE2; padding-top:8px;
}
.ajmz-rcap > div{ display:flex; gap:8px; font-size:13.5px; line-height:1.45 }
.ajmz-rcap dt{ flex:none; width:82px; color:#6B7683; font-weight:600 }
.ajmz-rcap dd{ margin:0; color:#141A21; word-break:break-word }

/* ==========================================================================
   站内审阅钉（仅内部员工，逻辑在 /assets/pinmark.v3.js）
   --------------------------------------------------------------------------
   普通访客不带 ?review=1 时脚本不挂载任何元素，页面上看不到任何东西。
   全部选择器都在 .ajmz-pin-* / #ajmz-pin-layer 命名空间下，且都是
   fixed / absolute 定位，不会影响页面布局。
   面板用 position:fixed（粘在视口右侧）；批注模式的顶部提示条会压住面板
   顶端，所以 top 由 JS 按提示条是否可见来设置。
   ========================================================================== */
/* 右下角钉按钮：占「第二槽位」（对话按钮正上方，同一个 12px 间隙）。
   ⚠️ 右边界不能用 --ajmz-fab-inset —— 它比对话按钮小（46 vs 58），
      都锚右边界的话圆心会错开 6px，小圆看起来往左滑。
      按**圆心**对齐：right = 圆心轴 - 自身半径。 */
.ajmz-pin-btn{
  position:fixed; right:calc(var(--ajmz-fab-cx) - var(--ajmz-pin-size) / 2);
  bottom:var(--ajmz-slot-2); z-index:400;
  width:var(--ajmz-pin-size); height:var(--ajmz-pin-size);
  border-radius:50%; cursor:pointer;
  background:#fff; color:#16283C; display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 18px rgba(20,26,33,.18); border:1px solid #E2DDD5;
  transition:transform .18s ease, background .18s ease, color .18s ease, bottom .24s ease;
}
.ajmz-pin-btn:hover{ transform:translateY(-2px) }
.ajmz-pin-btn.is-active{ background:#9A6B3F; color:#fff; border-color:#9A6B3F }
.ajmz-pin-btn svg{ width:21px; height:21px }
.ajmz-pin-count{
  position:absolute; top:-4px; right:-4px; min-width:19px; height:19px; padding:0 5px;
  border-radius:999px; background:#B4232A; color:#fff; font-size:11px; font-weight:700;
  display:flex; align-items:center; justify-content:center; border:2px solid #FAF8F5;
  font-style:normal;
}
/* 批注模式下把询盘助手按钮藏起来，避免误点 */
.ajmz-pin-hide-bot{ opacity:0 !important; pointer-events:none !important }

/* 顶部提示条 */
.ajmz-pin-banner{
  position:fixed; top:0; left:0; right:0; z-index:500;
  display:flex; align-items:center; justify-content:center; gap:16px; flex-wrap:wrap;
  padding:9px 18px; background:#16283C; color:#fff; font-size:13.5px;
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
.ajmz-pin-banner b{ color:#E8C79A }
.ajmz-pin-banner-ops{ display:flex; gap:8px }
.ajmz-pin-banner button{
  font:inherit; font-size:12.5px; padding:4px 11px; border-radius:999px; cursor:pointer;
  background:rgba(255,255,255,.12); color:#fff; border:1px solid rgba(255,255,255,.28);
}
.ajmz-pin-banner button:hover{ background:rgba(255,255,255,.22) }
.ajmz-pin-banner button i{ font-style:normal; font-weight:700; color:#E8C79A }

/* 元素高亮框（跟随鼠标下的元素） */
.ajmz-pin-hl{
  position:fixed; z-index:498; pointer-events:none;
  outline:2px solid #9A6B3F; background:rgba(154,107,63,.10); border-radius:2px;
}
.ajmz-pin-hl::after{
  content:attr(data-label); position:absolute; left:-2px; top:-23px;
  background:#9A6B3F; color:#fff; font-size:11px; font-weight:600; padding:2px 7px;
  border-radius:4px; white-space:nowrap; max-width:60vw; overflow:hidden;
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}
body.ajmz-pin-cursor, body.ajmz-pin-cursor *{ cursor:crosshair !important }

/* 钉标记层：整层不吃鼠标事件，只有标记本身可点 */
#ajmz-pin-layer{
  position:absolute; top:0; left:0; width:100%; height:0;
  z-index:497; pointer-events:none;
}
.ajmz-pin-mark{
  position:absolute; pointer-events:auto; cursor:pointer; padding:0;
  width:26px; height:26px; border-radius:50%; border:2px solid #fff;
  background:#9A6B3F; color:#fff; font-size:12px; font-weight:700; line-height:1;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 3px 10px rgba(20,26,33,.3);
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}
.ajmz-pin-mark:hover{ transform:scale(1.12) }
.ajmz-pin-mark.is-empty{ background:#fff; color:#9A6B3F; border-color:#9A6B3F }
.ajmz-pin-mark.is-done{ background:#8C97A3 }
/* 本页已有的标注（含同事提交的）—— 只读，灰色小点，悬停看内容与审核状态 */
.ajmz-pin-mark.is-existing{
  background:#B9C2CC; border-color:#fff; opacity:.7;
  font-size:15px; line-height:1;
}
.ajmz-pin-mark.is-existing:hover{ opacity:1; transform:scale(1.15) }

/* 右侧清单面板 */
.ajmz-pin-panel{
  position:fixed; right:0; top:14px; z-index:496; width:392px;
  max-height:calc(100vh - 28px); display:none; flex-direction:column;
  background:#fff; border:1px solid #E2DDD5; border-right:0;
  border-radius:14px 0 0 14px; box-shadow:0 18px 48px rgba(20,26,33,.20);
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:13.5px; color:#141A21; overflow:hidden; text-align:left;
}
.ajmz-pin-panel.is-open{ display:flex }
.ajmz-pin-phead{
  flex:none; display:flex; align-items:center; gap:9px;
  padding:12px 14px; background:#16283C; color:#fff;
}
.ajmz-pin-phead b{ font-size:14.5px; font-weight:600 }
.ajmz-pin-hint{ font-size:11.5px; color:#B9C7D6; margin-left:auto }
.ajmz-pin-close{
  flex:none; width:24px; height:24px; border-radius:6px; border:0; cursor:pointer;
  background:rgba(255,255,255,.12); color:#fff; font-size:17px; line-height:1;
}
.ajmz-pin-close:hover{ background:rgba(255,255,255,.24) }

.ajmz-pin-who{ flex:none; display:flex; gap:8px; padding:10px 14px; border-bottom:1px solid #EEE9E2 }
.ajmz-pin-who input{
  flex:1; min-width:0; height:32px; padding:0 10px; font:inherit; font-size:13px;
  border:1px solid #DED8CF; border-radius:7px; background:#FCFAF8; color:#141A21;
  box-sizing:border-box;
}
.ajmz-pin-who input:focus{ outline:0; border-color:#9A6B3F; background:#fff }
/* v3 起身份来自登录 token，不再手填名字，这里只是一行说明 */
.ajmz-pin-me{ font-size:12.5px; color:#5A6470 }
.ajmz-pin-me::before{
  content:''; display:inline-block; width:7px; height:7px; border-radius:50%;
  background:#1E6B45; margin-right:7px; vertical-align:middle;
}

.ajmz-pin-list{
  flex:1; overflow-y:auto; padding:10px 14px;
  display:flex; flex-direction:column; gap:10px;
}
.ajmz-pin-empty{ color:#6B7683; font-size:13px; line-height:1.6; margin:8px 0 }
.ajmz-pin-empty b{ color:#9A6B3F }

.ajmz-pin-item{ border:1px solid #E9E4DC; border-radius:10px; padding:9px 10px; background:#FDFCFA }
.ajmz-pin-item.is-done{ opacity:.62 }
.ajmz-pin-ihead{ display:flex; align-items:center; gap:7px }
.ajmz-pin-no{
  flex:none; width:20px; height:20px; border-radius:50%; background:#9A6B3F; color:#fff;
  font-size:11px; font-weight:700; display:flex; align-items:center; justify-content:center;
}
.ajmz-pin-sel{
  min-width:0; flex:1; font-size:11.5px; color:#5A6470; background:#F3EFE9;
  padding:2px 6px; border-radius:5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.ajmz-pin-jump{
  flex:none; max-width:96px; font-size:11px; color:#9A6B3F; text-decoration:none;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.ajmz-pin-tag{ flex:none; font-size:10.5px; color:#fff; background:#8C97A3; padding:2px 6px; border-radius:4px }
.ajmz-pin-del{
  flex:none; width:20px; height:20px; border-radius:5px; border:0; cursor:pointer;
  background:transparent; color:#9AA3AD; font-size:15px; line-height:1;
}
.ajmz-pin-del:hover{ background:#F3E7E7; color:#B4232A }
.ajmz-pin-quote{
  margin:7px 0 0; font-size:12px; color:#6B7683; line-height:1.5; padding-left:8px;
  border-left:2px solid #E2DDD5;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.ajmz-pin-irow{ display:flex; align-items:center; gap:8px; margin-top:7px }
.ajmz-pin-irow select{
  height:28px; font:inherit; font-size:12.5px; border:1px solid #DED8CF; border-radius:6px;
  background:#fff; color:#141A21; padding:0 6px;
}
.ajmz-pin-pos{ margin-left:auto; font-size:11px; color:#8C97A3 }
.ajmz-pin-item textarea{
  width:100%; margin-top:7px; padding:7px 9px; box-sizing:border-box;
  font:inherit; font-size:13px; line-height:1.5; resize:vertical;
  border:1px solid #DED8CF; border-radius:7px; background:#fff; color:#141A21;
}
.ajmz-pin-item textarea:focus{ outline:0; border-color:#9A6B3F }

.ajmz-pin-foot{
  flex:none; display:flex; flex-wrap:wrap; gap:8px; padding:11px 14px;
  border-top:1px solid #EEE9E2; background:#FCFAF8;
}
.ajmz-pin-foot button{
  font:inherit; font-size:13px; font-weight:600; padding:8px 13px; border-radius:8px;
  cursor:pointer; border:1px solid #DED8CF; background:#fff; color:#16283C;
}
.ajmz-pin-foot button:hover:not(:disabled){ border-color:#9A6B3F; color:#9A6B3F }
.ajmz-pin-foot button:disabled{ opacity:.45; cursor:not-allowed }
.ajmz-pin-foot .ajmz-pin-submit{ flex:1; background:#9A6B3F; border-color:#9A6B3F; color:#fff }
.ajmz-pin-foot .ajmz-pin-submit:hover:not(:disabled){ background:#7A5432; color:#fff }
.ajmz-pin-status{ flex:none; padding:0 14px; font-size:12.5px; line-height:1.5; color:#6B7683 }
.ajmz-pin-status:not(:empty){ padding-bottom:11px }
.ajmz-pin-status.is-ok{ color:#1E6B45 }
.ajmz-pin-status.is-warn{ color:#B4232A }

/* ==========================================================================
   7. 账号门（导航入口 + 登录/注册弹层 + 账户面板）
   --------------------------------------------------------------------------
   逻辑在 /assets/auth.v1.js。同一套界面服务两件事：
     · 员工登录 → 解锁「审阅钉」（登录前连钉的按钮都不存在）
     · 客户注册/登录 → 查看自己的询价与订单
   ⚠️ 弹层用 hidden 属性控制显隐（表单 / 账户面板切换）。
      兜底规则在文件最前面的「0.1 hidden 属性优先」——
      注意那里必须**同时**覆盖元素自身（`.ajmz-auth-modal[hidden]`）与后代
      （`.ajmz-auth-modal [hidden]`），只写后代会让弹层本身关不掉。
   ========================================================================== */
.ajmz-auth-modal [hidden]{ display:none !important }

/* --- 导航入口 --- */
header .ajmz-auth-btn{
  flex:none; display:inline-flex; align-items:center; gap:7px;
  height:38px; padding:0 13px; border-radius:999px; cursor:pointer;
  background:transparent; border:1px solid #DED8CF; color:#2C3743;
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:14px; font-weight:500; white-space:nowrap; margin-left:0;
  transition:border-color .15s ease, color .15s ease, background .15s ease;
}
header .ajmz-auth-btn:hover{ border-color:#9A6B3F; color:#9A6B3F }
header .ajmz-auth-btn svg{ width:17px; height:17px }
header .ajmz-auth-btn.is-in{ background:#F7F2EB; border-color:#E4D9CB }
header .ajmz-auth-btn.is-staff{ border-color:#9A6B3F }
.ajmz-auth-ava{
  flex:none; width:22px; height:22px; border-radius:50%; background:#9A6B3F; color:#fff;
  font-size:11px; font-weight:700; display:flex; align-items:center; justify-content:center;
}
.ajmz-auth-ava.lg{ width:38px; height:38px; font-size:15px }

/* --- 弹层 --- */
body.ajmz-auth-lock{ overflow:hidden }

.ajmz-auth-modal{
  position:fixed; inset:0; z-index:600; display:flex; align-items:center; justify-content:center;
  padding:20px; background:rgba(20,26,33,.46);
  -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:14px; color:#141A21; text-align:left; line-height:1.5;
}
.ajmz-auth-card{
  position:relative; width:100%; max-width:432px; max-height:calc(100vh - 40px);
  overflow-y:auto; background:#fff; border-radius:16px; padding:26px 26px 22px;
  box-shadow:0 30px 80px rgba(20,26,33,.34);
}
.ajmz-auth-x{
  position:absolute; top:14px; right:14px; width:30px; height:30px; border:0; cursor:pointer;
  border-radius:8px; background:#F3EFE9; color:#5A6470; font-size:19px; line-height:1;
}
.ajmz-auth-x:hover{ background:#EAE3D9; color:#141A21 }
.ajmz-auth-brand{ display:flex; align-items:center; gap:10px; margin-bottom:18px }
.ajmz-auth-mark{
  display:inline-flex; align-items:center; justify-content:center;
  padding:0 11px; height:31px; border-radius:8px; background:#9A6B3F; color:#fff;
  font-size:13.5px; font-weight:700; letter-spacing:.04em;
}
.ajmz-auth-title{ font-size:17px; font-weight:600 }

.ajmz-auth-tabs{ display:flex; gap:6px; margin-bottom:18px; background:#F3EFE9; padding:4px; border-radius:10px }
.ajmz-auth-tabs button{
  flex:1; font:inherit; font-size:13.5px; font-weight:600; padding:8px 10px;
  border:0; border-radius:7px; cursor:pointer; background:transparent; color:#6B7683;
}
.ajmz-auth-tabs button.is-on{ background:#fff; color:#141A21; box-shadow:0 1px 3px rgba(20,26,33,.10) }

.ajmz-auth-form{ display:flex; flex-direction:column; gap:13px }
.ajmz-auth-form label{ display:flex; flex-direction:column; gap:5px }
.ajmz-auth-form label span{ font-size:12.5px; font-weight:600; color:#5A6470 }
.ajmz-auth-form input{
  height:42px; padding:0 13px; box-sizing:border-box; width:100%;
  font:inherit; font-size:14.5px; color:#141A21;
  border:1px solid #DED8CF; border-radius:9px; background:#FCFAF8;
  transition:border-color .15s ease, background .15s ease;
}
.ajmz-auth-form input:focus{ outline:0; border-color:#9A6B3F; background:#fff }
.ajmz-auth-2col{ display:grid; grid-template-columns:1fr 1fr; gap:13px }
.ajmz-auth-go{
  height:44px; margin-top:3px; border:0; border-radius:9px; cursor:pointer;
  background:#9A6B3F; color:#fff; font:inherit; font-size:15px; font-weight:600;
  transition:background .15s ease;
}
.ajmz-auth-go:hover:not(:disabled){ background:#7A5432 }
.ajmz-auth-go:disabled{ opacity:.6; cursor:default }
.ajmz-auth-cancel{
  height:40px; margin-top:8px; border:1px solid #E2DDD5; border-radius:9px; cursor:pointer;
  background:#fff; color:#5A6470; font:inherit; font-size:14px; font-weight:500;
  transition:border-color .15s ease, color .15s ease;
}
.ajmz-auth-cancel:hover{ border-color:#B9B0A4; color:#141A21 }
.ajmz-auth-hint{ margin:0; font-size:12.5px; line-height:1.6; color:#6B7683 }
.ajmz-auth-hint.is-ok{ color:#1E6B45 }
.ajmz-auth-hint a{ color:#9A6B3F }
.ajmz-auth-msg{ margin:12px 0 0; font-size:12.5px; line-height:1.6; color:#6B7683 }
.ajmz-auth-msg.is-warn{ color:#B4232A }
.ajmz-auth-msg.is-note{ color:#8A6A2F; background:#FBF6EC; border:1px solid #EFE2C9;
  border-radius:8px; padding:9px 11px }
.ajmz-auth-msg a{ color:inherit; text-decoration:underline }

/* --- 已登录的账户面板 --- */
.ajmz-auth-account{ display:flex; flex-direction:column; gap:14px }
.ajmz-auth-me{ display:flex; align-items:center; gap:11px }
.ajmz-auth-me b{ display:block; font-size:15px; font-weight:600 }
.ajmz-auth-me em{ display:block; font-style:normal; font-size:12.5px; color:#6B7683 }
.ajmz-auth-tiles{ display:grid; grid-template-columns:1fr 1fr; gap:10px }
.ajmz-auth-tile{
  border:1px solid #E9E4DC; border-radius:10px; padding:11px 12px; background:#FDFCFA;
}
.ajmz-auth-tile b{ display:block; font-size:20px; font-weight:700; color:#16283C }
.ajmz-auth-tile span{ font-size:12px; color:#6B7683 }
.ajmz-auth-list{
  border:1px solid #E9E4DC; border-radius:10px; padding:11px 12px; background:#FDFCFA;
  max-height:210px; overflow-y:auto;
}
.ajmz-auth-orow{
  display:flex; align-items:center; gap:9px; padding:6px 0; border-bottom:1px solid #F0EBE3;
  font-size:13px;
}
.ajmz-auth-orow:last-child{ border-bottom:0 }
.ajmz-auth-orow b{ font-weight:600; color:#16283C }
.ajmz-auth-orow span{ color:#6B7683; font-size:12px }
.ajmz-auth-orow em{ margin-left:auto; font-style:normal; font-size:12px; color:#9A6B3F }
.ajmz-auth-foot{ display:flex; justify-content:flex-end }
.ajmz-auth-out{
  font:inherit; font-size:13.5px; font-weight:600; padding:9px 15px; cursor:pointer;
  border:1px solid #DED8CF; border-radius:9px; background:#fff; color:#5A6470;
}
.ajmz-auth-out:hover{ border-color:#B4232A; color:#B4232A }

/* 我提交过的标注（含审核状态） */
.ajmz-auth-arow{
  display:flex; align-items:flex-start; gap:9px; padding:7px 0;
  border-bottom:1px solid #F0EBE3;
}
.ajmz-auth-arow:last-child{ border-bottom:0 }
.ajmz-auth-arow b{ display:block; font-size:13px; font-weight:600; color:#16283C; line-height:1.4 }
.ajmz-auth-arow em{ display:block; font-style:normal; font-size:11.5px; color:#8C97A3; margin-top:2px }
.ajmz-auth-st{
  flex:none; font-size:11px; font-weight:600; padding:2px 7px; border-radius:5px;
  background:#F3EFE9; color:#6B7683; white-space:nowrap; margin-top:1px;
}
.ajmz-auth-st.st-pending{ background:#FBF3E4; color:#8A6A2F }
.ajmz-auth-st.st-accepted{ background:#EAF3EE; color:#1E6B45 }
.ajmz-auth-st.st-rejected{ background:#F7EAEA; color:#B4232A }
.ajmz-auth-st.st-done{ background:#EAEEF2; color:#4A5A6A }

/* ==========================================================================
   8. 响应式
   ========================================================================== */
@media (max-width:1280px){
  header .ajmz-search-wrap{ width:216px }
  header.nav .nav-inner,
  header.site-header .nav-inner,
  header.site-header > .wrap{ gap:18px }
  header .nav-links{ gap:18px }
}
@media (max-width:1120px){
  header .ajmz-search-wrap{ width:176px }
  header .nav-links a{ font-size:14px }
  /* 账号入口收成纯图标，避免导航挤爆 */
  header .ajmz-auth-txt{ display:none }
  header .ajmz-auth-btn{ padding:0 10px; gap:6px }
}
@media (max-width:980px){
  header .ajmz-search-wrap{ display:none }
  /* 窄屏：导航换行到第二行并横向滚动。
     旧模板在 <1024px 直接把导航 display:none 且没有替代入口（等于移动端无导航），
     这里给一个可用的方案。 */
  header.nav .nav-inner,
  header.site-header .nav-inner,
  header.site-header > .wrap{ padding:13px 18px; gap:14px; flex-wrap:wrap }
  header .nav-links{
    order:3; width:100%; margin-left:0; gap:16px;
    overflow-x:auto; -webkit-overflow-scrolling:touch;
    padding-bottom:2px; scrollbar-width:none;
  }
  header .nav-links::-webkit-scrollbar{ display:none }
}
@media (max-width:860px){
  section.cs-hero{ padding:44px 0 0 }
  section.cs-hero .cs-facts,
  section.cs-hero .facts{ grid-template-columns:repeat(2,1fr) }
  section.cs-hero .cs-lede,
  section.cs-hero .lead{ font-size:17.5px }
}
/* 窄屏：对话面板占满屏幕，悬浮按钮缩小并避开拇指区 */
@media (max-width:520px){
  .ajmz-bot-panel{
    right:0; bottom:0; width:100%; height:100%;
    border-radius:0; border:0; box-shadow:none;
  }
  /* 窄屏只改令牌，不重写定位 —— 位置公式与桌面同一套（同样必须写在 body 上） */
  body{
    --ajmz-fab-inset: 18px;
    --ajmz-fab-base: 18px;
    --ajmz-bot-size: 54px;
    --ajmz-pin-size: 42px;
  }
  .ajmz-bot-btn{ width:var(--ajmz-bot-size); height:var(--ajmz-bot-size) }
  .ajmz-bot-btn svg{ width:25px; height:25px }
  .ajmz-bubble{ max-width:90% }
  .ajmz-rcap dt{ width:70px }
  /* 审阅钉：窄屏下清单面板占满宽度，钉按钮上移避让 */
  .ajmz-pin-panel{
    width:100%; max-width:100%; max-height:calc(100vh - 70px);
    border-radius:0; border-left:0;
  }
  .ajmz-pin-btn{ width:var(--ajmz-pin-size); height:var(--ajmz-pin-size) }
  .ajmz-pin-btn svg{ width:19px; height:19px }
  .ajmz-pin-banner{ font-size:12.5px; padding:7px 12px; gap:9px }
  /* 账号弹层窄屏全屏 */
  .ajmz-auth-modal{ padding:0; align-items:stretch }
  .ajmz-auth-card{ max-width:100%; max-height:100vh; border-radius:0; padding:24px 18px }
  .ajmz-auth-2col{ grid-template-columns:1fr }
}
/* 右侧那两块面板打开时，把钉按钮挪到面板左边，别被整块盖住。
   382+30+... = 面板宽 384~392 + 右间距 30 + 8px 间隙 = 422px（两块面板宽度接近，共用一个值）。
   窄屏面板占满宽度，挪不走，此时钉按钮被盖住属预期。 */
@media (min-width:981px){
  body.ajmz-pin-panel-open .ajmz-pin-btn{ right:422px }
  /* :has() 读的是对话面板的 .is-open（assistant 脚本没加 body 类）。
     浏览器不支持 :has() 时这条整条被忽略 —— 退回旧行为，不会坏。 */
  body:has(.ajmz-bot-panel.is-open) .ajmz-pin-btn{ right:422px }
}

/* ==========================================================================
   9. 内页问答（details / summary）
   --------------------------------------------------------------------------
   /faq/ 这类内页没有首页那份内联样式，问答折叠块得由共享层提供。
   规则与首页内联的 .faq 保持一致，避免同一组件两处渲染不同。
   ========================================================================== */
  /* 内页用的是另一套设计令牌：--line/--card/--paper/--ink/--muted/--copper
     （首页那套 --color-* 内页没有）—— 这里必须用内页令牌，否则整条声明失效。
     实测踩过：用了 var(--color-line) 结果 border 计算成 0，问答块完全没样式。 */
  .faq{ display:grid; gap:8px; max-width:76ch }
  .faq details{
    border:1px solid var(--line, #E2DDD5); border-radius:8px;
    background:var(--card, #FFFFFF); padding:16px 24px;
  }
  .faq summary{
    cursor:pointer; font-weight:600; color:var(--ink, #141A21);
    display:flex; align-items:center; justify-content:space-between; gap:16px;
    list-style:none;
  }
  .faq summary::-webkit-details-marker{ display:none }
  .faq summary::after{ content:"+"; font-size:1.25rem; color:var(--copper, #9A6B3F); font-weight:400 }
  .faq details[open] summary::after{ content:"\2013" }
  .faq details p{ margin:12px 0 0; color:var(--muted, #6B7683); line-height:1.65 }

/* ==========================================================================
   v11 追加（2026-09-17）
   A. 客户登录入口（客户门户 portal.jmzglobal.com）
   B. 站内搜索结果分组 + 窄屏搜索入口
   全部为追加，未改动上面任何一行。
   ========================================================================== */

/* ---------- A. 客户登录入口 .nav-login ----------
   位置：`.nav-inner` 内、`.nav-cta` 之前（与员工入口同槽位）。
   ⚠️ 别给它加 .btn：`header .nav-cta .btn` 会把它变成实心铜色按钮，
      与 Request a quote 连成一整条，看着像分段控件。 */
header .nav-login{
  flex:none; display:inline-flex; align-items:center; gap:7px; height:38px; padding:0 15px;
  border-radius:999px; border:1px solid #DED8CF; background:transparent; color:#2C3743;
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:14px; font-weight:500; line-height:1; white-space:nowrap; text-decoration:none;
  margin-left:0; transition:border-color .15s ease, color .15s ease, background .15s ease;
}
header .nav-login:hover{ border-color:#9A6B3F; color:#9A6B3F }
header .nav-login svg{
  flex:none; width:17px; height:17px; stroke:currentColor; fill:none;
  stroke-width:1.8; stroke-linecap:round;
}

/* ---------- B1. 搜索结果分组标题 ---------- */
.ajmz-results .ajmz-grp{
  padding:11px 16px 6px; font-size:11.5px; font-weight:600; letter-spacing:.06em;
  text-transform:uppercase; color:#8A929C; background:#FBF9F6;
  border-bottom:1px solid #F2EEE8;
}
.ajmz-results .ajmz-grp + ul{ border-bottom:1px solid #E2DDD5 }
.ajmz-results .ajmz-grp:last-of-type + ul{ border-bottom:0 }

/* ---------- B2. 窄屏搜索入口（宽屏隐藏） ---------- */
header .ajmz-search-toggle{ display:none }

/* 窄屏导航里多了搜索按钮与登录按钮，先把两者的横向占位收一收 */
@media (max-width:1280px){
  header .nav-login{ padding:0 12px }
}
@media (max-width:1120px){
  header .nav-login{ padding:0 11px; font-size:13.5px }
}

@media (max-width:980px){
  header .ajmz-search-toggle{
    display:inline-flex; align-items:center; justify-content:center; flex:none;
    width:40px; height:40px; padding:0; border-radius:999px; cursor:pointer;
    border:1px solid #DED8CF; background:transparent; color:#2C3743;
    transition:border-color .15s ease, color .15s ease;
  }
  header .ajmz-search-toggle:hover,
  header .ajmz-search-toggle[aria-expanded="true"]{ border-color:#9A6B3F; color:#9A6B3F }
  header .ajmz-search-toggle svg{
    width:18px; height:18px; stroke:currentColor; fill:none;
    stroke-width:1.8; stroke-linecap:round;
  }

  /* 点开后占满一整行；order:4 → 排在 .nav-links（order:3）之后 */
  header .ajmz-search-wrap.is-open{ display:block; order:4; width:100%; margin:0 }
  header .ajmz-search-wrap.is-open .ajmz-search{ width:100% }
  header .ajmz-search-wrap.is-open .ajmz-results{
    left:0; right:auto; width:100%; max-width:100%;
  }
}

/* 更窄：登录按钮收成纯图标（文字藏起来），保证第一行不换行 */
@media (max-width:560px){
  header .nav-login{ width:40px; height:40px; padding:0; justify-content:center }
  header .nav-login .nav-login-txt{ display:none }
}

/* ==========================================================================
   v12 追加（2026-09-17）—— 桌面导航空间收口
   --------------------------------------------------------------------------
   实测：v11 加的 .nav-login 让导航在 1440px 溢出 104px、1024px 溢出 111px
   并撑出整页横向滚动条。这里只调间距与搜索框宽度，不改内容、不改配色。
   ≥1181px 单行四件套；≤1180px 导航链接换行到第二行（搜索框因此始终可见）。
   ========================================================================== */

/* ---------- ≥1181px：单行，四件套同排 ---------- */
@media (min-width:1181px){
  header.nav .nav-inner,
  header.site-header .nav-inner,
  header.site-header > .wrap{ gap:18px }
  header .nav-links{ gap:18px }
  header .nav-links a{ font-size:14px }
  header .ajmz-search-wrap{ width:188px }
  header .nav-login{ padding:0 14px }
  header .nav-cta .btn{ padding:11px 18px }
}

/* ---------- ≤1180px：导航链接换行到第二行 ----------
   第一行剩下 品牌 + 客户登录 + 搜索 + 报价 = 583px，任何宽度都放得下，
   所以搜索框不必收成图标 —— 客户在窄屏笔记本上依然看得见搜索。 */
@media (max-width:1180px){
  header.nav .nav-inner,
  header.site-header .nav-inner,
  header.site-header > .wrap{ gap:16px; flex-wrap:wrap }
  header .nav-links{
    order:3; width:100%; margin-left:0; gap:16px;
    overflow-x:auto; -webkit-overflow-scrolling:touch;
    padding-bottom:2px; scrollbar-width:none;
  }
  header .nav-links::-webkit-scrollbar{ display:none }
  header .ajmz-search-wrap{ width:188px }
  header .nav-cta .btn{ padding:11px 18px }
}

/* ---------- ≤480px：小屏再收一档 ---------- */
@media (max-width:480px){
  header.nav .nav-inner,
  header.site-header .nav-inner,
  header.site-header > .wrap{ gap:10px; padding-left:14px; padding-right:14px }
  header .ajmz-search-toggle,
  header .nav-login{ width:36px; height:36px }
  header .nav-cta .btn{ padding:10px 13px; font-size:13.5px }
}

/* ==========================================================================
   v13 追加（2026-09-17）—— 搜索「先选范围」的两个档位
   --------------------------------------------------------------------------
   用户要求：搜索时要先做选择，不要一搜就把全都列出来 ——
   可以先搜产品，也可以搜其他页面（博客页 / 关于 / 能力 / 案例 / FAQ）。
   于是 nav.v6.js 在结果面板顶部多渲染一行按钮（.ajmz-scopes）。

   复用关系：v11 加的 .ajmz-grp 分组标题没删，现在当
   「当前档位 · N results」的子标题用；.ajmz-empty / .ajmz-hint 沿用原样式。
   ========================================================================== */

/* ---------- C. 档位切换（结果面板第一行） ---------- */
.ajmz-results .ajmz-scopes{
  display:flex; flex-wrap:wrap; gap:7px;
  padding:11px 14px; background:#F6F3EE; border-bottom:1px solid #E2DDD5;
}
.ajmz-results .ajmz-scope{
  -webkit-appearance:none; appearance:none; cursor:pointer;
  flex:0 0 auto; padding:7px 14px; border-radius:999px; box-sizing:border-box;
  border:1px solid #D6CFC4; background:#fff; color:#4A5A6A;
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:12.5px; font-weight:500; line-height:1; white-space:nowrap;
  transition:border-color .15s ease, color .15s ease, background .15s ease;
}
.ajmz-results .ajmz-scope:hover{ border-color:#9A6B3F; color:#9A6B3F }
.ajmz-results .ajmz-scope[aria-pressed="true"]{
  background:#9A6B3F; border-color:#9A6B3F; color:#fff;
}
.ajmz-results .ajmz-scope[aria-pressed="true"]:hover{ background:#7A5432; border-color:#7A5432 }

/* 面板已开、还没输入时的提示 */
.ajmz-results .ajmz-hint{ padding:15px 16px; color:#6B7683; font-size:14px; line-height:1.5 }

/* 「另一档里有 N 条」那句：数字加重，切换链接保持手写体量 */
.ajmz-results .ajmz-empty b{ font-weight:600; color:#141A21 }
.ajmz-results .ajmz-empty a[data-switch]{ font-weight:500 }

@media (max-width:420px){
  .ajmz-results .ajmz-scopes{ padding:9px 12px }
  .ajmz-results .ajmz-scope{ padding:7px 11px; font-size:12px }
}

/* ==========================================================================
   v14 追加（2026-09-17）—— 以图搜产品
   --------------------------------------------------------------------------
   搜索框右侧多一个相机按钮（.ajmz-photo-btn），选/拍照后由
   api.jmzglobal.com/api/public/search-by-image 用视觉模型认图，
   结果面板换成「我看成了什么 + 最接近的几款」。

   注：上面 v13 那套 .ajmz-scopes / .ajmz-scope（先选范围两档）现在**休眠**
       —— nav.v7.js 不再渲染。故意不删，方便回退。
   ========================================================================== */

/* ---------- D1. 搜索框里的相机按钮 ---------- */
header .ajmz-photo-btn{
  -webkit-appearance:none; appearance:none; cursor:pointer;
  flex:none; display:inline-flex; align-items:center; justify-content:center;
  width:22px; height:22px; padding:0; margin:0;
  border:0; border-radius:50%; background:transparent; color:#6B7683;
  transition:color .15s ease, background .15s ease;
}
header .ajmz-photo-btn:hover{ color:#9A6B3F; background:rgba(154,107,63,.10) }
header .ajmz-photo-btn:disabled{ cursor:default }
header .ajmz-photo-btn svg{
  flex:none; width:16px; height:16px; stroke:currentColor; fill:none;
  stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;
}
/* 识别中：图标换成转圈 */
header .ajmz-photo-btn.is-busy svg{ display:none }
header .ajmz-photo-btn.is-busy::after{
  content:""; width:13px; height:13px; border-radius:50%;
  border:2px solid #DED8CF; border-top-color:#9A6B3F;
  animation:ajmzPhotoSpin .7s linear infinite;
}
@keyframes ajmzPhotoSpin{ to{ transform:rotate(360deg) } }
/* 真正的 file input 藏起来但**不能 display:none**（Safari 上会点不亮） */
header .ajmz-photo-input{
  position:absolute; width:1px; height:1px; margin:-1px; padding:0;
  border:0; clip:rect(0 0 0 0); overflow:hidden; white-space:nowrap;
}

/* ---------- D2. 「我看成了什么」 ---------- */
.ajmz-results .ajmz-photohead{
  display:flex; align-items:center; gap:8px;
  padding:11px 16px 9px; background:#F6F3EE; border-bottom:1px solid #E2DDD5;
}
.ajmz-results .ajmz-phototag{
  font-size:11.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  color:#8A929C;
}
.ajmz-results .ajmz-photolow{
  font-size:11px; font-weight:600; padding:2px 7px; border-radius:5px;
  background:#FBF3E4; color:#8A6A2F; white-space:nowrap;
}
.ajmz-results .ajmz-photo-back{
  margin-left:auto; display:inline; padding:0; font-size:12.5px;
  color:#9A6B3F; text-decoration:underline; white-space:nowrap;
}
.ajmz-results .ajmz-cap{
  padding:12px 16px; font-size:13.5px; line-height:1.55; color:#6B7683;
  background:#FBF9F6; border-bottom:1px solid #F2EEE8;
}
.ajmz-results .ajmz-cap span{ color:#2C3743 }
.ajmz-results .ajmz-loading{
  padding:16px; font-size:14px; color:#2C3743; line-height:1.5;
}
.ajmz-results .ajmz-loading span{
  display:block; font-size:12.5px; color:#8A929C; margin-top:3px;
}

/* ---------- D3. 带缩略图的结果行 ---------- */
.ajmz-results .ajmz-photolist a{
  display:flex; align-items:center; gap:11px; padding:11px 16px;
}
.ajmz-results .ajmz-photolist .ajmz-thumb{
  flex:none; width:46px; height:46px; border-radius:7px; object-fit:cover;
  background:#F2EEE8; border:1px solid #E2DDD5;
}
.ajmz-results .ajmz-photolist .ajmz-phototxt{ min-width:0 }
.ajmz-results .ajmz-photolist .ajmz-phototxt b{ display:block; font-weight:600 }
.ajmz-results .ajmz-photolist .ajmz-phototxt em{
  display:block; font-style:normal; font-size:12.5px; color:#6B7683; margin-top:2px;
}

/* ---------- D4. 窄屏：相机按钮在整行输入框里稍大一点 ---------- */
@media (max-width:980px){
  header .ajmz-search-wrap.is-open .ajmz-search{ padding:0 16px }
  header .ajmz-photo-btn{ width:28px; height:28px }
  header .ajmz-photo-btn svg{ width:18px; height:18px }
}
