Files
BigStickNewOfficialWebsite-V2/pages/solutions.vue
T
2026-07-16 16:42:45 +08:00

1382 lines
35 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 activeIndustry = ref('enterprise')
const { openConsultation } = useConsultation()
let animationContext
let observer
useHead({
title: '行业解决方案|大马棒·云途全域 GEO',
meta: [
{
name: 'description',
content:
'面向企业服务、教育培训、本地生活、医疗健康与电商零售行业,提供基于真实用户决策路径的 GEO 获客转化方案。'
}
]
})
const industries = [
{
id: 'enterprise',
number: '01',
name: '企业服务',
short: '企服',
question: 'SaaS、软件、企服公司最头疼什么?',
pain: '决策动不动几个月,客户到处比方案,搜一圈下来,你甚至没有进入备选名单。',
strategyTitle: '不追泛流量,先追“信任”',
strategy:
'B 端采购者搜索的是业务问题,而不是品牌名。我们在行业媒体建立背书,在“怎么解决某类问题”的内容中呈现方案,让品牌在客户比选阶段提前出现。',
actions: [
'行业媒体深度稿与创始人访谈,拉高品牌专业水位',
'占住“行业解决方案”“系统怎么选”等高意向长尾问题',
'持续输出白皮书与案例复盘,积累长期决策信任'
],
metrics: [
['+320%', 'AI 搜索曝光'],
['80+', '月精准线索']
],
tags: ['长决策链', '专业背书', '方案比选'],
visual: ['行业问题', '专业内容', '权威信源', '进入比选']
},
{
id: 'education',
number: '02',
name: '教育培训',
short: '教育',
question: '家长搜完品牌,又会去搜“这家机构靠谱吗”',
pain: '口碑是否可信、课程是否匹配、真实效果如何,往往直接决定这一次咨询能不能发生。',
strategyTitle: '把“别人怎么说你”系统管理起来',
strategy:
'围绕择校指南、课程比较、避坑经验与真实学习反馈,用贴近家长决策语言的内容覆盖从找方法到选机构的完整路径。',
actions: [
'构建真实学员口碑内容矩阵,覆盖主流搜索与内容平台',
'围绕“机构怎么样”“课程值得吗”等问题精准布局',
'用场景化内容引导咨询,让搜索流量进入课程承接页'
],
metrics: [
['1200+', '长尾问题布局'],
['-45%', '有效线索成本']
],
tags: ['口碑验证', '课程比较', '家长决策'],
visual: ['学习问题', '课程比较', '口碑验证', '报名咨询']
},
{
id: 'local-life',
number: '03',
name: '本地生活',
short: '本地',
question: '用户就在附近搜,搜完便决定去哪一家',
pain: '如果品牌没有出现在同城搜索、内容推荐和本地平台中,就等于把到店客户送给隔壁。',
strategyTitle: '不是做大曝光,而是让附近的人搜得到你',
strategy:
'围绕真实消费场景,在本地生活平台、内容社区和短视频渠道建立稳定内容覆盖,让用户从看到、心动到到店之间少走一步。',
actions: [
'覆盖本地生活平台内容,占住同城与附近搜索位置',
'组合同城达人和真实顾客内容,避免脱离体验的假种草',
'设计到店路径内容,明确位置、场景、产品与消费理由'
],
metrics: [
['95%', '品牌词搜索覆盖'],
['+170%', '到店咨询量']
],
tags: ['同城搜索', '真实体验', '到店转化'],
visual: ['附近搜索', '真实体验', '消费理由', '到店行动']
},
{
id: 'healthcare',
number: '04',
name: '医疗健康',
short: '医疗',
question: '用户先相信你的专业,才敢把健康交给你',
pain: '负面口碑、过时信息和不准确内容会在搜索结果页持续消耗信任,同时行业推广又受到严格合规约束。',
strategyTitle: '不做擦边推广,建设合规权威形象',
strategy:
'以合规科普为核心,把专业能力转化为用户看得懂、AI 能识别的内容,在用户搜索健康问题时持续呈现准确、稳定的专业声音。',
actions: [
'体系化输出合规科普内容,强化专业人设与核心 IP',
'覆盖用户从“查症状”到“选机构”的全流程问题',
'系统维护公开口碑,及时纠正过时与不准确信息'
],
metrics: [
['合规', '内容审核机制'],
['定制', '效果指标体系']
],
tags: ['合规科普', '权威形象', '口碑维护'],
visual: ['健康提问', '专业科普', '权威验证', '机构选择'],
note: '医疗健康行业的执行范围与效果指标需依据具体业务资质、地区政策和平台规则单独确认。'
},
{
id: 'ecommerce',
number: '05',
name: '电商零售',
short: '电商',
question: '平台流量越来越贵,用户却搜不到品牌内容',
pain: '站内投流成本持续上涨,站外品牌信息稀少,用户被种草后无法完成主动搜索与信任验证。',
strategyTitle: '填满用户主动搜索品牌时看到的内容',
strategy:
'通过种草、测评、使用场景、短视频与直播承接,串起“被种草—主动搜—找到品牌—进入店铺或私域”的完整路径。',
actions: [
'全平台种草内容布局,持续提升品牌主动搜索热度',
'产品测评与使用场景内容,降低用户理解和决策门槛',
'把搜索流量承接至店铺、直播间与私域,沉淀复购用户'
],
metrics: [
['3 万+', '内容资产沉淀'],
['60%', '自然流量占比']
],
tags: ['内容种草', '产品测评', '直播承接'],
visual: ['内容种草', '主动搜索', '场景验证', '店铺转化']
}
]
const decisionFactors = [
['01', '决策周期', '企服客户可能比较数月,本地消费往往几分钟内完成决定。内容节奏不能相同。'],
['02', '信任依据', '有人相信行业媒体,有人相信真实体验,也有人更看重资质、专业科普与长期口碑。'],
['03', '转化动作', '预约演示、报名试听、到店消费、在线问诊和进入店铺,需要完全不同的承接链路。']
]
const moreIndustries = ['快消品牌', '工业制造', '地产家居', '金融服务', '汽车出行', '法律服务']
function scrollToIndustry(id) {
activeIndustry.value = id
document.getElementById(id)?.scrollIntoView({ behavior: 'smooth', block: 'start' })
}
function requestIndustryPlan(industry, source) {
openConsultation({ title: `获取${industry}行业方案`, source, industry })
}
function requestCustomPlan(source) {
openConsultation({ title: '咨询定制行业方案', source })
}
onMounted(async () => {
if (!pageRoot.value) return
await nextTick()
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
animationContext = gsap.context(() => {
gsap.to('.solutions-orbit-a', { rotation: 360, duration: 32, repeat: -1, ease: 'none' })
gsap.to('.solutions-orbit-b', { rotation: -360, duration: 42, repeat: -1, ease: 'none' })
}, pageRoot.value)
}
observer = new IntersectionObserver(
(entries) => {
const visible = entries
.filter((entry) => entry.isIntersecting)
.sort((a, b) => b.intersectionRatio - a.intersectionRatio)[0]
if (visible?.target?.id) activeIndustry.value = visible.target.id
},
{ rootMargin: '-28% 0px -56% 0px', threshold: [0.1, 0.35, 0.6] }
)
industries.forEach((industry) => {
const element = document.getElementById(industry.id)
if (element) observer.observe(element)
})
})
onBeforeUnmount(() => {
animationContext?.revert()
observer?.disconnect()
})
</script>
<template>
<div ref="pageRoot" class="solutions-page">
<a class="skip-link" href="#main-content">跳到主要内容</a>
<SiteHeader />
<main id="main-content">
<section class="solutions-hero">
<div class="solutions-hero-mesh" aria-hidden="true"></div>
<div class="page-width solutions-hero-grid">
<div class="solutions-hero-copy">
<p class="page-eyebrow">行业解决方案</p>
<h1>让每一个行业<br />都有一套自己的<span>增长打法</span></h1>
<p>
深度理解不同行业的增长痛点与用户决策路径匹配有针对性的内容信源和获客转化策略
</p>
<div class="hero-industry-links" aria-label="行业快捷导航">
<button
v-for="industry in industries"
:key="industry.id"
type="button"
@click="scrollToIndustry(industry.id)"
>
{{ industry.name }}
</button>
</div>
<button
class="primary-button"
type="button"
@click="requestCustomPlan('行业解决方案页 Hero')"
>
获取专属方案 <AppIcon name="arrow-right" />
</button>
</div>
<div class="solutions-hero-visual" aria-label="五大行业解决方案协同示意图">
<div class="solutions-orbit solutions-orbit-a">
<i v-for="industry in industries" :key="`orbit-a-${industry.id}`"></i>
</div>
<div class="solutions-orbit solutions-orbit-b">
<i v-for="index in 4" :key="`orbit-b-${index}`"></i>
</div>
<div class="solutions-core">
<small>YUNTU GEO</small><strong>行业增长引擎</strong><span>策略因行业而不同</span>
</div>
<button
v-for="(industry, index) in industries"
:key="`node-${industry.id}`"
type="button"
class="industry-node"
:class="`node-${index + 1}`"
@click="scrollToIndustry(industry.id)"
>
<small>0{{ index + 1 }}</small
><strong>{{ industry.short }}</strong>
</button>
<div class="hero-signal"><span></span> 5 类行业路径已建立</div>
</div>
</div>
</section>
<section class="difference-section">
<div class="page-width difference-layout">
<header class="difference-heading">
<p class="section-kicker">为什么不能套用同一模板</p>
<h2>B2B 软件和一家火锅店<br />用户做决定的方式完全不同</h2>
<p>
行业方案的核心不是替换几个关键词而是重新理解用户在什么场景下提问依据什么建立信任以及最后如何行动
</p>
</header>
<div class="decision-factor-list">
<article v-for="factor in decisionFactors" :key="factor[0]">
<span>{{ factor[0] }}</span>
<div>
<h3>{{ factor[1] }}</h3>
<p>{{ factor[2] }}</p>
</div>
</article>
</div>
</div>
</section>
<nav class="industry-sticky-nav" aria-label="行业方案导航">
<div class="page-width">
<button
v-for="industry in industries"
:key="`sticky-${industry.id}`"
type="button"
:class="{ active: activeIndustry === industry.id }"
@click="scrollToIndustry(industry.id)"
>
<span>{{ industry.number }}</span
>{{ industry.name }}
</button>
</div>
</nav>
<section class="industry-solutions">
<article
v-for="(industry, industryIndex) in industries"
:id="industry.id"
:key="industry.id"
class="industry-solution"
:class="{ alternate: industryIndex % 2 === 1 }"
>
<div class="page-width industry-solution-grid">
<header class="industry-intro">
<div class="industry-number">{{ industry.number }}</div>
<p class="section-kicker">{{ industry.name }}行业</p>
<h2>{{ industry.question }}</h2>
<p class="industry-pain">{{ industry.pain }}</p>
<div class="industry-tags">
<span v-for="tag in industry.tags" :key="tag">{{ tag }}</span>
</div>
</header>
<div class="industry-strategy">
<p class="strategy-label">我们的打法</p>
<h3>{{ industry.strategyTitle }}</h3>
<p class="strategy-copy">{{ industry.strategy }}</p>
<strong class="actions-title">具体会做这些事</strong>
<ul>
<li v-for="(action, actionIndex) in industry.actions" :key="action">
<span>0{{ actionIndex + 1 }}</span
>{{ action }}
</li>
</ul>
<p v-if="industry.note" class="compliance-note">{{ industry.note }}</p>
<button
class="industry-plan-button"
type="button"
@click="requestIndustryPlan(industry.name, `${industry.name}行业方案板块`)"
>
获取{{ industry.name }}行业方案 <AppIcon name="arrow-right" />
</button>
</div>
<div class="industry-visual" :class="`industry-visual-${industryIndex + 1}`">
<div class="industry-visual-header">
<span>{{ industry.name }}决策路径</span><small>GEO INDUSTRY MAP</small>
</div>
<div class="path-map">
<div class="path-axis"></div>
<div
v-for="(item, itemIndex) in industry.visual"
:key="item"
class="path-node"
:class="`path-node-${itemIndex + 1}`"
>
<span>0{{ itemIndex + 1 }}</span
><strong>{{ item }}</strong>
</div>
<div class="path-center">
<small>行业策略</small><strong>{{ industry.short }}</strong>
</div>
</div>
<div class="industry-metrics">
<div v-for="metric in industry.metrics" :key="metric[1]">
<strong>{{ metric[0] }}</strong
><span>{{ metric[1] }}</span>
</div>
</div>
</div>
</div>
</article>
</section>
<section class="more-industries-section">
<div class="page-width more-industries-grid">
<header>
<p class="section-kicker">更多行业</p>
<h2>没在上面找到你的行业</h2>
<p>
无论企业处于什么行业和发展阶段我们都会基于品牌现状用户决策路径与增长目标重新制定策略
</p>
<button
class="primary-button small"
type="button"
@click="requestCustomPlan('更多行业板块')"
>
咨询定制方案 <AppIcon name="arrow-right" />
</button>
</header>
<div class="more-industry-list">
<button
v-for="(industry, index) in moreIndustries"
:key="industry"
type="button"
@click="requestIndustryPlan(industry, '更多行业入口')"
>
<span>0{{ index + 1 }}</span
><strong>{{ industry }}</strong
><AppIcon name="arrow-right" />
</button>
</div>
</div>
</section>
<section class="solutions-cta">
<div class="solutions-cta-art" aria-hidden="true"></div>
<div class="page-width solutions-cta-content">
<p>你的行业有自己的增长答案</p>
<h2>先说说业务现状<br />我们帮你找到最值得投入的路径</h2>
<span>免费进行一次行业 GEO 可见性与获客链路沟通</span>
<button
class="primary-button"
type="button"
@click="requestCustomPlan('行业解决方案页底部 CTA')"
>
获取专属行业方案 <AppIcon name="arrow-right" />
</button>
</div>
</section>
</main>
<SiteFooter />
</div>
</template>
<style scoped>
.solutions-page {
--solutions-blue: #237df0;
--solutions-ink: #344359;
overflow: hidden;
color: var(--solutions-ink);
background: #fff;
}
.skip-link {
position: fixed;
z-index: 100;
top: 10px;
left: 10px;
padding: 10px 14px;
border-radius: 6px;
color: #fff;
background: #1f70df;
transform: translateY(-150%);
transition: transform 0.2s;
}
.skip-link:focus {
transform: translateY(0);
}
.page-eyebrow,
.section-kicker {
margin: 0;
color: var(--solutions-blue);
font-size: 12px;
font-weight: 700;
letter-spacing: 0.14em;
}
.solutions-hero {
position: relative;
min-height: 670px;
display: grid;
align-items: center;
isolation: isolate;
background: #f2f7ff;
}
.solutions-hero-mesh {
position: absolute;
z-index: -1;
inset: 0;
background:
radial-gradient(circle at 80% 30%, rgba(76, 159, 255, 0.24), transparent 26%),
radial-gradient(circle at 18% 92%, rgba(97, 203, 235, 0.11), transparent 28%),
linear-gradient(108deg, #f8fbff 0%, #eef5ff 53%, #e6f1ff 100%);
}
.solutions-hero-mesh::after {
position: absolute;
inset: 0;
content: '';
opacity: 0.2;
background-image:
linear-gradient(rgba(54, 124, 214, 0.08) 1px, transparent 1px),
linear-gradient(90deg, rgba(54, 124, 214, 0.08) 1px, transparent 1px);
background-size: 58px 58px;
mask-image: linear-gradient(90deg, transparent 20%, #000);
}
.solutions-hero-grid {
min-height: 670px;
display: grid;
grid-template-columns: 0.96fr 1.04fr;
align-items: center;
gap: 45px;
padding-top: 52px;
padding-bottom: 58px;
}
.solutions-hero-copy h1 {
max-width: 720px;
margin: 15px 0 0;
color: #37465b;
font-size: clamp(42px, 3.9vw, 64px);
letter-spacing: -0.055em;
line-height: 1.2;
}
.solutions-hero-copy h1 span {
color: #1978ef;
white-space: nowrap;
}
.solutions-hero-copy > p:nth-of-type(2) {
max-width: 630px;
margin: 24px 0 0;
color: #68788e;
font-size: 16px;
line-height: 1.85;
}
.hero-industry-links {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-top: 27px;
}
.hero-industry-links button {
height: 34px;
padding: 0 14px;
border: 1px solid rgba(68, 134, 217, 0.2);
border-radius: 5px;
color: #55718f;
background: rgba(255, 255, 255, 0.58);
font-size: 12px;
transition: 0.2s;
}
.hero-industry-links button:hover {
border-color: #6ba9f2;
color: #1e78e7;
background: #fff;
transform: translateY(-2px);
}
.solutions-hero-copy > .primary-button {
margin-top: 30px;
}
.solutions-hero-visual {
position: relative;
width: min(600px, 100%);
aspect-ratio: 1.08;
justify-self: end;
}
.solutions-hero-visual::before {
position: absolute;
inset: 8% 2% 1%;
content: '';
border-radius: 50%;
background:
radial-gradient(
circle,
rgba(255, 255, 255, 0.96) 0 22%,
rgba(132, 194, 255, 0.22) 23% 46%,
transparent 47%
),
url('/images/lanhu/slices/hero-geo-visual@2x.png') 70% 48% / 168% auto no-repeat;
filter: drop-shadow(0 32px 48px rgba(51, 119, 204, 0.18));
mask-image: radial-gradient(ellipse, #000 50%, transparent 75%);
}
.solutions-core {
position: absolute;
z-index: 4;
top: 50%;
left: 50%;
width: 162px;
height: 162px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
border: 1px solid rgba(255, 255, 255, 0.9);
border-radius: 50%;
color: #fff;
background: linear-gradient(145deg, #287ff0, #42b7e9);
box-shadow:
0 24px 48px rgba(34, 117, 223, 0.3),
inset 0 1px 5px rgba(255, 255, 255, 0.65);
transform: translate(-50%, -50%);
text-align: center;
}
.solutions-core small {
font-size: 9px;
letter-spacing: 0.14em;
opacity: 0.78;
}
.solutions-core strong {
margin-top: 8px;
font-size: 19px;
}
.solutions-core span {
margin-top: 5px;
font-size: 10px;
opacity: 0.76;
}
.solutions-orbit {
position: absolute;
z-index: 2;
top: 50%;
left: 50%;
border: 1px solid rgba(51, 133, 232, 0.3);
border-radius: 50%;
transform: translate(-50%, -50%);
}
.solutions-orbit-a {
width: 390px;
height: 390px;
}
.solutions-orbit-b {
width: 520px;
height: 520px;
border-style: dashed;
opacity: 0.7;
}
.solutions-orbit i {
position: absolute;
width: 12px;
height: 12px;
border: 3px solid #fff;
border-radius: 50%;
background: #2782f2;
box-shadow: 0 6px 16px rgba(35, 124, 232, 0.36);
}
.solutions-orbit i:nth-child(1) {
top: -6px;
left: 50%;
}
.solutions-orbit i:nth-child(2) {
top: 23%;
right: 2%;
background: #52c2e7;
}
.solutions-orbit i:nth-child(3) {
right: 14%;
bottom: 9%;
background: #736ff1;
}
.solutions-orbit i:nth-child(4) {
bottom: 9%;
left: 15%;
background: #4a9ef2;
}
.solutions-orbit i:nth-child(5) {
top: 24%;
left: 1%;
background: #70c9ec;
}
.industry-node {
position: absolute;
z-index: 5;
width: 74px;
height: 74px;
display: grid;
place-content: center;
justify-items: center;
border: 1px solid rgba(255, 255, 255, 0.9);
border-radius: 20px 7px 20px 7px;
color: #3f6691;
background: rgba(255, 255, 255, 0.78);
box-shadow:
0 14px 32px rgba(55, 112, 184, 0.14),
inset 0 1px 0 #fff;
backdrop-filter: blur(10px);
transition: 0.2s;
}
.industry-node:hover {
color: #1779ec;
transform: translateY(-4px);
box-shadow: 0 19px 36px rgba(55, 112, 184, 0.22);
}
.industry-node small {
font-size: 9px;
opacity: 0.55;
}
.industry-node strong {
margin-top: 4px;
font-size: 14px;
}
.node-1 {
top: 7%;
left: 25%;
}
.node-2 {
top: 20%;
right: 4%;
}
.node-3 {
right: 4%;
bottom: 20%;
}
.node-4 {
bottom: 7%;
left: 27%;
}
.node-5 {
top: 42%;
left: 0;
}
.hero-signal {
position: absolute;
right: 7%;
bottom: 0;
display: flex;
align-items: center;
gap: 8px;
color: #74869c;
font-size: 11px;
}
.hero-signal span {
width: 7px;
height: 7px;
border-radius: 50%;
background: #28a3ed;
box-shadow: 0 0 0 5px rgba(40, 163, 237, 0.12);
}
.difference-section {
padding: 112px 0 128px;
}
.difference-layout {
display: grid;
grid-template-columns: 0.92fr 1.08fr;
gap: 90px;
align-items: center;
}
.difference-heading h2,
.more-industries-grid h2 {
margin: 15px 0 0;
color: #344359;
font-size: clamp(32px, 3vw, 48px);
letter-spacing: -0.045em;
line-height: 1.28;
}
.difference-heading > p:last-child,
.more-industries-grid header > p:nth-of-type(2) {
max-width: 600px;
margin: 20px 0 0;
color: #748398;
font-size: 15px;
line-height: 1.8;
}
.decision-factor-list {
display: grid;
}
.decision-factor-list article {
min-height: 128px;
display: grid;
grid-template-columns: 64px 1fr;
align-items: center;
gap: 24px;
border-bottom: 1px solid #dfe8f2;
}
.decision-factor-list article:first-child {
border-top: 1px solid #dfe8f2;
}
.decision-factor-list > article > span {
color: #9eb3ca;
font-size: 12px;
font-weight: 700;
letter-spacing: 0.12em;
}
.decision-factor-list h3 {
margin: 0;
color: #34475f;
font-size: 22px;
}
.decision-factor-list p {
max-width: 560px;
margin: 8px 0 0;
color: #77879b;
font-size: 13px;
line-height: 1.7;
}
.industry-sticky-nav {
position: sticky;
z-index: 18;
top: 64px;
border-top: 1px solid rgba(76, 139, 215, 0.08);
border-bottom: 1px solid rgba(76, 139, 215, 0.12);
background: rgba(248, 252, 255, 0.94);
backdrop-filter: blur(16px);
}
.industry-sticky-nav .page-width {
height: 68px;
display: grid;
grid-template-columns: repeat(5, 1fr);
}
.industry-sticky-nav button {
position: relative;
color: #62758c;
background: transparent;
font-size: 13px;
transition: 0.2s;
}
.industry-sticky-nav button span {
margin-right: 9px;
color: #9cafc4;
font-size: 10px;
}
.industry-sticky-nav button::after {
position: absolute;
right: 21%;
bottom: 0;
left: 21%;
height: 2px;
content: '';
background: #2780ef;
transform: scaleX(0);
transition: transform 0.22s;
}
.industry-sticky-nav button:hover,
.industry-sticky-nav button.active {
color: #207aeb;
background: rgba(255, 255, 255, 0.52);
}
.industry-sticky-nav button.active::after {
transform: scaleX(1);
}
.industry-solution {
scroll-margin-top: 132px;
padding: 118px 0 132px;
}
.industry-solution.alternate {
background: #eef7ff;
}
.industry-solution-grid {
display: grid;
grid-template-columns: 0.75fr 0.95fr 1.1fr;
align-items: center;
gap: 56px;
}
.industry-number {
margin-bottom: 38px;
color: rgba(73, 132, 204, 0.15);
font-size: 92px;
font-weight: 700;
letter-spacing: -0.08em;
line-height: 0.8;
}
.industry-intro h2 {
margin: 18px 0 0;
color: #33445a;
font-size: clamp(30px, 2.45vw, 40px);
letter-spacing: -0.04em;
line-height: 1.34;
}
.industry-pain {
margin: 21px 0 0;
color: #748398;
font-size: 14px;
line-height: 1.8;
}
.industry-tags {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 24px;
}
.industry-tags span {
padding: 7px 10px;
border-radius: 5px;
color: #557699;
background: #eef6ff;
font-size: 10px;
}
.alternate .industry-tags span {
background: rgba(255, 255, 255, 0.7);
}
.industry-strategy {
padding: 35px 0;
border-top: 1px solid #d8e5f2;
border-bottom: 1px solid #d8e5f2;
}
.strategy-label {
margin: 0;
color: #2c7fea;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.12em;
}
.industry-strategy h3 {
margin: 13px 0 0;
color: #354a63;
font-size: 25px;
line-height: 1.4;
}
.strategy-copy {
margin: 15px 0 0;
color: #728297;
font-size: 13px;
line-height: 1.75;
}
.actions-title {
display: block;
margin-top: 24px;
color: #42556d;
font-size: 12px;
}
.industry-strategy ul {
display: grid;
gap: 13px;
margin: 14px 0 0;
padding: 0;
list-style: none;
}
.industry-strategy li {
display: grid;
grid-template-columns: 28px 1fr;
gap: 10px;
color: #6d7e92;
font-size: 12px;
line-height: 1.6;
}
.industry-strategy li span {
color: #4690eb;
font-size: 10px;
font-weight: 700;
}
.compliance-note {
margin: 20px 0 0;
padding: 12px 14px;
border-left: 2px solid #63a6ef;
color: #6e8198;
background: rgba(255, 255, 255, 0.65);
font-size: 11px;
line-height: 1.65;
}
.industry-plan-button {
margin-top: 27px;
padding: 0 0 5px;
border-bottom: 1px solid #8db9e9;
color: #247be8;
background: transparent;
font-size: 13px;
font-weight: 600;
}
.industry-plan-button b {
margin-left: 8px;
transition: margin 0.2s;
}
.industry-plan-button:hover b {
margin-left: 13px;
}
.industry-visual {
position: relative;
min-height: 510px;
overflow: hidden;
border: 1px solid rgba(255, 255, 255, 0.85);
border-radius: 20px 7px 20px 7px;
background:
radial-gradient(circle at 70% 28%, rgba(81, 161, 255, 0.28), transparent 24%),
linear-gradient(145deg, #f2f8ff, #dcecff);
box-shadow:
0 28px 60px rgba(58, 122, 201, 0.13),
inset 0 1px 0 #fff;
}
.industry-visual-2 {
background:
radial-gradient(circle at 25% 70%, rgba(104, 187, 242, 0.25), transparent 24%),
linear-gradient(145deg, #f3f9ff, #e3edff);
}
.industry-visual-3 {
background:
radial-gradient(circle at 72% 70%, rgba(85, 190, 226, 0.26), transparent 25%),
linear-gradient(145deg, #edf9ff, #dfeeff);
}
.industry-visual-4 {
background:
radial-gradient(circle at 30% 28%, rgba(98, 157, 237, 0.24), transparent 24%),
linear-gradient(145deg, #f5f9ff, #e0ebff);
}
.industry-visual-5 {
background:
radial-gradient(circle at 72% 30%, rgba(101, 143, 239, 0.25), transparent 25%),
linear-gradient(145deg, #f2f8ff, #deeaff);
}
.industry-visual-header {
display: flex;
justify-content: space-between;
padding: 24px 27px;
color: #55779d;
font-size: 12px;
}
.industry-visual-header small {
color: #95aac2;
font-size: 9px;
letter-spacing: 0.12em;
}
.path-map {
position: absolute;
top: 52%;
left: 50%;
width: 360px;
height: 320px;
transform: translate(-50%, -50%);
}
.path-axis {
position: absolute;
top: 50%;
left: 50%;
width: 235px;
height: 235px;
border: 1px dashed rgba(57, 137, 231, 0.34);
border-radius: 50%;
transform: translate(-50%, -50%);
}
.path-axis::before,
.path-axis::after {
position: absolute;
top: 50%;
left: 50%;
content: '';
background: linear-gradient(90deg, transparent, rgba(55, 137, 233, 0.55), transparent);
transform: translate(-50%, -50%);
}
.path-axis::before {
width: 310px;
height: 1px;
}
.path-axis::after {
width: 1px;
height: 280px;
}
.path-center {
position: absolute;
z-index: 2;
top: 50%;
left: 50%;
width: 112px;
height: 112px;
display: grid;
place-content: center;
justify-items: center;
border: 9px solid rgba(255, 255, 255, 0.58);
border-radius: 50%;
color: #fff;
background: linear-gradient(145deg, #3185ee, #51bce7);
box-shadow: 0 20px 38px rgba(36, 123, 225, 0.28);
transform: translate(-50%, -50%);
}
.path-center small {
font-size: 9px;
opacity: 0.75;
}
.path-center strong {
margin-top: 5px;
font-size: 18px;
}
.path-node {
position: absolute;
z-index: 3;
min-width: 96px;
padding: 11px 13px;
border: 1px solid rgba(255, 255, 255, 0.9);
border-radius: 6px;
color: #4e7198;
background: rgba(255, 255, 255, 0.82);
box-shadow: 0 12px 25px rgba(54, 113, 185, 0.11);
text-align: center;
backdrop-filter: blur(8px);
}
.path-node span {
display: block;
color: #91a9c3;
font-size: 8px;
}
.path-node strong {
display: block;
margin-top: 3px;
font-size: 10px;
}
.path-node-1 {
top: 0;
left: 50%;
transform: translateX(-50%);
}
.path-node-2 {
top: 50%;
right: 0;
transform: translateY(-50%);
}
.path-node-3 {
bottom: 0;
left: 50%;
transform: translateX(-50%);
}
.path-node-4 {
top: 50%;
left: 0;
transform: translateY(-50%);
}
.industry-metrics {
position: absolute;
right: 25px;
bottom: 22px;
display: flex;
gap: 24px;
}
.industry-metrics div {
display: grid;
justify-items: end;
}
.industry-metrics strong {
color: #2780ed;
font-size: 22px;
font-variant-numeric: tabular-nums;
}
.industry-metrics span {
margin-top: 3px;
color: #7b8da2;
font-size: 9px;
}
.more-industries-section {
padding: 116px 0 130px;
}
.more-industries-grid {
display: grid;
grid-template-columns: 0.82fr 1.18fr;
gap: 90px;
align-items: center;
}
.more-industries-grid .primary-button {
margin-top: 28px;
}
.more-industry-list {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 12px;
}
.more-industry-list button {
min-height: 88px;
display: grid;
grid-template-columns: 35px 1fr 25px;
align-items: center;
gap: 12px;
padding: 0 22px;
border-radius: 8px;
color: #3e536c;
background: #f2f7fd;
text-align: left;
transition: 0.22s;
}
.more-industry-list button:hover {
color: #1f78e7;
background: #fff;
box-shadow: 0 14px 30px rgba(59, 119, 191, 0.12);
transform: translateY(-3px);
}
.more-industry-list span {
color: #9fb2c8;
font-size: 10px;
}
.more-industry-list strong {
font-size: 15px;
}
.more-industry-list b {
color: #4a91e8;
font-size: 18px;
font-weight: 400;
}
.solutions-cta {
position: relative;
min-height: 440px;
display: grid;
place-items: center;
overflow: hidden;
isolation: isolate;
}
.solutions-cta-art {
position: absolute;
z-index: -1;
inset: 0;
background:
linear-gradient(rgba(247, 251, 255, 0.18), rgba(234, 246, 255, 0.48)),
url('/images/lanhu/slices/home-group105-image31@2x.png') center / cover no-repeat;
}
.solutions-cta-content {
padding: 76px 0;
text-align: center;
}
.solutions-cta-content > p {
margin: 0;
color: #237df0;
font-size: 12px;
font-weight: 700;
letter-spacing: 0.14em;
}
.solutions-cta-content h2 {
margin: 17px 0 0;
color: #2f75cc;
font-size: clamp(32px, 3.2vw, 50px);
letter-spacing: -0.045em;
line-height: 1.3;
}
.solutions-cta-content > span {
display: block;
margin-top: 14px;
color: #657891;
font-size: 15px;
}
.solutions-cta-content .primary-button {
margin-top: 28px;
}
@media (max-width: 1120px) {
.solutions-hero-grid {
gap: 20px;
}
.solutions-orbit-b {
width: 450px;
height: 450px;
}
.solutions-orbit-a {
width: 340px;
height: 340px;
}
.industry-solution-grid {
gap: 32px;
}
.industry-number {
font-size: 75px;
}
.path-map {
width: 320px;
}
}
@media (max-width: 900px) {
.solutions-hero,
.solutions-hero-grid {
min-height: auto;
}
.solutions-hero-grid,
.difference-layout,
.industry-solution-grid,
.more-industries-grid {
grid-template-columns: 1fr;
}
.solutions-hero-grid {
padding-top: 74px;
padding-bottom: 62px;
}
.solutions-hero-visual {
width: min(590px, 100%);
justify-self: center;
margin-top: 20px;
}
.difference-layout {
gap: 48px;
}
.industry-sticky-nav {
top: 58px;
overflow-x: auto;
}
.industry-sticky-nav .page-width {
width: max-content;
min-width: 760px;
}
.industry-sticky-nav button {
width: 152px;
}
.industry-solution {
scroll-margin-top: 126px;
padding-top: 84px;
padding-bottom: 94px;
}
.industry-solution-grid {
gap: 44px;
}
.industry-number {
margin-bottom: 24px;
}
.industry-strategy {
max-width: 760px;
}
.industry-visual {
width: min(620px, 100%);
min-height: 520px;
}
.more-industries-grid {
gap: 45px;
}
}
@media (max-width: 600px) {
.solutions-hero-grid {
padding-top: 54px;
}
.solutions-hero-copy h1 {
font-size: clamp(36px, 10vw, 48px);
}
.solutions-hero-copy > p:nth-of-type(2) {
font-size: 15px;
}
.solutions-hero-copy > .primary-button {
margin-top: 25px;
}
.solutions-hero-visual {
aspect-ratio: 0.98;
}
.solutions-orbit-b {
width: 340px;
height: 340px;
}
.solutions-orbit-a {
width: 255px;
height: 255px;
}
.solutions-core {
width: 125px;
height: 125px;
}
.solutions-core strong {
font-size: 15px;
}
.industry-node {
width: 60px;
height: 60px;
border-radius: 16px 6px 16px 6px;
}
.industry-node strong {
font-size: 12px;
}
.difference-section,
.more-industries-section {
padding-top: 76px;
padding-bottom: 86px;
}
.decision-factor-list article {
grid-template-columns: 42px 1fr;
gap: 12px;
padding: 20px 0;
}
.industry-solution {
padding-top: 72px;
padding-bottom: 82px;
}
.industry-number {
font-size: 62px;
}
.industry-intro h2 {
font-size: 29px;
}
.industry-strategy {
padding: 28px 0;
}
.industry-visual {
min-height: 420px;
}
.path-map {
width: 305px;
height: 270px;
}
.path-axis {
width: 190px;
height: 190px;
}
.path-axis::before {
width: 265px;
}
.path-axis::after {
height: 235px;
}
.path-center {
width: 92px;
height: 92px;
border-width: 7px;
}
.path-node {
min-width: 80px;
padding: 9px;
}
.industry-metrics {
right: 18px;
bottom: 17px;
gap: 14px;
}
.industry-metrics strong {
font-size: 18px;
}
.more-industry-list {
grid-template-columns: 1fr;
}
.more-industry-list button {
min-height: 72px;
}
.solutions-cta {
min-height: 400px;
}
.solutions-cta-content h2 br {
display: none;
}
}
@media (prefers-reduced-motion: reduce) {
.solutions-page *,
.solutions-page *::before,
.solutions-page *::after {
scroll-behavior: auto !important;
animation-duration: 0.01ms !important;
transition-duration: 0.01ms !important;
}
}
</style>