@charset "UTF-8";
  * { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
  html,body { width:100%; }
  body {
    font-family: "PingFang SC","Hiragino Sans GB","Microsoft YaHei",serif;
    background:#e8ddc8;
    color:#5a3a26;
    display:flex; justify-content:center;
  }
  .page {
    width:100%; max-width:480px;
    background:#f6eedd;
    background-image:
      radial-gradient(circle at 20% 5%, rgba(214,168,96,.18) 0 18%, transparent 40%),
      radial-gradient(circle at 85% 12%, rgba(196,120,60,.12) 0 14%, transparent 38%),
      radial-gradient(circle at 15% 60%, rgba(214,168,96,.10) 0 12%, transparent 34%);
    overflow:hidden;
    padding-bottom:34px;
    position:relative;
  }
  .serif { font-family:"STSong","SimSun","Songti SC",serif; }
  .hidden { display:none !important; }

  /* ---------- HERO（订婚纳采） ---------- */
  .hero {
    position:relative; padding:26px 18px 0; height:440px;
    background:
      radial-gradient(circle at 68% 40%, rgba(255,236,180,.95) 0 8%, rgba(255,224,150,.55) 26%, transparent 52%),
      radial-gradient(circle at 10% 88%, rgba(255,252,240,.55) 0 10%, transparent 40%),
      linear-gradient(180deg,#f9ecca 0%,#f2d9a2 44%,#e7c184 100%);
    overflow:hidden;
  }
  .hero::before{
    content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
    background:repeating-conic-gradient(from 0deg at 68% 40%, rgba(255,244,205,.20) 0deg 4deg, transparent 4deg 12deg);
    -webkit-mask-image:radial-gradient(circle at 68% 40%, #000 0 30%, transparent 62%);
            mask-image:radial-gradient(circle at 68% 40%, #000 0 30%, transparent 62%);
  }
  .hero::after{
    content:""; position:absolute; left:0; right:0; bottom:0; height:120px;
    background:linear-gradient(180deg,rgba(233,201,143,0) 0%,rgba(246,238,221,.95) 100%);
  }
  .cloud{ position:absolute; z-index:1; opacity:.8; pointer-events:none; }
  .birds{ position:absolute; z-index:1; top:20px; left:36%; opacity:.75; pointer-events:none; }
  .compass{
    position:absolute; z-index:1; top:34px; right:8px; width:296px; height:296px;
    filter:drop-shadow(0 14px 30px rgba(120,60,20,.35));
    animation:spin 90s linear infinite;
  }
  @keyframes spin{ to{ transform:rotate(360deg);} }
  .hero-badge{
    position:relative; z-index:2; display:inline-block;
    color:#7c4a1e; font-size:12px; letter-spacing:4px; line-height:1.9; text-align:center;
    padding:5px 14px; border-radius:4px;
    background:linear-gradient(180deg,rgba(255,250,238,.9),rgba(250,238,210,.85));
    border:1px solid #c99a56;
    box-shadow:0 3px 8px rgba(140,90,30,.18), inset 0 1px 0 #fff;
  }
  .hero-title{
    position:relative; z-index:2; margin-top:12px;
    writing-mode:vertical-rl;
    font-size:64px; line-height:1; font-weight:900; letter-spacing:8px;
    background:linear-gradient(180deg,#b23a26 0%,#8f2b1f 52%,#6e180e 100%);
    -webkit-background-clip:text; background-clip:text; color:transparent;
    filter: drop-shadow(0 2px 0 rgba(255,244,215,.95)) drop-shadow(0 4px 0 rgba(190,140,70,.45)) drop-shadow(0 12px 18px rgba(120,40,20,.35));
  }
  .hero-sub{
    position:relative; z-index:2; margin-top:14px;
    writing-mode:vertical-rl; font-size:14px; letter-spacing:6px; color:#7c5a34;
    text-shadow:0 1px 0 rgba(255,250,235,.8);
  }
  .hero-row{ display:flex; gap:14px; }
  .hero-seal{
    position:relative; z-index:3; margin-top:18px; display:inline-block;
    background:linear-gradient(160deg,#b03a2a 0%,#8c251c 60%,#741b13 100%);
    color:#fdf3e0; border:none; cursor:pointer;
    font-size:15px; letter-spacing:3px; padding:11px 26px; border-radius:8px;
    box-shadow:0 6px 14px rgba(140,37,28,.4), inset 0 0 0 1px rgba(255,225,190,.45), inset 0 2px 0 rgba(255,255,255,.2);
  }
  .hero-seal:active{ transform:translateY(1px); }
  .hero-banner{
    position:absolute; z-index:4; left:0; right:0; bottom:0;
    background:linear-gradient(90deg,#7c1f16,#a03024 50%,#7c1f16);
    color:#f7e8cf; padding:9px 14px; font-size:13px; letter-spacing:2px; text-align:center; line-height:1.7;
  }
  .hero-banner b{ color:#ffd98f; font-weight:700; }

  /* ---------- 类型导航条 ---------- */
  .jz-nav{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; padding:14px 16px 0; }
  .jz-nav a{
    display:block; text-align:center; text-decoration:none;
    background:linear-gradient(180deg,#fffdf6,#f7edd8); border:1px solid #e2c896; border-radius:10px;
    padding:12px 4px 10px;
    box-shadow:0 3px 8px rgba(150,100,50,.10);
  }
  .jz-nav a .ico{
    display:block; width:38px; height:38px; margin:0 auto 7px; border-radius:50%;
    background:radial-gradient(circle at 32% 28%,#c14a38,#8f2b1f);
    color:#ffe9c2; font-size:17px; line-height:38px;
    box-shadow:inset 0 0 0 2px rgba(255,220,170,.35), 0 3px 6px rgba(120,40,25,.28);
  }
  .jz-nav a .t{ display:block; font-size:13px; font-weight:700; color:#6f421f; letter-spacing:1px; }
  .jz-nav a .d{ display:block; font-size:10px; color:#a8835a; margin-top:2px; }
  .jz-nav a.cur{ background:linear-gradient(160deg,#a8352a,#7c1f16); border-color:#d98a6a; }
  .jz-nav a.cur .t{ color:#ffe9c2; }
  .jz-nav a.cur .d{ color:rgba(255,233,194,.78); }
  .jz-nav a.cur .ico{
    background:radial-gradient(circle at 32% 28%,#f7dfae,#e0bd77);
    color:#7a1d12;
    box-shadow:inset 0 0 0 2px rgba(122,29,18,.25), 0 3px 6px rgba(60,12,5,.35);
  }
  .jz-nav a:active{ transform:translateY(1px); }

  /* ---------- 通用区块 ---------- */
  section{ padding:0 16px; margin-top:30px; }
  .sec-head{ display:flex; align-items:center; justify-content:center; gap:12px; margin-bottom:16px; }
  .sec-head .line{ flex:1; height:1px; background:linear-gradient(90deg,transparent,#c9a468); }
  .sec-head .line.r{ background:linear-gradient(270deg,transparent,#c9a468); }
  .sec-title{
    background:linear-gradient(180deg,#b23a26 0%,#8f2b1f 55%,#7c1f16 100%); color:#ffe9c2; font-size:16px; letter-spacing:3px; font-weight:700;
    padding:8px 22px; border-radius:20px;
    box-shadow:0 4px 10px rgba(143,43,31,.35), inset 0 0 0 1px rgba(255,220,160,.35), inset 0 1px 0 rgba(255,255,255,.2); position:relative;
  }
  .sec-title::before,.sec-title::after{ content:"◆"; color:#c9a468; font-size:9px; position:absolute; top:50%; transform:translateY(-50%); }
  .sec-title::before{ left:9px; } .sec-title::after{ right:9px; }

  /* ---------- 查询表单 ---------- */
  .jz-form{
    background:linear-gradient(180deg,#fffdf6,#f8efdb); border:1px solid #e2c896; border-radius:14px;
    padding:18px 16px; box-shadow:0 4px 12px rgba(150,100,50,.12);
  }
  .jz-form-title{ text-align:center; font-size:18px; font-weight:900; letter-spacing:3px; color:#8f2b1f; margin-bottom:4px; }
  .jz-form-sub{ text-align:center; font-size:12px; color:#a8835a; margin-bottom:16px; letter-spacing:1px; }
  .jz-field{ margin-bottom:14px; }
  .jz-label{ display:block; font-size:13px; color:#6f421f; font-weight:700; margin-bottom:6px; letter-spacing:1px; }
  .jz-label i{ color:#b0322a; margin-right:5px; }
  .jz-input{
    width:100%; padding:11px 13px; font-size:14px; color:#5a3a26;
    background:#fffdf6; border:1px solid #e2c896; border-radius:9px; outline:none;
    box-shadow:inset 0 1px 2px rgba(150,100,50,.08);
  }
  .jz-input::placeholder{ color:#b89c72; }
  .jz-input:focus{ border-color:#c9a468; box-shadow:0 0 0 2px rgba(201,164,104,.25); }
  .date-input-wrapper{ position:relative; }
  .error-message{ display:block; color:#b0322a; font-size:12px; margin-top:5px; }
  /* ---------- 表单：红金 banner ---------- */
  .q-banner{
    margin:-18px -16px 16px; position:relative; overflow:hidden;
    background:
      radial-gradient(circle at 50% 120%, rgba(255,190,120,.35) 0 30%, transparent 60%),
      linear-gradient(180deg,#e03a24 0%,#c22416 55%,#9c170c 100%);
    padding:24px 14px 18px; text-align:center;
  }
  .q-banner::after{
    content:"囍"; position:absolute; right:-14px; bottom:-26px; font-size:110px; font-weight:900;
    color:rgba(255,215,140,.14); font-family:"STSong","SimSun",serif; pointer-events:none;
  }
  .q-banner-title{
    position:relative; z-index:2; font-size:30px; font-weight:900; letter-spacing:6px; line-height:1.25;
    background:linear-gradient(180deg,#ffe9a8 0%,#ffd06e 55%,#e8a33c 100%);
    -webkit-background-clip:text; background-clip:text; color:transparent;
    filter:drop-shadow(0 2px 0 rgba(120,20,10,.55)) drop-shadow(0 6px 12px rgba(90,10,5,.45));
  }
  .q-banner-sub{
    position:relative; z-index:2; margin-top:10px; font-size:14px; letter-spacing:3px; color:#ffe3ad;
    text-shadow:0 1px 2px rgba(110,15,8,.6);
  }
  .q-lantern{ position:absolute; z-index:1; top:6px; width:40px; opacity:.95; }

  /* ---------- 双栏（女方/男方） ---------- */
  .q-cols{ display:flex; gap:10px; }
  .q-col{ flex:1; min-width:0; }
  .q-col-head{
    text-align:center; font-size:14.5px; font-weight:900; letter-spacing:3px; color:#8f2b1f;
    background:linear-gradient(180deg,#ffe1a0,#eec06a); padding:8px 0; margin-bottom:10px;
    border-radius:8px; box-shadow:0 2px 5px rgba(170,110,40,.25), inset 0 0 0 1px rgba(255,250,235,.5);
  }
  .q-col-head i{ margin-right:4px; }
  .q-col .jz-field{ margin-bottom:9px; }
  .q-col .jz-input{ padding:10px 9px; font-size:13px; }
  .q-col .jz-label{ display:none; }               /* 双栏窄，标签并入 placeholder */
  .date-input-wrapper .q-cal{
    position:absolute; right:9px; top:50%; transform:translateY(-50%);
    color:#c8392b; font-size:15px; pointer-events:none;
  }
  .date-input-wrapper .jz-input{ padding-right:30px; }

  /* ---------- 订婚时间下拉 / 协议 / 提交 ---------- */
  .q-select-row{ display:flex; align-items:center; gap:12px; margin-top:14px; }
  .q-select-label{ flex:0 0 auto; font-size:14.5px; font-weight:900; color:#5a3a26; letter-spacing:1px; }
  .q-select{
    flex:1; min-width:0; padding:10px 12px; font-size:14px; color:#5a3a26; appearance:auto;
    background:#fffdf6; border:1px solid #e2c896; border-radius:9px; outline:none;
  }
  .q-agree{ display:flex; align-items:center; justify-content:center; gap:6px; margin-top:14px; font-size:12.5px; color:#7a5b3a; cursor:pointer; }
  .q-agree input{ width:15px; height:15px; accent-color:#b23a26; }
  .q-agree a{ color:#b0322a; text-decoration:underline; }

  /* 「已有订单查询号？查看我的报告」入口：紧跟在「打算何时订婚」那一行之后
     （用户 2026-09-29 指定的位置）。做成一行低调的居中链接，不打断表单填写流。 */
  .q-find-row{ display:flex; align-items:center; justify-content:center; gap:8px; margin-top:10px; }
  .q-find-row::before, .q-find-row::after{
    content:''; flex:0 0 auto; width:30px; height:1px;   /* ⚠️ flex 子项必须 flex:0 0 auto，否则被压成 0 宽 */
  }
  .q-find-row::before{ background:linear-gradient(90deg,rgba(201,164,92,0),#c9a45c); }
  .q-find-row::after { background:linear-gradient(90deg,#c9a45c,rgba(201,164,92,0)); }
  .q-find-link{
    flex:0 0 auto; font-size:12.5px; font-weight:700; letter-spacing:.3px; color:#8f2b1f;
    text-decoration:none; white-space:nowrap;
  }
  .q-find-link i{ margin-right:4px; font-size:12px; }
  .q-find-link:active{ opacity:.7; }
  .q-submit{
    width:100%; margin-top:14px; border:none; cursor:pointer; position:relative;
    background:linear-gradient(180deg,#d8351f 0%,#b22314 55%,#931408 100%); color:#ffe9a8;
    font-size:21px; font-weight:900; letter-spacing:10px; text-indent:10px; padding:13px; border-radius:12px;
    font-family:"STSong","SimSun","Songti SC",serif;
    text-shadow:0 1px 1px rgba(110,15,8,.7);
    box-shadow:0 0 0 2px #8f1608, 0 0 0 4px #e8b96a, 0 8px 16px rgba(150,30,20,.35), inset 0 1px 0 rgba(255,255,255,.28), inset 0 -6px 12px rgba(120,15,8,.45);
  }
  .q-submit:active{ transform:translateY(1px); }
  .q-submit:disabled{ opacity:.6; cursor:default; }
  /* ---------- 底部悬浮「开始择日」（2026-09-30 用户指定，9 页统一）----------
     表单不在视口时底部出现（结果页 rm-mode 不出现），点击平滑滚回填写区域；
     真正的提交仍由表单内 #submitBtn 负责。z-index 880 < 付费墙 .rm-fab 的 900。 */
  .q-floatbar{
    position:fixed; left:0; right:0; bottom:0; margin:0 auto; width:100%; max-width:480px; z-index:880; display:none;
    padding:18px 16px calc(12px + env(safe-area-inset-bottom, 0px));
    background:linear-gradient(180deg, rgba(255,250,238,0) 0%, rgba(255,250,238,.92) 34%, #fffaee 100%);
    pointer-events:none;
  }
  .q-floatbar.show{ display:block; }
  .q-floatbar .q-submit{ pointer-events:auto; display:block; margin-top:0; max-width:448px; margin-left:auto; margin-right:auto; }
  body.q-floatpad{ padding-bottom:84px; }

  /* 日期弹层面板（覆盖 data.css 的 max-width:640px）：442px = 480 × 92%，左右各留 4% 间隔（2026-09-30 用户指定） */
  .gear-date160 .date-ctrl{ max-width:442px; }
  #alertMessage{ color:#b0322a; font-size:13px; text-align:center; margin-top:10px; }

  /* 测算进度 / 结果 */
  .calculation-process{ background:linear-gradient(180deg,#fffdf6,#f8efdb); border:1px solid #e2c896; border-radius:12px; padding:14px; margin-top:14px; }
  .process-title{ font-size:14px; font-weight:700; color:#8f2b1f; text-align:center; margin-bottom:10px; letter-spacing:1px; }
  .process-list .step{ text-align:center; color:#8f2b1f; font-size:13.5px; font-weight:700; padding:14px; background:#f8efdb; border-radius:8px; }
  .result-area{ background:linear-gradient(180deg,#fffdf6,#f8efdb); border:1px solid #e2c896; border-radius:12px; padding:14px; margin-top:14px; }
  .result-title{ font-size:14px; font-weight:700; color:#8f2b1f; text-align:center; margin-bottom:10px; letter-spacing:1px; }
  .result-item{ border:1px solid #e2c896; border-radius:10px; padding:14px 12px; margin-bottom:12px; background:#fffdf6; }
  .result-item h4{ font-size:1.05rem; font-weight:700; color:#8f2b1f; margin-bottom:8px; }
  .result-item p{ margin:4px 0; font-size:13px; line-height:1.7; color:#7a5b3a; }
  .result-item .lab{ color:#8a6a40; }

  /* ---------- 八字排盘卡（男/女双方，仅四柱+十神+纳音+五行） ---------- */
  .bz-wrap{ margin-bottom:14px; }
  .bz-card{
    background:linear-gradient(180deg,#fffdf6,#f8efdb); border:1px solid #e2c896; border-radius:12px;
    padding:12px 10px; margin-bottom:12px; box-shadow:0 3px 8px rgba(150,100,50,.10);
  }
  .bz-head{ display:flex; align-items:center; gap:8px; margin-bottom:5px; }
  .bz-sex{
    flex:0 0 26px; width:26px; height:26px; border-radius:50%;
    background:radial-gradient(circle at 32% 28%,#c14a38,#8f2b1f); color:#ffe9c2; font-size:14px;
    display:flex; align-items:center; justify-content:center; box-shadow:inset 0 0 0 1px rgba(255,220,170,.4);
  }
  .bz-name{ font-size:15px; font-weight:700; color:#8f2b1f; letter-spacing:1px; }
  .bz-gender{ font-size:11px; color:#a8875a; border:1px solid #d9bd8b; border-radius:3px; padding:1px 5px; }
  .bz-sub{ font-size:11.5px; color:#8a6a40; line-height:1.6; margin:0 2px 10px; }

  .bz-table{ width:100%; border-collapse:collapse; table-layout:fixed; background:#fffdf6; border:1px solid #e2c896; border-radius:8px; overflow:hidden; }
  .bz-table th,.bz-table td{ text-align:center; padding:6px 2px; font-size:12px; border-right:1px solid #f0e2c4; border-bottom:1px solid #f0e2c4; }
  .bz-table th{ background:linear-gradient(180deg,#b23a26,#8f2b1f); color:#ffe9c2; font-weight:600; font-size:11.5px; letter-spacing:1px; }
  .bz-table tr:last-child td{ border-bottom:0; }
  .bz-table th:last-child,.bz-table td:last-child{ border-right:0; }
  .bz-rowlab{ background:#f8efdb; color:#a8875a; font-size:11px; width:46px; }
  .bz-gan,.bz-zhi{ font-size:19px; font-weight:700; line-height:1.3; font-family:"STSong","SimSun","Songti SC",serif; }
  .bz-gan{ color:#8f2b1f; }
  .bz-zhi{ color:#6d4b2a; }
  /* 藏干 / 支十神：每个藏干一行，两行必须**逐行对齐**。
     ⚠️ 行高必须写「固定 px」而不是倍数：两行字号不同（11 / 11.5），若各写 line-height:1.85
     会按各自字号算出不同行高（20.35 / 21.28），到第 2、3 行就会错开，
     「藏干 ↔ 支神」的一一对应关系就看不出来了。两行统一 20px 才恒等对齐。
     ⚠️ 还必须 `vertical-align:top`：各行高度由该行最长的列（3 藏干）决定，若默认居中，
     藏 2 个干的那一列会整体下沉半行，第 1 行就对不上第 1 个支神了（参考版是顶对齐）。 */
  .bz-cg{ font-size:11px; color:#8a6a40; letter-spacing:.5px; }
  .bz-cg .cg-item{ display:block; line-height:20px; min-height:20px; }
  .bz-zss{ font-size:11.5px; color:#c8392b; font-weight:700; }
  .bz-zss .zss-item{ display:block; line-height:20px; min-height:20px; }
  .bz-cg, .bz-zss{ vertical-align:top; }
  .bz-ss{ font-size:11.5px; color:#7a5b3a; }
  .bz-ss.daymaster{ color:#b23a26; font-weight:700; }
  .bz-ny{ font-size:11px; color:#8a6a40; }
  .bz-cs{ font-size:11px; color:#8a6a40; }

  /* 喜用神建议 */
  .bz-xy{ margin-top:8px; background:#fffdf6; border:1px solid #f0e2c4; border-radius:8px; padding:8px 10px; font-size:11.5px; color:#7a5b3a; line-height:1.75; }
  .bz-xy .t{ color:#8f2b1f; font-weight:700; margin-right:10px; }
  .bz-xy .t.t2{ color:#9a6b1f; }          /* 辅神：与主用神区分但同为"喜用"色系 */
  .bz-xy .t.j{ color:#4a6a8a; }
  .bz-xy .k{ color:#a8875a; }

  /* 八字格局（月令取格法，独立模块） */
  .bz-ge{ margin-top:10px; background:#fdf7ec; border:1px solid #e8d3a8; border-radius:8px; padding:8px 10px; }
  .bz-ge .gh{ font-size:13px; color:#8f2b1f; font-weight:700; }
  .bz-ge .gh .cat{ margin-left:6px; font-size:11px; font-weight:400; color:#a8875a; border:1px solid #e0cba0; border-radius:10px; padding:1px 7px; }
  .bz-ge .gb{ margin-top:4px; font-size:11.5px; color:#7a5b3a; line-height:1.7; }
  .bz-ge .gk{ color:#a8875a; }
  .bz-ge b.xi{ color:#3f7a2a; font-weight:700; }
  .bz-ge b.ji{ color:#a32d2d; font-weight:700; }

  /* ============ 通用「单行横滑条」PC 通道增强（.hs-*） ============
     【问题】全站 tab / 标签栏统一「单行 + 横向滚动 + 隐藏滚动条」（用户明确规范）。
             这在触摸设备上完全没问题，但在 PC 上等于**没有任何通道**：
             滚动条被隐藏看不到、鼠标又没有原生横向滚动 —— 2026-09-28 用户
             「pc端直接无法拖动」「明明是8个tab 为什么只显示4个」都源于此。
     【方案】三条通道并存，互不干扰：
             ① 触摸：原生横滑（CSS overflow-x，不动）
             ② 鼠标：按住拖动（pointer 事件，手感与触摸一致）
             ③ 键鼠：左右箭头分页 + 聚焦后键盘方向键（tabindex=0）
             箭头只在真实溢出时出现，且触摸设备自动隐藏（触摸本来就能滑，箭头纯属遮挡）。
     【用法】JS 里 hscrollEnhance($body) —— 自动包一层 .hs-wrap 并插入 .hs-nav 箭头；
             再调 hscrollSyncAll() 同步「是否溢出 / 箭头置灰」。
             后续任何新加 tab / 标签栏都照此写，不要再单独手搓滚动逻辑。 */
  .hs-wrap{ display:flex; align-items:stretch; }
  .hs-body{ flex:1 1 auto; min-width:0; }
  .hs-wrap.hs-more .hs-body{ cursor:grab; }
  .hs-body.hs-dragging{ cursor:grabbing; user-select:none; -webkit-user-select:none; }
  .hs-body:focus-visible{ outline:2px solid #c9a45c; outline-offset:-3px; }
  .hs-nav{
    flex:0 0 auto; width:19px; padding:0; border:none; background:#fdf7ea;
    color:#8f2b1f; font-size:15px; font-weight:700; line-height:1; cursor:pointer; display:none;
  }
  .hs-nav.prev{ border-right:1px solid #f0e2c4; }
  .hs-nav.next{ border-left:1px solid #f0e2c4; }
  .hs-nav:hover{ background:#f7eeda; }
  .hs-nav:disabled{ color:#ddcba6; cursor:default; background:#fdf7ea; }
  .hs-wrap.hs-more .hs-nav{ display:block; }
  @media (hover:none){ .hs-wrap.hs-more .hs-nav{ display:none; } }
  /* 提示文案随输入方式切换：触摸说「滑动」，鼠标说「拖动 / 点箭头」 */
  .hint-touch{ display:none; }
  @media (hover:none){
    .hint-pc{ display:none; }
    .hint-touch{ display:inline; }
  }

  /* 智能古籍参考 · 容器 + Tab（后续新增古籍只需在前端 BZ_GUJI 数组加一行） */
  .bz-gj{ margin-top:10px; border:1px solid #e3d2ac; border-radius:8px; background:#fbf8f1; overflow:hidden; }
  .bz-gj-head{ padding:7px 10px; font-size:12.5px; font-weight:700; color:#8f2b1f; background:#f7eeda; border-bottom:1px solid #e3d2ac; }
  /* tab 栏固定「单行 + 横向滚动」，绝不换行堆成多行（用户已强调多次）。
     PC 通道由上面的通用 .hs-* 提供（箭头 + 按住拖动 + 键盘）。 */
  .bz-gj .hs-wrap{ border-bottom:1px solid #e3d2ac; }
  .bz-gj-tabs{
    display:flex; flex-wrap:nowrap; gap:6px; padding:7px 10px 0;
    overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch; scrollbar-width:none;
  }
  .bz-gj-tabs::-webkit-scrollbar{ display:none; }
  .bz-gj-tab{ flex:0 0 auto; cursor:pointer; font-size:11.5px; color:#a8875a; padding:3px 11px; border:1px solid #e3d2ac; border-bottom:none; border-radius:6px 6px 0 0; background:#fffdf6; margin-bottom:-1px; user-select:none; white-space:nowrap; }
  .bz-gj-tab.on{ color:#fff; background:linear-gradient(180deg,#b23a26,#8f2b1f); border-color:#8f2b1f; }
  .bz-gj-body{ padding:9px 10px; }
  /* 8 本书名在 480px 版心里一行放不下（实测 tab 条 ~600px vs 版心 ~374px），
     单行横滑是既有规范；但必须给出「还有更多」的可见提示，否则用户以为只有前几本。
     仅在真实溢出时插入（见 guJiTabAffordance()）。 */
  .bz-gj-slide{ padding:5px 10px 6px; font-size:10.5px; font-weight:700; color:#8f2b1f; border-bottom:1px solid #e3d2ac; text-align:center; }

  /* 智能古籍参考 · 穷通宝鉴 */
  .bz-qt{ }
  .bz-qt .qh{ font-size:13px; color:#8f2b1f; font-weight:700; }
  .bz-qt .qh .src{ margin-left:6px; font-size:10.5px; font-weight:400; color:#a8875a; border:1px solid #e0cba0; border-radius:10px; padding:1px 7px; }
  .bz-qt .qb{ margin-top:5px; font-size:11.5px; color:#7a5b3a; line-height:1.8; }
  .bz-qt .qk{ color:#a8875a; }
  .bz-qt .qy{ display:flex; flex-wrap:wrap; gap:5px; margin-top:6px; align-items:center; }
  .bz-qt .qy .ylab{ font-size:11px; color:#a8875a; }
  .bz-qt .qy .yi{ border:1px solid #e0cba0; border-radius:20px; padding:2px 9px; font-size:11px; background:#fffdf6; color:#7a5b3a; }
  .bz-qt .qy .yi b{ color:#8f2b1f; font-size:12px; }
  .bz-qt .qy .yi i{ font-style:normal; opacity:.75; margin-left:3px; font-size:10px; }
  .bz-qt .qy .yi.tou{ background:linear-gradient(180deg,#b23a26,#8f2b1f); color:#ffe9c2; border-color:#8f2b1f; }
  .bz-qt .qy .yi.tou b{ color:#ffe9c2; }
  .bz-qt .qy .yi.cang{ background:#f3ecd9; }
  .bz-qt .qy .yi.que{ border-style:dashed; opacity:.65; }
  .bz-qt .qsq{ margin-top:6px; background:#fffdf6; border:1px solid #f0e2c4; border-radius:6px; padding:6px 8px; font-size:11px; color:#7a5b3a; line-height:1.75; }
  .bz-qt .qsq .zq{ color:#8f2b1f; font-weight:700; }
  .bz-qt .qdy{ margin-top:6px; font-size:11px; color:#8a6a45; line-height:1.8; }
  .bz-qt .qdy span{ display:block; padding-left:12px; position:relative; }
  .bz-qt .qdy > span:before{ content:''; position:absolute; left:2px; top:7px; width:4px; height:4px; border-radius:50%; background:#c9a86a; }
  .bz-qt .qw{ margin-top:6px; border-top:1px dashed #e3d2ac; padding-top:6px; font-size:11px; color:#8a7a63; line-height:1.85; max-height:78px; overflow:hidden; }
  .bz-qt .qw.open{ max-height:none; }
  .bz-qt .qmore{ margin-top:4px; font-size:11px; color:#a8875a; cursor:pointer; user-select:none; }
  .bz-qt .qtip{ margin-top:5px; font-size:10.5px; color:#b09a78; }

  /* 智能古籍参考 · 滴天髓 */
  .bz-dt .dh{ font-size:13px; color:#8f2b1f; font-weight:700; }
  .bz-dt .dh .src{ margin-left:6px; font-size:10.5px; font-weight:400; color:#a8875a; border:1px solid #e0cba0; border-radius:10px; padding:1px 7px; }
  .bz-dt .dwen{ margin-top:7px; padding:8px 10px; background:#f7eeda; border:1px solid #e3d2ac; border-radius:6px; font-size:12.5px; line-height:2; color:#6b4a2a; text-align:center; letter-spacing:.5px; }
  .bz-dt em{ font-style:normal; color:#8f2b1f; font-weight:700; }
  .bz-dt .dgai{ margin-top:6px; font-size:11.5px; color:#7a5b3a; line-height:1.8; }
  .bz-dt .dk{ color:#a8875a; }
  .bz-dt .dyz, .bz-dt .drs{ margin-top:6px; font-size:11.5px; color:#7a5b3a; line-height:1.9; }
  .bz-dt .drs{ border-top:1px dashed #e3d2ac; padding-top:6px; }
  .bz-dt .dhit{ margin-top:6px; background:#fffdf6; border:1px dashed #e0cba0; border-radius:6px; padding:6px 8px; font-size:11px; color:#8a6a45; line-height:1.8; }
  .bz-dt .dhit span{ display:block; padding-left:14px; position:relative; }
  .bz-dt .dhit > span:before{ content:''; position:absolute; left:2px; top:8px; width:4px; height:4px; border-radius:50%; background:#c9a86a; }
  .bz-dt .dhit .fr{ color:#8f2b1f; font-weight:700; margin-right:5px; }
  .bz-dt .dtip{ margin-top:6px; font-size:10.5px; color:#b09a78; }

  /* 智能古籍参考 · 三命通会 */
  .bz-sm .sh{ font-size:13px; color:#8f2b1f; font-weight:700; }
  .bz-sm .sh .src{ margin-left:6px; font-size:10.5px; font-weight:400; color:#a8875a; border:1px solid #e0cba0; border-radius:10px; padding:1px 7px; }
  .bz-sm .ssec{ margin-top:8px; font-size:11.5px; font-weight:700; color:#8f2b1f; border-left:3px solid #c0392b; padding-left:6px; line-height:1.4; }
  .bz-sm .ssec i{ font-style:normal; font-weight:400; color:#a8875a; font-size:10.5px; margin-left:5px; }
  .bz-sm .sk{ color:#a8875a; }
  .bz-sm .sna{ display:inline-flex; align-items:center; gap:4px; margin-top:5px; border:1px solid #e0cba0; border-radius:20px; padding:2px 10px; font-size:11px; background:#fffdf6; color:#7a5b3a; }
  .bz-sm .sna b{ color:#8f2b1f; font-size:12px; }
  .bz-sm .sna u{ text-decoration:none; font-size:10px; color:#a8875a; }
  .bz-sm .sw{ margin-top:5px; font-size:11.5px; color:#7a5b3a; line-height:1.85; }
  .bz-sm .swen{ margin-top:6px; padding:7px 9px; background:#f7eeda; border:1px solid #e3d2ac; border-radius:6px; font-size:12px; line-height:1.95; color:#6b4a2a; text-align:center; letter-spacing:.4px; }
  .bz-sm .sduan{ margin-top:6px; background:#fffdf6; border:1px solid #f0e2c4; border-radius:6px; padding:6px 8px; font-size:11.5px; color:#6b4a2a; line-height:1.85; }
  .bz-sm .sduan .lb{ display:block; font-size:10.5px; color:#a8875a; margin-bottom:2px; }
  .bz-sm .sex{ margin-top:6px; background:#fffdf6; border:1px dashed #e0cba0; border-radius:6px; padding:6px 8px; font-size:11px; color:#8a6a45; line-height:1.75; max-height:74px; overflow:hidden; }
  .bz-sm .sex.open{ max-height:none; }
  .bz-sm .sex span{ display:inline-block; margin:0 10px 2px 0; white-space:nowrap; }
  .bz-sm .sex i{ font-style:normal; color:#8f2b1f; font-weight:700; margin-right:3px; }
  .bz-sm .smore{ margin-top:4px; font-size:10.5px; color:#a8875a; cursor:pointer; user-select:none; }
  .bz-sm .sduan.on{ border-color:#c0392b; background:#fffaf2; }
  .bz-sm .sduan.on .lb{ color:#8f2b1f; font-weight:700; }
  .bz-sm .soth{ margin-top:8px; background:#fffdf6; border:1px solid #f0e2c4; border-radius:6px; padding:6px 8px; }
  .bz-sm .soth-h{ font-size:11px; color:#8f2b1f; font-weight:700; display:flex; align-items:center; gap:6px; }
  .bz-sm .soth-h .cnt{ font-weight:400; font-size:10px; color:#a8875a; border:1px solid #e0cba0; border-radius:10px; padding:0 6px; }
  .bz-sm .soth-list{ margin-top:4px; max-height:0; overflow:hidden; transition:max-height .25s ease; }
  .bz-sm .soth-list.open{ max-height:none; }
  .bz-sm .soth-i{ padding:5px 0; border-top:1px dashed #e3d2ac; }
  .bz-sm .soth-i:first-child{ border-top:none; padding-top:2px; }
  .bz-sm .so-rz{ font-size:11px; color:#8f2b1f; font-weight:700; }
  .bz-sm .so-w{ margin-top:2px; font-size:11px; color:#6b4a2a; line-height:1.8; }
  .bz-sm .so-ex{ margin-top:3px; font-size:10.5px; color:#8a6a45; line-height:1.7; }
  .bz-sm .so-ex span{ display:inline-block; margin:0 8px 1px 0; }
  .bz-sm .so-ex i{ font-style:normal; color:#8f2b1f; font-weight:700; margin-right:2px; }
  .bz-sm .stip{ margin-top:6px; font-size:10.5px; color:#b09a78; }

  /* 智能古籍参考 · 子平真诠 */
  .bz-zp .zh{ font-size:13px; color:#8f2b1f; font-weight:700; }
  .bz-zp .zh .src{ margin-left:6px; font-size:10.5px; font-weight:400; color:#a8875a; border:1px solid #e0cba0; border-radius:10px; padding:1px 7px; }
  .bz-zp .zgang{ margin-top:5px; padding:6px 9px; background:#f7eeda; border:1px solid #e3d2ac; border-radius:6px; font-size:11.5px; color:#6b4a2a; line-height:1.85; }
  .bz-zp .zgang b{ color:#8f2b1f; margin-right:5px; font-size:11px; }
  .bz-zp .zshun{ margin-top:5px; background:#fffdf6; border:1px solid #f0e2c4; border-radius:6px; padding:6px 8px; font-size:11.5px; color:#6b4a2a; line-height:1.8; }
  .bz-zp .zshun .zd{ display:inline-block; font-size:10px; color:#fff; background:linear-gradient(180deg,#b23a26,#8f2b1f); border-radius:10px; padding:1px 7px; margin-right:6px; vertical-align:1px; }
  .bz-zp .zshun .zd.ni{ background:linear-gradient(180deg,#6b7a8f,#4d5a6b); }
  .bz-zp .znote{ margin-top:4px; font-size:10.5px; color:#a8875a; line-height:1.7; }
  .bz-zp .zsec{ margin-top:8px; font-size:11.5px; font-weight:700; color:#8f2b1f; border-left:3px solid #c0392b; padding-left:6px; line-height:1.4; }
  .bz-zp .zsec i{ font-style:normal; font-weight:400; color:#a8875a; font-size:10.5px; margin-left:5px; }
  .bz-zp .zw{ margin-top:5px; font-size:11.5px; color:#6b4a2a; line-height:1.9; max-height:104px; overflow:hidden; position:relative; }
  .bz-zp .zw.open{ max-height:none; }
  .bz-zp .zw:not(.open):after{ content:''; position:absolute; left:0; right:0; bottom:0; height:26px; background:linear-gradient(180deg,rgba(251,248,241,0),#fbf8f1); }
  .bz-zp .zw p{ margin:0 0 5px; text-indent:1em; }
  .bz-zp .zw p:last-child{ margin-bottom:0; }
  .bz-zp .zmore{ margin-top:3px; font-size:10.5px; color:#a8875a; cursor:pointer; user-select:none; }
  .bz-zp .zt-hd{ margin-top:8px; font-size:11px; color:#8f2b1f; font-weight:700; display:flex; align-items:center; gap:6px; cursor:pointer; user-select:none; background:#fffdf6; border:1px solid #f0e2c4; border-radius:6px; padding:5px 8px; }
  .bz-zp .zt-hd .cnt{ font-weight:400; font-size:10px; color:#a8875a; border:1px solid #e0cba0; border-radius:10px; padding:0 6px; }
  .bz-zp .zt-hd .ar{ margin-left:auto; font-size:10px; color:#a8875a; font-weight:400; }
  .bz-zp .ztong{ margin-top:5px; max-height:0; overflow:hidden; transition:max-height .25s ease; }
  .bz-zp .ztong.open{ max-height:none; }
  .bz-zp .zt-i{ border:1px solid #f0e2c4; border-radius:6px; background:#fffdf6; margin-bottom:4px; overflow:hidden; }
  .bz-zp .zt-h{ font-size:11px; color:#7a5b3a; padding:5px 8px; cursor:pointer; user-select:none; display:flex; align-items:center; }
  .bz-zp .zt-i.on .zt-h{ color:#8f2b1f; font-weight:700; background:#f7eeda; }
  .bz-zp .zt-h .ar{ margin-left:auto; font-size:10px; color:#a8875a; }
  .bz-zp .zt-b{ display:none; padding:0 9px 7px; font-size:11px; color:#6b4a2a; line-height:1.85; border-top:1px dashed #e3d2ac; }
  .bz-zp .zt-i.on .zt-b{ display:block; }
  .bz-zp .zt-b p{ margin:5px 0 0; text-indent:1em; }
  .bz-zp .ztip{ margin-top:6px; font-size:10.5px; color:#b09a78; }

  /* 智能古籍参考 · 通用「日主论」体例（渊海子平 / 神峰通考 / 千里命稿 / 五行精纪）
     沿用古籍区既有令牌：象牙纸 #fffdf6 + 金线 #f0e2c4/#e3d2ac + 朱 #8f2b1f/#b23a26，
     「慎」用既有的灰蓝 #6b7a8f（与 .bz-zp .zshun .zd.ni 同色），不引入新色。 */
  .bz-lb .lh{ font-size:13px; color:#8f2b1f; font-weight:700; }
  .bz-lb .lh .src{ margin-left:6px; font-size:10.5px; font-weight:400; color:#a8875a; border:1px solid #e0cba0; border-radius:10px; padding:1px 7px; }
  .bz-lb .lmeta{ margin-top:5px; padding:5px 8px; background:#fffdf6; border:1px solid #f0e2c4; border-radius:6px; font-size:11px; color:#7a5b3a; line-height:1.85; }
  .bz-lb .lmeta b{ color:#8f2b1f; margin-right:3px; }
  .bz-lb .lmeta b:not(:first-child){ margin-left:8px; }
  .bz-lb .lmeta .xi{ color:#b23a26; font-weight:700; }
  .bz-lb .lmeta .ji{ color:#6b7a8f; font-weight:700; }
  .bz-lb .lwhy{ margin-top:3px; color:#a8875a; line-height:1.75; }
  .bz-lb .lb-sec{ margin-top:7px; border:1px solid #f0e2c4; border-radius:6px; overflow:hidden; background:#fffdf6; }
  .bz-lb .lb-sec-h{ display:flex; align-items:center; gap:6px; font-size:11.5px; font-weight:700; color:#8f2b1f; background:#f7eeda; padding:5px 8px; cursor:pointer; user-select:none; }
  .bz-lb .lb-sec-h .cnt{ font-weight:400; font-size:10px; color:#a8875a; border:1px solid #e0cba0; border-radius:10px; padding:0 6px; }
  .bz-lb .lb-sec-h .ar{ margin-left:auto; font-size:10px; color:#a8875a; font-weight:400; transition:transform .2s ease; }
  /* 折叠箭头语义：展开态朝上、折叠态朝下（基础字符 ▾） */
  .bz-lb .lb-sec:not(.fold) .lb-sec-h .ar{ transform:rotate(180deg); }
  .bz-lb .lb-sec.fold .lb-sec-b{ display:none; }
  .bz-lb .lb-sec-b{ padding:6px 8px; }
  .bz-lb .lb-i{ border-top:1px dashed #f0e2c4; padding:5px 0; }
  .bz-lb .lb-i:first-child{ border-top:none; padding-top:0; }
  .bz-lb .lb-v{ font-size:11.5px; color:#6b4a2a; line-height:1.85; }
  .bz-lb .lb-lv{ display:inline-block; font-size:9.5px; line-height:1.55; border-radius:3px; padding:0 4px; margin-right:5px; vertical-align:1px; color:#fff; background:#c0a878; }
  .bz-lb .lb-i.ji .lb-lv{ background:linear-gradient(180deg,#b23a26,#8f2b1f); }
  .bz-lb .lb-i.xiong .lb-lv{ background:#6b7a8f; }
  .bz-lb .lb-b{ margin-top:3px; font-size:10.5px; color:#a8875a; line-height:1.75; }
  .bz-lb .lb-s{ display:inline-block; margin-left:5px; font-size:9.5px; color:#a8875a; border:1px solid #e0cba0; border-radius:8px; padding:0 5px; vertical-align:1px; }
  .bz-lb .lb-q{ font-size:11px; color:#7a5b3a; line-height:1.8; }
  .bz-lb .lb-grp{ border-top:1px dashed #f0e2c4; padding:5px 0; }
  .bz-lb .lb-grp:first-child{ border-top:none; padding-top:0; }
  .bz-lb .lb-grp-h{ font-size:11px; font-weight:700; color:#8f2b1f; margin-bottom:3px; }
  .bz-lb .lb-grp-h .cnt{ margin-left:5px; font-weight:400; font-size:10px; color:#a8875a; border:1px solid #e0cba0; border-radius:10px; padding:0 6px; }
  .bz-lb .lb-grp .lb-i{ padding-left:8px; border-left:2px solid #f3e7cd; }
  .bz-lb .lb-sub{ margin-top:5px; }
  .bz-lb .lb-sub > b{ display:block; font-size:10.5px; color:#a8875a; margin-bottom:2px; }
  /* 短词 chips 用行内元素自然折行，不用 flex（避免被误当成"标签栏"） */
  .bz-lb .lb-chips span{ display:inline-block; margin:2px 5px 2px 0; font-size:11px; color:#7a5b3a; background:#f7eeda; border:1px solid #e3d2ac; border-radius:10px; padding:1px 8px; }
  .bz-lb .lb-kv{ font-size:10.5px; color:#7a5b3a; line-height:1.8; border-top:1px dashed #f0e2c4; padding:4px 0; }
  .bz-lb .lb-kv:first-child{ border-top:none; }
  .bz-lb .lb-kv b{ color:#a8875a; margin-right:4px; }
  .bz-lb .lb-case{ border-top:1px dashed #f0e2c4; padding:5px 0; font-size:11px; color:#7a5b3a; line-height:1.8; }
  .bz-lb .lb-case:first-child{ border-top:none; padding-top:0; }
  .bz-lb .lb-case > b{ color:#8f2b1f; }
  .bz-lb .tip{ margin-top:6px; font-size:10.5px; color:#b09a78; }

  .bz-wx{ display:flex; flex-wrap:wrap; justify-content:center; gap:6px; margin-top:10px; }
  .bz-wx .wxi{ background:#fffdf6; border:1px solid #e2c896; border-radius:20px; padding:3px 10px; font-size:11.5px; color:#7a5b3a; }
  .bz-wx .wxi b{ color:#8f2b1f; font-size:12.5px; margin-left:3px; }
  .bz-wx .wxi.wang{ background:linear-gradient(180deg,#b23a26,#8f2b1f); color:#ffe9c2; border-color:#8f2b1f; }
  .bz-wx .wxi.wang b{ color:#ffe9c2; }
  .bz-wx .wxi.tag{ background:#f8efdb; border-style:dashed; border-color:#d9bd8b; color:#a8875a; }
  .bz-note{ margin-top:8px; font-size:11px; color:#a8875a; }
  .bz-empty{ text-align:center; color:#b0322a; font-size:12.5px; padding:10px; }

  /* 命格信息（生肖 / 命宫 / 日主 等） */
  .bz-info{ display:grid; grid-template-columns:repeat(2,1fr); gap:6px; margin-top:10px; }
  .bz-info .bi{ background:#fffdf6; border:1px solid #f0e2c4; border-radius:8px; padding:5px 8px; font-size:11.5px; color:#7a5b3a; }
  .bz-info .bi b{ color:#8f2b1f; font-weight:700; }
  .bz-info .bi.wide{ grid-column:1 / -1; }

  /* 双方八字简析（2026-09-28：**已去掉评分条**，只做正向定性描述） */
  .bz-hh{ background:linear-gradient(180deg,#fffdf6,#f8efdb); border:1px solid #e2c896; border-radius:12px; padding:12px; margin-bottom:12px; box-shadow:0 3px 8px rgba(150,100,50,.10); }
  .bz-hh-title{ font-size:14px; font-weight:700; color:#8f2b1f; text-align:center; letter-spacing:1px; margin-bottom:10px; }
  .bz-hh-sum{ background:#fffdf6; border:1px solid #e2c896; border-left:3px solid #c14a38; border-radius:8px; padding:9px 11px; margin-bottom:10px; font-size:12.5px; line-height:1.9; color:#8f2b1f; }
  .bz-hh-item{ display:flex; gap:8px; padding:7px 0; border-bottom:1px dashed #e2c896; font-size:12px; line-height:1.65; }
  .bz-hh-item:last-child{ border-bottom:0; }
  .bz-hh-item .nm{ flex:0 0 60px; color:#8a6a40; font-weight:700; }
  .bz-hh-item .tx{ flex:1 1 auto; color:#7a5b3a; }

  /* ---------- 为什么 / 优势 ---------- */
  .why-card{
    background:linear-gradient(180deg,#fffdf6,#f8efdb); border:1px solid #e2c896; border-radius:14px;
    padding:16px 14px; margin-bottom:12px; display:flex; gap:13px; align-items:flex-start; box-shadow:0 3px 8px rgba(150,100,50,.10);
  }
  .why-ico{
    flex:0 0 54px; width:54px; height:54px; border-radius:50%;
    background:radial-gradient(circle at 32% 28%,#c14a38,#8f2b1f);
    display:flex; align-items:center; justify-content:center; color:#ffe9c2; font-size:24px;
    box-shadow:inset 0 0 0 2px rgba(255,220,170,.35), 0 4px 8px rgba(120,40,25,.3);
  }
  .why-card h3{ font-size:15px; color:#8f2b1f; letter-spacing:1px; margin-bottom:5px; }
  .why-card h3 span{ font-size:11px; color:#c9a468; margin-left:6px; letter-spacing:2px; }
  .why-card p{ font-size:12.5px; line-height:1.85; color:#7a5b3a; }

  /* ---------- 为何要选择订婚吉日（红缎带 + 图文内容区） ---------- */
  .wz-ribbon{ display:flex; align-items:center; justify-content:center; margin-bottom:14px; }
  .wz-ribbon span{
    background:linear-gradient(180deg,#d8351f 0%,#b22314 55%,#931408 100%); color:#ffe9c2;
    font-size:17px; font-weight:900; letter-spacing:3px; padding:10px 30px;
    box-shadow:0 4px 10px rgba(150,30,20,.3), inset 0 1px 0 rgba(255,255,255,.25), inset 0 -5px 10px rgba(120,15,8,.4);
   border-radius:10px; }
  .wz-card{
    background:linear-gradient(180deg,#fffdf8,#fdf6e8); border:1px solid #e2c896; border-radius:16px;
    padding:16px 14px 18px; box-shadow:0 4px 12px rgba(150,100,50,.12);
  }
  .wz-hero{ text-align:center; margin-bottom:4px; }
  .wz-lead{
    text-align:center; color:#b0322a; font-size:17px; font-weight:900; line-height:1.8; letter-spacing:2px;
    background:linear-gradient(180deg,#fdeee0,#fbe3cc); border:1px solid #eec9a8; border-radius:10px;
    padding:12px 8px; margin:8px 0 18px;
  }
  .wz-item{ display:flex; gap:15px; align-items:flex-start; margin-bottom:18px; }
  .wz-item.rev{ flex-direction:row-reverse; }
  .wz-item:last-child{ margin-bottom:0; }
  .wz-ico{ flex:0 0 104px; width:104px; height:104px; filter:drop-shadow(0 4px 9px rgba(160,50,35,.22)); }
  .wz-item h3{ font-size:15.5px; color:#b0322a; font-weight:900; letter-spacing:1px; margin:2px 0 7px; }
  .wz-item p{ font-size:13px; line-height:1.95; color:#6f5236; }

  /* ---------- 协议弹窗 ---------- */
  .modal-mask{
    position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:20000;
    display:none; align-items:center; justify-content:center; padding:16px;
  }
  .modal-mask.show{ display:flex; }
  .modal-box{
    width:100%; max-width:480px; height:78vh; background:#f6eedd; border-radius:14px;
    display:flex; flex-direction:column; overflow:hidden; box-shadow:0 12px 30px rgba(60,30,10,.45);
  }
  .modal-head{
    background:linear-gradient(180deg,#b23a26,#8f2b1f); color:#ffe9c2; display:flex; align-items:center;
    padding:10px 12px; gap:6px; flex:0 0 auto;
  }
  .modal-head .mtab{ font-size:13.5px; font-weight:700; padding:5px 11px; border-radius:16px; cursor:pointer; opacity:.72; }
  .modal-head .mtab.cur{ opacity:1; background:rgba(255,255,255,.16); box-shadow:inset 0 0 0 1px rgba(255,225,190,.4); }
  .modal-head .modal-close{ margin-left:auto; font-size:18px; cursor:pointer; padding:2px 5px; opacity:.9; }
  .modal-body{ flex:1; width:100%; border:0; background:#f6eedd; }
  .modal-foot{ flex:0 0 auto; padding:10px 12px; border-top:1px solid #e2c896; background:#fdf6e8; }
  .modal-foot button{
    width:100%; border:none; cursor:pointer; border-radius:10px; padding:11px;
    background:linear-gradient(180deg,#d8351f,#a81c12); color:#ffe9c2; font-size:15px; font-weight:900; letter-spacing:3px;
  }
  .modal-foot button:active{ transform:translateY(1px); }

  footer{ margin-top:22px; text-align:center; font-size:11px; color:#a8835a; line-height:1.9; letter-spacing:1px; }
  footer .links{ color:#8a6a40; }
  /* 页脚的择吉介绍是唯一可点的一项：与其它几项同色，仅去掉下划线，保持页脚齐整 */
  footer .links a{ color:#8a6a40; text-decoration:none; } footer .links span{ margin:0 6px; }

  /* ================= 付费墙 / 马赛克（结果页） ================= */
  .rm-mode #weddingForm, .rm-mode #alertMessage, .rm-mode #calculationProcess, .rm-mode .sec-head { display:none !important; }
  .rm-mode .rm-hide { display:none !important; }
  .rm-mode #resultArea { display:block !important; }

  /* 高强度马赛克占位（古籍精批 / 吉日精解） */
  .rm-mosaic-zone{
    position:relative; margin-top:14px; padding:16px; border-radius:12px; overflow:hidden;
    background:repeating-linear-gradient(45deg,#f3e6cf,#f3e6cf 8px,#ead9bb 8px,#ead9bb 16px);
  }
  .rm-mz-head{ position:relative; z-index:2; font-size:13px; font-weight:800; color:#7a2a1c; margin-bottom:6px; }
  /* 横向滚动提示。放标题右端同高会把标题挤成两行（标题本身就要 299px，可用宽仅 356px），
     所以另起一行居左显示，用亮丽的正红提亮（在米色斜纹底上足够跳）。 */
  .rm-mz-hint{ position:relative; z-index:2; text-align:left; font-size:10.5px; font-weight:700; color:#d93b26; line-height:1.4; margin:0 0 10px 15px; }
  /* 未解锁时也要露出「解锁后能看到哪些古籍」：tab 名清晰可见，只把正文加密。
     同样固定「单行 + 横向滚动」，不换行；PC 通道由通用 .hs-* 提供（箭头 + 按住拖动）。 */
  .rm-mosaic-zone .hs-wrap{ position:relative; z-index:2; margin:0 0 12px; }
  .rm-mz-tabs{
    display:flex; flex-wrap:nowrap; gap:6px;
    overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch; scrollbar-width:none;
  }
  .rm-mz-tabs::-webkit-scrollbar{ display:none; }
  .rm-mz-tab{
    flex:0 0 auto; white-space:nowrap;
    font-size:11.5px; color:#8f2b1f; background:#fffdf6;
    border:1px solid #e3d2ac; border-radius:6px; padding:3px 11px;
  }
  .rm-mz-line{
    height:15px; margin:7px 0; border-radius:5px;
    background:linear-gradient(90deg,#9c7b4e,#caa978,#9c7b4e); background-size:42px 100%;
    filter:blur(4px); opacity:.85;
  }
  .rm-mz-lock{
    position:relative; z-index:2; margin-top:10px; text-align:center;
    font-size:13px; font-weight:800; color:#fff;
    background:linear-gradient(135deg,rgba(200,57,43,.96),rgba(168,28,18,.96));
    border:1px solid #f3cf8e; border-radius:30px; padding:8px 12px;
  }
  .rm-locked{
    text-align:center; font-size:15px; font-weight:800; color:#7a2a1c;
    background:linear-gradient(180deg,#fff6e6,#f6e7c8); border:1px dashed #c8392b;
    border-radius:10px; padding:12px; margin-bottom:10px;
  }
  .rm-locked b{ color:#c8392b; font-size:18px; }
  /* 已解锁吉日列表顶部：明确告知「本列表按你所选时间范围筛选」 */
  .rm-day-head{
    text-align:center; font-size:14px; font-weight:700; color:#8f2b1f;
    background:linear-gradient(180deg,#fff6e6,#f7ecd4); border:1px solid #e2c896;
    border-radius:10px; padding:10px 12px; margin-bottom:12px;
  }
  .rm-day-head b{ color:#c8392b; font-size:17px; }
  .rm-day-head i{ color:#b8912f; margin-right:4px; }
  .rm-dl-line{
    height:54px; margin:8px 0; border-radius:8px;
    background:repeating-linear-gradient(90deg,#e7d4b2 0 10px,#d8c09a 10px 20px);
    filter:blur(4px); opacity:.85;
  }

  /* ================= 订单查询号（支付成功后展示，用户凭它找回报告） =================
     设计意图：查询号是用户唯一的"找回凭据"，必须**显眼到让人愿意截图**。
     样式沿用设计令牌（象牙纸渐变 + 外金线 + ::after 内嵌细金线 + 朱色渐变大字）。
     两处落点：① 结果区顶部常显卡片 `.rm-qn`（第一道兜底：用户哪天再进来还能补截图）
               ② 支付成功回页时弹一次的弹层（保证第一眼看到） */

  /* —— ① 结果区常显卡片 —— */
  .rm-qn{
    position:relative; margin:0 0 14px; padding:16px 14px 14px; border-radius:12px;
    background:linear-gradient(180deg,#fffefb 0%,#fffaf0 50%,#fcf2e0 100%);
    border:1px solid #e6cfa4; text-align:center;
    box-shadow:0 6px 20px rgba(150,105,40,.10), 0 1px 2px rgba(150,105,40,.05);
  }
  .rm-qn::after{
    content:''; position:absolute; inset:4px; border-radius:8px;
    border:1px solid rgba(201,164,92,.32); pointer-events:none;
  }
  /* 标题：两侧渐隐金线（"单列居中文字不再单调"的主力手法） */
  .rm-qn-hd{
    position:relative; z-index:2; font-size:12.5px; font-weight:700;
    letter-spacing:2px; color:#8f2b1f;
  }
  .rm-qn-hd::before, .rm-qn-hd::after{
    content:''; display:inline-block; vertical-align:middle; width:26px; height:1px; margin:0 8px;
  }
  .rm-qn-hd::before{ background:linear-gradient(90deg,rgba(201,164,92,0),#c9a45c); }
  .rm-qn-hd::after { background:linear-gradient(90deg,#c9a45c,rgba(201,164,92,0)); }
  /* 查询号大字：朱色渐变 + 大字号 + 宽字距（易读、好转述给客服）
     ⚠️ `padding-left` 与 `letter-spacing` 相等 —— 补偿末位字距造成的"整体偏左"，
        否则居中看起来会歪 2.5px。 */
  .rm-qn-no{
    position:relative; z-index:2; margin:9px 0 8px; padding-left:5px;
    font-family:"Times New Roman","STSong","SimSun",serif;
    font-size:31px; font-weight:700; letter-spacing:5px; line-height:1.2;
    color:#a81c12;
    background:linear-gradient(180deg,#cf4433 0%,#a81c12 55%,#8c1409 100%);
    -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  }
  .rm-qn-tip{ position:relative; z-index:2; font-size:12px; line-height:1.75; color:#7a6142; }
  .rm-qn-tip b{ color:#8f2b1f; }
  .rm-qn-copy{
    position:relative; z-index:2; display:inline-block; margin-top:11px; padding:7px 16px;
    border:1px solid #e0bd77; border-radius:20px; cursor:pointer;
    font-size:12px; font-weight:700; letter-spacing:1px; color:#8a6a2f;
    background:linear-gradient(180deg,#fffdf6,#fbf1dc);
  }
  .rm-qn-copy:active{ filter:brightness(.95); }

  /* —— ② 弹层（展示 / 输入查看 共用同一套遮罩与卡片外观）
        2026-09-30 视觉升级：悬浮朱印「查」+ 双金线卡框 + 红金主按钮 + 遮罩磨砂 —— */
  .rm-qn-mask{
    position:fixed; inset:0; z-index:1200; background:rgba(40,24,12,.58);
    -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px);
    opacity:0; pointer-events:none; transition:opacity .25s ease;
  }
  .rm-qn-mask.on{ opacity:1; pointer-events:auto; }
  .rm-qn-modal{
    position:fixed; left:50%; top:50%; z-index:1201; width:min(360px,88vw);
    padding:30px 20px 18px; border-radius:18px; text-align:center;
    background:linear-gradient(180deg,#fffefb 0%,#fffaf0 52%,#fcf1dd 100%);
    border:1px solid #dfc290;
    box-shadow:0 24px 60px rgba(70,38,8,.38), inset 0 2px 0 rgba(255,255,255,.6);
    opacity:0; pointer-events:none;
    transform:translate(-50%,-46%) scale(.95);
    transition:opacity .28s ease, transform .28s cubic-bezier(.2,.8,.3,1);
  }
  .rm-qn-modal.on{ opacity:1; pointer-events:auto; transform:translate(-50%,-50%) scale(1); }
  .rm-qn-modal::after{
    content:''; position:absolute; inset:6px; border-radius:13px;
    border:1px solid rgba(201,164,92,.45); pointer-events:none;
  }
  /* 顶部悬浮朱印：压住卡片上缘，白边 + 金环双描 */
  .rm-qn-seal{
    position:relative; z-index:3; width:52px; height:52px; margin:-56px auto 10px;
    display:flex; align-items:center; justify-content:center; border-radius:50%;
    background:radial-gradient(circle at 35% 28%, #dd4a32, #b22314 72%);
    color:#ffe9c2; font-size:24px; font-weight:900; font-family:"STSong","SimSun",serif;
    text-shadow:0 1px 1px rgba(110,15,8,.65);
    box-shadow:0 0 0 3px #fffdf6, 0 0 0 4.5px #c9a45c, 0 8px 18px rgba(150,30,20,.35);
  }
  .rm-qn-modal .rm-qn-hd{ font-size:17px; }
  .rm-qn-modal .rm-qn-tip{ font-size:12.5px; line-height:1.85; color:#8a745a; }
  .rm-qn-modal .rm-qn-no{ font-size:30px; letter-spacing:5px; padding-left:5px; margin:14px 0; }
  .rm-qn-btn{
    position:relative; z-index:2; display:block; width:100%; margin-top:16px; padding:13px 0;
    border:0; border-radius:11px; cursor:pointer;
    font-size:15px; font-weight:900; letter-spacing:4px; text-indent:4px;
    font-family:"STSong","SimSun",serif;
    color:#ffe9a8; background:linear-gradient(180deg,#d8351f 0%,#b22314 55%,#931408 100%);
    text-shadow:0 1px 1px rgba(110,15,8,.7);
    box-shadow:0 0 0 2px #8f1608, 0 0 0 4px #e8b96a, 0 8px 16px rgba(150,30,20,.32),
               inset 0 1px 0 rgba(255,255,255,.28), inset 0 -5px 10px rgba(120,15,8,.4);
  }
  .rm-qn-btn:active{ filter:brightness(.94); transform:translateY(1px); }
  .rm-qn-btn.ghost{
    margin-top:10px; color:#8a6a2f; border:1px solid #e0bd77;
    font-weight:700; font-size:13.5px; letter-spacing:2px; text-indent:2px;
    background:linear-gradient(180deg,#fffdf6,#fbf1dc);
    box-shadow:none; text-shadow:none;
  }
  /* 查看弹层的输入框 */
  .rm-qn-input{
    position:relative; z-index:2; width:100%; box-sizing:border-box; margin:14px 0 0;
    padding:13px 10px; border:1.5px solid #e0bd77; border-radius:10px; text-align:center;
    font-family:"Times New Roman","STSong","SimSun",serif;
    font-size:24px; font-weight:700; letter-spacing:5px; color:#3d2a18;
    background:#fffef9; outline:none;
    box-shadow:inset 0 2px 5px rgba(160,120,60,.10);
  }
  .rm-qn-input:focus{ border-color:#c9a45c; box-shadow:inset 0 2px 5px rgba(160,120,60,.08), 0 0 0 4px rgba(201,164,92,.20); }
  .rm-qn-msg{ position:relative; z-index:2; min-height:17px; margin-top:8px; font-size:12px; color:#c8392b; }
  .rm-qn-msg.ok{ color:#2e7d4f; }
  /* 本机最近记录（第二道兜底：用户没截图，同设备也能自救） */
  .rm-qn-local{ position:relative; z-index:2; margin-top:18px; text-align:left; }
  .rm-qn-local-hd{
    font-size:11.5px; font-weight:700; letter-spacing:1px; color:#8a6a2f;
    padding-top:14px; border-top:1px dashed #eddfc2;
  }
  .rm-qn-local-list{ margin-top:9px; max-height:148px; overflow-y:auto; -webkit-overflow-scrolling:touch; }
  .rm-qn-local-item{
    display:block; padding:9px 12px; margin-bottom:7px; border-radius:9px; cursor:pointer;
    border:1px solid #eedfbd; border-left:3px solid #c8392b;
    background:linear-gradient(180deg,#fffdf7,#fdf6e8);
    box-shadow:0 1px 3px rgba(150,100,50,.08);
  }
  .rm-qn-local-item:last-child{ margin-bottom:0; }
  .rm-qn-local-item .l1{ font-size:12.5px; font-weight:700; color:#5c4a34; }
  .rm-qn-local-item .l2{ font-size:11px; color:#9c8768; margin-top:2px; }
  .rm-qn-local-item .paid{ color:#2e7d4f; font-weight:700; }
  .rm-qn-local-item .unpaid{ color:#c8392b; font-weight:700; }
  .rm-qn-local-empty{ font-size:11.5px; color:#a89372; }

  /* ================= 解锁后 · 温馨提示 ================= */
  .rm-tips{
    background:linear-gradient(180deg,#fffdf6,#fff7e8); border:1px solid #e2c896; border-left:4px solid #c8392b;
    border-radius:10px; padding:13px 14px; margin-bottom:14px;
  }
  .rm-tips-hd{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:9px; }
  .rm-tips-t{
    font-size:15px; font-weight:800; color:#8f2b1f; letter-spacing:1.5px;
    font-family:"STSong","SimSun",serif; white-space:nowrap;
  }
  .rm-tips-cnt{
    flex:0 0 auto; font-size:11px; color:#a8332a; background:#fff4e0; border:1px solid #e8cfa4;
    border-radius:20px; padding:2px 9px; white-space:nowrap;
  }
  .rm-tips-lead{ margin:0 0 9px; font-size:12.5px; line-height:1.9; color:#4f4436; font-weight:600; }
  .rm-tips ol{ margin:0; padding-left:18px; }
  .rm-tips li{ font-size:12.5px; line-height:1.9; color:#6b5a45; margin-bottom:6px; }
  .rm-tips li:last-child{ margin-bottom:0; }
  .rm-tips li b{ color:#a8332a; }

  /* ================= 解锁后 · 日历式吉日（按月折叠） =================
     视觉基调：象牙纸 + 双金线 + 朱红印章。整体只允许两种金属色 ——
     金 #c9a45c / 浅金 #e0bd77 / 极浅金 #f0e0c0；红 #a81c12 / 亮红 #c8392b。
     不要再出现土黄底(#f9edd2 一类)与灰米色块，那是上一版"廉价感"的来源。 */
  .rm-cal-month{ margin-bottom:16px; }
  .rm-cal-hd{
    position:relative; display:flex; align-items:center; justify-content:space-between; gap:10px; cursor:pointer;
    background:linear-gradient(135deg,#c02a1e 0%,#a81c12 52%,#8c1409 100%);
    color:#fff; border-radius:10px; padding:12px 15px; user-select:none;
    box-shadow:0 4px 14px rgba(150,20,10,.26), inset 0 1px 0 rgba(255,255,255,.16);
  }
  .rm-cal-hd::after{
    content:''; position:absolute; inset:3px; border:1px solid rgba(255,226,160,.30);
    border-radius:7px; pointer-events:none;
  }
  .rm-cal-hd-t{ font-size:15px; font-weight:800; letter-spacing:.6px; font-family:"STSong","SimSun",serif; }
  .rm-cal-hd-t b{ color:#ffe08a; margin-left:1px; }
  .rm-cal-hd-x{ flex:0 0 auto; font-size:12.5px; font-weight:700; white-space:nowrap; color:#ffe8b8; letter-spacing:.5px; }
  .rm-cal-hd-x .chev{ display:inline-block; margin-left:4px; font-style:normal; transition:transform .25s ease; }
  /* 展开态（可点「收起」）箭头朝上；折叠态（可点「展开」）箭头朝下 */
  .rm-cal-month:not(.fold) .rm-cal-hd-x .chev{ transform:rotate(180deg); }
  .rm-cal-body{ padding-top:11px; }
  .rm-cal-month.fold .rm-cal-body{ display:none; }

  /* 吉日卡：象牙纸渐变 + 外金线 + 内嵌细金线（"双描边"是显档次的关键） */
  .rm-cal-card{
    position:relative; margin-bottom:12px; border-radius:12px; overflow:hidden;
    background:linear-gradient(180deg,#fffefb 0%,#fffaf0 50%,#fcf2e0 100%);
    border:1px solid #e6cfa4;
    box-shadow:0 6px 20px rgba(150,105,40,.10), 0 1px 2px rgba(150,105,40,.05);
  }
  .rm-cal-card::after{
    content:''; position:absolute; inset:4px; border:1px solid rgba(201,164,92,.32);
    border-radius:8px; pointer-events:none; z-index:1;
  }

  /* ===== 卡片内部：竖排式「黄历卡」版式（日期 → 日号 → 农历 → 干支 → 宜/忌） =====
     参考版式来自用户给定样张（顶部日期+距今天数、居中大号日号、农历、干支描边框、
     底部 绿「宜」/ 红「忌」方块标签 + 词条自动折行）。
     ⚠️ 样张里日号两侧的「◀ ▶ 上一日/下一日」用户明确不要，这里不实现。 */

  /* ① 顶：日期标题（含星期与周数）+ 距今天数，整体居中 */
  .rm-cal-top{ position:relative; z-index:2; padding:14px 14px 2px; text-align:center; }
  .rm-cal-date{
    font-family:"STSong","SimSun",serif; font-size:14.5px; font-weight:800;
    color:#3d2a18; letter-spacing:.4px; line-height:1.45;
  }
  .rm-cal-away{ margin-top:5px; font-size:12.5px; font-weight:700; color:#c8392b; letter-spacing:1px; }

  /* ② 大号日号：居中放大（渐变描金感） */
  .rm-cal-day{
    position:relative; z-index:2; text-align:center; margin:4px 0 0;
    line-height:.94; font-size:66px; font-weight:700; letter-spacing:-1.5px;
    font-family:"Times New Roman","STSong","SimSun",serif;
    color:#a81c12;
    background:linear-gradient(180deg,#cf4433 0%,#a81c12 55%,#8c1409 100%);
    -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  }

  /* ②b 星级（日号下方居中一行）：★ 星级 + 评断依据小签。
     规则：5 星 = 流年岁君（太岁）天干地支 与 本命「年柱 / 日柱」形成**天合地合**（天干相合且地支相合）；
           4 星 = 流年岁君天干**生扶**本命天干（只论天干五行相生，单向）；
           3 星 = 默认档，不出依据小签（避免与 4/5 星的依据混淆）。
     🔴 小签里的**柱名不写死**，由 rmStarTag() 按这条命**实际命中的本命柱**动态拼：
        命中年柱 ⇒ 年柱 / 年干；命中日柱 ⇒ 日柱 / 日干；两者都有 ⇒ 年柱（日柱）/ 年干（日干）。
        （用户 2026-09-30："年柱(日柱) 不是直接写死，是根据男女八字的年柱或是日柱，根据具体情况"）
     ⚠️ 页面只呈现星级，不出现「最佳 / 次佳」措辞。

     🔴 三档的**视觉层级**（2026-09-29 用户："天合地合区域要弄的气派些、显眼些，必须大气专业"；
        2026-10-04 用户追加：「4星 5星的吉日 星星区域 应该红色背景高亮显示」）：
        5★「天合地合」= 本页**最高荣誉** ⇒ 「朱红礼盒底（与支付墙/祝福区同族）+ 金框 + 两侧渐隐金线
                        + 金底深朱字徽章 + 加大加光的★」；
        4★「相生」    = 同一红底（矮一档、无两侧金线）+ 金底朱字小签；
        3★            = 无红底、无签，★ 再收小一档、朱色降饱和。
        ⚠️ 差异化**全部由 `.rm-star-row` 上的 `data-star` 属性驱动**（`rmStarNode()` 已输出该属性，
           刷新路径 `rmRefreshStars()` 也走同一个函数）⇒ **纯 CSS 即可，不要改 JS 结构**。
        🔴 红底上朱色★ / 淡金空心★都会糊 ⇒ 实心★翻浅金 #ffd98f、空心★翻半透明暖金、徽章翻金底深朱字。 */
  .rm-star-row{
    position:relative; z-index:2; display:flex; align-items:center; justify-content:center;
    /* ⚠️ 必须 wrap：5★ 小签是 19 字的长文案（2026-09-30 改），单行放不下会被
       .rm-cal-card 的 overflow:hidden 直接裁掉。放不下时整签落到下一行居中。 */
    flex-wrap:wrap;
    gap:9px; margin:9px 12px 2px; line-height:1;
  }
  .rm-stars{
    display:inline-flex; align-items:center; gap:3px;
    font-family:"Times New Roman","STSong","SimSun",serif; font-size:16px; letter-spacing:.5px;
  }
  .rm-stars i{ font-style:normal; display:inline-block; }
  .rm-stars i.on{ color:#c8392b; }
  .rm-stars i.off{ color:#e8d3a8; }

  /* ── 5★：整行升格为「荣誉绶带」 ── */
  .rm-star-row[data-star="5"]{
    gap:11px; margin:10px 8px 3px; padding:8px 12px 9px;
    border-radius:10px; border:1px solid #d9b273;
    background:
      linear-gradient(112deg,rgba(255,255,255,.16) 0%,rgba(255,255,255,0) 40%,
                      rgba(255,255,255,.12) 58%,rgba(255,255,255,0) 78%),
      linear-gradient(180deg,#b8352a 0%,#a3231a 48%,#87130b 100%);
    box-shadow:0 4px 12px rgba(120,20,12,.22), inset 0 1px 0 rgba(255,220,160,.30);
  }
  .rm-star-row[data-star="5"] .rm-stars{ font-size:19px; gap:3.5px; }
  .rm-star-row[data-star="5"] .rm-stars i.on{
    color:#ffd98f;
    text-shadow:0 1px 0 rgba(120,20,10,.55), 0 0 10px rgba(255,214,140,.55);
  }
  .rm-star-row[data-star="5"] .rm-stars i.off{ color:rgba(255,224,168,.40); }
  /* 两侧渐隐金线：把这一行从卡片里「托」起来。
     ⚠️ 伪元素在 flex 容器里是 flex item ⇒ 必须 flex:0 0 auto 固定宽度，否则被压成 0 宽。 */
  .rm-star-row[data-star="5"]::before,
  .rm-star-row[data-star="5"]::after{ content:''; flex:0 0 auto; width:30px; height:1px; }
  .rm-star-row[data-star="5"]::before{ background:linear-gradient(90deg, rgba(240,205,140,0), #f0cd8c); }
  .rm-star-row[data-star="5"]::after { background:linear-gradient(90deg, #f0cd8c, rgba(240,205,140,0)); }

  /* ── 4★：同一红底（2026-10-04 用户：「4星 5星的星星区域 红色背景高亮」），比 5★ 矮一档、无两侧金线 ── */
  .rm-star-row[data-star="4"]{
    margin:9px 8px 3px; padding:7px 12px 8px;
    border-radius:10px; border:1px solid #d9b273;
    background:
      linear-gradient(112deg,rgba(255,255,255,.16) 0%,rgba(255,255,255,0) 40%,
                      rgba(255,255,255,.12) 58%,rgba(255,255,255,0) 78%),
      linear-gradient(180deg,#b8352a 0%,#a3231a 48%,#87130b 100%);
    box-shadow:0 4px 12px rgba(120,20,12,.22), inset 0 1px 0 rgba(255,220,160,.30);
  }
  .rm-star-row[data-star="4"] .rm-stars i.on{
    color:#ffd98f;
    text-shadow:0 1px 0 rgba(120,20,10,.55), 0 0 9px rgba(255,214,140,.50);
  }
  .rm-star-row[data-star="4"] .rm-stars i.off{ color:rgba(255,224,168,.40); }
  /* ── 4★ 小签：金底朱字（红底行内是一枚浅金签，保留原样即醒目） ── */
  .rm-star-tag{
    font-size:12px; font-weight:700; letter-spacing:1px; color:#8a6a2f;
    padding:3px 10px; border-radius:5px; border:1px solid #e0bd77;
    background:linear-gradient(180deg,#fffdf6,#fbf1dc);
    /* ⚠️ 长文案兜底（2026-09-30）：绝不超出卡片宽度，宁可在签内折成两行也不被裁
       text-wrap:balance —— 折行时两行均衡（10+9），避免第二行只剩一个孤字（渐进增强，老浏览器自动忽略） */
    max-width:100%; text-align:center; text-wrap:balance;
  }
  /* 「天合地合」徽章：朱底 + 金框 + 内嵌细金线 + 顶部内高光 + 外投影 */
  .rm-star-tag.hehe{
    position:relative; padding:4px 14px; border-radius:6px;
    font-size:12.5px; letter-spacing:2px;
    color:#7a1d12; border:1px solid rgba(255,240,200,.78);
    background:linear-gradient(180deg,#f7dfae 0%,#e0bd77 48%,#c9a45c 100%);
    box-shadow:0 3px 9px rgba(90,10,5,.35), inset 0 1px 0 rgba(255,255,255,.55);
    text-shadow:0 1px 0 rgba(255,244,220,.60);
  }
  .rm-star-tag.hehe::after{          /* 内嵌细线（金底上用深朱，不用象牙白） */
    content:''; position:absolute; inset:2px; border-radius:4px;
    border:1px solid rgba(122,29,18,.26); pointer-events:none;
  }
  /* ── 3★：★ 收小、朱色降一档，避免与 5★ 同分量 ── */
  .rm-star-row[data-star="3"]{ margin:7px 12px 2px; }
  .rm-star-row[data-star="3"] .rm-stars{ font-size:14.5px; }
  .rm-star-row[data-star="3"] .rm-stars i.on{ color:#c25a4b; }
  /* ②c 命中详情：**只有男女双方都命中**时才列「男 / 女」两行四柱并高亮命中柱；
     单方命中时只留下面那行关系说明（不列四柱），所以 `.rm-hit-why` 会是唯一子元素 ——
     这时要去掉它的顶部虚线分隔，否则框顶孤零零挂一条虚线（`div + .rm-hit-why` 才是被分隔的那行）。 */
  .rm-hit{
    position:relative; z-index:2;
    /* 上下留白：框内上下、以及与框外上下相邻块之间的间距（用户 2026-09-29：太挤） */
    margin:11px 14px 7px; padding:11px 10px 12px;
    border:1px solid #eddfc2; border-radius:7px;
    background:linear-gradient(180deg,#fffdf7,#fdf7ea);
  }
  .rm-hit-side{
    display:flex; align-items:center; justify-content:center; gap:4px;
    font-size:11.5px; color:#6b5540; line-height:1.9; white-space:nowrap;
  }
  /* 男/女两行之间也留出间距 */
  .rm-hit-side + .rm-hit-side{ margin-top:4px; }
  .rm-hit-sex{
    flex:0 0 auto; width:15px; height:15px; border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:10px; font-weight:700; color:#fff; background:#c9a45c;
  }
  .rm-hit-sex.female{ background:#c96a72; }
  .rm-hit-p{ flex:0 0 auto; padding:0 4px; border-radius:3px; letter-spacing:.3px; }
  .rm-hit-p b{ font-weight:400; color:#a08a6c; margin-right:1px; }   /* 「年/月/日/时」小标 */
  .rm-hit-p.hit{
    background:linear-gradient(135deg,#c8392b,#a81c12); color:#fff; font-weight:700;
    box-shadow:0 1px 4px rgba(168,28,18,.28);
  }
  .rm-hit-p.hit b{ color:rgba(255,255,255,.78); }
  /* 依据文字：**居左**（用户 2026-09-29；多行时居中会出现"每行都居中"的锯齿感，不好读） */
  .rm-hit-why{
    margin-top:9px; padding-top:9px; border-top:1px dashed #eddfc2;
    font-size:11px; color:#8a6a2f; letter-spacing:.2px; text-align:left; line-height:1.7;
  }
  /* 男女**各自占 1 行**（双方相生时 → 男方一行、女方一行，不再挤成一段） */
  .rm-hit-why-line{ line-height:1.7; }
  .rm-hit-why-line + .rm-hit-why-line{ margin-top:4px; }
  /* 单方命中（无四柱行）时，说明行是首个元素 ⇒ 不画顶部分隔线 */
  .rm-hit-why:first-child{ margin-top:0; padding-top:0; border-top:0; }

  /* ③ 农历（居中） */
  .rm-cal-lunar{
    position:relative; z-index:2; text-align:center;
    font-family:"STSong","SimSun",serif; font-size:13.5px; font-weight:700;
    color:#5c4a34; letter-spacing:1.2px;
  }
  /* ③ 干支：细描边圆角框内「年 月 日」三柱横排
     （后端 ganzhi 顺序是 月→日→年，前端 rmGanZhiText() 统一重排成 年 月 日） */
  .rm-cal-gz{
    position:relative; z-index:2; display:flex; justify-content:center; align-items:center;
    flex-wrap:wrap; gap:2px 18px; margin:12px 14px 0; padding:8px 10px;
    border:1px solid #e6cfa4; border-radius:8px;
    background:linear-gradient(180deg,#fffdf8,#fdf6e8);
    font-family:"STSong","SimSun",serif; font-size:13px; font-weight:700;
    color:#7d5f3b; letter-spacing:1.2px;
  }
  .rm-cal-gz span{ white-space:nowrap; }

  /* ④ 宜 / 忌：绿/红方块标签 + 词条自动折行。
     标签 44×44；词条区 min-height:44px 且垂直居中 ⇒
       单行时文字与方块同高居中（＝样张观感），多行时方块贴首行、文字向下自然排出。 */
  .rm-cal-yj{ position:relative; z-index:2; padding:12px 14px 14px; }
  .rm-cal-row{ display:grid; grid-template-columns:44px 1fr; column-gap:12px; align-items:start; }
  .rm-cal-row + .rm-cal-row{ margin-top:10px; }
  .rm-cal-tag{
    width:44px; height:44px; display:flex; align-items:center; justify-content:center;
    font-style:normal; font-size:17px; font-weight:800; letter-spacing:1px;
    color:#fff; border-radius:4px; font-family:"STSong","SimSun",serif;
  }
  .rm-cal-tag.yi{ background:linear-gradient(160deg,#54a247,#33752c); box-shadow:0 2px 7px rgba(45,105,45,.24); }
  .rm-cal-tag.ji{ background:linear-gradient(160deg,#d0452f,#a81c12); box-shadow:0 2px 7px rgba(150,20,10,.24); }
  .rm-cal-terms{ display:flex; flex-wrap:wrap; align-items:center; column-gap:14px; row-gap:7px; min-height:44px; }
  .rm-cal-term{ font-size:13px; color:#5c4a34; white-space:nowrap; letter-spacing:.4px; }
  /* 本服务名（订婚/搬家/…）在「宜」里高亮 —— 朱底金边小印 */
  .rm-cal-terms .hl{
    background:linear-gradient(135deg,#c8392b,#a81c12); color:#fff; font-weight:700;
    padding:1px 7px; border-radius:4px; letter-spacing:.6px;
  }

  /* 底：展开明细开关 */
  .rm-cal-more{
    position:relative; z-index:2; display:flex; align-items:center; justify-content:center; gap:8px; cursor:pointer;
    padding:10px 12px; font-size:12.5px; font-weight:700; letter-spacing:.5px; color:#8f2b1f;
    border-top:1px solid #e8d5b0; background:linear-gradient(180deg,#fdf6e8,#f9efdb);
    user-select:none; transition:background .2s ease;
  }
  .rm-cal-more:active{ background:linear-gradient(180deg,#f9efdb,#f4e5c6); }
  .rm-cal-more .chev{
    display:inline-block; width:18px; height:18px; line-height:16px; text-align:center; font-style:normal;
    border:1px solid #c9a45c; border-radius:50%; font-size:10px; color:#a8332a; background:#fffaf0;
    transition:transform .25s ease;
  }
  .rm-cal-card.open .rm-cal-more .chev{ transform:rotate(180deg); }
  .rm-cal-detail{
    position:relative; z-index:2; display:none; padding:13px 14px;
    border-top:1px solid #e8d5b0; background:linear-gradient(180deg,#fffdf7,#fff8ea);
  }
  .rm-cal-card.open .rm-cal-detail{ display:block; }
  .rm-cal-detail p{ margin:6px 0; font-size:12.5px; line-height:1.85; color:#5c4a34; }
  .rm-cal-detail .lab{ color:#a8834a; font-weight:700; letter-spacing:.5px; }
  /* 常理说明：术语条目之外的「一句人话」，用虚线轻分隔 + 稍暖字色，读起来不像又一条术语 */
  .rm-cal-detail p.rm-common{
    margin-top:10px; padding-top:10px; border-top:1px dashed #eddfc2; color:#7a6142;
  }
  .rm-cal-detail p.rm-common .lab{ color:#8f2b1f; }

  /* ================= 解锁后 · 赠送小知识 ================= */
  .rm-know{ margin:18px 0 14px; }
  .rm-know-hd{
    position:relative; display:flex; align-items:center;
    background:linear-gradient(135deg,#c8392b,#a81c12); color:#fff;
    border-radius:9px; padding:11px 14px 11px 60px;
    box-shadow:0 2px 8px rgba(168,28,18,.22);
  }
  .rm-know-ribbon{
    position:absolute; left:14px; top:-6px; width:34px; padding:8px 0 13px; text-align:center;
    background:linear-gradient(180deg,#f7d574,#dfa63a); color:#8a2b12;
    font-size:12px; font-weight:800; line-height:1.12; letter-spacing:1px;
    border-radius:3px 3px 0 0;
    clip-path:polygon(0 0,100% 0,100% 100%,50% 80%,0 100%);
  }
  .rm-know-hd-t{ font-size:15px; font-weight:800; letter-spacing:.5px; }
  .rm-know-sub{ margin:10px 0; font-size:13px; font-weight:700; color:#a8332a; }
  .rm-know-card{
    background:#fff; border:1px solid #e6e0d6; border-radius:9px; padding:12px 14px; margin-bottom:10px;
    box-shadow:0 1px 4px rgba(0,0,0,.03);
  }
  .rm-know-card h4{
    margin:0 0 7px; font-size:15.5px; font-weight:800; color:#b0322a;
    font-family:"STSong","SimSun",serif;
  }
  .rm-know-card p{ margin:0; font-size:13px; line-height:1.95; color:#4b4b4b; }

  /* ================= 解锁后 · 祝福 =================
     基调（2026-10-04 用户指定）：**朱红礼盒**，与支付墙 / 支付弹层同族色 ——
     底 = 112° 缎面高光 + 朱红纵向渐变 #b8352a→#a3231a→#87130b；金边 #d9b273；
     内嵌细金线 rgba(255,214,140,.32)；四角金饰 #e8c894；外双环（白环 + 金环）保留。
     🔴 深红底上原来的深色墨（深棕正文 / 朱红锚点 / 灰棕落款）全部会糊掉 ⇒
     正文一律翻**浅金**（标题 #fff2d6→#f7d99e→#e4bb6e、正文 #f7e0b7、锚点 #ffd98f），
     落款印章从「朱底金字」翻成「金底深朱字」（红底上朱印会消失，同 .fab-go 的处理）。
     改这里之前先想对比度。 */
  .rm-bless{
    position:relative; margin:24px 0 8px; padding:28px 20px 26px; text-align:center; border-radius:16px;
    background:
      linear-gradient(112deg,rgba(255,255,255,.20) 0%,rgba(255,255,255,0) 38%,
                      rgba(255,255,255,.14) 55%,rgba(255,255,255,0) 76%),
      linear-gradient(180deg,#b8352a 0%,#a3231a 48%,#87130b 100%);
    border:1px solid #d9b273;
    box-shadow:0 0 0 5px #fffaef, 0 0 0 6px #ecd7a8, 0 14px 34px rgba(120,20,12,.30), inset 0 1px 0 rgba(255,220,160,.34);
    color:#ffe9c4;
    overflow:hidden;
  }
  /* 囍 水印：整只居中放在最底层（不要放四角 —— 被 border-radius 一裁就变成两块红斑，很廉价） */
  .rm-bless::before{
    content:'囍'; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
    font-size:158px; line-height:1; color:rgba(255,224,168,.085);
    font-family:"STSong","SimSun",serif; pointer-events:none; z-index:0;
  }
  /* 内嵌细金线 + 左上/右下金角（装饰元素，由 JS 插入 <i class="rm-bless-in">） */
  .rm-bless-in{
    position:absolute; inset:8px; border:1px solid rgba(255,214,140,.34);
    border-radius:11px; pointer-events:none; z-index:1;
  }
  .rm-bless-in::before, .rm-bless-in::after{
    content:''; position:absolute; width:15px; height:15px; border:1.5px solid #e8c894;
  }
  .rm-bless-in::before{ left:-1px; top:-1px; border-right:0; border-bottom:0; border-radius:11px 0 0 0; }
  .rm-bless-in::after{ right:-1px; bottom:-1px; border-left:0; border-top:0; border-radius:0 0 11px 0; }

  /* 眉批行：左右各一条向外渐隐的金线，让它是一条"眉批"而不是孤零零一行小字 */
  .rm-bless-top{
    position:relative; z-index:2; display:flex; align-items:center; justify-content:center;
    gap:9px; font-size:11.5px; letter-spacing:6px; text-indent:6px;
    color:#f0cd8c; font-family:"STSong","SimSun",serif;
  }
  .rm-bless-top::before, .rm-bless-top::after{ content:''; flex:0 0 auto; width:42px; height:1px; }
  .rm-bless-top::before{ background:linear-gradient(90deg,rgba(240,205,140,0),#f0cd8c); }
  .rm-bless-top::after{ background:linear-gradient(90deg,#f0cd8c,rgba(240,205,140,0)); }
  .rm-bless-top b{ flex:0 0 auto; font-weight:400; }
  /* 标题行：两侧渐隐金线夹住标题 */
  .rm-bless-titlerow{
    position:relative; z-index:2; display:flex; align-items:center; justify-content:center;
    gap:10px; margin:13px 0 0;
  }
  .rm-bless-orn{ flex:0 0 auto; width:50px; height:1px; background:linear-gradient(90deg,transparent 0%,#e8bd70 45%,#f0cd8c 100%); }
  .rm-bless-orn:last-child{ background:linear-gradient(90deg,#f0cd8c 0%,#e8bd70 55%,transparent 100%); }
  .rm-bless-title{
    flex:0 0 auto; margin:0; font-size:30px; font-weight:800; letter-spacing:6px; text-indent:6px;
    font-family:"STSong","SimSun",serif; color:#f6d79a;
    background:linear-gradient(180deg,#fff2d6 0%,#f7d99e 54%,#e4bb6e 100%);
    -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  }
  /* 标题下：金线中央镶一颗菱形宝石 */
  .rm-bless-line{
    position:relative; z-index:2; width:126px; height:1px; margin:17px auto 20px;
    background:linear-gradient(90deg,transparent,#f0cd8c 18%,#ffe6ad 50%,#f0cd8c 82%,transparent);
  }
  .rm-bless-line::after{
    content:''; position:absolute; left:50%; top:50%; width:7px; height:7px; margin:-3.5px 0 0 -3.5px;
    background:#f0cd8c; transform:rotate(45deg);
  }
  /* 引子段落：**一律居中** —— 中文用 justify 会把行内拉出难看的字缝
     （2026-09-28 截图里「郑重地␣挑」那道缝就是它）。关键短语用朱红加粗做视觉锚点。 */
  .rm-bless-lead{
    position:relative; z-index:2; max-width:434px; margin:0 auto 20px; font-size:13.5px; line-height:2.1;
    color:#f7e0b7; text-align:center;
  }
  .rm-bless-lead .hl{ color:#ffd98f; font-weight:700; }

  /* 诗句块：红底上的**暖金纱底**（半透明，让朱红透上来）+ 金框 + 四角金角 + 顶边菱形金饰。
     不要改回不透明象牙纸实底 —— 那会在朱红底上糊出一块突兀的浅色补丁。 */
  .rm-bless-poem{
    position:relative; z-index:2; margin:0 auto 20px; padding:20px 14px 19px; max-width:452px;
    background:linear-gradient(180deg,rgba(255,246,226,.14) 0%,rgba(255,236,200,.07) 100%);
    border:1px solid rgba(240,205,140,.46); border-radius:12px;
    box-shadow:inset 0 1px 0 rgba(255,240,210,.20), 0 3px 14px rgba(90,12,6,.18);
  }
  /* 四角金角（内层细线只留角、不留整圈）：比"整圈内描边"更透气，也更像一帖笺纸 */
  .rm-bless-poem .pc{
    position:absolute; width:13px; height:13px; border:1.5px solid #e8c894; pointer-events:none;
  }
  .rm-bless-poem .pc.tl{ left:7px;  top:7px;    border-right:0; border-bottom:0; border-radius:7px 0 0 0; }
  .rm-bless-poem .pc.tr{ right:7px; top:7px;    border-left:0;  border-bottom:0; border-radius:0 7px 0 0; }
  .rm-bless-poem .pc.bl{ left:7px;  bottom:7px; border-right:0; border-top:0;    border-radius:0 0 0 7px; }
  .rm-bless-poem .pc.br{ right:7px; bottom:7px; border-left:0;  border-top:0;    border-radius:0 0 7px 0; }
  .rm-bless-poem::after{                  /* 顶边正中一颗菱形金饰，用象牙底把它"嵌"进边框 */
    content:''; position:absolute; left:50%; top:-4.5px; width:9px; height:9px; margin-left:-4.5px;
    background:linear-gradient(135deg,#f7e3b4,#dcb877); transform:rotate(45deg);
    box-shadow:0 0 0 3px #a3231a; z-index:3;
  }
  /* 每行：文字两侧各一条向外渐隐的短金线（对称排比，给诗句以仪式感；文字仍严格居中） */
  .rm-bless-poem p{
    display:flex; align-items:center; justify-content:center; gap:11px;
    margin:10px 0; font-size:17px; line-height:1.85; color:#ffe6ad; letter-spacing:2.8px;
    font-family:"STSong","SimSun",serif;
  }
  .rm-bless-poem p:first-child{ margin-top:0; }
  .rm-bless-poem p:last-child{ margin-bottom:0; }
  .rm-bless-poem .t{ font-weight:inherit; white-space:nowrap; }
  .rm-bless-poem .lorn{
    flex:0 0 auto; width:26px; height:1px; font-style:normal;
    background:linear-gradient(90deg,transparent 0%,#ffe6ad 70%,#f0cd8c 100%);
  }
  .rm-bless-poem .lorn.r{ background:linear-gradient(90deg,#f0cd8c 0%,#ffe6ad 30%,transparent 100%); }
  .rm-bless-poem span{ color:#ffd98f; font-weight:800; }

  /* 诗句与祝愿之间的过渡金线（带菱形金饰），避免两大段文字直接贴在一起显得平 */
  .rm-bless-sep{
    position:relative; z-index:2; width:92px; height:1px; margin:2px auto 17px;
    background:linear-gradient(90deg,transparent,#f0cd8c 28%,#ffe6ad 50%,#f0cd8c 72%,transparent);
  }
  .rm-bless-sep::after{
    content:''; position:absolute; left:50%; top:50%; width:5px; height:5px; margin:-2.5px 0 0 -2.5px;
    background:#f0cd8c; transform:rotate(45deg);
  }
  /* 祝福段落：同样居中；关键短语朱红加粗，给一片灰棕的文字立几个锚点 */
  .rm-bless-praise{
    position:relative; z-index:2; max-width:434px; margin:0 auto 6px; font-size:13.5px; line-height:2.05;
    color:#f7e0b7; text-align:center;
  }
  .rm-bless-praise .hl{ color:#ffd98f; font-weight:700; }
  .rm-bless-praise .hlk{ color:#ffd98f; font-weight:800; letter-spacing:.4px; }
  /* 落款：**金底深朱字**（朱红底上原来的朱印会消失，故翻成金底 —— 同 .fab-go 的处理） */
  .rm-bless-seal{
    position:relative; z-index:2; display:inline-block; margin-top:18px; padding:8px 19px;
    font-size:12px; font-weight:700; letter-spacing:3px; text-indent:3px;
    font-family:"STSong","SimSun",serif; color:#7a1d12;
    background:linear-gradient(180deg,#f7dfae 0%,#e0bd77 48%,#c9a45c 100%);
    border:1px solid rgba(255,240,200,.78); border-radius:7px;
    box-shadow:0 6px 16px rgba(0,0,0,.30), inset 0 1px 0 rgba(255,255,255,.55);
  }
  .rm-bless-seal::after{
    content:''; position:absolute; inset:2px; border:1px solid rgba(122,29,18,.26); border-radius:5px;
  }

  /* 支付墙 · 主视觉（2026-10-04 v3：朱红礼盒 —— 用户在 A/B/C 三方向中选定 C）
     令牌：朱红 #b8352a → #a3231a → #87130b ；金边 #d9b273 / 描线 rgba(255,214,140,.32)
     浅金字：标题 #fff2d6→#f7d99e→#e4bb6e ；正文 #f7e0b7 ；次要 #eccf9e ；锚点 #f7d99e
     🔴 深红底上「深金 #8d6d2c / #6b5330」会糊成一片，必须整体翻成**浅金**。改色前先想对比度 */
  .rm-paywall{
    position:relative; overflow:hidden; margin-top:18px; padding:26px 24px 20px; text-align:center;
    /* 第一层 = 112° 缎面高光（红底上要弱得多，否则发灰），第二层 = 朱红纵向渐变（上亮下深） */
    background:
      linear-gradient(112deg,rgba(255,255,255,.20) 0%,rgba(255,255,255,0) 38%,
                      rgba(255,255,255,.14) 55%,rgba(255,255,255,0) 76%),
      linear-gradient(180deg,#b8352a 0%,#a3231a 48%,#87130b 100%);
    border:1px solid #d9b273; border-radius:16px;
    box-shadow:0 14px 34px rgba(120,20,12,.34), inset 0 1px 0 rgba(255,220,160,.35);
    color:#ffe9c4;
  }
  /* 内嵌一圈细金线（双描边手法）：红底上用**浅金**才亮得起来 */
  .rm-paywall::after{
    content:''; position:absolute; inset:5px; border:1px solid rgba(255,214,140,.32);
    border-radius:12px; pointer-events:none; z-index:1;
  }
  /* 淡光晕：红底上改暖金气团 */
  .rm-pw-glow{
    position:absolute; left:50%; top:6px; width:360px; height:360px; margin-left:-180px;
    border-radius:50%; pointer-events:none; z-index:0;
    background:radial-gradient(closest-side,rgba(255,214,150,.32),rgba(255,214,150,0) 78%);
  }
  /* 朱印：红底上要**提亮一档**才跳得出来（原 #c02a1e 会与底色糊在一起） */
  .rm-pw-seal{
    position:relative; z-index:2; width:58px; height:58px; margin:0 auto 13px;
    display:flex; align-items:center; justify-content:center;
    font-size:30px; font-weight:700; color:#ffe6ad; font-family:"STSong","SimSun",serif;
    background:linear-gradient(135deg,#e2473a,#a81c12);
    border:1px solid rgba(255,226,160,.78); border-radius:50%;
    box-shadow:0 6px 18px rgba(0,0,0,.30), inset 0 1px 0 rgba(255,225,170,.34);
    text-shadow:0 1px 2px rgba(90,10,6,.45);
  }
  .rm-pw-seal::after{
    content:''; position:absolute; inset:3px; border:1px solid rgba(255,232,180,.42); border-radius:50%;
  }
  /* 眉批：文字两侧成对渐隐短金线（用 flex 的 ::before / ::after 当金线，无需改标记） */
  .rm-pw-tag{
    position:relative; z-index:2; display:flex; align-items:center; justify-content:center; gap:12px;
    font-size:11px; letter-spacing:3px; text-indent:3px; color:#f0cd8c;
  }
  .rm-pw-tag::before, .rm-pw-tag::after{ content:''; flex:0 0 auto; width:46px; height:1px; }
  .rm-pw-tag::before{ background:linear-gradient(90deg,rgba(240,205,140,0),#f0cd8c 72%,#e8bd70 100%); }
  .rm-pw-tag::after{ background:linear-gradient(90deg,#e8bd70 0%,#f0cd8c 28%,rgba(240,205,140,0) 100%); }
  /* 标题：渐变文字（上亮下深）—— 红底上由朱红翻成浅金，保留 color 降级色 */
  .rm-pw-title{
    position:relative; z-index:2; margin:10px 0 8px; font-size:21px; font-weight:700; color:#f6d79a;
    font-family:"STSong","SimSun",serif; letter-spacing:1.5px;
    background:linear-gradient(180deg,#fff2d6 0%,#f7d99e 54%,#e4bb6e 100%);
    -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  }
  /* 副文案：显式分组，避免「吉神 · / 彭祖百忌）」被自动换行拦腰截断 */
  .rm-pw-sub{ position:relative; z-index:2; margin:0 0 6px; font-size:13px; line-height:1.8; color:#f7e0b7; }
  .rm-pw-sub b{ color:#ffd98f; font-weight:700; }
  .rm-pw-sub2{ display:block; font-size:12.5px; color:#eccf9e; letter-spacing:.2px; }
  /* 价格 = 头号锚点：字号提升 + 渐变文字 */
  .rm-pw-price{ position:relative; z-index:2; margin:10px 0 0; font-weight:700; color:#f7d99e; line-height:1; }
  .rm-pw-cur{
    font-size:17px; vertical-align:8px; margin-right:3px;
    background:linear-gradient(180deg,#fff2d6 0%,#f7d99e 100%);
    -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  }
  .rm-pw-num{
    font-size:42px; font-family:"Times New Roman","STSong","SimSun",serif;
    background:linear-gradient(180deg,#fff2d6 0%,#f7d99e 55%,#e0b667 100%);
    -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  }
  /* ⛔ 价格下方的「镶菱形金线」已按用户要求**删除**（原 tip 的 before/after 两个伪元素）。
     用户 2026-10-04 原话「不要价格下面的 金色横线」。**不要再加回来**。 */
  .rm-pw-tip{ position:relative; z-index:2; margin:14px 0 18px; font-size:12px; color:#eccf9e; }
  /* 支付宝 / 微信 各占 1 行；微信排在前面 = 默认支付方式（用户 2026-10-04 指定） */
  .rm-pw-btns{ position:relative; z-index:2; display:flex; flex-direction:column; gap:11px; }
  .rm-pw-btn{
    display:inline-flex; align-items:center; justify-content:center; gap:7px;
    width:100%; padding:14px 20px; border:none; border-radius:11px; cursor:pointer;
    font-size:15.5px; font-weight:700; letter-spacing:1.5px; color:#fff;
    transition:filter .15s ease, transform .12s ease;
  }
  .rm-pw-btn i{ margin-right:0; }
  /* 主行动（微信=默认）与副行动（支付宝）：渐变 + 落影，取代原来的平涂 */
  .rm-pw-btn.wx{
    background:linear-gradient(180deg,#33b96c 0%,#25a55a 52%,#1d8f4c 100%);
    box-shadow:0 0 0 1px rgba(29,143,76,.24), 0 5px 14px rgba(29,143,76,.28), inset 0 1px 0 rgba(255,255,255,.28);
  }
  .rm-pw-btn.ali{
    background:linear-gradient(180deg,#3a8ce8 0%,#2b7ee0 52%,#1e63c4 100%);
    box-shadow:0 0 0 1px rgba(30,99,196,.22), 0 5px 14px rgba(30,99,196,.24), inset 0 1px 0 rgba(255,255,255,.26);
  }
  /* 支付方式图标（2026-10-04，用户指定）：改用参考站支付页的两个真实标志 ——
     支付宝「支」圆角方块（Vant van-icon-alipay U+E663）、微信支付气泡对勾（van-icon-wechat-pay U+E742）。
     这两个字形已用 fontTools 从字体里转成矢量（生成脚本 runtime/_glyph2svg.py，源文件 runtime/_pay_icons.json），
     以 data-URI 背景图内联，不引外链字体、无额外请求。
     高度 15px = 按钮文字高（与上一版「支」方块一致的口径），width:15px + background-size:contain
     ⇒ viewBox 已按各自字形墨迹收紧，两枚图标视觉高度相同、且不拉伸变形。 */
  .rm-pw-btn .payi, .rm-pw-btn .payw{
    display:inline-block; width:15px; height:15px; flex:0 0 auto;
    font-size:0; font-style:normal; line-height:0;
    background-repeat:no-repeat; background-position:center; background-size:contain;
  }
  .rm-pw-btn .payw{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='57.00 114.00 853.00 805.79'%3E%3Cpath fill='%23ffffff' d='M382 621Q350 639 334 624Q325 616 324 605L260 452Q251 427 252.5 417.5Q254 408 260 408.5Q266 409 274 414L304 437Q332 457 350.5 468.5Q369 480 393 478Q406 477 414 474L833 276Q774 201 683 158Q590 114 484 114Q368 114 268 166Q172 217 115 303Q57 392 57 496Q57 585 101 665Q143 742 219 795L200 907Q199 915 204 918.5Q209 922 222 916Q246 905 326 851Q402 878 484 878Q599 878 699 826Q795 775 852 689Q910 600 910 496Q910 406 866 326Q426 597 382 621Z'/%3E%3C/svg%3E"); }
  .rm-pw-btn .payi{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='114.00 114.00 796.00 796.00'%3E%3Cpath fill='%23ffffff' d='M783 114Q817 114 846.5 131Q876 148 893 177.5Q910 207 910 241V655L899 653Q883 649 857 641Q821 630 770 613Q744 604 675 579L647 569Q689 496 714 401H557V345H749V313H557V219H479Q470 219 466 226Q464 229 464 233V315H270V347H464V401H303V433H616Q601 486 571 543Q483 514 420 502Q341 488 294 500Q263 508 240 522Q219 534 206 550Q179 583 174 623Q169 663 187.5 699Q206 735 245 756Q286 779 343 779Q413 779 480 742Q545 706 598 640Q702 691 910 778V783Q910 817 893 846.5Q876 876 846.5 893Q817 910 783 910H241Q207 910 177.5 893Q148 876 131 846.5Q114 817 114 783V241Q114 207 131 177.5Q148 148 177.5 131Q207 114 241 114ZM308 546Q358 541 417 559Q460 572 531 607Q486 663 435 694Q381 727 329 727Q284 727 252 711Q223 696 210 671.5Q197 647 202 621Q207 595 230 575Q244 563 269 555Q290 548 308 546Z'/%3E%3C/svg%3E"); }
  .rm-pw-btn:active{ filter:brightness(.95); transform:translateY(1px); }
  .rm-pw-btn:disabled{ opacity:.55; cursor:default; transform:none; }
  /* .rm-pw-note 已删除：本站走易支付，但**不是担保交易**，不能对外宣称"担保"（用户 2026-09-27 指出）。
     原先那行声称"担保 + 安全"的免责小字，连同它上方那条 1px 分割线一并去掉，不要再加回来。 */

  /* ================= 付费解锁 · 底部悬浮条 + 支付方式弹层 ================= */
  /* 悬浮条：固定屏幕底部、与 .page 同宽居中（480px），未支付时才出现 */
  .rm-fab{
    position:fixed; left:50%; bottom:0; z-index:900;
    width:100%; max-width:480px;
    transform:translateX(-50%) translateY(115%);
    transition:transform .3s cubic-bezier(.2,.8,.3,1);
    display:flex; align-items:center; gap:12px;
    padding:11px 16px calc(11px + env(safe-area-inset-bottom,0px));
    background:
      linear-gradient(112deg,rgba(255,255,255,.22) 0%,rgba(255,255,255,0) 42%,
                      rgba(255,255,255,.15) 58%,rgba(255,255,255,0) 80%),
      linear-gradient(180deg,#ab2c20 0%,#87130b 100%);
    border-top:3px solid #d9b273; box-shadow:0 -8px 32px rgba(90,12,6,.36), inset 0 1px 0 rgba(255,220,160,.30);
    color:#ffe9c4;
  }
  .rm-fab.on{ transform:translateX(-50%) translateY(0); }
  .rm-fab .fab-info{ flex:1 1 auto; min-width:0; line-height:1.35; }
  .rm-fab .fab-t{ font-size:13px; font-weight:700; color:#fbe4b4; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .rm-fab .fab-s{ font-size:11px; color:#eccf9e; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .rm-fab .fab-s b{ color:#ffd98f; }
  .rm-fab .fab-price{ flex:0 0 auto; font-weight:700; color:#ffe0a8; font-family:"Times New Roman","STSong","SimSun",serif; line-height:1; }
  .rm-fab .fab-price .c{ font-size:13px; vertical-align:4px; margin-right:1px; }
  .rm-fab .fab-price .n{ font-size:22px; }
  .rm-fab .fab-go{
    flex:0 0 auto; padding:11px 22px; border:none; border-radius:10px; cursor:pointer;
    /* 🔴 红底上朱红按钮会消失 ⇒ 改**金按钮 + 深朱字**（红金配） */
    font-size:15px; font-weight:700; letter-spacing:1.5px; color:#7a1d12;
    background:linear-gradient(180deg,#f7dfae 0%,#e0bd77 48%,#c9a45c 100%);
    box-shadow:0 5px 16px rgba(0,0,0,.30), inset 0 1px 0 rgba(255,255,255,.55);
    transition:filter .15s ease;
  }
  .rm-fab .fab-go:active{ filter:brightness(.92); }
  .rm-fab .fab-go:disabled{ opacity:.6; cursor:default; }
  /* 悬浮条出现时给页面留出底部安全间距，避免遮住页脚 */
  body.rm-fab-on{ padding-bottom:84px; }

  /* 支付方式弹层（底部抽屉 · 礼盒纸感排版） */
  .rm-dw-mask{
    position:fixed; inset:0; z-index:940; background:rgba(52,32,20,.5);
    opacity:0; pointer-events:none; transition:opacity .22s ease;
  }
  .rm-dw-mask.on{ opacity:1; pointer-events:auto; }
  .rm-dw{
    position:fixed; left:50%; bottom:0; z-index:950;
    width:100%; max-width:480px;
    transform:translateX(-50%) translateY(103%);
    transition:transform .32s cubic-bezier(.2,.8,.3,1);
    padding:26px 24px calc(22px + env(safe-area-inset-bottom,0px));
    border-radius:20px 20px 0 0;
    max-height:92vh; overflow-x:hidden; overflow-y:auto;
    background:
      linear-gradient(112deg,rgba(255,255,255,.20) 0%,rgba(255,255,255,0) 38%,
                      rgba(255,255,255,.14) 55%,rgba(255,255,255,0) 76%),
      linear-gradient(180deg,#b8352a 0%,#a3231a 48%,#87130b 100%);
    border-top:3px solid #d9b273;
    box-shadow:0 -14px 44px rgba(90,12,6,.38), inset 0 1px 0 rgba(255,220,160,.32);
    color:#ffe9c4; text-align:center;
  }
  .rm-dw::after{
    content:''; position:absolute; inset:5px 5px 0; border:1px solid rgba(255,214,140,.30);
    border-bottom:0; border-radius:15px 15px 0 0; pointer-events:none; z-index:0;
  }
  .rm-dw.on{ transform:translateX(-50%) translateY(0); }
  /* 🔴 2026-10-04：弹层内容已改成与页面内付费墙卡片（#rmPayWall）**同构**，
     直接复用 .rm-pw-seal / .rm-pw-tag / .rm-pw-title / .rm-pw-sub / .rm-pw-price /
     .rm-pw-tip / .rm-pw-btn 这整套样式 ⇒ 改一处两边同时生效。
     原先那套「抓手条 + 单行标题 + 大价格 + 一排按钮」的 .rm-dw-bar/-title/-price/
     -sub/-btns/-btn 样式已整体删除，不要再加回来（用户 2026-10-04：弹层太单调）。 */
  .rm-dw-close{
    position:absolute; z-index:3; right:14px; top:12px; width:28px; height:28px; line-height:28px;
    color:#e8c894; cursor:pointer; font-size:15px; text-align:center;
    transition:color .15s ease;
  }
  .rm-dw-close:active{ color:#fff2d6; }
  /* .rm-dw-note 同上：非担保交易，整行 + 1px 分割线已删除，不要再加回来。 */
  .rm-dw-wait{
    display:none; margin-top:12px; padding:10px 12px; border-radius:8px;
    font-size:12px; line-height:1.7; color:#f7e0b7; text-align:left;
    background:rgba(255,240,210,.12); border:1px solid rgba(255,214,140,.30);
  }
  .rm-dw-wait.on{ display:block; }
  .rm-dw-wait b{ color:#ffd98f; }


  /* ---------- 窄屏头部适配（≤767px；桌面 ≥768px 完全走上面的基态，一个字节都不动）----------
     ⚠️ 断点必须是 767 而不是 480：.page 是 max-width:480px，视口 481~767 时页面仍然是
     480 宽的"手机版式"（只是两侧露出 body 底色），断点写 480 会让它掉回 PC 基态。
     ⚠️ 罗盘在 HTML 里已搬进 .hero-row（顺序 title → sub → compass），
     这里改成 flex 项 + align-items:center ⇒ 上下留白自动各一半，
     标题 2~4 字（「结婚吉日」/「安门」…）都不用改 CSS，这才是"和首页一致"的正解。
     ⚠️ `.hero-row` 绝不能设 position，否则 PC 的 absolute 参照会错位。 */
  @media (max-width:767px){
    /* 🔴 .hero 高度必须是 auto：红条是流元素会占掉一行高，写死高度会裁掉内容 */
    .hero{ padding:22px 14px 0; height:auto; }
    .hero-row{ align-items:center; gap:12px; }
    .compass{
      --rmc: min(230px, calc(100vw - 125px));
      position:relative;
      top:auto; right:auto; bottom:auto; left:auto;
      flex:0 0 auto;
      width:var(--rmc); height:var(--rmc);
      margin-left:auto;
      filter:drop-shadow(0 8px 18px rgba(120,60,20,.30));
    }
    .birds{ top:14px; left:32%; }
    /* 云朵原本 bottom:70px 相对 hero 底，hero 变高后会被红条盖住 → 改成按 top 定位 */
    .cloud{ bottom:auto; top:250px; }
    .hero-badge{ font-size:11px; letter-spacing:3px; padding:4px 11px; }
    /* 大字 64px 在窄屏过大 → 收到 56px；阴影砍到 2 层，避免小屏糊 */
    .hero-title{
      margin-top:6px; font-size:56px; letter-spacing:9px;
      filter:
        drop-shadow(0 2px 0 rgba(255,244,215,.95))
        drop-shadow(0 7px 11px rgba(120,40,20,.30));
    }
    /* 竖排小字：浅色 text-shadow 在浅米底上等于糊一层雾 → 去掉；字距收窄、字色加深、加粗 */
    .hero-sub{
      margin-top:14px;
      font-size:15px; letter-spacing:4px; font-weight:600;
      color:#6b4826; text-shadow:none;
    }
    /* ⚠️ 这里曾给 .hero-seal（「立即测算」）写移动端放大规则，但那颗 button 已从
       jiri_*.html 整行删掉了（2026-10-05，跟首页对齐）：PC 上它本来就藏在红条下面
       五点命中 0（完全不可见 + 被 overflow:hidden 裁底 4.6px），删掉对 PC 零影响。
       ⛔ 别复活它、别用 display:none 藏——要入口走底部悬浮 CTA。 */
    /* 🔴 红条原本 position:absolute;bottom:0，会整条压住头部内容（首页那颗按钮被它盖到
       100% 不可见）→ 改回流元素；负 margin 抵掉 .hero 的左右 padding，保持满宽出血。 */
    .hero-banner{
      position:relative; left:auto; right:auto; bottom:auto;
      margin:16px -14px 0;
      font-size:11px; letter-spacing:0; padding:7px 8px; line-height:1.7;
    }
    /* 服务介绍 · 图文卡片：窄屏改上下堆叠。
       PC 左图右文 / 右图左文（.wz-item.rev）不动，这里只在 ≤767px 生效。
       104px 的大图标在手机上会把文字挤成窄条 ⇒ 图标收到 86px + 居中。 */
    .wz-item{ flex-direction:column; align-items:center; text-align:center; gap:10px; margin-bottom:22px; }
    .wz-item.rev{ flex-direction:column; }
    .wz-ico{ flex:0 0 auto; width:86px; height:86px; }
    .wz-item h3{ margin-top:4px; }
  }
