字体响应式

This commit is contained in:
小潘
2026-05-29 17:32:15 +08:00
parent 9b53072baa
commit ec6222d183
7 changed files with 79 additions and 98 deletions
+1 -1
View File
@@ -198,7 +198,7 @@ export default function HeroSection() {
{/* Heading */}
<h1 className="text-center"
style={{ animation: 'fadeInUp 1.4s cubic-bezier(0.16, 1, 0.3, 1) 0.4s both' }}>
<span className="block text-7xl md:text-9xl lg:text-[110px] font-black hero-main-title">
<span className="block text-5xl md:text-8xl lg:text-[110px] font-black hero-main-title">
智慧教育
</span>
<span className="block mt-3 text-3xl md:text-[42px] lg:text-[48px] font-extralight hero-sec-title">
+4
View File
@@ -8,6 +8,8 @@ export default function Navbar() {
const [mobileOpen, setMobileOpen] = useState(false);
const location = useLocation();
useEffect(() => {
const handleScroll = () => setScrolled(window.scrollY > window.innerHeight * 0.7);
window.addEventListener('scroll', handleScroll, { passive: true });
@@ -24,6 +26,8 @@ export default function Navbar() {
{ to: '/contact', label: '联系我们' },
];
return (
<>
<style>{`
+4 -24
View File
@@ -39,12 +39,7 @@ export const products = [
{ q: '能否与学校现有系统对接?', a: '支持。我们提供标准API接口,可与学校现有的教务系统、学工系统、一卡通系统等进行数据对接,实现统一身份认证和数据共享。' },
{ q: '售后服务如何保障?', a: '我们提供完整的培训服务:管理员培训、教师培训、学生培训。售后阶段配备专属客户经理,7×24小时响应,定期回访优化。' },
{ q: '数据安全怎么保证?', a: '系统通过等保三级认证,采用银行级数据加密存储,每日自动备份,多机房容灾。所有数据存储在国内合规云服务器,确保数据安全合规。' },
],
demo: {
url: 'https://demo.xunchi.com/smart-campus',
account: 'demo',
password: 'demo123',
},
]
},
{
slug: 'exam-system',
@@ -84,12 +79,7 @@ export const products = [
{ q: '能否与学校现有系统对接?', a: '支持。我们提供标准API接口,可与学校现有的教务系统、学工系统、一卡通系统等进行数据对接,实现统一身份认证和数据共享。' },
{ q: '售后服务如何保障?', a: '我们提供完整的培训服务:管理员培训、教师培训、学生培训。售后阶段配备专属客户经理,7×24小时响应,定期回访优化。' },
{ q: '数据安全怎么保证?', a: '系统通过等保三级认证,采用银行级数据加密存储,每日自动备份,多机房容灾。所有数据存储在国内合规云服务器,确保数据安全合规。' },
],
demo: {
url: 'https://demo.xunchi.com/exam-system',
account: 'demo',
password: 'demo123',
},
]
},
{
slug: 'teaching-resource',
@@ -137,12 +127,7 @@ export const products = [
{ q: '能否与学校现有系统对接?', a: '支持。我们提供标准API接口,可与学校现有的教务系统、学工系统、一卡通系统等进行数据对接,实现统一身份认证和数据共享。' },
{ q: '售后服务如何保障?', a: '我们提供完整的培训服务:管理员培训、教师培训、学生培训。售后阶段配备专属客户经理,7×24小时响应,定期回访优化。' },
{ q: '数据安全怎么保证?', a: '系统通过等保三级认证,采用银行级数据加密存储,每日自动备份,多机房容灾。所有数据存储在国内合规云服务器,确保数据安全合规。' },
],
demo: {
url: 'https://demo.xunchi.com/teaching-resource',
account: 'demo',
password: 'demo123',
},
]
},
{
slug: 'internship',
@@ -185,12 +170,7 @@ export const products = [
{ q: '能否与学校现有系统对接?', a: '支持。我们提供标准API接口,可与学校现有的教务系统、学工系统、一卡通系统等进行数据对接,实现统一身份认证和数据共享。' },
{ q: '售后服务如何保障?', a: '我们提供完整的培训服务:管理员培训、教师培训、学生培训。售后阶段配备专属客户经理,7×24小时响应,定期回访优化。' },
{ q: '数据安全怎么保证?', a: '系统通过等保三级认证,采用银行级数据加密存储,每日自动备份,多机房容灾。所有数据存储在国内合规云服务器,确保数据安全合规。' },
],
demo: {
url: 'https://demo.xunchi.com/internship',
account: 'demo',
password: 'demo123',
},
]
},
];
+1
View File
@@ -2,6 +2,7 @@
@theme {
--font-sans: "DengXian", "SimHei", "Heiti SC", sans-serif;
--breakpoint-xs: 480px;
}
@utility line-clamp-2 {
+2 -3
View File
@@ -105,7 +105,6 @@ export default function Contact() {
</ScrollReveal>
<div className="grid grid-cols-1 md:grid-cols-2 gap-6 mb-14 max-w-3xl mx-auto">
{agentBenefits.map((item, i) => {
const Icon = item.icon
return (
<ScrollReveal key={i} delay={i * 0.05}>
<div className="relative bg-white rounded-2xl p-8 md:p-10 h-full border border-gray-100 hover:shadow-xl hover:shadow-[#043b8f]/5 transition-all duration-500 group overflow-hidden">
@@ -165,9 +164,9 @@ export default function Contact() {
/>
<div className="relative max-w-3xl mx-auto text-center">
<ScrollReveal>
<h2 className="text-5xl md:text-6xl font-bold text-white mb-8">携手讯驰 共建智慧校园</h2>
<h2 className="text-4xl md:text-6xl font-bold text-white mb-8">携手讯驰 共建智慧校园</h2>
<p className="text-white text-lg mb-14 max-w-xl mx-auto leading-relaxed">
<p className="text-white text-md mb-14 max-w-xl mx-auto leading-relaxed">
获取产品演示与个性化方案迈出数字化转型第一步
</p>
<div className="flex flex-col sm:flex-row gap-4 justify-center">
+52 -56
View File
@@ -1,14 +1,11 @@
import { Link } from 'react-router-dom';
import HeroSection from '../components/HeroSection'
import ProductCard from '../components/ProductCard'
import ScrollReveal from '../components/ScrollReveal'
import { products } from '../data/products'
import RosePieChart from '../components/RosePieChart'
import hunBg from '../assets/images/hun.jpg'
import {
MapPin, CheckCircle2, HeadphonesIcon, ShieldCheck,
ArrowRight, Play, Quote, Award, Users, Building2, BookOpen, Briefcase
} from 'lucide-react'
import {ArrowRight, Play, Users, Building2} from 'lucide-react'
/* ─── Section 3: 数据亮点 ─── */
const stats = [
@@ -79,23 +76,8 @@ const customerCards = [
},
]
/* ─── Section 8: 荣誉展示 ─── */
const honors = [
{ icon: Award, title: '高新技术企业', desc: '国家级高新技术企业认定,技术创新能力获官方认可' },
{ icon: ShieldCheck, title: 'AAA级信用企业', desc: '企业信用等级AAA级,商业信誉优良' },
{ icon: BookOpen, title: 'ISO五项认证', desc: '质量、环境、安全、信息、服务五大国际体系认证' },
{ icon: CheckCircle2, title: '软件著作权40+', desc: '拥有40余项软件著作权,自主知识产权体系完善' },
{ icon: Briefcase, title: '等保三级备案', desc: '信息系统安全等级保护三级,数据安全保障有力' },
{ icon: HeadphonesIcon, title: '全周期服务', desc: '需求调研到运维保障,提供一站式本地化服务' },
]
const certifications = [
'ISO 9001 质量管理体系',
'ISO 14001 环境管理体系',
'ISO 45001 职业健康安全管理体系',
'ISO 27001 信息安全管理体系',
'ISO 20000 信息技术服务管理体系',
]
/* ─── Animated counter ─── */
function StatNumber({ target, suffix }) {
@@ -132,6 +114,20 @@ import { useState, useEffect, useRef } from 'react'
export default function Home() {
const [activeCapability, setActiveCapability] = useState(0)
const [tagRadius, setTagRadius] = useState(68)
useEffect(() => {
const updateRadius = () => {
const w = window.innerWidth
if (w < 480) setTagRadius(40)
else if (w < 768) setTagRadius(48)
else if (w < 1024) setTagRadius(54)
else setTagRadius(60)
}
updateRadius()
window.addEventListener('resize', updateRadius)
return () => window.removeEventListener('resize', updateRadius)
}, [])
return (
<main>
@@ -149,10 +145,10 @@ export default function Home() {
<div className="grid grid-cols-2 md:grid-cols-4 gap-8 md:gap-10">
{stats.map((s, i) => (
<div key={i} className="text-center">
<div className="text-4xl md:text-5xl font-black text-[#004ec4] tabular-nums">
<div className="text-3xl xs:text-4xl md:text-5xl lg:text-6xl font-black text-[#004ec4] tabular-nums">
<StatNumber target={s.num} suffix={s.suffix} />
</div>
<div className="mt-3 text-sm text-[#64748b] font-medium">{s.label}</div>
<div className="mt-3 text-xs xs:text-sm md:text-base text-[#64748b] font-medium">{s.label}</div>
</div>
))}
</div>
@@ -165,9 +161,9 @@ export default function Home() {
<section id="products" className="py-20 px-4 bg-white">
<div className="max-w-6xl mx-auto">
<ScrollReveal className="text-center mb-14">
<p className="text-xs text-[#004ec4] tracking-[0.25em] uppercase mb-3 font-semibold">Core Capabilities</p>
<h2 className="text-5xl md:text-7xl font-bold text-[#0f172a] mb-6">四大产品体系</h2>
<p className="text-[#64748b] text-lg md:text-xl mx-auto whitespace-nowrap mb-4 leading-relaxed">全面覆盖职业院校教学管理党建科研四大核心场景为数字化校园建设提供一站式解决方案</p>
<p className="text-[10px] xs:text-xs text-[#004ec4] tracking-[0.25em] uppercase mb-3 font-semibold">Core Capabilities</p>
<h2 className="text-3xl xs:text-4xl sm:text-5xl md:text-7xl font-bold text-[#0f172a] mb-6">四大产品体系</h2>
<p className="text-[#64748b] text-sm xs:text-base md:text-lg lg:text-xl mx-auto md:whitespace-nowrap mb-4 leading-relaxed">全面覆盖职业院校教学管理党建科研四大核心场景为数字化校园建设提供一站式解决方案</p>
</ScrollReveal>
{/* Tab bar */}
@@ -177,12 +173,12 @@ export default function Home() {
<button
key={p.slug}
onClick={() => setActiveCapability(i)}
className={`flex items-center gap-2 px-6 py-3 rounded-lg text-sm font-medium transition-all border ${activeCapability === i
className={`flex items-center gap-1.5 xs:gap-2 px-3 xs:px-4 sm:px-6 py-2 xs:py-3 rounded-lg text-xs xs:text-sm font-medium transition-all border ${activeCapability === i
? 'text-[#043b8f] border-[#043b8f]'
: 'text-[#475569] border-gray-200 hover:text-[#043b8f] hover:border-[#043b8f]'
}`}
>
<p.icon className="w-5 h-5" style={{ color: activeCapability === i ? '#043b8f' : p.themeColor }} />
<p.icon className="w-4 h-4 xs:w-5 xs:h-5" style={{ color: activeCapability === i ? '#043b8f' : p.themeColor }} />
{p.name}
</button>
))}
@@ -222,15 +218,15 @@ export default function Home() {
: 'bg-gray-100'
}`} />
</div>
<h3 className={`text-2xl font-bold transition-colors duration-300 ${activeCapability === idx ? 'text-[#043b8f]' : 'text-[#0f172a]'
<h3 className={`text-lg xs:text-xl sm:text-2xl font-bold transition-colors duration-300 ${activeCapability === idx ? 'text-[#043b8f]' : 'text-[#0f172a]'
}`}>{c.title}</h3>
<p className={`text-base mt-1.5 font-medium transition-colors duration-300 ${activeCapability === idx ? 'text-[#043b8f]/60' : 'text-[#94a3b8]'
<p className={`text-sm xs:text-base mt-1.5 font-medium transition-colors duration-300 ${activeCapability === idx ? 'text-[#043b8f]/60' : 'text-[#94a3b8]'
}`}>{c.sub}</p>
<p className="text-base text-[#334155] leading-[2] mt-4">{c.desc}</p>
<p className="text-sm xs:text-base text-[#334155] leading-[2] mt-4">{c.desc}</p>
{c.tip && (
<div className="mt-5 flex flex-wrap gap-2">
{c.tip.split('、').map((t, ti) => (
<span key={ti} className={`px-4 py-1.5 text-sm font-medium rounded-md transition-all duration-200 ${
<span key={ti} className={`px-3 py-1 xs:px-4 xs:py-1.5 text-xs xs:text-sm font-medium rounded-md transition-all duration-200 ${
activeCapability === idx
? 'text-[#043b8f] bg-[#043b8f]/[0.08]'
: 'text-[#94a3b8] bg-gray-50'
@@ -276,25 +272,25 @@ export default function Home() {
<div className="relative max-w-5xl mx-auto text-center">
<ScrollReveal>
<p className="text-xs text-white/80 tracking-[0.3em] uppercase mb-4 font-semibold">Why Choose Us</p>
<h2 className="text-4xl md:text-6xl font-black mb-6 leading-tight text-white"
<p className="text-[10px] xs:text-xs text-white/80 tracking-[0.3em] uppercase mb-4 font-semibold">Why Choose Us</p>
<h2 className="text-3xl xs:text-4xl md:text-6xl font-black mb-6 leading-tight text-white"
style={{
textShadow: '0 4px 30px rgba(59,130,246,0.3), 0 2px 4px rgba(0,0,0,0.4)',
}}>为什么选择讯驰</h2>
<div className="flex items-center justify-center gap-3 mb-16">
<span className="w-12 h-px bg-gradient-to-r from-transparent to-white/60" />
<p className="text-white text-xl md:text-2xl font-medium tracking-wider">AAA级信用企业 · 高新技术企业</p>
<p className="text-white text-base xs:text-lg sm:text-xl md:text-2xl font-medium tracking-wider">AAA级信用企业 · 高新技术企业</p>
<span className="w-12 h-px bg-gradient-to-l from-transparent to-white/60" />
</div>
</ScrollReveal>
{/* Surrounding tags */}
<ScrollReveal>
<div className="relative w-[320px] h-[320px] md:w-[420px] md:h-[420px] mx-auto mb-16">
<div className="relative w-[280px] h-[280px] xs:w-[320px] xs:h-[320px] md:w-[420px] md:h-[420px] lg:w-[500px] lg:h-[500px] mx-auto mb-16">
{/* Outer rings */}
<div className="absolute inset-0 rounded-full border border-white/[0.08]" />
<div className="absolute inset-8 rounded-full border border-white/[0.06]" />
<div className="absolute inset-16 rounded-full border border-white/[0.04]" />
<div className="absolute inset-6 xs:inset-8 md:inset-10 lg:inset-12 rounded-full border border-white/[0.06]" />
<div className="absolute inset-12 xs:inset-16 md:inset-20 lg:inset-24 rounded-full border border-white/[0.04]" />
{/* Orbiting dots */}
<div className="absolute w-2 h-2 rounded-full bg-[#004ec4]"
@@ -310,7 +306,7 @@ export default function Home() {
{ text: '数据安全,合规可靠', angle: 120 },
].map((tag, i) => {
const rad = (tag.angle * Math.PI) / 180
const r = 68
const r = tagRadius
const x = 50 + r * Math.sin(rad)
const y = 50 - r * Math.cos(rad)
const colors = [
@@ -331,7 +327,7 @@ export default function Home() {
>
{/* 书签主体 */}
<div
className="relative px-6 py-3.5 text-base font-bold text-white/95 overflow-hidden"
className="relative px-3 py-2 xs:px-4 xs:py-2.5 md:px-6 md:py-3.5 lg:px-7 lg:py-4 text-xs xs:text-sm md:text-base lg:text-lg font-bold text-white/95 overflow-hidden"
style={{
background: colors[i].bg,
borderRadius: '12px 12px 4px 4px',
@@ -352,8 +348,8 @@ export default function Home() {
}}
/>
{i < 2
? <>{tag.text}<span className="inline-block w-2 h-2 rounded-full bg-white/80 ml-2 align-middle" /></>
: <><span className="inline-block w-2 h-2 rounded-full bg-white/80 mr-2 align-middle" />{tag.text}</>
? <>{tag.text}<span className="inline-block w-1.5 h-1.5 xs:w-2 xs:h-2 rounded-full bg-white/80 ml-1.5 xs:ml-2 align-middle" /></>
: <><span className="inline-block w-1.5 h-1.5 xs:w-2 xs:h-2 rounded-full bg-white/80 mr-1.5 xs:mr-2 align-middle" />{tag.text}</>
}
</div>
</div>
@@ -366,7 +362,7 @@ export default function Home() {
<ScrollReveal>
<Link
to="/contact"
className="inline-flex items-center gap-2 px-8 py-3 rounded-full text-base font-medium text-white border border-white/20 hover:bg-white/10 hover:border-white/40 transition-all duration-300"
className="inline-flex items-center gap-2 px-6 xs:px-8 py-2.5 xs:py-3 rounded-full text-sm xs:text-base font-medium text-white border border-white/20 hover:bg-white/10 hover:border-white/40 transition-all duration-300"
style={{ boxShadow: '0 4px 20px rgba(0,0,0,0.2)' }}
>
获取解决方案
@@ -382,9 +378,9 @@ export default function Home() {
<section className="py-20 px-4 bg-[#f8fafc]">
<div className="max-w-6xl mx-auto">
<ScrollReveal className="text-center mb-14">
<p className="text-xs text-[#004ec4] tracking-[0.25em] uppercase mb-3 font-semibold">Recognition</p>
<h2 className="text-5xl md:text-6xl font-bold text-[#0f172a] mb-4">资质与认证</h2>
<p className="text-[#64748b] text-base max-w-xl mx-auto">AAA级信用企业 · 高新技术企业</p>
<p className="text-[10px] xs:text-xs text-[#004ec4] tracking-[0.25em] uppercase mb-3 font-semibold">Recognition</p>
<h2 className="text-3xl xs:text-4xl sm:text-5xl md:text-6xl font-bold text-[#0f172a] mb-4">资质与认证</h2>
<p className="text-[#64748b] text-sm xs:text-base max-w-xl mx-auto">AAA级信用企业 · 高新技术企业</p>
</ScrollReveal>
<div className="grid grid-cols-1 md:grid-cols-3 gap-6">
@@ -398,13 +394,13 @@ export default function Home() {
<div className="absolute top-0 right-0 w-20 h-20 bg-[#043b8f]/[0.03] rounded-bl-full opacity-0 group-hover:opacity-100 transition-opacity duration-500" />
<div className="absolute bottom-0 left-0 w-14 h-14 border border-[#043b8f]/[0.06] rounded-tr-3xl opacity-0 group-hover:opacity-100 transition-opacity duration-500" />
{/* 图标 */}
<div className="w-16 h-16 rounded-xl bg-[#043b8f]/[0.06] border border-[#043b8f]/10 flex items-center justify-center mb-5 group-hover:bg-[#043b8f]/10 transition-all duration-300">
<Icon className="w-8 h-8 text-[#043b8f]" />
<div className="w-12 h-12 xs:w-14 xs:h-14 sm:w-16 sm:h-16 rounded-xl bg-[#043b8f]/[0.06] border border-[#043b8f]/10 flex items-center justify-center mb-5 group-hover:bg-[#043b8f]/10 transition-all duration-300">
<Icon className="w-6 h-6 xs:w-7 xs:h-7 sm:w-8 sm:h-8 text-[#043b8f]" />
</div>
{/* 数字 */}
<div className="text-5xl font-black text-transparent bg-clip-text bg-gradient-to-b from-[#0f172a] to-[#334155] mb-1">{card.count}</div>
<div className="text-3xl xs:text-4xl sm:text-5xl font-black text-transparent bg-clip-text bg-gradient-to-b from-[#0f172a] to-[#334155] mb-1">{card.count}</div>
{/* 标题 */}
<h3 className="text-lg font-bold text-[#0f172a] mb-3">{card.title}</h3>
<h3 className="text-sm xs:text-base sm:text-lg font-bold text-[#0f172a] mb-3">{card.title}</h3>
{/* 分隔线 */}
<div className="w-8 h-px bg-gradient-to-r from-transparent via-[#043b8f]/20 to-transparent mb-3" />
{/* 描述 */}
@@ -431,22 +427,22 @@ export default function Home() {
/>
<div className="relative max-w-3xl mx-auto text-center">
<ScrollReveal>
<h2 className="text-5xl md:text-6xl font-bold text-white mb-8">携手讯驰共建智慧校园</h2>
<p className="text-white text-lg mb-14 max-w-xl mx-auto leading-relaxed">
<h2 className="text-3xl xs:text-4xl sm:text-5xl md:text-6xl font-bold text-white mb-8">携手讯驰共建智慧校园</h2>
<p className="text-white text-sm xs:text-base sm:text-lg mb-14 max-w-xl mx-auto leading-relaxed">
获取产品演示与个性化方案迈出数字化转型第一步
</p>
<div className="flex flex-col sm:flex-row gap-4 justify-center">
<div className="flex flex-col sm:flex-row gap-3 xs:gap-4 justify-center mx-auto w-[60%] xs:w-[85%] sm:w-auto">
<Link
to="/contact"
className="inline-flex items-center gap-2 px-8 py-3 rounded-xl text-sm font-semibold text-white border border-white hover:bg-white/10 transition-all"
className="inline-flex items-center justify-center gap-2 px-5 xs:px-6 py-2.5 xs:py-3 rounded-xl text-md xs:text-sm font-semibold text-white border border-white hover:bg-white/10 transition-all"
>
联系我们
<ArrowRight className="w-4 h-4" />
<ArrowRight className="w-3.5 h-3.5 xs:w-4 xs:h-4" />
</Link>
<a
href="tel:07713864294"
className="inline-flex items-center gap-2 px-8 py-3 rounded-xl text-sm font-semibold text-white border border-white hover:bg-white/10 transition-all"
className="inline-flex items-center justify-center gap-2 px-5 xs:px-6 py-2.5 xs:py-3 rounded-xl text-md xs:text-sm font-semibold text-white border border-white hover:bg-white/10 transition-all"
>
致电 0771-3864294
</a>
+15 -14
View File
@@ -1,13 +1,14 @@
import { useParams, Link } from 'react-router-dom'
import { ChevronDown, ArrowRight, Shield, Clock, Headphones, Sparkles, CheckCircle2, AlertCircle } from 'lucide-react'
import { getProduct, products } from '../data/products'
import ProductCard from '../components/ProductCard'
import { ChevronDown, ArrowRight, Shield, Clock, Headphones, AlertCircle } from 'lucide-react'
import { getProduct } from '../data/products'
import ScrollReveal from '../components/ScrollReveal'
export default function ProductPage() {
const { slug } = useParams()
const product = getProduct(slug)
if (!product) {
return (
<div className="min-h-screen flex items-center justify-center bg-white">
@@ -20,8 +21,8 @@ export default function ProductPage() {
)
}
const Icon = product.icon
const otherProducts = products.filter(p => p.slug !== slug)
// const Icon = product.icon
// const otherProducts = products.filter(p => p.slug !== slug)
return (
<main className="bg-white">
@@ -40,7 +41,7 @@ export default function ProductPage() {
<div className="relative max-w-4xl mx-auto px-6 text-center pt-32">
<h1 className="text-5xl md:text-7xl font-extrabold mb-5 tracking-tight leading-[1.1] text-white hero-product-title">
<h1 className="text-4xl md:text-7xl font-extrabold mb-5 tracking-tight leading-[1.1] text-white hero-product-title">
{product.name}
</h1>
<p className="text-2xl md:text-3xl mb-6 max-w-xl mx-auto leading-relaxed hero-product-slogan">
@@ -107,7 +108,7 @@ export default function ProductPage() {
<span className="w-5 h-[2px] rounded-full bg-[#043b8f]" />
<span className="text-xs font-semibold uppercase tracking-[0.25em] text-[#043b8f]">Pain Points</span>
</div>
<h2 className="text-4xl md:text-[3.5rem] font-black text-[#0f172a] tracking-tight leading-[1.1]">
<h2 className="text-2xl md:text-[3.5rem] font-black text-[#0f172a] tracking-tight leading-[1.1]">
{product.painPointsTitle || `${product.name}解决的核心问题`}
</h2>
<p className="text-[#475569] text-lg md:text-xl mt-6 max-w-xl leading-relaxed">深入理解管理难题提供经过实战验证的解决方案</p>
@@ -147,7 +148,7 @@ export default function ProductPage() {
<span className="w-5 h-[2px] rounded-full bg-[#043b8f]" />
<span className="text-xs font-semibold uppercase tracking-[0.25em] text-[#043b8f]">Core Features</span>
</div>
<h2 className="text-4xl md:text-[3.5rem] font-black text-[#0f172a] tracking-tight leading-[1.1]">
<h2 className="text-3xl md:text-[3.5rem] font-black text-[#0f172a] tracking-tight leading-[1.1]">
核心功能
</h2>
{product.target && (
@@ -287,21 +288,21 @@ export default function ProductPage() {
/>
<div className="relative max-w-3xl mx-auto text-center">
<ScrollReveal>
<h2 className="text-5xl md:text-6xl font-bold text-white mb-8">{product.name}感兴趣</h2>
<p className="text-white text-lg mb-14 max-w-xl mx-auto leading-relaxed">
<h2 className="text-3xl xs:text-4xl sm:text-5xl md:text-6xl font-bold text-white mb-8">{product.name}感兴趣</h2>
<p className="text-white text-sm xs:text-base sm:text-lg mb-14 max-w-xl mx-auto leading-relaxed">
获取产品演示与个性化方案迈出数字化转型第一步
</p>
<div className="flex flex-col sm:flex-row gap-4 justify-center">
<div className="flex flex-col sm:flex-row gap-3 xs:gap-4 justify-center mx-auto w-[90%] xs:w-[85%] sm:w-auto">
<Link
to="/contact"
className="inline-flex items-center gap-2 px-8 py-3 rounded-xl text-sm font-semibold text-white border border-white hover:bg-white/10 transition-all"
className="inline-flex items-center justify-center gap-2 px-5 xs:px-6 py-2.5 xs:py-3 rounded-xl text-xs xs:text-sm font-semibold text-white border border-white hover:bg-white/10 transition-all"
>
联系我们
<ArrowRight className="w-4 h-4" />
<ArrowRight className="w-3.5 h-3.5 xs:w-4 xs:h-4" />
</Link>
<a
href="tel:07713864294"
className="inline-flex items-center gap-2 px-8 py-3 rounded-xl text-sm font-semibold text-white border border-white hover:bg-white/10 transition-all"
className="inline-flex items-center justify-center gap-2 px-5 xs:px-6 py-2.5 xs:py-3 rounded-xl text-xs xs:text-sm font-semibold text-white border border-white hover:bg-white/10 transition-all"
>
致电 0771-3864294
</a>