/* =========================================================
   AI GEO优化专题页 样式 (geo.css)
   设计系统见 DESIGN.md —— 色板/字阶/间距/动效以该文件为准
   浅色企业级：品牌紫仅作强调，不使用大面积深色与渐变装饰
   ========================================================= */

/* ---------- 本页 token（补充全站 :root，不覆盖同名变量） ---------- */
:root {
    /* 语义色 */
    --geo-brand:        var(--geo);            /* #7c3aed */
    --geo-brand-strong: #5b21b6;
    --geo-brand-soft:   #ede9fe;
    --geo-tint:         #f6f4ff;
    --geo-surface:      #ffffff;
    --geo-surface-soft: #f7f8fc;
    --geo-ink:          var(--text-dark);      /* #0f172a */
    --geo-body:         var(--text-mid);       /* #334155 */
    --geo-muted:        var(--text-light);     /* #64748b */
    --geo-line:         var(--border);         /* #e2e8f0 */
    --geo-success:      var(--success);        /* #10b981 */

    /* 字阶 */
    --fs-display: clamp(2rem, 1.45rem + 1.5vw, 2.75rem);
    --fs-h2:      clamp(1.5rem, 1.2rem + .9vw, 1.875rem);
    --fs-h3:      1.0625rem;
    --fs-body:    .9375rem;
    --fs-sm:      .875rem;
    --fs-xs:      .8125rem;
    --fs-data:    clamp(1.5rem, 1.2rem + .9vw, 2rem);

    /* 间距（4px 基准） */
    --sp-1: 4px;  --sp-2: 8px;  --sp-3: 12px; --sp-4: 16px;
    --sp-6: 24px; --sp-8: 32px; --sp-12: 48px; --sp-16: 64px; --sp-24: 96px;

    /* 动效 */
    --dur-fast: 160ms;
    --dur-base: 220ms;
    --dur-slow: 400ms;
    --ease-out: cubic-bezier(.22, .61, .36, 1);
}

/* ---------- 图标 ---------- */
/* sprite 容器：不占空间，且 symbol 仍可被 <use> 引用 */
.geo-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.geo-icon {
    width: 24px; height: 24px;
    flex: none;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.geo-icon-xs { width: 14px; height: 14px; }
.geo-icon-sm { width: 18px; height: 18px; }
.geo-icon-lg { width: 28px; height: 28px; }

/* ---------- 区块骨架（显式覆盖全站 .geo-section 的深色渐变） ---------- */
.geo-section,
.geo-section.geo-alt {
    background: var(--geo-surface);
    color: var(--geo-ink);
}
.geo-section { padding: var(--sp-24) 0; }
.geo-alt { background: var(--geo-surface-soft) !important; }
.geo-section,
.geo-hero { scroll-margin-top: 84px; }

.geo-sec-header { text-align: center; margin-bottom: var(--sp-12); }
.geo-sec-header-sub { margin: var(--sp-16) 0 var(--sp-8); }
.geo-sec-header .section-tag {
    background: var(--geo-brand-soft);
    color: var(--geo-brand-strong);
    font-size: var(--fs-xs);
    font-weight: 600;
    letter-spacing: .04em;
    padding: var(--sp-1) var(--sp-3);
    border-radius: 999px;
    text-transform: none;
    margin-bottom: var(--sp-3);
}
.geo-sec-header .section-title {
    font-size: var(--fs-h2);
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0;
    color: var(--geo-ink);
    margin-bottom: var(--sp-3);
    text-wrap: balance;
}
.geo-sec-header .section-subtitle {
    font-size: var(--fs-body);
    line-height: 1.75;
    color: var(--geo-muted);
    max-width: 620px;
    text-wrap: pretty;
}
.geo-cases-title {
    font-size: var(--fs-h3);
    font-weight: 600;
    color: var(--geo-ink);
}

/* ---------- 进场揭示（克制：12px / 400ms） ---------- */
[data-animate] {
    opacity: 0;
    transform: translateY(12px);
    transition: opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out);
}
[data-animate].is-visible { opacity: 1; transform: translateY(0); }

/* ---------- 按钮 ---------- */
.geo-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--sp-2);
    font-weight: 600;
    letter-spacing: 0;
    border-radius: var(--r-md);
    transition: background var(--dur-fast) var(--ease-out),
                border-color var(--dur-fast) var(--ease-out),
                box-shadow var(--dur-fast) var(--ease-out),
                transform var(--dur-fast) var(--ease-out);
}
.geo-btn-primary {
    background: var(--geo-brand);
    color: #fff;
    border: 1px solid transparent;
    box-shadow: var(--shadow-sm);
}
.geo-btn-primary:hover {
    color: #fff;
    background: var(--geo-brand-strong);
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}
.geo-btn-outline {
    background: #fff;
    color: var(--geo-brand-strong);
    border: 1px solid rgba(124, 58, 237, .35);
    box-shadow: none;
}
.geo-btn-outline:hover {
    color: var(--geo-brand-strong);
    border-color: var(--geo-brand);
    background: var(--geo-tint);
}

/* =========================================================
   Hero
   ========================================================= */
.geo-hero {
    position: relative;
    padding: 128px 0 0;
    color: var(--geo-ink);
    overflow: hidden;
    background:
        radial-gradient(900px 460px at 82% -10%, rgba(124, 58, 237, .10), rgba(124, 58, 237, 0) 65%),
        linear-gradient(180deg, #fbfbff 0%, var(--geo-surface-soft) 100%);
}
.geo-hero-bg { position: absolute; inset: 0; pointer-events: none; }
/* 氛围层：径向渐变，不使用 blur */
.geo-shape {
    position: absolute;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(124, 58, 237, .12), rgba(124, 58, 237, 0) 70%);
}
.geo-shape-1 { width: 520px; height: 520px; top: -220px; left: -160px; }
.geo-shape-2 { width: 420px; height: 420px; top: 40px; right: -180px; background: radial-gradient(circle, rgba(37, 99, 235, .08), rgba(37, 99, 235, 0) 70%); }
.geo-shape-3 { display: none; }

.geo-hero-inner {
    position: relative;
    display: grid;
    grid-template-columns: 1.05fr 1fr;
    gap: var(--sp-16);
    align-items: center;
    padding-bottom: var(--sp-16);
}
.geo-hero-tag {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    background: var(--geo-brand-soft);
    border: 1px solid var(--geo-brand-soft);
    color: var(--geo-brand-strong);
    font-size: var(--fs-xs);
    font-weight: 600;
    letter-spacing: .04em;
    padding: var(--sp-1) var(--sp-3);
    border-radius: 999px;
    margin-bottom: var(--sp-4);
}
.geo-hero-hot {
    display: inline-block;
    background: var(--geo-brand);
    color: #fff;
    font-size: .6875rem;
    font-weight: 700;
    letter-spacing: .04em;
    padding: 1px var(--sp-2);
    border-radius: 999px;
}
.geo-hero-title {
    font-size: var(--fs-display);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0;
    color: var(--geo-ink);
    margin-bottom: var(--sp-3);
    text-wrap: balance;
}
.geo-hero-highlight { color: var(--geo-brand-strong); }
.geo-hero-desc {
    font-size: var(--fs-body);
    line-height: 1.75;
    color: var(--geo-body);
    margin-bottom: var(--sp-6);
    max-width: 46ch;
}
.geo-hero-actions { display: flex; gap: var(--sp-3); flex-wrap: wrap; margin-bottom: var(--sp-4); }
.geo-hero-points { display: flex; flex-wrap: wrap; gap: var(--sp-4) var(--sp-6); font-size: var(--fs-sm); color: var(--geo-body); }
.geo-hero-points span { display: inline-flex; align-items: center; gap: var(--sp-2); }
.geo-hero-points .geo-icon { color: var(--geo-brand); }

/* AI 引用示意卡 */
.geo-ai-card {
    background: #fff;
    border: 1px solid var(--geo-line);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow-md);
    overflow: hidden;
}
.geo-ai-card-head {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    padding: var(--sp-3) var(--sp-4);
    background: var(--geo-surface-soft);
    border-bottom: 1px solid var(--geo-line);
}
.geo-ai-logo {
    width: 26px; height: 26px;
    display: flex; align-items: center; justify-content: center;
    background: var(--geo-brand);
    color: #fff;
    border-radius: var(--r-sm);
    font-size: .6875rem;
    font-weight: 700;
    letter-spacing: .02em;
}
.geo-ai-name { font-size: var(--fs-sm); font-weight: 600; color: var(--geo-ink); flex-grow: 1; }
.geo-ai-status { display: inline-flex; align-items: center; gap: var(--sp-1); font-size: var(--fs-xs); color: var(--geo-success); font-weight: 600; }
.geo-ai-q {
    margin: var(--sp-4) var(--sp-4) var(--sp-3);
    font-size: var(--fs-sm);
    color: var(--geo-body);
    padding: var(--sp-2) var(--sp-3);
    background: var(--geo-surface-soft);
    border-radius: var(--r-md) var(--r-md) var(--r-md) var(--r-sm);
}
.geo-ai-user {
    display: inline-block;
    font-size: var(--fs-xs);
    font-weight: 700;
    color: var(--geo-brand-strong);
    letter-spacing: .04em;
    margin: var(--sp-1) 0 var(--sp-2);
}
.geo-ai-a { padding: 0 var(--sp-4); }
.geo-ai-a p { font-size: var(--fs-body); line-height: 1.75; color: var(--geo-body); margin-bottom: var(--sp-2); }
.geo-ai-a mark {
    background: var(--geo-brand-soft);
    color: var(--geo-brand-strong);
    border-radius: var(--r-sm);
    padding: 0 3px;
    font-weight: 600;
}
.geo-ai-cite {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    font-size: var(--fs-xs);
    color: var(--geo-muted);
    border-top: 1px dashed var(--geo-line);
    padding: var(--sp-3) 0;
}
.geo-ai-cite .geo-icon { color: var(--geo-brand); }
.geo-ai-tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-2);
    padding: var(--sp-3) var(--sp-4);
    background: var(--geo-tint);
    border-top: 1px solid var(--geo-line);
}
.geo-ai-tags span {
    font-size: var(--fs-xs);
    font-weight: 600;
    color: var(--geo-brand-strong);
    background: #fff;
    border: 1px solid var(--geo-brand-soft);
    padding: 2px var(--sp-2);
    border-radius: 999px;
}

/* Hero 数据条 */
.geo-hero-stats {
    position: relative;
    padding: var(--sp-6) 0 var(--sp-8);
    background: rgba(255, 255, 255, .6);
    border-top: 1px solid var(--geo-line);
}
.geo-hero-stats-inner { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-4); }
.geo-stat {
    background: #fff;
    border: 1px solid var(--geo-line);
    border-radius: var(--r-md);
    padding: var(--sp-4) var(--sp-3);
    text-align: center;
}
.geo-stat-num {
    font-size: var(--fs-data);
    font-weight: 700;
    line-height: 1.2;
    color: var(--geo-brand-strong);
    font-variant-numeric: tabular-nums;
}
.geo-stat-label { font-size: var(--fs-sm); color: var(--geo-muted); margin-top: var(--sp-1); }

/* =========================================================
   为什么要做 GEO
   ========================================================= */
.geo-compare {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: var(--sp-4);
    align-items: stretch;
    max-width: 1000px;
    margin: 0 auto var(--sp-12);
}
.geo-compare-card {
    background: #fff;
    border: 1px solid var(--geo-line);
    border-radius: var(--r-lg);
    padding: var(--sp-6);
}
.geo-compare-new { border-top: 2px solid var(--geo-brand); }
.geo-compare-old { border-top: 2px solid var(--geo-line); }
.geo-compare-ico {
    width: 40px; height: 40px;
    display: flex; align-items: center; justify-content: center;
    background: var(--geo-surface-soft);
    border-radius: var(--r-md);
    color: var(--geo-muted);
    margin-bottom: var(--sp-3);
}
.geo-compare-new .geo-compare-ico { background: var(--geo-brand-soft); color: var(--geo-brand-strong); }
.geo-compare-card h3 { font-size: var(--fs-h3); font-weight: 600; color: var(--geo-ink); margin-bottom: var(--sp-3); }
.geo-compare-card ul { list-style: none; display: flex; flex-direction: column; gap: var(--sp-2); }
.geo-compare-card li {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-2);
    font-size: var(--fs-sm);
    color: var(--geo-body);
    line-height: 1.7;
}
.geo-compare-card li .geo-icon { margin-top: 3px; }
.geo-compare-old li .geo-icon { color: var(--geo-muted); }
.geo-compare-new li .geo-icon { color: var(--geo-brand); }

.geo-compare-vs {
    align-self: center;
    background: #fff;
    color: var(--geo-brand-strong);
    width: 44px; height: 44px;
    display: flex; align-items: center; justify-content: center;
    font-size: var(--fs-xs);
    font-weight: 700;
    letter-spacing: .04em;
    border: 1px solid var(--geo-line);
    border-radius: 50%;
}
.geo-platforms { text-align: center; max-width: 1000px; margin: 0 auto; }
.geo-platform-title { display: block; font-size: var(--fs-sm); font-weight: 600; color: var(--geo-body); margin-bottom: var(--sp-3); }
.geo-platform-chips { display: flex; flex-wrap: wrap; gap: var(--sp-2); justify-content: center; }
.geo-platform-chips span {
    background: #fff;
    border: 1px solid var(--geo-line);
    color: var(--geo-body);
    font-weight: 500;
    font-size: var(--fs-sm);
    padding: var(--sp-1) var(--sp-3);
    border-radius: 999px;
    transition: border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.geo-platform-chips span:hover { color: var(--geo-brand-strong); border-color: var(--geo-brand); }

/* =========================================================
   核心服务（主卡 / 次卡 两级层级）
   ========================================================= */
.geo-feat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-6); }
.geo-feat-main {
    background: #fff;
    border: 1px solid var(--geo-line);
    border-top: 2px solid var(--geo-brand);
    border-radius: var(--r-lg);
    padding: var(--sp-6) var(--sp-4);
    box-shadow: var(--shadow-sm);
    transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
.geo-feat-main:hover { border-color: var(--geo-brand); box-shadow: var(--shadow-md); }
.geo-feat-main .geo-feat-icon {
    width: 40px; height: 40px;
    display: flex; align-items: center; justify-content: center;
    background: var(--geo-brand-soft);
    color: var(--geo-brand-strong);
    border-radius: var(--r-md);
    margin-bottom: var(--sp-3);
}
.geo-feat-main h3 { font-size: var(--fs-h3); font-weight: 600; color: var(--geo-ink); margin-bottom: var(--sp-2); line-height: 1.55; }
.geo-feat-main p { font-size: var(--fs-body); line-height: 1.75; color: var(--geo-body); }
.geo-feat-tag {
    display: inline-block;
    margin-top: var(--sp-3);
    font-size: var(--fs-xs);
    font-weight: 600;
    color: var(--geo-brand-strong);
    background: var(--geo-tint);
    border: 1px solid var(--geo-brand-soft);
    padding: 2px var(--sp-2);
    border-radius: 999px;
}

/* 次卡：无边框、分隔线、更小字号 —— 与主卡形成真实层级差 */
.geo-feat-subs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--sp-6);
    margin-top: var(--sp-8);
    padding-top: var(--sp-6);
    border-top: 1px solid var(--geo-line);
}
.geo-feat-sub { background: none; border: 0; padding: 0; }
.geo-feat-sub .geo-feat-ico { display: inline-flex; color: var(--geo-brand); margin-bottom: var(--sp-2); }
.geo-feat-sub h3 { font-size: var(--fs-body); font-weight: 600; color: var(--geo-ink); margin-bottom: var(--sp-1); line-height: 1.6; }
.geo-feat-sub p { font-size: var(--fs-sm); line-height: 1.7; color: var(--geo-muted); }

/* =========================================================
   服务流程
   ========================================================= */
.geo-process { display: flex; align-items: stretch; gap: var(--sp-2); justify-content: center; flex-wrap: wrap; }
.geo-step {
    position: relative;
    flex: 1;
    min-width: 200px;
    background: #fff;
    border: 1px solid var(--geo-line);
    border-radius: var(--r-lg);
    padding: var(--sp-6) var(--sp-4) var(--sp-4);
    text-align: center;
    transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
.geo-step:hover { border-color: var(--geo-brand); box-shadow: var(--shadow-sm); }
.geo-step-num {
    position: absolute;
    top: var(--sp-3); right: var(--sp-3);
    font-size: var(--fs-sm);
    font-weight: 700;
    color: var(--geo-muted);
    opacity: .55;
    font-variant-numeric: tabular-nums;
}
.geo-step-ico {
    width: 44px; height: 44px;
    margin: 0 auto var(--sp-3);
    display: flex; align-items: center; justify-content: center;
    background: var(--geo-tint);
    color: var(--geo-brand-strong);
    border-radius: 50%;
}
.geo-step h3 { font-size: var(--fs-body); font-weight: 600; color: var(--geo-ink); margin-bottom: var(--sp-1); }
.geo-step p { font-size: var(--fs-sm); line-height: 1.7; color: var(--geo-muted); }
.geo-step-arrow { align-self: center; color: var(--geo-muted); opacity: .6; display: flex; }

/* =========================================================
   效果数据 + 案例
   ========================================================= */
.geo-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-4); margin-bottom: var(--sp-4); }
.geo-metric {
    text-align: center;
    background: #fff;
    border: 1px solid var(--geo-line);
    border-radius: var(--r-lg);
    padding: var(--sp-6) var(--sp-3);
}
.geo-metric-num {
    font-size: var(--fs-data);
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: var(--sp-1);
    color: var(--geo-brand-strong);
    font-variant-numeric: tabular-nums;
}
.geo-metric-label { font-size: var(--fs-sm); color: var(--geo-muted); }

.geo-case-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-6); }
.geo-case-card {
    background: #fff;
    border: 1px solid var(--geo-line);
    border-radius: var(--r-lg);
    padding: var(--sp-4);
    transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
.geo-case-card:hover { border-color: var(--geo-brand); box-shadow: var(--shadow-sm); }
.geo-case-type {
    display: inline-block;
    font-size: var(--fs-xs);
    font-weight: 600;
    color: var(--geo-brand-strong);
    background: var(--geo-tint);
    padding: 2px var(--sp-2);
    border-radius: 999px;
    margin-bottom: var(--sp-2);
}
.geo-case-card h3 { font-size: var(--fs-body); font-weight: 600; color: var(--geo-ink); margin-bottom: var(--sp-1); }
.geo-case-card p { font-size: var(--fs-sm); line-height: 1.7; color: var(--geo-muted); margin-bottom: var(--sp-3); font-variant-numeric: tabular-nums; }
.geo-case-bars { height: 6px; background: var(--geo-line); border-radius: 999px; overflow: hidden; }
.geo-case-bars span { display: block; height: 100%; border-radius: 999px; background: var(--geo-brand); }
.geo-cases-note { text-align: center; margin-top: var(--sp-6); font-size: var(--fs-sm); color: var(--geo-muted); }
.geo-cases-note a { color: var(--geo-brand-strong); font-weight: 600; }

/* =========================================================
   适合谁
   ========================================================= */
.geo-scene-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-6); }
.geo-scene-card {
    text-align: center;
    background: #fff;
    border: 1px solid var(--geo-line);
    border-radius: var(--r-lg);
    padding: var(--sp-6) var(--sp-4);
    transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
.geo-scene-card:hover { border-color: var(--geo-brand); box-shadow: var(--shadow-sm); }
.geo-scene-ico {
    width: 44px; height: 44px;
    margin: 0 auto var(--sp-3);
    display: flex; align-items: center; justify-content: center;
    background: var(--geo-tint);
    color: var(--geo-brand-strong);
    border-radius: 50%;
}
.geo-scene-card h3 { font-size: var(--fs-body); font-weight: 600; color: var(--geo-ink); margin-bottom: var(--sp-2); }
.geo-scene-card p { font-size: var(--fs-sm); line-height: 1.7; color: var(--geo-muted); }

/* =========================================================
   GEO 资讯
   ========================================================= */
.geo-news-grid { display: flex; flex-direction: column; gap: var(--sp-2); max-width: 900px; margin: 0 auto; }
.geo-news-card {
    display: flex;
    align-items: center;
    gap: var(--sp-4);
    background: #fff;
    border: 1px solid var(--geo-line);
    border-radius: var(--r-md);
    padding: var(--sp-3) var(--sp-4);
    transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
.geo-news-card:hover { border-color: var(--geo-brand); box-shadow: var(--shadow-sm); }
.geo-news-date {
    flex-shrink: 0;
    width: 52px; height: 52px;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    background: var(--geo-tint);
    border-radius: var(--r-md);
}
.geo-news-date b { font-size: 1.125rem; font-weight: 700; color: var(--geo-brand-strong); line-height: 1.1; font-variant-numeric: tabular-nums; }
.geo-news-date span { font-size: var(--fs-xs); color: var(--geo-muted); font-variant-numeric: tabular-nums; }
.geo-news-card h3 { font-size: var(--fs-body); font-weight: 600; color: var(--geo-ink); margin-bottom: var(--sp-1); transition: color var(--dur-fast) var(--ease-out); }
.geo-news-card:hover h3 { color: var(--geo-brand-strong); }
.geo-news-card p { font-size: var(--fs-sm); color: var(--geo-muted); }

/* =========================================================
   FAQ
   ========================================================= */
.geo-faq { max-width: 820px; margin: 0 auto; display: flex; flex-direction: column; gap: var(--sp-2); }
.geo-faq-item {
    background: #fff;
    border: 1px solid var(--geo-line);
    border-radius: var(--r-md);
    overflow: hidden;
    transition: border-color var(--dur-fast) var(--ease-out);
}
.geo-faq-item.open { border-color: var(--geo-brand); }
.geo-faq-q {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--sp-3);
    background: none;
    border: none;
    padding: var(--sp-4);
    font-family: inherit;
    font-size: var(--fs-body);
    font-weight: 600;
    color: var(--geo-ink);
    text-align: left;
    cursor: pointer;
}
.geo-faq-q:focus-visible { outline: 2px solid var(--geo-brand); outline-offset: -2px; }
.geo-faq-arrow { color: var(--geo-muted); transition: transform var(--dur-base) var(--ease-out); flex-shrink: 0; }
.geo-faq-item.open .geo-faq-arrow { transform: rotate(180deg); color: var(--geo-brand-strong); }
/* 展开：grid-template-rows 过渡，不动 max-height */
.geo-faq-a {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 280ms ease;
}
.geo-faq-item.open .geo-faq-a { grid-template-rows: 1fr; }
.geo-faq-a > p {
    overflow: hidden;
    padding: 0 var(--sp-4);
    font-size: var(--fs-sm);
    line-height: 1.75;
    color: var(--geo-body);
}
.geo-faq-item.open .geo-faq-a > p { padding-bottom: var(--sp-4); }

/* =========================================================
   联系 / CTA（浅色高对比，不使用大面积深色）
   ========================================================= */
.geo-contact {
    background: var(--geo-tint);
    border-top: 1px solid var(--geo-line);
    padding: var(--sp-24) 0;
    color: var(--geo-ink);
    position: relative;
    overflow: hidden;
}
.geo-contact-inner { display: grid; grid-template-columns: 1fr 1.05fr; gap: var(--sp-16); align-items: center; position: relative; }
.geo-contact-tag {
    display: inline-block;
    background: var(--geo-brand-soft);
    color: var(--geo-brand-strong);
    font-size: var(--fs-xs); font-weight: 600;
    letter-spacing: .04em;
    padding: var(--sp-1) var(--sp-3);
    border-radius: 999px;
    margin-bottom: var(--sp-3);
}
.geo-contact-left h2 { font-size: var(--fs-h2); font-weight: 700; line-height: 1.4; margin-bottom: var(--sp-3); }
.geo-contact-left > p { font-size: var(--fs-body); line-height: 1.75; color: var(--geo-body); margin-bottom: var(--sp-6); }
.geo-contact-left > p b { color: var(--geo-brand-strong); font-weight: 600; }
.geo-contact-list { display: flex; flex-direction: column; gap: var(--sp-3); }
.geo-contact-list li { display: flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-body); color: var(--geo-body); }
.geo-contact-list li .geo-icon { color: var(--geo-brand); }
.geo-contact-list li b { color: var(--geo-ink); font-weight: 600; font-variant-numeric: tabular-nums; }

.geo-contact-form-card {
    background: #fff;
    border: 1px solid var(--geo-line);
    border-radius: var(--r-lg);
    padding: var(--sp-8) var(--sp-6) var(--sp-6);
    box-shadow: var(--shadow-md);
}
.geo-form { display: flex; flex-direction: column; gap: var(--sp-4); }
.geo-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-3); }
.geo-form label { display: block; font-size: var(--fs-sm); font-weight: 600; color: var(--geo-ink); margin-bottom: var(--sp-1); }
.geo-form input,
.geo-form select,
.geo-form textarea {
    width: 100%;
    font-family: inherit;
    font-size: var(--fs-sm);
    color: var(--geo-ink);
    background: var(--geo-surface-soft);
    border: 1px solid var(--geo-line);
    border-radius: var(--r-md);
    padding: var(--sp-3);
    transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);
}
.geo-form textarea { resize: vertical; min-height: 84px; }
.geo-form input:focus,
.geo-form select:focus,
.geo-form textarea:focus {
    outline: none;
    background: #fff;
    border-color: var(--geo-brand);
    box-shadow: 0 0 0 3px rgba(124, 58, 237, .12);
}
.geo-form-submit { width: 100%; margin-top: var(--sp-1); cursor: pointer; }
.geo-form-note { font-size: var(--fs-xs); color: var(--geo-muted); text-align: center; }

.geo-form-success { text-align: center; padding: var(--sp-4) var(--sp-2); }
.geo-form-success-icon {
    width: 48px; height: 48px;
    margin: 0 auto var(--sp-3);
    display: flex; align-items: center; justify-content: center;
    background: rgba(16, 185, 129, .12);
    color: var(--geo-success);
    border-radius: 50%;
}
.geo-form-success h3 { font-size: var(--fs-h3); font-weight: 600; color: var(--geo-ink); margin-bottom: var(--sp-2); }
.geo-form-success p { font-size: var(--fs-sm); color: var(--geo-muted); line-height: 1.75; }

/* =========================================================
   响应式
   ========================================================= */
@media (max-width: 1200px) {
    .geo-hero-inner { gap: var(--sp-12); }
    .geo-contact-inner { gap: var(--sp-12); }
}

@media (max-width: 1024px) {
    .geo-feat-grid { grid-template-columns: repeat(2, 1fr); }
    .geo-feat-subs { grid-template-columns: repeat(2, 1fr); }
    .geo-scene-grid { grid-template-columns: repeat(2, 1fr); }
    .geo-case-grid { grid-template-columns: repeat(2, 1fr); }
    .geo-metrics { grid-template-columns: repeat(2, 1fr); }
    .geo-hero-inner { grid-template-columns: 1fr; }
    .geo-hero-desc { max-width: none; }
}

@media (max-width: 900px) {
    .geo-contact-inner { grid-template-columns: 1fr; }
    .geo-compare { grid-template-columns: 1fr; }
    .geo-compare-vs { margin: 0 auto; }
}

@media (max-width: 768px) {
    .geo-section { padding: var(--sp-16) 0; }
    .geo-hero { padding: 104px 0 0; }
    .geo-hero-stats-inner { grid-template-columns: repeat(2, 1fr); gap: var(--sp-3); }
    .geo-process { flex-direction: column; }
    .geo-step-arrow { justify-content: center; transform: rotate(90deg); }
    .geo-contact { padding: var(--sp-16) 0; }
    .geo-contact-form-card { padding: var(--sp-6) var(--sp-4) var(--sp-4); }
}

@media (max-width: 560px) {
    .geo-feat-grid { grid-template-columns: 1fr; }
    .geo-feat-subs { grid-template-columns: 1fr; }
    .geo-scene-grid { grid-template-columns: 1fr; }
    .geo-case-grid { grid-template-columns: 1fr; }
    .geo-metrics { grid-template-columns: 1fr; }
    .geo-form-row { grid-template-columns: 1fr; }
    .geo-hero-actions .geo-btn { width: 100%; }
}

/* =========================================================
   动效降级
   ========================================================= */
@media (prefers-reduced-motion: reduce) {
    [data-animate] { opacity: 1; transform: none; transition: none; }
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}
