Files
BigStickNewOfficialWebsite-V2/pages/services.vue
T
2026-07-21 11:09:17 +08:00

1948 lines
48 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<script setup>
import { gsap } from 'gsap'
import SiteHeader from '~/components/site/SiteHeader.vue'
import SiteFooter from '~/components/site/SiteFooter.vue'
const pageRoot = ref(null)
const { openConsultation } = useConsultation()
let animationContext
useHead({
title: '营销增长服务|大马棒·云途全域 GEO',
meta: [
{
name: 'description',
content:
'从品牌曝光、可信内容建设到精准线索承接,大马棒·云途全域 GEO 帮助企业建立可持续的 AI 搜索增长链路。'
}
]
})
const journey = [
{ number: '01', title: '被看见', text: '用户向 AI 提问时,品牌能够进入相关回答与推荐范围。' },
{ number: '02', title: '被信任', text: '权威媒体、真人内容与真实业务信息共同形成可信证据。' },
{ number: '03', title: '被选择', text: '高意向问题被内容承接,并顺畅进入咨询与成交链路。' }
]
const ringModels = [
{
title: '声量资产环',
image: '/images/lanhu/slices/home-group80-group83-image11@2x.png',
items: ['真人内容生产', '全域媒体分发', 'AI 信任构建', '品牌资产沉淀']
},
{
title: '获客转化环',
image: '/images/lanhu/slices/home-group86-group87-image12@2x.png',
items: ['精准意图触达', '内容种草引导', '线索留资转化', '数据优化迭代']
}
]
const serviceVisualImages = [
'/images/services/brand-exposure-visual.png',
'/images/services/lead-conversion-visual.png',
'/images/services/omnichannel-visual.png'
]
const services = [
{
id: 'brand-exposure',
index: '01',
eyebrow: 'Brand visibility',
title: '品牌曝光,不是多发几篇内容',
lead: '真正有效的曝光,是让用户在提问、比较和验证的每一个环节,都能看到一致、可信的品牌信息。',
pain: '品牌公开信息分散、AI 认知不完整,用户搜索时只看到竞品或过时内容。',
actions: [
'梳理品牌核心事实与高频用户问题',
'搭建真人内容与权威信源矩阵',
'围绕主流 AI 平台持续优化可见性'
],
outputs: ['品牌 AI 认知基线报告', '内容主题与信源分发清单', '品牌提及与引用监测报告'],
metric: '5 万',
metricLabel: '真人内容生产网络',
visualTitle: '可信声量生成器',
visualItems: ['真实业务信息', '真人体验内容', '权威媒体信源', 'AI 搜索引用']
},
{
id: 'lead-conversion',
index: '02',
eyebrow: 'Lead conversion',
title: '精准获客,把高意向问题接住',
lead: '我们不只看曝光量,更关心哪些问题带来访问、咨询和有效线索,让内容真正进入业务链路。',
pain: '内容有阅读却没有后续承接,用户看完之后找不到合适的咨询入口。',
actions: [
'按决策阶段搭建高意向问题库',
'设计从内容到官网与私域的承接路径',
'持续复盘线索质量并调整内容重点'
],
outputs: ['全旅程用户问题库', '转化内容与落地页建议', '线索来源及质量复盘'],
metric: '65%',
metricLabel: '客户转化链路效率平均提升',
visualTitle: '意图转化路径',
visualItems: ['用户提问', '可信回答', '品牌比较', '咨询留资']
},
{
id: 'omnichannel',
index: '03',
eyebrow: 'Omnichannel growth',
title: '全域营销,让曝光和获客不再断层',
lead: '从纯曝光、内容资产沉淀到精准获客转化,我们用同一套数据目标串起媒体、内容、官网和咨询入口。',
pain: '不同供应商各做一段,内容、投放和销售数据无法对齐,预算去向与增长结果说不清。',
actions: [
'统一品牌声量与获客目标',
'打通内容生产、媒体发布和线索承接',
'按月复盘并动态调整资源配比'
],
outputs: ['全域增长策略地图', '跨平台内容资产库', '曝光到咨询全链路报告'],
metric: '5000+',
metricLabel: '权威媒体资源矩阵',
visualTitle: '全域协同网络',
visualItems: ['媒体曝光', '内容资产', '搜索信任', '业务转化']
}
]
const processSteps = [
['需求诊断', '一对一沟通,分析品牌现状、AI 可见性与增长痛点。'],
['方案定制', '明确 GEO 策略、交付节点、内容重点与预期指标。'],
['内容落地', '真人内容生产与媒体矩阵分发,全流程同步进度。'],
['数据优化', '定期监测品牌提及、引用来源、流量与线索质量。'],
['资产沉淀', '交付可复用内容资产与增长报告,形成长期积累。']
]
const industries = [
{
name: '企业服务',
text: '在长决策链中提前建立专业信任,进入客户比选名单。',
stat: 'AI 曝光 +320%'
},
{
name: '教育培训',
text: '覆盖择校、课程比较与口碑验证,降低家长决策顾虑。',
stat: '线索成本 -45%'
},
{
name: '本地生活',
text: '占住同城搜索与到店决策入口,缩短从看到到进店。',
stat: '到店咨询 +170%'
},
{
name: '医疗健康',
text: '通过合规科普与权威形象建设,沉淀长期专业信任。',
stat: '合规策略定制'
},
{ name: '电商零售', text: '串起种草、主动搜索、店铺承接和直播转化。', stat: '自然流量占比 60%' }
]
function requestDiagnosis(source, extra = {}) {
openConsultation({
title: extra.title || '预约免费 GEO 诊断',
source,
industry: extra.industry || ''
})
}
function scrollToServices() {
document.getElementById('service-system')?.scrollIntoView({ behavior: 'smooth', block: 'start' })
}
onMounted(async () => {
if (window.matchMedia('(prefers-reduced-motion: reduce)').matches || !pageRoot.value) return
await nextTick()
animationContext = gsap.context(() => {
gsap.to('.hero-orbit-one', { rotation: 360, duration: 28, repeat: -1, ease: 'none' })
gsap.to('.hero-orbit-two', { rotation: -360, duration: 36, repeat: -1, ease: 'none' })
}, pageRoot.value)
})
onBeforeUnmount(() => animationContext?.revert())
</script>
<template>
<div ref="pageRoot" class="services-page">
<a class="skip-link" href="#main-content">跳到主要内容</a>
<SiteHeader />
<main id="main-content">
<section class="services-hero">
<div class="hero-mesh" aria-hidden="true"></div>
<div class="page-width services-hero-grid">
<div class="services-hero-copy">
<p class="page-eyebrow">大马棒 · 云途全域 GEO</p>
<h1>从被看见被信任<br />到最终<span>被选择</span></h1>
<p class="hero-description">
围绕真实用户提问系统建设品牌内容可信信源与转化承接让每一次 AI
搜索曝光都能沉淀为长期增长资产
</p>
<div class="hero-badges" aria-label="服务核心能力">
<span>5 万真人内容网络</span><span>5000+ 权威媒体</span><span>全链路效果复盘</span>
</div>
<div class="hero-actions">
<button
class="primary-button"
type="button"
@click="requestDiagnosis('营销增长服务页 Hero')"
>
免费获取诊断 <AppIcon name="arrow-right" />
</button>
<button class="hero-text-link" type="button" @click="scrollToServices">
了解服务体系 <AppIcon name="bottom" />
</button>
</div>
</div>
<div class="services-hero-visual" aria-label="GEO 品牌声量与获客转化协同示意图">
<div class="hero-orbit hero-orbit-one"><i></i><i></i><i></i></div>
<div class="hero-orbit hero-orbit-two"><i></i><i></i><i></i><i></i></div>
<div class="hero-core">
<small>GEO</small><strong>品效双环</strong><span>持续增长</span>
</div>
<!-- <div class="hero-data hero-data-top"><small>品牌提及</small><strong>+217%</strong></div>-->
<!-- <div class="hero-data hero-data-bottom">-->
<!-- <small>转化效率</small><strong>+64%</strong>-->
<!-- </div>-->
<!-- <div class="hero-visual-caption"><span></span> AI 搜索增长系统正在运行</div>-->
</div>
</div>
</section>
<section class="decision-section">
<div class="page-width decision-grid">
<header class="section-intro services-reveal">
<p class="section-kicker">决策路径正在改变</p>
<h2>用户先向 AI 提问<br />再决定相信谁</h2>
<p>
企业要解决的不再只是有没有排名”,而是品牌能否进入回答形成可信证据并承接下一步行动
</p>
</header>
<div class="decision-journey services-reveal">
<article v-for="(item, index) in journey" :key="item.title">
<div class="journey-number">{{ item.number }}</div>
<div>
<h3>{{ item.title }}</h3>
<p>{{ item.text }}</p>
</div>
<span v-if="index < journey.length - 1" aria-hidden="true"></span>
</article>
</div>
</div>
</section>
<section class="model-deep-section">
<div class="page-width">
<header class="model-heading services-reveal">
<p class="section-kicker section-center">双环增长模型</p>
<h2>一边沉淀品牌声量一边推动精准获客</h2>
<p>两个环路共享同一套业务事实内容资产与数据目标让品牌建设和转化结果互相增强</p>
</header>
<div class="model-deep-grid services-reveal">
<div class="ring-stage">
<div
v-for="(ring, index) in ringModels"
:key="ring.title"
class="model-ring"
:class="`ring-${index + 1}`"
>
<img :src="ring.image" :alt="`${ring.title}示意图`" />
<div class="ring-copy">
<small>0{{ index + 1 }}</small
><strong>{{ ring.title }}</strong>
</div>
</div>
<div class="ring-connector"><span>数据</span><span>协同</span></div>
</div>
<div class="model-explanation">
<article v-for="(ring, index) in ringModels" :key="`copy-${ring.title}`">
<header>
<span>0{{ index + 1 }}</span>
<h3>{{ ring.title }}</h3>
</header>
<p>
{{
index === 0
? '把分散的品牌信息沉淀为真实、稳定、可被 AI 引用的数字信任资产。'
: '把高意向搜索场景与官网、私域和销售承接连接起来,持续优化线索质量。'
}}
</p>
<ul>
<li v-for="item in ring.items" :key="item">{{ item }}</li>
</ul>
</article>
<button
class="primary-button small"
type="button"
@click="requestDiagnosis('双环增长模型板块')"
>
评估我的增长链路 <AppIcon name="arrow-right" />
</button>
</div>
</div>
</div>
</section>
<section id="service-system" class="service-system-section">
<div class="page-width">
<header class="service-system-heading services-reveal">
<div>
<p class="section-kicker section-center">服务体系</p>
<h2>三类能力服务同一个增长目标</h2>
</div>
<p>
不把服务拆成互不相干的资源采购而是按照企业当前最急需解决的问题组合成可追踪的增长路径
</p>
</header>
<div class="service-stories">
<article
v-for="(service, serviceIndex) in services"
:id="service.id"
:key="service.id"
class="service-story services-reveal"
:class="{ reverse: serviceIndex % 2 === 1 }"
>
<div class="service-story-copy">
<p class="service-index">
{{ service.index }} <span>{{ service.eyebrow }}</span>
</p>
<h3>{{ service.title }}</h3>
<p class="service-lead">{{ service.lead }}</p>
<div class="pain-note">
<strong>常见问题</strong>
<p>{{ service.pain }}</p>
</div>
<div class="service-details">
<div>
<strong>我们怎么做</strong>
<ul>
<li v-for="item in service.actions" :key="item">{{ item }}</li>
</ul>
</div>
<div>
<strong>您会获得</strong>
<ul>
<li v-for="item in service.outputs" :key="item">{{ item }}</li>
</ul>
</div>
</div>
<button
type="button"
class="service-action"
@click="
requestDiagnosis(`${service.title}板块`, {
title: `咨询${service.title.split('')[0]}方案`
})
"
>
咨询这项服务 <AppIcon name="arrow-right" />
</button>
</div>
<div class="service-story-visual" :class="`visual-${serviceIndex + 1}`">
<div class="visual-topline">
<span>{{ service.visualTitle }}</span
><small>YUNTU GEO SYSTEM</small>
</div>
<img
v-if="serviceVisualImages[serviceIndex]"
class="visual-network-image"
:src="serviceVisualImages[serviceIndex]"
:alt="`${service.title}示意图`"
/>
<div v-else class="visual-network">
<div class="network-core">
<small>{{ service.index }}</small
><strong>{{ service.title.split('')[0] }}</strong>
</div>
<span
v-for="(item, itemIndex) in service.visualItems"
:key="item"
:class="`network-item item-${itemIndex + 1}`"
>{{ item }}</span
>
<i v-for="line in 4" :key="line" :class="`network-line line-${line}`"></i>
</div>
<div
v-if="serviceIndex === 0 || !serviceVisualImages[serviceIndex]"
class="visual-metric"
>
<strong>{{ service.metric }}</strong
><span>{{ service.metricLabel }}</span>
</div>
</div>
</article>
</div>
</div>
</section>
<section class="process-section">
<div class="process-background" aria-hidden="true"></div>
<div class="page-width">
<header class="process-heading services-reveal">
<p class="section-kicker section-center">标准化交付</p>
<h2>五步推进每一步都有依据</h2>
<p>从第一次沟通到内容资产交付节点透明数据可查方向可调整</p>
</header>
<div class="process-timeline services-reveal">
<article v-for="(step, index) in processSteps" :key="step[0]">
<div class="step-marker">
<span>0{{ index + 1 }}</span>
</div>
<h3>{{ step[0] }}</h3>
<p>{{ step[1] }}</p>
</article>
</div>
</div>
</section>
<section class="service-industries">
<div class="page-width industries-layout">
<header class="section-intro services-reveal">
<p class="section-kicker">行业适配</p>
<h2>行业不同用户相信你的理由也不同</h2>
<p>我们根据行业决策周期合规要求用户问题和转化方式重新组合策略不复制通用模板</p>
<button
class="primary-button small"
type="button"
@click="requestDiagnosis('行业适配板块')"
>
获取行业建议 <AppIcon name="arrow-right" />
</button>
</header>
<div class="industry-list services-reveal">
<article v-for="(industry, index) in industries" :key="industry.name">
<span>0{{ index + 1 }}</span>
<div>
<h3>{{ industry.name }}</h3>
<p>{{ industry.text }}</p>
</div>
<strong>{{ industry.stat }}</strong>
<button
type="button"
:aria-label="`获取${industry.name}行业方案`"
@click="
requestDiagnosis(`${industry.name}行业入口`, {
title: `获取${industry.name}行业方案`,
industry: industry.name
})
"
>
</button>
</article>
</div>
</div>
</section>
<section class="proof-section">
<div class="page-width proof-grid services-reveal">
<article class="featured-proof">
<div class="proof-tag">教育培训行业 · GEO 全链路案例</div>
<h2>420 个真实问题5 个月进入 AI 推荐列表</h2>
<p class="add-white">
围绕家长找方法选机构比课程看口碑做决策的完整路径搭建问题库可信内容与持续监测体系
</p>
<div class="proof-data">
<div><strong>11% 88%</strong><span>核心问题覆盖率</span></div>
<div><strong>+215%</strong><span>官网 AI 来源流量</span></div>
<div><strong>+190%</strong><span>精准学员咨询量</span></div>
</div>
</article>
<aside class="proof-summary">
<p class="section-kicker">真实结果</p>
<h3>不是一次流量高峰<br />而是一套持续积累的内容资产</h3>
<ul>
<li>210+ 篇合规内容</li>
<li>覆盖 15 类渠道</li>
<li>线索有效率提升至约 65%</li>
</ul>
<button
class="service-action"
type="button"
@click="
requestDiagnosis('代表案例板块', {
title: '获取同类行业增长方案',
industry: '教育培训'
})
"
>
获取同类方案 <AppIcon name="arrow-right" />
</button>
</aside>
</div>
</section>
<section class="services-cta">
<div class="cta-wave" aria-hidden="true"></div>
<div class="page-width services-cta-content services-reveal">
<p class="section-center">从一次真实诊断开始</p>
<h2>你的品牌应该先解决曝光问题<br />还是转化问题</h2>
<span>聊聊行业现状和目标我们会给出第一步建议</span>
<button
class="primary-button"
type="button"
@click="requestDiagnosis('营销增长服务页底部 CTA')"
>
预约免费 GEO 诊断 <AppIcon name="arrow-right" />
</button>
</div>
</section>
</main>
<SiteFooter />
</div>
</template>
<style scoped>
.services-page {
--service-blue: #207bf2;
--service-blue-strong: #176fd8;
--service-cyan: #58b9df;
--service-ink: #414141;
--service-copy: #5d7087;
--service-muted: #7f91a6;
--service-line: rgba(74, 134, 204, 0.18);
--service-surface: #f4f8fc;
overflow: hidden;
color: var(--service-ink);
background: #fff;
}
.services-page .primary-button {
color: #fff;
background: linear-gradient(105deg, var(--service-blue-strong), #2694e9);
box-shadow: 0 10px 24px rgba(32, 123, 242, 0.2);
}
.skip-link {
position: fixed;
z-index: 100;
top: 10px;
left: 10px;
padding: 10px 14px;
color: #fff;
border-radius: 6px;
background: #1f70df;
transform: translateY(-150%);
transition: transform 0.2s;
}
.skip-link:focus {
transform: translateY(0);
}
.page-eyebrow,
.section-kicker {
margin: 0;
color: var(--service-blue);
font-size: 13px;
font-weight: 700;
letter-spacing: 0.14em;
}
.section-center {
justify-content: center;
margin: 0 auto !important;
}
.services-hero {
position: relative;
min-height: 650px;
display: grid;
align-items: center;
isolation: isolate;
background: #f3f8ff;
}
.hero-mesh {
position: absolute;
z-index: -1;
inset: 0;
background:
radial-gradient(circle at 72% 34%, rgba(78, 158, 255, 0.25), transparent 25%),
radial-gradient(circle at 12% 82%, rgba(104, 205, 234, 0.1), transparent 28%),
linear-gradient(108deg, #f7faff 0%, #eef5ff 52%, #e7f1ff 100%);
}
.hero-mesh::after {
position: absolute;
inset: 0;
content: '';
opacity: 0.2;
background-image:
linear-gradient(rgba(59, 122, 204, 0.08) 1px, transparent 1px),
linear-gradient(90deg, rgba(59, 122, 204, 0.08) 1px, transparent 1px);
background-size: 56px 56px;
mask-image: linear-gradient(90deg, transparent, #000);
}
.services-hero-grid {
min-height: 650px;
display: grid;
grid-template-columns: 0.92fr 1.08fr;
align-items: center;
gap: 55px;
padding-top: 42px;
padding-bottom: 52px;
}
.services-hero-copy {
position: relative;
z-index: 2;
}
.services-hero-copy h1 {
margin: 15px 0 0;
color: var(--service-ink);
font-size: 62px;
font-weight: 700;
letter-spacing: 0;
line-height: 1.2;
text-wrap: balance;
}
.services-hero-copy h1 span {
color: #1878ef;
}
.hero-description {
max-width: 610px;
margin: 24px 0 0;
color: var(--service-copy);
font-size: 17px;
line-height: 1.8;
text-wrap: pretty;
}
.hero-badges {
display: flex;
flex-wrap: wrap;
gap: 10px 18px;
margin-top: 27px;
color: var(--service-copy);
font-size: 14px;
line-height: 1.6;
}
.hero-badges span {
position: relative;
padding-left: 17px;
}
.hero-badges span::before {
position: absolute;
top: 6px;
left: 0;
width: 7px;
height: 7px;
content: '';
border: 2px solid #2d8bf6;
border-radius: 50%;
}
.hero-actions {
display: flex;
align-items: center;
gap: 25px;
margin-top: 33px;
}
.hero-text-link {
color: var(--service-copy);
background: transparent;
font-size: 15px;
font-weight: 600;
}
.hero-text-link span {
display: inline-grid;
width: 28px;
height: 28px;
margin-left: 8px;
place-items: center;
border: 1px solid #bbcee4;
border-radius: 50%;
color: #237df0;
transition:
transform 0.22s,
background 0.22s;
}
.hero-text-link:hover span {
background: #fff;
transform: translateY(3px);
}
.services-hero-visual {
position: relative;
width: min(610px, 100%);
aspect-ratio: 1.12;
justify-self: end;
}
.services-hero-visual::before {
position: absolute;
inset: 9% 3% 2%;
content: '';
border-radius: 50%;
background:
radial-gradient(
circle,
rgba(255, 255, 255, 0.96) 0 24%,
rgba(145, 201, 255, 0.23) 25% 44%,
transparent 45%
),
url('/images/lanhu/slices/hero-geo-visual@2x.png') 72% 45% / 170% auto no-repeat;
filter: drop-shadow(0 30px 45px rgba(52, 120, 207, 0.18));
mask-image: radial-gradient(ellipse, #000 48%, transparent 73%);
}
.hero-core {
position: absolute;
z-index: 4;
top: 50%;
left: 50%;
width: 156px;
height: 156px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
border: 0;
border-radius: 50%;
color: #fff;
background: linear-gradient(145deg, #176fd8, #1ca9de);
box-shadow:
0 22px 45px rgba(33, 116, 224, 0.28),
inset 0 1px 5px rgba(255, 255, 255, 0.7);
transform: translate(-50%, -50%);
}
.hero-core small {
font-size: 12px;
letter-spacing: 0.18em;
opacity: 0.85;
}
.hero-core strong {
margin-top: 7px;
color: #fff;
font-size: 20px;
}
.hero-core span {
margin-top: 4px;
font-size: 11px;
opacity: 0.8;
}
.hero-orbit {
position: absolute;
z-index: 3;
top: 50%;
left: 50%;
border: 0;
border-radius: 50%;
transform: translate(-50%, -50%);
}
.hero-orbit-one {
width: 360px;
height: 360px;
}
.hero-orbit-two {
width: 490px;
height: 490px;
opacity: 0.72;
}
.hero-orbit i {
position: absolute;
width: 13px;
height: 13px;
border: 0;
border-radius: 50%;
background: #2383f4;
box-shadow: 0 5px 15px rgba(32, 125, 237, 0.35);
}
.hero-orbit i:nth-child(1) {
top: -7px;
left: 50%;
}
.hero-orbit i:nth-child(2) {
right: 10%;
bottom: 18%;
background: #52c6e7;
}
.hero-orbit i:nth-child(3) {
bottom: 10%;
left: 15%;
background: var(--service-blue-strong);
}
.hero-orbit i:nth-child(4) {
top: 18%;
left: 2%;
background: #7bc6f8;
}
.hero-data {
position: absolute;
z-index: 5;
min-width: 135px;
padding: 14px 17px;
border: 1px solid rgba(255, 255, 255, 0.86);
border-radius: 10px;
background: rgba(255, 255, 255, 0.76);
box-shadow:
0 14px 35px rgba(50, 111, 187, 0.13),
inset 0 1px 0 #fff;
backdrop-filter: blur(12px);
}
.hero-data small {
display: block;
color: var(--service-muted);
font-size: 12px;
}
.hero-data strong {
display: block;
margin-top: 4px;
color: #207df0;
font-size: 25px;
font-variant-numeric: tabular-nums;
}
.hero-data-top {
top: 12%;
right: 4%;
}
.hero-data-bottom {
bottom: 14%;
left: 1%;
}
.hero-visual-caption {
position: absolute;
right: 8%;
bottom: 2%;
display: flex;
align-items: center;
gap: 8px;
color: var(--service-muted);
font-size: 12px;
}
.hero-visual-caption span {
width: 7px;
height: 7px;
border-radius: 50%;
background: #29a3ed;
box-shadow: 0 0 0 5px rgba(41, 163, 237, 0.12);
}
.decision-section {
padding: 110px 0 126px;
}
.decision-grid {
display: grid;
grid-template-columns: 0.82fr 1.35fr;
gap: 80px;
align-items: center;
}
.section-intro h2,
.model-heading h2,
.service-system-heading h2,
.process-heading h2 {
margin: 14px 0 0;
color: var(--service-ink);
font-size: 44px;
font-weight: 700;
letter-spacing: 0;
line-height: 1.25;
text-wrap: balance;
}
.section-intro > p:last-of-type,
.model-heading > p:last-child,
.service-system-heading > p,
.process-heading > p:last-child {
max-width: 600px;
margin: 20px 0 0;
color: var(--service-copy);
font-size: 16px;
line-height: 1.8;
}
.decision-journey {
display: grid;
}
.decision-journey article {
position: relative;
min-height: 128px;
display: grid;
grid-template-columns: 78px 1fr 28px;
align-items: center;
gap: 23px;
padding: 22px 0;
border-bottom: 1px solid var(--service-line);
}
.decision-journey article:first-child {
border-top: 1px solid var(--service-line);
}
.journey-number {
color: #a4b8ce;
font-size: 13px;
font-weight: 700;
letter-spacing: 0.12em;
}
.decision-journey h3 {
margin: 0;
color: var(--service-ink);
font-size: 25px;
}
.decision-journey p {
max-width: 500px;
margin: 8px 0 0;
color: var(--service-copy);
font-size: 15px;
line-height: 1.72;
}
.decision-journey article > span {
color: #62a2ef;
font-size: 22px;
}
.model-deep-section {
position: relative;
padding: 110px 0 128px;
background:
radial-gradient(circle at 10% 90%, rgba(105, 201, 238, 0.16), transparent 26%), #edf7ff;
}
.model-heading {
max-width: 980px;
margin: 0 auto;
text-align: center;
}
.model-heading h2,
.process-heading h2,
.service-system-heading h2 {
width: 100%;
text-align: center !important;
white-space: nowrap;
}
.model-heading > p:last-child {
max-width: 860px;
margin-right: auto;
margin-left: auto;
text-align: center;
text-wrap: balance;
}
.model-deep-grid {
display: grid;
grid-template-columns: 1.05fr 0.95fr;
gap: 75px;
align-items: center;
margin-top: 72px;
}
.ring-stage {
position: relative;
min-height: 510px;
}
.model-ring {
position: absolute;
width: 345px;
aspect-ratio: 1;
overflow: hidden;
border: 0;
outline: 0;
box-shadow: none;
}
.model-ring img {
display: block;
width: calc(100% + 4px);
max-width: none;
margin: -2px;
border: 0;
outline: 0;
filter: drop-shadow(0 25px 32px rgba(58, 123, 205, 0.12));
box-shadow: none;
}
.ring-1 {
top: 10px;
left: 0;
}
.ring-2 {
right: 0;
bottom: 0;
}
.ring-copy {
position: absolute;
top: 50%;
left: 50%;
display: grid;
justify-items: center;
min-width: 106px;
padding: 10px 14px 11px;
border-radius: 999px;
background: rgba(255, 255, 255, 0.9);
box-shadow: 0 10px 24px rgba(42, 100, 180, 0.14);
transform: translate(-50%, -50%);
backdrop-filter: blur(10px);
}
.ring-copy small {
color: #6e8eb4;
font-size: 11px;
}
.ring-copy strong {
margin-top: 5px;
color: #135fbd;
font-size: 17px;
font-weight: 800;
}
.ring-connector {
position: absolute;
z-index: 3;
top: 45%;
left: 50%;
width: 92px;
height: 92px;
display: grid;
place-content: center;
border: 7px solid rgba(255, 255, 255, 0.84);
border-radius: 50%;
color: #fff;
background: linear-gradient(145deg, #448ff2, #43b9e9);
box-shadow: 0 16px 32px rgba(44, 130, 224, 0.22);
transform: translate(-50%, -50%);
font-size: 11px;
text-align: center;
}
.model-explanation {
display: grid;
gap: 26px;
}
.model-explanation article {
padding: 0 0 30px;
border-bottom: 1px solid var(--service-line);
}
.model-explanation header {
display: flex;
align-items: center;
gap: 13px;
}
.model-explanation header span {
color: #79a2d2;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.12em;
}
.model-explanation h3 {
margin: 0;
color: var(--service-ink);
font-size: 24px;
}
.model-explanation p {
margin: 13px 0 15px;
color: var(--service-copy);
font-size: 15px;
line-height: 1.75;
}
.model-explanation ul {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin: 0;
padding: 0;
list-style: none;
}
.model-explanation li {
padding: 8px 12px;
border-radius: 5px;
color: #496b91;
background: rgba(255, 255, 255, 0.7);
font-size: 13px;
}
.service-system-section {
padding: 116px 0 134px;
}
.service-system-heading {
max-width: 980px;
display: flex;
flex-direction: column;
align-items: center;
margin: 0 auto;
text-align: center;
}
.service-system-heading > div {
width: 100%;
}
.service-system-heading .section-kicker {
justify-content: center;
}
.service-system-heading > p {
max-width: 860px;
margin: 20px auto 0;
text-align: center;
text-wrap: balance;
}
.service-stories {
display: grid;
gap: 78px;
margin-top: 72px;
}
.service-story {
display: grid;
grid-template-columns: 0.93fr 1.07fr;
align-items: stretch;
gap: 68px;
padding: 52px 0 64px;
border-top: 1px solid var(--service-line);
}
.service-story.reverse .service-story-copy {
order: 2;
}
.service-story.reverse .service-story-visual {
order: 1;
}
.service-index {
margin: 0;
color: #87a3c3;
font-size: 12px;
font-weight: 700;
letter-spacing: 0.12em;
}
.service-index span {
font-size: 18px;
margin-left: 12px;
color: #2c80ed;
}
.service-story h3 {
max-width: 630px;
margin: 18px 0 0;
color: var(--service-ink);
font-size: 40px;
font-weight: 700;
letter-spacing: 0;
line-height: 1.25;
}
.service-lead {
margin: 19px 0 0;
color: var(--service-copy);
font-size: 16px;
line-height: 1.82;
text-wrap: balance;
}
.pain-note {
margin-top: 25px;
padding: 20px 24px;
border-left: 3px solid #3a8ef3;
background: var(--service-surface);
}
.pain-note strong {
color: #3d6faa;
font-size: 13px;
}
.pain-note p {
margin: 6px 0 0;
color: var(--service-copy);
font-size: 15px;
line-height: 1.72;
}
.service-details {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 30px;
margin-top: 30px;
}
.service-details strong {
color: var(--service-ink);
font-size: 14px;
}
.service-details ul {
display: grid;
gap: 11px;
margin: 14px 0 0;
padding: 0;
list-style: none;
}
.service-details li {
position: relative;
padding-left: 14px;
color: var(--service-copy) !important;
font-size: 14px !important;
line-height: 1.65 !important;
}
.service-details li::before {
position: absolute;
top: 7px;
left: 0;
width: 5px;
height: 5px;
content: '';
border-radius: 50%;
background: #4b97ef;
}
.service-action {
min-height: 48px;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 9px;
margin-top: 27px;
padding: 0 24px !important;
border: 0;
border-radius: 999px;
color: #fff;
background: linear-gradient(100deg, #3158ff, #12aef5);
box-shadow: 0 12px 24px rgba(25, 106, 255, 0.2);
font-size: 14px;
font-weight: 600;
line-height: 1;
white-space: nowrap;
}
.service-action :deep(.app-icon) {
flex: 0 0 auto;
font-size: 1.05em;
transition: transform 0.2s;
}
.service-action:hover :deep(.app-icon) {
transform: translateX(3px);
}
.service-story-visual {
position: relative;
min-height: 520px;
overflow: hidden;
border: 1px solid rgba(255, 255, 255, 0.8);
border-radius: 8px;
background:
radial-gradient(circle at 70% 25%, rgba(84, 164, 255, 0.28), transparent 24%),
linear-gradient(145deg, #f1f8ff, #dfeeff);
box-shadow:
0 28px 60px rgba(62, 126, 204, 0.13),
inset 0 1px 0 #fff;
}
.visual-2 {
background:
radial-gradient(circle at 25% 70%, rgba(87, 190, 231, 0.27), transparent 25%),
linear-gradient(145deg, #e9f7ff, #e5edff);
}
.visual-3 {
background:
radial-gradient(circle at 75% 70%, rgba(97, 139, 241, 0.25), transparent 25%),
linear-gradient(145deg, #f4f8ff, #dcecff);
}
.visual-topline {
position: relative;
z-index: 2;
display: flex;
justify-content: space-between;
padding: 24px 27px;
color: #496b91;
font-size: 13px;
}
.visual-topline small {
color: var(--service-muted);
font-size: 11px;
letter-spacing: 0.12em;
}
.visual-network {
position: absolute;
top: 54%;
left: 50%;
width: 390px;
height: 340px;
transform: translate(-50%, -50%);
}
.visual-network-image {
position: absolute;
z-index: 1;
top: 54%;
left: 50%;
width: min(620px, 108%);
height: min(500px, 90%);
max-width: none;
object-fit: contain;
pointer-events: none;
filter: drop-shadow(0 22px 34px rgba(46, 121, 220, 0.16));
transform: translate(-50%, -48%);
}
.network-core {
position: absolute;
z-index: 3;
top: 50%;
left: 50%;
width: 135px;
height: 135px;
display: grid;
place-content: center;
justify-items: center;
border: 12px solid rgba(255, 255, 255, 0.6);
border-radius: 50%;
color: #fff;
background: linear-gradient(145deg, var(--service-blue-strong), var(--service-cyan));
box-shadow: 0 22px 38px rgba(37, 125, 226, 0.28);
transform: translate(-50%, -50%);
}
.network-core small {
font-size: 11px;
opacity: 0.7;
}
.network-core strong {
margin-top: 5px;
color: #fff;
font-size: 17px;
}
.network-item {
position: absolute;
z-index: 2;
min-width: 105px;
padding: 11px 14px;
border: 1px solid rgba(255, 255, 255, 0.92);
border-radius: 7px;
color: #496b91;
background: rgba(255, 255, 255, 0.8);
box-shadow: 0 12px 24px rgba(55, 116, 190, 0.1);
font-size: 12px;
text-align: center;
backdrop-filter: blur(8px);
}
.item-1 {
top: 0;
left: 50%;
transform: translateX(-50%);
}
.item-2 {
top: 50%;
right: 0;
transform: translateY(-50%);
}
.item-3 {
bottom: 0;
left: 50%;
transform: translateX(-50%);
}
.item-4 {
top: 50%;
left: 0;
transform: translateY(-50%);
}
.network-line {
position: absolute;
z-index: 1;
top: 50%;
left: 50%;
width: 2px;
height: 118px;
background: linear-gradient(#65a7ef, transparent);
transform-origin: top;
}
.line-1 {
transform: rotate(180deg);
}
.line-2 {
transform: rotate(90deg);
}
.line-3 {
transform: rotate(0);
}
.line-4 {
transform: rotate(-90deg);
}
.visual-metric {
position: absolute;
z-index: 2;
right: 24px;
bottom: 22px;
display: grid;
justify-items: end;
}
.visual-metric strong {
color: #2780ed;
font-size: 27px;
font-variant-numeric: tabular-nums;
}
.visual-metric span {
margin-top: 3px;
color: var(--service-muted);
font-size: 12px;
}
.process-section {
position: relative;
padding: 112px 0 128px;
isolation: isolate;
background: #edf7ff;
}
.process-background {
position: absolute;
z-index: -1;
inset: 0;
background: url('/images/lanhu/slices/home-group95-image21@2x.png') center 10% / cover no-repeat;
opacity: 0.16;
mask-image: linear-gradient(#000, transparent 88%);
}
.process-heading {
max-width: 980px;
margin: 0 auto;
text-align: center;
}
.process-heading > p:last-child {
max-width: 860px;
margin-right: auto;
margin-left: auto;
text-align: center;
text-wrap: balance;
}
.process-timeline {
position: relative;
display: grid;
grid-template-columns: repeat(5, 1fr);
gap: 22px;
margin-top: 66px;
}
.process-timeline::before {
position: absolute;
top: 26px;
right: 9%;
left: 9%;
height: 1px;
content: '';
background: linear-gradient(90deg, transparent, #7eb5f0 12% 88%, transparent);
}
.process-timeline article {
position: relative;
z-index: 2;
padding: 0 18px;
text-align: center;
}
.step-marker {
width: 54px;
height: 54px;
display: grid;
margin: 0 auto 22px;
place-items: center;
border: 7px solid rgba(255, 255, 255, 0.9);
border-radius: 50%;
color: #fff;
background: #358af0;
box-shadow: 0 11px 24px rgba(51, 135, 235, 0.22);
}
.step-marker span {
font-size: 11px;
font-weight: 700;
}
.process-timeline h3 {
margin: 0;
color: var(--service-ink);
font-size: 18px;
}
.process-timeline p {
margin: 11px 0 0;
color: var(--service-copy);
font-size: 14px;
line-height: 1.72;
}
.service-industries {
padding: 116px 0 132px;
}
.industries-layout {
display: grid;
grid-template-columns: 0.72fr 1.28fr;
gap: 88px;
align-items: start;
}
.industries-layout .section-intro {
position: sticky;
top: 112px;
}
.industries-layout .primary-button {
margin-top: 28px;
}
.industry-list {
display: grid;
}
.industry-list article {
min-height: 128px;
display: grid;
grid-template-columns: 44px 1fr auto 42px;
align-items: center;
gap: 24px;
padding: 18px 0;
border-bottom: 1px solid var(--service-line);
transition:
padding 0.25s,
background 0.25s;
}
.industry-list article:first-child {
border-top: 1px solid var(--service-line);
}
.industry-list article:hover {
padding-right: 13px;
padding-left: 13px;
background: #f7fbff;
}
.industry-list > article > span {
color: #9bb0c7;
font-size: 11px;
font-weight: 700;
}
.industry-list h3 {
margin: 0;
color: var(--service-ink);
font-size: 21px;
}
.industry-list p {
margin: 7px 0 0;
color: var(--service-copy);
font-size: 15px;
line-height: 1.68;
}
.industry-list strong {
color: var(--service-blue);
font-size: 14px;
font-variant-numeric: tabular-nums;
white-space: nowrap;
}
.industry-list button {
width: 34px;
height: 34px;
border: 1px solid #b9d0e9;
border-radius: 50%;
color: #3184ec;
background: #fff;
transition:
transform 0.2s,
background 0.2s,
color 0.2s;
}
.industry-list button:hover {
color: #fff;
background: #3184ec;
transform: translateX(3px);
}
.proof-section {
padding: 104px 0 122px;
background: #f2f8ff;
}
.proof-grid {
display: grid;
grid-template-columns: 1.35fr 0.65fr;
gap: 30px;
}
.featured-proof {
min-height: 430px;
padding: 52px;
border-radius: 8px;
color: #fff;
background:
linear-gradient(120deg, rgba(26, 82, 167, 0.95), rgba(38, 142, 222, 0.82)),
url('/images/lanhu/slices/home-group90-image15@2x.png') center / cover;
box-shadow: 0 28px 60px rgba(40, 100, 177, 0.18);
}
.proof-tag {
font-size: 12px;
letter-spacing: 0.12em;
opacity: 0.72;
}
.add-white {
color: white !important;
}
.featured-proof h2 {
max-width: 720px;
margin: 26px 0 0;
color: #fff;
font-size: 44px;
font-weight: 700;
letter-spacing: 0;
line-height: 1.25;
}
.featured-proof > p {
max-width: 680px;
margin: 19px 0 0;
font-size: 16px;
line-height: 1.8;
opacity: 0.8;
}
.proof-data {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 20px;
margin-top: 52px;
}
.proof-data div {
padding-top: 18px;
border-top: 1px solid rgba(255, 255, 255, 0.34);
}
.proof-data strong {
display: block;
color: #fff;
font-size: 25px;
font-variant-numeric: tabular-nums;
}
.proof-data span {
display: block;
margin-top: 7px;
font-size: 13px;
opacity: 0.7;
}
.proof-summary {
padding: 45px 40px;
border-radius: 8px;
background: #fff;
box-shadow: 0 22px 50px rgba(63, 119, 185, 0.1);
}
.proof-summary h3 {
margin: 18px 0 0;
color: var(--service-ink);
font-size: 27px;
line-height: 1.45;
}
.proof-summary ul {
display: grid;
gap: 13px;
margin: 28px 0 0;
padding: 0;
list-style: none;
}
.proof-summary li {
padding-bottom: 13px;
border-bottom: 1px solid #e4edf6;
color: var(--service-copy);
font-size: 15px;
}
.services-cta {
position: relative;
min-height: 430px;
display: grid;
place-items: center;
overflow: hidden;
isolation: isolate;
}
.cta-wave {
position: absolute;
z-index: -1;
inset: 0;
background:
linear-gradient(rgba(247, 251, 255, 0.22), rgba(236, 247, 255, 0.5)),
url('/images/lanhu/slices/home-group105-image31@2x.png') center / cover no-repeat;
}
.services-cta-content {
padding: 76px 0;
text-align: center;
}
.services-cta-content > p {
margin: 0;
color: #237df0;
font-size: 12px;
font-weight: 700;
letter-spacing: 0.14em;
}
.services-cta-content h2 {
margin: 17px 0 0;
color: var(--service-ink);
font-size: 48px;
letter-spacing: 0;
line-height: 1.3;
}
.services-cta-content > span {
display: block;
margin-top: 14px;
color: var(--service-copy);
font-size: 16px;
}
.services-cta-content .primary-button {
margin-top: 28px;
}
@media (max-width: 1050px) {
.services-hero-grid {
grid-template-columns: 0.9fr 1.1fr;
gap: 25px;
}
.hero-orbit-two {
width: 420px;
height: 420px;
}
.hero-orbit-one {
width: 320px;
height: 320px;
}
.model-deep-grid {
gap: 35px;
}
.model-ring {
width: 310px;
}
.service-story {
gap: 36px;
}
.service-story-visual {
min-height: 490px;
}
.industries-layout {
gap: 55px;
}
}
@media (max-width: 1080px) {
.services-hero,
.services-hero-grid {
min-height: auto;
}
.services-hero-grid {
grid-template-columns: 1fr;
padding-top: 72px;
padding-bottom: 60px;
}
.services-hero-copy {
max-width: 760px;
}
.services-hero-copy h1 {
font-size: 52px;
}
.section-intro h2,
.model-heading h2,
.service-system-heading h2,
.process-heading h2 {
font-size: 40px;
}
.model-heading h2,
.service-system-heading h2,
.process-heading h2 {
max-width: 18em;
white-space: normal;
}
.service-story h3 {
font-size: 38px;
}
.featured-proof h2,
.services-cta-content h2 {
font-size: 42px;
}
.services-hero-visual {
width: min(570px, 100%);
justify-self: center;
margin-top: 28px;
}
.decision-grid,
.model-deep-grid,
.service-system-heading,
.service-story,
.industries-layout,
.proof-grid {
grid-template-columns: 1fr;
}
.decision-grid {
gap: 45px;
}
.model-deep-grid {
gap: 50px;
}
.ring-stage {
width: min(650px, 100%);
margin: auto;
}
.service-system-heading {
gap: 0;
}
.service-system-heading > p {
margin-top: 18px;
}
.service-story-copy {
max-width: 780px;
}
.service-story.reverse .service-story-copy,
.service-story.reverse .service-story-visual {
order: initial;
}
.service-story-visual {
width: min(720px, 100%);
min-height: 500px;
justify-self: center;
}
.process-timeline {
grid-template-columns: 1fr;
gap: 0;
}
.process-timeline::before {
top: 28px;
bottom: 28px;
left: 26px;
width: 1px;
height: auto;
}
.process-timeline article {
min-height: 118px;
display: grid;
grid-template-columns: 54px 1fr;
grid-template-rows: auto auto;
gap: 4px 20px;
padding: 0 0 28px;
text-align: left;
}
.step-marker {
grid-row: 1 / 3;
margin: 0;
}
.process-timeline p {
margin-top: 4px;
}
.industries-layout .section-intro {
position: static;
max-width: 720px;
}
.proof-summary {
padding: 38px;
}
}
@media (max-width: 600px) {
.services-hero-grid {
min-width: 0;
padding-top: 54px;
}
.services-hero-copy {
width: 100%;
min-width: 0;
}
.services-hero-copy h1 {
max-width: 100%;
font-size: 38px;
letter-spacing: 0;
overflow-wrap: normal;
word-break: normal;
}
.services-hero-copy h1 br,
.section-intro h2 br,
.proof-summary h3 br {
display: none;
}
.section-intro h2,
.model-heading h2,
.service-system-heading h2,
.process-heading h2,
.featured-proof h2,
.services-cta-content h2 {
font-size: 32px;
}
.service-story h3 {
font-size: 30px;
}
.hero-description {
width: 100%;
max-width: 100%;
font-size: 15px;
overflow-wrap: normal;
word-break: normal;
}
.hero-badges {
display: grid;
grid-template-columns: 1fr;
gap: 10px;
}
.hero-actions {
align-items: flex-start;
flex-direction: column;
gap: 18px;
}
.services-hero-visual {
width: min(340px, 100%);
aspect-ratio: 0.95;
}
.hero-orbit-two {
width: 330px;
height: 330px;
}
.hero-orbit-one {
width: 250px;
height: 250px;
}
.hero-core {
width: 124px;
height: 124px;
}
.hero-core strong {
font-size: 17px;
}
.hero-data {
min-width: 112px;
padding: 11px 13px;
}
.hero-data strong {
font-size: 20px;
}
.decision-section,
.model-deep-section,
.service-system-section,
.service-industries {
padding-top: 76px;
padding-bottom: 86px;
}
.decision-journey article {
grid-template-columns: 44px 1fr;
gap: 13px;
padding: 22px 4px;
}
.decision-journey article > span {
display: none;
}
.decision-journey h3 {
font-size: 21px;
}
.ring-stage {
min-height: 390px;
}
.model-ring {
width: 235px;
}
.ring-copy strong {
font-size: 13px;
}
.ring-connector {
width: 70px;
height: 70px;
border-width: 5px;
}
.service-stories {
gap: 40px;
margin-top: 45px;
}
.service-story {
gap: 32px;
padding-top: 35px;
}
.service-details {
grid-template-columns: 1fr;
}
.service-story-visual {
min-height: 410px;
}
.visual-network {
width: 310px;
height: 280px;
}
.visual-network-image {
top: 52%;
width: min(500px, 118%);
height: 360px;
}
.network-core {
width: 108px;
height: 108px;
border-width: 8px;
}
.network-core strong {
font-size: 14px;
}
.network-item {
min-width: 86px;
padding: 9px;
font-size: 11px;
}
.network-line {
height: 92px;
}
.process-section {
padding-top: 76px;
padding-bottom: 84px;
}
.industry-list article {
grid-template-columns: 30px 1fr 36px;
gap: 10px;
padding: 22px 4px;
}
.industry-list strong {
grid-column: 2 / 3;
}
.industry-list button {
grid-column: 3;
grid-row: 1 / 3;
}
.featured-proof {
min-height: 0;
padding: 34px 24px;
}
.proof-data {
grid-template-columns: 1fr;
gap: 16px;
margin-top: 36px;
}
.proof-summary {
padding: 32px 24px;
}
.services-cta {
min-height: 390px;
}
.services-cta-content h2 br {
display: none;
}
}
@media (prefers-reduced-motion: reduce) {
.services-page *,
.services-page *::before,
.services-page *::after {
scroll-behavior: auto !important;
animation-duration: 0.01ms !important;
transition-duration: 0.01ms !important;
}
}
</style>