/**
 * AvoAgent v2 · 整站换装共享层：chrome（导航/页脚）+ 通用组件
 *
 * 作用域 body.avo-v2-page —— 每个换装页都会带这个 body class。
 * v1 全局样式在这些页上仍会 enqueue，必须用作用域压住。
 * 页面私有样式放各自的 css（home.css / tools.css …），这里只放共用的。
 */

body.avo-v2-page {
  margin: 0;
  background: #f5f7f2;
  color: #17231d;
  font-family: "DM Sans", "PingFang SC", system-ui, sans-serif;
  /**
   * v1.67.0 · ⚠ 必须显式声明 16px。
   *
   * 换装从头到尾**没写过 body 字号**，于是整套新界面一直在继承 v1 base.css
   * 的 `--avo-fs-base`（15px）—— 比原型设计的 16px 小 6.7%，全站每一处正文、
   * 每一个按钮、每一段说明都偏小一号。
   * 这不是当初的设计取舍，是漏了一行；把原型和线上并排量出来才发现。
   */
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}
body.avo-v2-page a { color: inherit; text-decoration: none; }
body.avo-v2-page img { display: block; max-width: 100%; }
body.avo-v2-page .skip-link {
  position: absolute; left: -9999px; top: 0; background: #17231d; color: #fff;
  padding: 10px 14px; border-radius: 0 0 10px 0; z-index: 100;
}
body.avo-v2-page .skip-link:focus { left: 0; }

.avo-v2-page .v2h-wrap { width: min(1180px, calc(100% - 40px)); margin: auto; }

/* ── 导航 ── */
.avo-v2-page .v2h-nav { height: 76px; display: flex; align-items: center; justify-content: space-between; }
.avo-v2-page .v2h-brand {
  display: flex; align-items: center; gap: 10px;
  font: 700 22px "Space Grotesk", sans-serif; color: #17231d;
}
.avo-v2-page .v2h-brand-mark {
  width: 30px; height: 30px; border-radius: 10px 10px 15px 10px; background: #c7f45b;
  display: grid; place-items: center; transform: rotate(-8deg);
}
.avo-v2-page .v2h-brand-mark svg { transform: rotate(8deg); }
.avo-v2-page .v2h-nav-links { display: flex; gap: 30px; color: #48534c; font-size: 14px; }
.avo-v2-page .v2h-nav-links a:hover, .avo-v2-page .v2h-nav-links a.is-active { color: #17231d; font-weight: 600; }
.avo-v2-page .v2h-nav-actions { display: flex; gap: 10px; align-items: center; }

.avo-v2-page .v2h-btn {
  border: 0; border-radius: 12px; padding: 12px 18px; cursor: pointer;
  font: 600 14px/1 "DM Sans", sans-serif; transition: .2s ease;
  display: inline-flex; align-items: center; gap: 8px;
}
.avo-v2-page .v2h-btn:hover { transform: translateY(-2px); }
.avo-v2-page .v2h-btn--ghost { background: transparent; border: 1px solid #dfe4dc; }
.avo-v2-page .v2h-btn--dark { background: #17231d; color: #fff; }
.avo-v2-page .v2h-btn--lime { background: #c7f45b; color: #182216; }

/* v1 标准语言切换器贴皮 */
.avo-v2-page .avo-lang-switcher { position: relative; }
.avo-v2-page .avo-lang-switcher__current {
  border: 1px solid #dfe4dc; background: transparent; border-radius: 12px;
  min-height: 46px; padding: 0 14px; cursor: pointer; color: #17231d;
  font: 600 14px/1 "DM Sans", sans-serif; display: inline-flex; align-items: center; gap: 8px;
}
.avo-v2-page .avo-lang-switcher__menu {
  position: absolute; right: 0; top: calc(100% + 8px); min-width: 140px;
  background: #fff; border: 1px solid #dfe4dc; border-radius: 12px;
  box-shadow: 0 18px 45px rgba(20, 35, 26, .12); padding: 6px; z-index: 50; display: none;
}
.avo-v2-page .avo-lang-switcher.is-open .avo-lang-switcher__menu { display: block; }
.avo-v2-page .avo-lang-switcher__menu a { display: block; padding: 9px 12px; border-radius: 8px; font-size: 14px; }
.avo-v2-page .avo-lang-switcher__menu a:hover { background: #f5f7f2; }
.avo-v2-page .avo-lang-switcher__menu a.is-current { background: #eff8d6; font-weight: 600; }

/* ── 页首（内页通用 hero）── */
.avo-v2-page .v2h-page-hero { padding: 46px 0 10px; }
.avo-v2-page .v2h-eyebrow {
  display: inline-flex; align-items: center; gap: 9px; border: 1px solid #cdd5ca;
  border-radius: 99px; padding: 7px 12px 7px 8px;
  font: 600 12px "Space Grotesk", sans-serif; letter-spacing: .05em; text-transform: uppercase;
  background: rgba(255, 255, 255, .6);
}
.avo-v2-page .v2h-eyebrow i {
  width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center;
  background: #c7f45b; font-style: normal;
}
.avo-v2-page .v2h-eyebrow svg { width: 12px; height: 12px; fill: none; stroke: #17231d; stroke-width: 2; stroke-linecap: round; }
/* v1.69.0 · 对齐原型 avoagent-site.css 的全局 h1：clamp(48px,7vw,86px)/.95、-.06em。
   之前压到 64px 是为了躲中文撞行，但那是拿英文的视觉冲击力去换 —— 真正的病根是
   行高小于 1（见下方 CJK 护栏），治好了就不必缩字号。 */
.avo-v2-page .v2h-page-hero h1 {
  font: 600 clamp(48px, 7vw, 86px)/.95 "Space Grotesk", sans-serif;
  letter-spacing: -.06em; margin: 22px 0 16px;
}

/* v1.69.0 · CJK 排版护栏。作用于 v2 全站的 h1（.avo-v2-page 每个 v2 页面都有）。
   拉丁字母行高可以小于 1 —— 大写高度加降部正好塞得进去；中日韩字形占满整个 em 框，
   .95 的行高必然让上下两行叠在一起。原型自己就有这个病（它是 lang="zh-CN" 的稿，
   首屏标题两行是糊在一起的），所以照抄原型数值必须连这个一起修，否则是把 bug 抄过来。

   ⚠ 用 :lang() 而不是 [lang="zh"]：我们输出的是 lang="zh-CN"，属性精确匹配会整条失效，
     且不报错 —— 只会表现为「改了没用」。:lang(zh) 按 BCP-47 前缀匹配，zh-CN 能命中。
   ⚠ 选择器里的 body 是特意加的，把权重顶到 (0,2,3)。workbench.css 里逐工具的
     `body.avo-v2-tool-x .v2-heading h1` 是 (0,2,2) 且加载在本文件之后 —— 不加 body
     就会同级后来居上，把行高按原型的 .98/1.02 覆盖回去，中文又撞回来。 */
:is(html:lang(zh), html:lang(ja), html:lang(ko)) body.avo-v2-page h1 {
  line-height: 1.15;
  letter-spacing: -.01em;   /* -.06em 是给拉丁字母收缝的，汉字会黏成一团 */
}
.avo-v2-page .v2h-lead { max-width: 640px; color: #5e6861; font-size: 17px; line-height: 1.65; margin: 0; }

/* ── 通用卡 / 角标 / 筛选 ── */
.avo-v2-page .v2h-pill {
  background: #c7f45b; padding: 4px 8px; border-radius: 6px; color: #283318;
  font: 700 10px "Space Grotesk", sans-serif; letter-spacing: .04em; align-self: flex-start;
}
.avo-v2-page .v2h-filters { display: flex; gap: 8px; flex-wrap: wrap; margin: 30px 0; }
.avo-v2-page .v2h-filter {
  min-height: 44px; border: 1px solid #dfe4dc; background: transparent; border-radius: 99px;
  padding: 0 16px; cursor: pointer; color: #5e6861; font: 500 14px/1 "DM Sans", sans-serif;
}
.avo-v2-page .v2h-filter.is-active { background: #17231d; color: #fff; border-color: #17231d; }

/* ── 页脚 ── */
.avo-v2-page .v2h-footer { padding: 38px 0; border-top: 1px solid #dfe4dc; margin-top: 70px; }
.avo-v2-page .v2h-footer-inner { display: flex; justify-content: space-between; align-items: center; font-size: 12px; color: #5e6861; }
.avo-v2-page .v2h-footer-links { display: flex; gap: 22px; }
/**
 * v1.56.0 · 触摸目标高度。
 *
 * 实测 375px 下这四个页脚链接只有 23×19 和 47×19 —— 低于 WCAG 2.5.8 的
 * 24×24 下限。它们在**全部 16 个换装页**上，所以这一条占了整轮无障碍
 * 问题的 64/69：改一处，16 个页面一起好。
 *
 * ⚠ 不是把字调大（那会改版式），是补 padding 撑开可点区域：
 *   19 + 4×2 = 27px 高，23 + 3×2 = 29px 宽。视觉上字号一点没变。
 *   负 margin 抵掉水平 padding，免得 flex 的 gap 看起来变宽。
 */
.avo-v2-page .v2h-footer-links a {
  display: inline-block;
  padding: 4px 3px;
  margin: -4px -3px;
}
.avo-v2-page .v2h-footer-links a:hover { color: #17231d; }

/* ── 响应式 ── */
@media (max-width: 900px) {
  .avo-v2-page .v2h-nav-links { display: none; }
}
@media (max-width: 600px) {
  .avo-v2-page .v2h-wrap { width: min(100% - 24px, 1180px); }
  .avo-v2-page .v2h-nav-actions .v2h-btn--ghost { display: none; }
  .avo-v2-page .v2h-footer-inner { display: block; }
  .avo-v2-page .v2h-footer-links { margin-top: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .avo-v2-page * { transition: none !important; }
}

/* ── v1.53.0 · 应用页（工作台 / 素材中心 / 验收台）──────────────
 *
 * 这三页换上新 chrome 之后，正文里还留着 v1 的面包屑组件 .avo-crumbs
 * —— 刻意不另写一个：BreadcrumbList 的 JSON-LD 和它同源，
 * 两套面包屑一定会走岔（可见的和结构化数据里的对不上）。
 *
 * 但新 chrome 里没有 v1 的外层容器，不给宽度它会贴到视口最左边。
 */
.avo-v2-page .v2h-appmain > .avo-crumbs {
  width: min(1180px, calc(100% - 40px));
  margin: 20px auto 0;
  font-size: 13px;
}
@media (max-width: 600px) {
  .avo-v2-page .v2h-appmain > .avo-crumbs { width: min(100% - 24px, 1180px); }
}

/* v1.70.0 · 面包屑内部布局。
 *
 * 上面那条只给了外层 <nav> 一个宽度，真正的布局规则（flex / list-style:none /
 * 分隔符颜色）全在 public.css 里，而 v2 的 chrome **不 enqueue public.css**
 * —— 标记还在、样式没了，于是退化成浏览器默认的竖排带序号 <ol>：
 *     1. 首页 ›
 *     2. Tools ›
 *     3. Product Image Audit
 *
 * 不去 enqueue 整个 public.css：那会把 v1 的全站样式一并拖进 v2，冲突面太大。
 * 只搬这几条必要的。
 * ⚠ 用字面色值不用 var(--v2-*)：那些变量定义在 workbench.css 里，营销页不加载
 *   那个文件，用变量会解析成空值 —— 表现是「工具页正常、其它页又糊了」。
 */
.avo-v2-page .avo-crumbs__list {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: wrap; align-items: center; gap: 4px;
  color: #5e6861;
}
/* v1.71.7 · 让标题回到「继承」父级颜色。
 *
 * v1 的 base.css:46 有一条 `h1,h2,h3,h4,h5,h6 { color: var(--avo-text) }`（#1A2B23），
 * 而 base.css 在每个 v2 页面都会 enqueue。深色卡片（.v2a-promise / .v2p-credit-card
 * 都是 background:#17231d; color:#fff）指望标题**继承**那个白色 ——
 * 但显式声明永远赢过继承，跟权重高低无关。结果是深色卡上的标题变成 #1A2B23，
 * 和 #17231d 的底几乎同色：实测对比度 1.09:1，肉眼等于看不见。
 * 登录 / 注册 / 重置密码的大标题、定价页「Pick a credit pack」全中招。
 *
 * ⚠ 不要改 base.css —— 那是 v1 全站的基准，动它会波及还没换装的后台等地方。
 * ⚠ 也不要逐个深色卡去补 color:#fff（checkout.css:43 就是这么打的补丁）——
 *   下次再加一张深色卡又会忘。这里一次性恢复继承语义。
 *
 * 选择器 (0,1,1) 压得过 base.css 的 (0,0,1)；而 v2 里 4 条显式标题颜色
 * （checkout 的 summary、result 的三个结论态）都是 (0,2,1)，照样赢过这条，不受影响。
 * 浅色页面上继承到的是 body 的 #17231d，和原来的 #1A2B23 肉眼无差别。
 */
.avo-v2-page :is(h1, h2, h3, h4, h5, h6) { color: inherit; }

/* v1.71.8 · muted 灰阶收敛成一个值：#5e6861。
 *
 * 起因：把对比度检查扩到全部 10 个 v2 页面后，除了深色卡标题那处「隐形」，
 * 还有 47 处 muted 文字达不到 WCAG AA 的 4.5:1 —— 页脚链接、软底色分节里的正文、
 * 首页的质检结论说明等等，实测在 3.0～4.4 之间。
 * 原本站上有十几个深浅不一的灰，逐个微调既费事又留不住一致性，所以收敛成一个。
 *
 *              #ffffff  #f5f7f2  #eef0ea  #e9ece5  #e7f6c8  #e5e8e1  #dfe6ff
 *   #68736c(原)  4.93     4.57    4.30✗    4.13✗     ...      ...      ...
 *   #626c65      5.45     5.05     4.75     4.57     4.78    4.40✗    4.39✗
 *   #5e6861(用)  5.79     5.37     5.04     4.85     5.07     4.67     4.66
 *
 * ⚠ 第一轮我取的是 #626c65，不够 —— 因为我拿的是一张**手列的**灰值清单，
 *   漏了 #707b73 / #69756d / #6f7b73 / #7d887f / #778178；
 *   而且算对比度时只考虑了 6 种背景，漏掉首页那几块更深的底
 *   （#e5e8e1 预览区、#e7f6c8 路径卡、#dfe6ff 路径卡）。
 *   第二轮改成「枚举全部 color: 声明」+「用扫描器实际报出来的全部背景」重算。
 *   教训：别手列清单，让工具枚举。
 *
 * ⚠ 为什么不保留一个更浅的「次级灰」：任何比这更浅的值都过不了软底色
 *   （#6e7871 在 #e9ece5 上只有 3.83）。要么全过，要么就别分档。
 *
 * ⚠ 深色卡上的浅灰（#aab7af / #8d9a90 / #9fac9f）**没有**跟着改：它们铺在
 *   #17231d 上，对比度本来就高，压深反而会变糊。改之前逐条确认过底色。
 */

/* v1.70.2 · 几个「共用但只在私有样式表里定义」的组件。
 *
 * .v2h-kicker / .v2h-section-top 的定义写成 `.avo-v2-home ...`（锁死首页），
 * .v2-card 写成 `.avo-v2 ...`（锁死应用页）。可 help / pricing / blog / workflows
 * 也在用这些 class —— 实测：眉标退化成 16px 常规黑字（应为 12px 大写灰字）、
 * 段落头两栏塌成一栏且丢掉 42px 下边距、工作流卡片无底色无描边无圆角。
 *
 * 注意这不是「样式表没加载」而是「作用域不匹配」—— 就算把 home.css 加载过来也没用，
 * 选择器根本不命中。所以要把共用部分提到 .avo-v2-page。
 * 首页/应用页各自的定义仍在原文件里、且加载顺序更靠后，行为不变。
 */
.avo-v2-page .v2h-kicker {
  font: 600 12px "Space Grotesk", sans-serif; letter-spacing: .1em;
  text-transform: uppercase; color: #5e6861;
}
.avo-v2-page .v2h-section-top {
  display: flex; justify-content: space-between; gap: 30px; align-items: end; margin-bottom: 42px;
}
.avo-v2-page .v2h-section-top h2 {
  font: 600 clamp(34px, 4.2vw, 55px)/1.04 "Space Grotesk", sans-serif;
  letter-spacing: -.055em; margin: 10px 0 0; max-width: 720px;
}
.avo-v2-page .v2h-section-top p { max-width: 380px; margin: 0; color: #5e6861; line-height: 1.65; }
.avo-v2-page .v2-card { background: #fff; border: 1px solid #dfe4dc; border-radius: 18px; }

@media (max-width: 900px) {
  .avo-v2-page .v2h-section-top { display: block; }
  .avo-v2-page .v2h-section-top p { margin-top: 18px; }
}

.avo-v2-page .avo-crumbs__item { display: flex; align-items: center; gap: 4px; }
.avo-v2-page .avo-crumbs__link { color: #5e6861; text-decoration: none; transition: color 120ms; }
.avo-v2-page .avo-crumbs__link:hover { color: #556f0e; }
.avo-v2-page .avo-crumbs__sep { color: #5e6861; padding: 0 2px; }
.avo-v2-page .avo-crumbs__current { color: #17231d; font-weight: 500; }

/* v1.71.20 · 页脚简介/版权（仅站长在「主题外观」填了才渲染，默认不出现）。
   沿用现有 token 口径：muted #5e6861 / line #dfe4dc，不新造颜色。 */
.avo-v2-page .v2h-footer-legal {
  margin-top: 14px; padding-top: 14px; border-top: 1px solid #dfe4dc;
  display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: baseline;
}
.avo-v2-page .v2h-footer-about,
.avo-v2-page .v2h-footer-copy { margin: 0; font-size: 12px; color: #5e6861; }
.avo-v2-page .v2h-footer-copy { margin-left: auto; }
@media (max-width: 640px) { .avo-v2-page .v2h-footer-copy { margin-left: 0; } }
