/* ============================================================
   宿主适配层 —— 把 WordPress 主题的版心约束从落地页上摘掉。

   !! 这份文件**故意不分层**，而且**不用一条 !important**。两件事互为因果：

   分层是主动降权。未分层的普通声明压过所有分层声明，与特异性和文档
   位置都无关。主题那条约束就是未分层的：

     .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
       max-width: var(--wp--style--global--content-size);
     }

   它写在 :where() 里，特异性只有 (0,1,0)。所以只要本文件同样不分层、
   选择器比它更具体、并且排在它后面加载（插件的 <link> 在主题之后），
   就能正常压过它 —— 旧 CSS 里那 4 条 max-width:none!important 是不必要的。

   本文件只碰主题/区块编辑器自己的类，不碰任何 .a2e-* 组件。
   组件层的规矩（禁 !important、必须分层）对它不适用，也不该适用。
   ------------------------------------------------------------ */

/* 落地页整页通栏。三个容器都要放开：区块编辑器的布局容器、
   文章内容容器、以及站点级的 wp-site-blocks。 */
.is-layout-constrained:has(> .a2e-lp) > .a2e-lp,
.entry-content:has(.a2e-lp),
.wp-block-post-content:has(.a2e-lp),
.wp-site-blocks:has(.a2e-lp) {
  max-width: none;
  width: 100%;
  padding-left: 0;
  padding-right: 0;
}

/* 主题给 .entry-content 的上下留白会在导航下面顶出一条空隙。
   落地页自己控制纵向节奏，这里清掉。 */
.entry-content:has(.a2e-lp),
.wp-block-post-content:has(.a2e-lp) {
  margin-top: 0;
  margin-bottom: 0;
}


/* ------------------------------------------------------------
   带背景色的 group 区块（2026-08-06 补）

   二级页的模板结构是：

     main.wp-block-group.has-background     ← 这一层
       └─ div.entry-content
            └─ div.a2e-lp

   WordPress 区块库有一条：

     :where(.wp-block-group.has-background) { padding: 2.375em; }

   特异性是 **(0,0,0)**（整个选择器都在 :where() 里），但它未分层，
   照样压过 @layer 里的组件样式。实测 /news/：视口 1805px，
   main 被塞进 42.94px 左右内边距，`.a2e-lp` 只剩 1704px 且左偏 43px ——
   页面看起来像"嵌在一个框里"，左右露出主题底色。

   !! 上面那三条容器规则都命中不到它：它既不是 .entry-content，
      也不是 .wp-block-post-content 或 .wp-site-blocks。少写一层就漏一层，
      这是 2026-08-06 用户目测发现的，我之前只量了颜色字体没量版心宽度。

   四边全清：落地页的纵横留白由 .a2e-sec / .a2e-lp 自己负责，
   多这 42.94px 会在固定导航下方再顶出一段空隙。
   ------------------------------------------------------------ */
.wp-block-group:has(.a2e-lp) {
  padding: 0;
}


/* ------------------------------------------------------------
   落地页自带导航与页脚，主题的那两个模板部件必须让位 —— 否则页面上
   会出现两套导航（一套还是 fixed 的，直接压在另一套上）和两个页脚。

   线上骨架实测：
     div.wp-site-blocks
       ├─ header.wp-block-template-part
       ├─ div.entry-content.wp-block-post-content   ← 页面正文在这里
       └─ footer.wp-block-template-part

   **按「页面里有没有 .a2e-lp」来判断，不写 body.page-id-21030。**
   页面 id 是一层补丁，而且以后 fr/de 重构完还要再加一个；
   靠特征存在与否判断，重构一个自动生效一个。

   header 全站只有一份、10 个模板共用，所以这条规则只能这样写 ——
   直接改 header 模板部件会波及 7 个语言首页 + 博客 + 文章。

   !! 只是视觉让位，不是删除。header 里那段多语言 JS 靠 href 定位菜单项，
      节点还在、脚本照常跑；落地页自己的语言切换是一组真实链接，
      不依赖那段脚本。
   ------------------------------------------------------------ */
.wp-site-blocks:has(.a2e-lp) > header.wp-block-template-part,
.wp-site-blocks:has(.a2e-lp) > footer.wp-block-template-part {
  display: none;
}


/* ------------------------------------------------------------
   文章页：主题在正文**外面**还会渲染一套标题 / 日期 / 特色图。
   我们的文章头自带这三样（还多了分类 chip、阅读时长、复制链接），
   不藏的话每篇文章开头会出现两个 H1 —— 对 SEO 也是实打实的问题。

   线上骨架实测（单篇文章）：
     div.wp-site-blocks
       ├─ header.wp-block-template-part
       ├─ h1.wp-block-post-title
       ├─ div.wp-block-post-date
       ├─ div.entry-content.wp-block-post-content  ← 我们的壳在这里
       └─ footer.wp-block-template-part

   用后代选择器而不是子选择器：这三个块外面套着几层主题的 group 容器，
   层数会随模板改动而变，写死 > 迟早失效。
   ------------------------------------------------------------ */
.wp-site-blocks:has(.a2e-lp--article) .wp-block-post-title,
.wp-site-blocks:has(.a2e-lp--article) .wp-block-post-date,
.wp-site-blocks:has(.a2e-lp--article) .wp-block-post-featured-image,
.wp-site-blocks:has(.a2e-lp--article) .wp-block-post-terms {
  display: none;
}


/* ------------------------------------------------------------
   把排版控制权从主题手里要回来（2026-08-06 加）

   !! 机制：@layer 是**主动降权**。未分层的声明压过所有分层声明，
      与特异性、文档顺序都无关。组件样式在 @layer a2e-components 里，
      而主题的两份样式都未分层，所以主题必胜 —— 哪怕它的选择器
      特异性只有 (0,0,1)，也压得过 (0,1,0) 的 .a2e-menu__item。

      `.a2e-*` 命名空间在这里保护不了：主题用的是 a / h1-h6 / button
      这类元素选择器，根本不看类名。命名空间挡得住类名冲突，挡不住
      元素选择器。

   线上实测（Seedance draft 页 22221，2026-08-06）：

     a          color / text-decoration-*          ← global-styles-inline-css
     h1-h6      color / font-family / font-style / font-weight   ← 同上
     h1,h2,h3   font-size / line-height            ← 同上
     button     48 个属性的完整重置                ← 主题 style.css
     figure     margin                             ← wp-block-library

     后果：标题字体变成主题的 Inter、链接与按钮变成旧站紫 #7f4eff、
     语言按钮丢掉边框和圆角、作品墙图块底部多出 18px。

   !! 这里一个具体数值都不写，只写 revert-layer。
      写死值会反过来压住 landing.css 自己的组件规则。实测对照：
      「只把主题全局样式改成新 token」的话，.a2e-sec__title 的 sky 色
      被压成普通文字色、h2 字号停在主题的 42.56px 而不是组件的 24.72px。
      revert-layer 是把控制权**交还**给 @layer a2e-components，不是抢过来。

   button 用 all 而不是逐条列举：主题对它是完整重置（背景/边框/内边距/
   字体/过渡 48 项），逐条列必漏。实测 all:revert-layer 后，button 与
   同为 ghost 的 <a> 完全对齐：1px 边框 / 12px 圆角 / 8px 12px 内边距。

   ** 退役条件 **：本段的存在只因为主题在管 a / h1-h6 / button / figure。
   当这些页面全部重构完、且主题全局样式不再干预这些元素时，整段删除，
   不需要逐条清理 —— 这是它与旧的 !important 补丁的根本区别。
   ------------------------------------------------------------ */
/* !! 类名写两遍是为了把特异性抬到 (0,2,1)，不是笔误。

   旧插件 Simple Custom CSS and JS 里有 106 条 `.a2e-hf-page …` 规则，
   其中 `.a2e-hf-page h1, h2, h3, h4` 的特异性同样是 (0,1,1)。两条都未分层、
   特异性相同时由文档顺序定胜负，而旧插件那段 inline <style> 排在本文件之后
   —— 写一遍会输。

   为什么只有首页出问题：`.a2e-hf-page` 来自 front-page 模板里的一个 group
   区块，只有站点首页用那个模板；其余 7 页用 universal-front-page，没有这个类。
   2026-08-06 实测：首页 25 个标题全部被刷成纯白 + Space Grotesk 字体。

   B 段停用旧插件后这 106 条会消失，届时可以把类名改回写一遍。 */
.a2e-lp.a2e-lp :is(a, h1, h2, h3, h4, h5, h6) {
  color: revert-layer;
  font-family: revert-layer;
  font-size: revert-layer;
  font-style: revert-layer;
  font-weight: revert-layer;
  letter-spacing: revert-layer;   /* 旧插件那条一并抢了字距 */
  line-height: revert-layer;
  text-decoration-line: revert-layer;
  text-decoration-thickness: revert-layer;
  text-decoration-style: revert-layer;
  text-decoration-color: revert-layer;
  text-underline-offset: revert-layer;
}

.a2e-lp button { all: revert-layer; }

.a2e-lp figure { margin: revert-layer; }

/* `.a2e-more` 这个类名新旧设计都在用 —— 旧插件的 `.a2e-hf-page .a2e-more`
   (0,2,0) 会给它按旧版心塞一套 width/max-width/margin。这是 `.a2e-*` 命名空间
   隔离唯一失效的一处：前缀相同，挡不住。

   !! 这里必须写死初始值，不能用 revert-layer —— 上面那几条能用是因为
      landing.css 对 color/font-family 确有定义，回滚就落到组件层的值上。
      而 `.a2e-more` 的 width/max-width/margin 组件层**没有定义**，
      revert-layer 回滚后同属未分层的旧插件那条又被重新算进来，
      结果仍是 1800px（实测：与其他区块差 18px / 36px，右侧塌进去一截）。

      下面四个是 CSS 初始值，不是设计决策 —— `.a2e-more` 本来就该和其他
      `.a2e-sec` 一样由父容器定宽。**若哪天 landing.css 要给它定宽，
      这段必须同时删掉**，否则会反过来压住组件层。 */
.a2e-lp.a2e-lp .a2e-more {
  width: auto;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}
