/* points-mall.html 页面样式
   2026-09-19 从页面内联 <style> 拆出，内容未做任何修改。
   公共样式见 style.css —— 本文件在 style.css 之后加载，用于页面覆盖。 */

        :root {
            --primary: #E11D48;
            --primary-dark: #B91C40;
            --primary-light: #FB7185;
            --secondary: #F59E0B;
            --secondary-dark: #D68910;
            --accent: #FBBF24;
            --accent-light: #FCD34D;
            --dark: #0F172A;
            --gray: #64748B;
            --white: #FFFFFF;
            --light: #FFF7ED;
            --shadow: 0 10px 30px rgba(0,0,0,.08);
            --transition: all .3s ease;
        }
        body { font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Microsoft YaHei', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; line-height: 1.6; color: var(--dark); background: var(--white); }
        .container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
        .section { padding: 60px 0; }
        .section-alt { background: var(--light); }

        /* ===== Banner ===== */
        .pm-banner {
            position: relative;
            min-height: 460px;
            background: linear-gradient(135deg, #FFF7ED 0%, #FFE4E6 60%, #FECACA 100%);
            color: var(--dark);
            overflow: hidden;
        }
        .pm-banner::before {
            content: '';
            position: absolute; inset: 0;
            background-image:
                radial-gradient(circle at 1px 1px, rgba(225,29,72,.08) 1px, transparent 0);
            background-size: 28px 28px;
            pointer-events: none;
        }
        .pm-banner::after {
            content: '';
            position: absolute;
            right: -120px; top: 50%; transform: translateY(-50%);
            width: 520px; height: 520px;
            border-radius: 50%;
            background: radial-gradient(circle, rgba(245,158,11,.18) 0%, rgba(245,158,11,0) 70%);
            pointer-events: none;
        }
        .pm-banner .container { position: relative; padding: 90px 0 80px 60px; z-index: 1; }
        .pm-banner h1 { font-size: clamp(1.9rem, 4.5vw, 2.8rem); font-weight: 900; margin-bottom: 18px; line-height: 1.3; max-width: 720px; }
        .pm-banner h1 span {
            background: linear-gradient(135deg, var(--primary), var(--secondary));
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
        }
        .pm-banner .labs { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; }
        .pm-banner .labs b {
            font-size: .9rem; font-weight: 600; color: var(--primary);
            background: rgba(225,29,72,.08);
            padding: 6px 14px; border-radius: 100px;
            border: 1px solid rgba(225,29,72,.15);
        }
        .pm-banner .banner-sub {
            font-size: 1.05rem; color: var(--gray);
            line-height: 1.9; max-width: 640px; margin-bottom: 28px;
        }
        .pm-banner .banner-sub strong { color: var(--primary); font-weight: 700; }
        .banner-actions { display: flex; gap: 14px; flex-wrap: wrap; }
        .btn { display: inline-flex; align-items: center; gap: 8px; padding: 14px 34px; border-radius: 50px; font-size: 1rem; font-weight: 600; text-decoration: none; transition: all .3s; }
        .btn-primary { background: linear-gradient(135deg, var(--primary), var(--primary-dark)); color: #fff; box-shadow: 0 8px 25px rgba(225,29,72,.35); }
        .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(225,29,72,.45); }
        .btn-secondary { background: linear-gradient(135deg, var(--secondary), #F9A826); color: #fff; box-shadow: 0 8px 25px rgba(245,158,11,.35); }
        .btn-outline { border: 2px solid var(--primary); color: var(--primary); background: rgba(255,255,255,.7); }
        .btn-outline:hover { background: var(--primary); color: #fff; }

        /* ===== Section header ===== */
        .section-header { text-align: center; max-width: 1100px; margin: 0 auto 36px; }
        .section-header h2 { font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 900; margin-bottom: 14px; }
        .section-header h2 span { color: var(--primary); }
        .section-header p { font-size: 1rem; color: var(--gray); line-height: 1.8; white-space: nowrap; max-width: 900px; margin-left: auto; margin-right: auto; }
        @media (max-width: 768px) {
            .section-header p { white-space: normal; max-width: 560px; }
        }

        /* ===== 痛点 section ===== */
        .pain-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
        .pain-card {
            background: #fff; border: 1px solid #FECACA;
            border-radius: 14px; padding: 26px 22px;
            transition: all .3s;
        }
        .pain-card:hover { box-shadow: 0 12px 28px rgba(225,29,72,.12); transform: translateY(-4px); border-color: var(--primary); }
        .pain-card .icon {
            width: 48px; height: 48px; border-radius: 12px;
            background: rgba(225,29,72,.08);
            display: flex; align-items: center; justify-content: center;
            margin-bottom: 14px;
        }
        .pain-card .icon svg { width: 24px; height: 24px; color: var(--primary); }
        .pain-card h4 { font-size: 1.05rem; font-weight: 700; color: var(--dark); margin-bottom: 8px; }
        .pain-card p { font-size: .9rem; color: var(--gray); line-height: 1.7; }

        /* ===== 积分发放简单性（3步大屏） ===== */
        .simple-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; position: relative; }
        .simple-steps::before {
            content: '';
            position: absolute;
            top: 60px; left: 12%; right: 12%;
            height: 2px;
            background: repeating-linear-gradient(90deg, var(--secondary) 0, var(--secondary) 8px, transparent 8px, transparent 16px);
            z-index: 0;
        }
        .simple-step {
            background: #fff;
            border-radius: 18px;
            padding: 36px 26px;
            text-align: center;
            box-shadow: var(--shadow);
            position: relative; z-index: 1;
            transition: all .3s;
        }
        .simple-step:hover { transform: translateY(-6px); box-shadow: 0 16px 36px rgba(225,29,72,.15); }
        .simple-step .step-num {
            width: 56px; height: 56px;
            margin: 0 auto 18px;
            border-radius: 50%;
            background: linear-gradient(135deg, var(--primary), var(--secondary));
            color: #fff;
            display: flex; align-items: center; justify-content: center;
            font-size: 1.5rem; font-weight: 900;
            box-shadow: 0 8px 20px rgba(225,29,72,.3);
        }
        .simple-step h3 { font-size: 1.25rem; font-weight: 800; margin-bottom: 10px; color: var(--dark); }
        .simple-step .time {
            display: inline-block;
            background: rgba(245,158,11,.15);
            color: var(--secondary-dark);
            padding: 4px 12px; border-radius: 100px;
            font-size: .85rem; font-weight: 700;
            margin-bottom: 12px;
        }
        .simple-step p { font-size: .92rem; color: var(--gray); line-height: 1.75; }

        /* ===== 双货源对比表 ===== */
        .source-compare {
            background: #fff;
            border-radius: 18px;
            overflow: hidden;
            box-shadow: 0 16px 40px rgba(225,29,72,.08);
            border: 1px solid #FEE2E2;
        }
        .source-compare-header {
            background: linear-gradient(135deg, var(--primary), var(--primary-dark));
            color: #fff;
            padding: 18px 24px;
            display: grid;
            grid-template-columns: 1.2fr 2fr 2fr;
            gap: 16px;
            font-weight: 700;
        }
        .source-compare-row {
            padding: 16px 24px;
            display: grid;
            grid-template-columns: 1.2fr 2fr 2fr;
            gap: 16px;
            border-bottom: 1px solid #FEE2E2;
            align-items: center;
        }
        .source-compare-row:nth-child(even) { background: #FFF7ED; }
        .source-compare-row:last-child { border-bottom: none; }
        .source-compare-row .label {
            font-weight: 700;
            color: var(--dark);
            font-size: .95rem;
        }
        .source-compare-row .col {
            font-size: .9rem; color: var(--gray);
            line-height: 1.7;
        }
        .source-compare-row .col b {
            display: block;
            color: var(--primary);
            font-size: .82rem; font-weight: 700;
            margin-bottom: 4px;
        }

        /* ===== 货源大牌标识 ===== */
        .source-brands { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 36px; }
        .source-brand-card {
            background: #fff;
            border-radius: 16px;
            padding: 28px;
            border: 2px solid #FEE2E2;
            transition: all .3s;
        }
        .source-brand-card:hover { border-color: var(--primary); transform: translateY(-4px); }
        .source-brand-card .brand-head {
            display: flex; align-items: center; gap: 14px;
            margin-bottom: 18px;
        }
        .source-brand-card .brand-logo {
            width: 60px; height: 60px;
            border-radius: 12px;
            display: flex; align-items: center; justify-content: center;
            font-size: 1.5rem; font-weight: 900;
            color: #fff;
        }
        .source-brand-card.jd .brand-logo { background: linear-gradient(135deg, #E1251B, #FF6B6B); }
        .source-brand-card.yyt .brand-logo { background: linear-gradient(135deg, #1E40AF, #3B82F6); }
        .source-brand-card .brand-name { font-size: 1.2rem; font-weight: 800; color: var(--dark); }
        .source-brand-card .brand-sub { font-size: .85rem; color: var(--gray); margin-top: 2px; }
        .source-brand-card ul { list-style: none; }
        .source-brand-card ul li {
            padding: 6px 0 6px 22px;
            font-size: .92rem; color: var(--gray);
            position: relative;
        }
        .source-brand-card ul li::before {
            content: '✓';
            position: absolute; left: 0; top: 6px;
            color: var(--primary);
            font-weight: 900;
        }
        .source-brand-card .best-for {
            margin-top: 16px;
            padding: 12px 16px;
            background: var(--light);
            border-radius: 10px;
            font-size: .88rem;
            color: var(--primary-dark);
            border-left: 3px solid var(--primary);
        }
        .source-brand-card .best-for b { color: var(--primary); }

        /* ===== 核心功能 ===== */
        .feature-row { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
        .feature-row.reverse { direction: rtl; }
        .feature-row.reverse .feature-text { direction: ltr; }
        .feature-text h3 { font-size: 1.4rem; font-weight: 800; color: var(--dark); margin-bottom: 10px; display: flex; align-items: center; gap: 10px; }
        .feature-text h3 .ficon { width: 40px; height: 40px; border-radius: 10px; background: rgba(225,29,72,.1); color: var(--primary); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
        .feature-text h3 .ficon svg { width: 22px; height: 22px; }
        .feature-text .feat-sub { font-size: 1rem; color: var(--secondary-dark); font-weight: 700; margin-bottom: 16px; }
        .feature-text ul { list-style: none; }
        .feature-text ul li { padding: 7px 0 7px 26px; font-size: .95rem; color: var(--gray); line-height: 1.75; position: relative; }
        .feature-text ul li::before {
            content: ''; position: absolute; left: 0; top: 14px;
            width: 16px; height: 16px;
            background: var(--primary); border-radius: 50%;
        }
        .feature-text ul li::after {
            content: '✓'; position: absolute; left: 4px; top: 7px;
            color: #fff; font-size: .7rem; font-weight: 900;
        }

        .feature-visual {
            background: linear-gradient(135deg, #FFF7ED 0%, #FFE4E6 100%);
            border-radius: 18px;
            padding: 32px;
            min-height: 260px;
            display: flex; align-items: center; justify-content: center;
            position: relative;
            overflow: hidden;
        }
        .feature-visual::before {
            content: '';
            position: absolute; inset: 0;
            background-image: radial-gradient(circle at 1px 1px, rgba(225,29,72,.06) 1px, transparent 0);
            background-size: 20px 20px;
        }

        /* ===== 场景卡 ===== */
        .scene-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
        .scene-card {
            background: #fff;
            border-radius: 14px;
            padding: 26px 22px;
            text-align: center;
            border: 1px solid #FEE2E2;
            transition: all .3s;
        }
        .scene-card:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(225,29,72,.12); }
        .scene-card .scene-icon {
            width: 56px; height: 56px;
            margin: 0 auto 14px;
            border-radius: 14px;
            display: flex; align-items: center; justify-content: center;
            font-size: 1.6rem;
            background: linear-gradient(135deg, rgba(225,29,72,.1), rgba(245,158,11,.1));
        }
        .scene-card h4 { font-size: 1.05rem; font-weight: 800; color: var(--dark); margin-bottom: 8px; }
        .scene-card p { font-size: .85rem; color: var(--gray); line-height: 1.65; }

        /* ===== 案例 ===== */
        .case-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
        .case-card { background: #fff; border: 1px solid #E8ECF1; border-radius: 16px; overflow: hidden; transition: all .3s; }
        .case-card:hover { box-shadow: var(--shadow); transform: translateY(-4px); }
        .case-card img { width: 100%; height: 200px; object-fit: cover; }
        .case-body { padding: 22px; }
        .case-body h4 { font-size: 1.05rem; font-weight: 700; color: var(--dark); margin-bottom: 10px; }
        .case-body p { font-size: .88rem; color: var(--gray); line-height: 1.75; margin-bottom: 14px; }
        .case-btn { display: inline-block; padding: 7px 20px; background: rgba(225,29,72,.08); color: var(--primary); border-radius: 100px; font-size: .85rem; font-weight: 600; text-decoration: none; transition: all .25s; }
        .case-btn:hover { background: var(--primary); color: #fff; }
        .more-cases { text-align: center; margin-top: 32px; }

        /* ===== CTA ===== */
        .cta-section { background: linear-gradient(135deg, #0F172A 0%, #4C1D24 50%, var(--primary) 100%); color: #fff; text-align: center; padding: 70px 0; }
        .cta-section h2 { font-size: clamp(1.7rem, 3.5vw, 2.4rem); font-weight: 900; margin-bottom: 18px; }
        .cta-section p { color: rgba(255,255,255,.85); margin-bottom: 30px; font-size: 1rem; }
        .cta-section .banner-actions { justify-content: center; }

        /* ===== 响应式 ===== */
        @media (max-width: 992px) {
            .pain-grid, .scene-grid { grid-template-columns: repeat(2, 1fr); }
            .simple-steps { grid-template-columns: 1fr; }
            .simple-steps::before { display: none; }
            .source-compare-header, .source-compare-row { grid-template-columns: 1fr; gap: 6px; }
            .source-compare-header .col-h, .source-compare-row .col { padding-top: 6px; }
            .source-compare-header { display: none; }
            .source-compare-row .label { background: var(--primary); color: #fff; padding: 8px 12px; border-radius: 6px; }
            .source-compare-row .col::before {
                content: attr(data-col); display: block;
                font-weight: 700; color: var(--primary);
                font-size: .8rem; margin-bottom: 4px;
            }
            .source-brands { grid-template-columns: 1fr; }
            .feature-row, .case-grid { grid-template-columns: 1fr; gap: 32px; }
            .feature-row.reverse { direction: ltr; }
        }
        @media (max-width: 768px) {
            .pm-banner {
                background: linear-gradient(135deg, #FFF7ED 0%, #FFE4E6 100%);
                min-height: auto;
            }
            .pm-banner::after { display: none; }
            .pm-banner .container { padding: 86px 20px 24px; }
            .pm-banner h1 { font-size: 1.6rem; }
            .pm-banner .labs { gap: 8px; margin-bottom: 16px; }
            .pm-banner .labs b { font-size: .78rem; padding: 5px 10px; }
            .pm-banner .banner-sub { font-size: .92rem; line-height: 1.8; }
            .case-card img { height: 160px; }
            .pain-grid, .scene-grid { grid-template-columns: 1fr; }
        }
    

/* ==========================================================================
   2026-09-21 移动端卡片统一改「左图右文」（只影响 ≤768px，桌面端一行未动）
   本页 3 类卡片原本是「图标/序号在上 → 标题 → 描述」竖向堆叠，手机上一屏信息太少、整页很长。
   改法与首页「为什么选择」、商城页一致：左列固定 44px 放图标/序号，标题与描述落在右列，文字左对齐。
   实现要点：
   1) grid 左列 44px，第二列用 minmax(0, 1fr) 防止窄列被撑破；
   2) 图标 grid-row: 1 / span 2 —— 在「标题 + 描述」两行范围内纵向居中（短卡片＝整体居中，
      长卡片（带列表/长正文）也不会飘到卡片中间，始终贴着标题；row-gap 为 0，空行不撑高卡片；
   3) 右列只列「确切存在的子元素」（标题/正文/列表），未列出的（绝对定位的序号水印、徽标）
      保持原样，仍相对卡片 padding 盒定位，不会被挪位、也不会被塞进右列。
   ========================================================================== */
@media (max-width: 768px) {

    /* 痛点 4 张：左列 .icon 44px，右列 h4 等 */
    .pain-card {
        display: grid;
        grid-template-columns: 44px minmax(0, 1fr);
        column-gap: 12px;
        row-gap: 0;
        align-items: center;
        text-align: left;
    }
    .pain-card > .icon {
        grid-column: 1; grid-row: 1 / span 2;
        width: 44px; height: 44px; margin: 0;
        display: flex; align-items: center; justify-content: center;
        font-size: 20px;
    }
    .pain-card > .icon svg { width: 22px; height: 22px; }
    .pain-card > h4, .pain-card > p {
        grid-column: 2;
        margin-top: 0;
    }

    /* 三步走 3 张（序号圆标；右列第 2 行是 time 标签）：左列 .step-num 44px，右列 h3 等 */
    .simple-step {
        display: grid;
        grid-template-columns: 44px minmax(0, 1fr);
        column-gap: 12px;
        row-gap: 0;
        align-items: center;
        text-align: left;
    }
    .simple-step > .step-num {
        grid-column: 1; grid-row: 1 / span 2;
        width: 44px; height: 44px; margin: 0;
        display: flex; align-items: center; justify-content: center;
        font-size: 20px;
    }
    .simple-step > .step-num svg { width: 22px; height: 22px; }
    .simple-step > h3, .simple-step > div.time, .simple-step > p {
        grid-column: 2;
        margin-top: 0;
    }

    /* 场景 8 张：左列 .scene-icon 44px，右列 h4 等 */
    .scene-card {
        display: grid;
        grid-template-columns: 44px minmax(0, 1fr);
        column-gap: 12px;
        row-gap: 0;
        align-items: center;
        text-align: left;
    }
    .scene-card > .scene-icon {
        grid-column: 1; grid-row: 1 / span 2;
        width: 44px; height: 44px; margin: 0;
        display: flex; align-items: center; justify-content: center;
        font-size: 20px;
    }
    .scene-card > .scene-icon svg { width: 22px; height: 22px; }
    .scene-card > h4, .scene-card > p {
        grid-column: 2;
        margin-top: 0;
    }

}


/* ==========================================================================
   2026-09-21 移动端 CTA（「给我们一次演示机会，您再做出选择！」联系区块）上下留白收紧
   原来手机上直接沿用桌面值（各页 70 / 80 / 100px），390px 宽下这块内容只有 3~5 行，
   上下各留一大块空白，很空、不紧凑 → 移动端统一收到 40px（约一半），桌面端一行未动。
   ⚠️ 必须写在**页面 CSS** 里：style.css 的媒体查询会被页面 CSS 的基础规则
   （同为 .cta-section 0,1,0，但页面 CSS 后加载）压掉，放 style.css 不生效。
   ========================================================================== */
@media (max-width: 768px) {
    .cta-section { padding: 40px 0; }
}
