/* ==========================================================================
   portal-r31b.css（第 31b 轮 · 只追加，不覆盖 portal.css / portal-extra.css）
   引入位置：放在 portal-r30a.css 之后（head.html 里由主代理统一追加 <link>）。

   本文件只解决两个前台缺陷，所有规则都带 .site-top / .aside-nav 等已有限定，
   不写裸选择器，避免影响后台、Vue 端或其它页面模块：
     1. 问题3：顶部导航二级下拉的文字水平居中（垂直居中顺手补齐）。
     2. 问题6：左侧悬浮卡片「免费企业诊断」按钮文字变白、在卡片内水平居中。
        根因是 portal.css:432 的 `.aside-nav a{...color:var(--ink-700);
        display:block;padding:11px 14px}` 特异性 (0,1,1) 高过 `.btn`(0,1,0)
        和 `.btn--gold`(0,1,0)，把按钮的字色改成了深灰、display 从 inline-flex
        改成 block —— 于是 `justify-content:center` 失效、文字贴左，深灰字压在
        深色金渐变上也几乎看不清。
   ========================================================================== */

/* ==========================================================================
   一、顶部导航下拉：文字水平居中（问题3）
   --------------------------------------------------------------------------
   为什么这样写：
   · 下拉项在 portal-extra.css:78 与 portal-r29a.css:140 都是 `display:block`
     + `padding:9px 14px`。block 布局下 `text-align:center` 就能居中，且能保留
     r29a 的 `text-overflow:ellipsis`（窄屏长分类名截断）——如果改成 flex，
     文字会变成匿名 flex item，省略号会失效，长名字被硬切，所以不用 flex。
   · 选择器带 `.nav__item.has-sub`，特异性 (0,4,2) 高于 r29a 的 (0,2,2) 与
     portal-extra 的 (0,2,1)，无论本文件被引在前面还是后面都能生效，
     也不用去动 portal.css / portal-extra.css / portal-r29*.
   · 只挂在 `.nav__sub` 下：侧边栏 `.aside-nav`、页脚 `.footer__navlinks`
     的选择器都不含 `.nav__sub`，不会被波及。
   ========================================================================== */
.site-top .nav__item.has-sub .nav__sub{text-align:center}

.site-top .nav__item.has-sub .nav__sub li a{
  /* 文字水平居中；父级面板在桌面端是 width:max-content，所有 a 都是 block
     并撑满面板内容宽，因此每一项的可点区域等宽，居中后左右留白天然相等 */
  display:block;
  width:100%;
  text-align:center;
  justify-content:center;          /* 兜底：将来若有人把 a 改回 flex，也仍然居中 */
  /* 左右内边距显式写成相等值：原来的 padding:9px 14px 已对称，这里再固定一次，
     避免以后别处单边加 padding 把文字挤偏；
     上下 9px 与行高 1.5 相加，文字在 38px 左右的色块里垂直居中 */
  padding:9px 14px;
  line-height:1.5;
}

/* 窄屏（≤1180px，r29a 把面板改成两列网格）时列宽可能不等，
   仍按列内内容宽居中；中文字符宽度一致，视觉上左右留白仍然相等 */
@media (max-width:1180px){
  .site-top .nav__item.has-sub .nav__sub li a{
    padding:10px 12px;
    text-align:center;
  }
}

/* ==========================================================================
   二、金色主按钮：全站文字纯白 + 侧栏卡片内水平居中（问题6）
   --------------------------------------------------------------------------
   2.1 文字颜色：为什么不用 `.btn--gold` 单类？
       受影响的是 `.aside-nav` 里的按钮，portal.css:432 的 `.aside-nav a`
       （0,1,1）会覆盖 `.btn--gold`（0,1,0）的 color。这里用
       `.btn.btn--gold`（0,2,0）压过它；`:hover`/`:focus-visible` 再各加一个
       伪类（0,3,0），压过 `.aside-nav a:hover`（0,2,1），保证悬停时也不会
       变回深灰。规则本身是「全站所有 .btn--gold」的白字规范，不是只修一处。
   ========================================================================== */
.btn.btn--gold,
a.btn.btn--gold{color:#fff}

.btn.btn--gold:hover,
.btn.btn--gold:focus-visible,
a.btn.btn--gold:hover,
a.btn.btn--gold:focus-visible{color:#fff}

/* 2.2 布局与居中：只在左侧栏（.aside-nav）里做「按钮」的还原。
       为什么要限定 .aside-nav：`.aside-nav a` 是给侧边栏导航链接写的，
       它把 display 改成 block、padding 改成 11px 14px，对按钮是误伤。
       这里用 `.aside-nav .btn`（0,2,0）重新声明按钮自身的布局：
         · display:inline-flex + justify-content:center → 文字在按钮内居中；
         · padding:0 16px 覆盖 11px 14px，恢复 .btn--sm 的左右内边距，
           同时上下 padding 归零，40px 高度内文字才不会偏下；
         · width:100% + margin-inline:auto → 撑满卡片内容区并在卡片内水平居中
           （.side-card 有 18px 内边距，按钮贴的是内容区左右边，两侧留白相等）。
       不写 `.side-card` 前缀是因为侧栏卡片将来可能换容器，而 `.aside-nav`
       已经是「左侧悬浮卡片」的稳定父级，且页脚/正文的 .btn 不在 .aside-nav 内。 */
.aside-nav .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 16px;
  width:100%;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}

/* 左栏导航链接的 hover 底色只该作用于导航链接，不能糊到按钮上
   （`.aside-nav a:hover` 会给按钮刷一层浅色底）。
   这里不动原规则，只把按钮自身 hover 的底色显式交还给 .btn--gold 的渐变。 */
.aside-nav a.btn:hover,
.aside-nav a.btn:focus-visible{
  background:linear-gradient(140deg,var(--gold-500),var(--case-bronze) 32%,var(--case-gray) 68%,var(--case-deep));
  color:#fff;
}
