/* ============================================================
   超勤体育（chaoqin）专属皮肤 —— 金陵体育风格：深蓝 + 红 + 运动感
   隔离规则：
   - 全部规则挂在 body.chaoqin 作用域下，其他 GeoSite 站点（智搜/云庄主/微洽通/智融）逐字不变；
   - 全新 cq- 前缀类名，不与 geosite.css / 公共样式冲突；
   - 公共样式（geosite.css / inc.min.css）只引用、不改；本文件只在超勤加载。
   配色：深蓝主色 #0d1f4f / #13286b / #1b3fa0，超勤红 #e60012（与 logo 红一致）。
   图片约定：条目 Image 存 /user_file/ 路径 → .cq-photo（上图下文）/ .cq-hover-photo（hover 底图）；
            存图标名 → 原图标渲染。客户后台换图即生效。
   ============================================================ */

/* 2026-11-04 主题切换兼容（第二批：整站超勤区块）
   强调色（红族）一律链到皮肤槽位，深蓝/墨色（结构底色）保持字面量：
   - --cq-red    → --xz-red       ：科技蓝 #1D5FD6 / 品牌红 #E60012，随 data-yz-theme 整站一起换
   - --cq-red2   → --zs-logo-hot  ：渐变/hover 的亮端，两套主题各自给值（#4D7DFF / #FF3B47）
   - --cq-red-ink→ --xz-red-deep  ：小字用的深一档（蓝 #1B3FB5 白底 8.4:1、红 #B3121F 6.95:1，都过 AA）
   深蓝 #0d1f4f / #13286b / #1b3fa0 是"深色带"的结构底色，两套主题共用同一套深色（客户的品牌语言
   就是深蓝托底 + 信号色点缀），把它链到信号色会让深色带在红主题下整片变酒红、白字压不住，所以留字面量。
   ⚠ 半透明底/描边/光晕不再写 rgba(230,0,18,α)，一律 rgba(var(--yz-tint,230,0,18),α)——
     --yz-tint 由 chaoqin.css 两套 :root 各自声明，这里只给兜底值，切主题时底色跟前景色同步。 */
body.chaoqin {
    --cq-navy: #0d1f4f;
    --cq-navy2: #13286b;
    --cq-blue: #1b3fa0;
    --cq-red: var(--xz-red, #e60012);
    --cq-red2: var(--zs-logo-hot, #ff2d2d);
    --cq-ink: #081230;
    --cq-gray: #f5f7fb;
    --cq-muted: #6a7693;
}

/* ---------- 按钮（首屏 V2 与站内通用） ---------- */
body.chaoqin .cq-btn {
    display: inline-flex;
    align-items: center;
    height: 50px;
    padding: 0 30px;
    border-radius: 4px;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .04em;
    text-decoration: none;
    transition: transform .18s, box-shadow .18s, background .18s;
}
body.chaoqin .cq-btn-primary {
    background: var(--cq-red);
    color: #fff;
    box-shadow: 0 10px 26px rgba(var(--yz-tint,230,0,18),.4);
}
body.chaoqin .cq-btn-primary:hover { transform: translateY(-2px); box-shadow: 0 14px 32px rgba(var(--yz-tint,230,0,18),.55); }
body.chaoqin .cq-btn-ghost {
    background: rgba(255,255,255,.06);
    color: #fff;
    border: 2px solid rgba(255,255,255,.7);
}
body.chaoqin .cq-btn-ghost:hover { background: rgba(255,255,255,.16); transform: translateY(-2px); }

/* ---------- 版头统一：红色序号标 + 深蓝大标题 + 红色短分隔线（金陵三件套） ---------- */
body.chaoqin .section-badge,
body.chaoqin .customer-value-section .section-badge {
    background: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    color: var(--cq-red);
    font-weight: 800;
    font-size: 14px;
    letter-spacing: .14em;
    padding: 0 0 0 10px;
    border-left: 4px solid var(--cq-red);
}
body.chaoqin .content-section h2,
body.chaoqin .customer-value-section h2 {
    color: var(--cq-navy);
    font-weight: 800;
    position: relative;
    padding-bottom: 14px;
    display: inline-block;
}
body.chaoqin .content-section h2::after,
body.chaoqin .customer-value-section h2::after {
    content: "";
    position: absolute;
    left: 0; bottom: 0;
    width: 56px; height: 4px;
    border-radius: 2px;
    background: var(--cq-red);
}
body.chaoqin .content-section .subtitle,
body.chaoqin .content-section .section-subtext,
body.chaoqin .customer-value-section .sub-title { color: var(--cq-muted); }

/* ---------- 整页节奏：白底区块 ↔ 深色大区块交替（金陵式） ---------- */
/* 企业区（shift）：老站首屏 banner（篮球馆）做背景。
   原团队合影压暗后几乎只剩灰蓝色，用户反馈"发灰"；换成老站 banner 后饱和度更高。
   banner 上烤死了产品参数大字，所以按 16px 高斯模糊 + 深蓝遮罩处理成"光色"，
   只留馆灯/红色看台/木地板的氛围，不让广告字和正文抢。 */
body.chaoqin section#shift {
    position: relative;
    overflow: hidden;
    background: var(--cq-ink);
}
body.chaoqin section#shift::before {
    content: "";
    position: absolute;
    inset: -40px;
    background: url('/html/img/chaoqin/bg-shift.jpg') 32% center / cover no-repeat;
    filter: blur(16px) saturate(1.45) brightness(.92);
    transform: scale(1.08);
    pointer-events: none;
}
body.chaoqin section#shift::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(100deg,
        rgba(6,14,38,.92) 0%, rgba(9,22,58,.84) 44%,
        rgba(10,26,68,.68) 72%, rgba(12,30,80,.58) 100%);
    pointer-events: none;
}
body.chaoqin section#shift > .page-shell { position: relative; z-index: 2; }
body.chaoqin section#shift h2,
body.chaoqin section#value h2,
body.chaoqin section#cta h2 { color: #fff; }
body.chaoqin section#shift .section-badge,
body.chaoqin section#value .section-badge,
body.chaoqin section#cta .section-badge { color: #ffd2d6; border-left-color: var(--cq-red); }
body.chaoqin section#shift .column-subtitle { color: #eaf0ff; }
body.chaoqin section#shift .question-card {
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.14);
    color: #eaf0ff;
}
body.chaoqin section#shift .warning-box {
    background: rgba(var(--yz-tint,230,0,18),.16);
    border: 1px solid rgba(255,80,90,.4);
}
body.chaoqin section#shift .warning-header,
body.chaoqin section#shift .warning-text { color: #ffd9dc; }
body.chaoqin section#shift .past-card,
body.chaoqin section#shift .present-card {
    background: rgba(255, 255, 255, .84);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    border: 1px solid rgba(255, 255, 255, .55);
    border-top: 3px solid var(--cq-red);
    border-radius: 10px;
}
/* 两栏底部对齐：共享层是 align-items:start，谁高谁矮随宽度翻脸
   （1440 右栏比左栏高 28px，1024 反过来左栏高 30px），所以改成 stretch 让两栏等高，
   多出来的差额摊给"内容卡"（左栏两张、右栏三条），
   末尾的注意框保持自然高度被顶下去——这样矮的一栏拉长、高的一栏不动，
   底边落在同一条线上，也不会出现某一张卡单独吞掉整段空白。 */
body.chaoqin section#shift .background-grid {
    grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr);
    align-items: stretch;
}
body.chaoqin section#shift .left-column > .card,
body.chaoqin section#shift .right-column > .questions-list,
body.chaoqin section#shift .questions-list > .question-card {
    flex: 1 1 auto;
}
body.chaoqin section#shift .platform-item {
    background: rgba(255, 255, 255, .68);
    border-color: rgba(13, 31, 79, .08);
}
/* 900px 以下上下堆叠（本皮肤 #zs-company 同档）：768 时右栏只剩 303px，
   三条"采购方最常提"被挤成两行，不如整段摊平到一栏。
   堆叠后"底部对齐"没有意义，把上条的拉伸收回自然高度，并把两组之间的
   间距从共享层的 16px 拉开到 32px——原来组间距比卡片内间距还小，读起来像同一组。 */
@media (max-width: 900px) {
    body.chaoqin section#shift .background-grid {
        grid-template-columns: 1fr;
        align-items: start;
        gap: 32px;
    }
    body.chaoqin section#shift .left-column > .card,
    body.chaoqin section#shift .right-column > .questions-list,
    body.chaoqin section#shift .questions-list > .question-card {
        flex: 0 1 auto;
    }
}

/* 价值区（value）：深蓝渐变 + 与首屏同族的同心环 + 慢转弧线。
   原 other-089.jpg 是"关于超勤 ABOUT US"图标墙，图上本身有大字，压暗后透上来压住标题与标签，故弃用照片。
   10-31 晚：方格平铺 + 斜移被否（方格本身已是纹样，再叠位移显得乱），改为静态同心环 + 一道慢扫弧线。 */
body.chaoqin section#value {
    position: relative;
    overflow: hidden;
    background: radial-gradient(120% 140% at 84% 10%, #1b3fa0 0%, #13286b 44%, #0d1f4f 72%, #081230 100%);
}
body.chaoqin section#value::before {
    content: "";
    position: absolute;
    right: -200px;
    top: 50%;
    width: 720px;
    height: 720px;
    margin-top: -360px;
    border-radius: 50%;
    background: repeating-radial-gradient(circle, transparent 0 70px, rgba(120, 170, 255, .12) 70px 71px);
    -webkit-mask-image: radial-gradient(circle, #000 0 60%, transparent 76%);
    mask-image: radial-gradient(circle, #000 0 60%, transparent 76%);
    pointer-events: none;
}
/* 弧环半径必须落在区块可视高度内（09 高约 509，半高 255），否则环被 overflow 裁掉只剩左右两截。
   这里用 px 定半径 212px（正好压在同族第 3 道静态环上），整圈可见。 */
body.chaoqin section#value::after {
    content: "";
    position: absolute;
    right: -120px;
    top: 50%;
    width: 560px;
    height: 560px;
    margin-top: -280px;
    border-radius: 50%;
    background: conic-gradient(from 0deg,
        transparent 0deg 272deg,
        rgba(120, 170, 255, 0) 272deg,
        rgba(185, 210, 255, .72) 316deg,
        rgba(255, 110, 120, .66) 334deg,
        rgba(255, 110, 120, 0) 354deg,
        transparent 354deg 360deg);
    -webkit-mask-image: radial-gradient(circle, transparent 0 206px, rgba(0,0,0,.55) 212px, #000 216px, rgba(0,0,0,.55) 221px, transparent 228px);
    mask-image: radial-gradient(circle, transparent 0 206px, rgba(0,0,0,.55) 212px, #000 216px, rgba(0,0,0,.55) 221px, transparent 228px);
    filter: blur(1px);
    animation: cq2-arc-spin 26s linear infinite;
    pointer-events: none;
}
@keyframes cq2-arc-spin { to { transform: rotate(360deg); } }
body.chaoqin section#value .w1300 { position: relative; z-index: 1; }
body.chaoqin section#value .sub-title { color: #c3cfe8; }
/* 暗底上的序号标：皮肤里 .section-badge 带 !important 深红，压在上面只有 1.3:1，实测看不清 */
body.chaoqin section#value .section-badge,
body.chaoqin section#shift .section-badge,
body.chaoqin section#cta .section-badge {
    color: #ffd2d6 !important;
    border-left-color: var(--cq-red2);
}
body.chaoqin section#value .tag-text { color: #fff; }
/* 09 标签框：给一层可感知的底色（原来只有 10% 白，暗底上几乎等于没填），
   hover 时补一道从左掠过的光带 —— 只做一次（.7s），不常驻闪烁 */
body.chaoqin section#value .value-tag-item {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, rgba(255,255,255,.16) 0%, rgba(255,255,255,.09) 55%, rgba(255,255,255,.05) 100%);
    border: 1px solid rgba(255,255,255,.26);
    color: #fff;
    transition: background .25s ease, border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
body.chaoqin section#value .value-tag-item::after {
    content: "";
    position: absolute;
    top: 0;
    left: -60%;
    width: 45%;
    height: 100%;
    background: linear-gradient(100deg, transparent 0%, rgba(255,255,255,.45) 50%, transparent 100%);
    transform: skewX(-18deg);
    opacity: 0;
    pointer-events: none;
}
body.chaoqin section#value .value-tag-item:hover {
    background: linear-gradient(135deg, rgba(var(--yz-tint,230,0,18),.24) 0%, rgba(255,255,255,.12) 60%, rgba(255,255,255,.07) 100%);
    border-color: rgba(255,120,128,.8);
    box-shadow: 0 12px 26px rgba(0,0,0,.3);
    transform: translateY(-2px);
}
body.chaoqin section#value .value-tag-item:hover::after { animation: cq2-sweep .7s ease-out; }
@keyframes cq2-sweep {
    0% { left: -60%; opacity: 1; }
    100% { left: 110%; opacity: 0; }
}
body.chaoqin section#value .check-icon { color: var(--cq-red2); }

/* CTA：原来的 banner-002 自带产品参数大字，压暗后仍与正文打架；改成纯深蓝渐变（与 09 同族） */
body.chaoqin section#cta {
    position: relative;
    overflow: hidden;
    background: radial-gradient(90% 120% at 50% 0%, #1b3fa0 0%, #13286b 45%, #0b1b46 78%, #081230 100%);
}
body.chaoqin section#cta > .w1300 { position: relative; z-index: 1; }
/* CTA 的科技线条 = 居中的同心环 + 反向慢转弧线（与 09 同族、位置与配色略异）。
   10-31 晚：横向下行线被否（"上下滚动"与方格叠在一起很怪），统一改成环状静态纹样 + 弧线扫过。 */
body.chaoqin section#cta::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 1120px;
    height: 1120px;
    margin: -560px 0 0 -560px;
    border-radius: 50%;
    background: repeating-radial-gradient(circle, transparent 0 96px, rgba(120, 170, 255, .11) 96px 97px);
    -webkit-mask-image: radial-gradient(circle, transparent 0 34%, #000 44% 62%, transparent 82%);
    mask-image: radial-gradient(circle, transparent 0 34%, #000 44% 62%, transparent 82%);
    pointer-events: none;
}
/* 同上：CTA 高约 696 半高 348，弧环半径收到 300px 才不会被上下裁掉 */
body.chaoqin section#cta::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 620px;
    height: 620px;
    margin: -310px 0 0 -310px;
    border-radius: 50%;
    background: conic-gradient(from 0deg,
        transparent 0deg 278deg,
        rgba(255, 110, 118, 0) 278deg,
        rgba(255, 110, 118, .5) 322deg,
        rgba(120, 170, 255, .48) 340deg,
        rgba(120, 170, 255, 0) 356deg);
    -webkit-mask-image: radial-gradient(circle, transparent 0 294px, rgba(0,0,0,.55) 300px, #000 304px, rgba(0,0,0,.55) 309px, transparent 316px);
    mask-image: radial-gradient(circle, transparent 0 294px, rgba(0,0,0,.55) 300px, #000 304px, rgba(0,0,0,.55) 309px, transparent 316px);
    filter: blur(1.2px);
    animation: cq2-arc-spin 32s linear infinite reverse;
    pointer-events: none;
}
/* 10-31 第七轮：皮肤基里的 .hero-card 是 2px 红描边（chaoqin.css body .website-page .hero-card
   border-color:rgba(230,0,18,.34)），压在深蓝 CTA 底上像一根红色细线，用户要求去掉。
   改法：卡片本体描边清零，只留极淡的玻璃底 + 外投影做层次；边框改由两个伪元素画
   ——::before 静态冷白细环（若隐若现），::after 是一段红尾白头的彗星光，沿环行走。
   彗星用 @property 注册角度再转 conic-gradient，不支持 @property 的浏览器停在初值，
   退化成"只有静态细环"，不会掉边框也不会白屏。
   方向取 reverse（逆时针）与本节背景那道弧线 cq2-arc-spin 同向，视觉上像跟着那圈圆一起滚。 */
@property --cq-cta-angle {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0deg;
}
body.chaoqin section#cta .hero-card {
    border: 0;
    background: linear-gradient(180deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .015));
    box-shadow: 0 30px 70px rgba(3, 10, 34, .38);
    text-align: center;
}
body.chaoqin section#cta .hero-card::before,
body.chaoqin section#cta .hero-card::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1.5px;
    pointer-events: none;
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    mask-composite: exclude;
}
body.chaoqin section#cta .hero-card::before {
    background: conic-gradient(
        rgba(158, 190, 255, .24),
        rgba(158, 190, 255, .10) 90deg,
        rgba(158, 190, 255, .28) 180deg,
        rgba(158, 190, 255, .10) 270deg,
        rgba(158, 190, 255, .24) 360deg);
}
body.chaoqin section#cta .hero-card::after {
    padding: 2.5px; /* 彗星比静态环略粗，才压得过底下那圈冷白 */
    background: conic-gradient(from var(--cq-cta-angle),
        rgba(255, 255, 255, 0) 0deg 288deg,
        rgba(255, 110, 120, .34) 316deg,
        rgba(255, 170, 176, .72) 336deg,
        rgba(236, 245, 255, 1) 350deg,
        rgba(150, 195, 255, .5) 357deg,
        rgba(255, 255, 255, 0) 360deg);
    /* 这里不能再叠 filter:blur —— 模糊发生在遮罩之前，细环被糊出去的部分正好被 mask 裁掉，
       实测整条彗星淡到看不见（10-31 第七轮首版踩过）。柔边改由 conic 的色标间距做。 */
    animation: cq-cta-orbit 14s linear infinite reverse;
}
@keyframes cq-cta-orbit {
    to { --cq-cta-angle: 360deg; }
}
body.chaoqin section#cta .card-sub-label { color: #c7d2ee; }
body.chaoqin section#cta .card-main-title { color: #fff; }
body.chaoqin section#cta .card-main-title.us-title { color: #ffd2d6; }
body.chaoqin section#cta .divider-line { background: rgba(255,255,255,.16); }
body.chaoqin section#cta .upgrade-badge {
    background: var(--cq-red);
    color: #fff;
    border-radius: 999px;
}
/* 皮肤给 .upgrade-badge span 塞了蓝色 !important，红底上实测 1.6:1；电话号是深色字压在暗底上 */
body.chaoqin section#cta .upgrade-badge span { color: #fff !important; }
body.chaoqin section#cta .zs-tel,
body.chaoqin section#cta .zs-tel strong { color: #fff; }
body.chaoqin section#cta .primary-btn {
    background: var(--cq-red);
    color: #fff;
    border: 0;
    box-shadow: 0 10px 26px rgba(var(--yz-tint,230,0,18),.4);
}
body.chaoqin section#cta .primary-btn:hover { background: var(--cq-red2); transform: translateY(-2px); }

/* 资讯/问答区浅灰底（留白节奏） */
body.chaoqin section#news,
body.chaoqin section#faq { background: var(--cq-gray); }

/* ---------- 卡片家族：白卡 + 红顶线 + hover 上浮（金陵式） ---------- */
body.chaoqin .diagnosis-card,
body.chaoqin .service-card,
body.chaoqin .customer-card,
body.chaoqin .step-card,
body.chaoqin .pillar-card,
body.chaoqin .group-card,
body.chaoqin .past-card,
body.chaoqin .present-card {
    border-radius: 10px;
    transition: transform .22s, box-shadow .22s, border-color .22s;
}
body.chaoqin .diagnosis-card:hover,
body.chaoqin .service-card:hover,
body.chaoqin .customer-card:hover,
body.chaoqin .step-card:hover,
body.chaoqin .pillar-card:hover,
body.chaoqin .group-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 18px 40px rgba(13,31,79,.16);
}
body.chaoqin .diagnosis-card .icon-box,
body.chaoqin .service-card .icon-box { color: var(--cq-red); }
body.chaoqin .diagnosis-card.highlighted {
    border-top: 3px solid var(--cq-red);
    box-shadow: 0 14px 34px rgba(var(--yz-tint,230,0,18),.14);
}
body.chaoqin .diagnosis-card:not(.highlighted),
body.chaoqin .customer-card,
body.chaoqin .pillar-card,
body.chaoqin .step-card,
body.chaoqin .group-card { border-top: 3px solid transparent; }
body.chaoqin .diagnosis-card:not(.highlighted):hover,
body.chaoqin .customer-card:hover,
body.chaoqin .pillar-card:hover,
body.chaoqin .step-card:hover,
body.chaoqin .group-card:hover { border-top-color: var(--cq-red); }

body.chaoqin .service-card .tag-badge {
    background: rgba(var(--yz-tint,230,0,18),.08);
    color: var(--cq-red);
    border-radius: 999px;
    font-weight: 700;
}
body.chaoqin .service-card .action-btn.dark-btn { background: var(--cq-navy); color: #fff; }
body.chaoqin .service-card .action-btn.purple-btn {
    background: var(--cq-red);
    color: #fff;
}
body.chaoqin .service-card .action-btn.purple-btn:hover { background: var(--cq-red2); }
body.chaoqin .service-card .action-btn .arrow { color: #ffd2d6; }
body.chaoqin .pillar-tag {
    background: rgba(var(--yz-tint,230,0,18),.08);
    color: var(--cq-red);
    border-radius: 999px;
    font-weight: 700;
}
body.chaoqin .pillar-num { color: rgba(13,31,79,.18); }
body.chaoqin .step-badge { color: var(--cq-red); font-weight: 800; letter-spacing: .1em; }
body.chaoqin .group-tag {
    background: rgba(var(--yz-tint,230,0,18),.08);
    color: var(--cq-red);
    border-radius: 999px;
    font-weight: 700;
}
body.chaoqin .group-icon { color: var(--cq-red); }

/* ---------- 03 业务板块图片框：纯白底 + 灰色描边（原来 #f5f7fb 灰底白边，照片四周像两块灰补丁） ---------- */
body.chaoqin section#steps .cq-photo {
    background-color: #fff;
    box-shadow: inset 0 0 0 1px #e5e7eb;
}

/* ---------- 08 服务客群：纯白底（不再用灰底）+ 灰色描边；奇偶交叉透图 ——
   奇数默认透出行业底图、偶数默认纯白；hover 时两者互换（奇数回到纯白，偶数浮出底图）。
   10-31 第七轮：白色渐隐换成带一点品牌蓝的冷白纱，透明度抬到 .50 ——
   纯白纱压 12px 模糊会把照片洗成两块灰补丁（用户判"效果不好"），
   冷白纱 + 6px 模糊下读出来的是"淡蓝氛围 + 隐约构图"，文字区仍始终可读。 */
body.chaoqin section#fit .customer-card {
    background: #fff;
    border: 1px solid #dde3ec;
    transition: background .25s ease, border-color .25s ease, transform .22s, box-shadow .22s;
}
body.chaoqin section#fit .customer-card:nth-child(odd) .cq-hover-photo { opacity: .50; }
body.chaoqin section#fit .customer-card .cq-hover-photo::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(105deg, rgba(255,255,255,.93) 0%, rgba(238,244,255,.74) 46%, rgba(216,230,255,.44) 100%);
}
body.chaoqin section#fit .customer-card:hover { background: #fff; border-color: #c8d0dd; }
body.chaoqin section#fit .customer-card:nth-child(odd):hover .cq-hover-photo { opacity: 0; }
body.chaoqin section#fit .customer-card:nth-child(even):hover .cq-hover-photo { opacity: .50; }

/* ---------- 图片用法 B：上图下文（.cq-photo） ----------
   contain 保证"整张图可见、比例不变形"；固定高度 + cover 会把产品图裁掉头尾（本次返工根因）。
   容器统一 16:9：站内图源绝大多数是 1.4~1.9 的横图，16:9 时留白最少。 */
body.chaoqin .cq-photo {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    margin-bottom: 16px;
    border-radius: 8px;
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    background-color: #f5f7fb; /* 图未铺满时的留白底 */
}
body.chaoqin .step-card .cq-photo,
body.chaoqin .diagnosis-card .cq-photo { aspect-ratio: 16 / 9; }
body.chaoqin .pillar-card .cq-photo {
    aspect-ratio: 16 / 9;
    margin-bottom: 0;
    border-radius: 8px;
}
body.chaoqin .pillar-card .pillar-body { padding-top: 14px; }

/* ---------- 08 自有品牌：8 个品牌一行 4 个（2 行铺满），图区 16:9 完整显示 ---------- */
@media (min-width: 1200px) {
    body.chaoqin .pillar-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
}
@media (min-width: 721px) and (max-width: 1199px) {
    body.chaoqin .pillar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
    body.chaoqin .pillar-grid { grid-template-columns: 1fr; }
}

/* ---------- 06 服务承诺：两个分组 + 服务保障卡，三栏填满；<=1023 两栏、<=720 单栏 ---------- */
@media (min-width: 1024px) {
    body.chaoqin .deliverable-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1023px) {
    body.chaoqin .deliverable-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* 两栏时第三张保障卡横跨整行，否则第二行空半格 */
@media (min-width: 721px) and (max-width: 1023px) {
    body.chaoqin .cq-assure-card { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
    body.chaoqin .deliverable-grid { grid-template-columns: 1fr; }
}
/* 保障卡：宽高与旁边两张分组卡对齐（同一 grid 行等高），内层三行复用 item-card 的观感 */
body.chaoqin .cq-assure-card { display: flex; flex-direction: column; }
body.chaoqin .cq-assure-body { display: flex; flex: 1; flex-direction: column; justify-content: space-between; gap: 12px; }
body.chaoqin .cq-assure-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 14px;
    background: #f7fafd;
    border: 1px solid #e6efff;
}
body.chaoqin .cq-assure-row .k { flex: none; width: 68px; font-size: 12px; font-weight: 700; color: var(--cq-red); letter-spacing: .06em; }
body.chaoqin .cq-assure-row .v { font-size: 13px; line-height: 1.7; color: #4a566f; }
body.chaoqin .cq-assure-row .v strong { color: var(--cq-navy); }
body.chaoqin .cq-assure-tel { display: inline-block; margin-top: 2px; font-size: 20px; font-weight: 800; color: var(--cq-navy); text-decoration: none; letter-spacing: .01em; }
body.chaoqin .cq-assure-tel:hover { color: var(--cq-red); }

/* ---------- 图片用法 C：hover 浮现行业底图（.cq-hover-photo） ----------
   底图只做"氛围"，不做阅读对象。10-31 第七轮把 12px 降到 6px：12px 下照片糊成一团灰，
   用户判"模糊得太厉害、效果不好"；6px 保住轮廓明暗，图里烤死的大字（「发展规模」
   「CQ-1000A…」）已经读不出笔画。压字这件事不再单靠模糊，改由下面那层冷白纱
   （#fit 的 ::after）承担——纱带一点品牌蓝，观感是"淡蓝氛围"而不是"灰块"。 */
body.chaoqin .service-card,
body.chaoqin .customer-card { position: relative; overflow: hidden; }
body.chaoqin .service-card > *:not(.cq-hover-photo),
body.chaoqin .customer-card > *:not(.cq-hover-photo) { position: relative; z-index: 1; }
body.chaoqin .cq-hover-photo {
    position: absolute;
    inset: 0;
    z-index: 0;
    background-size: cover;
    background-position: center;
    background-color: transparent; /* 图拉不到时保持卡片底色，不退化成深蓝色块 */
    filter: blur(6px) saturate(1.15);
    transform: scale(1.08); /* 模糊会在四边留下半透明毛边，放大盖掉 */
    opacity: 0;
    transition: opacity .35s ease;
    pointer-events: none;
}
body.chaoqin .service-card:hover .cq-hover-photo,
body.chaoqin .customer-card:hover .cq-hover-photo { opacity: .22; }

/* ---------- 新闻区（品牌新闻式：白卡 + 图片 + hover 上浮） ---------- */
body.chaoqin .gs-news-card {
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
    border-top: 0;
    transition: transform .22s, box-shadow .22s;
}
body.chaoqin .gs-news-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 18px 40px rgba(13,31,79,.16);
}
body.chaoqin .gs-news-img img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    display: block;
}
body.chaoqin .gs-news-card h4 { color: var(--cq-navy); }
body.chaoqin .gs-news-date { color: #9aa5c0; }

/* ---------- 问答区（简洁手风琴 + 红色展开号） ---------- */
body.chaoqin .zs-faq-item {
    background: #fff;
    border: 1px solid #e8ecf5;
    border-radius: 10px;
    overflow: hidden;
}
body.chaoqin .zs-faq-item summary {
    position: relative;
    padding-right: 44px;
    color: var(--cq-navy);
    font-weight: 700;
    cursor: pointer;
    list-style: none;
}
body.chaoqin .zs-faq-item summary::-webkit-details-marker { display: none; }
body.chaoqin .zs-faq-item summary::after {
    content: "+";
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 22px;
    font-weight: 800;
    color: var(--cq-red);
    line-height: 1;
}
body.chaoqin .zs-faq-item[open] summary::after { content: "–"; }
body.chaoqin .zs-faq-item[open] { border-color: rgba(var(--yz-tint,230,0,18),.35); }

/* ---------- 主按钮变超勤红 ---------- */
body.chaoqin .primary-button {
    background: var(--cq-red);
    border-color: var(--cq-red);
    border-radius: 4px;
}
body.chaoqin .primary-button:hover { background: var(--cq-red2); }

/* ---------- 页头（白底细线，logo 保持原站不动） ---------- */
body.chaoqin .xz-header {
    background: #fff;
    border-bottom: 1px solid #edf0f6;
    box-shadow: 0 2px 14px rgba(13,31,79,.06);
}
body.chaoqin .xz-header a:hover { color: var(--cq-red); }

/* ---------- 头部导航瘦身（10-31 第七轮：用户"一级菜单太多，头部太拥挤"） ----------
   11 项一级菜单实测占 741px（1300 容器里 logo 之后只剩这点位置），确实挤。
   数据层不能动：sw_cms_channel.IsNav 是唯一开关，而头部、页脚快捷导航、移动端抽屉、
   /sitemap.xml、/llms.txt 全部同源（NavService.GetNavAsync），关掉一项等于五处一起摘，
   对一个以被 AI 收录为目标的站点是负分。所以这里只在 ≥1200px 的横排页眉收起 4 个次要栏目
   （品牌合作 / 资质与授权 / 招商加盟 / 常见问题；四项内容都真实存在：Partner 39 条、
   certificate 9 条、invest 6 条、faq 14 条），页脚照常全列、抽屉照常全列、收录申报一条不少。
   :not(.active) 是留给"直接落在该页"的访客：正在看这一页时该项仍出现在头部，不会点了找不到。
   机制层待办（要改 C# + 重启 8080，本轮没动）：给栏目表加 IsHeadNav 开关，
   让运营在后台「栏目管理」自己决定哪些进头部，而不是靠皮肤按 URL 收。 */
@media (min-width: 1200px) {
    body.chaoqin .xz-nav a[href*="/partner" i]:not(.active),
    body.chaoqin .xz-nav a[href*="/certificate" i]:not(.active),
    body.chaoqin .xz-nav a[href*="/merchants" i]:not(.active),
    body.chaoqin .xz-nav a[href*="/faq" i]:not(.active) { display: none; }
}

/* ---------- 移动端适配 ---------- */
@media (max-width: 768px) {
    body.chaoqin .cq-btn { height: 44px; padding: 0 22px; font-size: 15px; }
    body.chaoqin .gs-news-img img { height: 150px; }
}

/* ============================================================
   超勤首屏 V2（2026-10-31）：纯文字、560px、无轮播
   全部挂在 .cq2-* 作用域；旧轮播规则已于本版上线验收后删除
   ============================================================ */
body.chaoqin .cq2-hero {
    position: relative;
    height: 560px;
    overflow: hidden;
    background: radial-gradient(120% 140% at 82% 8%, #1b3fa0 0%, #13286b 42%, var(--cq-navy) 68%, var(--cq-ink) 100%);
}
body.chaoqin .cq2-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(46% 60% at 92% 12%, rgba(230, 0, 18, .16), transparent 70%),
        linear-gradient(90deg, rgba(8, 18, 48, .28), transparent 60%);
}
body.chaoqin .cq2-bg::before,
body.chaoqin .cq2-bg::after {
    content: "";
    position: absolute;
    border: 1px solid rgba(255, 255, 255, .11);
    border-radius: 50%;
}
body.chaoqin .cq2-bg::before {
    right: -180px;
    bottom: -220px;
    width: 760px;
    height: 760px;
}
body.chaoqin .cq2-bg::after {
    right: 200px;
    bottom: -220px;
    width: 500px;
    height: 500px;
    border-color: rgba(255, 255, 255, .08);
}
body.chaoqin .cq2-inner {
    position: relative;
    z-index: 2;
    height: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr);
    align-items: center;
    gap: 48px;
}
body.chaoqin .cq2-copy { max-width: 760px; color: #fff; }
/* 两屏切换：无 JS 只显示第一屏；JS 初始化后加 .is-ready 才叠成同一格做淡入淡出 */
body.chaoqin .cq2-slider { display: grid; }
body.chaoqin .cq2-frame { grid-area: 1 / 1; display: none; }
body.chaoqin .cq2-frame.is-active { display: block; }
body.chaoqin .cq2-slider.is-ready .cq2-frame {
    display: block;
    opacity: 0;
    visibility: hidden;
    transition: opacity .55s ease, visibility .55s;
}
body.chaoqin .cq2-slider.is-ready .cq2-frame.is-active { opacity: 1; visibility: visible; }
/* 文案入场：每屏切换（.is-active 重新命中）时子元素淡入上移，按行错峰 80ms */
body.chaoqin .cq2-slider.is-ready .cq2-frame.is-active > * {
    animation: cq2-copy-in .62s cubic-bezier(.22,.61,.36,1) both;
}
body.chaoqin .cq2-slider.is-ready .cq2-frame.is-active > *:nth-child(2) { animation-delay: .08s; }
body.chaoqin .cq2-slider.is-ready .cq2-frame.is-active > *:nth-child(3) { animation-delay: .16s; }
body.chaoqin .cq2-slider.is-ready .cq2-frame.is-active > *:nth-child(4) { animation-delay: .24s; }
body.chaoqin .cq2-slider.is-ready .cq2-frame.is-active > *:nth-child(5) { animation-delay: .30s; }
@keyframes cq2-copy-in {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: translateY(0); }
}
body.chaoqin .cq2-dots { display: flex; gap: 6px; margin-top: 18px; }
body.chaoqin .cq2-dot {
    position: relative;
    width: 28px;
    height: 16px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}
body.chaoqin .cq2-dot::before {
    content: "";
    position: absolute;
    left: 0;
    top: 7px;
    width: 100%;
    height: 3px;
    border-radius: 2px;
    background: rgba(255, 255, 255, .24);
    transition: background .22s;
}
body.chaoqin .cq2-dot.is-active { width: 44px; }
body.chaoqin .cq2-dot.is-active::before { background: var(--cq-red); }
body.chaoqin .cq2-dot:hover::before { background: rgba(255, 255, 255, .5); }
body.chaoqin .cq2-dot.is-active:hover::before { background: var(--cq-red); }
body.chaoqin .cq2-dot:focus-visible { outline: 2px solid rgba(255, 255, 255, .6); outline-offset: 2px; }
/* 视觉不变，只把手指可点区域撑开：手机上 16px 高的细条很难点中。
   2026-11-04 F-F：原来上下各 10px（命中 36px 高），仍小拇指够不着；
   纵向放到 14px → 44px，横向不再外扩（相邻两颗只隔 6px，外扩会互相压住）。 */
body.chaoqin .cq2-dot::after { content: ""; position: absolute; inset: -14px 0; }
body.chaoqin .cq2-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 22px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .22em;
    color: #dfe6ff;
}
body.chaoqin .cq2-kicker::before {
    content: "";
    width: 4px;
    height: 18px;
    background: var(--cq-red);
}
body.chaoqin .cq2-copy h1,
body.chaoqin .cq2-copy .cq2-h1 {
    margin: 0 0 18px;
    max-width: 7.2em;
    font-size: clamp(42px, 4.4vw, 62px);
    font-weight: 900;
    line-height: 1.12;
    letter-spacing: .01em;
    color: #fff;
    text-shadow: none;
}
body.chaoqin .cq2-promise {
    margin: 0 0 12px;
    font-size: clamp(17px, 1.5vw, 20px);
    font-weight: 500;
    line-height: 1.55;
    color: #e6ecff;
}
body.chaoqin .cq2-promise em {
    font-style: normal;
    font-weight: 700;
    color: #fff;
}
body.chaoqin .cq2-facts {
    margin: 0 0 12px;
    font-size: 13px;
    letter-spacing: .08em;
    color: #bcc9e6;
}
body.chaoqin .cq2-desc {
    margin: 0 0 28px;
    max-width: 560px;
    font-size: 14px;
    line-height: 1.75;
    color: #aab9dc;
}
body.chaoqin .cq2-actions { display: flex; flex-wrap: wrap; gap: 14px; }
body.chaoqin .cq2-actions .cq-btn {
    height: 48px;
    padding: 0 26px;
    border-radius: 6px;
    font-size: 15px;
}
body.chaoqin .cq2-trust {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 20px 0 0;
    font-size: 12px;
    letter-spacing: .04em;
    color: #8fa1c9;
}
body.chaoqin .cq2-trust i {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--cq-red);
}
body.chaoqin .cq2-visual {
    position: relative;
    height: 100%;
    pointer-events: none;
}
body.chaoqin .cq2-court {
    position: absolute;
    right: -40px;
    top: calc(50% - 210px);
    width: 420px;
    height: 420px;
    border: 1px dashed rgba(255, 255, 255, .18);
    border-radius: 50%;
    animation: cq2-spin 60s linear infinite;
}
body.chaoqin .cq2-court::before,
body.chaoqin .cq2-court::after {
    content: "";
    position: absolute;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 50%;
}
body.chaoqin .cq2-court::before { inset: 62px; }
body.chaoqin .cq2-court::after { inset: 160px; border-color: rgba(230, 0, 18, .35); }
body.chaoqin .cq2-watermark {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: clamp(170px, 18vw, 250px);
    font-weight: 900;
    line-height: .9;
    letter-spacing: -.06em;
    color: transparent;
    -webkit-text-stroke: 1px rgba(255, 255, 255, .14);
    user-select: none;
}
body.chaoqin .cq2-watermark small {
    display: block;
    margin-top: 14px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .5em;
    text-align: center;
    color: rgba(255, 255, 255, .28);
    -webkit-text-stroke: 0;
}
body.chaoqin .cq2-seal {
    position: absolute;
    right: 64px;
    top: 22%;
    width: 108px;
    height: 108px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(230, 0, 18, .55);
    border-radius: 50%;
    transform: rotate(-8deg);
    font-size: 12px;
    line-height: 1.55;
    letter-spacing: .12em;
    text-align: center;
    color: #ff6b72;
}
/* 右侧装饰（2026-10-31 晚）：静态同心圆 → 慢转虚线环 + 一道红光沿环扫过 + 呼吸光晕。
   只动装饰层，文案与排版不变；prefers-reduced-motion 下全部停住。 */
body.chaoqin .cq2-watermark,
body.chaoqin .cq2-seal { z-index: 2; }
body.chaoqin .cq2-seal { animation: cq2-breathe 6s ease-in-out infinite; }
body.chaoqin .cq2-visual::before {
    content: "";
    position: absolute;
    right: -90px;
    top: calc(50% - 260px);
    width: 520px;
    height: 520px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(var(--yz-tint,230,0,18),.16) 0%, rgba(27,63,160,.14) 48%, transparent 70%);
    animation: cq2-glow 7s ease-in-out infinite;
    pointer-events: none;
}
body.chaoqin .cq2-visual::after {
    content: "";
    position: absolute;
    right: -40px;
    top: calc(50% - 210px);
    width: 420px;
    height: 420px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 50% 0,
            #fff 0 3px, rgba(255,90,98,1) 4px,
            rgba(var(--yz-tint,230,0,18),.5) 10px, rgba(var(--yz-tint,230,0,18),0) 20px);
    animation: cq2-spin 9s linear infinite;
    pointer-events: none;
}
@keyframes cq2-spin { to { transform: rotate(360deg); } }
@keyframes cq2-glow {
    0%, 100% { opacity: .45; transform: scale(.96); }
    50% { opacity: 1; transform: scale(1.04); }
}
@keyframes cq2-breathe {
    0%, 100% { box-shadow: 0 0 0 0 rgba(var(--yz-tint,230,0,18),0); }
    50% { box-shadow: 0 0 0 10px rgba(var(--yz-tint,230,0,18),.10); }
}
@media (prefers-reduced-motion: reduce) {
    body.chaoqin .cq2-court,
    body.chaoqin .cq2-seal,
    body.chaoqin .cq2-visual::before,
    body.chaoqin .cq2-visual::after,
    body.chaoqin .cq2-slider.is-ready .cq2-frame.is-active > *,
    body.chaoqin section#value::before,
    body.chaoqin section#value::after,
    body.chaoqin section#cta::before,
    body.chaoqin section#cta::after,
    body.chaoqin section#cta .hero-card::after { animation: none; }
    body.chaoqin section#value .value-tag-item:hover::after { animation: none; }
}
body.chaoqin .cq2-stats-band {
    background: #fff;
    border-bottom: 1px solid #e9ecf2;
}
body.chaoqin .cq2-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: center;
    min-height: 104px;
}
body.chaoqin .cq2-stat {
    padding: 22px 30px;
    border-left: 1px solid #e9ecf2;
}
body.chaoqin .cq2-stat:first-child { padding-left: 0; border-left: 0; }
body.chaoqin .cq2-stat strong {
    display: block;
    font-size: clamp(26px, 2.4vw, 32px);
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: .01em;
    color: var(--cq-navy);
}
body.chaoqin .cq2-stat strong span {
    margin-left: 3px;
    font-size: 15px;
    font-weight: 700;
    color: var(--cq-red);
}
body.chaoqin .cq2-stat em {
    display: block;
    margin-top: 7px;
    font-style: normal;
    font-size: 12px;
    letter-spacing: .1em;
    color: #66738c; /* #7b87a1 在白底仅 3.61:1，未过 WCAG AA；此值 4.78:1 */
}
@media (max-width: 900px) {
    body.chaoqin .cq2-hero { height: auto; min-height: 0; padding: 64px 0 56px; }
    body.chaoqin .cq2-inner { display: block; }
    body.chaoqin .cq2-copy { max-width: none; }
    body.chaoqin .cq2-copy h1,
    body.chaoqin .cq2-copy .cq2-h1 { max-width: 7.2em; font-size: clamp(38px, 9vw, 48px); }
    body.chaoqin .cq2-promise { font-size: 17px; }
    body.chaoqin .cq2-desc { margin-bottom: 24px; }
    body.chaoqin .cq2-visual { display: none; }
    body.chaoqin .cq2-stats { grid-template-columns: 1fr 1fr; min-height: 0; }
    body.chaoqin .cq2-stat { padding: 18px 18px; border-left: 0; border-top: 1px solid #e9ecf2; }
    body.chaoqin .cq2-stat:nth-child(-n+2) { border-top: 0; }
    body.chaoqin .cq2-stat:nth-child(odd) { padding-left: 0; }
}
@media (max-width: 390px) {
    body.chaoqin .cq2-hero { padding: 52px 0 48px; }
    body.chaoqin .cq2-copy h1,
    body.chaoqin .cq2-copy .cq2-h1 { font-size: 38px; }
    body.chaoqin .cq2-actions .cq-btn { height: 44px; padding: 0 18px; font-size: 14px; }
}

/* ---------- 企业主体（#zs-company）：通用"左文右卡"模板 → 品牌档案版式 ----------
   共用模板只给两栏 + 浅色事实卡，很多站点都长这样；这里只改超勤皮肤的观感：
   左栏红色竖脊 + 首字下沉的正文，右栏深蓝数据铭牌（编号行 + 细分隔线 + 同心环），
   三个入口改成带箭头的档案索引。DOM、字段与其他租户一律不动。 */
body.chaoqin section#zs-company .section-heading { margin-bottom: 36px; }
body.chaoqin section#zs-company .zs-company {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
    gap: 64px;
    align-items: start;
    padding-top: 36px;
    border-top: 1px solid #e8edf6;
}
body.chaoqin section#zs-company .zs-company-rich {
    grid-column: 1;
    grid-row: 1;
    padding-left: 26px;
    border-left: 3px solid var(--cq-red);
    font-size: 15.5px;
    line-height: 2.05;
    color: #3c4865;
}
body.chaoqin section#zs-company .zs-company-rich p { margin: 0 0 16px; }
body.chaoqin section#zs-company .zs-company-rich p:first-child::first-letter {
    float: left;
    margin: 7px 10px 0 0;
    font-size: 46px;
    font-weight: 800;
    line-height: 1;
    color: var(--cq-red);
}
body.chaoqin section#zs-company .zs-company-facts {
    grid-column: 2;
    grid-row: 1 / span 2;
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    margin: 0;
    padding: 24px 26px 8px;
    overflow: hidden;
    border: 1px solid rgba(120, 170, 255, .22);
    border-top: 3px solid var(--cq-red);
    border-radius: 14px;
    background: linear-gradient(160deg, #132a66 0%, #0d1f4f 52%, #081230 100%);
    box-shadow: 0 24px 48px rgba(8, 18, 48, .16);
    counter-reset: cq-fact;
}
body.chaoqin section#zs-company .zs-company-facts::before {
    content: "";
    position: absolute;
    right: -130px;
    top: -130px;
    width: 340px;
    height: 340px;
    border-radius: 50%;
    background: repeating-radial-gradient(circle, transparent 0 40px, rgba(120, 170, 255, .14) 40px 41px);
    -webkit-mask-image: radial-gradient(circle, #000 0 58%, transparent 74%);
    mask-image: radial-gradient(circle, #000 0 58%, transparent 74%);
    z-index: 0;
    pointer-events: none;
}
body.chaoqin section#zs-company .zs-company-fact {
    position: relative;
    z-index: 1;
    counter-increment: cq-fact;
    display: flex;
    align-items: baseline;
    gap: 14px;
    padding: 13px 0;
    background: transparent;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
    border-radius: 0;
}
body.chaoqin section#zs-company .zs-company-fact:last-child { border-bottom: 0; }
body.chaoqin section#zs-company .zs-company-fact::before {
    content: counter(cq-fact, decimal-leading-zero);
    flex: none;
    width: 22px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
    color: rgba(255, 120, 128, .9);
    font-variant-numeric: tabular-nums;
}
body.chaoqin section#zs-company .zs-company-fact dt {
    flex: none;
    min-width: 78px;
    font-size: 12px;
    letter-spacing: .1em;
    color: #9db2dc;
}
body.chaoqin section#zs-company .zs-company-fact dd {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.6;
    color: #fff;
    word-break: normal;
    overflow-wrap: break-word;
}
body.chaoqin section#zs-company .zs-company-links {
    grid-column: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 26px 0 0;
    padding-top: 26px;
    border-top: 1px dashed #dfe7f5;
}
body.chaoqin section#zs-company .ghost-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: auto;
    padding: 10px 18px;
    border: 1px solid #d8e2f2;
    border-radius: 6px;
    background: #f7f9fd;
    color: var(--cq-navy);
    font-size: 14px;
    font-weight: 600;
    transition: background .22s ease, border-color .22s ease, color .22s ease, transform .22s ease;
}
body.chaoqin section#zs-company .ghost-btn::after {
    content: "→";
    font-size: 15px;
    line-height: 1;
    transition: transform .22s ease;
}
body.chaoqin section#zs-company .ghost-btn:hover {
    background: var(--cq-navy);
    border-color: var(--cq-navy);
    color: #fff;
    transform: translateY(-2px);
}
body.chaoqin section#zs-company .ghost-btn:hover::after { transform: translateX(4px); }
@media (max-width: 1100px) {
    body.chaoqin section#zs-company .zs-company { gap: 40px; }
    body.chaoqin section#zs-company .zs-company-rich { font-size: 15px; }
    body.chaoqin section#zs-company .zs-company-rich p:first-child::first-letter { font-size: 40px; }
    body.chaoqin section#zs-company .zs-company-fact { gap: 10px; }
    body.chaoqin section#zs-company .zs-company-fact dt { min-width: 64px; letter-spacing: .06em; }
}
@media (max-width: 960px) {
    body.chaoqin section#zs-company .zs-company {
        grid-template-columns: 1fr;
        gap: 28px;
        padding-top: 28px;
    }
    body.chaoqin section#zs-company .zs-company-facts { grid-column: auto; grid-row: auto; }
    body.chaoqin section#zs-company .zs-company-rich {
        grid-column: auto;
        grid-row: auto;
        padding-left: 18px;
        font-size: 15px;
        line-height: 1.95;
    }
    body.chaoqin section#zs-company .zs-company-rich p:first-child::first-letter { font-size: 38px; }
    body.chaoqin section#zs-company .zs-company-links { grid-column: auto; margin-top: 0; }
}
@media (max-width: 480px) {
    body.chaoqin section#zs-company .zs-company-facts { padding: 20px 18px 6px; }
    body.chaoqin section#zs-company .zs-company-fact { flex-wrap: wrap; gap: 4px 12px; }
    body.chaoqin section#zs-company .zs-company-fact dt { min-width: 0; }
}

/* ============================================================
   第十一轮（2026-11-01）：整站内壳统一
   用户口径两条：①"所有页面头部跟底部都应该共用一个组件，以首页为准"；
   ②"内容需要一样宽"。头尾组件的改造在 _Layout + _GeoFoot.cshtml + geoshell.css，
   本节只补两件事：把皮肤里那份 900 窄栏放开、把从云庄主皮肤抄来的水印换成超勤自己。
   写在这里而不是 chaoqin.css：那份是后台【皮肤管理】重新生成配色时的基准表，
   自定义规则写进去会在下一次生成时被覆盖（本文件只被 10012 加载，其余租户零影响）。
   ============================================================ */

/* --- 1) 正文宽度：内页阅读栏不再单独收成 900 ---
   chaoqin.css 12.1「宽度三档收口」把 .xz-rich/.xz-about-rich/.xz-article-rich/.xz-about 钉在 900，
   而同页上方的导语卡 .xz-intro 是 max-width:none（实测 1160）——
   /AboutUs 上同一篇文章上宽下窄，右边缘差 260px，就是用户红框里那句"内容需要一样宽"。
   详情页那批（13.13）早就按"吃满 1200 轨、左对齐"定了口径，这里把剩下的几个补齐到同一口径。
   行宽实测 1160px ≈ 每行 60 字（中文正文），和首页正文、详情页一致；
   留言表单 .xz-form(680) 不在这批里，它是"字段宽度"不是"阅读栏"，仍按皮肤原口径居中。 */
body.chaoqin .xz-rich,
body.chaoqin .xz-about,
body.chaoqin .xz-about-rich,
body.chaoqin .xz-article-rich { max-width: none; }

/* --- 2) 导语卡水印：品牌名换成超勤 ---
   chaoqin.css 13.12 的 ::after 是抄云庄主皮肤时一起抄进来的，字面量 "云庄主GEO" 直接印在
   超勤内页的导语面板上（客户截图红框指的就是它）——白标站绝不能出现别家品牌名。
   选择器照抄皮肤那条再加 body.chaoqin 提权，只换文字，浓淡/位置/让位（--yz-intro-keep）不动。
   "超勤体育"4 字 @30px 实测约 123px，比原来 160px 还窄，右侧 200px 让位依旧不压字。 */
body.chaoqin main > .xz-section > .xz-wrap > .xz-intro::after { content: "超勤体育"; }

/* ============================================================
 * 2026-11-01 第十轮·批次一：细节体检出的 6 项，全部只动样式（刷新即生效，不需要重启）
 * 问题清单与实测数字见 .qoder/sessions/2026-11-01-chaoqin-detail-checklist.md
 * ============================================================ */

/* --- 3) 强调色小字统一加深一级（C6：4.18–4.39:1 → ≥4.65:1） ---
   原来这里写死 #d8000f（超勤红加深一档），因为纯红 #E60012 在白底 4.80 过关、
   但压在自家淡粉底 rgba(230,0,18,.08) 上只剩 4.18–4.39，正文级小字按 WCAG AA 要 4.5。
   2026-11-04 改成链：--cq-red-ink = 皮肤槽位 --xz-red-deep（蓝 #1B3FB5 / 红 #B3121F），
   两套主题各自的"深一档"由 chaoqin.css 声明，这里不再抄一遍颜色；
   灰蓝副文案 --cq-muted-ink 是中性色、不随主题换，保留字面量（#f7f9fc 上 4.30 → 5.17）。 */
body.chaoqin { --cq-red-ink: var(--xz-red-deep, #d8000f); --cq-muted-ink: #5b6a86; }

/* 上面那条页面层覆盖过去会把 ghost 按钮钉死成字面量深红，于是后台切【科技蓝/品牌红】时
   详情页那颗"返回"按钮纹丝不动——当时临时用 :not(.xz-back) 把公共件排除掉绕过。
   现在 --cq-red-ink 本身已链到 --xz-red-deep，与 .xz-back（site-widgets.css 里同一个槽位）取值一致，
   排除条件失去意义，删掉它：ghost 按钮与返回按钮同一支色、一起跟主题。 */
body.chaoqin .service-card .tag-badge,
body.chaoqin .pillar-tag,
body.chaoqin .group-tag,
body.chaoqin .step-badge,
body.chaoqin .xz-btn-ghost,
body.chaoqin main .xz-card .xz-card-btn { color: var(--cq-red-ink); }

body.chaoqin .content-section .subtitle,
body.chaoqin .content-section .section-subtext,
body.chaoqin .customer-value-section .sub-title { color: var(--cq-muted-ink); }

/* 皮肤那条 ghost hover 只补了 border-color + background、color 空着（chaoqin.css 12 节有备注），
   上面这条提权后会把 hover 的文字色一起带走，所以这里显式写全，不给层叠留缺口。 */
body.chaoqin .xz-btn-ghost:hover,
body.chaoqin main .xz-card .xz-card-btn:hover { color: var(--cq-red-ink); }

/* 红底按钮上那颗 ✦ 原来用半透明白，实测 3.66:1；同排文字是纯白，图标对齐到纯白 */
body.chaoqin .sparkle-icon { color: #fff; }

/* --- 4) 首页资讯日期从"看不见"提到合格（C2，P1：2.47:1 → 5.45:1，12px → 13px） ---
   geosite.css:90 给 #94a3b8，本文件 596 行又覆盖成更浅的 #9aa5c0；
   日期同时是 AI 判"内容新鲜度"的抓手，不能是一层灰雾。 */
body.chaoqin .gs-news-date { color: var(--cq-muted-ink); font-size: 13px; }

/* --- 5) 全站只有两处 11px，抬到 12px（C7 处置：12px 眉标是已验收的设计口径，按你点的保留） ---
   STEP 01/02/03 是流程步骤正文，水印 "CQ2001" 的 2001 是装饰，都只抬 1px，不放大版式。 */
body.chaoqin .step-badge { font-size: 12px; }
body.chaoqin .cq2-watermark small { font-size: 12px; }

/* --- 6) 导语卡里的富文本表格在手机上被裁掉一整列（C1，P1 → 2026-11-04 F-C 改为表自身横滚） ---
   /contactus 门店表 3 列 9 行，实测 tableW=560、容器 clientWidth=356、页面总宽仍 390。
   根因曾经是皮肤 `main > .xz-section > .xz-wrap > .xz-intro{overflow:hidden}`（特异度 0-3-2）
   压过了移动端 `.xz-intro{overflow-x:auto}`（0-1-0），于是这里用同一条选择器提权放开横滚。
   但"整张导语卡当滚动区"会把表格前后的正文一起拖走，所以现在改成 chaoqin.css §18.5 的写法：
   **表格自己滚、卡片不滚**。这一处只负责把上面的提权规则反向收掉（特异度比那边高，
   不收掉就会把 min-width:560 重新压回 table 上，又把 table 撑破父级），tbody 的 560 下限由 §18.5 统一给。 */
@media (max-width: 767px) {
    body.chaoqin main > .xz-section > .xz-wrap > .xz-intro { overflow-x: visible; }
    body.chaoqin main > .xz-section > .xz-wrap > .xz-intro table { min-width: 0; }

    /* --- 7) 筛选条加"右边还有"的线索（C9） ---
       390 档实测 .xz-filter-row 的 overflow-x:auto 本来就生效（不破版），但 18 个 chip 从第 5 个起在屏外，
       被切的半个芯片不像"还能滑"的提示，右缘渐隐补上。mask 不改命中区，chip 照旧可点。 */
    body.chaoqin .xz-filter-row {
        -webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 26px), rgba(0,0,0,.38) 100%);
        mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 26px), rgba(0,0,0,.38) 100%);
    }

    /* --- 8) 面包屑链接 16px 高 → 40px（C5 的一部分，页脚那批写在 geoshell.css） ---
       只加纵向内衬，左右不动，文字左边缘仍和正文同一条线。 */
    body.chaoqin .xz-crumbs a { display: inline-flex; align-items: center; padding: 12px 0; }
}

/* --- 6b) /contactus 那张门店表要给出"还能滑"的线索（2026-11-04 P2-1，C1 的收尾） ---
   滚动是修好了，但屏幕上一点暗示都没有：390 档看到的是"表格右边正好被卡片切齐"，
   手指不划就没人知道右边还有第 3 列（地址）。
   同一句话 chaoqin.css §19 给 .cq2-table-wrap 写过，导语卡这一处不能照抄：
   它的 ::after 被 §2 的品牌水印占着（一个元素只有一个 ::after），所以这里照抄水印那条选择器
   再加 :has(table) 提一级，把"带表的这一张卡"的水印换成提示，其余不带表的导语卡一字不动。
   代价 = 收益：水印本来就是 4% 透明度的装饰（13.12 原注释），带表的卡手机上不再显示它。

   断点为什么是 640 而不是 767（实测 /contactus，导语卡 clientWidth = 视口宽 - 49，表 min-width 560 + 左右内衬 36）：
     333 → client 299 / scroll 596 溢出；390 → 356/596 溢出；560 → 511/596 溢出；640 → 591/596 溢出
     690 → client 641，表已铺满不再横滚；767 → 718；768 起整块不滚
   即真实溢出到 ~645 就没了，写 767 会在"其实不用滑"的平板上喊一句"左右滑动"，比不喊更糟。
   :has() 不支持的旧内核退化成"仍然只有水印 + 照旧可横滚"，和改之前一模一样。 */
@media (max-width: 640px) {
    body.chaoqin main > .xz-section > .xz-wrap > .xz-intro:has(table)::after {
        content: "← 左右滑动查看完整表格 →";
        position: sticky; left: 0; right: auto; bottom: auto; transform: none;
        display: block; margin-top: 10px; text-align: center; white-space: normal;
        -webkit-user-select: none; user-select: none;
        font-size: 12px; font-weight: 400; line-height: 1.6; letter-spacing: 0;
        color: var(--cq-muted-ink); -webkit-text-fill-color: var(--cq-muted-ink);
        background: none; -webkit-background-clip: border-box; background-clip: border-box;
    }
}

/* =====================================================================
 * 22) 移动端逐页审计修复（2026-11-05，Playwright 真机视口实测驱动）
 *     审计范围：12 页 × iPhone SE(375) / iPhone 12(390) / Android(360)。
 *     本节只写 max-width:900px，桌面端渲染分毫不动。
 * ===================================================================== */

/* --- 22.1 service-card 内边距：40px 是桌面两栏的度量 ---
   358px 宽的卡片左右各吃 40px，正文只剩 278px，长中文标题贴边被裁。
   实测 scrollWidth 370 > clientWidth 356（5 张卡片全部命中）。 */
@media (max-width: 900px) {
    body.chaoqin .service-card { padding: 24px 20px; }
    /* 长英文型号（CQ-1000A、91430100MA4P83R27G）不设断点会顶破卡片 */
    body.chaoqin .service-card,
    body.chaoqin .service-card * { overflow-wrap: anywhere; }
}

/* --- 22.2 联系我们门店表：移动端改成卡片式（消除横滑） ---
   原状态（实测 390 档）：table 显示 block、tbody min-width:560px 撑到 798px，
   表格自身可横滚（scrollW 798 > clientW 320）—— 横滑机制本身是好的，但"要横滑才能看全"就是问题：
   三列（门店 263px / 营业时间 82px / 说明 214px）在 356px 可视区里必然挤，
   时间段被折成两行，第三列整个在视口外；chaoqin.css 6b 已加"左右滑动查看完整表格"提示，
   等于官方承认了这个缺陷。
   门店信息天然是"一条一条"的，所以移动端直接放弃表格语法，改成竖排卡片：
   每行 = 一张卡，列名由单元格 ::before 承担。桌面端不受影响（本节在 767 断点内）。 */
@media (max-width: 767px) {
    body.chaoqin .xz-intro table,
    body.chaoqin .xz-intro table tbody,
    body.chaoqin .xz-intro table tr,
    body.chaoqin .xz-intro table th,
    body.chaoqin .xz-intro table td {
        display: block; width: auto; min-width: 0;
    }
    /* 卡片模式下没有横向内容，取消表格自身的横滚 */
    body.chaoqin .xz-intro table { overflow: visible; }
    /* 原表头行在卡片模式下无意义（列名改由 ::before 承担） */
    body.chaoqin .xz-intro table tr:first-child { display: none; }
    /* 一条记录 = 一张卡 */
    body.chaoqin .xz-intro table tr {
        margin: 0 0 12px; padding: 14px 16px;
        border: 1px solid #e9ecf2; border-left: 3px solid var(--xz-red, #e60012);
        border-radius: 10px; background: #fff;
    }
    body.chaoqin .xz-intro table tr:last-child { margin-bottom: 0; }
    body.chaoqin .xz-intro table td {
        padding: 0; border: 0; white-space: normal;
        font-size: 14px; line-height: 1.7; color: #3c4865;
    }
    /* 第 1 列 = 门店名，作为卡片标题 */
    body.chaoqin .xz-intro table td:nth-child(1) {
        font-size: 15px; font-weight: 700; color: #0d1f4f; margin-bottom: 6px;
    }
    /* 第 2 列 = 营业时间，带行内列名，单行不折 */
    body.chaoqin .xz-intro table td:nth-child(2) { white-space: nowrap; margin-bottom: 4px; }
    body.chaoqin .xz-intro table td:nth-child(2)::before {
        content: "营业时间 ";
        font-weight: 600; color: #8a94ab;
    }
    /* 第 3 列 = 说明，淡一档拉开层次 */
    body.chaoqin .xz-intro table td:nth-child(3) { color: #6b7590; font-size: 13.5px; }
    /* 卡片模式下"左右滑动"提示已无意义，去掉 */
    body.chaoqin main > .xz-section > .xz-wrap > .xz-intro:has(table)::after { content: none; }
}

/* --- 22.3 关于我们：企业主体表格在移动端宽度归零 ---
   实测 .cq2-chapter-visual > table 宽 0、min-width 0，六列表头
   （法律主体/统一社会信用代码/法定代表人/成立日期/注册资本/定位）全部不可见。
   该表是桌面档案版式的产物：390px 塞不下 6 列工商信息，硬压只会每列 50px。
   改为该断点下丢弃表格、由同一份数据的条目式卡片承担（模板已并行输出 .cq2-fact-list）。 */
@media (max-width: 900px) {
    body.chaoqin .cq2-chapter-visual table { display: none; }
}

/* --- 22.4 面包屑：末级标题过长时把整条撑成两行 ---
   实测新闻详情：面包屑容器高 105px（正常一行应为 45px），
   末级 <b> 宽 349px 折成 2 行，把"首页 › 企业资讯 ›"顶到第一行、标题掉到第二行，
   视觉上像是面包屑断在半截。办法：末级单行省略，保持面包屑恒为一行。 */
@media (max-width: 900px) {
    /* 关键：.xz-crumbs 默认是 display:block，子元素 <b> 是块级会独占一行（实测 y 从 321 跳到 367）。
       必须先把容器变成 flex，flex-wrap/省略号才有意义。 */
    body.chaoqin .xz-crumbs {
        display: flex; flex-wrap: nowrap; align-items: center;
        overflow: hidden;
    }
    body.chaoqin .xz-crumbs > a,
    body.chaoqin .xz-crumbs > span { flex: 0 0 auto; }
    /* 末级标题是唯一可伸缩项：单行 + 省略号，保住面包屑恒为一行 */
    body.chaoqin .xz-crumbs > b {
        flex: 0 1 auto; min-width: 0;
        overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
}

/* --- 22.5 触控热区补足 44px（只改可点区，不改视觉尺寸） ---
   实测：.xz-chip 36px 高、.cq-assure-tel 34px 高、页脚版权链 40px 高。
   .cq2-dot 已在 §F-F 用 ::after 撑到 45px，无需重复处理。 */
@media (max-width: 900px) {
    body.chaoqin .xz-chip {
        min-height: 44px; padding-top: 0; padding-bottom: 0;
        display: inline-flex; align-items: center;
    }
    body.chaoqin .cq-assure-tel,
    body.chaoqin .xz-contact-cta .xz-btn { min-height: 44px; }
    body.chaoqin footer a { min-height: 44px; display: inline-flex; align-items: center; }
    body.chaoqin .xzbtt { width: 44px; height: 44px; }
}

/* --- 22.6 抽屉菜单打开时锁不住背景滚动（移动端） ---
   mobile-menu.js 给 body 加了 overflow:hidden，但实测无效：
   html 的 overflow 仍是 visible，页面滚动发生在 html 上，
   body{overflow:hidden} 只是让 body 自身不可滚（它的 clientHeight 等于全页高，本来也没有滚动区）。
   实测：菜单开着时 window.scrollTo(0,900) 仍能滚到 900；给 html 加 overflow:hidden 后 scrollY 停在 0。
   只针对 body.xz-drawer-open：桌面端不触发，其他站点共用 Layout 但同样只在开抽屉时生效。 */
body.xz-drawer-open { overflow: hidden; }
html:has(body.xz-drawer-open) { overflow: hidden; }

/* --- 22.7 抽屉内关闭按钮（2026-11-05，配套 mobile-menu.js 注入的 .xz-nav-close） ---
   实测：抽屉展开 784px、内部 0 个 button，只能再点一次汉堡才关得上；
   菜单铺满全屏时"点外部关闭"也没有外部可点（elementFromPoint(200,820) 命中的仍是 xz-nav 本身）。
   定位方式为什么用 fixed 而不是 absolute：
     .xz-nav 自己是 position:absolute（靠 top/left/right 贴满视口），宽度由定位撑开；
     给它加 position:relative 会让宽度塌成内容宽（实测 390 → 93px），整块菜单错位。
     所以按钮改成 fixed 钉在视口右上角，与抽屉的开合状态用 body.xz-drawer-open 联动。 */
@media (max-width: 900px) {
    body.chaoqin.xz-drawer-open .xz-nav-close {
        position: fixed; top: 70px; right: 12px;
        display: inline-flex; align-items: center; justify-content: center;
        width: 44px; height: 44px; padding: 0;
        border: 1px solid rgba(255, 255, 255, .28); border-radius: 50%;
        background: rgba(255, 255, 255, .1); color: #fff;
        font-size: 24px; line-height: 1; cursor: pointer;
        -webkit-appearance: none; appearance: none;
        z-index: 1300;
    }
    body.chaoqin.xz-drawer-open .xz-nav-close:active { background: rgba(255, 255, 255, .22); }
    /* 抽屉收起时不占位 */
    body.chaoqin:not(.xz-drawer-open) .xz-nav-close { display: none; }
}
/* 桌面端必须彻底隐藏：上面几条都在 max-width:900px 内，但按钮是 JS 注入的 <button>，
   默认 display 会被 .xz-nav 的样式带出来（实测 1440 档 visible:true）。
   >900px 一律不显示，保证桌面视觉分毫不变。 */
@media (min-width: 901px) {
    body .xz-nav-close { display: none !important; }
}


/* =====================================================================
 * 23) 门店网络区块左缩进（2026-11-05，用户口径：15px 左右）
 *     作用域：只在超勤生效。本文件仅当 Tenant.Slug=="chaoqin" 时加载
 *     （Pages/Shared/_Layout.cshtml 242-246），不写 body.chaoqin 也不会外溢；
 *     这里仍显式加 body.chaoqin 前缀，是为与本节其他规则风格一致、并压过
 *     aboutus.css / chaoqin.css 共享层的同权重规则。
 *
 *     为什么要单独一条：共享层 .cq2-stores-hours 是"图标槽 14px + 间距 28px"
 *     （实测文字距左框 62px），那是所有租户共用的版式；超勤要更紧凑的 15px，
 *     属于本租户的视觉定制，不能改共享层（会串到智融/云庄主/喜座/润丰）。
 *
 *     布局：图标槽 20px（🕐 实宽约 14px，右侧留 6px 呼吸）+ 容器 padding-left 15px
 *           → 图标左边缘 15px，文字左边缘 35px，正文与标题同基线。
 * ===================================================================== */
body.chaoqin .cq2-stores-hours {
    --cq-hours-icon: 20px;
    --cq-hours-gap: 0px;
    --cq-hours-indent: 20px;   /* 图标槽 20px 内含 6px 呼吸，不再另加 gap */
    padding: 14px 18px 14px 15px;
}
/* 顶部说明条：红框 4px + padding-left 11px = 15px */
body.chaoqin .cq2-stores-intro {
    padding-left: 11px;
}
/* 关键：共享层 aboutus.css/chaoqin.css 在 @media(max-width:768px) 里写了
   .cq2-stores-hours{--cq-hours-gap:14px}，会把 indent 从 calc(20+?) 变成 20+14=34 → 实测文字跑到 35px。
   这里必须**同时**把 gap 也钉死，否则手机上缩进比桌面还大。 */
@media (max-width: 768px) {
    body.chaoqin .cq2-stores-hours {
        --cq-hours-icon: 20px;
        --cq-hours-gap: 0px;
        --cq-hours-indent: 20px;
        padding-left: 15px;
    }
}


/* =====================================================================
 * 24) 无图产品占位带加「暂无图片」提示（2026-11-05 交付前检查修复）
 *     作用域：仅超勤（本文件只当 Tenant.Slug==chaoqin 时加载，见 _Layout 242-246）
 *
 *     问题：末页 13 个产品没有封面图，模板按契约输出 .xz-card-media--ph 占位带，
 *           CSS 是粉色渐变（--yz-card-media-ph-bg），但带子里**一个字都没有** ——
 *           客户翻到最后一页会以为是图挂了。
 *     做法：只加一个 ::after 文案，不改共享层契约（chaoqin.css 里 main .xz-card-media--ph
 *           是全站共用规则），也不改模板结构。aria-hidden 已在模板上，读屏不会重复读。
 * ===================================================================== */
body.chaoqin main .xz-card-media--ph {
    position: relative;
}
body.chaoqin main .xz-card-media--ph::after {
    content: "暂无图片";
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 13px; font-weight: 500; letter-spacing: .04em;
    color: #c9a3aa;                       /* 粉色系淡字，与占位带同族，不抢产品名 */
    background: none;
}
/* 卡片里的序号（::before）仍在，只是文案居中压在带上；序号有透明度，不会打架 */
