Remove em-dashes and format user-facing text content punctuation
This commit is contained in:
@@ -69,7 +69,7 @@ export default function AboutUsPage() {
|
|||||||
<span style={{ color: '#f4be28' }}>Behind</span> Loyaly.
|
<span style={{ color: '#f4be28' }}>Behind</span> Loyaly.
|
||||||
</h1>
|
</h1>
|
||||||
<p data-gsap="text" style={{ fontSize: 'clamp(16px, 1.5vw, 20px)', lineHeight: 1.75, color: 'rgba(255,255,255,0.55)', fontFamily: 'Sora, sans-serif', maxWidth: 560, margin: '0 auto' }}>
|
<p data-gsap="text" style={{ fontSize: 'clamp(16px, 1.5vw, 20px)', lineHeight: 1.75, color: 'rgba(255,255,255,0.55)', fontFamily: 'Sora, sans-serif', maxWidth: 560, margin: '0 auto' }}>
|
||||||
We're not just building a product. We're redefining retail — one store at a time.
|
We're not just building a product. We're redefining retail, one store at a time.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -89,7 +89,7 @@ export default function AboutUsPage() {
|
|||||||
Offline retail deserves the same intelligence as online. A store owner in Coimbatore shouldn't be flying blind while an e-commerce algorithm knows exactly what every user wants.
|
Offline retail deserves the same intelligence as online. A store owner in Coimbatore shouldn't be flying blind while an e-commerce algorithm knows exactly what every user wants.
|
||||||
</p>
|
</p>
|
||||||
<p style={{ fontSize: 'clamp(17px, 1.6vw, 22px)', lineHeight: 1.8, color: 'rgba(0,0,0,0.55)', fontFamily: 'Sora, sans-serif', margin: 0 }}>
|
<p style={{ fontSize: 'clamp(17px, 1.6vw, 22px)', lineHeight: 1.8, color: 'rgba(0,0,0,0.55)', fontFamily: 'Sora, sans-serif', margin: 0 }}>
|
||||||
Today, we're building a connected ecosystem where businesses grow smarter and customers shop better — together.
|
Today, we're building a connected ecosystem where businesses grow smarter and customers shop better together.
|
||||||
</p>
|
</p>
|
||||||
</Reveal>
|
</Reveal>
|
||||||
</div>
|
</div>
|
||||||
@@ -215,7 +215,7 @@ function TeamCarousel() {
|
|||||||
Builders. Thinkers.<br />Retail obsessives.
|
Builders. Thinkers.<br />Retail obsessives.
|
||||||
</h2>
|
</h2>
|
||||||
<p style={{ fontSize: 15, color: 'rgba(255,255,255,0.35)', fontFamily: 'Sora, sans-serif', margin: 0 }}>
|
<p style={{ fontSize: 15, color: 'rgba(255,255,255,0.35)', fontFamily: 'Sora, sans-serif', margin: 0 }}>
|
||||||
Profiles coming soon — we're still busy building the future of retail.
|
Profiles coming soon. We're still busy building the future of retail.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ const ARTICLES = [
|
|||||||
{
|
{
|
||||||
n: '01', tag: 'Analytics', readTime: '6 min',
|
n: '01', tag: 'Analytics', readTime: '6 min',
|
||||||
title: 'Why Footfall Data is the New Gold',
|
title: 'Why Footfall Data is the New Gold',
|
||||||
excerpt: "In an era where every click is tracked online, offline retailers are sitting on untapped behavioural gold — and most don't even know it.",
|
excerpt: "In an era where every click is tracked online, offline retailers are sitting on untapped behavioural gold, and most don't even know it.",
|
||||||
featured: true,
|
featured: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -33,7 +33,7 @@ const ARTICLES = [
|
|||||||
{
|
{
|
||||||
n: '03', tag: 'Technology', readTime: '8 min',
|
n: '03', tag: 'Technology', readTime: '8 min',
|
||||||
title: 'AI in Offline Retail',
|
title: 'AI in Offline Retail',
|
||||||
excerpt: 'From footfall heatmaps to purchase prediction — a deep look at how artificial intelligence is rewriting the rules for physical stores.',
|
excerpt: 'From footfall heatmaps to purchase prediction, a deep look at how artificial intelligence is rewriting the rules for physical stores.',
|
||||||
featured: false,
|
featured: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -87,7 +87,7 @@ export default function BlogMainPage() {
|
|||||||
<span style={{ color: '#f4be28' }}>Future of Retail.</span>
|
<span style={{ color: '#f4be28' }}>Future of Retail.</span>
|
||||||
</h1>
|
</h1>
|
||||||
<p data-gsap="text" style={{ fontSize: 'clamp(16px, 1.5vw, 20px)', lineHeight: 1.75, color: 'rgba(255,255,255,0.55)', fontFamily: 'Sora, sans-serif', maxWidth: 520, margin: '0 auto' }}>
|
<p data-gsap="text" style={{ fontSize: 'clamp(16px, 1.5vw, 20px)', lineHeight: 1.75, color: 'rgba(255,255,255,0.55)', fontFamily: 'Sora, sans-serif', maxWidth: 520, margin: '0 auto' }}>
|
||||||
Explore ideas, trends, and strategies shaping modern retail — from our team to yours.
|
Explore ideas, trends, and strategies shaping modern retail, from our team to yours.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -197,7 +197,7 @@ export default function BlogMainPage() {
|
|||||||
Stay ahead of retail.
|
Stay ahead of retail.
|
||||||
</h2>
|
</h2>
|
||||||
<p style={{ fontSize: 16, color: 'rgba(255,255,255,0.4)', fontFamily: 'Sora, sans-serif', margin: '0 auto 44px', maxWidth: 400, position: 'relative', zIndex: 2 }}>
|
<p style={{ fontSize: 16, color: 'rgba(255,255,255,0.4)', fontFamily: 'Sora, sans-serif', margin: '0 auto 44px', maxWidth: 400, position: 'relative', zIndex: 2 }}>
|
||||||
Get our latest insights on AI, footfall, and the future of physical retail — delivered monthly.
|
Get our latest insights on AI, footfall, and the future of physical retail, delivered monthly.
|
||||||
</p>
|
</p>
|
||||||
<div style={{ display: 'flex', gap: 12, justifyContent: 'center', flexWrap: 'wrap', position: 'relative', zIndex: 2 }}>
|
<div style={{ display: 'flex', gap: 12, justifyContent: 'center', flexWrap: 'wrap', position: 'relative', zIndex: 2 }}>
|
||||||
<input placeholder="your@email.com" style={{
|
<input placeholder="your@email.com" style={{
|
||||||
|
|||||||
@@ -10,19 +10,19 @@ const ARTICLE = {
|
|||||||
title: 'Why Footfall Data is the New Gold',
|
title: 'Why Footfall Data is the New Gold',
|
||||||
date: 'June 2026',
|
date: 'June 2026',
|
||||||
author: 'Loyaly.ai Team',
|
author: 'Loyaly.ai Team',
|
||||||
excerpt: 'In an era where every online click is tracked, offline retailers are sitting on untapped behavioural gold — and most don\'t even know it exists.',
|
excerpt: 'In an era where every online click is tracked, offline retailers are sitting on untapped behavioural gold, and most don\'t even know it exists.',
|
||||||
sections: [
|
sections: [
|
||||||
{
|
{
|
||||||
heading: 'The data gap in offline retail',
|
heading: 'The data gap in offline retail',
|
||||||
body: 'E-commerce has always had an advantage: every click, scroll, and abandoned cart is tracked and analysed. Offline retail never had this luxury — until now. Footfall data is rapidly becoming the most valuable asset a physical store can own. It tells you not just how many people walk in, but when, where they go, how long they stay, and whether they convert.',
|
body: 'E-commerce has always had an advantage: every click, scroll, and abandoned cart is tracked and analysed. Offline retail never had this luxury, until now. Footfall data is rapidly becoming the most valuable asset a physical store can own. It tells you not just how many people walk in, but when, where they go, how long they stay, and whether they convert.',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
heading: 'What footfall data actually tells you',
|
heading: 'What footfall data actually tells you',
|
||||||
body: 'A modern footfall intelligence system captures far more than a head count. It maps movement patterns through your store, identifies dwell zones, flags bottlenecks, and connects visit behaviour to purchase outcomes. When you overlay this with loyalty data — who the customer is, what they\'ve bought before, how long since their last visit — you get a complete picture that was previously impossible for offline businesses.',
|
body: 'A modern footfall intelligence system captures far more than a head count. It maps movement patterns through your store, identifies dwell zones, flags bottlenecks, and connects visit behaviour to purchase outcomes. When you overlay this with loyalty data: who the customer is, what they\'ve bought before, how long since their last visit, you get a complete picture that was previously impossible for offline businesses.',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
heading: 'Turning insights into revenue',
|
heading: 'Turning insights into revenue',
|
||||||
body: 'The real power of footfall data emerges when it drives action. If you know that 60% of visitors who enter your electronics section but leave without buying spend more than 12 minutes near the display stands, that\'s a cue for a targeted offer. Loyaly\'s Behavision AI does exactly this — it detects intent signals and triggers personalised engagements in real time, closing the gap between visit and purchase.',
|
body: 'The real power of footfall data emerges when it drives action. If you know that 60% of visitors who enter your electronics section but leave without buying spend more than 12 minutes near the display stands, that\'s a cue for a targeted offer. Loyaly\'s Behavision AI does exactly this: it detects intent signals and triggers personalised engagements in real time, closing the gap between visit and purchase.',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
heading: 'The competitive advantage is closing',
|
heading: 'The competitive advantage is closing',
|
||||||
@@ -103,7 +103,7 @@ export default function BlogSinglePage() {
|
|||||||
<p style={{ fontSize: 'clamp(18px, 2.2vw, 26px)', fontWeight: 800, color: '#0a0a0f', fontFamily: 'Sora, sans-serif', lineHeight: 1.4, margin: 0, letterSpacing: '-0.02em' }}>
|
<p style={{ fontSize: 'clamp(18px, 2.2vw, 26px)', fontWeight: 800, color: '#0a0a0f', fontFamily: 'Sora, sans-serif', lineHeight: 1.4, margin: 0, letterSpacing: '-0.02em' }}>
|
||||||
"Every day without footfall data is a day of lost insight."
|
"Every day without footfall data is a day of lost insight."
|
||||||
</p>
|
</p>
|
||||||
<footer style={{ fontSize: 13, color: 'rgba(0,0,0,0.4)', fontFamily: 'Sora, sans-serif', marginTop: 12 }}>— Loyaly.ai, 2026</footer>
|
<footer style={{ fontSize: 13, color: 'rgba(0,0,0,0.4)', fontFamily: 'Sora, sans-serif', marginTop: 12 }}>Loyaly.ai, 2026</footer>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
@@ -6,14 +6,14 @@ import GetInTouch from '@/components/GetInTouch';
|
|||||||
import BodyClassManager from '@/components/BodyClassManager';
|
import BodyClassManager from '@/components/BodyClassManager';
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: 'Loyaly.AI — AI Powered Retail Intelligence',
|
title: 'Loyaly.AI | AI Powered Retail Intelligence',
|
||||||
description:
|
description:
|
||||||
'Loyaly.AI is an AI powered retail intelligence platform that turns every store visit into a loyalty opportunity. Understand customers, drive engagement, and grow revenue.',
|
'Loyaly.AI is an AI powered retail intelligence platform that turns every store visit into a loyalty opportunity. Understand customers, drive engagement, and grow revenue.',
|
||||||
icons: {
|
icons: {
|
||||||
icon: '/favicon.ico',
|
icon: '/favicon.ico',
|
||||||
},
|
},
|
||||||
openGraph: {
|
openGraph: {
|
||||||
title: 'Loyaly.AI — AI Powered Retail Intelligence',
|
title: 'Loyaly.AI | AI Powered Retail Intelligence',
|
||||||
description:
|
description:
|
||||||
'Turn footfall into insight. Loyaly.AI uses AI to understand customer behaviour, personalise experiences, and maximise retail revenue.',
|
'Turn footfall into insight. Loyaly.AI uses AI to understand customer behaviour, personalise experiences, and maximise retail revenue.',
|
||||||
url: 'https://loyaly.ai',
|
url: 'https://loyaly.ai',
|
||||||
@@ -22,7 +22,7 @@ export const metadata: Metadata = {
|
|||||||
},
|
},
|
||||||
twitter: {
|
twitter: {
|
||||||
card: 'summary_large_image',
|
card: 'summary_large_image',
|
||||||
title: 'Loyaly.AI — AI Powered Retail Intelligence',
|
title: 'Loyaly.AI | AI Powered Retail Intelligence',
|
||||||
description:
|
description:
|
||||||
'Turn footfall into insight. Loyaly.AI uses AI to understand customer behaviour, personalise experiences, and maximise retail revenue.',
|
'Turn footfall into insight. Loyaly.AI uses AI to understand customer behaviour, personalise experiences, and maximise retail revenue.',
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ export default function SolutionsPage() {
|
|||||||
<span style={{ color: '#f4be28' }}>Retail Growth.</span>
|
<span style={{ color: '#f4be28' }}>Retail Growth.</span>
|
||||||
</h1>
|
</h1>
|
||||||
<p data-gsap="text" style={{ fontSize: 'clamp(16px, 1.6vw, 20px)', lineHeight: 1.75, color: 'rgba(255,255,255,0.55)', fontFamily: 'Sora, sans-serif', maxWidth: 540, margin: '0 auto 52px' }}>
|
<p data-gsap="text" style={{ fontSize: 'clamp(16px, 1.6vw, 20px)', lineHeight: 1.75, color: 'rgba(255,255,255,0.55)', fontFamily: 'Sora, sans-serif', maxWidth: 540, margin: '0 auto 52px' }}>
|
||||||
Instead of waiting for customers to walk in, create exciting reasons for them to come — with game-based campaigns, smart coupons, and a loyalty ecosystem that rewards every visit.
|
Instead of waiting for customers to walk in, create exciting reasons for them to come, with game based campaigns, smart coupons, and a loyalty ecosystem that rewards every visit.
|
||||||
</p>
|
</p>
|
||||||
<div style={{ display: 'flex', gap: 14, flexWrap: 'wrap', justifyContent: 'center' }}>
|
<div style={{ display: 'flex', gap: 14, flexWrap: 'wrap', justifyContent: 'center' }}>
|
||||||
<Link href="/contacts" style={{ padding: '18px 40px', background: '#f4be28', color: '#111', fontSize: 16, fontWeight: 800, borderRadius: 100, textDecoration: 'none', fontFamily: 'Sora, sans-serif', boxShadow: '0 16px 48px rgba(244,190,40,0.25)' }}>Explore Solutions →</Link>
|
<Link href="/contacts" style={{ padding: '18px 40px', background: '#f4be28', color: '#111', fontSize: 16, fontWeight: 800, borderRadius: 100, textDecoration: 'none', fontFamily: 'Sora, sans-serif', boxShadow: '0 16px 48px rgba(244,190,40,0.25)' }}>Explore Solutions →</Link>
|
||||||
@@ -154,7 +154,7 @@ export default function SolutionsPage() {
|
|||||||
<span style={{ color: '#f4be28' }}>meaningful in-store experience.</span>"
|
<span style={{ color: '#f4be28' }}>meaningful in-store experience.</span>"
|
||||||
</blockquote>
|
</blockquote>
|
||||||
<div style={{ height: 2, width: 80, background: '#f4be28', margin: '48px 0 32px' }} />
|
<div style={{ height: 2, width: 80, background: '#f4be28', margin: '48px 0 32px' }} />
|
||||||
<p style={{ fontSize: 16, color: 'rgba(255,255,255,0.4)', fontFamily: 'Sora, sans-serif', margin: 0 }}>— Loyaly.ai, 2025</p>
|
<p style={{ fontSize: 16, color: 'rgba(255,255,255,0.4)', fontFamily: 'Sora, sans-serif', margin: 0 }}>Loyaly.ai, 2025</p>
|
||||||
</RevealBlock>
|
</RevealBlock>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|||||||
@@ -171,7 +171,7 @@ export default function Footer() {
|
|||||||
borderTop: '1px solid rgba(255,255,255,0.05)',
|
borderTop: '1px solid rgba(255,255,255,0.05)',
|
||||||
fontSize: 13, color: 'rgba(255,255,255,0.25)', fontFamily: 'Sora, sans-serif',
|
fontSize: 13, color: 'rgba(255,255,255,0.25)', fontFamily: 'Sora, sans-serif',
|
||||||
}}>
|
}}>
|
||||||
<span>© {new Date().getFullYear()} Loyaly.AI — All rights reserved.</span>
|
<span>© {new Date().getFullYear()} Loyaly.AI. All rights reserved.</span>
|
||||||
<div style={{ display: 'flex', gap: 24 }}>
|
<div style={{ display: 'flex', gap: 24 }}>
|
||||||
{[['Terms', '/terms'], ['Privacy', '/privacy'], ['Cookies', '/cookies']].map(([l, h]) => (
|
{[['Terms', '/terms'], ['Privacy', '/privacy'], ['Cookies', '/cookies']].map(([l, h]) => (
|
||||||
<Link key={l} href={h} style={{ textDecoration: 'none', color: 'inherit', transition: 'color 0.2s' }}
|
<Link key={l} href={h} style={{ textDecoration: 'none', color: 'inherit', transition: 'color 0.2s' }}
|
||||||
|
|||||||
Reference in New Issue
Block a user