/* ==========================================================================
   星谱知命网 · 设计系统 v3.0「暖砂朱印」（已上线）
   参照：八字测算入口风格 —— 暖米底 + 浓墨标题 + 朱橙点缀 + 橄榄绿选中标签
   按钮：沿用鎏金渐变（不使用宝蓝）
   祥云：局部装饰性出现（分隔线、Hero 底缘、结果区头部、面板顶部、页脚）
   说明：类名与结构与 v1/v2 完全一致，只替换视觉层。
   ========================================================================== */

/* ---------- 1. 设计令牌 ---------- */
:root {
  /* 纸面层次（T3.2：旧名 --xj-night 名实不符——实为暖米白，非夜色） */
  --xj-paper:      #f7f3e9;   /* 页面基底：暖米 */
  --xj-paper-2:    #efe9da;   /* 次级底：深暖砂 */
  --xj-surface:    #fffdf9;   /* 卡片面 */
  --xj-surface-2:  #faf6ec;
  --xj-surface-3:  #f1eadb;

  /* 朱砂主色（罗盘朱红；旧名 --xj-gold* 名实不符，已改为 vermilion） */
  --xj-vermilion:       #b03a2e;   /* 朱橙 */
  --xj-vermilion-lt:    #9c2f23;   /* 「金色文字」在浅底上的可读版 */
  --xj-vermilion-dk:    #7f251b;
  --xj-vermilion-glow:  rgba(176, 58, 46, .16);

  /* 新增：宝蓝 CTA / 橄榄绿选中 */
  --xj-blue:       #2b4af0;
  --xj-blue-dk:    #1f37c4;
  --xj-blue-wash:  #e9f1fc;   /* T44：浅蓝高亮底（FAQ 条目 hover/focus） */
  --xj-olive:      #41584e;
  --xj-olive-dk:   #33453d;

  /* 语义色（小面积点缀）—— T3.2：全部改为语义名，并修正原注释的错误命名
     （原 --xj-violet 注释写「藕荷紫」但值为金褐；--xj-jade/--xj-rose 与
       --xj-olive/--xj-gold 同值，保留独立名以承载业务语义，值不再重复定义） */
  --xj-celadon:    #41584e;   /* 东方命理 · 青玉绿（∈ 墨绿系） */
  --xj-vermilion-2:#b03a2e;   /* 姻缘桃花 · 朱砂红（∈ 朱砂系） */
  --xj-brass:      #a9852f;   /* 西方星象 · 金褐（原注释误作「藕荷紫」） */
  --xj-brass-2:    #a9852f;   /* 财运 · 琥珀（与 brass 同值，待二期区分） */
  --xj-azure:      #4e6e75;   /* 事业 · 天青 */

  /* 文字（浓墨系 · 方案F 加深，提升可读性） */
  --xj-ink:        #26231e;
  --xj-ink-2:      #4e4a42;
  --xj-muted:      #71695c;
  /* T2.2：原 #9c937f 在宣纸底上仅 2.75:1，未达 WCAG AA。
     改为 #756c56（宣纸底 4.70:1 / 卡片底 5.08:1 / 白底 5.20:1），
     仍明显浅于 --xj-muted(4.89:1)，保留「次要信息」的视觉层级。 */
  --xj-faint:      #756c56;
  /* 备查：装饰性/禁用态可继续用极浅色，但不得承载正文信息 */
  --xj-faint-deco: #9c937f;

  /* 线条 */
  --xj-line:       rgba(176, 58, 46, .26);
  --xj-line-2:     rgba(38, 35, 30, .10);
  --xj-line-3:     rgba(38, 35, 30, .16);

  /* 阴影（暖褐，柔和 · 方案F 数值） */
  --xj-shadow-sm:  0 2px 8px rgba(90, 62, 38, .06);
  --xj-shadow:     0 10px 28px rgba(90, 62, 38, .10);
  --xj-shadow-lg:  0 22px 54px rgba(90, 62, 38, .14);
  --xj-shadow-gold: 0 10px 26px rgba(176, 58, 46, .28);

  /* ---------- 方案F 新增：西轨 · 深空（天文仪器） ---------- */
  --xj-space:      #0c111f;
  --xj-space-2:    #111a30;
  --xj-panel:      rgba(255, 255, 255, .05);
  --xj-star:       #e9eef7;
  --xj-star-2:     #b4bfd2;
  --xj-star-mut:   #7e8aa3;
  --xj-sgold:      #d8b878;
  --xj-sgold-dk:   #b99a55;
  --xj-sazure:     #7fb1d8;
  --xj-sline:      rgba(216, 184, 120, .30);
  --xj-sline-2:    rgba(233, 238, 247, .11);

  /* ---------- 方案F 新增：五行色（结果态） ---------- */
  --el-mu:   #4c8554;
  --el-huo:  #b03a2e;
  --el-tu:   #946e3e;
  --el-jin:  #a9852f;
  --el-shui: #3e6695;

  /* 圆角 */
/* T36 登录表单里密码框的「显示 / 隐藏」小图标（遮罩着色，随 currentColor 变化） */
  --xj-eye-on:  url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M1.9 10S4.9 4.7 10 4.7 18.1 10 18.1 10 15.1 15.3 10 15.3 1.9 10 1.9 10z'/%3E%3Ccircle cx='10' cy='10' r='2.6'/%3E%3C/svg%3E");
  --xj-eye-off: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M7.3 6.1A9.6 9.6 0 0 1 10 5.3c5.1 0 8.1 4.7 8.1 4.7a16 16 0 0 1-2.5 3M12 12.4a2.6 2.6 0 0 1-3.7-3.7'/%3E%3Cpath d='M4.6 4.6 15.4 15.4'/%3E%3C/svg%3E");
  --xj-r-sm: 8px;
  --xj-r:    14px;
  --xj-r-lg: 20px;
  --xj-r-xl: 28px;

  /* 字体 */
  --xj-serif: Georgia, "Times New Roman", "Songti SC", "SimSun", "MingLiU", "Noto Serif CJK SC", serif;
  --xj-sans:  -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei",
              "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", sans-serif;

  /* 布局（v3.1：收窄版心，两侧留白，标准网页比例） */
  --xj-max: 1120px;
  --xj-pad: 24px;

  /* 祥云装饰（局部使用） */
  --xj-cloud:  url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 44' width='140' height='44' fill='none' stroke='%23b03a2e' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M30 31c-9 0-14-5-14-11 0-5 4-9 9-9 4 0 7 2 8 6 1 3-1 6-4 6-2 0-4-1-4-3 0-1 1-2 2-2'/%3E%3Cpath d='M30 31h80'/%3E%3Cpath d='M116 31c5 0 9-3 9-7 0-4-3-7-7-7-3 0-5 1-6 4'/%3E%3Cpath d='M54 20c3-3 7-3 10 0'/%3E%3Cpath d='M76 20c3-3 7-3 10 0'/%3E%3C/svg%3E");
  --xj-cloud-corner: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 96' width='96' height='96' fill='none' stroke='%23b03a2e' stroke-width='1.4' stroke-linecap='round'%3E%3Cpath d='M12 84c-6 0-9-4-9-8 0-4 3-7 7-7 3 0 5 2 6 4'/%3E%3Cpath d='M12 84h30'/%3E%3Cpath d='M42 84c4 0 7-2 7-5 0-3-2-5-5-5'/%3E%3Cpath d='M30 62c3-3 7-3 10 0'/%3E%3Cpath d='M52 70c2-2 5-2 7 0'/%3E%3C/svg%3E");
  /* ---------- 方案F §6-§11 兼容别名（沿用设计稿命名，不改既有变量） ---------- */
  --xj-red:      #b03a2e;
  --xj-red-dk:   #7f251b;
  --xj-red-bg:   rgba(176, 58, 46, .07);
  --xj-olive-bg: rgba(65, 88, 78, .08);
  --xj-shadow-s: var(--xj-shadow-sm);
  --xj-shadow-m: var(--xj-shadow);
  --xj-shadow-l: var(--xj-shadow-lg);
  --xj-sky:      #7fb1d8;
  --xj-ico-shield: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.5l7 2.5v5.5c0 4.6-3 7.6-7 9-4-1.4-7-4.4-7-9V6Z'/%3E%3Cpath d='M9 12l2 2 4-4.5'/%3E%3C/svg%3E");

  /* ------------------------------------------------------------------
     T3.2 兼容别名：旧变量名保留，指向新名。
     目的：任何未替换到的引用点仍取到正确色值 → 本次重构视觉零变化。
     后续可安全删除（届时需先确认全站无引用）。
     ------------------------------------------------------------------ */
  --xj-amber:          var(--xj-brass-2);
  --xj-gold:           var(--xj-vermilion);
  --xj-gold-dk:        var(--xj-vermilion-dk);
  --xj-gold-glow:      var(--xj-vermilion-glow);
  --xj-gold-lt:        var(--xj-vermilion-lt);
  --xj-jade:           var(--xj-celadon);
  --xj-night:          var(--xj-paper);
  --xj-night-2:        var(--xj-paper-2);
  --xj-rose:           var(--xj-vermilion-2);
  --xj-violet:         var(--xj-brass);

  /* T3.2 新增：真金色（灵签庙堂金 / 宅院风水罗盘青铜，区别于朱砂主色） */
  --xj-gold-true:  #b08d57;


}

/* ---------- 2. 基础 ---------- */
body.xj-theme,
body {
  background: var(--xj-paper) !important;
  color: var(--xj-ink);
  font-family: var(--xj-sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(1100px 620px at 12% -8%, rgba(176, 58, 46, .06), transparent 62%),
    radial-gradient(900px 520px at 88% 4%, rgba(169, 133, 47, .05), transparent 60%),
    radial-gradient(760px 480px at 50% 108%, rgba(65, 88, 78, .05), transparent 62%);
}

/* ---------- 3. 容器 ---------- */
.xj-wrap { max-width: var(--xj-max); margin: 0 auto; padding: 0 var(--xj-pad); position: relative; z-index: 1; }
.xj-wrap--narrow { max-width: 880px; }
.xj-wrap--wide   { max-width: 1400px; }

/* 方案F §2：板块节奏（外层 + 标题组内松，形成「外紧内松」） */
/* 2026-09-20 用户反馈「区块之间间隔太大」：46/28 → 30/20（相邻区块视觉间距 92px → 60px） */
/* 2026-09-30 用户再次反馈「每个部件之间上下留太高、不紧凑」：30/20 → 16/12。
   根因是三层留白叠加：区块 padding + 部件自身 padding/margin + 标题组 margin。
   区块层收到 16/12 后，相邻区块纯空白 24–32px（原先 40–60px），
   部件内部的内边距（22–30px）保持不变，「外紧内松」的层次仍在。 */
.xj-section { padding: 16px 0; position: relative; z-index: 1; }
.xj-section--tight { padding: 12px 0; }

/* ---------- 4. 排版 ---------- */
.xj-h1, .xj-h2, .xj-h3, .xj-h4 {
  font-family: var(--xj-serif); letter-spacing: .02em;
  color: var(--xj-ink); margin: 0;
}
.xj-h1 { font-size: clamp(30px, 4.6vw, 52px); line-height: 1.22; font-weight: 700; letter-spacing: .06em; }
.xj-h2 { font-size: clamp(23px, 2.9vw, 34px); line-height: 1.34; font-weight: 700; }
.xj-h3 { font-size: clamp(18px, 2vw, 23px); line-height: 1.45; font-weight: 600; }
.xj-h4 { font-size: 17px; line-height: 1.5; font-weight: 600; }

.xj-lead { font-size: clamp(14.5px, 1.25vw, 17px); line-height: 2; color: var(--xj-ink-2); margin: 0; }
.xj-text { font-size: 14.5px; line-height: 2; color: var(--xj-ink-2); margin: 0 0 14px; }
.xj-text:last-child { margin-bottom: 0; }
.xj-small { font-size: 12.8px; line-height: 1.9; color: var(--xj-muted); }

.xj-gold-text { color: var(--xj-vermilion-lt); }
.xj-center { text-align: center; }

/* 眉标 */
.xj-eyebrow {
  display: inline-flex; align-items: center; gap: 9px;
  font-size: 11.5px; letter-spacing: .28em; text-transform: uppercase;
  color: var(--xj-vermilion-dk); margin-bottom: 10px; font-family: var(--xj-sans);
}
.xj-eyebrow::before { content: ""; width: 26px; height: 1px; background: linear-gradient(90deg, transparent, var(--xj-vermilion)); }

/* 祥云分隔线（局部装饰一） */
.xj-rule {
  height: 26px; border: 0; margin: 20px 0; opacity: .95;
  background:
    var(--xj-cloud) center center / auto 24px no-repeat,
    linear-gradient(90deg, transparent, var(--xj-line) 16%, var(--xj-line) 38%, transparent 47%) left center / 50% 1px no-repeat,
    linear-gradient(90deg, transparent 53%, var(--xj-line) 62%, var(--xj-line) 84%, transparent) right center / 50% 1px no-repeat;
}

/* ---------- 5. Hero ---------- */
.xj-hero {
  position: relative; overflow: hidden; padding: 44px 0 32px;
  border-bottom: 1px solid var(--xj-line-2);
  background:
    radial-gradient(900px 480px at 50% -12%, rgba(176, 58, 46, .09), transparent 66%),
    linear-gradient(180deg, #faf6ec 0%, #f7f3e9 100%);
}
/* Hero 底缘祥云带（局部装饰二） */
.xj-hero::after {
  content: ""; position: absolute; left: 50%; bottom: 6px;
  transform: translateX(-50%);
  width: min(560px, 70%); height: 34px;
  background: var(--xj-cloud) center center / contain no-repeat;
  opacity: .22; pointer-events: none;
}
.xj-hero--sm { padding: 26px 0 20px; }
.xj-hero--lg { padding: 38px 0 28px; }

.xj-hero__inner { max-width: 860px; position: relative; z-index: 1; }
.xj-hero--center .xj-hero__inner { margin: 0 auto; text-align: center; }
.xj-hero--center .xj-eyebrow::before { display: none; }
.xj-hero--center .xj-eyebrow { justify-content: center; }
/* 2026-09-20：居中版 hero 的徽标行此前是左对齐（.xj-tags 默认 flex-start），补居中 */
.xj-hero--center .xj-tags { justify-content: center; }

/* 方案F §5：Hero 同心轨道装饰 + 眉标菱形行 + 强调标题 */
.xj-orbit-deco {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -56%);
  opacity: .5; pointer-events: none; z-index: 0;
}
.xj-hero > .xj-wrap { position: relative; z-index: 1; }
.xj-eyebrow-row {
  display: inline-flex; align-items: center; gap: 14px;
  font-size: 11.5px; letter-spacing: .42em; color: var(--xj-vermilion-dk);
  font-weight: 600; margin-bottom: 16px; font-family: var(--xj-sans);
}
.xj-eyebrow-row .xj-dia { color: var(--xj-vermilion); font-size: 9px; letter-spacing: 0; }
.xj-hero--center .xj-eyebrow-row { justify-content: center; }
.xj-hl { color: var(--xj-vermilion-dk); }
.xj-badge .xj-ico { color: var(--xj-vermilion); width: 14px; height: 14px; }

.xj-hero__sub {
  margin-top: 16px; font-size: clamp(14.5px, 1.35vw, 17.5px);
  line-height: 1.9; color: var(--xj-ink-2); max-width: 720px;
}
.xj-hero--center .xj-hero__sub { margin-left: auto; margin-right: auto; }

.xj-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 24px; }
.xj-hero--center .xj-hero__actions { justify-content: center; }

/* 方案F §5：统计铭牌顶部三色饰线 */
.xj-stats { position: relative; }
.xj-stats::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; z-index: 2;
  background: linear-gradient(90deg, transparent, var(--xj-vermilion) 25%, var(--xj-vermilion-lt) 50%, var(--xj-vermilion) 75%, transparent);
}

/* 方案F §5：每日一签 · 横排大卡 */
.xj-card--ritual { flex-direction: row; align-items: center; gap: 22px; padding: 22px 28px; }
.xj-card--ritual::after {
  content: ""; position: absolute; right: -34px; top: -34px; width: 110px; height: 110px;
  border-radius: 50%; background: radial-gradient(circle, rgba(176, 58, 46, .08), transparent 70%);
  pointer-events: none;
}
.xj-card__ring {
  flex: none; width: 58px; height: 58px; border-radius: 50%;
  border: 1.5px solid var(--xj-line);
  background: radial-gradient(circle at 38% 32%, rgba(176, 58, 46, .10), transparent 62%);
  color: var(--xj-vermilion-dk); display: flex; align-items: center; justify-content: center;
}
.xj-card__ring .xj-ico { width: 26px; height: 26px; }
.xj-card__rbody { flex: 1; min-width: 0; }
.xj-card__rbody .xj-card__title { margin-bottom: 5px; }
.xj-card__rbody .xj-card__desc { font-size: 13px; }
.xj-card__free {
  margin-left: auto; flex: none; display: inline-flex; align-items: center; gap: 7px;
  font-size: 11.5px; letter-spacing: .2em; color: var(--xj-olive-dk);
  border: 1px solid rgba(65, 88, 78, .32); background: rgba(65, 88, 78, .08);
  padding: 6px 15px; border-radius: 999px; white-space: nowrap;
}
@media (max-width: 640px) {
  .xj-card--ritual { flex-direction: column; align-items: flex-start; gap: 14px; padding: 22px 20px; }
  .xj-card__free { margin-left: 0; }
}

/* 方案F §5：文章卡（art-card） */
.xj-post-card { padding: 24px 24px 20px; }
.xj-post-card__meta { gap: 10px; margin-bottom: 12px; }
.xj-post-card__meta .xj-badge {
  background: rgba(176, 58, 46, .07); border: 0; color: var(--xj-vermilion-dk);
  font-size: 11.5px; letter-spacing: .16em; padding: 3px 9px; border-radius: 4px;
}
.xj-post-card__more { display: flex; justify-content: space-between; align-items: center; }
.xj-post-card__more span { color: var(--xj-faint); font-weight: 400; letter-spacing: .06em; }

/* 面包屑 */
.xj-crumb { font-size: 12.5px; color: var(--xj-faint); margin-bottom: 20px; display: flex; gap: 8px; align-items: center; }
.xj-crumb a { color: var(--xj-muted); text-decoration: none; transition: color .2s; }
.xj-crumb a:hover { color: var(--xj-vermilion-dk); }
.xj-crumb span { opacity: .55; }

/* ---------- 6. 按钮 ---------- */
.xj-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  padding: 14px 30px; border-radius: 999px; border: 1px solid transparent;
  font-family: var(--xj-sans); font-size: 14.5px; font-weight: 600; letter-spacing: .04em;
  cursor: pointer; text-decoration: none !important;
  transition: all .26s cubic-bezier(.4, 0, .2, 1);
  position: relative; overflow: hidden; line-height: 1;
}
/* 主 CTA：沿用 v2 鎏金渐变（用户明确不用宝蓝） */
.xj-btn--gold {
  background: linear-gradient(135deg, #c4473a 0%, #b03a2e 46%, #93291f 100%);
  color: #fff6ec !important;
  box-shadow: 0 8px 22px rgba(184, 137, 58, .28);
}
.xj-btn--gold:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(184, 137, 58, .38); filter: brightness(1.05); }
.xj-btn--gold2 {
  /* 备用：朱橙渐变（如需更「起卦」的红金感可切换） */
  background: linear-gradient(135deg, #c8523f 0%, #b03a2e 50%, #8f2d22 100%);
  color: #fff !important;
  box-shadow: 0 8px 22px rgba(176, 58, 46, .30);
}
.xj-btn--ghost {
  background: var(--xj-surface); border-color: var(--xj-line-3);
  color: var(--xj-ink) !important; box-shadow: var(--xj-shadow-sm);
}
.xj-btn--ghost:hover { border-color: var(--xj-vermilion); color: var(--xj-vermilion-lt) !important; background: #fffdf7; transform: translateY(-2px); }
.xj-btn--block { width: 100%; }
.xj-btn--lg { padding: 17px 40px; font-size: 15.5px; }
.xj-btn--sm { padding: 10px 20px; font-size: 13px; }

/* T23：.xj-btn 的 display:inline-flex 会盖掉 UA 的 [hidden]{display:none}，
   导致「重新测字 / 重新解梦」在未提交时也常显 —— 显式还原 hidden 语义。 */
.xj-btn[hidden] { display: none; }

.xj-btn:disabled, .xj-btn[disabled] { opacity: .5; cursor: not-allowed; transform: none !important; filter: none !important; }

.xj-btn__spin {
  width: 15px; height: 15px;
  border: 2px solid rgba(36, 28, 12, .25);
  border-top-color: rgba(36, 28, 12, .70);
  border-radius: 50%; animation: xj-spin .7s linear infinite; display: none;
}
.xj-btn.is-loading .xj-btn__spin { display: block; }
@keyframes xj-spin { to { transform: rotate(360deg); } }

/* ---------- 7. 卡片 ---------- */
/* 防御：wpautop 会在卡片间插入空 <p>/<a>，把撕裂产生的空卡片隐藏 */
.xj-grid > .xj-card:empty,
.xj-grid > p:empty,
.xj-grid > a.xj-card:empty { display: none !important; }

.xj-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(258px, 1fr)); }
.xj-grid--2 { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
.xj-grid--3 { grid-template-columns: repeat(3, 1fr); }
.xj-grid--4 { grid-template-columns: repeat(4, 1fr); }

/* 2026-09-20：首页「签卦字梦」四工具排成一行。（窄卡改为纵向：图标 → 标题 → 说明 → 免费标签）
   放在 .xj-grid--3/--4 之后，避免被上面的基类或下面的媒体查询覆盖。 */
.xj-grid--rite { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.xj-grid--rite .xj-card--ritual {
  flex-direction: column; align-items: flex-start; gap: 12px; padding: 20px 20px 18px;
}
.xj-grid--rite .xj-card__rbody { display: flex; flex-direction: column; gap: 8px; }
.xj-grid--rite .xj-card__desc { margin: 0; }
.xj-grid--rite .xj-card__free { margin-top: auto; }
@media (max-width: 1180px) { .xj-grid--rite { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .xj-grid--rite { grid-template-columns: 1fr; } }

@media (max-width: 940px) { .xj-grid--3, .xj-grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .xj-grid--2, .xj-grid--3, .xj-grid--4 { grid-template-columns: 1fr; } }

.xj-card {
  position: relative; display: flex; flex-direction: column;
  padding: 22px 22px 17px; border-radius: var(--xj-r);
  border: 1px solid var(--xj-line-2);
  background: var(--xj-surface);
  box-shadow: var(--xj-shadow-sm);
  text-decoration: none !important; color: inherit !important;
  transition: all .3s cubic-bezier(.4, 0, .2, 1); overflow: hidden;
}
/* 方案F §3.3：卡片顶部色条（hover 从左划入） */
.xj-card::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, #b03a2e, #c9a86a);
  transform: scaleX(0); transform-origin: left;
  transition: transform .35s cubic-bezier(.4, 0, .2, 1);
}
.xj-card:hover { transform: translateY(-4px); background: #fffdf7; box-shadow: var(--xj-shadow); }
.xj-card:hover::before { transform: scaleX(1); }

/* 西轨卡片（西方星象三工具） */
.xj-card--west::before { background: linear-gradient(90deg, #d8b878, #7fb1d8); }

/* SVG 图标基类（方案F §3.1） */
.xj-ico { width: 24px; height: 24px; flex: none; }
.xj-ico use { pointer-events: none; }
/* T3.1：报告锁定态锁形图标（替换原 🔒 emoji） */
.xj-pv__lock-icon { display: inline-flex; align-items: center; flex: none; }
.xj-pv__lock-icon .xj-ico { width: 14px; height: 14px; }

.xj-card__icon {
  width: 50px; height: 50px; display: flex; align-items: center; justify-content: center;
  border-radius: 12px; background: rgba(176, 58, 46, .08); border: 1px solid rgba(176, 58, 46, .26);
  color: #7f251b; font-size: 21px; margin-bottom: 12px; font-family: var(--xj-serif);
}
.xj-card__icon .xj-ico { width: 24px; height: 24px; }
.xj-card--west .xj-card__icon { background: #0c111f; border-color: var(--xj-sline); color: var(--xj-sgold); }
.xj-card__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.xj-card__top .xj-card__icon { margin-bottom: 0; }
.xj-card__cat {
  font-size: 11.5px; letter-spacing: .24em; color: var(--xj-faint);
  border: 1px solid var(--xj-line-2); padding: 4px 11px; border-radius: 999px; white-space: nowrap;
}
/* T2.2：西轨卡片分类标签原 #6d7890 在白底仅 4.43:1，加深至 #5f6a80 = 5.44:1 */
.xj-card--west .xj-card__cat { color: #5f6a80; }
.xj-card__note { display: inline-flex; align-items: center; gap: 6px; }
.xj-card__title { font-family: var(--xj-serif); font-size: 18.5px; color: var(--xj-ink); margin: 0 0 10px; letter-spacing: .02em; }
.xj-card__desc { font-size: 13.4px; line-height: 1.95; color: var(--xj-muted); margin: 0; flex: 1; }
.xj-card__meta {
  margin-top: 15px; padding-top: 12px; border-top: 1px solid var(--xj-line-2);
  display: flex; align-items: center; justify-content: space-between;
  font-size: 12.4px; color: var(--xj-faint);
}
.xj-card__more { color: var(--xj-vermilion-dk); font-weight: 600; letter-spacing: .04em; display: inline-flex; align-items: center; gap: 6px; transition: gap .2s; }
.xj-card:hover .xj-card__more { gap: 10px; }
/* T2.2：原 #8a7440 在 #FFFCF5 卡片底仅约 4.3:1，加深至 #6f5c2f ≈ 6.6:1 */
.xj-card--west .xj-card__more { color: #6f5c2f; }
.xj-card--accent-jade   .xj-card__icon { background: rgba(65, 88, 78, .10);  border-color: rgba(65, 88, 78, .32);  color: var(--xj-celadon); }
.xj-card--accent-rose   .xj-card__icon { background: rgba(176, 58, 46, .10); border-color: rgba(176, 58, 46, .32); color: var(--xj-vermilion-2); }
.xj-card--accent-violet .xj-card__icon { background: rgba(169, 133, 47, .10); border-color: rgba(169, 133, 47, .32); color: var(--xj-brass); }
.xj-card--accent-amber  .xj-card__icon { background: rgba(169, 133, 47, .12);  border-color: rgba(169, 133, 47, .34);  color: #7a6122; }
.xj-card--accent-azure  .xj-card__icon { background: rgba(78, 110, 117, .10);  border-color: rgba(78, 110, 117, .32);  color: var(--xj-azure); }

/* ---------- 8. 面板 ---------- */
.xj-panel {
  border-radius: var(--xj-r-lg); border: 1px solid var(--xj-line-2);
  background: var(--xj-surface); box-shadow: var(--xj-shadow-sm);
  padding: 30px 36px; position: relative; z-index: 1;
  /* T2.1：显式 min-width:0 —— 否则块级子元素默认 min-width:auto，
     内部 min-width:520px 的表格会把它连同父级一起撑出视口
     （曾致紫微/取名页 375px 下整页横向滚动 192~207px）。 */
  min-width: 0; max-width: 100%; box-sizing: border-box;
}
.xj-panel > * { min-width: 0; }
.xj-panel--gold {
  border-color: var(--xj-line);
  background: linear-gradient(165deg, #fffaf0 0%, var(--xj-surface) 62%);
}
/* 面板顶部祥云暗纹（局部装饰三） */
.xj-panel--gold::before {
  content: ""; position: absolute; top: 10px; right: 14px;
  width: 96px; height: 96px;
  background: var(--xj-cloud-corner) right top / 96px 96px no-repeat;
  opacity: .16; pointer-events: none;
}
.xj-panel--tight { padding: 26px; }

.xj-panel__title { font-family: var(--xj-serif); font-size: 20px; color: var(--xj-ink); margin: 0 0 8px; }
.xj-panel__hint { font-size: 12.8px; color: var(--xj-muted); line-height: 1.85; margin: 0 0 24px; }

/* ---------- 9. 表单 ---------- */
.xj-form { display: grid; gap: 20px; }
.xj-form__row { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(178px, 1fr)); }
.xj-form__row--2 { grid-template-columns: 1fr 1fr; }
.xj-form__row--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 620px) { .xj-form__row--2, .xj-form__row--3 { grid-template-columns: 1fr; } }

.xj-field { display: flex; flex-direction: column; gap: 9px; }
.xj-field > label, .xj-label {
  font-size: 12.6px; letter-spacing: .1em; color: var(--xj-vermilion-dk);
  font-weight: 600; text-transform: uppercase; display: flex; align-items: center; gap: 7px;
}
.xj-label__opt { font-size: 11.5px; color: var(--xj-faint); letter-spacing: 0; text-transform: none; font-weight: 400; margin-left: auto; }

.xj-input, .xj-select, .xj-textarea {
  width: 100%; padding: 14px 16px; border-radius: var(--xj-r-sm);
  border: 1px solid var(--xj-line-3); background: #fffdf8; color: var(--xj-ink);
  font-size: 14.5px; font-family: var(--xj-sans); transition: all .22s; line-height: 1.4;
}
.xj-input::placeholder, .xj-textarea::placeholder { color: var(--xj-faint); }
.xj-input:focus, .xj-select:focus, .xj-textarea:focus {
  outline: none; border-color: var(--xj-vermilion); background: #fffdf9;
  box-shadow: 0 0 0 3px rgba(176, 58, 46, .14);
}
.xj-select {
  appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important;
  background-color: #fffdf8 !important;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23b03a2e' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important; background-position: right 16px center !important;
  height: auto !important; min-height: 0 !important; line-height: 1.4 !important;
  padding: 14px 42px 14px 16px !important; padding-right: 42px !important; cursor: pointer;
}
.xj-select option { background: #fffdf8; color: var(--xj-ink); padding: 8px; }
.xj-textarea { min-height: 96px; resize: vertical; }

/* 单选 / 多选 */
.xj-choice { display: flex; gap: 10px; flex-wrap: wrap; }
.xj-choice label {
  position: relative; flex: 1; min-width: 88px; text-align: center;
  padding: 13px 14px; border-radius: var(--xj-r-sm);
  border: 1px solid var(--xj-line-3); background: var(--xj-surface);
  font-size: 14px; color: var(--xj-ink-2); cursor: pointer; transition: all .2s; user-select: none;
}
/* T2.1：窄屏下选项格固定三列，避免 flex:1 + 内容长度差异导致的换行不齐（曾出现 2/3/1） */
@media (max-width: 620px) {
  .xj-choice { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .xj-choice label { min-width: 0; flex: none; padding: 12px 6px; font-size: 13px; }
}
.xj-choice label:hover { border-color: var(--xj-vermilion); color: var(--xj-ink); }
.xj-choice input { position: absolute; opacity: 0; pointer-events: none; }
.xj-choice input:checked + span { color: #fff; }
.xj-choice label:has(input:checked) {
  background: linear-gradient(135deg, #4e665a, #41584e);
  border-color: var(--xj-olive-dk); color: #fff; font-weight: 600;
  box-shadow: 0 6px 18px rgba(65, 88, 78, .30);
}

/* 时辰九宫格 */
.xj-shichen { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; }
@media (max-width: 760px) { .xj-shichen { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 480px) { .xj-shichen { grid-template-columns: repeat(3, 1fr); } }
.xj-shichen label {
  position: relative; padding: 11px 6px; text-align: center; border-radius: var(--xj-r-sm);
  border: 1px solid var(--xj-line-3); background: var(--xj-surface); cursor: pointer;
  transition: all .2s; font-size: 12.6px; color: var(--xj-ink-2); line-height: 1.5;
}
.xj-shichen label:hover { border-color: var(--xj-vermilion); }
.xj-shichen b { display: block; font-size: 13.6px; color: var(--xj-ink); font-weight: 600; margin-bottom: 2px; }
.xj-shichen small { font-size: 11.5px; color: var(--xj-faint); display: block; }
.xj-shichen input { position: absolute; opacity: 0; pointer-events: none; }
.xj-shichen label:has(input:checked) {
  background: linear-gradient(135deg, #4e665a, #41584e);
  border-color: var(--xj-olive-dk); box-shadow: 0 6px 18px rgba(65, 88, 78, .30);
}
.xj-shichen label:has(input:checked) b,
.xj-shichen label:has(input:checked) small { color: #fff; }

/* 星级 / 打分 */
.xj-scale { display: flex; gap: 7px; }
.xj-scale label {
  flex: 1; text-align: center; padding: 12px 4px; border-radius: var(--xj-r-sm);
  border: 1px solid var(--xj-line-3); background: var(--xj-surface); cursor: pointer;
  font-size: 13.6px; color: var(--xj-ink-2); transition: all .2s;
}
.xj-scale label:hover { border-color: var(--xj-vermilion); }
.xj-scale input { display: none; }
.xj-scale label:has(input:checked) {
  background: linear-gradient(135deg, #4e665a, #41584e);
  border-color: var(--xj-olive-dk); color: #fff; font-weight: 600;
}

/* 表单底部说明 */
.xj-form__note { font-size: 11.8px; line-height: 1.85; color: var(--xj-faint); padding-top: 14px; border-top: 1px solid var(--xj-line-2); }

/* 隐私提示条 */
.xj-secure { display: flex; align-items: center; gap: 9px; font-size: 12.2px; color: var(--xj-muted); }
/* T3.1：emoji 🔒 替换为 SVG（mask 方式，色彩跟随 currentColor） */
.xj-secure::before {
  content: ""; flex: none; width: 14px; height: 14px; opacity: .85;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4.5' y='10.5' width='15' height='9.5' rx='2'/%3E%3Cpath d='M8 10.5V7.5a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4.5' y='10.5' width='15' height='9.5' rx='2'/%3E%3Cpath d='M8 10.5V7.5a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- 10. 徽章 / 标签 ---------- */
.xj-badge {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 5px 13px; border-radius: 999px; font-size: 12.5px; letter-spacing: .08em;
  font-weight: 600; border: 1px solid var(--xj-line);
  background: rgba(176, 58, 46, .10); color: var(--xj-vermilion-lt); white-space: nowrap;
}
.xj-badge--jade   { border-color: rgba(65, 88, 78, .34);  background: rgba(65, 88, 78, .10);  color: #33453d; }
.xj-badge--rose   { border-color: rgba(176, 58, 46, .34); background: rgba(176, 58, 46, .10); color: #8f2d22; }
.xj-badge--violet { border-color: rgba(169, 133, 47, .34); background: rgba(169, 133, 47, .10); color: #7a6122; }
.xj-badge--muted  { border-color: var(--xj-line-3); background: rgba(42, 38, 32, .04); color: var(--xj-muted); }

.xj-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.xj-tag {
  font-size: 12.2px; padding: 6px 13px; border-radius: 999px;
  border: 1px solid var(--xj-line-2); background: var(--xj-surface-2); color: var(--xj-ink-2);
}

/* ---------- 11. 统计 / 信任元素 ---------- */
.xj-stats {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 1px; background: var(--xj-line-2); border: 1px solid var(--xj-line-2);
  border-radius: var(--xj-r); overflow: hidden; box-shadow: var(--xj-shadow-sm);
}
.xj-stat { padding: 26px 20px; text-align: center; background: var(--xj-surface); }
.xj-stat__num { font-family: var(--xj-serif); font-size: clamp(23px, 2.6vw, 31px); color: var(--xj-vermilion-lt); line-height: 1.2; display: block; }
.xj-stat__label { font-size: 12.2px; color: var(--xj-muted); margin-top: 8px; letter-spacing: .06em; display: block; }

/* ---------- 12. 列表 / 步骤 ---------- */
.xj-steps { display: grid; gap: 0; counter-reset: xjstep; }
.xj-step { display: flex; gap: 20px; padding: 24px 0; border-bottom: 1px solid var(--xj-line-2); counter-increment: xjstep; }
.xj-step:last-child { border-bottom: 0; }
.xj-step__num {
  flex: 0 0 40px; height: 40px; display: flex; align-items: center; justify-content: center;
  border-radius: 50%; border: 1px solid var(--xj-line); background: rgba(176, 58, 46, .09);
  font-family: var(--xj-serif); font-size: 16px; color: var(--xj-vermilion-dk);
}
.xj-step__num::before { content: counter(xjstep); }
.xj-step__body { flex: 1; padding-top: 4px; }
.xj-step__title { font-family: var(--xj-serif); font-size: 17px; color: var(--xj-ink); margin: 0 0 8px; }
.xj-step__desc { font-size: 13.4px; line-height: 1.95; color: var(--xj-muted); margin: 0; }

/* 勾选列表 */
.xj-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 13px; }
.xj-checks li { position: relative; padding-left: 30px; font-size: 14px; line-height: 1.9; color: var(--xj-ink-2); }
.xj-checks li::before {
  content: ""; position: absolute; left: 0; top: 7px; width: 16px; height: 9px;
  border-left: 2px solid var(--xj-vermilion); border-bottom: 2px solid var(--xj-vermilion);
  transform: rotate(-45deg); opacity: .9;
}

/* ---------- 13. 表格 ---------- */
/* T2.1：滚动容器不得叠加 .xj-reveal 的 transform —— 带 transform 的元素会成为
   子元素包含块，overflow-x:auto 对 min-width 撑开的表格失效（曾致紫微/取名页
   375px 下被 xj-table 撑到 564px，整页横向滚动 192~207px）。 */
.xj-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: var(--xj-r); border: 1px solid var(--xj-line-2); background: var(--xj-surface); box-shadow: var(--xj-shadow-sm); max-width: 100%; }
.xj-table-wrap.xj-reveal { opacity: 1; transform: none; transition: none; }
.xj-table { width: 100%; border-collapse: collapse; font-size: 13.8px; min-width: 520px; }
/* T2.1：窄屏下表格降级为纵向卡片，避免强制横向滚动（520px 在 375 视口下需滚 145px） */
@media (max-width: 620px) {
  .xj-table { min-width: 0; font-size: 13px; }
  .xj-table th, .xj-table td { white-space: normal; word-break: break-word; }
  .xj-table th { padding: 11px 12px; font-size: 12px; }
  .xj-table td { padding: 11px 12px; }
  .xj-panel { padding: 24px 20px; }
  .xj-panel--tight { padding: 20px 16px; }
}
.xj-table th {
  text-align: left; padding: 15px 18px; background: rgba(176, 58, 46, .08);
  color: var(--xj-vermilion-lt); font-weight: 600; font-size: 12.8px; letter-spacing: .08em;
  border-bottom: 1px solid var(--xj-line); white-space: nowrap;
}
.xj-table td { padding: 14px 18px; border-bottom: 1px solid var(--xj-line-2); color: var(--xj-ink-2); line-height: 1.8; }
.xj-table tr:last-child td { border-bottom: 0; }
.xj-table tbody tr:hover td { background: rgba(176, 58, 46, .045); }

/* ---------- 14. 手风琴 / FAQ ---------- */
.xj-faq { border-top: 1px solid var(--xj-line-2); }
.xj-faq details { border-bottom: 1px solid var(--xj-line-2); padding: 0; }
.xj-faq summary {
  list-style: none; cursor: pointer; padding: 21px 42px 21px 0; position: relative;
  font-size: 15.4px; color: var(--xj-ink); font-family: var(--xj-serif); letter-spacing: .02em; transition: color .22s;
}
.xj-faq summary::-webkit-details-marker { display: none; }
.xj-faq summary:hover { color: var(--xj-vermilion-lt); }
.xj-faq summary::after {
  content: ""; position: absolute; right: 8px; top: 50%; width: 9px; height: 9px;
  border-right: 1.6px solid var(--xj-vermilion); border-bottom: 1.6px solid var(--xj-vermilion);
  transform: translateY(-70%) rotate(45deg); transition: transform .26s; opacity: .85;
}
.xj-faq details[open] summary::after { transform: translateY(-30%) rotate(225deg); }
.xj-faq details[open] summary { color: var(--xj-vermilion-lt); }
.xj-faq__body { padding: 0 40px 24px 0; font-size: 13.8px; line-height: 2.05; color: var(--xj-muted); }

/* ---------- 15. 提示条 ---------- */
.xj-note {
  display: flex; gap: 14px; padding: 20px 24px; border-radius: var(--xj-r);
  border: 1px solid rgba(176, 58, 46, .26); background: #fdf1e4;
  font-size: 12.8px; line-height: 1.95; color: #7c4a22;
}
.xj-note b { color: #7f251b; font-weight: 600; }
.xj-note::before { content: "ⓘ"; flex: 0 0 auto; color: var(--xj-vermilion-dk); font-size: 15px; line-height: 1.6; }
.xj-note--plain::before { display: none; }

.xj-alert {
  padding: 16px 20px; border-radius: var(--xj-r-sm);
  border-left: 3px solid var(--xj-vermilion); background: #fdf1e4;
  font-size: 13px; line-height: 1.9; color: #7c4a22;
}

/* ---------- 16. 结果区 ---------- */
.xj-result { display: none; margin-top: 24px; animation: xj-rise .5s cubic-bezier(.2, .8, .3, 1); }
.xj-result.is-open { display: block; }
@keyframes xj-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }

.xj-result__head {
  position: relative; display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 14px; padding-bottom: 20px; margin-bottom: 26px;
  border-bottom: 1px solid var(--xj-line);
}
/* 结果区头部右侧祥云（局部装饰四） */
.xj-result__head::after {
  content: ""; position: absolute; right: 0; bottom: -13px;
  width: 120px; height: 26px;
  background: var(--xj-cloud) right center / contain no-repeat;
  background-color: var(--xj-surface);
  opacity: .5; pointer-events: none;
}
.xj-result__title { font-family: var(--xj-serif); font-size: 21px; color: var(--xj-ink); margin: 0; }

/* 进度条 */
.xj-bar { margin-bottom: 18px; }
.xj-bar__top { display: flex; justify-content: space-between; font-size: 13px; margin-bottom: 8px; color: var(--xj-ink-2); }
.xj-bar__track { height: 7px; border-radius: 99px; background: rgba(42, 38, 32, .08); overflow: hidden; }
.xj-bar__fill {
  height: 100%; border-radius: 99px; width: 0;
  background: linear-gradient(90deg, #7f251b, #b03a2e, #f2854e);
  transition: width 1.1s cubic-bezier(.2, .8, .3, 1);
}

/* 骨架屏 */
.xj-skeleton {
  border-radius: var(--xj-r-sm); height: 15px; margin-bottom: 11px;
  background: linear-gradient(90deg, rgba(42,38,32,.05) 25%, rgba(42,38,32,.10) 50%, rgba(42,38,32,.05) 75%);
  background-size: 200% 100%; animation: xj-shimmer 1.4s infinite;
}
@keyframes xj-shimmer { to { background-position: -200% 0; } }

/* 提示 Toast */
.xj-toast {
  position: fixed; left: 50%; bottom: 34px; transform: translate(-50%, 20px);
  padding: 14px 26px; border-radius: 999px;
  background: rgba(42, 38, 32, .96); border: 1px solid rgba(255, 255, 255, .12);
  color: #f4ead6; font-size: 13.4px; box-shadow: var(--xj-shadow-lg);
  opacity: 0; pointer-events: none; transition: all .3s; z-index: 99999; backdrop-filter: blur(10px);
}
.xj-toast.is-show { opacity: 1; transform: translate(-50%, 0); }

/* ---------- 17. 页脚装饰 ---------- */
.xj-foot-note { padding: 28px 0; border-top: 1px solid var(--xj-line-2); margin-top: 52px; }

/* ---------- 18. 段落间距工具 ---------- */
.xj-mb-0  { margin-bottom: 0 !important; }
.xj-mt-8  { margin-top: 8px; }
.xj-mt-16 { margin-top: 16px; }
.xj-mt-24 { margin-top: 24px; }
.xj-mt-32 { margin-top: 32px; }
.xj-mt-44 { margin-top: 44px; }
.xj-mb-24 { margin-bottom: 24px; }

.xj-head-center { text-align: center; max-width: 660px; margin: 0 auto 30px; }
.xj-head-center .xj-h2 { margin-bottom: 12px; }
.xj-head-center .xj-text { margin-top: 10px; }
.xj-head-center .xj-text { color: var(--xj-muted); }

/* ---------- 19. 滚动动效 ---------- */
.xj-reveal {
  opacity: 0; transform: translateY(22px);
  transition: opacity .8s cubic-bezier(.2, .8, .3, 1), transform .8s cubic-bezier(.2, .8, .3, 1);
}
.xj-reveal.is-in { opacity: 1; transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
  .xj-reveal { opacity: 1; transform: none; transition: none; }
  * { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ---------- 19b. 起卦罗盘（工具入口专属组件，仅用于「起卦」语义页面） ---------- */
.xj-dial {
  display: inline-block; margin: 30px auto 0; border-radius: 50%; cursor: pointer;
  transition: transform .5s cubic-bezier(.2, .8, .3, 1), filter .3s;
  color: var(--xj-vermilion);
}
.xj-dial:hover { transform: rotate(38deg); filter: drop-shadow(0 14px 30px rgba(176, 58, 46, .30)); }
.xj-dial svg { display: block; }
.xj-dial-wrap { text-align: center; }
.xj-dial__tags { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.xj-dial__tag {
  padding: 9px 22px; border-radius: 999px;
  background: linear-gradient(135deg, #4e665a, #41584e); color: #fff;
  font-size: 13.6px; letter-spacing: .12em; box-shadow: 0 5px 14px rgba(65, 88, 78, .28);
}

/* ---------- 20. Astra 主题适配 ---------- */
/* 内容区保持通栏（由 .xj-wrap 控制版心），页头页尾容器与版心对齐 */
.site-content .ast-container { max-width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; }
.site-header .ast-container,
.ast-primary-header-bar .ast-container,
.site-footer .ast-container,
.ast-footer-copyright .ast-container {
  max-width: calc(var(--xj-max) + 2 * var(--xj-pad)) !important;
  margin-left: auto !important; margin-right: auto !important;
  padding-left: var(--xj-pad) !important; padding-right: var(--xj-pad) !important;
}

/* [§14] 汇总页 hero 有两种写法：`.xj-hero`（东/知识/幸运吉物）与 `.xj-hub__hero`（西侧星空版）。
   两者都必须隐藏 Astra 默认 entry-header，否则页面出现两个 h1（曾漏掉西侧，2026-09-18 修复）。*/
article:has(.xj-hero) .entry-header,
article:has(.xj-hero) .entry-meta,
article:has(.xj-hero) .ast-single-entry-breadcrumbs,
article:has(.xj-hub__hero) .entry-header,
article:has(.xj-hub__hero) .entry-meta,
article:has(.xj-hub__hero) .ast-single-entry-breadcrumbs { display: none !important; }
/* 不支持 :has() 的旧浏览器兜底：由 body.xj-hubpage / body.xj-west-hub 兜住 */
body.xj-hubpage .entry-header,
body.xj-hubpage .entry-meta,
body.xj-hubpage .ast-single-entry-breadcrumbs,
body.xj-west-hub .entry-header,
body.xj-west-hub .entry-meta,
body.xj-west-hub .ast-single-entry-breadcrumbs { display: none !important; }
article:has(.xj-hero) .entry-content > .xj-hero,
article:has(.xj-hub__hero) .entry-content > .xj-hub__hero { margin-top: 0; }
article:has(.xj-hero) .entry-content,
article:has(.xj-hub__hero) .entry-content { margin-top: 0 !important; }
article:has(.xj-hero) .ast-article-post,
article:has(.xj-hero) .ast-separate-container .ast-article-post,
article:has(.xj-hub__hero) .ast-article-post,
article:has(.xj-hub__hero) .ast-separate-container .ast-article-post { border: 0; background: transparent; }

.ast-separate-container .ast-article-post,
.ast-separate-container .ast-article-inner,
.ast-separate-container .comments-area { background: transparent !important; border: 0 !important; }
.ast-separate-container .ast-article-single { padding: 0 !important; }
.ast-separate-container { background: var(--xj-paper) !important; }

.site-content { padding: 0 !important; }
.content-area { padding: 0 !important; }
/* 菜单栏与首屏文字之间的 60px 空白条（Astra .content-area/#primary 的默认外边距） */
.content-area, #primary, #secondary { margin-top: 0 !important; margin-bottom: 0 !important; }
/* 第13轮：此条改为仅桌面生效——原先全宽 !important 会顶掉窄屏文章栏的左右边距（移动端正文贴边根因） */
@media (min-width: 921px) {
  .ast-separate-container .ast-article-single .entry-content { padding: 0 !important; }
}

/* ---------- 20b. 页头：浓墨底 + 暖金导航（与页面暖米底形成层次） ---------- */
.site-header, .ast-primary-header-bar, .main-header-bar {
  background: linear-gradient(180deg, #3f1b1f 0%, #341318 100%) !important;
  border-bottom: 1px solid rgba(201, 168, 106, .38) !important;
  box-shadow: 0 6px 24px rgba(38, 30, 16, .22);
}
/* 页头底缘细金线 */
.ast-primary-header-bar::after {
  content: ""; display: block; height: 2px; margin-top: -1px;
  background: linear-gradient(90deg, transparent, rgba(201, 168, 106, .55) 18%, rgba(201, 168, 106, .55) 82%, transparent);
}
.site-header .site-title a, .site-header .site-title,
.site-header .site-description { color: #f5ead9 !important; }

/* ---------- T3.4 双主题 header 衔接过渡 ----------
   问题：同一个深酒红 header 下接两种反差极大的主体底色
         —— 东方页暖米 #f7f3e9（极亮），西方页深空 #0c111f（极暗），
         硬边相接在东西主题切换时显得生硬。
   方案：在 header 底缘铺一条与「该页主体底色」同色系的渐隐带，
         让深酒红自然沉入下方，形成连续的明度过渡（不改 header 自身配色）。 */
.site-header { position: relative; }
.site-header::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -13px;
  height: 13px; pointer-events: none; z-index: 2;
  background: linear-gradient(180deg, rgba(52, 19, 24, .40) 0%, rgba(247, 243, 233, 0) 100%);
}
/* 西轨：主体为深空蓝，过渡带走深色，避免出现暖色残影 */
body.xj-west .site-header::after {
  background: linear-gradient(180deg, rgba(52, 19, 24, .52) 0%, rgba(12, 17, 31, 0) 100%);
}
/* 顶部三语切换条（暖米）与深色 header 之间同样需要视觉过渡 */
.xj-lang-bar, .xj-lang-in { position: relative; z-index: 3; }
.site-description { color: rgba(242, 232, 210, .55) !important; }

/* ---------- 方案F §4.1 顶部三语切换条 ---------- */
.xj-lang-bar { background: var(--xj-paper-2); border-bottom: 1px solid var(--xj-line-2); position: relative; z-index: 60; }
.xj-lang-in { max-width: calc(var(--xj-max) + 56px); margin: 0 auto; padding: 6px 28px; display: flex; justify-content: flex-end; align-items: center; gap: 14px; }
.xj-lang-tip { font-size: 11.5px; color: var(--xj-faint); letter-spacing: .14em; }
.xj-lang-switch { display: flex; border: 1px solid var(--xj-line-3); border-radius: 999px; overflow: hidden; background: var(--xj-surface); }
.xj-lang-switch a { font-size: 12px; letter-spacing: .06em; padding: 4px 14px; color: var(--xj-muted); border-right: 1px solid var(--xj-line-2); transition: all .15s; }
.xj-lang-switch a:last-child { border-right: 0; }
.xj-lang-switch a:hover { color: var(--xj-vermilion-dk); }
.xj-lang-switch a.cur { background: var(--xj-vermilion); color: #fff6ec !important; font-weight: 700; }
@media (max-width: 640px) { .xj-lang-tip { display: none; } }

/* ---------- T8.5 顶部账户区购物车图标（替代方案F §4.2 主导航胶囊） ---------- */
.xj-acc-cart {
  position: relative; display: inline-flex; align-items: center; gap: 4px;
  color: var(--xj-muted); transition: color .15s; margin-right: 2px;
}
.xj-acc-cart:hover { color: var(--xj-vermilion-dk); }
.xj-acc-cart .xj-ico { width: 16px; height: 16px; display: block; }
.xj-acc-cart .n {
  min-width: 15px; height: 15px; padding: 0 4px; border-radius: 999px;
  background: var(--xj-vermilion); color: #fff; font-size: 10px; line-height: 15px;
  text-align: center; font-weight: 700; letter-spacing: 0;
}
/* 购物车图标与后面的登录/注册之间留一条细分隔线 */
.xj-acc-cart + .xj-acc-bar__link { padding-left: 13px; border-left: 1px solid var(--xj-line-2); }
@media (max-width: 640px) { .xj-acc-cart + .xj-acc-bar__link { padding-left: 10px; } }

/* Logo（v3.3.3：参照横幅定稿——印章 + 三行字标） */
.xj-logo { display: inline-flex; align-items: center; gap: 14px; text-decoration: none !important; }
.xj-logo__mark { width: 54px; height: 54px; display: block; flex: 0 0 auto; filter: drop-shadow(0 2px 8px rgba(0, 0, 0, .38)); transition: transform .4s cubic-bezier(.2,.8,.3,1); }
.xj-logo:hover .xj-logo__mark { transform: rotate(-8deg) scale(1.05); }
.xj-logo__text { display: flex; flex-direction: column; line-height: 1.2; }
.xj-logo__name { font-family: var(--xj-serif); font-size: 25px; font-weight: 700; letter-spacing: .2em; color: #f3e0b8 !important; line-height: 1.18; }
.xj-logo__name-gold { color: #d9b872 !important; }
.xj-logo__sub {
  font-size: 10px; letter-spacing: .3em; color: rgba(235, 222, 194, .88);
  font-family: var(--xj-serif); margin-top: 4px;
  border-left: 2px solid rgba(201, 168, 106, .8); padding-left: 8px; line-height: 1.35;
}
/* T2.2：域名行原 9px/8px 过小，提升至 11.5px/11px（品牌信息需可读） */
.xj-logo__domain { font-size: 11.5px; letter-spacing: .42em; color: rgba(201, 168, 106, .9); font-family: var(--xj-sans); margin-top: 3px; }
@media (max-width: 780px) {
  .xj-logo { gap: 10px; }
  .xj-logo__mark { width: 42px; height: 42px; }
  .xj-logo__name { font-size: 19px; letter-spacing: .14em; }
  .xj-logo__sub { font-size: 8.6px; letter-spacing: .2em; }
  .xj-logo__domain { font-size: 11px; letter-spacing: .3em; }
}

/* 导航菜单（方案F §4.2：宋体 + 图标 + 8px 圆角块） */
.main-header-menu > .menu-item > .menu-link,
.ast-builder-menu .menu-link {
  color: #efdfc8 !important; font-family: var(--xj-serif) !important;
  font-size: 15px !important; font-weight: 600; letter-spacing: .12em;
  padding: 10px 16px !important; border-radius: 8px; transition: all .18s !important;
  display: inline-flex; align-items: center;
}
.main-header-menu > .menu-item > .menu-link:hover,
.ast-builder-menu .menu-link:hover {
  color: #f3d9a2 !important; background: rgba(201, 168, 106, .16) !important;
}
.main-header-menu > .menu-item.current-menu-item > .menu-link,
.main-header-menu > .menu-item.current-page-ancestor > .menu-link {
  color: #c9a86a !important; background: rgba(201, 168, 106, .13) !important; font-weight: 600;
}
/* 下拉箭头随主题 */
.main-header-menu .dropdown-menu-toggle .ast-icon svg { fill: rgba(230, 218, 192, .8) !important; }

/* 下拉菜单（深底） */
.main-header-menu .sub-menu, .ast-builder-menu .sub-menu {
  background: #3f1b1f !important;
  border: 1px solid rgba(176, 58, 46, .30) !important;
  border-radius: 0 0 var(--xj-r-sm) var(--xj-r-sm);
  box-shadow: 0 18px 40px rgba(20, 14, 6, .45); backdrop-filter: blur(14px);
}
.main-header-menu .sub-menu .menu-link { color: #efdfc8 !important; font-size: 13.4px !important; border-radius: 8px; }
.main-header-menu .sub-menu .menu-link:hover { color: #f3d9a2 !important; background: rgba(201, 168, 106, .14) !important; }

/* 移动端菜单（深底） */
.ast-mobile-popup-drawer .ast-mobile-popup-inner,
.ast-mobile-popup-content { background: #3a171c !important; }
.ast-mobile-popup-drawer .ast-mobile-popup-inner .menu-link,
.ast-mobile-popup-content .menu-link { color: #efdfc8 !important; }
.ast-mobile-menu-buttons .menu-toggle { color: #f5ead9 !important; }
.ast-mobile-menu-buttons .menu-toggle .ast-icon svg { fill: #f5ead9 !important; }
.ast-mobile-popup-drawer .ast-mobile-popup-header { background: transparent !important; }
.ast-mobile-popup-drawer .ast-mobile-toggle .menu-toggle { color: #f5ead9 !important; }

/* ---------- 20c. 页脚：浓墨底 + 祥云收边 ---------- */
.site-footer, .ast-footer-copyright, .ast-small-footer {
  background: linear-gradient(180deg, #2c2a26 0%, #1f1d1a 100%) !important;
  border-top: 1px solid rgba(201, 168, 106, .30) !important;
  color: #a99a7c !important;
  position: relative;
}
.site-footer::before {
  content: ""; position: absolute; top: 10px; right: 4%;
  width: 140px; height: 34px;
  background: var(--xj-cloud) right center / contain no-repeat;
  opacity: .28; pointer-events: none;
}
.site-footer h2, .site-footer h3, .site-footer h4,
.site-footer .widget-title, .site-footer .footer-widget .widget-title {
  color: #f5ead9 !important; font-family: var(--xj-serif) !important;
}
.site-footer .textwidget, .site-footer p, .site-footer li { color: #a99a7c !important; }
.site-footer a, .footer-menu .menu-link { color: #cdb98f !important; font-size: 13px !important; transition: color .2s; }
.site-footer a:hover { color: #c9a86a !important; }
.ast-footer-copyright { border-top: 1px solid rgba(255, 255, 255, .07) !important; }
/* T2.2：版权行原 #8d8069 在页脚深底（#2c2a26→#1f1d1a 渐变）上仅 3.70:1。
   注意：页脚是【深色底】，提高对比度要往【亮】走，不是加深。
   统一为页脚正文色 #a99a7c = 5.18:1（顶）/ 6.09:1（底）。 */
.ast-footer-copyright, .ast-footer-copyright p, .ast-footer-copyright a { color: #a99a7c !important; font-size: 12.5px !important; }
/* Astra 页脚内层行有自己的白底，会盖掉浓墨底——全部放透 */
.site-footer .site-primary-footer-wrap,
.site-footer .site-below-footer-wrap,
.site-footer .ast-builder-grid-row-container-inner,
.site-footer .site-footer-section,
.site-footer .ast-builder-grid-row { background: transparent !important; }
.site-footer .footer-menu .menu-link,
.site-footer .footer-nav-menu a { color: #cdb98f !important; font-size: 13px !important; }
.site-footer .footer-menu .menu-link:hover { color: #c9a86a !important; }
.site-footer .widget, .site-footer .widget a { color: #a99a7c !important; }

/* ---------- 21. WooCommerce 适配 ---------- */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  background: var(--xj-surface) !important;
  border: 1px solid var(--xj-line-2) !important;
  border-radius: var(--xj-r) !important;
  box-shadow: var(--xj-shadow-sm) !important;
  overflow: hidden; transition: all .3s; padding-bottom: 20px !important;
}
.woocommerce ul.products li.product:hover {
  transform: translateY(-5px); border-color: var(--xj-line) !important; box-shadow: var(--xj-shadow) !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  color: var(--xj-ink) !important; font-family: var(--xj-serif) !important;
  font-size: 17px !important; padding: 14px 18px 6px !important;
}
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .price ins {
  color: var(--xj-vermilion-lt) !important; font-size: 17px !important; padding: 0 18px !important; text-decoration: none !important;
}
.woocommerce ul.products li.product .button,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button {
  background: linear-gradient(135deg, #c4473a, #b03a2e) !important;
  color: #fff6ec !important; border-radius: 999px !important;
  font-weight: 600 !important; letter-spacing: .04em; border: 0 !important;
  transition: all .24s !important; text-shadow: none !important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover { filter: brightness(1.05); box-shadow: 0 8px 22px rgba(184, 137, 58, .30); }
.woocommerce a.button:disabled, .woocommerce button.button:disabled { opacity: .55 !important; cursor: not-allowed !important; box-shadow: none !important; }
.woocommerce .woocommerce-breadcrumb { color: var(--xj-faint) !important; }
.woocommerce .woocommerce-breadcrumb a { color: var(--xj-muted) !important; }
.woocommerce div.product .product_title { color: var(--xj-ink) !important; font-family: var(--xj-serif) !important; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--xj-vermilion-lt) !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--xj-muted) !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--xj-vermilion-dk) !important; }
.woocommerce div.product form.cart .variations label { color: var(--xj-ink-2) !important; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--xj-ink-2) !important; }

/* 通用表格（购物车 / 结算审核 / 订单明细） */
.woocommerce table.shop_table {
  background: var(--xj-surface) !important;
  border-color: var(--xj-line-2) !important;
  color: var(--xj-ink-2) !important;
  border-radius: var(--xj-r) !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  box-shadow: var(--xj-shadow-sm) !important;
  overflow: hidden;
}
.woocommerce table.shop_table th {
  background: rgba(176, 58, 46, .09) !important;
  color: var(--xj-vermilion-lt) !important;
  font-weight: 600 !important;
  border-bottom: 1px solid var(--xj-line) !important;
  padding: 14px 14px !important;
}
.woocommerce table.shop_table td {
  color: var(--xj-ink-2) !important;
  border-top: 1px solid var(--xj-line-2) !important;
  padding: 14px !important;
  vertical-align: middle !important;
}
.woocommerce table.shop_table tfoot td, .woocommerce table.shop_table tfoot th {
  border-top: 1px solid var(--xj-line-2) !important;
  color: var(--xj-ink) !important; font-weight: 600 !important;
}
.woocommerce table.shop_table tbody tr:hover td { background: rgba(176, 58, 46, .04) !important; }

/* 购物车商品名 / 价格 */
.woocommerce-cart table.cart .product-name a { color: var(--xj-ink) !important; font-weight: 600; }
.woocommerce-cart table.cart .product-name a:hover { color: var(--xj-vermilion-dk) !important; }
.woocommerce .amount, .woocommerce-page .amount { color: var(--xj-vermilion-lt) !important; }

/* ★ 删除按钮：必须一眼可见、可点 */
.woocommerce table.cart a.remove,
.woocommerce-page table.cart a.remove,
.woocommerce ul.product_list_widget li a.remove {
  display: inline-flex !important;
  align-items: center; justify-content: center;
  width: 30px !important; height: 30px !important;
  border-radius: 50% !important;
  background: #fff !important;
  border: 1.5px solid #b03a2e !important;
  color: #b03a2e !important;
  font-size: 20px !important; font-weight: 700 !important;
  line-height: 1 !important; text-indent: 0 !important;
  transition: all .2s !important;
  box-shadow: 0 2px 8px rgba(176, 58, 46, .18);
}
.woocommerce table.cart a.remove:hover,
.woocommerce-page table.cart a.remove:hover {
  background: #b03a2e !important; color: #fff !important; transform: scale(1.08);
}
.woocommerce table.cart a.remove svg,
.woocommerce-page table.cart a.remove svg { width: 14px; height: 14px; }

/* 数量输入 */
.woocommerce .quantity .qty {
  background: #fffdf8 !important; border: 1px solid var(--xj-line-3) !important;
  color: var(--xj-ink) !important; border-radius: var(--xj-r-sm) !important;
  padding: 8px 10px !important; height: auto !important;
}

/* 购物车合计 */
.woocommerce-cart .cart-collaterals .cart_totals {
  background: var(--xj-surface); border: 1px solid var(--xj-line-2);
  border-radius: var(--xj-r); box-shadow: var(--xj-shadow-sm); padding: 22px;
}
.woocommerce-cart .cart-collaterals .cart_totals table { background: transparent !important; box-shadow: none !important; }
.woocommerce-cart .cart-collaterals .cart_totals th,
.woocommerce-cart .cart-collaterals .cart_totals td { color: var(--xj-ink-2) !important; }
.woocommerce-cart .cart-collaterals .cart_totals .order-total .amount {
  color: var(--xj-vermilion-lt) !important; font-size: 19px !important; font-weight: 700 !important;
}

/* 结算页 */
.woocommerce-checkout #payment {
  background: var(--xj-surface) !important;
  border-radius: var(--xj-r) !important;
  border: 1px solid var(--xj-line-2) !important;
  box-shadow: var(--xj-shadow-sm) !important;
}
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--xj-line-2) !important; padding: 18px !important; }
.woocommerce-checkout #payment ul.payment_methods li { color: var(--xj-ink-2) !important; list-style: none; }
.woocommerce-checkout #payment ul.payment_methods li label { color: var(--xj-ink) !important; font-weight: 600 !important; }
.woocommerce-checkout #payment div.payment_box {
  background: #fdf1e4 !important;
  border: 1px solid rgba(176, 58, 46, .24);
  border-radius: var(--xj-r-sm);
  color: #7c4a22 !important; padding: 14px 16px !important;
  line-height: 1.9 !important; position: relative;
}
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #fdf1e4 !important; }
.woocommerce-checkout #payment div.payment_box p { color: #7c4a22 !important; }
.woocommerce-checkout #payment div.payment_box .woocommerce-privacy-policy-text { color: #8a7a55 !important; }
.woocommerce-checkout-review-order-table { background: transparent !important; }
.woocommerce-checkout-review-order-table .cart-subtotal td,
.woocommerce-checkout-review-order-table .order-total td { color: var(--xj-ink) !important; }
.woocommerce-checkout-review-order-table .order-total .amount {
  color: var(--xj-vermilion-lt) !important; font-size: 18px !important; font-weight: 700 !important;
}
.woocommerce-checkout #place_order { width: 100% !important; padding: 17px 30px !important; font-size: 16px !important; }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
  background: #fdf1e4 !important;
  border: 1px solid rgba(176, 58, 46, .22);
  border-radius: var(--xj-r-sm);
  padding: 14px 16px; margin-bottom: 16px;
}
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a { color: var(--xj-vermilion-dk) !important; font-weight: 600; }
.woocommerce-checkout .woocommerce-terms-and-conditions {
  max-height: 220px !important; overflow: auto !important;
  background: var(--xj-surface) !important;
  border: 1px solid var(--xj-line-2) !important;
  border-radius: var(--xj-r-sm);
  padding: 16px !important; color: var(--xj-ink-2) !important;
}
.woocommerce-checkout label.woocommerce-form__label-for-checkbox { color: var(--xj-ink) !important; font-weight: 600 !important; }
.woocommerce-checkout input[type="checkbox"] {
  width: 17px !important; height: 17px !important;
  accent-color: #b03a2e !important; cursor: pointer; vertical-align: middle;
}
.woocommerce-checkout #customer_details {
  background: var(--xj-surface); border: 1px solid var(--xj-line-2);
  border-radius: var(--xj-r); box-shadow: var(--xj-shadow-sm); padding: 22px !important;
}
.woocommerce-checkout h3#order_review_heading,
.woocommerce-checkout #order_review_heading { color: var(--xj-ink) !important; }

/* 下拉选择（WooCommerce 国家/州等） */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea,
.woocommerce-page form .form-row select,
.select2-container--default .select2-selection--single {
  background: #fffdf8 !important;
  border: 1px solid var(--xj-line-3) !important;
  color: var(--xj-ink) !important;
  border-radius: var(--xj-r-sm) !important;
  padding: 11px 14px !important;
  height: auto !important; min-height: 0 !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--xj-ink) !important; line-height: 1.5 !important; padding: 0 !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 100% !important; }
.select2-dropdown { background: var(--xj-surface) !important; border: 1px solid var(--xj-line-2) !important; border-radius: var(--xj-r-sm) !important; }
.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background: rgba(176, 58, 46, .16) !important; color: var(--xj-ink) !important;
}
.select2-container--default .select2-results__option[aria-selected=true] { color: var(--xj-vermilion-dk) !important; }
.select2-search--dropdown .select2-search__field {
  background: #fffdf8 !important; border: 1px solid var(--xj-line-3) !important; color: var(--xj-ink) !important;
}

.woocommerce form .form-row label { color: var(--xj-ink-2) !important; font-size: 13px !important; }
.woocommerce form .form-row label .required { color: #b03a2e !important; }
.woocommerce-form__label-for-checkbox { color: var(--xj-ink-2) !important; }
.woocommerce input[type="radio"] { accent-color: #b03a2e !important; }

/* 提示信息 */
.woocommerce-info, .woocommerce-message, .woocommerce-error {
  background: #fdf1e4 !important;
  border-top-color: var(--xj-vermilion) !important;
  color: #7c4a22 !important;
  border-radius: var(--xj-r-sm) !important;
  list-style: none !important;
}
.woocommerce-error { border-top-color: #b03a2e !important; }
.woocommerce-error::before { color: #b03a2e !important; }
.woocommerce-info::before, .woocommerce-message::before { color: var(--xj-vermilion-dk) !important; }
.woocommerce-message .button, .woocommerce-info .button, .woocommerce-error .button {
  background: var(--xj-vermilion) !important; color: #fff !important; border-radius: 999px !important;
}

/* 订单接收页 */
.woocommerce-order-received .woocommerce-order-overview,
.woocommerce-order-received .woocommerce-order-details {
  background: var(--xj-surface); border: 1px solid var(--xj-line-2);
  border-radius: var(--xj-r); box-shadow: var(--xj-shadow-sm); padding: 22px;
}
.woocommerce-order-received .woocommerce-order-overview li { color: var(--xj-ink-2) !important; border-bottom: 1px dashed var(--xj-line-2); }
.woocommerce-order-received .woocommerce-order-overview li strong { color: var(--xj-ink) !important; }
.woocommerce-order-received .woocommerce-order-details__title,
.woocommerce-column__title { color: var(--xj-ink) !important; font-family: var(--xj-serif) !important; }
.woocommerce-order-received .woocommerce-order-details { margin-bottom: 26px; }

/*
 * T-P12(2026-09-27) WC 系页面容器顶格修复。
 * 用户实测：感谢页 H1「结算」完全贴屏幕左缘。根因（playwright 量化）：
 * 感谢页/购物车/我的账户 body 均为 ast-plain-container，Astra 对 #primary
 * 零限宽零内边距（x=0, padL=0, maxW=none），而普通页面是
 * ast-separate-container 有容器边距——WC 系页面全部顶格，感谢页 H1
 * 字号最大所以最先被发现。这里统一限宽居中 + 内边距（与站点标准容器
 * --ast-normal-container-width: 1200px 一致）。
 * 特异性 body.woocommerce-page #primary (1,1,1) > Astra .ast-plain-container #primary (1,1,0)。
 * 🔴 实测补丁：Astra customizer 内联 CSS 还有
 *    .ast-plain-container.ast-no-sidebar #primary（特异性 1,2,1）把 padding 清零，
 *    高于本规则——padding 必须带 !important（与本文件对抗 Astra 的既有风格一致）；
 *    max-width / margin auto 无对手，实测已生效，不加。
 */
body.woocommerce-page #primary {
  max-width: var(--ast-normal-container-width, 1200px);
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px !important;
  padding-right: 24px !important;
}
@media (max-width: 640px) {
  body.woocommerce-page #primary { padding-left: 16px !important; padding-right: 16px !important; }
}

/* 我的账户 */
.woocommerce-MyAccount-navigation { background: var(--xj-surface); border: 1px solid var(--xj-line-2); border-radius: var(--xj-r); overflow: hidden; }
.woocommerce-MyAccount-navigation ul { list-style: none !important; margin: 0 !important; padding: 8px !important; }
.woocommerce-MyAccount-navigation ul li { margin: 0 !important; }
.woocommerce-MyAccount-navigation ul li a { color: var(--xj-ink-2) !important; padding: 10px 14px !important; border-radius: var(--xj-r-sm) !important; display: block !important; }
.woocommerce-MyAccount-navigation ul li a:hover { background: rgba(176, 58, 46, .08) !important; color: var(--xj-vermilion-dk) !important; }
.woocommerce-MyAccount-navigation ul li.is-active a { background: linear-gradient(135deg, #4e665a, #41584e) !important; color: #fff !important; font-weight: 600 !important; }
.woocommerce-MyAccount-content { background: var(--xj-surface); border: 1px solid var(--xj-line-2); border-radius: var(--xj-r); box-shadow: var(--xj-shadow-sm); padding: 26px; }
.woocommerce-MyAccount-content p, .woocommerce-MyAccount-content td { color: var(--xj-ink-2) !important; }
.woocommerce-account .entry-content > .woocommerce { color: var(--xj-ink-2); }
.woocommerce h2, .woocommerce-page h2 { color: var(--xj-ink) !important; }
.woocommerce .star-rating span::before { color: #a9852f !important; }

/* 输入框统一（含 WooCommerce） */
input[type="text"], input[type="email"], input[type="tel"], input[type="number"],
input[type="password"], input[type="date"], select, textarea {
  background: #fffdf8; border: 1px solid var(--xj-line-3);
  color: var(--xj-ink); border-radius: var(--xj-r-sm); transition: all .22s;
}
input:focus, select:focus, textarea:focus {
  outline: none; border-color: var(--xj-vermilion);
  box-shadow: 0 0 0 3px rgba(176, 58, 46, .14);
}
input::placeholder, textarea::placeholder { color: var(--xj-faint); }

/* ---------- 25. 塔罗洗牌动画 ---------- */
.xj-anim-cards { display: flex; justify-content: center; gap: 18px; padding: 26px 0 6px; position: relative; height: 130px; }
.xj-anim-card {
  position: absolute; width: 76px; height: 118px; border-radius: 10px;
  background:
    radial-gradient(circle at 50% 38%, rgba(255, 244, 220, .25), transparent 46%),
    linear-gradient(160deg, #f0692f 0%, #8f2d22 100%);
  border: 2px solid rgba(255, 244, 220, .6);
  box-shadow: 0 10px 24px rgba(96, 62, 42, .30);
}
.xj-anim-card::after {
  content: "✦"; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  color: rgba(255, 244, 220, .8); font-size: 24px;
}
.xj-anim-card--1 { left: calc(50% - 138px); animation: xj-shuffle-a 1.15s ease-in-out infinite; }
.xj-anim-card--2 { left: calc(50% - 38px); animation: xj-shuffle-b 1.15s ease-in-out infinite; z-index: 1; }
.xj-anim-card--3 { left: calc(50% + 62px); animation: xj-shuffle-c 1.15s ease-in-out infinite; }
@keyframes xj-shuffle-a {
  0%, 100% { transform: translate(0, 0) rotate(-8deg); }
  50% { transform: translate(96px, -10px) rotate(6deg); }
}
@keyframes xj-shuffle-b {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  50% { transform: translate(-100px, 6px) rotate(-10deg); }
}
@keyframes xj-shuffle-c {
  0%, 100% { transform: translate(0, 0) rotate(9deg); }
  50% { transform: translate(4px, -14px) rotate(2deg); }
}
.xj-anim-cards__cap { text-align: center; font-size: 12.8px; letter-spacing: .2em; color: var(--xj-vermilion-dk); margin: 4px 0 0; }

/* ---------- 22. 响应式细节 ---------- */
@media (max-width: 780px) {
  :root { --xj-pad: 18px; }
  .xj-section { padding: 13px 0; }
  .xj-section--tight { padding: 10px 0; }
  .xj-hero { padding: 34px 0 26px; }
  .xj-hero--sm { padding: 22px 0 18px; }
  .xj-hero--lg { padding: 30px 0 22px; }
  .xj-panel { padding: 28px 20px; }
  .xj-panel--gold::before { width: 64px; height: 64px; background-size: 64px 64px; }
  .xj-card { padding: 22px 20px 17px; }
  .xj-faq__body { padding-right: 0; }
  .xj-rule { background:
    var(--xj-cloud) center center / auto 20px no-repeat,
    linear-gradient(90deg, transparent, var(--xj-line) 8%, var(--xj-line) 30%, transparent 40%) left center / 50% 1px no-repeat,
    linear-gradient(90deg, transparent 60%, var(--xj-line) 70%, var(--xj-line) 92%, transparent) right center / 50% 1px no-repeat; }
  .xj-hero::after { width: 82%; opacity: .16; }
}

/* ---------- 23. 文章卡片（SEO 板块） ---------- */
.xj-post-card__meta {
  display: flex; align-items: center; gap: 10px;
  font-size: 12px; color: var(--xj-faint); margin-bottom: 12px;
}
.xj-post-card__meta .xj-badge { font-size: 11.5px; padding: 3px 10px; }
.xj-post-card__excerpt {
  font-size: 13.2px; line-height: 1.9; color: var(--xj-muted); margin: 0; flex: 1;
}
.xj-post-card__more { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--xj-line-2); font-size: 12.6px; color: var(--xj-vermilion-dk); font-weight: 600; letter-spacing: .04em; }

/* ---------- 24. 商品插图 ---------- */
.woocommerce ul.products li.product img,
.woocommerce-page ul.products li.product img {
  width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block;
  background: var(--xj-surface-3);
  border-bottom: 1px solid var(--xj-line-2);
}
.woocommerce div.product div.images img { border-radius: var(--xj-r-lg); border: 1px solid var(--xj-line-2); background: var(--xj-surface-3); }

/* 信任区徽章行（v3.2 信任区右栏底部） */
.xj-trust-badges { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.xj-trust-badges span {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 14px; border-radius: 999px;
  border: 1px solid var(--xj-line-2); background: var(--xj-surface-2);
  color: var(--xj-ink-2); font-size: 12.2px; letter-spacing: .04em;
}
.xj-trust-badges span::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%;
  background: var(--xj-vermilion); opacity: .85;
}
#billing_country_field .required, #billing_country_field abbr.required { display: none !important; }

/* 信任区左栏：推演链条 + 典籍引文（v3.3） */
.xj-checks li b { color: var(--xj-ink); font-weight: 700; }
.xj-chain { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 24px; }
.xj-chain span {
  padding: 6px 14px; border-radius: 8px;
  border: 1px solid var(--xj-line);
  background: linear-gradient(160deg, #fffaf0, var(--xj-surface));
  font-family: var(--xj-serif); font-size: 13px; letter-spacing: .08em; color: var(--xj-ink);
}
.xj-chain i { font-style: normal; font-size: 13px; color: var(--xj-vermilion-dk); opacity: .8; }
.xj-quote {
  margin-top: 14px; padding: 15px 18px 13px;
  border-left: 3px solid var(--xj-vermilion);
  border-radius: 0 10px 10px 0;
  background: var(--xj-surface-2);
}
.xj-quote__text { margin: 0; font-family: var(--xj-serif); font-size: 15px; color: var(--xj-ink); letter-spacing: .02em; }
.xj-quote__src { font-size: 12.5px; color: var(--xj-vermilion-dk); margin-left: 8px; white-space: nowrap; }
.xj-quote__note { margin: 7px 0 0; font-size: 12.8px; line-height: 1.9; color: var(--xj-muted); }

/* WooCommerce 商品列表在 xj 区块内不留幻影底空（v3.3.1） */
.xj-section ul.products { margin-bottom: 0; }
.xj-section ul.products > li.product:last-child { margin-bottom: 0; }

/* 联盟导购区声明行（v3.3.2） */
.xj-affiliate-note {
  margin: 18px auto 0; max-width: 760px; text-align: center;
  font-size: 11.8px; line-height: 1.85; color: var(--xj-muted); opacity: .78;
}

/* ==========================================================================
   方案F §4.2 导航图标（mask 方案：随文字颜色着色）v2
   由 _patch_f_navicons.py 生成，勿手改本块。
   ========================================================================== */
.main-header-menu > .menu-item > .menu-link::before,
.ast-builder-menu .sub-menu .menu-link::before,
.ast-mobile-popup-drawer .menu-link::before {
  content: ""; flex: none; width: 16px; height: 16px; margin-right: 7px;
  background-color: currentColor; display: inline-block; vertical-align: -3px;
  -webkit-mask: var(--xj-nav-ico, none) center / 16px 16px no-repeat;
  mask: var(--xj-nav-ico, none) center / 16px 16px no-repeat;
  opacity: .85; transition: opacity .18s;
}
.ast-builder-menu .sub-menu .menu-link::before { width: 14px; height: 14px; margin-right: 6px;
  -webkit-mask-size: 14px 14px; mask-size: 14px 14px; }
.main-header-menu > .menu-item > .menu-link:hover::before,
.main-header-menu > .menu-item.current-menu-item > .menu-link::before { opacity: 1; }

.main-header-menu a[href*="/ba-zi-pai-pan/"]::before, .ast-builder-menu a[href*="/ba-zi-pai-pan/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.6'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'12'%20cy%3D'12'%20r%3D'9'%2F%3E%3Cpath%20d%3D'M12%203a4.5%204.5%200%200%200%200%209%204.5%204.5%200%200%201%200%209'%2F%3E%3Ccircle%20cx%3D'12'%20cy%3D'7.5'%20r%3D'.8'%20fill%3D'currentColor'%20stroke%3D'none'%2F%3E%3Ccircle%20cx%3D'12'%20cy%3D'16.5'%20r%3D'.8'%20fill%3D'currentColor'%20stroke%3D'none'%2F%3E%3C%2Fsvg%3E"); }
.main-header-menu a[href*="/zi-wei-dou-shu/"]::before, .ast-builder-menu a[href*="/zi-wei-dou-shu/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.6'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'12'%20cy%3D'12'%20r%3D'9'%2F%3E%3Ccircle%20cx%3D'12'%20cy%3D'12'%20r%3D'5'%2F%3E%3Cpath%20d%3D'M12%2012%2015%208'%2F%3E%3Cpath%20d%3D'M12%203v2M12%2019v2M3%2012h2M19%2012h2'%2F%3E%3C%2Fsvg%3E"); }
.main-header-menu a[href*="/cai-yun-fen-xi/"]::before, .ast-builder-menu a[href*="/cai-yun-fen-xi/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.6'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'12'%20cy%3D'12'%20r%3D'8.5'%2F%3E%3Crect%20x%3D'9'%20y%3D'9'%20width%3D'6'%20height%3D'6'%20rx%3D'1'%2F%3E%3Cpath%20d%3D'M5%208l1.5%201M19%208l-1.5%201M5%2016l1.5-1M19%2016l-1.5-1'%2F%3E%3C%2Fsvg%3E"); }
.main-header-menu a[href*="/guan-yun-shi-ye/"]::before, .ast-builder-menu a[href*="/guan-yun-shi-ye/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.6'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Crect%20x%3D'4'%20y%3D'13'%20width%3D'16'%20height%3D'7'%20rx%3D'1.5'%2F%3E%3Cpath%20d%3D'M9%2013c-1.2-1-2-2.3-2-4a5%205%200%200%201%2010%200c0%201.7-.8%203-2%204'%2F%3E%3Cpath%20d%3D'M8%2017h.01M12%2017h.01M16%2017h.01'%2F%3E%3C%2Fsvg%3E"); }
.main-header-menu a[href*="/tao-hua-yin-yuan/"]::before, .ast-builder-menu a[href*="/tao-hua-yin-yuan/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.6'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'12'%20cy%3D'12'%20r%3D'2'%2F%3E%3Cpath%20d%3D'M12%204c1.8%200%202.6%201.4%202%202.8-.5%201.2-1.5%201.2-2%202.8-.5-1.6-1.5-1.6-2-2.8C9.4%205.4%2010.2%204%2012%204Z'%20transform%3D'rotate(0%2012%2012)'%2F%3E%3Cpath%20d%3D'M12%204c1.8%200%202.6%201.4%202%202.8-.5%201.2-1.5%201.2-2%202.8'%20transform%3D'rotate(72%2012%2012)'%2F%3E%3Cpath%20d%3D'M12%204c1.8%200%202.6%201.4%202%202.8-.5%201.2-1.5%201.2-2%202.8'%20transform%3D'rotate(144%2012%2012)'%2F%3E%3Cpath%20d%3D'M12%204c1.8%200%202.6%201.4%202%202.8-.5%201.2-1.5%201.2-2%202.8'%20transform%3D'rotate(216%2012%2012)'%2F%3E%3Cpath%20d%3D'M12%204c1.8%200%202.6%201.4%202%202.8-.5%201.2-1.5%201.2-2%202.8'%20transform%3D'rotate(288%2012%2012)'%2F%3E%3C%2Fsvg%3E"); }
.main-header-menu a[href*="/ba-zi-he-hun/"]::before, .ast-builder-menu a[href*="/ba-zi-he-hun/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.6'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'9.5'%20cy%3D'12'%20r%3D'5.5'%2F%3E%3Ccircle%20cx%3D'14.5'%20cy%3D'12'%20r%3D'5.5'%2F%3E%3C%2Fsvg%3E"); }
.main-header-menu a[href*="/zai-xian-qu-ming/"]::before, .ast-builder-menu a[href*="/zai-xian-qu-ming/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.6'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M20%204c-3%20.5-7%203-9.5%206.5L9%2014l1.5%201.5%203.5-1.5C17.5%2011.5%2019.5%207%2020%204Z'%2F%3E%3Cpath%20d%3D'M9%2014c-2%20.5-3.5%202-4%205%203-.5%204.5-2%205-4'%2F%3E%3Cpath%20d%3D'M4.5%2019.5l.5-.5'%2F%3E%3C%2Fsvg%3E"); }
.main-header-menu a[href*="/jin-ri-huang-li/"]::before, .ast-builder-menu a[href*="/jin-ri-huang-li/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.6'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Crect%20x%3D'4'%20y%3D'5.5'%20width%3D'16'%20height%3D'15'%20rx%3D'2'%2F%3E%3Cpath%20d%3D'M4%2010h16M8%203.5v3.5M16%203.5v3.5'%2F%3E%3Cpath%20d%3D'M8%2014h2M14%2014h2M8%2017.5h2M14%2017.5h2'%2F%3E%3C%2Fsvg%3E"); }
.main-header-menu a[href*="/xing-zuo-yun-shi/"]::before, .ast-builder-menu a[href*="/xing-zuo-yun-shi/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.6'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M12%203.5l2.4%205.4%205.9.5-4.5%203.9%201.4%205.7L12%2016l-5.2%203%201.4-5.7-4.5-3.9%205.9-.5Z'%2F%3E%3C%2Fsvg%3E"); }
.main-header-menu a[href*="/xing-zuo-pei-dui/"]::before, .ast-builder-menu a[href*="/xing-zuo-pei-dui/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.6'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M12%2020s-7-4.3-7-9a3.8%203.8%200%200%201%207-2%203.8%203.8%200%200%201%207%202c0%204.7-7%209-7%209Z'%2F%3E%3Cpath%20d%3D'M12%209v5M9.5%2011.5h5'%2F%3E%3C%2Fsvg%3E"); }
.main-header-menu a[href*="/ta-luo-chou-pai/"]::before, .ast-builder-menu a[href*="/ta-luo-chou-pai/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.6'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Crect%20x%3D'6'%20y%3D'3'%20width%3D'12'%20height%3D'18'%20rx%3D'2'%2F%3E%3Cpath%20d%3D'M9.5%208.5l1.5%201.5%201.5-1.5M9.5%2015.5h5'%2F%3E%3Ccircle%20cx%3D'12'%20cy%3D'13'%20r%3D'.8'%20fill%3D'currentColor'%20stroke%3D'none'%2F%3E%3C%2Fsvg%3E"); }
.main-header-menu a[href*="/hui-yuan-zhong-xin/"]::before, .ast-builder-menu a[href*="/hui-yuan-zhong-xin/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.6'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Crect%20x%3D'3.5'%20y%3D'5'%20width%3D'17'%20height%3D'15'%20rx%3D'2'%2F%3E%3Cpath%20d%3D'M3.5%209h17'%2F%3E%3Cpath%20d%3D'M9%209l-2.5%2011'%2F%3E%3Ccircle%20cx%3D'14.5'%20cy%3D'14.5'%20r%3D'3'%2F%3E%3Cpath%20d%3D'M14.5%2013.2v1.3l1%20.7'%2F%3E%3C%2Fsvg%3E"); }
.main-header-menu a[href*="/jin-ri-chou-qian/"]::before, .ast-builder-menu a[href*="/jin-ri-chou-qian/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.6'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Crect%20x%3D'9'%20y%3D'3'%20width%3D'6'%20height%3D'14'%20rx%3D'3'%2F%3E%3Cpath%20d%3D'M12%2017v4'%2F%3E%3Cpath%20d%3D'M11%206.5h2M11%209.5h2M11%2012.5h2'%2F%3E%3C%2Fsvg%3E"); }

/* ---- 2026-09-20 补齐导航菜单缺失的图标（此前渲染为空白实心方框）---- */
.main-header-menu a[href*="/qian-gua-zi-meng"]::before, .ast-builder-menu a[href*="/qian-gua-zi-meng"]::before, .ast-mobile-popup-drawer a[href*="/qian-gua-zi-meng"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M12%203a4.5%204.5%200%200%200%200%209%204.5%204.5%200%200%201%200%209%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%227.5%22%20r%3D%22.8%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2216.5%22%20r%3D%22.8%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3C%2Fsvg%3E"); } /* 签卦字梦（父项） · bagua */
.main-header-menu a[href*="/omens/"]::before, .ast-builder-menu a[href*="/omens/"]::before, .ast-mobile-popup-drawer a[href*="/omens/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M12%203a4.5%204.5%200%200%200%200%209%204.5%204.5%200%200%201%200%209%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%227.5%22%20r%3D%22.8%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2216.5%22%20r%3D%22.8%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3C%2Fsvg%3E"); } /* Omens（英文父项） · bagua */
.main-header-menu a[href*="/ling-qian"]::before, .ast-builder-menu a[href*="/ling-qian"]::before, .ast-mobile-popup-drawer a[href*="/ling-qian"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%229%22%20y%3D%223%22%20width%3D%226%22%20height%3D%2214%22%20rx%3D%223%22%2F%3E%3Cpath%20d%3D%22M12%2017v4%22%2F%3E%3Cpath%20d%3D%22M11%206.5h2M11%209.5h2M11%2012.5h2%22%2F%3E%3C%2Fsvg%3E"); } /* 灵签抽取/靈籤抽取 · stick */
.main-header-menu a[href*="/oracle-sticks/"]::before, .ast-builder-menu a[href*="/oracle-sticks/"]::before, .ast-mobile-popup-drawer a[href*="/oracle-sticks/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%229%22%20y%3D%223%22%20width%3D%226%22%20height%3D%2214%22%20rx%3D%223%22%2F%3E%3Cpath%20d%3D%22M12%2017v4%22%2F%3E%3Cpath%20d%3D%22M11%206.5h2M11%209.5h2M11%2012.5h2%22%2F%3E%3C%2Fsvg%3E"); } /* Oracle Sticks · stick */
.main-header-menu a[href*="/ce-zi"]::before, .ast-builder-menu a[href*="/ce-zi"]::before, .ast-mobile-popup-drawer a[href*="/ce-zi"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M16.5%203.5%2020.5%207.5%209%2019H5v-4Z%22%2F%3E%3Cpath%20d%3D%22M14%206%2018%2010%22%2F%3E%3Cpath%20d%3D%22M4%2021h16%22%2F%3E%3C%2Fsvg%3E"); } /* 周易测字/周易測字 · pen */
.main-header-menu a[href*="/character-divination/"]::before, .ast-builder-menu a[href*="/character-divination/"]::before, .ast-mobile-popup-drawer a[href*="/character-divination/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M16.5%203.5%2020.5%207.5%209%2019H5v-4Z%22%2F%3E%3Cpath%20d%3D%22M14%206%2018%2010%22%2F%3E%3Cpath%20d%3D%22M4%2021h16%22%2F%3E%3C%2Fsvg%3E"); } /* Character Divination · pen */
.main-header-menu a[href*="/jie-meng"]::before, .ast-builder-menu a[href*="/jie-meng"]::before, .ast-mobile-popup-drawer a[href*="/jie-meng"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%2014.5A8.5%208.5%200%200%201%209.5%204a8.5%208.5%200%201%200%2010.5%2010.5Z%22%2F%3E%3C%2Fsvg%3E"); } /* 周公解梦/周公解夢 · moon */
.main-header-menu a[href*="/dream-reading/"]::before, .ast-builder-menu a[href*="/dream-reading/"]::before, .ast-mobile-popup-drawer a[href*="/dream-reading/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%2014.5A8.5%208.5%200%200%201%209.5%204a8.5%208.5%200%201%200%2010.5%2010.5Z%22%2F%3E%3C%2Fsvg%3E"); } /* Dream Reading · moon */
.main-header-menu a[href*="/dong-fang-ming-li/"]::before, .ast-builder-menu a[href*="/dong-fang-ming-li/"]::before, .ast-mobile-popup-drawer a[href*="/dong-fang-ming-li/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%225%22%2F%3E%3Cpath%20d%3D%22M12%2012%2015%208%22%2F%3E%3Cpath%20d%3D%22M12%203v2M12%2019v2M3%2012h2M19%2012h2%22%2F%3E%3C%2Fsvg%3E"); } /* 东方命理/東方命理 · chart */
.main-header-menu a[href*="/xi-fang-xing-xiang/"]::before, .ast-builder-menu a[href*="/xi-fang-xing-xiang/"]::before, .ast-mobile-popup-drawer a[href*="/xi-fang-xing-xiang/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%203.5l2.4%205.4%205.9.5-4.5%203.9%201.4%205.7L12%2016l-5.2%203%201.4-5.7-4.5-3.9%205.9-.5Z%22%2F%3E%3C%2Fsvg%3E"); } /* 西方星象 · star */
.main-header-menu a[href*="/xing-yun-ji-wu/"]::before, .ast-builder-menu a[href*="/xing-yun-ji-wu/"]::before, .ast-mobile-popup-drawer a[href*="/xing-yun-ji-wu/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%205h2l2.2%2011h9.6L20%208H7%22%2F%3E%3Ccircle%20cx%3D%229.5%22%20cy%3D%2219.5%22%20r%3D%221.3%22%2F%3E%3Ccircle%20cx%3D%2217%22%20cy%3D%2219.5%22%20r%3D%221.3%22%2F%3E%3C%2Fsvg%3E"); } /* 幸运吉物/幸運吉物 · cart */
.main-header-menu a[href*="/zhai-yuan-feng-shui"]::before, .ast-builder-menu a[href*="/zhai-yuan-feng-shui"]::before, .ast-mobile-popup-drawer a[href*="/zhai-yuan-feng-shui"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4.5%2011L12%204l7.5%207v8.5h-5V15h-5v4.5h-5Z%22%2F%3E%3C%2Fsvg%3E"); } /* 宅院风水/宅院風水 · home */
.main-header-menu a[href*="/home-feng-shui/"]::before, .ast-builder-menu a[href*="/home-feng-shui/"]::before, .ast-mobile-popup-drawer a[href*="/home-feng-shui/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4.5%2011L12%204l7.5%207v8.5h-5V15h-5v4.5h-5Z%22%2F%3E%3C%2Fsvg%3E"); } /* Home Feng Shui · home */
.main-header-menu a[href*="/bao-bao-qu-ming/"]::before, .ast-builder-menu a[href*="/bao-bao-qu-ming/"]::before, .ast-mobile-popup-drawer a[href*="/bao-bao-qu-ming/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%228.5%22%20r%3D%223.8%22%2F%3E%3Cpath%20d%3D%22M4.5%2020c1.2-3.4%204-5%207.5-5s6.3%201.6%207.5%205%22%2F%3E%3C%2Fsvg%3E"); } /* 宝宝取名 · user */
.main-header-menu a[href*="/xiao-ming-ru-ming/"]::before, .ast-builder-menu a[href*="/xiao-ming-ru-ming/"]::before, .ast-mobile-popup-drawer a[href*="/xiao-ming-ru-ming/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%2020s-7-4.3-7-9a3.8%203.8%200%200%201%207-2%203.8%203.8%200%200%201%207%202c0%204.7-7%209-7%209Z%22%2F%3E%3Cpath%20d%3D%22M12%209v5M9.5%2011.5h5%22%2F%3E%3C%2Fsvg%3E"); } /* 小名乳名 · hearts */
.main-header-menu a[href*="/cheng-ren-gai-ming/"]::before, .ast-builder-menu a[href*="/cheng-ren-gai-ming/"]::before, .ast-mobile-popup-drawer a[href*="/cheng-ren-gai-ming/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M7%203.5h7L19%208.5v12H7Z%22%2F%3E%3Cpath%20d%3D%22M14%203.5v5h5M10%2013h6M10%2016.5h6%22%2F%3E%3C%2Fsvg%3E"); } /* 成人改名 · doc */
.main-header-menu a[href*="/ying-wen-ming/"]::before, .ast-builder-menu a[href*="/ying-wen-ming/"]::before, .ast-mobile-popup-drawer a[href*="/ying-wen-ming/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%228.5%22%2F%3E%3Cpath%20d%3D%22M3.5%2012h17M12%203.5c2.6%202.3%204%205.2%204%208.5s-1.4%206.2-4%208.5c-2.6-2.3-4-5.2-4-8.5s1.4-6.2%204-8.5Z%22%2F%3E%3C%2Fsvg%3E"); } /* 英文名 · globe */
.main-header-menu a[href*="/gong-si-qu-ming/"]::before, .ast-builder-menu a[href*="/gong-si-qu-ming/"]::before, .ast-mobile-popup-drawer a[href*="/gong-si-qu-ming/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%224%22%20y%3D%2213%22%20width%3D%2216%22%20height%3D%227%22%20rx%3D%221.5%22%2F%3E%3Cpath%20d%3D%22M9%2013c-1.2-1-2-2.3-2-4a5%205%200%200%201%2010%200c0%201.7-.8%203-2%204%22%2F%3E%3Cpath%20d%3D%22M8%2017h.01M12%2017h.01M16%2017h.01%22%2F%3E%3C%2Fsvg%3E"); } /* 公司取名 · stamp */
.main-header-menu a[href*="/dian-pu-qu-ming/"]::before, .ast-builder-menu a[href*="/dian-pu-qu-ming/"]::before, .ast-mobile-popup-drawer a[href*="/dian-pu-qu-ming/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%225%22%20y%3D%223.5%22%20width%3D%2214%22%20height%3D%2217%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M9%208.5h6M9%2012h6M9%2015.5h3.5%22%2F%3E%3C%2Fsvg%3E"); } /* 店铺取名 · order */
.main-header-menu a[href*="/zhai-hao-ya-hao/"]::before, .ast-builder-menu a[href*="/zhai-hao-ya-hao/"]::before, .ast-mobile-popup-drawer a[href*="/zhai-hao-ya-hao/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%206.5C10%204.8%207.5%204.3%204%204.5v13c3.5-.2%206%20.3%208%202%202-1.7%204.5-2.2%208-2v-13c-3.5-.2-6%20.3-8%202Z%22%2F%3E%3Cpath%20d%3D%22M12%206.5v13%22%2F%3E%3C%2Fsvg%3E"); } /* 斋号雅号 · book */
.main-header-menu a[href*="/chong-wu-qu-ming/"]::before, .ast-builder-menu a[href*="/chong-wu-qu-ming/"]::before, .ast-mobile-popup-drawer a[href*="/chong-wu-qu-ming/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M13%203L5%2013.5h5L10.5%2021%2019%2010.5h-5.5Z%22%2F%3E%3C%2Fsvg%3E"); } /* 宠物取名 · bolt */
.main-header-menu a[href*="/wang-ming-yi-ming/"]::before, .ast-builder-menu a[href*="/wang-ming-yi-ming/"]::before, .ast-mobile-popup-drawer a[href*="/wang-ming-yi-ming/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%204v5M12%2015v5M4%2012h5M15%2012h5%22%2F%3E%3Cpath%20d%3D%22M7%207l2.5%202.5M14.5%2014.5L17%2017M17%207l-2.5%202.5M9.5%2014.5L7%2017%22%2F%3E%3C%2Fsvg%3E"); } /* 网名艺名 · sparkle */
.main-header-menu a[href*="/zhou-yi-qi-gua/"]::before, .ast-builder-menu a[href*="/zhou-yi-qi-gua/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.6'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'12'%20cy%3D'12'%20r%3D'8.5'%2F%3E%3Crect%20x%3D'9'%20y%3D'9'%20width%3D'6'%20height%3D'6'%20rx%3D'1'%2F%3E%3Cpath%20d%3D'M5%208l1.5%201M19%208l-1.5%201M5%2016l1.5-1M19%2016l-1.5-1'%2F%3E%3C%2Fsvg%3E"); }
.main-header-menu li.menu-item-65 > a::before, .ast-builder-menu li.menu-item-65 > a::before, .ast-mobile-popup-drawer li.menu-item-65 > a::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.6'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M12%206.5C10%204.8%207.5%204.3%204%204.5v13c3.5-.2%206%20.3%208%202%202-1.7%204.5-2.2%208-2v-13c-3.5-.2-6%20.3-8%202Z'%2F%3E%3Cpath%20d%3D'M12%206.5v13'%2F%3E%3C%2Fsvg%3E"); }
.main-header-menu li.menu-item-72 > a::before, .ast-builder-menu li.menu-item-72 > a::before, .ast-mobile-popup-drawer li.menu-item-72 > a::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.6'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'12'%20cy%3D'12'%20r%3D'8.5'%2F%3E%3Cpath%20d%3D'M3.5%2012h17M12%203.5c2.6%202.3%204%205.2%204%208.5s-1.4%206.2-4%208.5c-2.6-2.3-4-5.2-4-8.5s1.4-6.2%204-8.5Z'%2F%3E%3C%2Fsvg%3E"); }
.main-header-menu li.menu-item-90 > a::before, .ast-builder-menu li.menu-item-90 > a::before, .ast-mobile-popup-drawer li.menu-item-90 > a::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.6'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'12'%20cy%3D'12'%20r%3D'8.5'%2F%3E%3Cpath%20d%3D'M3.5%2012h17M12%203.5c2.6%202.3%204%205.2%204%208.5s-1.4%206.2-4%208.5c-2.6-2.3-4-5.2-4-8.5s1.4-6.2%204-8.5Z'%2F%3E%3C%2Fsvg%3E"); }

/* ==========================================================================
   方案F §6 工具页（标题区双栏 + 罗盘 / 双层边框表单 / 步骤编号 / 时辰格 / 亮点卡）
   ========================================================================== */

/* —— 面包屑：菱形分隔符（原为 / 文本） —— */
.xj-crumb { padding-top: 18px; }
.xj-crumb > span:not(:last-child) {
  font-size: 0; color: var(--xj-faint); line-height: 1;
}
.xj-crumb > span:not(:last-child)::before {
  content: "\25C6"; font-size: 10px;
}
.xj-crumb > span:last-child { color: var(--xj-ink-2); font-weight: 600; }

/* —— 页面已自带 .xj-hero 时，隐藏工具模块的紧凑头（避免与 hero 标题/导语重复）——
   cezi / meng：整块头都被 hero 取代 → 整块隐藏
   decks（灵签）：保留「请择一签种」操作引导，仅隐藏与 hero 导语重复的 lead */
.entry-content:has(> .xj-hero) .xj-cezi__head,
.entry-content:has(> .xj-hero) .xj-meng__head,
.entry-content:has(> .xj-hero) .xj-decks__lead { display: none; }


/* —— 标题区：左文右罗盘双栏 —— */
.xj-hero--sm .xj-hero__inner:has(.xj-dial-wrap) {
  display: grid; grid-template-columns: 1.3fr .7fr; gap: 36px; align-items: end;
  text-align: left;
}
.xj-hero--sm .xj-hero__col { min-width: 0; }
.xj-hero--sm .xj-hero__inner:has(.xj-dial-wrap) .xj-hero__sub { margin-left: 0; margin-right: 0; }
.xj-hero--sm .xj-hero__inner:has(.xj-dial-wrap) .xj-tags { justify-content: flex-start; }

/* 罗盘 */
.xj-dial-wrap { text-align: center; }
.xj-dial {
  width: 180px; height: 180px; margin: 0 auto; position: relative;
  display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.xj-dial__svg { width: 100%; height: 100%; animation: xj-dialspin 40s linear infinite; }
.xj-dial__core {
  position: absolute; font-family: var(--xj-serif); font-size: 30px;
  color: var(--xj-red-dk); letter-spacing: .18em; pointer-events: none;
}
@keyframes xj-dialspin { to { transform: rotate(360deg); } }
.xj-dial__cap {
  margin-top: 14px; font-size: 11.5px; letter-spacing: .3em; color: var(--xj-faint);
}
.xj-dial-wrap .xj-dial__tags { display: none; }
.xj-dial-wrap > .xj-small { margin-top: 8px; }
@media (prefers-reduced-motion: reduce) {
  .xj-dial__svg { animation: none; }
}

/* —— 表单面板：外层 1px + 内衬虚框 —— */
.xj-form-panel { position: relative; }
.xj-form-panel::before {
  content: ""; position: absolute; inset: 12px; pointer-events: none;
  border: 1px dashed var(--xj-line-2); border-radius: calc(var(--xj-r-lg, 16px) - 6px);
}

/* 表单标题居中 */
.xj-form-head { text-align: center; margin-bottom: 26px; }
.xj-form-head .xj-panel__title { text-align: center; }
.xj-form-head .xj-panel__hint { text-align: center; margin-left: auto; margin-right: auto; }

/* 标签：步骤编号圆点 */
.xj-stepno {
  display: inline-flex; width: 18px; height: 18px; margin-right: 8px;
  border-radius: 50%; border: 1px solid var(--xj-line);
  background: var(--xj-red-bg); color: var(--xj-red-dk);
  font-size: 10px; font-family: var(--xj-sans); line-height: 1;
  align-items: center; justify-content: center; vertical-align: -3px;
  font-weight: 700; letter-spacing: 0;
}
.xj-form .xj-field > label {
  display: flex; align-items: baseline; gap: 0;
  font-size: 12px; letter-spacing: .24em; color: var(--xj-red-dk); font-weight: 600;
  margin-bottom: 10px;
}
.xj-form .xj-field > label .xj-label__opt {
  margin-left: auto; color: var(--xj-faint); font-weight: 400;
  letter-spacing: .04em; font-size: 11.5px;
}

/* 性别选择器图标 */
.xj-choice label .xj-ico { width: 15px; height: 15px; margin-right: 6px; }
.xj-choice label svg.xj-ico { stroke: currentColor; }

/* —— 时辰格：单字 + 时段 —— */
.xj-shichen { display: grid; grid-template-columns: repeat(7, 1fr); gap: 9px; }
.xj-shichen > label {
  border: 1px solid var(--xj-line-2); background: #fffefb; text-align: center;
  padding: 11px 4px 9px; cursor: pointer; border-radius: 9px; transition: all .2s;
  line-height: 1.55; margin: 0;
}
.xj-shichen > label > b {
  display: block; font-size: 15px; color: var(--xj-ink);
  font-family: var(--xj-serif); letter-spacing: .06em; font-weight: 600;
}
.xj-shichen > label > small {
  display: block; font-size: 11.5px; color: var(--xj-faint); letter-spacing: .02em;
}
.xj-shichen > label:hover { border-color: var(--xj-red); }
.xj-shichen > label:has(input:checked) {
  background: linear-gradient(135deg, #4e665a, var(--xj-olive));
  border-color: var(--xj-olive-dk);
  box-shadow: 0 6px 16px rgba(65, 88, 78, .28);
}
.xj-shichen > label:has(input:checked) > b,
.xj-shichen > label:has(input:checked) > small { color: #fff; }

/* —— 表单底行：T1.4 修订 —— 按钮整行 + 隐私说明独立整行（原为横排，移动端长文案挤压） —— */
.xj-form__foot {
  display: flex; flex-direction: column; align-items: stretch; gap: 14px; margin-top: 30px;
}
.xj-form__foot .xj-btn { width: 100%; flex: none; }
.xj-form__foot .xj-form__note {
  margin: 0; text-align: center; display: flex; align-items: center; justify-content: center; gap: 8px;
  font-size: 12px; line-height: 1.75;
}
.xj-form__foot .xj-form__note::before {
  content: ""; flex: none; width: 15px; height: 15px;
  background-color: var(--xj-olive); display: inline-block;
  -webkit-mask: var(--xj-ico-shield, none) center / 15px 15px no-repeat;
  mask: var(--xj-ico-shield, none) center / 15px 15px no-repeat;
}

/* —— 报告亮点三卡 —— */
.xj-feat { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
/* T38：取名品类页「收费与权益」四档权益并排一行（窄屏自动 2 列 / 1 列） */
.xj-feat--4 { grid-template-columns: repeat(4, 1fr); gap: 16px; }
.xj-feat--4 .xj-feat-card { padding: 22px 16px; }
.xj-feat--4 .xj-feat-card h3 { font-size: clamp(15px, 1.3vw, 17px); margin-bottom: 6px; }
.xj-feat--4 .xj-feat-card p { font-size: 12.6px; line-height: 1.85; }
@media (max-width: 1180px) { .xj-feat--4 { grid-template-columns: repeat(2, 1fr); } }

/* T38b：取名品类页 hero——「宝宝取名」标题与「订阅取名」按钮同排（按钮在标题右侧，
   窄屏自动换行到标题下方，按钮不会被压缩变形） */
.xj-nm-title { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 20px; }
.xj-nm-title .xj-h1 { flex: 0 1 auto; min-width: 0; }
.xj-nm-title .xj-btn { flex: 0 0 auto; }
.xj-feat-card {
  background: var(--xj-surface); border: 1px solid var(--xj-line-2);
  border-radius: var(--xj-r-lg, 16px); padding: 26px 22px; text-align: center;
  transition: all .28s cubic-bezier(.4, 0, .2, 1);
}
.xj-feat-card:hover { transform: translateY(-3px); box-shadow: var(--xj-shadow-m); }
.xj-feat-ico {
  width: 52px; height: 52px; margin: 0 auto 16px; border-radius: 14px;
  border: 1px solid var(--xj-line); background: var(--xj-red-bg);
  color: var(--xj-red-dk); display: flex; align-items: center; justify-content: center;
}
.xj-feat-ico .xj-ico { width: 24px; height: 24px; }
.xj-feat-card h3 { margin-bottom: 8px; }
.xj-feat-card p { font-size: 12.8px; line-height: 1.95; color: var(--xj-muted); }

/* —— 工具页正文卡片：图标容器按 §3.3 —— */
.xj-card__icon { width: 50px; height: 50px; border-radius: 12px; }
.xj-card__icon .xj-ico { width: 24px; height: 24px; }
.xj-card--west .xj-card__icon {
  background: var(--xj-space); border-color: var(--xj-sline); color: var(--xj-sgold);
}
/* 卡内小图标随文字色 */
.xj-card__note .xj-ico, .xj-card__more .xj-ico { width: 12px; height: 12px; }
.xj-card__more .xj-ico { width: 13px; height: 13px; }

@media (max-width: 960px) {
  .xj-hero--sm .xj-hero__inner:has(.xj-dial-wrap) { grid-template-columns: 1fr; }
  .xj-dial-wrap { margin-top: 8px; }
  .xj-feat { grid-template-columns: 1fr; }
  .xj-form__foot { flex-direction: column; align-items: stretch; gap: 14px; }
  .xj-form__foot .xj-btn { width: 100%; }
  .xj-form__foot .xj-form__note { text-align: center; justify-content: center; }
}
@media (max-width: 640px) {
  .xj-shichen { grid-template-columns: repeat(4, 1fr); }
  .xj-form-panel::before { display: none; }
}

/* ==========================================================================
   方案F §7 结果态：命盘文书（四柱干支 / 五行分布 / 大运时间轴 / 批语框）
   ========================================================================== */
.xj-cdoc {
  margin: 0 0 24px; background: var(--xj-surface);
  border: 1px solid var(--xj-line); border-radius: var(--xj-r-lg, 16px);
  box-shadow: var(--xj-shadow-l); overflow: hidden;
}
.xj-cdoc__head {
  display: flex; align-items: center; gap: 14px;
  padding: 20px 28px; border-bottom: 1px solid var(--xj-line);
  background: linear-gradient(135deg, #fdf6ea, var(--xj-surface) 70%);
}
.xj-cdoc__seal {
  flex: none; width: 42px; height: 42px; border-radius: 8px; background: var(--xj-red);
  color: #fff6ec; display: flex; align-items: center; justify-content: center;
  font-family: var(--xj-serif); font-size: 15px; line-height: 1.1; text-align: center;
  letter-spacing: .02em; box-shadow: 0 4px 12px rgba(176, 58, 46, .3);
}
.xj-cdoc__whorap { min-width: 0; }
.xj-cdoc__head h3 {
  font-family: var(--xj-serif); font-size: 19px; letter-spacing: .08em;
  color: var(--xj-ink); margin: 0;
}
.xj-cdoc__sub {
  display: block; margin-top: 4px; font-size: 11.5px; letter-spacing: .2em;
  color: var(--xj-faint); text-transform: uppercase;
}
.xj-cdoc__live {
  margin-left: auto; flex: none; font-size: 11px; letter-spacing: .2em;
  color: var(--xj-olive-dk); background: var(--xj-olive-bg);
  border: 1px solid rgba(65, 88, 78, .3); border-radius: 999px; padding: 4px 12px;
}
.xj-cdoc__body { padding: 24px 28px 22px; }

/* 区块标题：4px 红竖条 + 宋体 + 右英文注记 */
.xj-cdoc__title { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.xj-cdoc__title.xj-cdoc__mt { margin-top: 24px; }
.xj-cdoc__barl { width: 4px; height: 18px; background: var(--xj-red); border-radius: 2px; flex: none; }
.xj-cdoc__title h4 {
  font-family: var(--xj-serif); font-size: 16px; letter-spacing: .14em;
  color: var(--xj-ink); margin: 0;
}
.xj-cdoc__en {
  margin-left: auto; font-size: 11px; letter-spacing: .2em;
  color: var(--xj-faint); text-transform: uppercase;
}

/* 四柱表 */
.xj-cdoc__table {
  width: 100%; border-collapse: separate; border-spacing: 0;
  border: 1px solid var(--xj-line-2); border-radius: 10px; overflow: hidden;
  font-variant-numeric: tabular-nums;
}
.xj-cdoc__table th {
  font-family: var(--xj-serif); font-size: 12.5px; letter-spacing: .18em;
  color: var(--xj-red-dk); background: var(--xj-red-bg); padding: 12px 8px;
  border-bottom: 1px solid var(--xj-line); font-weight: 600; white-space: nowrap;
}
.xj-cdoc__table td {
  padding: 11px 8px; text-align: center; border-bottom: 1px solid var(--xj-line-2);
  font-size: 13.5px; color: var(--xj-ink-2); vertical-align: middle;
}
.xj-cdoc__table tbody tr:last-child td { border-bottom: 0; }
.xj-cdoc__cap {
  font-size: 11.5px !important; letter-spacing: .2em; color: var(--xj-faint) !important;
  width: 68px; white-space: nowrap;
}
.xj-cdoc__gan .xj-cdoc__gz,
.xj-cdoc__zhi .xj-cdoc__gz {
  font-family: var(--xj-serif); font-size: 21px; color: var(--xj-ink);
  letter-spacing: .15em; display: block; line-height: 1.25;
}
.xj-cdoc__zhi .xj-cdoc__gz { font-size: 19px; }
.xj-cdoc__gan.is-dm, .xj-cdoc__zhi.is-dm { background: rgba(169, 133, 47, .07); }
.xj-cdoc__ss.is-dm b { color: var(--xj-red-dk); }
.xj-cdoc__ss { font-size: 12.5px; }
.xj-cdoc__cg { font-size: 13px; }
.xj-cdoc__cg i { font-style: normal; font-family: var(--xj-serif); }
.xj-cdoc__sep { color: var(--xj-faint); margin: 0 4px; }
.xj-cdoc__empty { color: var(--xj-faint); }

/* 五行徽章 */
.xj-el {
  display: inline-block; min-width: 26px; height: 26px; line-height: 24px;
  border-radius: 6px; font-size: 12.5px; font-weight: 600; padding: 0 5px;
  margin-top: 6px; text-align: center;
}
.xj-el--mu { background: rgba(76, 133, 84, .12); color: #3d6b46; border: 1px solid rgba(76, 133, 84, .3); }
.xj-el--huo { background: rgba(176, 58, 46, .1); color: var(--xj-red-dk); border: 1px solid var(--xj-line); }
.xj-el--tu { background: rgba(148, 110, 62, .12); color: #7a5a28; border: 1px solid rgba(148, 110, 62, .3); }
.xj-el--jin { background: rgba(169, 133, 47, .12); color: #7a6122; border: 1px solid rgba(169, 133, 47, .32); }
.xj-el--shui { background: rgba(62, 102, 149, .1); color: #31567f; border: 1px solid rgba(62, 102, 149, .3); }
.xj-tone { font-style: normal; }
.xj-tone--mu { color: #3d6b46; }
.xj-tone--huo { color: var(--xj-red-dk); }
.xj-tone--tu { color: #7a5a28; }
.xj-tone--jin { color: #7a6122; }
.xj-tone--shui { color: #31567f; }

/* 五行分布卡 */
.xj-cdoc__els { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.xj-cdoc__elcard {
  text-align: center; background: var(--xj-surface-2, #faf6ec);
  border: 1px solid var(--xj-line-2); border-radius: 10px; padding: 15px 8px 13px;
}
.xj-cdoc__elcard .xj-el { margin: 0 auto; }
.xj-cdoc__val {
  display: block; font-family: var(--xj-serif); font-size: 19px;
  color: var(--xj-ink); margin-top: 8px; font-variant-numeric: tabular-nums;
}
.xj-cdoc__bar {
  height: 5px; border-radius: 3px; background: var(--xj-line-2);
  margin-top: 9px; overflow: hidden;
}
.xj-cdoc__bar i { display: block; height: 100%; border-radius: 3px; background: var(--xj-red); }
.xj-cdoc__elcard[data-el="mu"] .xj-cdoc__bar i { background: #4c8554; }
.xj-cdoc__elcard[data-el="huo"] .xj-cdoc__bar i { background: #b03a2e; }
.xj-cdoc__elcard[data-el="tu"] .xj-cdoc__bar i { background: #946e3e; }
.xj-cdoc__elcard[data-el="jin"] .xj-cdoc__bar i { background: #a9852f; }
.xj-cdoc__elcard[data-el="shui"] .xj-cdoc__bar i { background: #3e6695; }
.xj-cdoc__stat {
  display: block; margin-top: 7px; font-size: 11px; letter-spacing: .16em;
  color: var(--xj-faint); text-transform: uppercase;
}

/* 大运时间轴 */
.xj-cdoc__dayun { display: flex; overflow-x: auto; padding-bottom: 4px; }
.xj-cdoc__dy {
  flex: 1; min-width: 84px; text-align: center; position: relative;
  padding: 14px 4px 12px;
}
.xj-cdoc__dy::before {
  content: ""; position: absolute; top: 26px; left: 0; right: 0;
  height: 2px; background: var(--xj-line-2);
}
.xj-cdoc__dy:first-child::before { left: 50%; }
.xj-cdoc__dy:last-child::before { right: 50%; }
.xj-cdoc__dot {
  display: block; width: 11px; height: 11px; border-radius: 50%;
  background: var(--xj-surface); border: 2px solid var(--xj-faint);
  margin: 0 auto 10px; position: relative; z-index: 1;
}
.xj-cdoc__dy.is-cur .xj-cdoc__dot {
  border-color: var(--xj-red); background: var(--xj-red);
  box-shadow: 0 0 0 4px rgba(176, 58, 46, .16);
}
.xj-cdoc__age { display: block; font-size: 11.5px; color: var(--xj-faint); letter-spacing: .04em; }
.xj-cdoc__gz2 {
  display: block; font-family: var(--xj-serif); font-size: 16px;
  color: var(--xj-ink-2); letter-spacing: .08em; margin: 3px 0 2px;
}
.xj-cdoc__dy.is-cur .xj-cdoc__gz2 { color: var(--xj-red-dk); font-weight: 700; }
.xj-cdoc__dy.is-cur .xj-cdoc__age { color: var(--xj-red-dk); font-weight: 600; }

/* 批语框 */
.xj-cdoc__verdict {
  margin-top: 20px; border-left: 3px solid var(--xj-vermilion);
  background: linear-gradient(90deg, rgba(169, 133, 47, .08), transparent 65%);
  border-radius: 0 10px 10px 0; padding: 18px 22px; display: flex; gap: 16px;
}
.xj-cdoc__quill { flex: none; color: var(--xj-vermilion); margin-top: 3px; }
.xj-cdoc__quill svg { width: 20px; height: 20px; }
.xj-cdoc__verdict p {
  font-size: 13.5px; line-height: 2.05; color: var(--xj-ink-2); margin: 0;
}
.xj-cdoc__verdict b { color: var(--xj-red-dk); }
/* T6.2 喜用神推导依据（依据层） */
.xj-verdict__basis {
  display: block; margin-top: 10px; padding-top: 9px;
  border-top: 1px dashed var(--xj-line-2);
  font-size: 11.5px; line-height: 1.9; color: var(--xj-faint);
}
body.xj-west .xj-verdict__basis {
  border-top-color: rgba(255, 255, 255, .14); color: rgba(226, 232, 240, .62);
}

.xj-cdoc__note {
  margin-top: 16px; font-size: 11.5px; line-height: 1.85;
  color: var(--xj-faint); border-top: 1px dashed var(--xj-line-2); padding-top: 12px;
}

@media (max-width: 960px) {
  .xj-cdoc__els { grid-template-columns: repeat(5, 1fr); gap: 8px; }
  .xj-cdoc__elcard { padding: 12px 4px 10px; }
  .xj-cdoc__val { font-size: 16px; }
}
@media (max-width: 640px) {
  .xj-cdoc__body { padding: 18px 16px 16px; }
  .xj-cdoc__head { padding: 16px 18px; }
  .xj-cdoc__table th { font-size: 12px; padding: 10px 4px; letter-spacing: .1em; }
  .xj-cdoc__table td { padding: 9px 4px; font-size: 12.5px; }
  .xj-cdoc__gan .xj-cdoc__gz { font-size: 18px; }
  .xj-cdoc__cap { width: 52px; font-size: 11.5px !important; }
  .xj-cdoc__els { grid-template-columns: repeat(3, 1fr); }
}

/* ==========================================================================
   方案F §8 西轨深色化（星座运势 / 星座配对 / 塔罗抽牌）
   页头沿用浅色，页面内（#primary）自成深色天地
   ========================================================================== */
body.xj-west { background: var(--xj-space); }
body.xj-west #primary {
  background: var(--xj-space); color: var(--xj-star);
  position: relative; overflow: hidden; padding-bottom: 8px;
}
body.xj-west #primary::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(1.2px 1.2px at 12% 6%, rgba(233,238,247,.55) 50%, transparent 51%),
    radial-gradient(1px 1px at 27% 22%, rgba(233,238,247,.4) 50%, transparent 51%),
    radial-gradient(1.3px 1.3px at 43% 12%, rgba(216,184,120,.5) 50%, transparent 51%),
    radial-gradient(1px 1px at 58% 30%, rgba(233,238,247,.38) 50%, transparent 51%),
    radial-gradient(1.2px 1.2px at 74% 8%, rgba(233,238,247,.5) 50%, transparent 51%),
    radial-gradient(1px 1px at 89% 24%, rgba(216,184,120,.42) 50%, transparent 51%),
    radial-gradient(1px 1px at 8% 34%, rgba(233,238,247,.36) 50%, transparent 51%),
    radial-gradient(1100px 620px at 50% -8%, rgba(28,46,84,.5), transparent 68%);
}
body.xj-west #primary > main { position: relative; z-index: 1; }
body.xj-west .entry-title { color: var(--xj-star); }

/* 面包屑 / 标题区 */
body.xj-west .xj-crumb { color: var(--xj-star-mut); }
body.xj-west .xj-crumb > span:last-child { color: var(--xj-star-2); }
body.xj-west .xj-crumb a:hover { color: var(--xj-sgold); }
body.xj-west .xj-hero,
body.xj-west .xj-hero--sm { background: none; }
body.xj-west .xj-eyebrow,
body.xj-west .xj-kick { color: var(--xj-sgold); }
body.xj-west .xj-h1,
body.xj-west .xj-h2,
body.xj-west .xj-h3,
body.xj-west .xj-h4 { color: var(--xj-star); }
body.xj-west .xj-lead,
body.xj-west .xj-text,
body.xj-west .xj-hero__sub,
body.xj-west .xj-small { color: var(--xj-star-2); }
body.xj-west .xj-rule::before,
body.xj-west .xj-rule::after { background: linear-gradient(90deg, transparent, var(--xj-sline-2)); }
body.xj-west .xj-rule::after { background: linear-gradient(90deg, var(--xj-sline-2), transparent); }
body.xj-west .xj-rule i { background: var(--xj-sazure); }
body.xj-west .xj-head-group .xj-kick::before,
body.xj-west .xj-head-group .xj-kick::after { background: var(--xj-sline); }

/* 徽章 / 标签 */
body.xj-west .xj-badge {
  color: var(--xj-sgold); background: rgba(216,184,120,.07);
  border-color: var(--xj-sline);
}
body.xj-west .xj-badge .xj-ico { color: var(--xj-sgold); }
body.xj-west .xj-tag { color: var(--xj-star-2); border-color: var(--xj-sline-2); }

/* 罗盘：轨道金 + 星光蓝 */
body.xj-west .xj-dial__core { color: var(--xj-sgold); }
body.xj-west .xj-dial__svg circle { stroke: var(--xj-sgold); }
body.xj-west .xj-dial__svg circle[opacity] { stroke: var(--xj-sazure); }
body.xj-west .xj-dial__svg g { stroke: var(--xj-sazure); }
body.xj-west .xj-dial__svg path { stroke: var(--xj-sgold); }
body.xj-west .xj-dial__svg circle[fill="#b03a2e"] { fill: var(--xj-sgold); }
body.xj-west .xj-dial__cap { color: var(--xj-star-mut); }

/* 深空面板 */
body.xj-west .xj-panel,
body.xj-west .xj-panel--gold,
body.xj-west .xj-panel--tight {
  background: rgba(255,255,255,.05); border-color: var(--xj-sline-2);
  backdrop-filter: blur(14px);
  box-shadow: 0 24px 60px rgba(0,0,0,.38);
}
body.xj-west .xj-form-panel::before { border-color: var(--xj-sline-2); }
body.xj-west .xj-panel__title,
body.xj-west .xj-form-head .xj-panel__title { color: var(--xj-star); }
body.xj-west .xj-panel__hint { color: var(--xj-star-mut); }

/* 表单控件 */
body.xj-west .xj-field > label,
body.xj-west .xj-label { color: var(--xj-sgold); }
body.xj-west .xj-stepno {
  border-color: var(--xj-sline); background: rgba(216,184,120,.1); color: var(--xj-sgold);
}
body.xj-west .xj-label__opt { color: var(--xj-star-mut); }
body.xj-west .xj-input,
body.xj-west .xj-select,
body.xj-west .xj-textarea {
  background: rgba(255,255,255,.06); border-color: var(--xj-sline-2);
  color: var(--xj-star);
}
/* T48：上面的 .xj-select 覆盖一直没生效 —— 基础规则把底色写成了
   `background-color: #fffdf8 !important`（含 !important 的声明**无视特异度**胜出），
   所以西轨三页的下拉框始终是白底，而字色被 body.xj-west 改成 --xj-star #e9eef7，
   实测对比度 1.15 ≈ 完全看不见。深色主题必须同样用 !important 才盖得住。
   顺带把右侧箭头由砖红（#b03a2e，暗底上同样偏暗）换成主题金 --xj-sgold #d8b878。 */
body.xj-west .xj-select {
  background-color: rgba(255,255,255,.06) !important;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23d8b878' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  color: var(--xj-star);
}
body.xj-west .xj-select:focus {
  background-color: rgba(255,255,255,.09) !important;
}
body.xj-west .xj-input::placeholder,
body.xj-west .xj-textarea::placeholder { color: var(--xj-star-mut); }
body.xj-west .xj-select option { background: var(--xj-space-2); color: var(--xj-star); }
body.xj-west .xj-input:focus,
body.xj-west .xj-select:focus,
body.xj-west .xj-textarea:focus {
  border-color: var(--xj-sgold); box-shadow: 0 0 0 3px rgba(216,184,120,.18);
  background: rgba(255,255,255,.08);
}
body.xj-west .xj-choice {
  border-color: var(--xj-sline-2); background: rgba(255,255,255,.05);
}
/* T48：西轨深色化下 .xj-choice 的 label 只换了字色、没换底色 —— 字是星空浅色
   （--xj-star-2 #b4bfd2），底还是浅色主题的 --xj-surface（#fffdf9 近白），
   实测对比度仅 1.83（WCAG AA 门槛 4.5）→ 「白底浅字看不清」。
   基础 .xj-choice label 的 background/border 也是浅色主题值，这里必须一并接管。 */
body.xj-west .xj-choice label {
  background: rgba(255,255,255,.06);
  border-color: var(--xj-sline-2);
  color: var(--xj-star);
}
body.xj-west .xj-choice label:hover {
  background: rgba(255,255,255,.10); border-color: var(--xj-sline); color: var(--xj-sgold);
}
body.xj-west .xj-choice label:has(input:checked) {
  background: linear-gradient(180deg, #e3c488, #c9a75f); color: #241c08; font-weight: 700;
}
body.xj-west .xj-choice label:has(input:checked) .xj-ico { color: #241c08; }
body.xj-west .xj-form__note { color: var(--xj-star-mut); }
body.xj-west .xj-form__note a { color: var(--xj-sgold); }
body.xj-west .xj-form__foot .xj-form__note::before { background-color: var(--xj-sgold); }

/* 主按钮：金渐变 + 深字 */
body.xj-west .xj-btn--gold {
  background: linear-gradient(180deg, #e3c488, #c9a75f); color: #241c08;
  box-shadow: 0 12px 30px rgba(216,184,120,.24), inset 0 1px 0 rgba(255,246,220,.55);
}
body.xj-west .xj-btn--gold:hover {
  box-shadow: 0 18px 40px rgba(216,184,120,.32), inset 0 1px 0 rgba(255,246,220,.6);
}
/* T48：基础 `.xj-btn--ghost { color: var(--xj-ink) !important }` 带 !important，
   下面这条里的 color 不带 → 被压掉，西轨页幽灵按钮成了「深字落深底」（实测 1.2）。
   注意同一条里的 background 因为两边都没 !important，反而按特异度正常生效了 ——
   这种「一半生效一半不生效」最容易漏。故 color 必须同样 !important。 */
body.xj-west .xj-btn--ghost,
body.xj-west .xj-btn--gold2 {
  background: transparent !important;
  color: var(--xj-star) !important;
  border-color: var(--xj-sline-2) !important;
}
body.xj-west .xj-btn--ghost:hover,
body.xj-west .xj-btn--gold2:hover {
  background: rgba(255,255,255,.10) !important;
  border-color: var(--xj-sline) !important;
  color: var(--xj-sgold) !important;
}

/* T48：西轨深色化下这三个选择了浅色主题的墨色 token，落深底后不可读
   （.xj-checks li 1.91 / .xj-crumb a 3.48 / 表单「选填」提示 3.23）。
   其中「选填」提示要连 .xj-form 一起写 —— 基础规则是 (0,3,1) 的
   `.xj-form .xj-field > label .xj-label__opt`，仅用 body.xj-west .xj-label__opt (0,2,1) 压不住。 */
body.xj-west .xj-checks li { color: var(--xj-star-2); }
body.xj-west .xj-checks li b { color: var(--xj-star); }
body.xj-west .xj-checks li::before { border-color: var(--xj-sgold); }
body.xj-west .xj-crumb a { color: var(--xj-star-2); }
body.xj-west .xj-label__opt,
body.xj-west .xj-form .xj-field > label .xj-label__opt { color: var(--xj-star-mut); }
/* 星座卡上的日期小字：基础值 --xj-star-mut 在卡片底 rgba(255,255,255,.04) 上实测仅 4.35，
   差一点点不到 AA。取一个介于 mut(4.35 不达标) 与 star-2(8.15，与星座名同亮) 之间的色，
   实测 5.97 —— 达标且仍比星座名暗，保持「名字 > 日期」的层次。 */
body.xj-west .xj-zodiac > label > small { color: #98a3bb; }

/* 卡片 / feat / steps / faq / note / table */
body.xj-west .xj-card,
body.xj-west .xj-feat-card,
body.xj-west .xj-step {
  background: rgba(255,255,255,.05); border-color: var(--xj-sline-2); backdrop-filter: blur(14px);
}
body.xj-west .xj-card:hover,
body.xj-west .xj-feat-card:hover { border-color: var(--xj-sline); }
body.xj-west .xj-card__title,
body.xj-west .xj-feat-card h3,
body.xj-west .xj-step__title { color: var(--xj-star); }
body.xj-west .xj-card__desc,
body.xj-west .xj-feat-card p,
body.xj-west .xj-step__desc { color: var(--xj-star-2); }
body.xj-west .xj-card__icon,
body.xj-west .xj-feat-ico {
  background: var(--xj-space); border-color: var(--xj-sline); color: var(--xj-sgold);
}
body.xj-west .xj-card__cat { color: var(--xj-star-mut); border-color: var(--xj-sline-2); }
body.xj-west .xj-card__top::before,
body.xj-west .xj-card::before { background: linear-gradient(90deg, var(--xj-sgold), var(--xj-sazure)); }
body.xj-west .xj-step__num { background: rgba(216,184,120,.12); color: var(--xj-sgold); border-color: var(--xj-sline); }
body.xj-west .xj-note {
  background: rgba(255,255,255,.05); border-color: var(--xj-sline-2); color: var(--xj-star-2);
}
body.xj-west .xj-note b { color: var(--xj-sgold); }
body.xj-west .xj-faq details { border-color: var(--xj-sline-2); }
body.xj-west .xj-faq summary { color: var(--xj-star); }
body.xj-west .xj-faq__body { color: var(--xj-star-2); }
body.xj-west .xj-table th { background: rgba(216,184,120,.1); color: var(--xj-sgold); border-color: var(--xj-sline-2); }
body.xj-west .xj-table td { color: var(--xj-star-2); border-color: var(--xj-sline-2); }
body.xj-west .xj-section { border-color: var(--xj-sline-2); }

/* 结果态 */
body.xj-west .xj-result,
body.xj-west .xj-cdoc {
  background: rgba(255,255,255,.05); border-color: var(--xj-sline-2); backdrop-filter: blur(14px);
}
body.xj-west .xj-result__head,
body.xj-west .xj-cdoc__head {
  background: linear-gradient(135deg, rgba(216,184,120,.1), rgba(255,255,255,.03) 70%);
  border-color: var(--xj-sline-2);
}
body.xj-west .xj-result__title,
body.xj-west .xj-cdoc__head h3 { color: var(--xj-star); }
body.xj-west .xj-skeleton {
  background: linear-gradient(90deg, rgba(255,255,255,.06), rgba(255,255,255,.14), rgba(255,255,255,.06));
}
body.xj-west .xj-pv__label { color: var(--xj-sgold); }
body.xj-west .xj-pv__chip {
  color: var(--xj-star-2); border-color: var(--xj-sline-2); background: rgba(255,255,255,.04);
}
body.xj-west .xj-pv__chip i { color: var(--xj-star-mut); }
body.xj-west .xj-pv__fact { border-color: var(--xj-sline-2); }
body.xj-west .xj-pv__fact span { color: var(--xj-star-mut); }
body.xj-west .xj-pv__fact b { color: var(--xj-star); }
body.xj-west .xj-gold-text { color: var(--xj-sgold); }

/* 运势仪表盘（金→蓝渐变） */
body.xj-west .xj-bar__track,
body.xj-west .xj-cdoc__bar { background: rgba(255,255,255,.09); }
body.xj-west .xj-bar__fill,
body.xj-west .xj-cdoc__bar i {
  background: linear-gradient(90deg, var(--xj-sgold-dk), var(--xj-sgold) 60%, var(--xj-sazure));
}
body.xj-west .xj-bar__top span { color: var(--xj-star-2); }

/* 今日星象解读：星光蓝左竖线 */
body.xj-west .xj-pv__reading {
  border-left: 2px solid var(--xj-sazure); padding: 2px 0 2px 18px; margin-left: 2px;
}
body.xj-west .xj-pv__reading p { color: var(--xj-star-2); }
body.xj-west .xj-pv__reading b { color: var(--xj-sgold); }

/* 幸运要素胶囊行 */
body.xj-west .xj-lucky span { color: var(--xj-star-2); border-color: var(--xj-sline-2); background: rgba(255,255,255,.04); }
body.xj-west .xj-lucky b { color: var(--xj-sazure); }

/* 星座选择盘（§8.3 六列网格 + 顶部金线） */
.xj-zodiac { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; }
.xj-zodiac > label {
  position: relative; overflow: hidden; text-align: center; cursor: pointer;
  border: 1px solid var(--xj-sline-2); background: rgba(255,255,255,.04);
  border-radius: 12px; padding: 16px 6px 13px; line-height: 1.7;
  font-size: 11.5px; color: var(--xj-star-2); transition: all .22s; margin: 0;
}
.xj-zodiac > label::before {
  content: ""; position: absolute; top: 0; left: 20%; right: 20%; height: 2px;
  background: linear-gradient(90deg, transparent, var(--xj-sgold), transparent);
  opacity: 0; transition: opacity .22s;
}
.xj-zodiac__sym { display: block; font-size: 22px; color: var(--xj-sgold); margin-bottom: 5px; line-height: 1; }
.xj-zodiac > label > b {
  display: block; font-family: var(--xj-serif); font-size: 12.5px;
  letter-spacing: .04em; color: var(--xj-star-2); font-weight: 600;
}
.xj-zodiac > label > small { display: block; font-size: 11.5px; color: var(--xj-star-mut); }
.xj-zodiac > label input { display: none; }
.xj-zodiac > label:hover { border-color: var(--xj-sline); transform: translateY(-2px); }
.xj-zodiac > label:has(input:checked) {
  background: rgba(216,184,120,.13); border-color: var(--xj-sgold); color: var(--xj-star);
}
.xj-zodiac > label:has(input:checked)::before { opacity: 1; }
.xj-zodiac > label:has(input:checked) > b,
.xj-zodiac > label:has(input:checked) > small { color: var(--xj-star); }
/* 浅色页里的星座盘（若出现在非西轨页） */
body:not(.xj-west) .xj-zodiac > label {
  border-color: var(--xj-line-2); background: #fffefb; color: var(--xj-ink-2);
}
body:not(.xj-west) .xj-zodiac__sym { color: var(--xj-vermilion); }
body:not(.xj-west) .xj-zodiac > label > b { color: var(--xj-ink); }
body:not(.xj-west) .xj-zodiac > label > small { color: var(--xj-faint); }
body:not(.xj-west) .xj-zodiac > label:has(input:checked) {
  background: rgba(169,133,47,.12); border-color: var(--xj-vermilion);
}
body:not(.xj-west) .xj-zodiac > label:has(input:checked) > b,
body:not(.xj-west) .xj-zodiac > label:has(input:checked) > small { color: var(--xj-ink); }

/* 塔罗牌背（结果区牌面） */
.xj-pv__cards { display: flex; justify-content: center; gap: 20px; flex-wrap: wrap; padding: 8px 0 4px; }
.xj-pv__card {
  width: 104px; height: 164px; border-radius: 14px; position: relative;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
  padding: 16px 10px; text-align: center; transition: all .35s cubic-bezier(.4,0,.2,1);
  background: radial-gradient(circle at 50% 34%, rgba(216,184,120,.14), transparent 55%),
              linear-gradient(165deg, #182342, #0e1526);
  border: 1.5px solid rgba(216,184,120,.5);
  box-shadow: 0 18px 40px rgba(0,0,0,.5), inset 0 0 0 5px rgba(12,17,31,.6), inset 0 0 0 6px rgba(216,184,120,.28);
}
.xj-pv__card::before {
  content: "✦"; position: absolute; top: 14px; left: 0; right: 0;
  font-size: 18px; color: var(--xj-sgold); opacity: .9;
}
.xj-pv__card-name {
  font-family: var(--xj-serif); font-size: 13px; letter-spacing: .06em;
  color: var(--xj-star); margin-top: 22px; line-height: 1.5;
}
.xj-pv__card-pos {
  font-size: 11.5px; letter-spacing: .18em; color: var(--xj-sgold);
  border: 1px solid var(--xj-sline); border-radius: 999px; padding: 2px 10px;
}
.xj-pv__card.is-rev .xj-pv__card-name { transform: rotate(180deg); }
.xj-pv__card.is-rev .xj-pv__card-pos { color: var(--xj-sazure); border-color: rgba(127,177,216,.4); }
.xj-pv__card:hover {
  transform: translateY(-10px) rotate(1.5deg);
  box-shadow: 0 28px 56px rgba(0,0,0,.6), inset 0 0 0 5px rgba(12,17,31,.6), inset 0 0 0 6px rgba(216,184,120,.4);
}
@media (prefers-reduced-motion: reduce) {
  .xj-pv__card:hover { transform: none; }
}

/* 塔罗页：牌阵选择改为金底 tab */
body.xj-west-tarot .xj-choice label:has(input:checked) {
  background: linear-gradient(180deg, #e3c488, #c9a75f); color: #241c08; font-weight: 700;
}

@media (max-width: 960px) {
  .xj-zodiac { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 640px) {
  .xj-zodiac { grid-template-columns: repeat(3, 1fr); }
  .xj-pv__card { width: 92px; height: 146px; }
}

/* ==========================================================================
   方案F §9 商店商品卡（复用 Astra / WooCommerce 现有类名）
   ========================================================================== */
.woocommerce ul.products li.product {
  background: var(--xj-surface); border: 1px solid var(--xj-line-2);
  border-radius: var(--xj-r-lg); overflow: hidden; padding: 0 0 18px;
  transition: all .3s cubic-bezier(.4,0,.2,1);
}
.woocommerce ul.products li.product:hover {
  transform: translateY(-4px); box-shadow: var(--xj-shadow); border-color: var(--xj-line);
}
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap {
  position: relative; margin: 0 0 14px;
  display: flex; align-items: center; justify-content: center; padding: 18px 0 6px;
  background: radial-gradient(320px 160px at 50% 30%, rgba(176,58,46,.07), transparent 70%), var(--xj-surface-2);
  border-bottom: 1px solid var(--xj-line-2);
}
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap::after {
  content: "\5373\65f6\751f\6210 \00b7 \6c38\4e45\4fdd\5b58";
  position: absolute; bottom: 10px; right: 12px;
  font-size: 11.5px; letter-spacing: .14em; color: var(--xj-muted);
  background: rgba(250,246,236,.9); border: 1px solid var(--xj-line-2);
  padding: 3px 9px; border-radius: 3px;
}
html[lang="zh-Hant"] .woocommerce ul.products li.product .astra-shop-thumbnail-wrap::after {
  content: "\5373\6642\751f\6210 \00b7 \6c38\4e45\4fdd\5b58";
}
html[lang^="en"] .woocommerce ul.products li.product .astra-shop-thumbnail-wrap::after {
  content: "Instant \00b7 Kept forever"; letter-spacing: .1em;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--xj-serif); font-size: 16.5px; letter-spacing: .04em;
  line-height: 1.45; color: var(--xj-ink); padding: 0 18px; margin-bottom: 8px;
}
.woocommerce ul.products li.product .xj-pcard__points {
  list-style: none; margin: 0 0 12px; padding: 0 18px;
}
.woocommerce ul.products li.product .xj-pcard__points li {
  display: flex; align-items: center; gap: 8px; font-size: 12px;
  color: var(--xj-muted); padding: 3px 0; line-height: 1.6;
}
.woocommerce ul.products li.product .xj-pcard__points .xj-ico { width: 13px; height: 13px; color: var(--xj-olive); }
.woocommerce ul.products li.product .price {
  display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap;
  padding: 0 18px; margin: 0 0 12px;
  font-family: var(--xj-serif); font-size: 21px; color: var(--xj-red-dk);
}
.woocommerce ul.products li.product .price del { font-size: 12px; color: var(--xj-faint); font-weight: 400; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }
.woocommerce ul.products li.product .xk-save {
  font-size: 11.5px; color: var(--xj-olive-dk); background: rgba(65,88,78,.08);
  border-radius: 4px; padding: 2px 8px; letter-spacing: .08em; font-family: var(--xj-sans);
}
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .add_to_cart_button {
  margin: 0 18px; padding: 12px 20px; border-radius: 8px;
  font-family: var(--xj-serif); font-size: 14px; letter-spacing: .12em; font-weight: 600;
  background: linear-gradient(180deg, #c4473a, var(--xj-red) 55%, #9a2f24) !important;
  color: #fff6ec !important; border: 0;
  box-shadow: 0 8px 20px rgba(176,58,46,.24), inset 0 1px 0 rgba(255,230,215,.35);
  transition: all .24s cubic-bezier(.4,0,.2,1);
}
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .add_to_cart_button:hover {
  transform: translateY(-2px); box-shadow: 0 14px 30px rgba(176,58,46,.32);
}
.woocommerce ul.products li.product .ast-on-card-button { display: none; }

/* ==========================================================================
   方案F §10 会员中心（侧栏用户信息头 + 导航图标与计数 + 报告卡片行）
   ========================================================================== */
.xj-mnav-user {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 14px 18px; border-bottom: 1px solid var(--xj-line-2); margin-bottom: 8px;
}
.xj-mnav-avatar {
  flex: none; width: 42px; height: 42px; border-radius: 50%;
  background: linear-gradient(150deg, #c9a86a, var(--xj-vermilion));
  color: #fff; display: flex; align-items: center; justify-content: center;
  font-family: var(--xj-serif); font-size: 16px;
}
.xj-mnav-name { display: block; font-weight: 600; font-size: 14px; color: var(--xj-ink); }
.xj-mnav-lv { display: block; font-size: 11.5px; color: var(--xj-red-dk); letter-spacing: .12em; margin-top: 2px; }

.woocommerce .woocommerce-MyAccount-navigation {
  background: var(--xj-surface); border: 1px solid var(--xj-line-2);
  border-radius: var(--xj-r-lg); padding: 10px; box-shadow: var(--xj-shadow-sm);
}
.woocommerce .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce .woocommerce-MyAccount-navigation ul li a {
  display: flex; align-items: center; gap: 12px; padding: 12px 14px;
  font-size: 13.5px; color: var(--xj-ink-2); border-radius: 9px; transition: all .18s;
}
.woocommerce .woocommerce-MyAccount-navigation ul li a::before {
  content: ""; flex: none; width: 17px; height: 17px; margin-right: 0;
  background-color: currentColor; opacity: .55; display: inline-block;
  -webkit-mask: var(--xj-nav-ico, none) center / 17px 17px no-repeat;
  mask: var(--xj-nav-ico, none) center / 17px 17px no-repeat;
}
.woocommerce .woocommerce-MyAccount-navigation ul li a:hover,
.woocommerce .woocommerce-MyAccount-navigation ul li.is-active a {
  background: var(--xj-red-bg); color: var(--xj-red-dk);
}
.woocommerce .woocommerce-MyAccount-navigation ul li.is-active a { font-weight: 600; }
.woocommerce .woocommerce-MyAccount-navigation ul li a:hover::before,
.woocommerce .woocommerce-MyAccount-navigation ul li.is-active a::before { opacity: 1; }

/* 报告卡片行 */
.xj-report-list { display: grid; gap: 14px; }
.xj-report {
  display: flex; align-items: center; gap: 18px;
  border: 1px solid var(--xj-line-2); border-radius: var(--xj-r);
  padding: 18px 20px; background: var(--xj-surface-2); transition: all .22s;
}
.xj-report:hover { border-color: var(--xj-line); box-shadow: var(--xj-shadow-sm); transform: translateX(3px); }
.xj-report__ico {
  flex: none; width: 44px; height: 44px; border-radius: 11px;
  background: var(--xj-red-bg); border: 1px solid var(--xj-line); color: var(--xj-red-dk);
  display: flex; align-items: center; justify-content: center;
}
.xj-report__ico .xj-ico { width: 21px; height: 21px; }
.xj-report__body { flex: 1; min-width: 0; }
.xj-report__body h4 {
  font-family: var(--xj-serif); font-size: 15.5px; letter-spacing: .04em;
  color: var(--xj-ink); margin: 0 0 4px;
}
.xj-report__meta { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: var(--xj-faint); }
.xj-report__meta span { display: inline-flex; align-items: center; gap: 5px; }
.xj-report__meta .xj-ico { width: 12px; height: 12px; }
.xj-report__meta a { color: var(--xj-red-dk); }
.xj-report__act { display: flex; gap: 8px; align-items: center; flex: none; flex-wrap: wrap; }
.xj-tag-done {
  display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px;
  color: #3d6b46; background: rgba(76,133,84,.1); border: 1px solid rgba(76,133,84,.28);
  padding: 3px 11px; border-radius: 999px; font-weight: 600;
}
.xj-tag-done .xj-ico { width: 11px; height: 11px; }
.xj-mini-btn {
  display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px;
  color: var(--xj-ink-2); border: 1px solid var(--xj-line-3); border-radius: 7px;
  padding: 8px 14px; background: var(--xj-surface); transition: all .18s;
}
.xj-mini-btn:hover { border-color: var(--xj-red); color: var(--xj-red-dk); }
.xj-mini-btn .xj-ico { width: 14px; height: 14px; }
.xj-report-list__tip { margin-top: 16px; font-size: 12px; color: var(--xj-faint); }

@media (max-width: 640px) {
  .xj-report { flex-wrap: wrap; }
  .xj-report__act { width: 100%; }
}

/* ==========================================================================
   方案F §11 页脚（顶部金色饰线已有；品牌栏 + 能力徽章 + 四栏导航 + 免责扩充）
   ========================================================================== */
.xj-ft-top { border-bottom: 1px solid rgba(255,255,255,.07); }
.xj-ft-in {
  max-width: var(--xj-max); margin: 0 auto; padding: 42px 24px 32px;
  display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 34px;
  text-align: left;
}
.xj-ft-brand .xj-ft-logo { display: flex; align-items: center; gap: 12px; }
.xj-ft-brand .xj-logo__mark { width: 38px; height: 38px; }
.xj-ft-name {
  font-family: var(--xj-serif); font-size: 19px; letter-spacing: .2em; color: #e8dcc0;
}
.xj-ft-name b { color: var(--xj-vermilion-lt); font-weight: 700; }
.xj-ft-brand p {
  font-size: 12.8px; line-height: 2.05; color: #93876c; margin: 14px 0 16px; max-width: 300px;
}
.xj-ft-badges { display: flex; gap: 10px; flex-wrap: wrap; }
.xj-ft-badges span {
  display: inline-flex; align-items: center; gap: 7px; font-size: 11.5px;
  color: #b0a283; border: 1px solid rgba(201,168,106,.28); border-radius: 999px; padding: 6px 13px;
}
.xj-ft-badges .xj-ico { width: 13px; height: 13px; color: var(--xj-vermilion-lt); }
.xj-ft-col h4 {
  font-family: var(--xj-serif); color: #e8dcc0; font-size: 14px; letter-spacing: .28em;
  margin: 0 0 14px; font-weight: 600; display: flex; align-items: center; gap: 10px;
}
.xj-ft-col--west h4 { color: var(--xj-sgold); }
.xj-ft-col--west h4::before { content: "\2726"; font-size: 9px; color: var(--xj-sazure); }
.xj-ft-col a { display: block; font-size: 13px; color: #93876c; padding: 5px 0; transition: color .2s; }
.xj-ft-col a:hover { color: #d8c496; }
/* T63b：页脚声明块 —— 免责声明 + 亚马逊联盟声明合为**一个整体**，
   顶上一条细金线把它和版权行分开；两行同字号同色，不再各占一段。 */
.xj-ft-notice {
  color: #6a6050; font-size: 11.5px; line-height: 1.9;
  /* 第13轮：窄屏下两侧留 24px（此前文字顶满视口边缘） */
  max-width: min(760px, calc(100% - 48px));
  /* 2026-09-21 用户反馈「最底下完全贴底，不美观」：页脚末尾留出呼吸空间 */
  margin: 4px auto 26px;
  padding-top: 9px;
  border-top: 1px solid rgba(169, 133, 47, .16);
}
.xj-ft-notice__row { margin: 0; }
.xj-ft-notice__row + .xj-ft-notice__row { margin-top: 2px; opacity: .92; }

/* 2026-09-20 用户反馈「关于我们那块和版权相隔太远」：
   Astra 的 primary（栏目菜单 45/45）与 below（版权 20/20）两段页脚间距过大，
   这里压掉上下内边距，让「菜单行 / 版权行 / 免责声明行」成为一个紧凑块。 */
.site-primary-footer-wrap { padding: 8px 0 2px !important; border-top: 0 !important; }
.site-below-footer-wrap { padding: 0 0 4px !important; border-top: 0 !important; }
.site-footer .ast-footer-copyright { font-size: 11.5px; color: #6a6050; }
.site-footer .ast-footer-copyright p { margin: 0; }
footer #astra-footer-menu { gap: 0 24px !important; row-gap: 6px !important; }
footer #astra-footer-menu a { font-size: 12.5px; }
@media (max-width: 960px) {
  .xj-ft-in { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .xj-ft-in { grid-template-columns: 1fr; gap: 26px; }
  .xj-ft-brand p { max-width: none; }
}

/* ==========================================================================
   方案F §12：无障碍 —— 键盘焦点可见（2px 朱砂描边）
   注：Astra 主题在 a:focus-visible 上输出 dotted/inherit 覆盖，这里统一加 !important 兜底；
       颜色用字面量（var() 在本声明中曾出现计算期失效，回落 3px/currentColor 的问题）。
   ========================================================================== */
:focus-visible { outline: 2px solid #b03a2e !important; outline-offset: 2px; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible,
.xj-btn:focus-visible, .xj-mini-btn:focus-visible, .xj-tab:focus-visible { outline: 2px solid #b03a2e !important; outline-offset: 2px; }
/* 隐藏原生 radio/checkbox 的卡片式选项：焦点落到可见的兄弟节点 */
.xj-choice label:has(input:focus-visible),
.xj-shichen label:has(input:focus-visible),
.xj-zodiac label:has(input:focus-visible) { outline: 2px solid #b03a2e !important; outline-offset: 2px; }
.xj-choice input:focus-visible + span,
.xj-shichen input:focus-visible + b { outline: 2px solid #b03a2e !important; outline-offset: 2px; border-radius: 4px; }
/* 西轨深色页：朱砂在深底对比不足，改用天青 */
body.xj-west :focus-visible,
body.xj-west .xj-choice label:has(input:focus-visible),
body.xj-west .xj-zodiac label:has(input:focus-visible) { outline-color: #7fb1d8 !important; }
body.xj-west .xj-choice input:focus-visible + span,
body.xj-west .xj-shichen input:focus-visible + b { outline-color: #7fb1d8 !important; }


/* ---------- 会员中心导航图标（方案F §10，与页头菜单同套图标语言） ---------- */
.woocommerce .woocommerce-MyAccount-navigation ul li a[href$="/my-account/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Ccircle%20cx='12'%20cy='12'%20r='8.5'/%3E%3Cpath%20d='M4%2012h17M12%203.5c2.6%202.3%204%205.2%204%208.5s-1.4%206.2-4%208.5c-2.6-2.3-4-5.2-4-8.5s1.4-6.2%204-8.5Z'/%3E%3C/svg%3E"); }
.woocommerce .woocommerce-MyAccount-navigation ul li a[href*="/my-account/orders/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Crect%20x='5'%20y='3.5'%20width='14'%20height='17'%20rx='2'/%3E%3Cpath%20d='M8.5%208h7M8.5%2012h7M8.5%2016h4'/%3E%3C/svg%3E"); }
.woocommerce .woocommerce-MyAccount-navigation ul li a[href*="/my-account/downloads/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M12%204v10M8%2010.5l4%204%204-4'/%3E%3Cpath%20d='M4.5%2017v3h15v-3'/%3E%3C/svg%3E"); }
.woocommerce .woocommerce-MyAccount-navigation ul li a[href*="/my-account/edit-address/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M12%2021s-6.5-4.6-6.5-9.5a6.5%206.5%200%200%201%2013%200C18.5%2016.4%2012%2021%2012%2021Z'/%3E%3Ccircle%20cx='12'%20cy='11'%20r='2.4'/%3E%3C/svg%3E"); }
.woocommerce .woocommerce-MyAccount-navigation ul li a[href*="/my-account/payment-methods/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Crect%20x='3.5'%20y='6'%20width='17'%20height='12.5'%20rx='2'/%3E%3Cpath%20d='M3.5%2010.5h17M7%2015h4'/%3E%3C/svg%3E"); }
.woocommerce .woocommerce-MyAccount-navigation ul li a[href*="/my-account/edit-account/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Ccircle%20cx='12'%20cy='8.5'%20r='3.5'/%3E%3Cpath%20d='M5%2020c.8-3.6%203.6-5.5%207-5.5s6.2%201.9%207%205.5'/%3E%3C/svg%3E"); }
.woocommerce .woocommerce-MyAccount-navigation ul li a[href*="/my-account/my-reports/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M6.5%203.5h8L19%208v12.5h-12.5Z'/%3E%3Cpath%20d='M14%203.5V8h5'/%3E%3Cpath%20d='M9%2012.5h6M9%2016h4'/%3E%3C/svg%3E"); }
.woocommerce .woocommerce-MyAccount-navigation ul li a[href*="/customer-logout/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M14%204.5H6.5v15H14'/%3E%3Cpath%20d='M10.5%2012h9M16.5%208.5%2020%2012l-3.5%203.5'/%3E%3C/svg%3E"); }

/* ==========================================================================
   方案F §13：工具汇总页（Hub）· 命理知识归档 · 文章单页视觉层
   对应模块：xuanji-hub.php（[xuanji_hub] / [xuanji_knowledge]）、xuanji-article.php
   ========================================================================== */

/* ---------- 13.1 汇总页 Hero（双栏 + 仪器装饰） ---------- */
.xj-hub__hero {
  position: relative; overflow: hidden; padding: 32px 0 24px;
  border-bottom: 1px solid var(--xj-line-2);
  background:
    radial-gradient(900px 480px at 50% -12%, rgba(176, 58, 46, .09), transparent 66%),
    linear-gradient(180deg, #faf6ec 0%, #f7f3e9 100%);
}
.xj-hub__hero::after {
  content: ""; position: absolute; left: 50%; bottom: 4px; transform: translateX(-50%);
  width: min(560px, 70%); height: 34px;
  background: var(--xj-cloud) center center / contain no-repeat;
  opacity: .18; pointer-events: none;
}
.xj-hub__hero-in {
  display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, .5fr);
  gap: 36px; align-items: center; position: relative; z-index: 1;
}
.xj-hub__hero-txt { min-width: 0; }
.xj-hub__hero-txt .xj-h1 { margin: 0 0 14px; }
.xj-hub__sigil { display: flex; align-items: center; justify-content: center; }
.xj-hub__sigil-svg { width: 100%; max-width: 232px; height: auto; display: block; }
.xj-hub__stats { margin-top: 22px; }

/* ---------- 13.2 汇总页通用区块 ---------- */
.xj-hub__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: 16px; }
.xj-hub__head .xj-h2 { margin-top: 4px; }
.xj-hub__head-note { font-size: 13px; line-height: 1.9; color: var(--xj-muted); max-width: 430px; margin: 0; }

/* 工具行卡：编号 · 图标 · 文本 · 箭头 */
.xj-hub__tools { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.xj-hub__tools--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.xj-hub__tool {
  position: relative; display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto;
  align-items: center; gap: 16px; padding: 18px 20px;
  border-radius: var(--xj-r); border: 1px solid var(--xj-line-2);
  background: var(--xj-surface); box-shadow: var(--xj-shadow-sm);
  text-decoration: none !important; color: inherit !important;
  transition: transform .3s cubic-bezier(.4, 0, .2, 1), box-shadow .3s, background .3s, border-color .3s;
  overflow: hidden;
}
.xj-hub__tool::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: linear-gradient(180deg, #b03a2e, #c9a86a);
  transform: scaleY(0); transform-origin: top; transition: transform .35s cubic-bezier(.4, 0, .2, 1);
}
.xj-hub__tool:hover { transform: translateY(-3px); background: #fffdf7; border-color: var(--xj-line); box-shadow: var(--xj-shadow); }
.xj-hub__tool:hover::before { transform: scaleY(1); }
.xj-hub__tool-no { font-family: var(--xj-serif); font-size: 13px; letter-spacing: .1em; color: var(--xj-faint); }
.xj-hub__tool-ico {
  width: 44px; height: 44px; border-radius: 12px; flex: none;
  display: flex; align-items: center; justify-content: center;
  background: rgba(176, 58, 46, .08); border: 1px solid rgba(176, 58, 46, .24); color: #7f251b;
}
.xj-hub__tool-body { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.xj-hub__tool-body b { font-family: var(--xj-serif); font-size: 17px; letter-spacing: .02em; color: var(--xj-ink); }
.xj-hub__tool-body em { font-style: normal; font-size: 11.5px; letter-spacing: .16em; color: var(--xj-faint); }
.xj-hub__tool-desc {
  margin-top: 5px; font-size: 12.6px; line-height: 1.85; color: var(--xj-muted);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.xj-hub__tool-go { flex: none; color: var(--xj-vermilion-dk); opacity: .45; transition: transform .25s, opacity .25s; }
.xj-hub__tool:hover .xj-hub__tool-go { opacity: 1; transform: translateX(3px); }

/* 底部 CTA 条 */
.xj-hub__cta {
  display: flex; align-items: center; justify-content: space-between; gap: 26px; flex-wrap: wrap;
  padding: 26px 30px; border-radius: var(--xj-r-lg); border: 1px solid var(--xj-line);
  background: linear-gradient(165deg, #fffaf0 0%, var(--xj-surface) 62%); box-shadow: var(--xj-shadow-sm);
}
.xj-hub__cta-txt { min-width: 0; }
.xj-hub__cta-txt .xj-h3 { margin: 0 0 6px; }
.xj-hub__cta-txt .xj-text { margin: 0; }
.xj-hub__cta-acts { display: flex; gap: 12px; flex-wrap: wrap; }

/* 付费转化带（东方命理页 · 价格无关，软性引导至 VIP） */
.xj-pay-band {
  display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap;
  padding: 30px 34px; border-radius: var(--xj-r-lg); border: 1px solid #2a141a;
  background: radial-gradient(140% 130% at 0% 0%, #5a2320 0%, #37171d 52%, #1d1014 100%);
  box-shadow: var(--xj-shadow-lg); position: relative; overflow: hidden;
}
.xj-pay-band::after {
  content: ""; position: absolute; inset: auto -40px -60px auto; width: 220px; height: 220px;
  background: radial-gradient(circle, rgba(217,184,114,.16), transparent 62%); pointer-events: none;
}
.xj-pay-band__txt { min-width: 0; max-width: 620px; position: relative; z-index: 1; }
.xj-pay-band__txt .xj-eyebrow { color: var(--xj-brass); }
.xj-pay-band__txt .xj-h2 { color: #f3e9d6; margin: 8px 0 10px; }
.xj-pay-band__txt .xj-text { color: rgba(240,231,214,.82); margin: 0; }
.xj-pay-band__cta { flex: none; text-align: center; position: relative; z-index: 1; }
.xj-pay-band__cta .xj-btn--gold { box-shadow: 0 10px 26px rgba(0,0,0,.32); }
.xj-pay-band__cta .xj-btn--gold .xj-ico { margin-right: 6px; vertical-align: -3px; }
.xj-pay-band__hint { margin: 12px 0 0; font-size: 12px; letter-spacing: .04em; color: rgba(232,201,135,.7); }
@media (max-width: 760px) {
  .xj-pay-band { flex-direction: column; align-items: flex-start; gap: 20px; padding: 26px 24px; }
  .xj-pay-band__cta { align-self: stretch; }
  .xj-pay-band__cta .xj-btn--gold { width: 100%; }
}

/* 汇总页内的典籍引文：来源独立成行 */
.xj-hub .xj-quote__text { line-height: 1.95; }

/* ---------- 13.3 签卦字梦分组页：四工具竖卡 ---------- */
.xj-hub__body { padding-top: 6px; }
.xj-grid--tools { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
/* T8.4 取名汇总页：九品类卡片，桌面 3×3，中屏 2 列，窄屏单列 */
.xj-grid--tools3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 1180px) {
  .xj-grid--tools3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* T38c 在线取名汇总页：四个工具「两行两列」且卡面放大（汇总页求大气、不挤） */
.xj-grid--tools2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.xj-grid--tools2 .xj-tool-card { padding: 34px 32px 26px; }
.xj-grid--tools2 .xj-tool-card__icon { width: 56px; height: 56px; border-radius: 16px; margin-bottom: 18px; }
.xj-grid--tools2 .xj-tool-card__icon .xj-ico { width: 26px; height: 26px; }
.xj-grid--tools2 .xj-tool-card__name { font-size: 23px; }
.xj-grid--tools2 .xj-tool-card__tag { margin-top: 7px; font-size: 12px; }
.xj-grid--tools2 .xj-tool-card__desc { margin-top: 14px; font-size: 14px; line-height: 1.95; }
.xj-grid--tools2 .xj-tool-card__go { padding-top: 20px; font-size: 13.5px; }
@media (max-width: 860px) {
  .xj-grid--tools2 { grid-template-columns: 1fr; gap: 16px; }
  .xj-grid--tools2 .xj-tool-card { padding: 26px 22px 20px; }
  .xj-grid--tools2 .xj-tool-card__icon { width: 46px; height: 46px; border-radius: 13px; margin-bottom: 14px; }
  .xj-grid--tools2 .xj-tool-card__name { font-size: 19px; }
}

.xj-tool-card {
  position: relative; display: flex; flex-direction: column;
  padding: 26px 26px 20px; overflow: hidden;
  border-radius: var(--xj-r-lg); border: 1px solid var(--xj-line-2);
  background: var(--xj-surface); box-shadow: var(--xj-shadow-sm);
  text-decoration: none !important; color: inherit !important;
  transition: transform .3s cubic-bezier(.4, 0, .2, 1), box-shadow .3s, background .3s, border-color .3s;
}
.xj-tool-card::before {
  content: ""; position: absolute; left: 0; top: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--xj-vermilion), #c9a86a);
  transform: scaleX(0); transform-origin: left;
  transition: transform .4s cubic-bezier(.4, 0, .2, 1);
}
.xj-tool-card:hover { transform: translateY(-4px); background: #fffdf7; border-color: var(--xj-line); box-shadow: var(--xj-shadow); }
.xj-tool-card:hover::before { transform: scaleX(1); }

.xj-tool-card__icon {
  width: 48px; height: 48px; border-radius: 14px; flex: none; margin-bottom: 14px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(176, 58, 46, .08); border: 1px solid rgba(176, 58, 46, .24); color: #7f251b;
}
.xj-tool-card__icon .xj-ico { width: 22px; height: 22px; }
.xj-tool-card__name { font-family: var(--xj-serif); font-size: 19px; line-height: 1.45; letter-spacing: .03em; color: var(--xj-ink); }
.xj-tool-card__tag { margin-top: 5px; font-size: 11.5px; letter-spacing: .14em; color: var(--xj-faint); }
.xj-tool-card__desc { margin-top: 12px; font-size: 13px; line-height: 1.9; color: var(--xj-muted); }
.xj-tool-card__go {
  margin-top: auto; padding-top: 18px;
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; letter-spacing: .06em; color: var(--xj-vermilion-dk);
  opacity: .72; transition: gap .25s, opacity .25s;
}
.xj-tool-card:hover .xj-tool-card__go { opacity: 1; gap: 10px; }

@media (max-width: 760px) {
  .xj-grid--tools, .xj-grid--tools3 { grid-template-columns: 1fr; }
  .xj-tool-card { padding: 22px 20px 18px; }
  .xj-tool-card__icon { width: 42px; height: 42px; border-radius: 12px; margin-bottom: 12px; }
  .xj-tool-card__name { font-size: 17.5px; }
}
.xj-hub .xj-quote__src { display: block; margin: 12px 0 0; text-align: right; }

/* ---------- 13.3 黄道十二宫速览（西轨） ---------- */
.xj-hub__zodiac { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.xj-hub__zod {
  position: relative; display: flex; flex-direction: column; align-items: center; gap: 5px;
  padding: 17px 10px 14px; border-radius: var(--xj-r-sm);
  border: 1px solid var(--xj-line-2); background: var(--xj-surface);
  text-decoration: none !important; color: inherit !important; transition: all .28s cubic-bezier(.4, 0, .2, 1);
}
.xj-hub__zod:hover { transform: translateY(-3px); background: #fffdf7; border-color: var(--xj-line); box-shadow: var(--xj-shadow-sm); }
/* T3.1：星座符号改为字体渲染（已禁用 WP emoji 脚本），需显式指定符号字体回退链，
   否则部分系统会把 ♈ 渲染成彩色 emoji 字形而非庄重的单色符号。 */
.xj-hub__zod-sym {
  font-size: 23px; line-height: 1; color: #a9852f;
  font-family: "Segoe UI Symbol", "Noto Sans Symbols 2", "Apple Symbols",
               "Symbola", "DejaVu Sans", serif;
  font-variant-emoji: text; /* 强制文本呈现，抗 emoji 化 */
}
.xj-hub__zod-name { font-size: 13px; font-weight: 600; color: var(--xj-ink); }
.xj-hub__zod-range { font-size: 11.5px; letter-spacing: .04em; color: var(--xj-faint); }
.xj-hub__zod .xj-el {
  position: absolute; top: 8px; right: 8px; margin: 0;
  min-width: 20px; height: 20px; line-height: 18px; font-size: 11px; padding: 0 4px;
}

/* ---------- 13.4 西轨汇总页（深空） ---------- */
.xj-hub__hero--space {
  background: none; border-bottom: 1px solid var(--xj-sline-2);
}
.xj-hub__hero--space::after { opacity: .12; }
body.xj-west .xj-hub__head-note { color: var(--xj-star-2); }
body.xj-west .xj-hub__tool { background: var(--xj-panel); border-color: var(--xj-sline-2); box-shadow: none; }
body.xj-west .xj-hub__tool:hover { background: rgba(255, 255, 255, .08); border-color: var(--xj-sline); }
body.xj-west .xj-hub__tool::before { background: linear-gradient(180deg, #d8b878, #7fb1d8); }
body.xj-west .xj-hub__tool-body b { color: var(--xj-star); }
body.xj-west .xj-hub__tool-body em { color: var(--xj-star-mut); }
body.xj-west .xj-hub__tool-desc { color: var(--xj-star-2); }
body.xj-west .xj-hub__tool-no { color: var(--xj-star-mut); }
body.xj-west .xj-hub__tool-ico { background: rgba(216, 184, 120, .08); border-color: var(--xj-sline); color: var(--xj-sgold); }
body.xj-west .xj-hub__tool-go { color: var(--xj-sgold); }
body.xj-west .xj-hub__zod { background: var(--xj-panel); border-color: var(--xj-sline-2); }
body.xj-west .xj-hub__zod:hover { background: rgba(255, 255, 255, .08); border-color: var(--xj-sline); }
body.xj-west .xj-hub__zod-sym { color: var(--xj-sgold); }
body.xj-west .xj-hub__zod-name { color: var(--xj-star); }
body.xj-west .xj-hub__zod-range { color: var(--xj-star-mut); }
body.xj-west .xj-hub__cta { background: var(--xj-panel); border-color: var(--xj-sline); box-shadow: none; }
body.xj-west .xj-hub__cta-txt .xj-h3 { color: var(--xj-star); }
body.xj-west .xj-hub__cta-txt .xj-text { color: var(--xj-star-2); }
body.xj-west .xj-hub .xj-quote { background: rgba(255, 255, 255, .04); border-left-color: var(--xj-sgold); }
body.xj-west .xj-hub .xj-quote__text { color: var(--xj-star); }
body.xj-west .xj-hub .xj-quote__src { color: var(--xj-sgold); }

/* ---------- 13.5 命理知识归档页 · 首页文章区块 ---------- */
.xj-hub--kb .xj-post-card { min-height: 100%; }
.xj-hub--kb .xj-grid { gap: 18px; }
.xj-articles-more { display: flex; justify-content: center; margin-top: 26px; }

/* T35：命理知识归档页分页（每页 15 篇） */
.xj-pager {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  margin: 24px 0 0; padding-top: 20px; border-top: 1px solid var(--xj-line-2);
}
.xj-pager__btn {
  display: inline-flex; align-items: center; gap: 8px; min-width: 122px;
  padding: 11px 18px; border-radius: 999px; border: 1px solid var(--xj-line);
  background: var(--xj-surface); color: var(--xj-ink); font-size: 13.6px;
  text-decoration: none !important; transition: all .26s;
}
.xj-pager__btn:hover { border-color: var(--xj-vermilion); color: var(--xj-vermilion-dk) !important; background: #fffaf0; transform: translateY(-1px); }
.xj-pager__btn .xj-ico { color: var(--xj-vermilion); }
.xj-pager__btn--prev .xj-ico { transform: rotate(180deg); }
.xj-pager__btn--next { justify-content: flex-end; }
.xj-pager__btn--ghost { opacity: .38; pointer-events: none; border-color: var(--xj-line-2); background: transparent; }
.xj-pager__btn--ghost .xj-ico { color: var(--xj-faint); }
.xj-pager__cur { flex: 1 1 auto; text-align: center; font-size: 12.8px; color: var(--xj-faint); letter-spacing: .06em; }
.xj-pager__cur b { color: var(--xj-ink); font-weight: 600; }
@media (max-width: 600px) {
  .xj-pager { flex-wrap: wrap; }
  .xj-pager__btn { min-width: 0; flex: 1 1 auto; justify-content: center; }
  .xj-pager__btn--next { justify-content: center; }
  .xj-pager__cur { order: 3; flex: 1 1 100%; }
}

/* ---------- 13.8 会员登录 / 注册（T36 重做） ----------
 * ⚠️ 选择器优先级说明：本组原件跑在 account 页，同时被三方规则覆盖过：
 *    · WooCommerce  `.woocommerce input[type="password"]`  (0,2,1) → 把输入框圆角压成 0
 *    · Astra        `.entry-content[data-ast-blocks-layout] > *` (0,2,0) → 把宽度拽成 1200
 *    因此这里统一以 `.xj-auth <元素>[type=..].xj-auth__input`（0,3,1）书写，
 *    并用 `.xj-auth-wrap` 承接 Astra 的直接子元素规则，组件自身的宽度才生效。
 */
.xj-auth-wrap { padding: 0; }
.xj-auth__hero { padding: 26px 0 6px; }
.xj-auth__hero .xj-crumb { margin-bottom: 14px; }
.xj-auth__hero .xj-hero__sub { margin-bottom: 0; }
.xj-auth__sec { padding: 16px 0 34px; }

.xj-auth {
  display: grid; grid-template-columns: 372px minmax(0, 1fr);
  position: relative; overflow: hidden;
  border: 1px solid var(--xj-line-2); border-radius: var(--xj-r-lg);
  background: var(--xj-surface); box-shadow: var(--xj-shadow-lg);
}
.xj-auth::before {
  content: ""; position: absolute; z-index: 3; inset: 0 0 auto; height: 3px;
  background: linear-gradient(90deg, var(--xj-vermilion) 0%, var(--xj-brass) 52%, var(--xj-vermilion) 100%);
}

/* —— 左：品牌栏（深墨底） —— */
.xj-auth__aside {
  position: relative; overflow: hidden; flex-direction: column;
  /* 品牌栏比表单栏矮，内容默认顶到头会在底部空出一大块；居中后两栏呼吸感一致 */
  display: flex; justify-content: center; gap: 20px;
  padding: 38px 32px 32px; color: #e7dfd2;
  background:
    radial-gradient(126% 92% at 8% -6%, #5a2320 0%, #35151b 46%, #1a0f13 100%);
}
.xj-auth__aside-glow {
  position: absolute; inset: 0; opacity: .07; pointer-events: none;
  background: var(--xj-cloud) center center / 320px auto repeat;
}
.xj-auth__aside > * { position: relative; z-index: 1; }
.xj-auth__wheel { width: 168px; height: 168px; flex: none; filter: drop-shadow(0 10px 26px rgba(0, 0, 0, .38)); }
.xj-auth__wheel-dash { transform-origin: 100px 100px; animation: xjAuthSpin 46s linear infinite; }
@keyframes xjAuthSpin { to { transform: rotate(360deg); } }
.xj-auth__quote {
  margin: 0; font-family: var(--xj-serif); font-size: 19.5px; line-height: 1.85;
  color: #f0e6d2; letter-spacing: .04em; text-indent: -.6em;
}
.xj-auth__quote-mark { color: var(--xj-sgold); }
.xj-auth__quote-src { margin: -12px 0 0; font-size: 12px; letter-spacing: .16em; color: rgba(232, 201, 135, .74); }
.xj-auth__pts { list-style: none; margin: 4px 0 0; padding: 20px 0 0; border-top: 1px solid rgba(232, 201, 135, .22); display: grid; gap: 13px; }
.xj-auth__pt { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; line-height: 1.8; color: rgba(240, 230, 210, .82); }
.xj-auth__pt .xj-ico { flex: none; margin-top: 3px; color: var(--xj-sgold); }

/* —— 右：表单栏 —— */
.xj-auth__main { padding: 34px 38px 32px; background: var(--xj-surface); }
.xj-auth__back {
  display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px;
  margin: 0 0 20px; padding: 10px 14px; border: 1px dashed var(--xj-line-2); border-radius: 10px;
  background: var(--xj-surface-2); font-size: 12.8px; line-height: 1.6; color: var(--xj-muted); text-align: center;
}
.xj-auth__back i { flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--xj-brass); box-shadow: 0 0 0 3px rgba(169, 133, 47, .18); }
.xj-auth__back b { color: var(--xj-ink-2); font-weight: 600; }

.xj-auth__tabs {
  position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px;
  margin: 0 0 24px; border: 1px solid var(--xj-line-2); border-radius: 13px; background: var(--xj-surface-3);
}
/* Astra 会给原生 <button> 叠一层主色底，必须显式压回 */
.xj-auth__tab {
  position: relative; z-index: 2; appearance: none; cursor: pointer;
  border: 0 !important; background: transparent !important; box-shadow: none !important;
  padding: 11px 8px; border-radius: 10px; font-family: var(--xj-sans);
  font-size: 14px; font-weight: 600; letter-spacing: .06em; color: var(--xj-muted); transition: color .22s;
}
.xj-auth__tab.is-on { color: var(--xj-ink) !important; }
.xj-auth__ink {
  position: absolute; z-index: 1; top: 4px; left: 4px; width: calc(50% - 6px); height: calc(100% - 8px);
  background: var(--xj-surface); border-radius: 10px; box-shadow: var(--xj-shadow-sm);
  transition: transform .28s cubic-bezier(.4, 0, .2, 1);
}
.xj-auth[data-tab="reg"] .xj-auth__ink { transform: translateX(calc(100% + 4px)); }

.xj-auth__panel { display: none; margin: 0; }
.xj-auth__panel.is-on { display: block; animation: xjAuthIn .32s ease both; }
@keyframes xjAuthIn { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: none; } }

.xj-auth__field { margin: 0 0 15px; }
.xj-auth__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.xj-auth__label { display: block; margin: 0 0 7px; font-size: 12.5px; font-weight: 600; letter-spacing: .04em; color: var(--xj-ink-2); }
.xj-auth__label em { font-style: normal; color: var(--xj-vermilion); margin-left: 3px; }
.xj-auth__label i {
  font-style: normal; font-weight: 400; font-size: 11px; color: var(--xj-faint-deco);
  margin-left: 6px; border: 1px solid var(--xj-line-2); border-radius: 4px; padding: 1px 5px; vertical-align: 1px;
}

.xj-auth input[type="text"].xj-auth__input,
.xj-auth input[type="email"].xj-auth__input,
.xj-auth input[type="password"].xj-auth__input,
.xj-auth input[type="date"].xj-auth__input,
.xj-auth select.xj-auth__input {
  width: 100%; box-sizing: border-box; appearance: none; -webkit-appearance: none;
  background: #fff; border: 1px solid var(--xj-line-3); border-radius: 12px;
  padding: 13px 14px; font-family: var(--xj-sans); font-size: 14.5px; line-height: 1.6; color: var(--xj-ink);
  transition: border-color .2s, box-shadow .2s, background-color .2s;
}
.xj-auth input.xj-auth__input::placeholder { color: var(--xj-faint-deco); }
.xj-auth input.xj-auth__input:hover { border-color: rgba(38, 35, 30, .28); }
.xj-auth input[type="text"].xj-auth__input:focus,
.xj-auth input[type="email"].xj-auth__input:focus,
.xj-auth input[type="password"].xj-auth__input:focus,
.xj-auth input[type="date"].xj-auth__input:focus,
.xj-auth select.xj-auth__input:focus {
  outline: 0; border-color: var(--xj-vermilion); background: #fff;
  box-shadow: 0 0 0 3px var(--xj-vermilion-glow);
}
.xj-auth select.xj-auth__input {
  padding-right: 38px; cursor: pointer;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none' stroke='%2371695c' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M3 5.5 7 9.5 11 5.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center;
}
/* 密码框：显隐切换按钮 */
.xj-auth__pw { position: relative; display: block; }
.xj-auth__pw input[type="password"].xj-auth__input,
.xj-auth__pw input[type="text"].xj-auth__input { padding-right: 46px; }
.xj-auth__eye {
  position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
  /* Astra 的 `button{ padding: 15px 30px }` 会让 30px 宽的按钮被撑到 60px（border-box 下
     最小盒宽 = 左右 padding），必须显式清零。 */
  width: 30px; height: 30px; min-width: 0; padding: 0; display: grid; place-items: center; cursor: pointer;
  border: 0 !important; background: transparent !important; box-shadow: none !important;
  border-radius: 8px; color: var(--xj-faint); transition: color .2s, background-color .2s;
}
.xj-auth__eye:hover { color: var(--xj-vermilion-dk); background: var(--xj-surface-2) !important; }
.xj-auth__eye.is-on { color: var(--xj-vermilion); }
.xj-auth__eye::before {
  content: ""; width: 17px; height: 17px; background: currentColor;
  -webkit-mask: var(--xj-eye-off) center / contain no-repeat; mask: var(--xj-eye-off) center / contain no-repeat;
}
.xj-auth__eye.is-on::before { -webkit-mask-image: var(--xj-eye-on); mask-image: var(--xj-eye-on); }
/* 密码强度：三格 */
.xj-auth__meter { display: flex; align-items: center; gap: 5px; margin: 8px 0 0; }
.xj-auth__meter i { flex: 1 1 0; height: 4px; border-radius: 999px; background: var(--xj-line-2); transition: background-color .26s; }
.xj-auth__meter b { flex: none; margin-left: 6px; font-size: 11.5px; font-weight: 500; color: var(--xj-faint); letter-spacing: .04em; }
.xj-auth__meter[data-lv="1"] i:nth-child(-n+1) { background: #c0392b; }
.xj-auth__meter[data-lv="2"] i:nth-child(-n+2) { background: #b5822e; }
.xj-auth__meter[data-lv="3"] i { background: var(--xj-olive); }

.xj-auth__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 2px 0 18px; }
.xj-auth__check { display: flex; align-items: flex-start; gap: 9px; font-size: 12.8px; color: var(--xj-ink-2); cursor: pointer; line-height: 1.65; }
.xj-auth input[type="checkbox"] {
  appearance: none; -webkit-appearance: none; flex: none; width: 16px; height: 16px; margin: 2px 0 0;
  border: 1px solid var(--xj-line-3); border-radius: 5px; background: #fff; cursor: pointer;
  display: grid; place-content: center; transition: background-color .18s, border-color .18s;
}
.xj-auth input[type="checkbox"]:checked { background: var(--xj-vermilion); border-color: var(--xj-vermilion); }
.xj-auth input[type="checkbox"]:checked::after {
  content: ""; width: 8px; height: 4px; border-left: 2px solid #fff; border-bottom: 2px solid #fff;
  transform: rotate(-45deg) translate(1px, -1px);
}
.xj-auth input[type="checkbox"]:focus-visible { outline: 2px solid var(--xj-vermilion); outline-offset: 2px; }
.xj-auth__check--agree { margin: 2px 0 18px; }
.xj-auth__forgot { font-size: 12.8px; color: var(--xj-muted) !important; text-decoration: none !important; white-space: nowrap; }
.xj-auth__forgot:hover { color: var(--xj-vermilion-dk) !important; text-decoration: underline !important; }

.xj-auth__more { margin: 4px 0 18px; border: 1px dashed var(--xj-line-2); border-radius: 13px; padding: 16px 16px 2px; background: var(--xj-surface-2); }
.xj-auth__more-title { display: flex; align-items: flex-start; gap: 8px; margin: 0 0 15px; font-size: 12.5px; line-height: 1.7; color: var(--xj-muted); }
.xj-auth__more-title::before { content: ""; flex: none; width: 14px; height: 1px; margin-top: 10px; background: var(--xj-brass); }
.xj-auth .xj-auth__more .xj-auth__field { margin-bottom: 14px; }

.xj-auth__msg { display: none; margin: 0 0 14px; padding: 11px 14px; border-radius: 11px; font-size: 12.8px; line-height: 1.7; }
.xj-auth__msg.is-on { display: block; animation: xjAuthIn .26s ease both; }
.xj-auth__msg.is-err { background: rgba(176, 58, 46, .08); border: 1px solid rgba(176, 58, 46, .28); color: var(--xj-vermilion-dk); }
.xj-auth__msg.is-ok { background: rgba(65, 88, 78, .08); border: 1px solid rgba(65, 88, 78, .28); color: var(--xj-olive-dk); }
.xj-auth__foot { margin: 18px 0 0; text-align: center; font-size: 12.8px; color: var(--xj-muted); }
.xj-auth__foot a { color: var(--xj-vermilion-lt) !important; font-weight: 600; text-decoration: none !important; }
.xj-auth__foot a:hover { text-decoration: underline !important; }
/* Astra 的链接主色会污染组件内链接，统一压回朱砂系 */
.xj-auth a { color: var(--xj-vermilion-lt) !important; }
.xj-auth a:hover { text-decoration: underline; }
.xj-auth .xj-btn { margin-top: 2px; }

/* 社交账户快捷登录按钮（T37） */
.xj-auth__social { margin-top: 22px; }
.xj-auth__divider {
  display: flex; align-items: center; gap: 14px; margin: 0 0 16px;
  color: var(--xj-faint); font-size: 12px; letter-spacing: .08em;
}
.xj-auth__divider::before, .xj-auth__divider::after {
  content: ""; height: 1px; flex: 1; background: var(--xj-line-2);
}
.xj-auth__social-btns { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; }
.xj-soc {
  display: flex !important; align-items: center; justify-content: center; gap: 7px;
  padding: 11px 8px !important; border-radius: 11px !important; border: 1px solid var(--xj-line-3) !important;
  text-decoration: none !important; font-size: 13px; font-weight: 600; color: #fff !important;
  background: #888 !important; box-shadow: none !important; transition: transform .18s, box-shadow .18s, filter .18s;
}
.xj-soc:hover { text-decoration: none !important; transform: translateY(-2px); filter: brightness(1.05); box-shadow: 0 8px 18px rgba(0,0,0,.16) !important; }
.xj-soc svg { flex: none; }
.xj-soc--wechat { background: #07c160 !important; border-color: #07c160 !important; }
.xj-soc--qq     { background: #12b7f5 !important; border-color: #12b7f5 !important; }
.xj-soc--google { background: #fff !important; border-color: var(--xj-line-3) !important; color: #3c4043 !important; }
.xj-soc--x      { background: #000 !important; border-color: #000 !important; }
.xj-soc--apple  { background: #000 !important; border-color: #000 !important; }
@media (max-width: 520px) {
  .xj-auth__social-btns { grid-template-columns: repeat(3, 1fr); }
  .xj-soc span { display: none; }
  .xj-soc { padding: 12px 0 !important; }
}

@media (max-width: 980px) {
  .xj-auth { grid-template-columns: 1fr; }
  .xj-auth__aside { display: none; }
  .xj-auth__main { padding: 30px 26px 28px; }
}
@media (max-width: 600px) {
  .xj-auth__sec { padding: 10px 0 26px; }
  .xj-auth__grid { grid-template-columns: 1fr; gap: 0; }
  .xj-auth__main { padding: 26px 18px 24px; border-radius: 0 0 var(--xj-r-lg) var(--xj-r-lg); }
  .xj-auth__row { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  .xj-auth__wheel-dash { animation: none; }
}

/* T36：结算/购物车页的「先登录后付款」提示条。原先挂在登录页的内联样式里，
 *      只有 account 页才加载；迁到这里后任何出现它的页面都有一致外观。 */
.xj-gate-notice {
  margin: 0 0 22px; padding: 16px 20px; border: 1px solid rgba(169, 133, 47, .42);
  border-radius: var(--xj-r); background: rgba(169, 133, 47, .08);
  font-size: 13.2px; line-height: 1.9; color: var(--xj-ink-2);
}
.xj-gate-notice p { margin: 0; }
.xj-gate-notice p + p { margin-top: 12px; }

/* ---------- 13.6 文章单页视觉层 ---------- */
/* 第13轮：面包屑与相邻文章导航一并收进正文栏（此前两者满宽贴边） */
.xj-art .entry-header,
.xj-art .entry-content,
.xj-art .xj-art__crumb,
.xj-art .post-navigation { max-width: 860px; margin-left: auto; margin-right: auto; }
.xj-art__crumb { margin-bottom: 14px; }
.xj-art .entry-header .entry-title {
  font-family: var(--xj-serif); font-size: clamp(25px, 3.4vw, 38px); line-height: 1.36;
  font-weight: 700; letter-spacing: .03em; color: var(--xj-ink); margin: 0 0 14px;
}
.xj-art__meta { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; font-size: 12.6px; color: var(--xj-faint); }
.xj-art__cat { text-decoration: none !important; background: rgba(176, 58, 46, .08); border: 0; color: var(--xj-vermilion-dk); }
.xj-art__meta-item { display: inline-flex; align-items: center; gap: 6px; color: var(--xj-muted); }
.xj-art__meta-item .xj-ico { color: var(--xj-vermilion); }

/* 正文排版 */
.xj-art .entry-content { font-size: 15.6px; line-height: 2.05; color: var(--xj-ink-2); }
.xj-art .entry-content > p { margin: 0 0 20px; }
.xj-art .entry-content > p:first-child { font-size: 16.4px; color: var(--xj-ink); }
.xj-art .entry-content h2 {
  position: relative; font-family: var(--xj-serif); font-size: clamp(20px, 2.3vw, 25px);
  line-height: 1.5; color: var(--xj-ink); margin: 42px 0 16px; padding-left: 15px;
}
.xj-art .entry-content h2::before {
  content: ""; position: absolute; left: 0; top: .16em; bottom: .16em;
  width: 4px; border-radius: 2px; background: linear-gradient(180deg, #b03a2e, #c9a86a);
}
.xj-art .entry-content h3 { font-family: var(--xj-serif); font-size: 18.5px; color: var(--xj-ink); margin: 30px 0 12px; }
.xj-art .entry-content a { color: var(--xj-vermilion-dk); text-decoration: underline; text-underline-offset: 3px; }
.xj-art .entry-content a:hover { color: #7f251b; }
.xj-art .entry-content blockquote {
  margin: 26px 0; padding: 18px 22px; border-left: 3px solid var(--xj-vermilion);
  background: var(--xj-surface-2); border-radius: 0 var(--xj-r-sm) var(--xj-r-sm) 0;
  font-family: var(--xj-serif); color: var(--xj-ink);
}
.xj-art .entry-content ul, .xj-art .entry-content ol { padding-left: 22px; margin: 0 0 20px; }
.xj-art .entry-content li { margin-bottom: 8px; }
.xj-art .entry-content img { max-width: 100%; height: auto; border-radius: var(--xj-r-sm); }
.xj-art .entry-content hr { border: 0; border-top: 1px solid var(--xj-line-2); margin: 34px 0; }
.xj-art .entry-content table { width: 100%; border-collapse: collapse; font-size: 14px; margin: 0 0 22px; }
.xj-art .entry-content th, .xj-art .entry-content td { border: 1px solid var(--xj-line-2); padding: 10px 12px; text-align: left; }
.xj-art .entry-content th { background: var(--xj-surface-2); font-weight: 600; }

/* 文末区 */
.xj-art__foot { margin-top: 44px; }
.xj-art__facts { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 26px; }
.xj-art__fact {
  display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px;
  border-radius: 999px; border: 1px solid var(--xj-line-2); background: var(--xj-surface-2);
  font-size: 12.4px; color: var(--xj-muted);
}
.xj-art__fact .xj-ico { color: var(--xj-vermilion); }
.xj-art__fact-k { color: var(--xj-faint); }
.xj-art__fact-v { color: var(--xj-ink); font-weight: 600; }
.xj-art__sec-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.xj-art__sec-more { font-size: 13px; color: var(--xj-vermilion-dk); text-decoration: none !important; }
.xj-art__sec-more:hover { color: #7f251b; }
.xj-art__related { margin-bottom: 4px; }
.xj-art__cta {
  display: flex; align-items: center; justify-content: space-between; gap: 22px; flex-wrap: wrap;
  margin-top: 30px; padding: 22px 26px; border-radius: var(--xj-r);
  border: 1px solid var(--xj-line); background: linear-gradient(165deg, #fffaf0 0%, var(--xj-surface) 62%);
}
.xj-art__cta-txt { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.xj-art__cta-txt b { font-family: var(--xj-serif); font-size: 16.5px; color: var(--xj-ink); }
.xj-art__cta-txt span { font-size: 13px; line-height: 1.8; color: var(--xj-muted); }
.xj-art__cta-acts { display: flex; gap: 10px; flex-wrap: wrap; }
.xj-art__disclaim { margin: 22px 0 0; font-size: 11.8px; line-height: 1.9; color: var(--xj-faint); }

/* 相邻文章导航（Astra 原生结构的美化） */
.xj-art .post-navigation .nav-links { display: flex; gap: 14px; flex-wrap: wrap; }
/* T35：Astra 原生给 .nav-previous/.nav-next 写了 width:50% + float，
   两个 50% 再叠加 14px 的 gap 必然溢出换行 —— 「下一篇」被挤到第二行。
   改为等分 flex，gap 由 flex-basis:0 消化。 */
.xj-art .post-navigation .nav-previous,
.xj-art .post-navigation .nav-next { flex: 1 1 0; width: auto; min-width: 0; float: none; }
.xj-art .post-navigation .nav-next { text-align: right; }
.xj-art .post-navigation a {
  display: block; padding: 16px 18px; border-radius: var(--xj-r); border: 1px solid var(--xj-line-2);
  background: var(--xj-surface); text-decoration: none !important; color: var(--xj-ink) !important;
  font-size: 14px; transition: all .28s;
}
.xj-art .post-navigation a:hover { border-color: var(--xj-line); box-shadow: var(--xj-shadow-sm); transform: translateY(-2px); }
.xj-art .post-navigation .ast-post-nav { display: block; font-size: 11.5px; letter-spacing: .2em; color: var(--xj-faint); margin-bottom: 6px; }

/* ---------- 13.7 响应式 ---------- */
/* 第13轮：窄屏下文章栏不再贴边（移动端正文左右顶满视口） */
@media (max-width: 920px) {
  .xj-art .entry-header, .xj-art .entry-content, .xj-art .xj-art__crumb, .xj-art .post-navigation { padding-left: 22px; padding-right: 22px; }
}
@media (max-width: 1024px) {
  .xj-hub__hero-in { grid-template-columns: 1fr; gap: 24px; }
  .xj-hub__sigil { order: -1; }
  .xj-hub__sigil-svg { max-width: 168px; }
  .xj-hub__zodiac { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 940px) {
  .xj-hub__tools, .xj-hub__tools--3 { grid-template-columns: 1fr; }
  .xj-hub__cta { padding: 22px 22px; }
}
@media (max-width: 620px) {
  .xj-hub__hero { padding: 22px 0 18px; }
  .xj-hub__stats { margin-top: 18px; }
  .xj-hub__tool { grid-template-columns: auto minmax(0, 1fr) auto; gap: 13px; padding: 16px; }
  .xj-hub__tool-no { display: none; }
  .xj-hub__tool-ico { width: 40px; height: 40px; }
  .xj-hub__zodiac { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .xj-hub__cta-acts { width: 100%; }
  .xj-hub__cta-acts .xj-btn { flex: 1; }
  .xj-art .entry-content { font-size: 15.2px; }
  .xj-art__fact { font-size: 11.8px; padding: 8px 12px; }
}

/* ---------- 13.8 动效降级 ---------- */
@media (prefers-reduced-motion: reduce) {
  .xj-hub__tool, .xj-hub__zod, .xj-art .post-navigation a { transition: none !important; }
  .xj-hub__tool:hover, .xj-hub__zod:hover, .xj-art .post-navigation a:hover { transform: none !important; }
}

/* ---------- 13.9 T5.3 顶部账户区（语言切换同排） ---------- */
.xj-acc-bar { display: flex; align-items: center; gap: 12px; }
.xj-acc-bar__link { font-size: 12px; letter-spacing: .04em; color: var(--xj-muted); transition: color .15s; white-space: nowrap; }
.xj-acc-bar__link:hover { color: var(--xj-vermilion-dk); }
/* T8.1 就地退出：与前面的账户链接用竖线分隔，视觉上更弱，避免误点 */
.xj-acc-bar__out { padding-left: 13px; border-left: 1px solid var(--xj-line-2); color: var(--xj-faint); }
.xj-acc-bar__out:hover { color: var(--xj-vermilion-dk); }
.xj-acc-bar__vip {
  display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;
  font-size: 12px; font-weight: 700; letter-spacing: .04em;
  padding: 4px 14px; border-radius: 999px; color: #fff6ec;
  background: linear-gradient(180deg, #c3903b, #a9852f);
  box-shadow: 0 4px 12px rgba(169, 133, 47, .32);
  transition: transform .15s, box-shadow .15s;
}
.xj-acc-bar__vip:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(169, 133, 47, .4); color: #fff6ec; }
.xj-acc-bar__vip.is-on { background: rgba(169, 133, 47, .12); color: #8a6a1f; box-shadow: none; border: 1px solid rgba(169, 133, 47, .42); }
.xj-badge-vip { font-weight: 800; letter-spacing: .1em; }
.xj-acc-bar__date { font-weight: 500; opacity: .85; font-size: 11.5px; }

/* ---------- 13.10 T5.3 VIP 对标页 ---------- */
.xj-vip-tiers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 24px 0 8px; }
.xj-vip-card {
  border: 1px solid var(--xj-line-3); border-radius: 16px; padding: 26px 22px 22px;
  background: var(--xj-surface); text-align: center;
}
.xj-vip-card.is-hot { border-color: rgba(169, 133, 47, .55); box-shadow: 0 12px 30px rgba(169, 133, 47, .14); }
.xj-vip-card__tier { font-size: 12.5px; letter-spacing: .2em; color: var(--xj-muted); }
.xj-vip-card__price { margin: 10px 0 4px; color: var(--xj-vermilion-dk); font-family: var(--xj-serif); }
.xj-vip-card__price .cur { font-size: 20px; vertical-align: 6px; }
.xj-vip-card__price .num { font-size: 42px; font-weight: 700; letter-spacing: -.02em; }
.xj-vip-card__sub { font-size: 13px; color: var(--xj-muted); }
.xj-vip-card__save { margin-top: 8px; font-size: 12px; font-weight: 700; color: #a9852f; min-height: 18px; }
.xj-vip-card__per { font-size: 12px; color: var(--xj-faint); margin: 4px 0 16px; }
.xj-vip-cmp { margin: 26px 0 28px; overflow-x: auto; }
.xj-vip-cmp__table { width: 100%; border-collapse: collapse; min-width: 560px; }
.xj-vip-cmp__table th, .xj-vip-cmp__table td { padding: 12px 14px; border-bottom: 1px solid var(--xj-line-2); font-size: 14px; text-align: left; }
.xj-vip-cmp__table thead th { font-size: 12.5px; letter-spacing: .1em; color: var(--xj-muted); font-weight: 600; }
.xj-vip-cmp__table tbody th { font-weight: 500; color: var(--xj-ink-2); width: 46%; }
.xj-vip-cmp__table .is-vip { background: rgba(169, 133, 47, .07); color: var(--xj-ink); font-weight: 600; }
/* ---------- 13.12 T6.5 分数来源标注（趣味指数） ---------- */
.xj-bar__tag {
  display: inline-block; margin-left: 8px; padding: 1px 7px; border-radius: 999px;
  font-style: normal; font-size: 11px; letter-spacing: .04em; vertical-align: 1px;
  color: #8a6a1f; background: rgba(169, 133, 47, .12); border: 1px solid rgba(169, 133, 47, .32);
}

/* ---------- 13.11 T6.4 分享区块 ---------- */
.xj-share { margin-top: 26px; padding: 20px 18px; border: 1px solid var(--xj-line-3); border-radius: 14px; background: rgba(247, 243, 233, .55); }
.xj-share__title { margin: 0 0 12px; font-size: 13px; letter-spacing: .18em; color: var(--xj-muted); }
.xj-share__acts { display: flex; flex-wrap: wrap; gap: 8px; }
.xj-share__btn {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; padding: 7px 14px; border-radius: 999px;
  border: 1px solid var(--xj-line-3); background: var(--xj-surface); color: var(--xj-ink-2);
  text-decoration: none; cursor: pointer; transition: all .15s;
}
.xj-share__btn:hover { border-color: rgba(176, 58, 46, .45); color: var(--xj-vermilion-dk); transform: translateY(-1px); }
.xj-share__btn.is-img { background: linear-gradient(180deg, #c3903b, #a9852f); border-color: transparent; color: #fff6ec; font-weight: 700; }
.xj-share__btn.is-img:hover { color: #fff6ec; box-shadow: 0 8px 18px rgba(169, 133, 47, .32); }
.xj-share__tip { margin: 10px 0 0; font-size: 11.8px; line-height: 1.8; color: var(--xj-faint); }
.xj-share__preview { margin-top: 16px; }
.xj-share__imgs { display: flex; flex-wrap: wrap; gap: 18px; justify-content: center; }
.xj-share__card { width: min(260px, 44%); text-align: center; }
.xj-share__card img { width: 100%; border-radius: 10px; border: 1px solid var(--xj-line-2); display: block; }
.xj-share__lab { margin: 0 0 6px; font-size: 11.5px; letter-spacing: .1em; color: var(--xj-muted); }
.xj-share__dl { display: inline-block; margin-top: 8px; font-size: 12px; color: var(--xj-vermilion-dk); text-decoration: underline; }

@media (max-width: 760px) {
  .xj-vip-tiers { grid-template-columns: 1fr; }
  .xj-acc-bar { gap: 8px; }
  .xj-acc-bar__link { font-size: 11.5px; }
  .xj-acc-bar__vip { padding: 4px 10px; font-size: 11.5px; }
  .xj-share__card { width: 100%; }
}

/* ==========================================================================
   T-L4 幸运吉物 · 器物谱（v3.7.0）
   T-L3 的「3 主推大卡 + 12 件谱」被用户复核推翻：独立幸运吉物页应按丙方案
   （纯器物谱、无主推），首页也不要「本期推荐」行。
   本版：**无主推、无卡片**，15 件全部进谱，5 列 × 3 行正好排满。
   🔴 「卡片」容器本身是表单感的主要来源 → 不用卡片、不用边框，
      只有大图形 + 品名 + 「五行 · 用途」小字，靠留白与细线分段。
   🔴 顶部筛选控件已删除（15 件不需要筛选）；用途信息保留在每件标注里。
   ⚠️ 五行必须**五色分别指定**（图形底衬 / 标注色）：统一用朱砂红会让
      「金/木/水」看起来都是火。改这里之前先看下面这组 `--wood/--fire/…`。
   ========================================================================== */

/* 仅供读屏的区块标题（视觉标题由页面 hero 的 h1 承担） */
.xj-sr-only{
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* 谱首小标 + 细线 */
.xj-lucky__resthead{ display: flex; align-items: center; gap: 12px; margin: 0 0 22px; }
.xj-lucky__restlabel{ font-size: 11.5px; letter-spacing: .26em; color: var(--xj-faint); }
.xj-lucky__restline{ flex: 1; height: 1px; background: var(--xj-line-2); }

.xj-lucky__rest{
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 22px 16px;
}
.xj-lucky__restcard{ display: block; text-decoration: none; color: inherit; text-align: center; }
.xj-lucky__restart{
  width: 54px; height: 54px; border-radius: 50%; margin: 0 auto 12px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(107, 99, 87, .08);
  transition: transform .2s;
}
.xj-lucky__restart svg{ width: 29px; height: 29px; display: block; }
.xj-lucky__restcard:hover .xj-lucky__restart{ transform: scale(1.07); }
.xj-lucky__restname{
  margin: 0 0 4px; font-size: 13.5px; font-weight: 400; line-height: 1.5;
  transition: color .2s;
}
.xj-lucky__restcard:hover .xj-lucky__restname{ color: var(--xj-vermilion-dk); }
.xj-lucky__restuse{ margin: 0; font-size: 11.5px; letter-spacing: .06em; color: var(--xj-brass); }

/* 五行五色（图形底衬 + 「五行 · 用途」标注色）
   🔴 必须逐色指定：统一色会让金/木/水都看成火。 */
.xj-lucky__restart--wood { background: rgba(65, 88, 78, .10); }
.xj-lucky__restart--fire { background: rgba(176, 58, 46, .09); }
.xj-lucky__restart--earth{ background: rgba(169, 133, 47, .12); }
.xj-lucky__restart--metal{ background: rgba(107, 99, 87, .10); }
.xj-lucky__restart--water{ background: rgba(43, 74, 134, .09); }
.xj-lucky__restuse--wood { color: #41584e; }
.xj-lucky__restuse--fire { color: #b03a2e; }
.xj-lucky__restuse--earth{ color: #8a6d1f; }
.xj-lucky__restuse--metal{ color: #6b6357; }
.xj-lucky__restuse--water{ color: #2b4a86; }

/* 压缩版「原则」行（原 3 张原则卡，整块不占一屏） */
.xj-lucky__facts{
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
  gap: 9px 26px; max-width: 760px; margin: 0 auto;
  font-size: 12.8px; color: var(--xj-muted);
}
.xj-lucky__fact{ display: inline-flex; align-items: center; gap: 7px; }
.xj-lucky__fact .xj-ico{ color: var(--xj-vermilion); }

@media (max-width: 1180px){
  .xj-lucky__rest{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 760px){
  .xj-lucky__rest{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .xj-lucky__facts{ justify-content: flex-start; gap: 8px 18px; }
}
@media (max-width: 480px){
  .xj-lucky__rest{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ==========================================================================
   T63 · 工具页底部「一排四件幸运吉物」（shortcode [xuanji_lucky_row]）
   复用器物谱卡片，仅固定为 4 列并加上标题/更多链接。
   🔴 特异度高于 .xj-lucky__rest，故必须在下面重写自己的断点，
      否则 760px 以下仍会被强制 4 列。
   ========================================================================== */
.xj-luckyrow__head { text-align: center; margin: 0 0 30px; }
/* 2026-09-30 用户反馈「标题两行啰嗦」：去掉副标题，只留「幸运吉物 · 吉祥甄选」一行，
   两侧各加一段短金线做「章节标」观感（线可收缩，窄屏不会把文字挤出去）。 */
.xj-luckyrow__title {
  display: flex; align-items: center; justify-content: center; gap: 18px;
  margin: 0; font-family: var(--xj-serif); font-size: 21px; font-weight: 600;
  letter-spacing: .10em; color: var(--xj-ink);
}
.xj-luckyrow__title::before,
.xj-luckyrow__title::after {
  content: ''; height: 1px; flex: 0 1 56px; min-width: 16px;
  background: linear-gradient(90deg, transparent, rgba(169, 133, 47, .6));
}
.xj-luckyrow__title::after {
  background: linear-gradient(90deg, rgba(169, 133, 47, .6), transparent);
}
.xj-lucky__rest--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.xj-luckyrow__more { margin: 28px 0 0; text-align: center; }
.xj-luckyrow__more a {
  display: inline-block; font-size: 13px; letter-spacing: .04em;
  color: var(--xj-vermilion); text-decoration: none;
  border-bottom: 1px solid transparent; transition: border-color .2s;
}
.xj-luckyrow__more a:hover { border-color: currentColor; }
@media (max-width: 760px){
  .xj-lucky__rest--four { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 14px; }
  .xj-luckyrow__title { font-size: 18px; letter-spacing: .08em; gap: 12px; }
  .xj-luckyrow__title::before,
  .xj-luckyrow__title::after { flex-basis: 30px; }
}

/* ==========================================================================
   T37 · 用户支持中心 & 留言板
   ========================================================================== */
/* FAQ（按钮折叠式，JS 控制 max-height） */
.xj-faq__item { border-bottom: 1px solid var(--xj-line-2); }
.xj-faq__q {
  width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 21px 40px 21px 0; position: relative; cursor: pointer; text-align: left;
  background: transparent; border: 0; appearance: none; box-shadow: none !important;
  font-family: var(--xj-serif); font-size: 15.4px; letter-spacing: .02em; color: var(--xj-ink);
  transition: color .22s, background-color .22s;
}
/* T44：这里只写 color 是不够的 —— Astra 的 `button:hover` / `button:focus`（(0,1,1)）会把整条
   刷成深蓝 var(--ast-global-color-1) = #045cb4（实测 computed rgb(4,92,180)）。
   用 (0,3,0) 压过它，改成浅浅蓝；连 :focus 一起兜住，否则鼠标点一下也会留下深蓝直到失焦。
   `!important` 是为了跟同源补丁 .xj-auth__eye 一样抗住 Astra 动态 CSS 将来的变动。 */
.xj-faq .xj-faq__q:hover,
.xj-faq .xj-faq__q:focus { background: var(--xj-blue-wash) !important; }
.xj-faq__q:hover { color: var(--xj-vermilion-lt); }
.xj-faq__ic {
  position: absolute; right: 8px; top: 50%; width: 11px; height: 11px; transform: translateY(-50%) rotate(0deg);
  border-right: 1.6px solid var(--xj-vermilion); border-bottom: 1.6px solid var(--xj-vermilion);
  transition: transform .26s;
}
.xj-faq__q.is-open .xj-faq__ic { transform: translateY(-65%) rotate(225deg); }
.xj-faq__q.is-open { color: var(--xj-vermilion-lt); }
.xj-faq__body { max-height: 0; overflow: hidden; transition: max-height .3s ease; padding: 0 40px 0 0; }
.xj-faq__body p { margin: 0 0 22px; font-size: 13.8px; line-height: 2.05; color: var(--xj-muted); }

/* 支持 / 留言 表单 */
.xj-sup-form { margin: 0; }
.xj-sup-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.xj-sup-form label { display: block; margin: 0 0 15px; font-size: 12.5px; font-weight: 600; letter-spacing: .04em; color: var(--xj-ink-2); }
.xj-sup-check { display: flex; align-items: center; gap: 9px; font-weight: 400; color: var(--xj-muted); cursor: pointer; }
.xj-sup-form input[type="text"], .xj-sup-form input[type="email"], .xj-sup-form select, .xj-sup-form textarea {
  width: 100%; box-sizing: border-box; margin-top: 7px; background: #fff; border: 1px solid var(--xj-line-3); border-radius: 12px;
  padding: 12px 14px; font-family: var(--xj-sans); font-size: 14.5px; color: var(--xj-ink); line-height: 1.6; transition: border-color .2s, box-shadow .2s;
}
.xj-sup-form textarea { resize: vertical; }
.xj-sup-form input:focus, .xj-sup-form select:focus, .xj-sup-form textarea:focus {
  outline: 0; border-color: var(--xj-vermilion); box-shadow: 0 0 0 3px var(--xj-vermilion-glow);
}
.xj-sup-check input[type="checkbox"] { width: 16px; height: 16px; margin: 0; }
.xj-sup-form .xj-btn { margin-top: 4px; }

/* 提示条变体 */
.xj-note--ok { border-color: rgba(65,127,111,.32); background: rgba(65,127,111,.08); color: #2f5a4d; }
.xj-note--ok::before { content: "\2713"; color: #417f6f; }
.xj-note--err { border-color: rgba(176,58,46,.32); background: rgba(176,58,46,.08); color: #7f251b; }
.xj-note--err::before { content: "!"; }

/* 留言墙 */
.xj-mb-wall { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.xj-mb-card { padding: 18px 20px; border: 1px solid var(--xj-line-2); border-radius: 14px; background: var(--xj-surface); box-shadow: var(--xj-shadow-sm); }
.xj-mb-head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.xj-mb-ava { flex: none; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--xj-vermilion); color: #fff; font-family: var(--xj-serif); font-size: 16px; }
.xj-mb-nick { font-weight: 600; color: var(--xj-ink); font-size: 14px; }
.xj-mb-tag { margin-left: auto; font-size: 11px; color: var(--xj-faint); background: var(--xj-surface-2); border: 1px solid var(--xj-line-2); border-radius: 20px; padding: 2px 9px; }
.xj-mb-text { margin: 0 0 10px; font-size: 13.6px; line-height: 1.9; color: var(--xj-ink-2); }
.xj-mb-reply { padding: 10px 12px; border-radius: 10px; background: rgba(65,127,111,.08); font-size: 13px; line-height: 1.8; color: #2f5a4d; }
.xj-mb-reply b { color: #2f5a4d; }
@media (max-width: 760px) { .xj-mb-wall { grid-template-columns: 1fr; } .xj-sup-row { grid-template-columns: 1fr; } }

/* ===== T43：留言板多层对话树 ===== */
.xj-mb-thread { margin: 12px 0 0; }
.xj-mb-thread--mine { margin: 10px 0 4px; }
.xj-mb-node { padding: 10px 12px; border-radius: 10px; border: 1px solid var(--xj-line-2); background: var(--xj-surface-2); margin-bottom: 8px; }
.xj-mb-node--admin { border-left: 3px solid #a9852f; background: rgba(169, 133, 47, .07); }
.xj-mb-node--user { border-left: 3px solid #7a9cc6; background: rgba(122, 156, 198, .07); }
.xj-mb-node__hd { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; flex-wrap: wrap; }
.xj-mb-node__who { font-size: 12.5px; font-weight: 600; color: var(--xj-ink); }
.xj-mb-node__when { font-size: 11.5px; color: var(--xj-faint); }
.xj-mb-node__bd { font-size: 13.2px; line-height: 1.85; color: var(--xj-ink-2); }
.xj-mb-ava--sm { width: 22px; height: 22px; font-size: 11px; }
.xj-mb-ava--adm { background: #a9852f; }

/* ===== T43：会员中心「我的咨询与留言」 ===== */
/* 注意：会员中心在 Astra .entry-content 内，h/p 的 margin 会被 (0,1,1) 压掉 →
   凡作用在标题与段落上的规则一律写成 (0,2,0) 前缀形式。 */
.xj-acc-mine { margin: 0 0 24px; padding: 20px; border: 1px solid var(--xj-line-2); border-radius: 14px; background: var(--xj-surface); box-shadow: var(--xj-shadow-sm); }
.xj-acc-mine .xj-acc-mine__h { margin: 0 0 14px; font-size: 16px; color: var(--xj-ink); }
.xj-acc-mine .xj-acc-mine__sub { margin: 18px 0 10px; font-size: 14px; color: var(--xj-ink); }
.xj-acc-mine .xj-acc-mine__sub:first-of-type { margin-top: 0; }
.xj-acc-mine .xj-acc-mine__empty { margin: 0; font-size: 13.5px; line-height: 1.9; color: var(--xj-muted); }
.xj-acc-mine__item { padding: 14px 16px; border: 1px solid var(--xj-line-2); border-radius: 12px; background: var(--xj-surface-2); margin-bottom: 12px; }
.xj-acc-mine__hd { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.xj-acc-mine__hd b { font-size: 13.5px; color: var(--xj-ink); }
.xj-acc-mine__st { font-size: 11px; color: #fff; border-radius: 5px; padding: 2px 8px; }
.xj-acc-mine__when { font-size: 11.5px; color: var(--xj-faint); margin-left: auto; }
.xj-acc-mine .xj-acc-mine__body { margin: 0; font-size: 13.4px; line-height: 1.9; color: var(--xj-ink-2); }
.xj-acc-mine__reply { margin: 12px 0 0; }
.xj-acc-mine__reply textarea { width: 100%; box-sizing: border-box; padding: 10px 12px; border: 1px solid var(--xj-line-2); border-radius: 10px; font-size: 13.4px; font-family: inherit; background: var(--xj-surface); color: var(--xj-ink); }
.xj-acc-mine .xj-acc-mine__reply p { margin: 10px 0 0; }
@media (max-width: 760px) {
	.xj-acc-mine { padding: 16px 14px; }
	.xj-acc-mine__item { padding: 12px; }
	.xj-mb-node { padding: 9px 10px; }
}

/* 在线取名 · 价值阶梯（T37 增强） */
/* T38c：三档权益并排一行（原两列 → 三列；窄屏三卡竖排，比「2+1」整齐） */
.xj-vl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; max-width: 1060px; margin: 0 auto; }
.xj-vl__card { position: relative; padding: 26px 26px 28px; border-radius: 16px; border: 1px solid var(--xj-line-2); background: var(--xj-surface); box-shadow: var(--xj-shadow-sm); display: flex; flex-direction: column; }
.xj-vl__card--vip { border-color: var(--xj-brass); background: linear-gradient(165deg, #fffaf0, #fffdf9); box-shadow: var(--xj-shadow); }
.xj-vl__tag { align-self: flex-start; font-size: 12px; letter-spacing: .08em; padding: 4px 12px; border-radius: 20px; background: var(--xj-surface-2); color: var(--xj-muted); border: 1px solid var(--xj-line-2); }
.xj-vl__price { font-family: var(--xj-serif); font-size: 30px; color: var(--xj-ink); margin: 14px 0 8px; }
.xj-vl__price--star { display: flex; align-items: center; gap: 8px; color: var(--xj-vermilion); font-size: 22px; }
.xj-vl__price--star .xj-ico { color: var(--xj-brass); }
.xj-vl__desc { font-size: 13.5px; line-height: 1.85; color: var(--xj-muted); margin: 0 0 18px; flex: 1; }
.xj-vl__card--vip .xj-btn { align-self: flex-start; }
@media (max-width: 980px) { .xj-vl { grid-template-columns: 1fr; max-width: 560px; } }

/* ==========================================================================
   T39 · 2026-09-29 取名结果页拆分 + 取名独立报告页（/qu-ming-bao-gao/）
   结果页只留「推荐名 + 四柱命盘 · 详批概览」，此处给「查看完整报告」入口按钮；
   报告页要「排版丰富、层次分明、看着高大上」，故自带一套 xj-nmr-* 版式。
   ========================================================================== */

/* ---- 结果页 · 查看完整报告入口 ---- */
.xj-nm-reportcta { margin: 0 0 22px; }
.xj-nm-reportcta .xj-btn { letter-spacing: .06em; }
.xj-nm-reportcta .xj-small { margin: 10px 0 0; text-align: center; }

/* ---- 报告页根：一张长纸，居中，左右留白 ---- */
.xj-nmr {
  max-width: 940px; margin: 0 auto; padding: 8px 0 56px;
  font-family: var(--xj-sans); color: var(--xj-ink);
}

/*
 * 🔴 T41：压制主题边距。
 * Astra 的 `.entry-content h2` / `.entry-content p` 是 (0,1,1)，会盖掉报告页自带
 * 的 `margin:0`（0,1,0）—— 实测 `.xj-nmr__h2` 被塞了 14.7px 下边距、
 * `.xj-nmr__sub` 被塞了 19.84px、`.xj-nmr__note` 19.52px，全页间距被系统性撑大，
 * 每个章节标题下都多出一段不明来路的空隙。
 * 这里用 (0,2,0) 的选择器把**本报告用到的**几个元素按各自需要显式声明一遍
 * （不写通配归零 —— 通配归零同样是 (0,2,0)，会反过来压掉下面各元素自己的间距）。
 */
.xj-nmr .xj-nmr__title   { margin: 14px 0 0; }
.xj-nmr .xj-nmr__h2      { margin: 0; }
.xj-nmr .xj-nmr__sub     { margin: 0; }
.xj-nmr .xj-nmr__rdgname { margin: 0; }
.xj-nmr .xj-nmr__readlead p { margin: 0; }
.xj-nmr .xj-nmr__rdgbrief   { margin: 0 0 26px; }
.xj-nmr .xj-nmr__readtail   { margin: 26px 0 0; }
.xj-nmr .xj-nmr__note       { margin: 12px 0 0; }
.xj-nmr .xj-nmr__funcnote   { margin: 18px auto 0; }
.xj-nmr .xj-nmr__ok p       { margin: 0; }
.xj-nmr .xj-nmr__promo__h   { margin: 0 0 8px; }
.xj-nmr .xj-nmr__promo__p   { margin: 0; }

/* ---- 封面头 ---- */
.xj-nmr__head {
  position: relative; text-align: center; padding: 56px 34px 48px; margin: 0 0 22px;
  border: 1px solid var(--xj-line-2); border-radius: 22px;
  background:
    radial-gradient(120% 90% at 50% 0%, #fffdf7 0%, #fbf6ea 62%, #f6efe0 100%);
  box-shadow: var(--xj-shadow);
}
.xj-nmr__head::before,
.xj-nmr__head::after {
  content: ""; position: absolute; left: 22px; right: 22px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--xj-brass), transparent); opacity: .5;
}
.xj-nmr__head::before { top: 14px; }
.xj-nmr__head::after { bottom: 14px; }
.xj-nmr__eyebrow {
  display: inline-block; font-size: 11.5px; letter-spacing: .34em; text-indent: .34em;
  color: var(--xj-brass); text-transform: uppercase;
}
.xj-nmr__title {
  margin: 14px 0 0; font-family: var(--xj-serif); font-weight: 700;
  font-size: clamp(26px, 4vw, 40px); line-height: 1.3; letter-spacing: .02em;
}
.xj-nmr__rule { display: flex; align-items: center; justify-content: center; margin: 18px 0 0; }
.xj-nmr__rule i {
  display: block; width: 76px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--xj-gold), transparent);
}
.xj-nmr__rule i::after {
  content: ""; display: block; width: 6px; height: 6px; margin: -3.5px auto 0;
  transform: rotate(45deg); background: var(--xj-gold); border-radius: 1px;
}
.xj-nmr__names {
  display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; gap: 8px 16px;
  margin: 28px auto 0; padding: 15px 24px; max-width: 680px;
  border: 1px dashed var(--xj-line); border-radius: 12px; background: rgba(255, 253, 249, .74);
}
.xj-nmr__names__lead { font-size: 12px; letter-spacing: .1em; color: var(--xj-muted); }
.xj-nmr__names__list { font-family: var(--xj-serif); font-size: 19px; color: var(--xj-vermilion-lt); letter-spacing: .06em; }
.xj-nmr__meta {
  list-style: none; margin: 26px 0 0; padding: 0;
  display: flex; flex-wrap: wrap; justify-content: center; gap: 10px;
}
.xj-nmr__meta li {
  display: inline-flex; align-items: baseline; gap: 7px; padding: 8px 16px;
  border: 1px solid var(--xj-line-2); border-radius: 999px; background: var(--xj-surface);
  font-size: 12.8px;
}
.xj-nmr__meta li i { font-style: normal; color: var(--xj-muted); }
.xj-nmr__meta li b { color: var(--xj-ink); font-weight: 600; }

/* ---- 章节卡 ---- */
.xj-nmr__sec {
  position: relative; margin: 0 0 22px; padding: 38px 40px 40px;
  border: 1px solid var(--xj-line-2); border-radius: 20px;
  background: var(--xj-surface); box-shadow: var(--xj-shadow-sm);
}
.xj-nmr__sechead { margin: 0 0 26px; }

/* ---- T40：命盘要素 + 综合指标 并排一行 ----
   auto-fit + minmax：两块都在 → 双列；只有一块 → 该块铺满整行
   （写死 1fr 1fr 时单块只占左半边，右半边空着，很难看）。 */
.xj-nmr__gridrow {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(330px, 1fr));
  gap: 24px; align-items: stretch; margin: 0 0 22px;
}
.xj-nmr__gridrow > .xj-nmr__sec { margin: 0; }
/* 半幅卡里元素再分两列会挤成一团（标签会折行），一律回到单列 */
.xj-nmr__gridrow .xj-nmr__facts,
.xj-nmr__gridrow .xj-nmr__bars { grid-template-columns: 1fr; }
.xj-nmr__kick {
  display: block; font-size: 11.5px; letter-spacing: .24em; color: var(--xj-brass); margin-bottom: 8px;
}
.xj-nmr__h2 {
  position: relative; margin: 0; padding-left: 14px;
  font-family: var(--xj-serif); font-size: clamp(19px, 2.1vw, 24px); font-weight: 700; line-height: 1.4;
}
.xj-nmr__h2::before {
  content: ""; position: absolute; left: 0; top: .18em; bottom: .18em; width: 3px; border-radius: 2px;
  background: linear-gradient(180deg, var(--xj-vermilion), var(--xj-brass));
}
.xj-nmr__sub { margin: 0; font-size: 13.4px; line-height: 1.95; color: var(--xj-muted); }

/* ---- 命盘要素 ---- */
/*
 * T41：与右栏「综合指标」齐高。
 * 实测（1280 视口）：命盘要素 384px、综合指标 344px —— 差 40px 全在行高上
 * （命盘要素行 52px×4 + 12px 间距 vs 指标行 36px×4 + 20px 间距）。
 * 把行内边距 14px→11px、间距 12px→10px，行高收到 46px，两卡即齐平。
 */
.xj-nmr__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.xj-nmr__fact {
  display: flex; align-items: baseline; justify-content: space-between; gap: 14px;
  padding: 11px 16px; border: 1px solid var(--xj-line-2); border-radius: 12px;
  background: var(--xj-surface-2); font-size: 13.4px;
}
.xj-nmr__fact span { color: var(--xj-muted); }
.xj-nmr__fact b { color: var(--xj-ink); font-weight: 600; text-align: right; }

/* ---- 指标条 ---- */
.xj-nmr__bars { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 28px; }
.xj-nmr__bar__top { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 7px; font-size: 13.4px; }
.xj-nmr__bar__top em { font-style: normal; font-size: 11.5px; color: var(--xj-faint); margin-left: 6px; }
.xj-nmr__bar__top b { color: var(--xj-vermilion-lt); font-weight: 700; }
.xj-nmr__bar__track { height: 7px; border-radius: 99px; background: var(--xj-surface-3); overflow: hidden; }
.xj-nmr__bar__track i {
  display: block; height: 100%; border-radius: 99px;
  background: linear-gradient(90deg, var(--xj-brass), var(--xj-vermilion));
}

/* ---- 免费解读（扁平回落：结构化副本拿不到时才会用到） ---- */
.xj-nmr__read p {
  position: relative; margin: 0 0 16px; padding: 0 0 0 34px;
  font-size: 14.6px; line-height: 2.05; color: var(--xj-ink-2);
}
.xj-nmr__read p:last-child { margin-bottom: 0; }
.xj-nmr__pno {
  position: absolute; left: 0; top: 3px;
  display: grid; place-items: center; width: 22px; height: 22px;
  font-family: var(--xj-serif); font-size: 12px; color: var(--xj-vermilion-lt);
  background: rgba(176, 58, 46, .07); border: 1px solid var(--xj-line); border-radius: 6px;
}

/* ---- T40：免费解读区 · 无卡片的章节区 + 逐名分组卡 ----
   原来是一串 29 段无层级的平文，密密麻麻看不出重点；
   现改为「章节标题 + 导语 + 每人一张分组卡 + 收尾」，
   卡内再分「一句话总评」与「逐条解说（编号）」两层。
   这里刻意不给外层套卡片：三个名字的卡与挂件卡平铺同级，
   视觉上是并列的分节，而不是卡里再套卡。 */
.xj-nmr__readzone { margin: 0 0 22px; }
.xj-nmr__readzone .xj-nmr__sechead { padding: 0 2px; }

.xj-nmr__readlead {
  display: flex; gap: 14px; align-items: flex-start;
  margin: 0 0 32px; padding: 20px 24px;
  border: 1px dashed var(--xj-line-2); border-left: 3px solid var(--xj-brass);
  border-radius: 4px 14px 14px 4px; background: var(--xj-surface-2);
}
.xj-nmr__readlead i {
  flex: 0 0 auto; margin-top: 4px; font-style: normal; white-space: nowrap;
  font-size: 11.5px; letter-spacing: .16em; color: var(--xj-brass);
}
.xj-nmr__readlead p { margin: 0; font-size: 13.6px; line-height: 2.05; color: var(--xj-ink-2); }

.xj-nmr__rdg {
  margin: 0 0 22px; padding: 28px 32px 32px;
  border: 1px solid var(--xj-line-2); border-radius: 16px;
  background: linear-gradient(180deg, #fffdfa, var(--xj-surface));
  box-shadow: var(--xj-shadow-sm);
}
.xj-nmr__rdg:last-of-type { margin-bottom: 0; }
.xj-nmr__rdghead {
  display: flex; align-items: center; gap: 14px;
  padding: 0 0 20px; margin: 0 0 24px; border-bottom: 1px solid var(--xj-line-2);
}
.xj-nmr__rdgnum {
  flex: 0 0 auto; display: grid; place-items: center; width: 42px; height: 42px;
  font-family: var(--xj-serif); font-size: 20px; font-weight: 700; color: #fff;
  background: linear-gradient(140deg, var(--xj-vermilion), var(--xj-brass));
  border-radius: 13px; box-shadow: 0 6px 16px rgba(169, 133, 47, .26);
}
.xj-nmr__rdgname {
  flex: 1 1 auto; min-width: 0; margin: 0;
  font-family: var(--xj-serif); font-size: clamp(22px, 2.4vw, 28px); font-weight: 700;
  letter-spacing: .08em; line-height: 1.35; color: var(--xj-ink);
}
.xj-nmr__rdgscore {
  flex: 0 0 auto; display: flex; align-items: baseline; gap: 3px;
  padding: 7px 15px; border: 1px solid var(--xj-line); border-radius: 999px;
  background: rgba(176, 58, 46, .05);
}
.xj-nmr__rdgscore b { font-family: var(--xj-serif); font-size: 20px; color: var(--xj-vermilion-lt); }
.xj-nmr__rdgscore i { font-style: normal; font-size: 11.5px; color: var(--xj-muted); }

.xj-nmr__rdgbrief {
  display: flex; gap: 12px; align-items: flex-start;
  margin: 0 0 26px; padding: 18px 22px; border-radius: 12px;
  background: var(--xj-surface-2); font-size: 14.2px; line-height: 2.05; color: var(--xj-ink);
}
.xj-nmr__rdgbrief i {
  flex: 0 0 auto; margin-top: 4px; font-style: normal; white-space: nowrap;
  font-size: 11.5px; letter-spacing: .12em; color: var(--xj-brass);
}
.xj-nmr__rdgbrief span { flex: 1 1 auto; min-width: 0; }

.xj-nmr__rdgitemslab {
  margin: 0 0 16px; padding: 0 0 0 2px;
  font-size: 11.5px; letter-spacing: .18em; color: var(--xj-muted);
}
.xj-nmr__rdgitems { list-style: none; margin: 0; padding: 0; }
.xj-nmr__rdgitems li {
  display: flex; align-items: flex-start; gap: 12px; margin: 0 0 20px;
}
.xj-nmr__rdgitems li:last-child { margin-bottom: 0; }
.xj-nmr__rdgno {
  flex: 0 0 auto; display: grid; place-items: center; width: 24px; height: 24px; margin-top: 5px;
  font-family: var(--xj-serif); font-size: 12.5px; color: var(--xj-vermilion-lt);
  background: rgba(176, 58, 46, .07); border: 1px solid var(--xj-line); border-radius: 7px;
}
/* 条目开头常带「某字」——抽成字牌做视觉锚点，正文一字不删 */
.xj-nmr__rdgchip {
  flex: 0 0 auto; display: grid; place-items: center; width: 32px; height: 32px; margin-top: 1px;
  font-family: var(--xj-serif); font-size: 18px; color: var(--xj-brass);
  border: 1px solid var(--xj-line); border-radius: 10px; background: #fffdf6;
}
.xj-nmr__rdgtx {
  flex: 1 1 auto; min-width: 0;
  font-size: 14.4px; line-height: 2.1; color: var(--xj-ink-2);
}

.xj-nmr__readtail {
  margin: 26px 0 0; padding: 0 2px;
  font-size: 13.2px; line-height: 2; color: var(--xj-muted);
}

/* ---- 锁定章节 ---- */
.xj-nmr__sec--locked { background: linear-gradient(180deg, #fdfaf3, var(--xj-surface)); }
.xj-nmr__locked { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 26px; }
.xj-nmr__locked li {
  position: relative; padding: 0 0 0 28px; font-size: 13.6px; line-height: 2.05; color: var(--xj-ink-2);
}
.xj-nmr__lock {
  position: absolute; left: 0; top: .32em; display: inline-flex;
  color: var(--xj-faint-deco);
}

/* ---- 幸运吉物推荐挂件（一行四个） ---- */
/*
 * T41：整块压到约一半高度。实测原状 674px（单卡 301px）——
 * 卡里最高的是三行简介（69px）与 58px 的圆形图标，加上 22/18 的内边距。
 * 这里：内边距 22/18→14/11、图标 58→38、简介压到 2 行截断（-webkit-line-clamp）、
 * 标题与留白同步收窄；副标题单行可容（内容宽 872px，文案约 690px）。
 * 注意 `.xj-nmr__pickcta{margin-top:auto}` 要保留 —— 四张卡简介行数不一，
 * 靠它把「在 Amazon 查看」压齐到卡底，否则四行 CTA 高低不齐。
 */
.xj-nmr__sec--picks { background: linear-gradient(180deg, #fffdf7, #fbf6ea); padding: 28px 34px 30px; }
.xj-nmr__sec--picks .xj-nmr__sechead { margin-bottom: 16px; }
.xj-nmr__sec--picks .xj-nmr__h2 { font-size: clamp(18px, 1.9vw, 21px); }
.xj-nmr__sec--picks .xj-nmr__sub { font-size: 12.4px; line-height: 1.75; }
.xj-nmr__picks { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.xj-nmr__pick {
  display: flex; flex-direction: column; align-items: center; text-align: center; gap: 5px;
  padding: 14px 11px 11px; border: 1px solid var(--xj-line-2); border-radius: 13px;
  background: var(--xj-surface); box-shadow: var(--xj-shadow-sm);
  text-decoration: none !important; transition: transform .26s, box-shadow .26s, border-color .26s;
}
.xj-nmr__pick:hover { transform: translateY(-4px); box-shadow: var(--xj-shadow); border-color: var(--xj-brass); }
.xj-nmr__pickico {
  display: grid; place-items: center; width: 38px; height: 38px; margin-bottom: 1px;
  border-radius: 50%; background: rgba(169, 133, 47, .10); border: 1px solid rgba(169, 133, 47, .28);
}
.xj-nmr__pickico svg { width: 21px; height: 21px; }
.xj-nmr__pickname { font-family: var(--xj-serif); font-size: 14.5px; font-weight: 700; color: var(--xj-ink); letter-spacing: .02em; line-height: 1.35; }
.xj-nmr__pickuse { font-size: 10.6px; letter-spacing: .05em; line-height: 1.4; color: var(--xj-brass); }
.xj-nmr__pickdesc {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
  font-size: 11px; line-height: 1.55; color: var(--xj-muted);
}
.xj-nmr__pickcta { margin-top: auto; padding-top: 6px; font-size: 11.4px; font-weight: 600; color: var(--xj-vermilion-lt); }
/* 五行识别色（与幸运吉物页同一套语义，别改成统一色） */
.xj-nmr__pick--wood  .xj-nmr__pickico { background: rgba(65, 88, 78, .10);  border-color: rgba(65, 88, 78, .30); }
.xj-nmr__pick--wood  .xj-nmr__pickuse { color: #41584e; }
.xj-nmr__pick--fire  .xj-nmr__pickico { background: rgba(176, 58, 46, .10); border-color: rgba(176, 58, 46, .30); }
.xj-nmr__pick--fire  .xj-nmr__pickuse { color: var(--xj-vermilion-lt); }
.xj-nmr__pick--earth .xj-nmr__pickico { background: rgba(169, 133, 47, .10); border-color: rgba(169, 133, 47, .30); }
.xj-nmr__pick--earth .xj-nmr__pickuse { color: #7a6122; }
.xj-nmr__pick--metal .xj-nmr__pickico { background: rgba(120, 124, 132, .12); border-color: rgba(120, 124, 132, .32); }
.xj-nmr__pick--metal .xj-nmr__pickuse { color: #5f636b; }
.xj-nmr__pick--water .xj-nmr__pickico { background: rgba(78, 110, 117, .10); border-color: rgba(78, 110, 117, .30); }
.xj-nmr__pick--water .xj-nmr__pickuse { color: var(--xj-azure); }
/* T41：声明行与副标题都已移除，页脚只剩「查看全部幸运吉物」一个链接 */
.xj-nmr__picksfoot { margin-top: 12px; text-align: center; }
.xj-nmr__more { font-size: 12px; color: var(--xj-vermilion-lt); text-decoration: none !important; }
.xj-nmr__more:hover { text-decoration: underline !important; }

/* ---- 订阅引导条（开头 / 中间 / 结尾三处同一组件） ---- */
.xj-nmr__promo {
  display: flex; flex-wrap: wrap; align-items: center; gap: 26px;
  margin: 0 0 22px; padding: 32px 38px;
  border: 1px solid rgba(169, 133, 47, .38); border-radius: 20px;
  background: linear-gradient(135deg, #fffaf0 0%, #fdf4e2 52%, #fbf0dc 100%);
  box-shadow: var(--xj-shadow-sm);
}
.xj-nmr__promo__body { flex: 1 1 340px; min-width: 0; }
.xj-nmr__promo__kick { display: block; font-size: 11.5px; letter-spacing: .24em; color: var(--xj-brass); margin-bottom: 8px; }
.xj-nmr__promo__h { margin: 0 0 8px; font-family: var(--xj-serif); font-size: clamp(18px, 2vw, 22px); font-weight: 700; line-height: 1.45; }
.xj-nmr__promo__p { margin: 0; font-size: 13.6px; line-height: 1.95; color: var(--xj-ink-2); }
.xj-nmr__promo__list { margin: 0; padding: 0; list-style: none; }
.xj-nmr__promo__list li { position: relative; padding-left: 20px; font-size: 13.6px; line-height: 2; color: var(--xj-ink-2); }
.xj-nmr__promo__list li::before { content: "✓"; position: absolute; left: 0; color: var(--xj-brass); font-weight: 700; }
.xj-nmr__promo__act { display: flex; flex-direction: column; align-items: stretch; gap: 8px; flex: 0 0 auto; }
.xj-nmr__promo__price { text-align: center; font-size: 12.4px; letter-spacing: .08em; color: var(--xj-brass); }
/* 中段那条更轻，避免整页到处是同一块重色 */
.xj-nmr__promo--mid { padding: 20px 26px; background: var(--xj-surface-2); border-color: var(--xj-line-2); }
.xj-nmr__promo--mid .xj-nmr__promo__h { font-size: 17px; }
/* 结尾那条最重：加深底色与描边 */
.xj-nmr__promo--end { border-color: var(--xj-brass); background: linear-gradient(135deg, #fdf3e0 0%, #fbebd2 60%, #f8e5c9 100%); box-shadow: var(--xj-shadow); }

/* ---- 已订阅提示（订阅/VIP 用户看到的那一条） ---- */
.xj-nmr__ok {
  display: flex; flex-wrap: wrap; align-items: center; gap: 16px; justify-content: space-between;
  margin: 0 0 22px; padding: 24px 30px; border-radius: 18px;
  border: 1px solid rgba(65, 127, 111, .30); background: rgba(65, 127, 111, .07);
}
.xj-nmr__ok p { margin: 0; flex: 1 1 300px; font-size: 13.6px; line-height: 2; color: #2f5a4d; }

/* ---- 提示 / 页脚 ---- */
.xj-nmr__note {
  margin: 18px 0 0; padding: 14px 18px; border-radius: 12px;
  border: 1px solid var(--xj-line-2); background: var(--xj-surface-2);
  font-size: 12.2px; line-height: 1.95; color: var(--xj-muted);
}
.xj-nmr__foot { margin: 12px 0 0; padding: 24px 0 0; border-top: 1px solid var(--xj-line-2); text-align: center; }
.xj-nmr__tools { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.xj-nmr__funcnote { margin: 18px auto 0; max-width: 660px; font-size: 12px; line-height: 1.95; color: var(--xj-faint); }

/* ---- 空态 ---- */
.xj-nmr--empty { text-align: center; padding: 40px 24px; border: 1px dashed var(--xj-line-2); border-radius: 18px; background: var(--xj-surface); }

/* ---- 窄屏 ---- */
@media (max-width: 860px) {
  .xj-nmr__picks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .xj-nmr__facts, .xj-nmr__bars, .xj-nmr__locked { grid-template-columns: 1fr; }
  /* 命盘要素 + 综合指标：窄屏回到上下堆叠 */
  .xj-nmr__gridrow { grid-template-columns: 1fr; gap: 0; }
  .xj-nmr__gridrow > .xj-nmr__sec { margin: 0 0 18px; }
  .xj-nmr__sec { padding: 28px 22px 30px; margin-bottom: 18px; }
  .xj-nmr__head { padding: 38px 20px 34px; }
  .xj-nmr__promo { padding: 22px 20px; gap: 16px; }
  .xj-nmr__promo__act { flex: 1 1 100%; }
  .xj-nmr__promo__act .xj-btn { width: 100%; }
  /* 分组卡：标题允许折行，序号/分数不再硬挤一行 */
  .xj-nmr__rdg { padding: 24px 20px 26px; }
  .xj-nmr__rdghead { flex-wrap: wrap; gap: 10px 12px; }
  .xj-nmr__rdgname { flex: 1 1 auto; }
  .xj-nmr__readlead { flex-direction: column; gap: 8px; }
  .xj-nmr__rdgbrief { flex-direction: column; gap: 8px; }
}
@media (max-width: 480px) {
  .xj-nmr__picks { grid-template-columns: 1fr; }
}

/* ---- 打印 / 另存为 PDF：只留报告本体 ---- */
@media print {
  .ast-site-header-wrap, #masthead, #ast-desktop-header, .ast-mobile-header-wrap,
  .site-footer, #colophon, .ast-above-header, .ast-below-header,
  .xj-nmr__tools, .xj-nmr__promo__act, .xj-nm-dl, .xj-breadcrumb, .xj-nmr__more { display: none !important; }
  body { background: #fff !important; }
  .xj-nmr { max-width: none; padding: 0; }
  .xj-nmr__head, .xj-nmr__sec, .xj-nmr__promo, .xj-nmr__ok {
    box-shadow: none !important; break-inside: avoid; page-break-inside: avoid;
  }
  .xj-nmr__promo { border-style: dashed; }
  .xj-nmr__pick { box-shadow: none !important; break-inside: avoid; }
  .xj-cw { display: none !important; }   /* T46：打印时不要悬浮挂件 */
}

/* ==========================================================================
   T46 · 首页右侧「客服咨询」悬浮挂件
   参考：QQ 客服挂件（右侧固定竖排标签 → 点开在左侧展开渠道面板）
   范围：仅首页（含 /tw/ · /en/ 两个语言根页）。输出由 xj_sup_contact_widget()
        控制，CSS 不做页面判定。

   ⚠️ 陷阱（与 T44 同源，务必别退回只写 color 的写法）：
      tab、「复制」行、关闭钮都是原生 <button>。Astra 的 `button:hover` /
      `button:focus`（特异度 (0,1,1)）会把它们整块刷成
      --ast-global-color-1 = #045cb4 深蓝 —— T44 已在「常见问题」条目上
      实测到 computed rgb(4,92,180)。因此这里：
        · 每个「按钮态」都必须显式声明 background；
        · 选择器一律带 .xj-cw 父级，特异度 ≥ (0,2,0) 才压得住 Astra；
        · :hover 与 :focus 都要兜住，否则鼠标点一下会残留深蓝直到失焦。
     本站没有全局 box-sizing 重置（已核对 design.css），故逐个显式声明。
   ========================================================================== */

.xj-cw {
  position: fixed; right: 0; top: 50%;
  transform: translateY(-50%);
  z-index: 9990;                    /* 站点 toast 是 99999，别抢它的层级 */
  font-family: var(--xj-sans);
}

/* ---------- 竖排标签 ---------- */
.xj-cw .xj-cw__tab {
  display: flex; flex-direction: column; align-items: center; gap: 7px;
  box-sizing: border-box;
  width: 78px; margin: 0; padding: 15px 8px 17px;
  border: 1px solid var(--xj-line-2); border-right: 0;
  border-radius: 14px 0 0 14px;
  background: var(--xj-surface); color: var(--xj-ink-2);
  font-family: var(--xj-sans);
  cursor: pointer;
  box-shadow: var(--xj-shadow-sm);
  -webkit-appearance: none; appearance: none;
  transition: background-color .22s, color .22s, box-shadow .22s, transform .22s;
}
.xj-cw .xj-cw__tab:hover,
.xj-cw .xj-cw__tab:focus {
  background: var(--xj-surface-2); color: var(--xj-vermilion-lt);
  border-color: var(--xj-line);
  box-shadow: var(--xj-shadow);
  transform: translateX(-2px);
  outline: none;
}
.xj-cw .xj-cw__tab:focus-visible { outline: 2px solid var(--xj-vermilion); outline-offset: 2px; }
.xj-cw.is-open .xj-cw__tab {
  background: var(--xj-surface-2); color: var(--xj-vermilion-lt); border-color: var(--xj-line);
}

.xj-cw__tabico { display: flex; align-items: center; justify-content: center; width: 26px; height: 26px; }
.xj-cw__tabico .xj-ico { display: block; width: 25px; height: 25px; }
.xj-cw__tabtx {
  font-family: var(--xj-serif); font-size: 13.2px; line-height: 1.15;
  letter-spacing: .06em; text-align: center; white-space: nowrap;
}

/* ---------- 展开面板（落在标签左侧） ---------- */
.xj-cw__panel {
  position: absolute; right: calc(100% + 10px); top: 50%;
  box-sizing: border-box;
  width: 306px; padding: 20px 20px 16px;
  border: 1px solid var(--xj-line-2); border-radius: var(--xj-r);
  background: var(--xj-surface);
  box-shadow: var(--xj-shadow-lg);
  opacity: 0; visibility: hidden; pointer-events: none;
  transform: translateY(-50%) translateX(10px) scale(.97);
  transform-origin: right center;
  transition: opacity .24s ease, transform .24s ease, visibility .24s;
}
.xj-cw.is-open .xj-cw__panel {
  opacity: 1; visibility: visible; pointer-events: auto;
  transform: translateY(-50%) translateX(0) scale(1);
}

/* 关闭钮 */
.xj-cw .xj-cw__x {
  position: absolute; top: 9px; right: 9px;
  display: flex; align-items: center; justify-content: center;
  box-sizing: border-box;
  width: 26px; height: 26px; margin: 0; padding: 0;
  border: 0; border-radius: 50%;
  background: transparent; color: var(--xj-faint);
  font-size: 19px; line-height: 1; cursor: pointer;
  -webkit-appearance: none; appearance: none;
  transition: background-color .2s, color .2s;
}
.xj-cw .xj-cw__x:hover,
.xj-cw .xj-cw__x:focus { background: var(--xj-surface-3); color: var(--xj-ink); outline: none; }

/* 面板头 */
.xj-cw__hd { display: flex; gap: 10px; align-items: flex-start; padding-right: 24px; }
.xj-cw__hdico {
  flex: 0 0 auto; display: flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; border-radius: 10px;
  background: var(--xj-red-bg); color: var(--xj-vermilion);
}
.xj-cw__hdico .xj-ico { display: block; width: 21px; height: 21px; }
.xj-cw__hdtx { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.xj-cw .xj-cw__h {
  margin: 0; font-family: var(--xj-serif); font-size: 15.8px; font-weight: 700;
  letter-spacing: .02em; color: var(--xj-ink);
}
.xj-cw .xj-cw__lead { margin: 0; font-size: 12.1px; line-height: 1.6; color: var(--xj-muted); }

/* 渠道列表 */
.xj-cw__list { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.xj-cw__row { list-style: none; margin: 0; padding: 0; }

.xj-cw .xj-cw__link {
  display: flex; align-items: center; gap: 11px;
  box-sizing: border-box;
  width: 100%; margin: 0; padding: 11px 13px;
  border: 1px solid var(--xj-line-2); border-radius: var(--xj-r-sm);
  background: var(--xj-surface-2); color: var(--xj-ink);
  font-family: var(--xj-sans); font-size: 13.6px; line-height: 1.45; text-align: left;
  text-decoration: none; cursor: pointer; box-shadow: none;
  -webkit-appearance: none; appearance: none;
  transition: background-color .2s, border-color .2s, transform .2s;
}
.xj-cw .xj-cw__link:hover,
.xj-cw .xj-cw__link:focus {
  background: var(--xj-surface); border-color: var(--xj-line);
  transform: translateX(2px); text-decoration: none; outline: none;
}
.xj-cw .xj-cw__link:focus-visible { outline: 2px solid var(--xj-vermilion); outline-offset: 1px; }

.xj-cw__ico {
  flex: 0 0 auto; display: flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; border-radius: 9px;
  background: var(--xj-olive-bg); color: var(--xj-olive);
}
.xj-cw__ico .xj-ico { display: block; width: 19px; height: 19px; }
.xj-cw__tx { display: flex; flex-direction: column; gap: 2px; flex: 1 1 auto; min-width: 0; }
.xj-cw .xj-cw__t { font-size: 13.3px; font-weight: 700; color: var(--xj-ink); }
.xj-cw .xj-cw__s { font-size: 11.8px; line-height: 1.5; color: var(--xj-muted); word-break: break-all; }
.xj-cw__go { flex: 0 0 auto; font-size: 11.6px; color: var(--xj-vermilion-lt); white-space: nowrap; }

/* 面板底注 */
.xj-cw .xj-cw__foot {
  margin: 14px 0 0; padding-top: 12px;
  border-top: 1px solid var(--xj-line-2);
  font-size: 11.5px; color: var(--xj-faint); text-align: center;
}

/* ---------- 响应式 ---------- */
@media (max-width: 860px) {
  .xj-cw .xj-cw__tab { width: 62px; padding: 12px 6px 13px; gap: 5px; border-radius: 12px 0 0 12px; }
  .xj-cw__tabico { width: 22px; height: 22px; }
  .xj-cw__tabico .xj-ico { width: 21px; height: 21px; }
  .xj-cw__tabtx { font-size: 11.2px; letter-spacing: .02em; }
  .xj-cw__panel { width: min(78vw, 300px); right: calc(100% + 8px); padding: 17px 16px 14px; }
  .xj-cw .xj-cw__h { font-size: 15px; }
}

@media (max-width: 480px) {
  .xj-cw .xj-cw__tab { width: 56px; padding: 11px 5px 12px; }
  .xj-cw__tabtx { font-size: 10.4px; }
}

/* T46：尊重系统「减少动效」偏好 */
@media (prefers-reduced-motion: reduce) {
  .xj-cw .xj-cw__tab, .xj-cw__panel, .xj-cw .xj-cw__link, .xj-cw .xj-cw__x { transition: none !important; }
}

/* ==========================================================================
   T-I1 · 2026-09-28 图标梳理 v2（取名字类 + 学业考运补空白；后写覆盖旧规则）
   生成脚本 scratch/_ico_gen.php，勿手改 data-URI。
   ========================================================================== */
.main-header-menu a[href*="/xue-ye-ce-suan/"]::before, .ast-builder-menu a[href*="/xue-ye-ce-suan/"]::before, .ast-mobile-popup-drawer a[href*="/xue-ye-ce-suan/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%204.5%2021.5%209%2012%2013.5%202.5%209Z%22%2F%3E%3Cpath%20d%3D%22M6.5%2011.5v4.3c0%201.7%202.4%202.9%205.5%202.9s5.5-1.2%205.5-2.9v-4.3%22%2F%3E%3Cpath%20d%3D%22M21.5%209v4.5%22%2F%3E%3Ccircle%20cx%3D%2221.5%22%20cy%3D%2214.8%22%20r%3D%22.9%22%2F%3E%3C%2Fsvg%3E"); } /* gradcap */
.main-header-menu a[href*="/bao-bao-qu-ming/"]::before, .ast-builder-menu a[href*="/bao-bao-qu-ming/"]::before, .ast-mobile-popup-drawer a[href*="/bao-bao-qu-ming/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%226.5%22%20r%3D%222.2%22%2F%3E%3Cpath%20d%3D%22M5%2012.5h14%22%2F%3E%3Cpath%20d%3D%22M5%2012.5a7%205.2%200%200%200%2014%200%22%2F%3E%3Cpath%20d%3D%22M6.8%2016.9%205%2020M17.2%2016.9%2019%2020%22%2F%3E%3Cpath%20d%3D%22M4%2020q8%203.4%2016%200%22%2F%3E%3C%2Fsvg%3E"); } /* cradle */
.main-header-menu a[href*="/cheng-ren-gai-ming/"]::before, .ast-builder-menu a[href*="/cheng-ren-gai-ming/"]::before, .ast-mobile-popup-drawer a[href*="/cheng-ren-gai-ming/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%2012a8%208%200%201%201-2.34-5.66%22%2F%3E%3Cpath%20d%3D%22M18.2%202.8v3.9h-3.9%22%2F%3E%3Cpath%20d%3D%22M8%2012h8%22%2F%3E%3C%2Fsvg%3E"); } /* refresh */
.main-header-menu a[href*="/gong-si-qu-ming/"]::before, .ast-builder-menu a[href*="/gong-si-qu-ming/"]::before, .ast-mobile-popup-drawer a[href*="/gong-si-qu-ming/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%2020.5V4.5h9v16%22%2F%3E%3Cpath%20d%3D%22M15%209.5h3.5v11%22%2F%3E%3Cpath%20d%3D%22M4%2020.5h17%22%2F%3E%3Cpath%20d%3D%22M8.7%208h1.6M12%208h1.6M8.7%2011.5h1.6M12%2011.5h1.6M8.7%2015h1.6M12%2015h1.6%22%2F%3E%3Cpath%20d%3D%22M9.5%2020.5v-3h2.5v3%22%2F%3E%3C%2Fsvg%3E"); } /* building */
.main-header-menu a[href*="/chong-wu-qu-ming/"]::before, .ast-builder-menu a[href*="/chong-wu-qu-ming/"]::before, .ast-mobile-popup-drawer a[href*="/chong-wu-qu-ming/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cellipse%20cx%3D%227%22%20cy%3D%228.8%22%20rx%3D%221.6%22%20ry%3D%222%22%2F%3E%3Cellipse%20cx%3D%2210.6%22%20cy%3D%226.2%22%20rx%3D%221.7%22%20ry%3D%222.2%22%2F%3E%3Cellipse%20cx%3D%2214.6%22%20cy%3D%226.2%22%20rx%3D%221.7%22%20ry%3D%222.2%22%2F%3E%3Cellipse%20cx%3D%2217.8%22%20cy%3D%228.8%22%20rx%3D%221.6%22%20ry%3D%222%22%2F%3E%3Cpath%20d%3D%22M12.4%2010.5c3%200%205.3%202.3%205.3%204.7%200%202.1-1.8%203.3-5.3%203.3s-5.3-1.2-5.3-3.3c0-2.4%202.3-4.7%205.3-4.7Z%22%2F%3E%3C%2Fsvg%3E"); } /* paw */
.main-header-menu a[href*="/dian-pu-qu-ming/"]::before, .ast-builder-menu a[href*="/dian-pu-qu-ming/"]::before, .ast-mobile-popup-drawer a[href*="/dian-pu-qu-ming/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%209%205.4%204.5h13.2L20%209%22%2F%3E%3Cpath%20d%3D%22M4%209a2.67%202.67%200%200%200%205.33%200A2.67%202.67%200%200%200%2014.67%209%202.67%202.67%200%200%200%2020%209%22%2F%3E%3Cpath%20d%3D%22M5.5%2012.7V20h13v-7.3%22%2F%3E%3Cpath%20d%3D%22M10%2020v-4.5h4V20%22%2F%3E%3C%2Fsvg%3E"); } /* store */
.main-header-menu a[href*="/xiao-ming-ru-ming/"]::before, .ast-builder-menu a[href*="/xiao-ming-ru-ming/"]::before, .ast-mobile-popup-drawer a[href*="/xiao-ming-ru-ming/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%224%22%2F%3E%3Cpath%20d%3D%22M12%202.5v2.5M12%2019v2.5M2.5%2012H5M19%2012h2.5M5.3%205.3l1.8%201.8M16.9%2016.9l1.8%201.8M18.7%205.3l-1.8%201.8M7.1%2016.9l-1.8%201.8%22%2F%3E%3C%2Fsvg%3E"); } /* sun */
.main-header-menu a[href*="/wang-ming-yi-ming/"]::before, .ast-builder-menu a[href*="/wang-ming-yi-ming/"]::before, .ast-mobile-popup-drawer a[href*="/wang-ming-yi-ming/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%204v5M12%2015v5M4%2012h5M15%2012h5%22%2F%3E%3Cpath%20d%3D%22M7%207l2.5%202.5M14.5%2014.5L17%2017M17%207l-2.5%202.5M9.5%2014.5L7%2017%22%2F%3E%3C%2Fsvg%3E"); } /* sparkle */
.main-header-menu a[href*="/ying-wen-ming/"]::before, .ast-builder-menu a[href*="/ying-wen-ming/"]::before, .ast-mobile-popup-drawer a[href*="/ying-wen-ming/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%228.5%22%2F%3E%3Cpath%20d%3D%22M3.5%2012h17M12%203.5c2.6%202.3%204%205.2%204%208.5s-1.4%206.2-4%208.5c-2.6-2.3-4-5.2-4-8.5s1.4-6.2%204-8.5Z%22%2F%3E%3C%2Fsvg%3E"); } /* globe */
.main-header-menu a[href*="/zhai-hao-ya-hao/"]::before, .ast-builder-menu a[href*="/zhai-hao-ya-hao/"]::before, .ast-mobile-popup-drawer a[href*="/zhai-hao-ya-hao/"]::before { --xj-nav-ico: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%206.5C10%204.8%207.5%204.3%204%204.5v13c3.5-.2%206%20.3%208%202%202-1.7%204.5-2.2%208-2v-13c-3.5-.2-6%20.3-8%202Z%22%2F%3E%3Cpath%20d%3D%22M12%206.5v13%22%2F%3E%3C%2Fsvg%3E"); } /* book */

/* ==========================================================================
   T49 · 2026-09-29 宅院风水工具页改版（.xj-fsx-* 命名空间）
   目标：把「工具怎么用」与「堪舆主题」顶到最前，并给出清晰的三级付费路径。
   所有规则都挂在页内自带类名（.xj-fsx-*）下，不触碰其它工具页。
   ========================================================================== */

/* --- 0) 补 .xj-btn--primary 的定义 ------------------------------------
   全站只有宅院风水页（含繁/英共 3 页）在用 xj-btn--primary，而它从未被
   定义过：.xj-btn 只给了布局、不给底色，于是 Astra 的默认按钮样式接管，
   页面上那顆「开始排盘」一直是 Astra 蓝（rgb(4,107,210)）。此处补齐，
   取值与 .xj-btn--gold 一致，保留原类名以兼容页面既有标记。 */
.xj-btn--primary {
  background: linear-gradient(135deg, #c4473a 0%, #b03a2e 46%, #93291f 100%);
  color: #fff6ec !important;
  box-shadow: 0 8px 22px rgba(184, 137, 58, .28);
}
.xj-btn--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 34px rgba(184, 137, 58, .38);
  filter: brightness(1.05);
}

/* --- 1) Hero：主题 + 装饰罗盘 ----------------------------------------- */
.xj-fsx-hero { padding: 34px 0 28px; }
.xj-fsx-hero .xj-crumb { margin-bottom: 20px; }
.xj-fsx-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr);
  gap: clamp(24px, 4vw, 56px);
  align-items: center;
}
.xj-fsx-hero__txt { min-width: 0; }
.xj-fsx-hero .xj-h1 { font-size: clamp(34px, 5vw, 56px); }

.xj-fsx-hero__facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
}
.xj-fsx-hero__facts li {
  padding-top: 15px;
  border-top: 2px solid rgba(169, 133, 47, .42);
}
.xj-fsx-hero__fact-t {
  display: block;
  font-family: var(--xj-serif);
  font-size: 15.5px;
  letter-spacing: .04em;
  color: var(--xj-ink);
}
.xj-fsx-hero__fact-d {
  display: block;
  margin-top: 7px;
  font-size: 12.8px;
  line-height: 1.9;
  color: var(--xj-muted);
}

.xj-fsx-hero__acts { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }

.xj-fsx-hero__trust {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 18px 0 0;
  font-size: 12.5px;
  color: var(--xj-faint);
}
.xj-fsx-hero__trust::before {
  content: "";
  flex: none;
  width: 14px;
  height: 14px;
  background-color: var(--xj-olive);
  -webkit-mask: var(--xj-ico-shield, none) center / 14px 14px no-repeat;
  mask: var(--xj-ico-shield, none) center / 14px 14px no-repeat;
}

.xj-fsx-hero__viz { display: flex; align-items: center; justify-content: center; }
.xj-fsx-compass {
  width: min(340px, 76vw);
  height: auto;
  display: block;
  overflow: visible;
  filter: drop-shadow(0 20px 44px rgba(90, 62, 38, .18));
}
.xj-fsx-compass__ring { fill: none; stroke: rgba(169, 133, 47, .58); stroke-width: 1; }
.xj-fsx-compass__ring--in { stroke: rgba(169, 133, 47, .40); }
.xj-fsx-compass__face { fill: url(#xjfsx-face); }
.xj-fsx-compass__tick { stroke: rgba(169, 133, 47, .62); stroke-width: 1; }
.xj-fsx-compass__tick--card { stroke: rgba(176, 58, 46, .68); stroke-width: 2; }
.xj-fsx-compass__gua { stroke: rgba(176, 58, 46, .40); stroke-width: 1.2; }
.xj-fsx-compass__grid { stroke: rgba(38, 35, 30, .22); stroke-width: 1; }
.xj-fsx-compass__hub { fill: #fffdf7; stroke: rgba(176, 58, 46, .42); stroke-width: 1.2; }
.xj-fsx-compass__n { fill: #b03a2e; }
.xj-fsx-compass__s { fill: #4e4a42; }
.xj-fsx-compass__tickring { transform-origin: 150px 150px; animation: xj-fsx-spin 180s linear infinite; }
@keyframes xj-fsx-spin { to { transform: rotate(360deg); } }

/* --- 2) 主体双栏 ------------------------------------------------------
   T50：`align-items` 由 start 改 **stretch**，并让左右两列各自成为 flex 链：
   · 左列末尾的「提交卡」用 `margin-top:auto` 吸到底；
   · 右列最后一张卡 `flex:1` 撑满、卡内价格块同样 `margin-top:auto`。
   这样**无论哪一列内容更高**，两列底边都严格对齐 —— 三语文本长度不同也成立，
   不必去逐语言手调 pixel（原来 zh/tw 差 475px、en 差 363px）。 */
.xj-fsx-cols {
  display: grid;
  grid-template-columns: minmax(0, 1.62fr) minmax(0, 1fr);
  gap: 28px;
  align-items: stretch;
}
.xj-fsx-main { min-width: 0; display: flex; }
.xj-fsx-main > .xj-tool { flex: 1; min-width: 0; display: flex; flex-direction: column; }
/* 三步卡与提交卡之间的间距统一由 gap 给，避免 margin 与 gap 叠加 */
.xj-fsx-main .xj-form { flex: 1; display: flex; flex-direction: column; gap: 14px; }
.xj-fsx-main .xj-fsx-submit { margin-top: auto; }

/* --- 3) 步骤卡 --------------------------------------------------------
   T50：padding 26/28/24 → 22/26/20，head padding-bottom 14 → 11，
   间距改由 `.xj-form` 的 gap 提供（原 `.xj-fsx-step + .xj-fsx-step` 的
   margin-top 已删，否则与 gap 叠加成 28px）。合计每卡省 ~14px。 */
.xj-fsx-step {
  padding: 22px 26px 20px;
  border-radius: var(--xj-r-lg);
  border: 1px solid var(--xj-line-2);
  background: var(--xj-surface);
  box-shadow: var(--xj-shadow-sm);
}
.xj-fsx-step__head { display: flex; align-items: center; gap: 12px; padding-bottom: 11px; border-bottom: 1px solid var(--xj-line-2); }
.xj-fsx-step__no {
  flex: none;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--xj-serif);
  font-size: 15px;
  font-weight: 700;
  color: #fff8ec;
  background: linear-gradient(135deg, #b8883a, #8f6520);
  box-shadow: 0 4px 12px rgba(169, 133, 47, .28);
}
.xj-fsx-step__title {
  margin: 0;
  font-family: var(--xj-serif);
  font-size: 19.5px;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--xj-ink);
}
.xj-fsx-step__opt {
  margin-left: auto;
  padding: 3px 11px;
  border-radius: 999px;
  border: 1px solid var(--xj-line-2);
  background: var(--xj-surface-2);
  font-size: 11.5px;
  letter-spacing: .06em;
  color: var(--xj-faint);
}
.xj-fsx-step__hint {
  margin: 12px 0 16px;
  font-size: 13.2px;
  line-height: 1.95;
  color: var(--xj-muted);
}
.xj-fsx-step .xj-field { gap: 14px; }

/* 罗盘：T50 由 310 收到 235（原先比右侧说明块明显偏大，也是左栏最高的单块之一） */
.xj-fsx-step .xj-fs-dial { grid-template-columns: minmax(0, 235px) minmax(0, 1fr); }
.xj-fsx-step .xj-fs-dial__stage { max-width: 235px; }

/* 九宫格：原样式是 margin:0 auto + max-width，在 column flex 里 auto 外边距
   会取消 stretch → 实测只剩 169px 宽。这里给足宽度并显式居中。 */
.xj-fsx-step .xj-fs-picker {
  align-self: center;
  width: min(100%, 440px);
  max-width: none;
  margin: 0;
  gap: 10px;
}
/* 格子做成「纸面罗盘格」而不是线框：暖底 + 实线细边 + 极浅投影。
   T50：基础样式是 `aspect-ratio: 1/1`，在 440px 宽的网格里每格 140×140，
   三行合计 440px —— 是左栏最高的单块。改为固定高度（不再是正方形），
   每格仍容得下「方位 + 功能」两行字。 */
.xj-fsx-step .xj-fs-pick {
  aspect-ratio: auto;
  min-height: 100px;
  border: 1px solid rgba(38, 35, 30, .13);
  border-radius: 10px;
  background: linear-gradient(180deg, #fffdf9 0%, #faf6ec 100%);
  box-shadow: 0 1px 2px rgba(90, 62, 38, .04);
}
.xj-fsx-step .xj-fs-pick:hover {
  border-color: rgba(169, 133, 47, .62);
  background: linear-gradient(180deg, #fffcf3 0%, #f8f2e4 100%);
  box-shadow: 0 4px 12px rgba(169, 133, 47, .14);
}
.xj-fsx-step .xj-fs-pick.is-set {
  border-color: var(--xj-vermilion);
  background: linear-gradient(180deg, rgba(176, 58, 46, .06) 0%, rgba(176, 58, 46, .11) 100%);
  box-shadow: 0 4px 14px rgba(176, 58, 46, .14);
}
.xj-fsx-step .xj-fs-pick--center,
.xj-fsx-step .xj-fs-pick--center:hover {
  border: 1px dashed rgba(38, 35, 30, .20);
  background: rgba(38, 35, 30, .035);
  box-shadow: none;
}
.xj-fsx-step .xj-fs-pick__pos { font-family: var(--xj-serif); font-size: 15px; letter-spacing: .06em; }
.xj-fsx-step .xj-fs-pick__room { font-size: 13.5px; letter-spacing: .02em; }
.xj-fsx-step .xj-fs-pick--center .xj-fs-pick__pos { font-size: 13px; }
.xj-fsx-step [data-xj-pick-hint] { text-align: center; margin-top: 12px; }

/* 步骤二：控件上方的短标签。
   T50：由 2 列改 3 列 —— 原来「房屋建成年」单独占满一行（一行只有一个输入框），
   合并成「出生年 / 性别 / 建成年」一行，省一行高度、版面也更像一张信息条。
   中间列用 auto，避免英文 Male/Female 分段选择器被压窄换行。 */
.xj-fsx-grid2 { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 16px 18px; }
.xj-fsx-f { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.xj-fsx-lbl { font-size: 12px; letter-spacing: .1em; color: var(--xj-vermilion-dk); font-weight: 600; }

/* 性别分段选择器（替换原来的 select） */
.xj-fsx-seg { display: inline-flex; padding: 3px; border-radius: 999px; border: 1px solid var(--xj-line-3); background: var(--xj-surface-2); align-self: flex-start; }
.xj-fsx-seg__i { position: relative; }
.xj-fsx-seg__i input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.xj-fsx-seg__i span {
  display: block;
  padding: 11px 28px;
  border-radius: 999px;
  font-size: 14px;
  color: var(--xj-ink-2);
  cursor: pointer;
  transition: background .2s, color .2s, box-shadow .2s;
}
.xj-fsx-seg__i input:checked + span {
  background: var(--xj-surface);
  color: var(--xj-vermilion-dk);
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(90, 62, 38, .10);
}
.xj-fsx-seg__i input:focus-visible + span { outline: 2px solid #b03a2e; outline-offset: 2px; }

/* 输入框不再满宽（4 位数字占 1000px 很怪） */
.xj-fsx-step .xj-input { max-width: 300px; }

/* 提交区（margin-top 由 `.xj-fsx-main .xj-fsx-submit { margin-top:auto }` 接管） */
.xj-fsx-submit {
  padding: 20px 26px;
  border-radius: var(--xj-r-lg);
  border: 1px solid rgba(169, 133, 47, .36);
  background: linear-gradient(165deg, #fffaf0 0%, var(--xj-surface) 62%);
  box-shadow: var(--xj-shadow-sm);
}
.xj-fsx-submit .xj-actions { display: block; }
.xj-fsx-submit .xj-btn { width: 100%; }
.xj-fsx-submit__hint { margin: 12px 0 0; text-align: center; font-size: 12.5px; line-height: 1.8; color: var(--xj-muted); }

/* --- 4) 侧栏 ---------------------------------------------------------- */
/*
 * 侧栏不做 sticky：它实测高约 1420~1580px（随语言而变），而笔记本视口多在
 * 900~1100px。sticky 之后，吸住期间「从预览到详批」那张卡（含价格与购买入口）
 * 的下半段会一直落在视口外 —— 恰好把最想让人看见的那块切掉。
 * 侧栏本来就比左栏矮，不做 sticky 反而在用户滚到提交按钮时正好整块可见。
 */
.xj-fsx-side {
  position: static;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
/* T50：右列最后一张卡（付费路径）撑满剩余高度，卡内价格块吸到底 ——
   于是右列的「开始排盘」与左列的提交按钮落在同一水平线上，底边严格对齐。 */
.xj-fsx-side > .xj-fsx-card:last-child { flex: 1; }
.xj-fsx-card {
  padding: 22px 24px 24px;
  border-radius: var(--xj-r-lg);
  border: 1px solid var(--xj-line-2);
  background: var(--xj-surface);
  box-shadow: var(--xj-shadow-sm);
}
.xj-fsx-card--tier {
  border-color: rgba(169, 133, 47, .40);
  background: linear-gradient(165deg, #fffaf0 0%, var(--xj-surface) 60%);
  /* T50：卡片纵向 flex，价格块 margin-top:auto 吸到底（见下） */
  display: flex;
  flex-direction: column;
}
.xj-fsx-card--tier > .xj-fsx-price { margin-top: auto; }
.xj-fsx-card__h {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  font-family: var(--xj-serif);
  font-size: 16.5px;
  letter-spacing: .04em;
  color: var(--xj-ink);
}
.xj-fsx-card__h .xj-ico { width: 18px; height: 18px; flex: none; color: var(--xj-brass); }
.xj-fsx-card__sub { margin: 9px 0 0; font-size: 12.4px; line-height: 1.8; color: var(--xj-muted); }

.xj-fsx-list { margin: 16px 0 0; padding: 0; list-style: none; display: grid; gap: 12px; }
.xj-fsx-list li { position: relative; padding-left: 22px; font-size: 13px; line-height: 1.85; color: var(--xj-ink-2); }
.xj-fsx-list li::before {
  content: "";
  position: absolute;
  left: 1px;
  top: .58em;
  width: 11px;
  height: 6px;
  border-left: 2px solid var(--xj-brass);
  border-bottom: 2px solid var(--xj-brass);
  transform: rotate(-45deg);
}
.xj-fsx-list b { color: var(--xj-ink); font-weight: 600; }

.xj-fsx-chaps { margin: 14px 0 0; padding: 0; list-style: none; counter-reset: xjfsx; }
.xj-fsx-chaps li {
  counter-increment: xjfsx;
  position: relative;
  padding: 12px 0 12px 36px;
  font-size: 13.2px;
  line-height: 1.75;
  color: var(--xj-ink-2);
  border-top: 1px solid var(--xj-line-2);
}
.xj-fsx-chaps li:first-child { border-top: none; }
.xj-fsx-chaps li::before {
  content: counter(xjfsx, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 12px;
  font-family: var(--xj-serif);
  font-size: 12px;
  letter-spacing: .04em;
  color: var(--xj-brass);
}

.xj-fsx-tier { margin: 18px 0 0; padding: 0; list-style: none; }
.xj-fsx-tier li { position: relative; padding: 0 0 18px 30px; }
.xj-fsx-tier li:last-child { padding-bottom: 0; }
.xj-fsx-tier li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 5px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  border: 2px solid var(--xj-brass);
  background: var(--xj-surface);
}
.xj-fsx-tier li::after {
  content: "";
  position: absolute;
  left: 9px;
  top: 20px;
  bottom: 0;
  width: 1px;
  background: var(--xj-line-2);
}
.xj-fsx-tier li:last-child::after { display: none; }
.xj-fsx-tier li.is-key::before { border-color: var(--xj-vermilion); background: var(--xj-vermilion); }
.xj-fsx-tier__t { display: block; font-size: 13.6px; font-weight: 600; letter-spacing: .02em; color: var(--xj-ink); }
.xj-fsx-tier__d { display: block; margin-top: 5px; font-size: 12.4px; line-height: 1.85; color: var(--xj-muted); }

.xj-fsx-price {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin: 18px 0 0;
  padding: 13px 16px;
  border-radius: var(--xj-r);
  border: 1px solid rgba(169, 133, 47, .30);
  background: rgba(169, 133, 47, .09);
}
.xj-fsx-price__n { font-family: var(--xj-serif); font-size: 24px; letter-spacing: .02em; color: var(--xj-vermilion-dk); }
.xj-fsx-price__l { font-size: 12.2px; line-height: 1.6; color: var(--xj-muted); }
.xj-fsx-tier-cta { margin-top: 16px; }
.xj-fsx-tier-cta .xj-btn { width: 100%; }
.xj-fsx-tier-note { margin: 12px 0 0; text-align: center; font-size: 11.8px; line-height: 1.75; color: var(--xj-faint); }

/* 提交卡与付费卡各压一枚极浅的云纹角饰：两张「要动手 / 要掏钱」的卡
   在一片纸白里有个落款感的锚点，不至于和普通信息卡混成一样。 */
.xj-fsx-submit,
.xj-fsx-card--tier { position: relative; overflow: hidden; }
.xj-fsx-submit::before,
.xj-fsx-card--tier::before {
  content: "";
  position: absolute;
  top: 8px;
  right: 12px;
  width: 92px;
  height: 92px;
  background: var(--xj-cloud-corner) right top / 92px 92px no-repeat;
  opacity: .15;
  pointer-events: none;
}

/* --- 5) 结果区（全宽，脱离双栏） -------------------------------------- */
.xj-fsx-resultwrap { margin-top: 24px; }
.xj-fsx-resultwrap .xj-result { margin-top: 0; }

/* --- 6) 「怎么看结果」三卡 -------------------------------------------- */
.xj-fsx-how { margin: 10px 0 34px; padding-top: 24px; border-top: 1px solid var(--xj-line-2); }
.xj-fsx-how__h { margin: 0; text-align: center; font-family: var(--xj-serif); font-size: 20px; letter-spacing: .04em; color: var(--xj-ink); }
.xj-fsx-how__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 24px; }
.xj-fsx-how__i {
  padding: 20px 22px 22px;
  border-radius: var(--xj-r);
  border: 1px solid var(--xj-line-2);
  background: var(--xj-surface);
}
.xj-fsx-how__n { font-family: var(--xj-serif); font-size: 12.5px; letter-spacing: .16em; color: var(--xj-brass); }
.xj-fsx-how__t { margin: 9px 0 0; font-family: var(--xj-serif); font-size: 15px; letter-spacing: .03em; color: var(--xj-ink); }
.xj-fsx-how__d { margin: 9px 0 0; font-size: 12.6px; line-height: 1.95; color: var(--xj-muted); }

/* --- 7) 响应式 -------------------------------------------------------- */
@media (max-width: 1080px) {
  .xj-fsx-cols { grid-template-columns: 1fr; gap: 22px; }
}
@media (max-width: 900px) {
  .xj-fsx-hero { padding: 26px 0 22px; }
  .xj-fsx-hero__grid { grid-template-columns: 1fr; gap: 18px; }
  .xj-fsx-hero__viz { order: -1; }
  .xj-fsx-compass { width: min(168px, 46vw); }
  .xj-fsx-hero__facts { grid-template-columns: 1fr; gap: 14px; margin-top: 22px; }
  .xj-fsx-hero__acts { margin-top: 22px; }
  .xj-fsx-hero__acts .xj-btn { flex: 1; justify-content: center; }
  .xj-fsx-how__grid { grid-template-columns: 1fr; gap: 14px; }
  .xj-fsx-step { padding: 20px 18px 18px; }
  .xj-fsx-submit { padding: 20px 18px; }
  .xj-fsx-step .xj-fs-dial { grid-template-columns: 1fr; gap: 22px; }
  .xj-fsx-step .xj-fs-dial__stage { max-width: 250px; }
  .xj-fsx-grid2 { grid-template-columns: 1fr; }
  .xj-fsx-step .xj-input { max-width: none; }
}
@media (prefers-reduced-motion: reduce) {
  .xj-fsx-compass__tickring { animation: none; }
}

/* ==========================================================================
   T63 · 东方命理工具页 & 签卦字梦系列：视觉升级
   --------------------------------------------------------------------------
   作用域：body.xj-redesign（由 xuanji-design.php 的
   xuanji_design_redesign_body_class 按 slug 挂上），不透传到其它页面。
   思路：沿用既有朱砂/宣纸/金褐体系，靠**饰线、渐层、留白与悬浮反馈**做出
   仪式感与层次，不引入新色系（避免与全站设计语言脱节）。
   ========================================================================== */

/* ---------- 1. 页头：加金色顶线 + 更浓的暖光，标题下压一道饰线 ---------- */
.xj-redesign .xj-hero {
  background:
    radial-gradient(1040px 540px at 50% -20%, rgba(176, 58, 46, .13), transparent 62%),
    radial-gradient(640px 320px at 92% 118%, rgba(169, 133, 47, .13), transparent 70%),
    linear-gradient(180deg, #fbf7ee 0%, #f5efe2 100%);
}
.xj-redesign .xj-hero::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, transparent, var(--xj-vermilion) 18%, var(--xj-brass) 50%, var(--xj-vermilion) 82%, transparent);
  opacity: .5; pointer-events: none; z-index: 2;
}
.xj-redesign .xj-hero .xj-h1 { position: relative; padding-bottom: 22px; }
.xj-redesign .xj-hero .xj-h1::after {
  content: ""; position: absolute; left: 0; bottom: 8px; width: 76px; height: 2px; border-radius: 2px;
  background: linear-gradient(90deg, var(--xj-vermilion), var(--xj-brass));
}
.xj-redesign .xj-hero .xj-h1::before {
  content: ""; position: absolute; left: 81px; bottom: 5.5px; width: 7px; height: 7px;
  transform: rotate(45deg); background: var(--xj-brass); opacity: .9;
}
/* 页头徽标排（tags）里的徽章：更细的金边 */
.xj-redesign .xj-hero .xj-badge {
  background: rgba(255, 253, 249, .75);
  border-color: rgba(169, 133, 47, .34);
}

/* ---------- 2. 区块标题组：小标两侧短线 + 菱形分隔 ---------- */
.xj-redesign .xj-head-group { text-align: center; }
.xj-redesign .xj-kick {
  display: inline-flex; align-items: center; gap: 12px;
  font-size: 11.5px; letter-spacing: .34em; text-transform: uppercase;
  color: var(--xj-brass); font-family: var(--xj-sans); margin-bottom: 12px;
}
.xj-redesign .xj-kick::before,
.xj-redesign .xj-kick::after {
  content: ""; width: 26px; height: 1px; background: currentColor; opacity: .5;
}
.xj-redesign .xj-head-group .xj-rule { margin: 12px auto 14px; }
.xj-redesign .xj-head-group .xj-h2 { letter-spacing: .05em; }

/* ---------- 3. 特性卡（.xj-feat-card）：顶饰条 + 悬浮提升 ---------- */
.xj-redesign .xj-feat { gap: 22px; }
.xj-redesign .xj-feat-card {
  position: relative; overflow: hidden;
  border-radius: 18px; padding: 30px 22px 26px;
  background: linear-gradient(180deg, #fffdf8 0%, var(--xj-surface-2) 100%);
  border: 1px solid var(--xj-line-2);
}
.xj-redesign .xj-feat-card::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--xj-vermilion), var(--xj-brass));
  opacity: .82;
}
.xj-redesign .xj-feat-card::after {
  content: ""; position: absolute; right: -34px; bottom: -34px; width: 118px; height: 118px;
  border-radius: 50%; background: radial-gradient(circle, rgba(176, 58, 46, .07), transparent 70%);
  pointer-events: none;
}
.xj-redesign .xj-feat-card:hover {
  transform: translateY(-5px);
  border-color: rgba(169, 133, 47, .42);
  box-shadow: 0 16px 34px rgba(124, 74, 34, .13);
}
.xj-redesign .xj-feat-ico {
  width: 58px; height: 58px; border-radius: 16px;
  background: radial-gradient(circle at 34% 30%, rgba(176, 58, 46, .16), rgba(176, 58, 46, .05));
  border: 1px solid rgba(176, 58, 46, .24);
}
.xj-redesign .xj-feat-card h3 { font-family: var(--xj-serif); letter-spacing: .05em; }

/* ---------- 4. 正文卡（.xj-card）：悬浮阴影与描边 ---------- */
.xj-redesign .xj-card { border-radius: 16px; }
.xj-redesign .xj-card__icon {
  background: radial-gradient(circle at 34% 30%, rgba(176, 58, 46, .14), rgba(176, 58, 46, .04));
  border-color: rgba(176, 58, 46, .22);
}
.xj-redesign .xj-card:hover {
  border-color: rgba(169, 133, 47, .38);
  box-shadow: 0 14px 30px rgba(124, 74, 34, .12);
}

/* ---------- 5. 表单面板与提示条 ---------- */
.xj-redesign .xj-panel--gold {
  border-color: rgba(169, 133, 47, .34);
  box-shadow: 0 12px 32px rgba(124, 74, 34, .08);
}
.xj-redesign .xj-panel__title { font-size: 22px; letter-spacing: .05em; }
.xj-redesign .xj-input, .xj-redesign .xj-select, .xj-redesign .xj-textarea {
  background: #fffdf8; border-color: var(--xj-line-3);
}
.xj-redesign .xj-note {
  background: linear-gradient(180deg, #fdf3e6 0%, #fdf1e4 100%);
  border-color: rgba(169, 133, 47, .34);
}

/* ---------- 6. FAQ ---------- */
.xj-redesign .xj-faq summary { font-size: 15.8px; padding-top: 23px; padding-bottom: 23px; }

/* ---------- 7. 吉物行：从「裸图标」升为与页面同语言的质感卡 ---------- */
/* 2026-09-30 二次加码（用户反馈「看着平、没到效果图」）：
   原卡片面是 #fffdf8→#faf6ec 渐变，与页面底 #f7f3e9 几乎同色，
   卡片"浮"不出来 → 改为【实底白面 + 金边 + 顶部饰条 + 投影】，
   「五行 · 用途」由裸文字改为五行各色的小药丸标签。 */
.xj-redesign .xj-luckyrow {
  padding-top: 24px; padding-bottom: 24px;
  background: linear-gradient(180deg,
    rgba(239, 233, 218, 0) 0%, rgba(239, 233, 218, .5) 16%,
    rgba(239, 233, 218, .5) 84%, rgba(239, 233, 218, 0) 100%);
}
.xj-redesign .xj-lucky__rest--four { gap: 22px 18px; }
.xj-redesign .xj-lucky__rest--four .xj-lucky__restcard {
  position: relative; overflow: hidden;
  padding: 28px 16px 24px; border-radius: 16px;
  background: var(--xj-surface);
  border: 1px solid rgba(169, 133, 47, .24);
  box-shadow: 0 6px 18px rgba(124, 74, 34, .06);
  transition: transform .28s cubic-bezier(.4, 0, .2, 1), box-shadow .28s, border-color .28s;
}
/* 卡顶一道金饰条：与页面 hero / 内容卡同一套视觉语言 */
.xj-redesign .xj-lucky__rest--four .xj-lucky__restcard::before {
  content: ''; position: absolute; left: 0; right: 0; top: 0; height: 3px;
  background: linear-gradient(90deg,
    rgba(169, 133, 47, 0), rgba(169, 133, 47, .7), rgba(169, 133, 47, 0));
}
.xj-redesign .xj-lucky__rest--four .xj-lucky__restcard:hover {
  transform: translateY(-4px);
  border-color: rgba(169, 133, 47, .46);
  box-shadow: 0 14px 30px rgba(124, 74, 34, .13);
}
/* 图形底衬：加大到 66px、镶一圈金边，底色按五行做径向晕染（比平铺 rgba 有质感） */
.xj-redesign .xj-lucky__rest--four .xj-lucky__restart {
  width: 66px; height: 66px; margin-bottom: 16px;
  box-shadow: inset 0 0 0 1px rgba(169, 133, 47, .22), 0 3px 10px rgba(124, 74, 34, .05);
}
.xj-redesign .xj-lucky__rest--four .xj-lucky__restart svg { width: 32px; height: 32px; }
.xj-redesign .xj-lucky__rest--four .xj-lucky__restart--wood  { background: radial-gradient(circle at 34% 28%, rgba(65, 88, 78, .26), rgba(65, 88, 78, .07)); }
.xj-redesign .xj-lucky__rest--four .xj-lucky__restart--fire  { background: radial-gradient(circle at 34% 28%, rgba(176, 58, 46, .24), rgba(176, 58, 46, .06)); }
.xj-redesign .xj-lucky__rest--four .xj-lucky__restart--earth { background: radial-gradient(circle at 34% 28%, rgba(169, 133, 47, .30), rgba(169, 133, 47, .08)); }
.xj-redesign .xj-lucky__rest--four .xj-lucky__restart--metal { background: radial-gradient(circle at 34% 28%, rgba(107, 99, 87, .24), rgba(107, 99, 87, .07)); }
.xj-redesign .xj-lucky__rest--four .xj-lucky__restart--water { background: radial-gradient(circle at 34% 28%, rgba(43, 74, 134, .24), rgba(43, 74, 134, .06)); }
.xj-redesign .xj-lucky__rest--four .xj-lucky__restname {
  font-family: var(--xj-serif); font-size: 15px; letter-spacing: .04em;
  margin-bottom: 9px;
}
.xj-redesign .xj-lucky__rest--four .xj-lucky__restuse {
  display: inline-block; padding: 3px 11px; border-radius: 999px;
  font-size: 11px; letter-spacing: .07em;
  background: rgba(38, 35, 30, .05);
}
.xj-redesign .xj-lucky__rest--four .xj-lucky__restuse--wood  { background: rgba(65, 88, 78, .11); }
.xj-redesign .xj-lucky__rest--four .xj-lucky__restuse--fire  { background: rgba(176, 58, 46, .10); }
.xj-redesign .xj-lucky__rest--four .xj-lucky__restuse--earth { background: rgba(169, 133, 47, .15); }
.xj-redesign .xj-lucky__rest--four .xj-lucky__restuse--metal { background: rgba(107, 99, 87, .11); }
.xj-redesign .xj-lucky__rest--four .xj-lucky__restuse--water { background: rgba(43, 74, 134, .10); }
/* 「查看全部十五件」由下划线链接改为描边胶囊按钮 */
.xj-redesign .xj-luckyrow__more { margin-top: 20px; }
.xj-redesign .xj-luckyrow__more a {
  padding: 9px 22px; border-radius: 999px;
  border: 1px solid rgba(176, 58, 46, .28);
  transition: background .2s, border-color .2s;
}
.xj-redesign .xj-luckyrow__more a:hover {
  background: rgba(176, 58, 46, .06); border-color: rgba(176, 58, 46, .5);
}
@media (max-width: 760px) {
  .xj-redesign .xj-lucky__rest--four .xj-lucky__restcard { padding: 20px 12px 18px; }
  .xj-redesign .xj-lucky__rest--four .xj-lucky__restart { width: 58px; height: 58px; margin-bottom: 13px; }
}

/* ---------- 8. 签卦字梦（工具集合页）点缀青玉色，与「东方命理」区分层次 ---------- */
.xj-rd-qian .xj-kick { color: var(--xj-celadon); }
.xj-rd-qian .xj-hero::before {
  background: linear-gradient(90deg, transparent, var(--xj-celadon) 20%, var(--xj-brass) 50%, var(--xj-celadon) 80%, transparent);
  opacity: .45;
}
.xj-rd-qian .xj-hero .xj-h1::after { background: linear-gradient(90deg, var(--xj-celadon), var(--xj-brass)); }
.xj-rd-qian .xj-hero .xj-h1::before { background: var(--xj-celadon); }
.xj-rd-qian .xj-feat-card::before { background: linear-gradient(90deg, var(--xj-celadon), var(--xj-brass)); }
/* 签卦字梦页的吉物行同样换青玉色（标题短线与卡顶饰条），与东方命理区分层次。
   规则位于「东方命理」版之后，同特异度时后者生效，无需再加 .xj-redesign 前缀。 */
.xj-rd-qian .xj-luckyrow__title::before { background: linear-gradient(90deg, transparent, rgba(65, 88, 78, .62)); }
.xj-rd-qian .xj-luckyrow__title::after  { background: linear-gradient(90deg, rgba(65, 88, 78, .62), transparent); }
.xj-rd-qian .xj-lucky__rest--four .xj-lucky__restcard { border-color: rgba(65, 88, 78, .22); }
.xj-rd-qian .xj-lucky__rest--four .xj-lucky__restcard::before {
  background: linear-gradient(90deg, rgba(65, 88, 78, 0), rgba(65, 88, 78, .72), rgba(65, 88, 78, 0));
}
.xj-rd-qian .xj-lucky__rest--four .xj-lucky__restcard:hover { border-color: rgba(65, 88, 78, .46); }
