1a12fb870b
- New /developers/ page with API docs, SDKs, pricing, use cases - OpenAPI 3.0 spec for Orders, Missions, Photos, Analytics - Case study: Glasskiosken i Flatenbadet — complete ROI analysis - Updated /order/ with recurring missions and frequency dropdown
594 lines
37 KiB
HTML
594 lines
37 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Urban Growth Index — Landvex Intelligence</title>
|
|
<meta name="description" content="Growth velocity by district. Identifies emerging zones before they appear in official statistics or property price indexes. Launching August 2026.">
|
|
<link rel="canonical" href="https://www.landvex.com/intelligence/urban-growth-index/">
|
|
<meta name="robots" content="index, follow">
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:url" content="https://www.landvex.com/intelligence/urban-growth-index/">
|
|
<meta property="og:title" content="Urban Growth Index — Landvex Intelligence">
|
|
<meta property="og:description" content="Growth velocity by district. Identifies emerging zones before they appear in official statistics or property price indexes. Launching August 2026.">
|
|
<meta property="og:image" content="https://www.landvex.com/og-image.jpg">
|
|
<meta name="twitter:card" content="summary_large_image">
|
|
<meta name="twitter:title" content="Urban Growth Index — Landvex">
|
|
<meta name="twitter:description" content="Growth velocity by district — identifying emerging zones before they appear in official statistics or property price indexes.">
|
|
<meta name="twitter:image" content="https://www.landvex.com/og-image.jpg">
|
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
|
|
<link rel="icon" type="image/x-icon" href="/favicon.ico">
|
|
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
|
|
<link rel="manifest" href="/site.webmanifest">
|
|
<script type="application/ld+json">{
|
|
"@context": "https://schema.org",
|
|
"@type": "WebPage",
|
|
"name": "Urban Growth Index — Landvex",
|
|
"description": "Growth velocity by district — identifying emerging zones before they appear in official statistics or property price indexes.",
|
|
"url": "https://www.landvex.com/intelligence/urban-growth-index/",
|
|
"isPartOf": { "@type": "WebSite", "url": "https://www.landvex.com", "name": "Landvex" },
|
|
"publisher": { "@type": "Organization", "name": "Landvex", "url": "https://www.landvex.com" }
|
|
}</script>
|
|
<style>
|
|
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
|
:root {
|
|
--bg-dark: #f5f5f7;
|
|
--blue: #0066FF;
|
|
--blue-dark: #0052CC;
|
|
--blue-glow: rgba(0, 102, 255, 0.15);
|
|
--text-body: #3a3a3a;
|
|
--text-muted: #6B6B6B;
|
|
--text-light: #1d1d1f;
|
|
--text-dim: #6B6B6B;
|
|
--surface: #ffffff;
|
|
--surface-2: #f5f5f7;
|
|
--border: rgba(0,0,0,0.08);
|
|
--radius-sm: 8px;
|
|
--radius-md: 14px;
|
|
--radius-lg: 24px;
|
|
}
|
|
html { scroll-behavior: smooth; }
|
|
body {
|
|
font-family: -apple-system, BlinkMacSystemFont, 'Inter', 'Helvetica Neue', sans-serif;
|
|
background: var(--bg-dark);
|
|
color: var(--text-light);
|
|
line-height: 1.6;
|
|
-webkit-font-smoothing: antialiased;
|
|
}
|
|
a { color: inherit; text-decoration: none; }
|
|
nav {
|
|
position: fixed; top: 0; left: 0; right: 0; z-index: 100;
|
|
display: flex; align-items: center; justify-content: space-between;
|
|
padding: 0 40px; height: 64px;
|
|
background: rgba(255,255,255,0.88);
|
|
backdrop-filter: blur(16px);
|
|
-webkit-backdrop-filter: blur(16px);
|
|
border-bottom: 1px solid var(--border);
|
|
}
|
|
.nav-logo {
|
|
font-size: 18px;
|
|
font-weight: 700;
|
|
letter-spacing: -0.3px;
|
|
color: #1d1d1f; }
|
|
.nav-links { display: flex; gap: 32px; list-style: none; }
|
|
.nav-links a { font-size: 14px; color: var(--text-dim); transition: color 0.2s; }
|
|
.nav-links a:hover { color: #1d1d1f; }
|
|
.btn {
|
|
display: inline-flex; align-items: center; gap: 6px;
|
|
padding: 10px 22px;
|
|
background: var(--blue); color: #1d1d1f;
|
|
font-size: 14px; font-weight: 600;
|
|
border-radius: var(--radius-md); border: none; cursor: pointer;
|
|
transition: background 0.2s, transform 0.15s;
|
|
}
|
|
.btn:hover { background: var(--blue-dark); transform: translateY(-1px); }
|
|
.btn-outline {
|
|
background: transparent;
|
|
border: 1.5px solid rgba(0,0,0,0.18);
|
|
color: var(--text-light);
|
|
}
|
|
.btn-outline:hover { background: rgba(0,0,0,0.04); transform: translateY(-1px); }
|
|
.btn-lg { padding: 14px 30px; font-size: 16px; }
|
|
.hero {
|
|
min-height: 80vh;
|
|
display: flex; flex-direction: column; align-items: center; justify-content: center;
|
|
text-align: center; padding: 120px 24px 80px;
|
|
position: relative; overflow: hidden;
|
|
}
|
|
.hero::before {
|
|
content: '';
|
|
position: absolute; top: -200px; left: 50%; transform: translateX(-50%);
|
|
width: 900px; height: 600px;
|
|
background: radial-gradient(ellipse at center, rgba(0,102,255,0.12) 0%, transparent 70%);
|
|
pointer-events: none;
|
|
}
|
|
.hero-eyebrow {
|
|
display: inline-flex; align-items: center; gap: 8px;
|
|
background: rgba(0,102,255,0.1); border: 1px solid rgba(0,102,255,0.25);
|
|
color: #5599ff; font-size: 12px; font-weight: 600;
|
|
letter-spacing: 0.08em; text-transform: uppercase;
|
|
padding: 6px 16px; border-radius: 100px; margin-bottom: 28px;
|
|
}
|
|
.hero h1 {
|
|
font-size: clamp(36px, 6vw, 68px); font-weight: 800;
|
|
letter-spacing: -2px; line-height: 1.05; color: #1d1d1f;
|
|
max-width: 820px; margin-bottom: 24px;
|
|
}
|
|
.hero-sub {
|
|
font-size: clamp(16px, 2vw, 19px); color: var(--text-dim);
|
|
max-width: 640px; line-height: 1.65; margin-bottom: 40px;
|
|
}
|
|
.hero-ctas { display: flex; gap: 14px; flex-wrap: wrap; justify-content: center; }
|
|
.container { max-width: 1140px; margin: 0 auto; }
|
|
section { padding: 80px 24px; }
|
|
.section-label {
|
|
font-size: 12px; font-weight: 700; letter-spacing: 0.1em;
|
|
text-transform: uppercase; color: var(--blue); margin-bottom: 16px;
|
|
}
|
|
.section-title {
|
|
font-size: clamp(26px, 3.5vw, 40px); font-weight: 800;
|
|
letter-spacing: -1px; line-height: 1.1; color: #1d1d1f; margin-bottom: 16px;
|
|
}
|
|
.section-title-light { color: #0a0a0a; }
|
|
.section-sub { font-size: 17px; color: var(--text-dim); max-width: 560px; line-height: 1.7; }
|
|
.contact-form {
|
|
background: var(--surface); border: 1px solid var(--border);
|
|
border-radius: var(--radius-lg); padding: 40px; text-align: left;
|
|
}
|
|
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
|
|
.form-group { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
|
|
.form-group label { font-size: 13px; font-weight: 600; color: var(--text-dim); }
|
|
.form-group input, .form-group textarea {
|
|
background: var(--bg-dark); border: 1.5px solid var(--border);
|
|
border-radius: var(--radius-md); color: #1d1d1f; font-size: 15px;
|
|
font-family: inherit; padding: 12px 16px; outline: none;
|
|
transition: border-color 0.2s; width: 100%;
|
|
}
|
|
.form-group input:focus, .form-group textarea:focus { border-color: var(--blue); }
|
|
.form-group input::placeholder, .form-group textarea::placeholder { color: var(--text-muted); }
|
|
.form-group textarea { min-height: 120px; resize: vertical; }
|
|
.form-note { font-size: 12px; color: var(--text-muted); margin-top: 12px; text-align: center; }
|
|
#form-message {
|
|
display: none; padding: 14px 20px; border-radius: var(--radius-md);
|
|
font-size: 14px; font-weight: 600; text-align: center; margin-top: 16px;
|
|
}
|
|
#form-message.success { background: rgba(0,200,80,0.1); border: 1px solid rgba(0,200,80,0.25); color: #4ade80; }
|
|
#form-message.error { background: rgba(255,60,60,0.1); border: 1px solid rgba(255,60,60,0.25); color: #f87171; }
|
|
footer { border-top: 1px solid var(--border); padding: 40px; }
|
|
.footer-inner {
|
|
max-width: 1140px; margin: 0 auto;
|
|
display: flex; align-items: center; justify-content: space-between;
|
|
flex-wrap: wrap; gap: 20px;
|
|
}
|
|
.footer-logo { font-size: 17px; font-weight: 700; color: #1d1d1f; }
|
|
.footer-copy { font-size: 13px; color: var(--text-muted); }
|
|
.footer-tagline { font-size: 12px; color: var(--text-muted); margin-top: 4px; }
|
|
.footer-links { display: flex; gap: 24px; align-items: center; flex-wrap: wrap; }
|
|
.footer-links a { font-size: 14px; color: var(--text-muted); transition: color 0.2s; }
|
|
.footer-links a:hover { color: #1d1d1f; }
|
|
.footer-social {
|
|
width: 32px; height: 32px; border: 1px solid var(--border); border-radius: var(--radius-md);
|
|
display: flex; align-items: center; justify-content: center;
|
|
transition: border-color 0.2s, background 0.2s;
|
|
}
|
|
.footer-social:hover { border-color: rgba(0,0,0,0.25); background: rgba(0,0,0,0.04); }
|
|
@media (max-width: 900px) {
|
|
nav { padding: 0 20px; }
|
|
.nav-links { display: none; }
|
|
}
|
|
@media (max-width: 600px) {
|
|
section { padding: 48px 0 !important; }
|
|
.container { padding: 0 16px !important; box-sizing: border-box; }
|
|
.form-row { grid-template-columns: 1fr !important; }
|
|
.contact-form { padding: 24px 20px; }
|
|
.footer-inner { flex-direction: column; text-align: center; }
|
|
[style*="grid-template-columns:1fr 1fr"] { grid-template-columns: 1fr !important; }
|
|
[style*="grid-template-columns:repeat(auto-fit,minmax(300px"] { grid-template-columns: 1fr !important; }
|
|
[style*="grid-template-columns:repeat(auto-fit,minmax(260px"] { grid-template-columns: 1fr !important; }
|
|
}
|
|
|
|
.lv-disclaimer{font-size:.75rem;color:rgba(0,0,0,.75);margin-top:24px;padding:12px 16px;background:rgba(0,0,0,.04);border-radius: var(--radius-md);line-height:1.6;max-width:800px}
|
|
.lv-disclaimer a{color:rgba(0,0,0,.65);text-decoration:underline}
|
|
.lv-disclaimer--light{color:#888;background:#f5f5f5}
|
|
.lv-disclaimer--light a{color:#555}
|
|
</style>
|
|
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "BreadcrumbList",
|
|
"itemListElement": [
|
|
{
|
|
"@type": "ListItem",
|
|
"position": 1,
|
|
"name": "Landvex",
|
|
"item": "https://www.landvex.com/"
|
|
},
|
|
{
|
|
"@type": "ListItem",
|
|
"position": 2,
|
|
"name": "Intelligence",
|
|
"item": "https://www.landvex.com/intelligence/"
|
|
},
|
|
{
|
|
"@type": "ListItem",
|
|
"position": 3,
|
|
"name": "Urban Growth Index",
|
|
"item": "https://www.landvex.com/intelligence/urban-growth-index/"
|
|
}
|
|
]
|
|
}
|
|
</script>
|
|
<link rel="alternate" hreflang="x-default" href="https://www.landvex.com/">
|
|
<link rel="alternate" hreflang="en" href="https://www.landvex.com/">
|
|
<link rel="alternate" hreflang="sv" href="https://landvex.se/">
|
|
<link rel="alternate" hreflang="de" href="https://landvex.de/">
|
|
<link rel="alternate" hreflang="fr" href="https://landvex.fr/">
|
|
<link rel="alternate" hreflang="en-GB" href="https://landvex.co.uk/">
|
|
<link rel="alternate" hreflang="it" href="https://landvex.it/">
|
|
</head>
|
|
<body>
|
|
|
|
<!-- NAV -->
|
|
<nav>
|
|
<a class="nav-logo" href="/">LandveX</a>
|
|
<ul class="nav-links">
|
|
<li><a href="/#how-it-works">How it works</a></li>
|
|
<li><a href="/#verticals">Verticals</a></li>
|
|
<li><a href="/methodology/">Methodology</a></li>
|
|
<li><a href="/security/">Security</a></li>
|
|
<li><a href="#contact">Contact</a></li>
|
|
</ul>
|
|
<a class="btn btn-outline" href="#contact">Request a briefing →</a>
|
|
</nav>
|
|
|
|
<!-- HERO (dark) -->
|
|
<section class="hero">
|
|
<div class="hero-eyebrow">Intelligence Index · Landvex</div>
|
|
<h1>How fast is this area growing?</h1>
|
|
<p class="hero-sub">Growth velocity by district — identifying emerging zones before they appear in official statistics or property price indexes.</p>
|
|
<div class="hero-ctas">
|
|
<a class="btn btn-lg" href="#contact">Request a briefing →</a>
|
|
<a class="btn btn-outline btn-lg" href="#dimensions">See dimensions</a>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- DIMENSIONS (white/light section) -->
|
|
<section id="dimensions" style="background:#fff;padding:80px 24px">
|
|
<div class="container">
|
|
<div style="text-align:center;margin-bottom:52px">
|
|
<div class="section-label" style="color:var(--blue)">What we measure</div>
|
|
<h2 class="section-title section-title-light">Five dimensions of intelligence.</h2>
|
|
<p class="section-sub" style="color:#6b7280;margin:0 auto">Each index is built from five independently observed and scored dimensions — combined into a single comparable score.</p>
|
|
</div>
|
|
<div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:20px">
|
|
|
|
<div style="background:#f8f9ff;border:1px solid #e5e7eb;border-radius: var(--radius-md);padding:24px 28px;cursor:pointer" onclick="location.href='#contact'" role="button" tabindex="0">
|
|
<div style="font-size:1.5rem;margin-bottom:10px"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M2 12L6 8L9 11L14 5" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M10 5H14V9" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></div>
|
|
<h3 style="font-size:1rem;font-weight:700;color:#0a0a0a;margin-bottom:6px">Commercial expansion rate</h3>
|
|
<p style="font-size:.875rem;color:#6b7280;line-height:1.6">Speed of new commercial openings relative to closures — net growth rate of the commercial ecosystem.</p>
|
|
</div>
|
|
|
|
<div style="background:#f8f9ff;border:1px solid #e5e7eb;border-radius: var(--radius-md);padding:24px 28px;cursor:pointer" onclick="location.href='#contact'" role="button" tabindex="0">
|
|
<div style="font-size:1.5rem;margin-bottom:10px"></div>
|
|
<h3 style="font-size:1rem;font-weight:700;color:#0a0a0a;margin-bottom:6px">Residential activity</h3>
|
|
<p style="font-size:.875rem;color:#6b7280;line-height:1.6">Observable indicators of residential growth — new builds, renovations, moving activity, service infrastructure.</p>
|
|
</div>
|
|
|
|
<div style="background:#f8f9ff;border:1px solid #e5e7eb;border-radius: var(--radius-md);padding:24px 28px;cursor:pointer" onclick="location.href='#contact'" role="button" tabindex="0">
|
|
<div style="font-size:1.5rem;margin-bottom:10px"></div>
|
|
<h3 style="font-size:1rem;font-weight:700;color:#0a0a0a;margin-bottom:6px">Service density growth</h3>
|
|
<p style="font-size:.875rem;color:#6b7280;line-height:1.6">Expansion of service infrastructure — cafés, gyms, medical, childcare — that follows population growth.</p>
|
|
</div>
|
|
|
|
<div style="background:#f8f9ff;border:1px solid #e5e7eb;border-radius: var(--radius-md);padding:24px 28px;cursor:pointer" onclick="location.href='#contact'" role="button" tabindex="0">
|
|
<div style="font-size:1.5rem;margin-bottom:10px"></div>
|
|
<h3 style="font-size:1rem;font-weight:700;color:#0a0a0a;margin-bottom:6px">Infrastructure investment</h3>
|
|
<p style="font-size:.875rem;color:#6b7280;line-height:1.6">New utilities, roads, transit stops and public infrastructure as a signal of long-term growth commitment.</p>
|
|
</div>
|
|
|
|
<div style="background:#f8f9ff;border:1px solid #e5e7eb;border-radius: var(--radius-md);padding:24px 28px;cursor:pointer" onclick="location.href='#contact'" role="button" tabindex="0">
|
|
<div style="font-size:1.5rem;margin-bottom:10px"></div>
|
|
<h3 style="font-size:1rem;font-weight:700;color:#0a0a0a;margin-bottom:6px">Demographic signals</h3>
|
|
<p style="font-size:.875rem;color:#6b7280;line-height:1.6">Observable shifts in the demographic mix of an area — a leading indicator of future commercial and property demand.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- USE CASES (light grey) -->
|
|
<section style="background:#f8f9ff;padding:64px 24px">
|
|
<div class="container">
|
|
<div style="max-width:760px;margin:0 auto;text-align:center">
|
|
<div class="section-label">Use cases</div>
|
|
<h2 class="section-title section-title-light" style="margin-bottom:24px">Who uses this index.</h2>
|
|
<div style="display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:40px">
|
|
<span style="background:#e0eaff;color:#0052cc;font-size:.8125rem;font-weight:600;padding:6px 14px;border-radius: 100px">Early-stage investment</span>
|
|
<span style="background:#e0eaff;color:#0052cc;font-size:.8125rem;font-weight:600;padding:6px 14px;border-radius: 100px">Retail pre-positioning</span>
|
|
<span style="background:#e0eaff;color:#0052cc;font-size:.8125rem;font-weight:600;padding:6px 14px;border-radius: 100px">Infrastructure planning</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- SAMPLE OUTPUT (dark) -->
|
|
<section style="background:var(--surface);padding:80px 24px">
|
|
<div class="container">
|
|
<div style="max-width:700px;margin:0 auto;text-align:center">
|
|
<div class="section-label">Sample output</div>
|
|
<h2 class="section-title" style="margin-bottom:8px">What you receive.</h2>
|
|
<p style="color:var(--text-dim);margin-bottom:48px">Growth velocity score + district ranking + 12-month trajectory</p>
|
|
<div style="background:var(--surface-2);border:1px solid var(--border);border-radius: var(--radius-lg);padding:36px 40px;text-align:left">
|
|
<div style="display:flex;align-items:center;justify-content:space-between;margin-bottom:8px">
|
|
<span style="color:var(--text-dim);font-size:.875rem;font-weight:600">Sample location · Placeholder score</span>
|
|
<span style="color:#4ade80;font-size:.875rem;font-weight:700">↑ High velocity</span>
|
|
</div>
|
|
<div style="display:flex;align-items:center;gap:16px;margin-bottom:4px">
|
|
<span style="font-size:3rem;font-weight:800;color: #1d1d1f;letter-spacing:-2px">78</span>
|
|
<span style="font-size:1.5rem;color:var(--text-dim)">/100</span>
|
|
</div>
|
|
|
|
<div style="background:#f3f4f6;border-radius: var(--radius-md);height:12px;width:100%;margin:12px 0 8px;overflow:hidden">
|
|
<div style="height:100%;width:78%;background:#4ade80;border-radius: var(--radius-md);transition:width 1s ease"></div>
|
|
</div>
|
|
|
|
<div style="display:flex;justify-content:space-between;font-size:.75rem;color:var(--text-dim)">
|
|
<span>Critical</span><span>Moderate</span><span>Strong</span>
|
|
</div>
|
|
<div style="margin-top:28px;padding-top:20px;border-top:1px solid var(--border);font-size:.8125rem;color:var(--text-dim)">
|
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#f59e0b" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg> Placeholder values for illustration. Live intelligence from August 2026.
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- CONTRADICTION ENGINE (dark blue) -->
|
|
<section style="background:#001836;padding:80px 24px">
|
|
<div class="container">
|
|
<div style="max-width:800px;margin:0 auto">
|
|
<div style="text-align:center;margin-bottom:48px">
|
|
<div class="section-label" style="color:rgba(255,255,255,.75)">Advanced intelligence</div>
|
|
<h2 class="section-title">How this index detects narrative conflicts.</h2>
|
|
<p style="color:rgba(255,255,255,.75);max-width:600px;margin:0 auto;line-height:1.7">Urban Growth Index flags when official population and economic statistics show growth in areas where observed activity is stagnant — or vice versa. Emerging districts frequently grow faster than statistics reflect. When field observations show rapid commercial expansion ahead of official economic data, the index raises the score and flags the statistical gap.</p>
|
|
</div>
|
|
<div style="background:rgba(0,0,0,.05);border:1px solid rgba(0,0,0,.1);border-radius: var(--radius-lg);padding:32px 36px">
|
|
<div style="display:flex;align-items:flex-start;gap:16px;margin-bottom:24px">
|
|
<span style="font-size:1.5rem"></span>
|
|
<div>
|
|
<div style="color:#f87171;font-weight:800;font-size:.9375rem;margin-bottom:4px">Contradiction Engine — How it works</div>
|
|
<div style="color:rgba(255,255,255,.75);font-size:.875rem;line-height:1.6">Field observations are continuously cross-referenced against official records, registers, and published statistics. Divergence above threshold triggers a conflict flag.</div>
|
|
</div>
|
|
</div>
|
|
<div style="display:grid;grid-template-columns:1fr 1fr;gap:16px">
|
|
<div style="background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.2);border-radius: var(--radius-md);padding:16px">
|
|
<div style="color:#86efac;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px">Official record</div>
|
|
<ul style="list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px">
|
|
<li style="color:rgba(255,255,255,.7);font-size:.875rem"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8L6.5 11.5L13 4.5" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg> Published condition ratings</li>
|
|
<li style="color:rgba(255,255,255,.7);font-size:.875rem"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8L6.5 11.5L13 4.5" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg> Official statistics</li>
|
|
<li style="color:rgba(255,255,255,.7);font-size:.875rem"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8L6.5 11.5L13 4.5" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg> Register data</li>
|
|
</ul>
|
|
</div>
|
|
<div style="background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.2);border-radius: var(--radius-md);padding:16px">
|
|
<div style="color:#fca5a5;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px">Observed reality</div>
|
|
<ul style="list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px">
|
|
<li style="color:rgba(255,255,255,.7);font-size:.875rem"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M4 4L12 12M12 4L4 12" stroke="#ef4444" stroke-width="2" stroke-linecap="round"/></svg> Field observations</li>
|
|
<li style="color:rgba(255,255,255,.7);font-size:.875rem"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M4 4L12 12M12 4L4 12" stroke="#ef4444" stroke-width="2" stroke-linecap="round"/></svg> Real-time signals</li>
|
|
<li style="color:rgba(255,255,255,.7);font-size:.875rem"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M4 4L12 12M12 4L4 12" stroke="#ef4444" stroke-width="2" stroke-linecap="round"/></svg> Contradiction flags</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- RELATED INDEXES (white) -->
|
|
<section style="background:#fff;padding:80px 24px">
|
|
<div class="container">
|
|
<div style="text-align:center;margin-bottom:48px">
|
|
<div class="section-label">Related intelligence</div>
|
|
<h2 class="section-title section-title-light">Explore related indexes.</h2>
|
|
</div>
|
|
<div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:20px;max-width:900px;margin:0 auto">
|
|
|
|
<a href="/intelligence/growth-velocity-index/" style="display:block;background:#f8f9ff;border:1px solid #e5e7eb;border-radius: var(--radius-md);padding:20px 24px;text-decoration:none;color:inherit;transition:border-color .2s,transform .15s" onmouseover="this.style.borderColor='#0066ff';this.style.transform='translateY(-2px)'" onmouseout="this.style.borderColor='#e5e7eb';this.style.transform='none'">
|
|
<div style="font-size:1.25rem;margin-bottom:8px"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M8 2L10 8L14 9L8 14L6 8L2 7L8 2Z" fill="#666"/></svg></div>
|
|
<div style="font-weight:700;color:#0a0a0a;font-size:.9375rem;margin-bottom:4px">Growth Velocity Index</div>
|
|
<div style="color:#0066ff;font-size:.8125rem;font-weight:700">View index →</div>
|
|
</a>
|
|
|
|
<a href="/intelligence/commercial-opportunity-index/" style="display:block;background:#f8f9ff;border:1px solid #e5e7eb;border-radius: var(--radius-md);padding:20px 24px;text-decoration:none;color:inherit;transition:border-color .2s,transform .15s" onmouseover="this.style.borderColor='#0066ff';this.style.transform='translateY(-2px)'" onmouseout="this.style.borderColor='#e5e7eb';this.style.transform='none'">
|
|
<div style="font-size:1.25rem;margin-bottom:8px"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M2 12L6 8L9 11L14 5" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M10 5H14V9" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></div>
|
|
<div style="font-weight:700;color:#0a0a0a;font-size:.9375rem;margin-bottom:4px">Commercial Opportunity Index</div>
|
|
<div style="color:#0066ff;font-size:.8125rem;font-weight:700">View index →</div>
|
|
</a>
|
|
|
|
<a href="/intelligence/investment-attractiveness-index/" style="display:block;background:#f8f9ff;border:1px solid #e5e7eb;border-radius: var(--radius-md);padding:20px 24px;text-decoration:none;color:inherit;transition:border-color .2s,transform .15s" onmouseover="this.style.borderColor='#0066ff';this.style.transform='translateY(-2px)'" onmouseout="this.style.borderColor='#e5e7eb';this.style.transform='none'">
|
|
<div style="font-size:1.25rem;margin-bottom:8px"></div>
|
|
<div style="font-weight:700;color:#0a0a0a;font-size:.9375rem;margin-bottom:4px">Investment Attractiveness Index</div>
|
|
<div style="color:#0066ff;font-size:.8125rem;font-weight:700">View index →</div>
|
|
</a>
|
|
</div>
|
|
<div style="text-align:center;margin-top:40px">
|
|
<a href="/" style="color:var(--blue);font-weight:700;font-size:.9375rem">← Back to Landvex</a>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- CONTACT (dark) -->
|
|
<section id="contact" style="background: var(--bg-dark);padding:80px 24px">
|
|
<div class="container">
|
|
<div style="max-width:680px;margin:0 auto;text-align:center">
|
|
<div class="section-label">Get in touch</div>
|
|
<h2 class="section-title">Request a briefing.</h2>
|
|
<p class="section-sub" style="margin:0 auto 40px">Tell us the question you need answered. We'll show you how this index applies to your decision.</p>
|
|
<form class="contact-form" id="contact-form">
|
|
<div class="form-row">
|
|
<div class="form-group">
|
|
<label for="name">Name</label>
|
|
<input type="text" id="name" name="name" placeholder="Your name" required>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="email">Email</label>
|
|
<input type="email" id="email" name="email" placeholder="you@organisation.com" required>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="message">Message</label>
|
|
<textarea id="message" name="message" placeholder="Describe your question or decision — location, context, what you need to know..."></textarea>
|
|
</div>
|
|
<button type="submit" class="btn btn-lg" style="width:100%;justify-content:center">
|
|
Request briefing →
|
|
</button>
|
|
<p class="form-note">We don't spam. Your information stays private.</p>
|
|
<div id="form-message"></div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
<p class="lv-disclaimer">Intelligence outputs are indicative and advisory only. Based on field observations — not investment, financial or legal advice. Landvex AB accepts no liability for decisions made based on these outputs. <a href="/methodology/">Methodology →</a></p>
|
|
</section>
|
|
|
|
<!-- FOOTER -->
|
|
<footer>
|
|
<div class="footer-container" style="max-width:1200px;margin:0 auto;padding:48px 24px 32px;">
|
|
<!-- Main Footer Grid -->
|
|
<div style="display:grid;grid-template-columns:repeat(4,1fr);gap:40px;margin-bottom:48px;">
|
|
|
|
<!-- Column 1: Products -->
|
|
<div>
|
|
<h4 style="font-size:13px;font-weight:600;color:#0A0A0A;margin-bottom:16px;text-transform:uppercase;letter-spacing:0.5px;">Produkter</h4>
|
|
<ul style="list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px;">
|
|
<li><a href="/infrastructure-monitoring/" style="font-size:13px;color:#6E6E73;text-decoration:none;transition:color 0.2s;">VIMS</a></li>
|
|
<li><a href="/intelligence/" style="font-size:13px;color:#6E6E73;text-decoration:none;transition:color 0.2s;">Intelligence</a></li>
|
|
<li><a href="/reality-alerts/" style="font-size:13px;color:#6E6E73;text-decoration:none;transition:color 0.2s;">Reality Alerts</a></li>
|
|
<li><a href="/enterprise/" style="font-size:13px;color:#6E6E73;text-decoration:none;transition:color 0.2s;">Enterprise</a></li>
|
|
<li><a href="/pilot/" style="font-size:13px;color:#6E6E73;text-decoration:none;transition:color 0.2s;">Pilotprogram</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<!-- Column 2: Solutions -->
|
|
<div>
|
|
<h4 style="font-size:13px;font-weight:600;color:#0A0A0A;margin-bottom:16px;text-transform:uppercase;letter-spacing:0.5px;">Lösningar</h4>
|
|
<ul style="list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px;">
|
|
<li><a href="/verticals/bridge-inspection/" style="font-size:13px;color:#6E6E73;text-decoration:none;transition:color 0.2s;">Broinspektion</a></li>
|
|
<li><a href="/verticals/road-monitoring/" style="font-size:13px;color:#6E6E73;text-decoration:none;transition:color 0.2s;">Vägövervakning</a></li>
|
|
<li><a href="/verticals/infrastructure/" style="font-size:13px;color:#6E6E73;text-decoration:none;transition:color 0.2s;">Infrastruktur</a></li>
|
|
<li><a href="/verticals/utilities/" style="font-size:13px;color:#6E6E73;text-decoration:none;transition:color 0.2s;">Utilities</a></li>
|
|
<li><a href="/use-cases/" style="font-size:13px;color:#6E6E73;text-decoration:none;transition:color 0.2s;">Användningsfall</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<!-- Column 3: Resources -->
|
|
<div>
|
|
<h4 style="font-size:13px;font-weight:600;color:#0A0A0A;margin-bottom:16px;text-transform:uppercase;letter-spacing:0.5px;">Resurser</h4>
|
|
<ul style="list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px;">
|
|
<li><a href="/blog/" style="font-size:13px;color:#6E6E73;text-decoration:none;transition:color 0.2s;">Intelligence Insights</a></li>
|
|
<li><a href="/guides/" style="font-size:13px;color:#6E6E73;text-decoration:none;transition:color 0.2s;">Guider</a></li>
|
|
<li><a href="/developers/" style="font-size:13px;color:#6E6E73;text-decoration:none;transition:color 0.2s;">Developer API</a></li>
|
|
<li><a href="/status/" style="font-size:13px;color:#6E6E73;text-decoration:none;transition:color 0.2s;">Systemstatus</a></li>
|
|
<li><a href="/reports/" style="font-size:13px;color:#6E6E73;text-decoration:none;transition:color 0.2s;">Rapporter</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<!-- Column 4: Company -->
|
|
<div>
|
|
<h4 style="font-size:13px;font-weight:600;color:#0A0A0A;margin-bottom:16px;text-transform:uppercase;letter-spacing:0.5px;">Företag</h4>
|
|
<ul style="list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px;">
|
|
<li><a href="/about/" style="font-size:13px;color:#6E6E73;text-decoration:none;transition:color 0.2s;">Om oss</a></li>
|
|
<li><a href="/careers/" style="font-size:13px;color:#6E6E73;text-decoration:none;transition:color 0.2s;">Karriär</a></li>
|
|
<li><a href="/press/" style="font-size:13px;color:#6E6E73;text-decoration:none;transition:color 0.2s;">Press</a></li>
|
|
<li><a href="/contact/" style="font-size:13px;color:#6E6E73;text-decoration:none;transition:color 0.2s;">Kontakt</a></li>
|
|
<li><a href="https://www.quixzoom.com" target="_blank" rel="noopener" style="font-size:13px;color:#6E6E73;text-decoration:none;transition:color 0.2s;">quiXzoom →</a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Divider -->
|
|
<div style="border-top:1px solid #E5E5E5;padding-top:32px;">
|
|
|
|
<!-- Legal & Compliance Row -->
|
|
<div style="display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:24px;margin-bottom:24px;">
|
|
<div style="display:flex;flex-wrap:wrap;gap:16px 24px;">
|
|
<a href="/privacy/" style="font-size:12px;color:#6E6E73;text-decoration:none;">Privacy</a>
|
|
<a href="/terms/" style="font-size:12px;color:#6E6E73;text-decoration:none;">Terms</a>
|
|
<a href="/cookie-policy/" style="font-size:12px;color:#6E6E73;text-decoration:none;">Cookies</a>
|
|
<a href="/compliance/" style="font-size:12px;color:#6E6E73;text-decoration:none;">Compliance</a>
|
|
<a href="/trust/" style="font-size:12px;color:#6E6E73;text-decoration:none;">Trust Centre</a>
|
|
<a href="/dpa/" style="font-size:12px;color:#6E6E73;text-decoration:none;">DPA</a>
|
|
<a href="/sla/" style="font-size:12px;color:#6E6E73;text-decoration:none;">SLA</a>
|
|
<a href="/security/" style="font-size:12px;color:#6E6E73;text-decoration:none;">Security</a>
|
|
<a href="/accessibility/" style="font-size:12px;color:#6E6E73;text-decoration:none;">Accessibility</a>
|
|
<a href="/responsible-disclosure/" style="font-size:12px;color:#6E6E73;text-decoration:none;">Responsible Disclosure</a>
|
|
</div>
|
|
<div style="display:flex;gap:16px;">
|
|
<a href="https://www.linkedin.com/company/landvex" target="_blank" rel="noopener" style="color:#6E6E73;" title="LinkedIn">
|
|
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"/><rect x="2" y="9" width="4" height="12"/><circle cx="4" cy="4" r="2"/></svg>
|
|
</a>
|
|
<a href="https://x.com/landvex" target="_blank" rel="noopener" style="color:#6E6E73;" title="X">
|
|
<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.746l7.73-8.835L1.254 2.25H8.08l4.253 5.622 5.912-5.622Zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Company Info Row -->
|
|
<div style="display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:16px;">
|
|
<div>
|
|
<div style="font-size:12px;color:#86868B;line-height:1.6;">
|
|
<strong style="color:#0A0A0A;">Landvex Inc.</strong> · Houston, Texas · USA<br>
|
|
<strong style="color:#0A0A0A;">Landvex AB</strong> · Org.nr 559141-7042 · Stockholm, Sweden · EU<br>
|
|
<a href="mailto:contact@landvex.com" style="color:#86868B;text-decoration:none;">contact@landvex.com</a> ·
|
|
<a href="mailto:security@landvex.com" style="color:#86868B;text-decoration:none;">security@landvex.com</a>
|
|
</div>
|
|
<div style="font-size:11px;color:#86868B;margin-top:8px;line-height:1.5;">
|
|
Field data powered by <a href="https://www.quixzoom.com" style="color:#86868B;text-decoration:underline;">quiXzoom</a> ·
|
|
<a href="/data-lineage/" style="color:#86868B;text-decoration:underline;">Data Lineage</a> ·
|
|
<a href="/subprocessors/" style="color:#86868B;text-decoration:underline;">Sub-processors</a> ·
|
|
<a href="/methodology/" style="color:#86868B;text-decoration:underline;">Methodology</a>
|
|
</div>
|
|
</div>
|
|
<div style="font-size:12px;color:#86868B;">
|
|
© 2026 Landvex Inc / Landvex AB. All rights reserved.
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
|
|
<script>
|
|
document.getElementById('contact-form').addEventListener('submit', async function(e) {
|
|
e.preventDefault();
|
|
const btn = this.querySelector('button[type="submit"]');
|
|
const msgEl = document.getElementById('form-message');
|
|
btn.disabled = true; btn.textContent = 'Sending...';
|
|
const data = {
|
|
source: 'landvex-intelligence',
|
|
index: 'urban-growth-index',
|
|
name: this.name.value,
|
|
email: this.email.value,
|
|
message: this.message.value
|
|
};
|
|
try {
|
|
const res = await fetch('https://api.quixzoom.com/api/qz/waitlist', {
|
|
method: 'POST',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: JSON.stringify(data)
|
|
});
|
|
if (res.ok || res.status === 201) {
|
|
msgEl.className = 'success';
|
|
msgEl.textContent = "<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8L6.5 11.5L13 4.5" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg> Request received. We'll be in touch within one business day.";
|
|
msgEl.style.display = 'block';
|
|
this.reset();
|
|
} else { throw new Error('Server error ' + res.status); }
|
|
} catch(err) {
|
|
msgEl.className = 'error';
|
|
msgEl.textContent = 'Something went wrong. Please email us at contact@landvex.com.';
|
|
msgEl.style.display = 'block';
|
|
}
|
|
btn.disabled = false; btn.textContent = 'Request briefing →';
|
|
});
|
|
</script>
|
|
</body>
|
|
</html> |