/* ============================================================
   ESim电工仿真 - 购物页面样式
   移动优先 · 深靛蓝+电气橙配色 · 高对比度Footer
   ============================================================ */

/* ---------- CSS 变量: 配色系统 ---------- */
:root {
    /* 主色系: 深靛蓝 */
    --primary: #1d4ed8;
    --primary-hover: #2563eb;
    --primary-active: #1e3a8a;
    --primary-light: #dbeafe;
    --primary-bg: #bfdbfe;
    --primary-glow: rgba(29,78,216,.12);

    /* 强调色: 电气橙 */
    --accent: #e8590c;
    --accent-hover: #f97316;
    --accent-light: #fff7ed;
    --accent-border: #fed7aa;

    /* 成功色: 翠绿 */
    --success: #059669;
    --success-light: #ecfdf5;
    --success-border: #6ee7b7;

    /* 警告色: 琥珀 */
    --warning: #d97706;
    --warning-light: #fffbeb;
    --warning-border: #fcd34d;

    /* 中性色 */
    --bg-page: #f0f4f8;
    --bg-white: #ffffff;
    --bg-card: #ffffff;
    --bg-hover: #f8fafc;
    --bg-sunken: #e8edf3;

    --text-primary: #0f172a;
    --text-secondary: #334155;
    --text-tertiary: #64748b;
    --text-placeholder: #94a3b8;

    --border-light: #e2e8f0;
    --border-medium: #cbd5e1;
    --border-input: #cbd5e1;

    /* 阴影层级 */
    --shadow-sm: 0 1px 3px rgba(15,23,42,.06);
    --shadow-md: 0 4px 16px rgba(15,23,42,.07);
    --shadow-lg: 0 12px 32px rgba(15,23,42,.1);
    --shadow-xl: 0 20px 48px rgba(15,23,42,.14);
    --shadow-primary: 0 8px 28px rgba(29,78,216,.18);
    --shadow-accent: 0 8px 28px rgba(232,89,12,.18);

    /* 圆角 */
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --radius-xl: 24px;

    /* 间距 */
    --spacing-xs: 4px;
    --spacing-sm: 8px;
    --spacing-md: 16px;
    --spacing-lg: 24px;
    --spacing-xl: 32px;
    --spacing-xxl: 48px;

    /* 字体 */
    --font-system: 'Noto Sans SC', -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Helvetica Neue", sans-serif;

    /* 层级 */
    --z-header: 100;
    --z-modal: 200;
    --z-hamburger: 150;
}

/* ---------- 重置 & 基础 ---------- */
*, *::before, *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
html {
    scroll-behavior: smooth;
    font-size: 16px;
}
body {
    font-family: var(--font-system);
    background: var(--bg-page);
    color: var(--text-primary);
    line-height: 1.6;
    min-width: 320px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-tap-highlight-color: transparent;
}
.container {
    width: 100%;
    max-width: 1120px;
    margin: 0 auto;
    padding: 0 var(--spacing-md);
}

/* ============================================================
   Header — 固定导航
   ============================================================ */
.header {
    position: sticky;
    top: 0;
    z-index: var(--z-header);
    background: rgba(255,255,255,.88);
    backdrop-filter: saturate(180%) blur(16px);
    -webkit-backdrop-filter: saturate(180%) blur(16px);
    border-bottom: 1px solid var(--border-light);
}
.header-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 54px;
}
.logo {
    font-size: 17px;
    font-weight: 700;
    color: var(--primary);
    text-decoration: none;
    white-space: nowrap;
    flex-shrink: 0;
}

/* --- 汉堡菜单按钮 --- */
.hamburger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    z-index: var(--z-hamburger);
    flex-shrink: 0;
    -webkit-tap-highlight-color: transparent;
}
.hamburger span {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--text-secondary);
    border-radius: 2px;
    transition: transform .25s, opacity .25s;
    transform-origin: center;
}
.hamburger.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hamburger.active span:nth-child(2) { opacity: 0; }
.hamburger.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* --- 导航 (移动端默认隐藏) --- */
.nav {
    position: fixed;
    top: 54px;
    left: 0;
    right: 0;
    background: rgba(255,255,255,.97);
    backdrop-filter: blur(12px);
    box-shadow: var(--shadow-lg);
    display: flex;
    flex-direction: column;
    padding: var(--spacing-sm) 0;
    transform: translateY(-110%);
    opacity: 0;
    transition: transform .3s ease, opacity .25s ease;
    z-index: calc(var(--z-hamburger) - 1);
    border-bottom: 3px solid var(--primary);
}
.nav.open {
    transform: translateY(0);
    opacity: 1;
}
.nav a {
    display: block;
    padding: 14px var(--spacing-lg);
    color: var(--text-secondary);
    text-decoration: none;
    font-size: 15px;
    font-weight: 500;
    border-left: 3px solid transparent;
    transition: color .2s, background .2s, border-color .2s;
}
.nav a:hover, .nav a:active {
    color: var(--primary);
    background: var(--primary-light);
    border-left-color: var(--primary);
}

/* ============================================================
   Intro — 软件介绍区
   ============================================================ */
.intro-section {
    padding: var(--spacing-xxl) 0 var(--spacing-lg);
    background: var(--bg-white);
    position: relative;
    overflow: hidden;
}
/* 装饰光晕 */
.intro-section::before {
    content: '';
    position: absolute;
    top: -120px;
    right: -80px;
    width: 320px;
    height: 320px;
    border-radius: 50%;
    background: radial-gradient(circle, var(--primary-glow) 0%, transparent 70%);
    pointer-events: none;
}
.intro-section::after {
    content: '';
    position: absolute;
    bottom: -60px;
    left: -40px;
    width: 200px;
    height: 200px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(232,89,12,.05) 0%, transparent 70%);
    pointer-events: none;
}

/* --- 顶部横幅 (深色渐变) --- */
.intro-banner {
    text-align: center;
    margin-bottom: var(--spacing-xl);
    padding: 48px var(--spacing-md) 40px;
    background: linear-gradient(145deg, #0f172a 0%, #1e3a8a 50%, #1d4ed8 100%);
    border-radius: var(--radius-xl);
    position: relative;
    overflow: hidden;
}
/* SVG 网格纹理 */
.intro-banner::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url("data:image/svg+xml,%3Csvg width='60' height='60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 0v60M0 30h60' stroke='rgba(255,255,255,.04)' stroke-width='.5'/%3E%3C/svg%3E");
    pointer-events: none;
}
/* 脉冲光晕 */
.intro-banner::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -20%;
    width: 400px;
    height: 400px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(96,165,250,.15) 0%, transparent 60%);
    pointer-events: none;
    animation: heroPulse 6s ease-in-out infinite alternate;
}
@keyframes heroPulse {
    0%   { transform: scale(1);   opacity: .6; }
    100% { transform: scale(1.15); opacity: 1; }
}

.intro-icon {
    font-size: 40px;
    margin-bottom: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #f97316, #e8590c);
    color: #fff;
    width: 76px;
    height: 76px;
    border-radius: 22px;
    box-shadow: 0 12px 32px rgba(249,115,22,.35);
    position: relative;
    z-index: 1;
    animation: iconFloat 4s ease-in-out infinite;
}
@keyframes iconFloat {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-6px); }
}

.intro-title {
    font-size: 26px;
    font-weight: 900;
    color: #fff;
    margin-bottom: var(--spacing-sm);
    position: relative;
    z-index: 1;
    letter-spacing: 1px;
}
.intro-subtitle {
    font-size: 14px;
    color: rgba(255,255,255,.75);
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.9;
    position: relative;
    z-index: 1;
}

/* --- 三版本特性卡片 --- */
.version-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    margin-bottom: var(--spacing-xl);
}
.version-card {
    background: var(--bg-white);
    border-radius: var(--radius-lg);
    padding: 0;
    text-align: center;
    box-shadow: var(--shadow-md);
    border: 1px solid var(--border-light);
    transition: transform .25s, box-shadow .25s;
    overflow: hidden;
}
.version-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-lg);
}
.version-card-top {
    padding: 28px 20px 20px;
    position: relative;
}
.version-card-top::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
}
.vc-android .version-card-top::before { background: linear-gradient(90deg, #059669, #34d399); }
.vc-pc .version-card-top::before      { background: linear-gradient(90deg, #1d4ed8, #60a5fa); }
.vc-design .version-card-top::before  { background: linear-gradient(90deg, #e8590c, #fb923c); }

.version-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 14px;
    font-size: 26px;
    margin-bottom: 12px;
}
.vc-android .version-icon { background: #ecfdf5; }
.vc-pc .version-icon      { background: #dbeafe; }
.vc-design .version-icon  { background: #fff7ed; }

.version-card h3 {
    font-size: 17px;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 12px;
}
.version-card p {
    font-size: 13px;
    color: var(--text-tertiary);
    line-height: 1.75;
    margin: 0;
}
.version-card-bottom {
    background: var(--bg-sunken);
    padding: 12px 20px;
    font-size: 12px;
    color: var(--text-tertiary);
    font-weight: 500;
    letter-spacing: .3px;
}

/* --- 重要须知 --- */
.notice-box {
    background: linear-gradient(135deg, var(--warning-light) 0%, #fff7ed 100%);
    border: 1px solid var(--warning-border);
    border-left: 4px solid var(--warning);
    border-radius: var(--radius-lg);
    padding: 24px 22px;
}
.notice-title {
    font-size: 15px;
    font-weight: 700;
    color: #92400e;
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.notice-list {
    list-style: none;
    padding: 0;
}
.notice-list li {
    position: relative;
    padding: 9px 0 9px 20px;
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.75;
    border-bottom: 1px solid rgba(0,0,0,.04);
}
.notice-list li:last-child { border-bottom: none; }
.notice-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 15px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--warning);
}
.notice-list li em {
    font-style: normal;
    color: var(--accent);
    font-weight: 600;
}
.notice-list li strong {
    color: var(--text-primary);
    font-weight: 600;
}

/* ============================================================
   Section 通用
   ============================================================ */
.products-section {
    padding: var(--spacing-xl) 0 var(--spacing-xxl);
}
.query-section {
    padding: var(--spacing-xl) 0 var(--spacing-xxl);
    background: var(--bg-white);
}
.section-title {
    text-align: center;
    font-size: 22px;
    margin-bottom: var(--spacing-sm);
    color: var(--text-primary);
    font-weight: 800;
    letter-spacing: .5px;
}
.section-subtitle {
    text-align: center;
    color: var(--text-tertiary);
    margin-bottom: var(--spacing-xl);
    font-size: 14px;
}

/* ============================================================
   Product Block — 产品区块
   ============================================================ */
.product-block {
    margin-bottom: var(--spacing-xl);
}
.product-block:last-child { margin-bottom: 0; }

.product-name {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 4px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--border-light);
    display: flex;
    align-items: center;
    gap: 8px;
}
.highlight {
    color: var(--primary);
    font-weight: 700;
}
.product-intro {
    color: var(--text-tertiary);
    font-size: 13px;
    margin-bottom: var(--spacing-md);
    line-height: 1.6;
}

/* --- 产品图标 --- */
.product-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 8px;
    flex-shrink: 0;
    font-size: 17px;
}
.icon-android { background: linear-gradient(135deg, #059669, #34d399); }
.icon-design  { background: linear-gradient(135deg, #e8590c, #fb923c); }
.icon-pc      { background: linear-gradient(135deg, #1d4ed8, #60a5fa); }

/* ============================================================
   Tier Cards — 套餐卡片网格 (移动优先: 单列)
   ============================================================ */
.tier-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
}
.tier-card {
    background: var(--bg-card);
    border-radius: var(--radius-lg);
    padding: 28px 20px 24px;
    text-align: center;
    box-shadow: var(--shadow-md);
    transition: transform .25s, box-shadow .25s, border-color .25s;
    border: 2px solid var(--border-light);
    position: relative;
    overflow: hidden;
}
.tier-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--primary), #60a5fa);
    opacity: 0;
    transition: opacity .25s;
}
.tier-card:hover::before,
.tier-card:active::before { opacity: 1; }

.tier-card.hot {
    border-color: var(--accent);
}
.tier-card.hot::before {
    background: linear-gradient(90deg, var(--accent), #fb923c);
    opacity: 1;
}
.tier-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-primary);
    border-color: var(--primary);
}
.tier-card.hot:hover {
    border-color: var(--accent-hover);
    box-shadow: var(--shadow-accent);
}
.tier-card:active {
    transform: translateY(-2px) scale(.99);
}

/* --- 角标 --- */
.card-badge {
    position: absolute;
    top: 12px;
    right: 14px;
    display: inline-block;
    background: linear-gradient(135deg, var(--accent), #fb923c);
    color: #fff;
    font-size: 11px;
    padding: 3px 10px;
    border-radius: 20px;
    font-weight: 700;
    letter-spacing: .5px;
    box-shadow: 0 2px 8px rgba(232,89,12,.3);
}

/* --- 卡片图标 --- */
.card-img {
    width: 60px;
    height: 60px;
    margin: 0 auto 14px;
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, var(--primary-light), var(--primary-bg));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
}
.tier-card.hot .card-img {
    background: linear-gradient(135deg, var(--accent-light), #fed7aa);
}

/* --- 卡片文字 --- */
.card-name {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 3px;
    color: var(--text-primary);
}
.card-desc {
    font-size: 12px;
    color: var(--text-tertiary);
    margin-bottom: 14px;
}

/* --- 价格 --- */
.card-price {
    font-size: 30px;
    font-weight: 900;
    color: var(--primary);
    margin-bottom: 2px;
    letter-spacing: -.5px;
}
.tier-card.hot .card-price { color: var(--accent); }
.card-price-unit {
    font-size: 13px;
    color: var(--text-tertiary);
    font-weight: 400;
}

/* --- 购买按钮 --- */
.btn-buy {
    display: block;
    margin-top: 18px;
    padding: 12px 0;
    background: linear-gradient(135deg, var(--primary), var(--primary-hover));
    color: #fff;
    border: none;
    border-radius: var(--radius-md);
    font-size: 15px;
    cursor: pointer;
    font-weight: 600;
    width: 100%;
    transition: all .2s;
    letter-spacing: .5px;
    -webkit-tap-highlight-color: transparent;
    box-shadow: 0 4px 12px rgba(29,78,216,.25);
    font-family: var(--font-system);
}
.btn-buy:hover {
    box-shadow: 0 6px 20px rgba(29,78,216,.35);
    transform: translateY(-1px);
}
.btn-buy:active {
    transform: translateY(0) scale(.98);
}
.tier-card.hot .btn-buy {
    background: linear-gradient(135deg, var(--accent), var(--accent-hover));
    box-shadow: 0 4px 12px rgba(232,89,12,.25);
}
.tier-card.hot .btn-buy:hover {
    box-shadow: 0 6px 20px rgba(232,89,12,.35);
}

/* ============================================================
   Modal — 支付弹窗
   ============================================================ */
.modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15,23,42,.55);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    z-index: var(--z-modal);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-md);
}
.modal {
    background: var(--bg-white);
    border-radius: var(--radius-xl);
    padding: 32px 24px;
    width: 100%;
    max-width: 420px;
    box-shadow: var(--shadow-xl);
    animation: modalIn .3s ease;
}
@keyframes modalIn {
    from { opacity: 0; transform: translateY(-20px) scale(.96); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}
.modal h3 {
    margin-bottom: 16px;
    font-size: 20px;
    color: var(--text-primary);
    font-weight: 800;
}
.modal-product-info {
    background: var(--primary-light);
    border-radius: var(--radius-sm);
    padding: 12px 16px;
    margin-bottom: 20px;
    font-size: 14px;
    color: var(--text-secondary);
    border-left: 3px solid var(--primary);
}
.modal-product-info strong {
    color: var(--primary);
}
.modal label {
    display: block;
    font-size: 13px;
    color: var(--text-secondary);
    margin-bottom: 6px;
    font-weight: 600;
}
.modal input[type="text"] {
    width: 100%;
    padding: 12px 16px;
    border: 1.5px solid var(--border-input);
    border-radius: var(--radius-md);
    font-size: 15px;
    margin-bottom: 4px;
    outline: none;
    transition: border-color .2s, box-shadow .2s;
    background: var(--bg-hover);
    -webkit-appearance: none;
    appearance: none;
    font-family: var(--font-system);
}
.modal input[type="text"]:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-glow);
    background: var(--bg-white);
}
.input-hint {
    font-size: 12px;
    color: var(--text-tertiary);
    margin-bottom: 16px;
}

/* ============================================================
   Buttons 通用
   ============================================================ */
.btn-primary {
    display: block;
    width: 100%;
    padding: 14px;
    background: linear-gradient(135deg, var(--primary), var(--primary-hover));
    color: #fff;
    border: none;
    border-radius: var(--radius-md);
    font-size: 16px;
    cursor: pointer;
    font-weight: 600;
    transition: all .2s;
    text-align: center;
    letter-spacing: .5px;
    min-height: 48px;
    -webkit-tap-highlight-color: transparent;
    box-shadow: 0 4px 14px rgba(29,78,216,.2);
    font-family: var(--font-system);
}
.btn-primary:hover {
    box-shadow: 0 6px 20px rgba(29,78,216,.3);
    transform: translateY(-1px);
}
.btn-primary:active {
    transform: translateY(0) scale(.98);
}
.btn-primary:disabled {
    background: var(--border-light);
    box-shadow: none;
    cursor: not-allowed;
    color: var(--text-placeholder);
}
.btn-cancel {
    display: block;
    width: 100%;
    padding: 12px;
    background: none;
    color: var(--text-tertiary);
    border: none;
    font-size: 14px;
    cursor: pointer;
    margin-top: var(--spacing-sm);
    min-height: 44px;
    -webkit-tap-highlight-color: transparent;
    font-family: var(--font-system);
    font-weight: 500;
}
.btn-cancel:hover { color: var(--text-secondary); }
.btn-cancel:active { color: var(--text-primary); }

/* ============================================================
   Query — 查询区
   ============================================================ */
.query-box {
    width: 100%;
    max-width: 520px;
    margin: 0 auto;
}
.form-group {
    margin-bottom: var(--spacing-md);
}
.form-group label {
    display: block;
    font-size: 14px;
    color: var(--text-secondary);
    margin-bottom: 6px;
    font-weight: 600;
}
.form-group input[type="text"],
.form-group input[type="tel"] {
    width: 100%;
    padding: 12px 16px;
    border: 1.5px solid var(--border-input);
    border-radius: var(--radius-md);
    font-size: 15px;
    outline: none;
    transition: border-color .2s, box-shadow .2s;
    background: var(--bg-hover);
    -webkit-appearance: none;
    appearance: none;
    font-family: var(--font-system);
}
.form-group input:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-glow);
    background: var(--bg-white);
}

/* --- 验证码 --- */
.captcha-row {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}
#captchaCanvas {
    border: 1.5px solid var(--border-input);
    border-radius: var(--radius-sm);
    cursor: pointer;
    flex-shrink: 0;
}
.btn-refresh {
    background: var(--bg-hover);
    border: 1.5px solid var(--border-input);
    border-radius: var(--radius-sm);
    width: 44px;
    height: 44px;
    font-size: 18px;
    cursor: pointer;
    color: var(--text-secondary);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    -webkit-tap-highlight-color: transparent;
    transition: all .2s;
}
.btn-refresh:hover { background: var(--border-light); border-color: var(--border-medium); }
.btn-refresh:active { background: var(--border-medium); }

/* --- 查询结果 --- */
#queryResult {
    width: 100%;
    max-width: 520px;
    margin: var(--spacing-lg) auto 0;
}
.result-card {
    background: var(--bg-hover);
    border-radius: var(--radius-lg);
    padding: 20px;
    margin-bottom: 14px;
    border: 1px solid var(--border-light);
}
.result-card h4 {
    margin-bottom: 14px;
    color: var(--text-primary);
    font-size: 15px;
    font-weight: 700;
}
.info-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 9px 0;
    border-bottom: 1px solid var(--border-light);
    font-size: 13px;
    gap: var(--spacing-sm);
}
.info-row:last-child { border-bottom: none; }
.info-row .label {
    color: var(--text-tertiary);
    flex-shrink: 0;
}
.info-row .value {
    color: var(--text-primary);
    font-weight: 600;
    text-align: right;
    word-break: break-all;
}
.info-row .value.success { color: var(--success); }
.info-row .value.warning { color: var(--warning); }
.info-row .value.danger  { color: var(--accent); }

/* ============================================================
   Error & Loading
   ============================================================ */
.error-msg {
    background: var(--accent-light);
    border: 1px solid var(--accent-border);
    color: var(--accent);
    padding: 12px 16px;
    border-radius: var(--radius-sm);
    font-size: 13px;
    margin-top: 12px;
    line-height: 1.6;
}
.loading-hint {
    text-align: center;
    color: var(--text-tertiary);
    padding: var(--spacing-md) 0;
    font-size: 14px;
}

/* ============================================================
   Footer（高对比度 — 核心优化）
   ============================================================ */
.footer {
    background: #0f172a;
    color: #e2e8f0;
    text-align: center;
    padding: 40px 0 32px;
    font-size: 14px;
    line-height: 2;
    border-top: 4px solid var(--primary);
    position: relative;
}
/* 顶部渐变光线 */
.footer::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(96,165,250,.3), transparent);
}
.footer a.footer-link {
    color: #93c5fd;
    text-decoration: none;
    transition: color .2s;
}
.footer a.footer-link:hover {
    color: #dbeafe;
}
.footer-links {
    margin-bottom: 18px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}
.footer-beian {
    margin-bottom: 8px;
    font-size: 13px;
    color: #94a3b8;
}
.footer-beian a.footer-link {
    color: #cbd5e1;
}
.footer-beian a.footer-link:hover {
    color: #f1f5f9;
}
.footer-gongan {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    margin-bottom: 18px;
    font-size: 13px;
    color: #94a3b8;
}
.footer-gongan a.footer-link {
    color: #cbd5e1;
}
.footer-gongan a.footer-link:hover {
    color: #f1f5f9;
}
.gongan-icon {
    vertical-align: middle;
    flex-shrink: 0;
    opacity: .85;
}
.footer-divider {
    margin: 0 10px;
    color: rgba(255,255,255,.2);
}
.footer-contact {
    margin-bottom: 10px;
}
.footer-coop {
    color: #94a3b8;
    font-size: 13px;
}
.footer-email {
    color: #94a3b8;
    font-size: 13px;
}
.footer-email a.footer-link {
    color: #93c5fd;
}
.footer-safe {
    color: #64748b;
    font-size: 12px;
    margin-top: 6px;
}

/* ============================================================
   Spinner (main.js 支付按钮加载动画依赖)
   ============================================================ */
@keyframes spin {
    to { transform: rotate(360deg); }
}

/* ============================================================
   响应式: ≥480px (大屏手机)
   ============================================================ */
@media (min-width: 480px) {
    .section-title { font-size: 24px; }
    .product-name  { font-size: 19px; }
    .intro-icon {
        width: 88px;
        height: 88px;
        font-size: 40px;
        border-radius: 24px;
    }
    .intro-title { font-size: 30px; }
    .intro-subtitle { font-size: 15px; }
    .version-cards {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }
    .tier-cards {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }
    .modal { padding: 36px 28px; }
    .modal h3 { font-size: 20px; }
}

/* ============================================================
   响应式: ≥768px (平板 / 小桌面)
   ============================================================ */
@media (min-width: 768px) {
    .container { padding: 0 var(--spacing-lg); }

    /* Header: 桌面导航 */
    .header-inner { height: 60px; }
    .logo { font-size: 20px; }
    .hamburger { display: none; }
    .nav {
        position: static;
        flex-direction: row;
        padding: 0;
        transform: none;
        opacity: 1;
        box-shadow: none;
        background: none;
        border-bottom: none;
        transition: none;
        backdrop-filter: none;
    }
    .nav a {
        padding: 8px 0;
        margin-left: 28px;
        border-left: none;
        font-size: 14px;
        position: relative;
        font-weight: 500;
    }
    .nav a::after {
        content: '';
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        height: 2px;
        background: var(--primary);
        transform: scaleX(0);
        transition: transform .2s;
        border-radius: 1px;
    }
    .nav a:hover, .nav a:active {
        background: none;
        color: var(--primary);
    }
    .nav a:hover::after, .nav a:active::after {
        transform: scaleX(1);
    }

    /* Intro */
    .intro-section { padding: 64px 0 var(--spacing-xl); }
    .intro-banner { padding: 56px 48px; }
    .intro-icon {
        width: 100px;
        height: 100px;
        font-size: 44px;
        border-radius: 26px;
    }
    .intro-title { font-size: 36px; }
    .intro-subtitle {
        font-size: 16px;
        max-width: 680px;
    }
    .version-cards {
        grid-template-columns: repeat(3, 1fr);
        gap: 20px;
    }
    .version-card-top { padding: 40px 28px 28px; }
    .version-card h3 { font-size: 18px; }
    .version-card p { font-size: 14px; }
    .version-card-bottom {
        font-size: 13px;
        padding: 14px 28px;
    }
    .notice-box { padding: 28px 28px; }
    .notice-title { font-size: 16px; }
    .notice-list li {
        font-size: 14px;
        padding-left: 24px;
    }

    /* Products & Query */
    .products-section { padding: var(--spacing-xxl) 0 72px; }
    .query-section    { padding: var(--spacing-xxl) 0 72px; }
    .section-title    { font-size: 28px; }
    .section-subtitle { font-size: 15px; }
    .product-name     { font-size: 22px; }
    .product-intro    { font-size: 14px; }
    .product-icon {
        width: 38px;
        height: 38px;
        border-radius: 10px;
    }

    /* Tier Cards: 自适应多列 */
    .tier-cards {
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
        gap: 20px;
    }
    .tier-card { padding: 32px 22px 28px; }
    .card-img {
        width: 72px;
        height: 72px;
        margin-bottom: 16px;
        font-size: 34px;
    }
    .card-name  { font-size: 17px; }
    .card-desc  { font-size: 13px; }
    .card-price { font-size: 32px; }
    .btn-buy {
        padding: 11px 0;
        font-size: 15px;
        min-height: auto;
    }

    .result-card { padding: 22px; }
    .info-row    { font-size: 14px; }

    .footer {
        padding: 52px 0 40px;
        font-size: 14px;
    }
}

/* ============================================================
   响应式: ≥1024px (标准桌面)
   ============================================================ */
@media (min-width: 1024px) {
    .tier-cards {
        grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    }
}

/* ============================================================
   Reduced Motion
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
    .intro-icon    { animation: none; }
    .intro-banner::after { animation: none; }
    * {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
    }
}
