Files
boc/landvex-site/use-cases/retail-intelligence/germany/index.html
T
Bernt aee0f09db8 landvex: Fixar och tester klara för alla komponenter
- Datafabrik: Dockerfile fix, agentorkestrering fungerar
- Vision: Identify-modell, FAISS, OCR alla testade
- API: Alla 7 integrationstester passerade
- Upplösare: Entitetsupplösning verifierad
2026-07-05 06:41:32 +00:00

350 lines
25 KiB
HTML
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.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Retail Intelligence in Germany — Landvex</title>
<meta name="description" content="Landvex provides German property investors, retailers, and Stadtverwaltungen with field-verified retail location intelligence — occupier analysis.">
<link rel="canonical" href="https://www.landvex.com/use-cases/retail-intelligence/germany/">
<link rel="alternate" hreflang="x-default" href="https://www.landvex.com/">
<meta property="og:type" content="website">
<meta property="og:url" content="https://www.landvex.com/use-cases/retail-intelligence/germany/">
<meta property="og:title" content="Retail Intelligence in Germany — Landvex">
<meta property="og:description" content="Landvex provides German property investors, retailers, and Stadtverwaltungen with field-verified retail location intelligence — occupier analysis, vacancy monitoring, and physical environment assessment.">
<meta property="og:image" content="https://www.landvex.com/og-image.jpg">
<meta name="twitter:card" content="summary_large_image">
<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">
<meta name="robots" content="index, follow">
<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": "Use Cases", "item": "https://www.landvex.com/use-cases/"},
{"@type": "ListItem", "position": 3, "name": "Retail Intelligence", "item": "https://www.landvex.com/use-cases/retail-intelligence/"},
{"@type": "ListItem", "position": 4, "name": "Germany", "item": "https://www.landvex.com/use-cases/retail-intelligence/germany/"}
]
}</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-light: #1d1d1f;
--text-dim: #6B6B6B; --text-muted: #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(10,10,10,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; }
.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; border-radius: var(--radius-md); }
.hero { min-height: 88vh; 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(34px,5.5vw,62px); font-weight: 800; letter-spacing: -2px; line-height: 1.06; 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; }
section { padding: 96px 24px; }
.container { max-width: 1140px; margin: 0 auto; }
.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.8vw,42px); font-weight: 800; letter-spacing: -1.2px; line-height: 1.1; color: #1d1d1f; margin-bottom: 16px; }
.section-sub { font-size: 17px; color: var(--text-dim); max-width: 600px; line-height: 1.7; }
.use-case-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; margin-top: 48px; }
.use-case-card { background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 32px 28px; transition: border-color 0.25s, transform 0.2s; }
.use-case-card:hover { border-color: rgba(0,102,255,0.35); transform: translateY(-3px); }
.use-case-card h3 { font-size: 17px; font-weight: 700; color: #1d1d1f; margin-bottom: 8px; }
.use-case-card p { font-size: 14px; color: var(--text-dim); line-height: 1.6; }
.decisions-bg { background: var(--surface); }
.decisions-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 40px; }
.decision-chip { background: var(--bg-dark); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 18px 22px; display: flex; align-items: center; gap: 12px; }
.decision-chip .chip-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--blue); flex-shrink: 0; }
.decision-chip span { font-size: 14px; font-weight: 600; color: var(--text-light); }
.contradiction-bg { background: #e8f0fe; }
.contradiction-box { background: rgba(0,0,0,.05); border: 1px solid rgba(0,0,0,.1); border-radius: 16px; padding: 36px 40px; margin-bottom: 32px; }
.conflict-header { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 24px; }
.conflict-flag { font-size: 1.5rem; color: #f87171; }
.conflict-title { color: #f87171; font-weight: 800; font-size: .9375rem; margin-bottom: 4px; }
.conflict-desc { color: rgba(0,0,0,.6); font-size: .875rem; line-height: 1.6; }
.conflict-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.conflict-side { border-radius: 10px; padding: 16px; }
.conflict-official { background: rgba(34,197,94,.1); border: 1px solid rgba(34,197,94,.2); }
.conflict-observed { background: rgba(239,68,68,.1); border: 1px solid rgba(239,68,68,.2); }
.conflict-side-label { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 10px; }
.conflict-official .conflict-side-label { color: #86efac; }
.conflict-observed .conflict-side-label { color: #fca5a5; }
.conflict-side ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 4px; }
.conflict-footer { margin-top: 20px; padding-top: 20px; border-top: 1px solid rgba(0,0,0,.1); display: flex; justify-content: space-between; align-items: center; }
.conflict-footer-label { color: rgba(0,0,0,.75); font-size: .8125rem; }
.conflict-confidence { color: #f87171; font-weight: 800; font-size: 1.125rem; }
.breadcrumb { font-size: 13px; color: var(--text-muted); padding: 76px 40px 0; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.breadcrumb a { color: var(--text-muted); }
.breadcrumb a:hover { color: #1d1d1f; }
.breadcrumb .sep { color: var(--border); }
.comparison-table { width: 100%; border-collapse: collapse; margin-top: 32px; border-radius: 12px; overflow: hidden; border: 1px solid rgba(0,0,0,0.08); }
.comparison-table th { padding: 14px 16px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; text-align: left; background: rgba(0,0,0,0.04); color: var(--text-dim); }
.cta-section { background: #e8f0fe; }
.cta-box { border-radius: 16px; padding: 56px 48px; text-align: center; max-width: 680px; margin: 0 auto; }
.cta-box h2 { font-size: clamp(24px,3vw,36px); font-weight: 800; color: #1d1d1f; margin-bottom: 16px; }
.cta-box p { font-size: 17px; color: rgba(0,0,0,.7); margin-bottom: 36px; line-height: 1.65; }
.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:8px; line-height:1.6; max-width:800px; }
.lv-disclaimer a { color:rgba(0,0,0,.65); text-decoration:underline; }
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: 8px; 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; } .use-case-grid { grid-template-columns:1fr; } .decisions-grid { grid-template-columns:1fr 1fr; } .conflict-grid { grid-template-columns:1fr; } }
@media (max-width:600px) { section { padding:72px 20px; } .decisions-grid { grid-template-columns:1fr; } nav { padding:0 16px; } .hero h1 { letter-spacing:-1px; } .contradiction-box { padding:24px 20px; } }
</style>
</head>
<body>
<nav>
<a class="nav-logo" href="https://www.landvex.com/">&larr; Landvex</a>
<a class="btn btn-outline" href="/contact/">Contact &rarr;</a>
</nav>
<div class="breadcrumb">
<a href="https://www.landvex.com/">Landvex</a>
<span class="sep">/</span>
<a href="/use-cases/">Use Cases</a>
<span class="sep">/</span>
<a href="/use-cases/retail-intelligence/">Retail Intelligence</a>
<span class="sep">/</span>
<span style="color:#aaa;">Germany</span>
</div>
<!-- HERO -->
<section class="hero">
<div class="hero-eyebrow">Retail Intelligence — Germany</div>
<h1>Retail Intelligence in Germany</h1>
<p class="hero-sub">German retail real estate markets are navigating structural shifts in consumer behaviour, with inner-city Einkaufsstrassen and retail parks facing divergent trajectories. Landvex delivers field-verified intelligence to support acquisition, leasing, and asset management decisions based on observed market reality.</p>
<div class="hero-ctas">
<a class="btn btn-lg" href="/pilot/">Request a pilot &rarr;</a>
<a class="btn btn-outline btn-lg" href="/contact/">Contact Landvex</a>
</div>
</section>
<!-- USE CASE CARDS -->
<section style="background:var(--surface);">
<div class="container">
<div class="section-label">Capabilities</div>
<h2 class="section-title">Retail Intelligence in Germany — what Landvex delivers</h2>
<p class="section-sub">Every engagement is anchored to a specific decision. Select a capability to discuss how Landvex applies it to your context.</p>
<div class="use-case-grid">
<a class="use-case-card" href="/contact/" style="display:block;text-decoration:none;">
<span class="uc-icon" style="font-size:22px;display:block;margin-bottom:16px;color:#5599ff;">&#9650;</span>
<h3>Innenstadt Retail Location Assessment</h3>
<p>Field-verified assessment of German Innenstadt retail performance: occupier mix, vacancy rate, pedestrian environment quality, and physical asset condition. Evidence-based input for 1A-Lage and secondary location decisions.</p>
<div style="margin-top:14px;font-size:13px;font-weight:700;color:#0066ff;">Learn more &rarr;</div>
</a>
<a class="use-case-card" href="/contact/" style="display:block;text-decoration:none;">
<span class="uc-icon" style="font-size:22px;display:block;margin-bottom:16px;color:#5599ff;">&#9632;</span>
<h3>Fachmarktzentrum Monitoring</h3>
<p>Monitor condition, occupancy, and competitive positioning of Fachmarktzentren and retail parks across German markets. Identify deterioration trends and structural vacancy before official surveys capture them.</p>
<div style="margin-top:14px;font-size:13px;font-weight:700;color:#0066ff;">Learn more &rarr;</div>
</a>
<a class="use-case-card" href="/contact/" style="display:block;text-decoration:none;">
<span class="uc-icon" style="font-size:22px;display:block;margin-bottom:16px;color:#5599ff;">&#9670;</span>
<h3>Retail Portfolio Due Diligence</h3>
<p>Systematic field-verified assessment of retail asset portfolios for German institutional investors and open-ended funds. Occupier presentation standards, physical condition, and competitive environment quantified at scale.</p>
<div style="margin-top:14px;font-size:13px;font-weight:700;color:#0066ff;">Learn more &rarr;</div>
</a></div>
</div>
</section>
<!-- COMPARISON TABLE -->
<section>
<div class="container">
<div class="section-label">Comparison</div>
<h2 class="section-title">Landvex vs traditional retail intelligence methods</h2>
<p class="section-sub">How field-verified continuous intelligence compares to conventional survey and inspection approaches.</p>
<table class="comparison-table">
<thead>
<tr>
<th>Dimension</th>
<th>Traditional approach</th>
<th>Landvex</th>
</tr>
</thead>
<tbody>
<tr>
<td style="padding:14px 16px;font-size:14px;font-weight:600;color:#aaa;border-bottom:1px solid rgba(0,0,0,0.07);">Data source</td>
<td style="padding:14px 16px;font-size:14px;color:#999;border-bottom:1px solid rgba(0,0,0,0.07);">HDE/Comfort annual surveys</td>
<td style="padding:14px 16px;font-size:14px;color:#5599ff;font-weight:600;border-bottom:1px solid rgba(0,0,0,0.07);">Continuous field observation</td>
</tr>
<tr>
<td style="padding:14px 16px;font-size:14px;font-weight:600;color:#aaa;border-bottom:1px solid rgba(0,0,0,0.07);">Vacancy detection latency</td>
<td style="padding:14px 16px;font-size:14px;color:#999;border-bottom:1px solid rgba(0,0,0,0.07);">612 month statistical lag</td>
<td style="padding:14px 16px;font-size:14px;color:#5599ff;font-weight:600;border-bottom:1px solid rgba(0,0,0,0.07);">Days</td>
</tr>
<tr>
<td style="padding:14px 16px;font-size:14px;font-weight:600;color:#aaa;border-bottom:1px solid rgba(0,0,0,0.07);">1A-Lage verification</td>
<td style="padding:14px 16px;font-size:14px;color:#999;border-bottom:1px solid rgba(0,0,0,0.07);">Agent opinion, desktop</td>
<td style="padding:14px 16px;font-size:14px;color:#5599ff;font-weight:600;border-bottom:1px solid rgba(0,0,0,0.07);">Field-verified observation</td>
</tr>
<tr>
<td style="padding:14px 16px;font-size:14px;font-weight:600;color:#aaa;border-bottom:1px solid rgba(0,0,0,0.07);">Physical condition data</td>
<td style="padding:14px 16px;font-size:14px;color:#999;border-bottom:1px solid rgba(0,0,0,0.07);">Not captured in standard surveys</td>
<td style="padding:14px 16px;font-size:14px;color:#5599ff;font-weight:600;border-bottom:1px solid rgba(0,0,0,0.07);">Systematic street-level assessment</td>
</tr>
<tr>
<td style="padding:14px 16px;font-size:14px;font-weight:600;color:#aaa;border-bottom:1px solid rgba(0,0,0,0.07);">Coverage</td>
<td style="padding:14px 16px;font-size:14px;color:#999;border-bottom:1px solid rgba(0,0,0,0.07);">Top-50 cities only</td>
<td style="padding:14px 16px;font-size:14px;color:#5599ff;font-weight:600;border-bottom:1px solid rgba(0,0,0,0.07);">Any German retail location</td>
</tr>
<tr>
<td style="padding:14px 16px;font-size:14px;font-weight:600;color:#aaa;border-bottom:1px solid rgba(0,0,0,0.07);">Contradiction analysis</td>
<td style="padding:14px 16px;font-size:14px;color:#999;border-bottom:1px solid rgba(0,0,0,0.07);">Not standard</td>
<td style="padding:14px 16px;font-size:14px;color:#5599ff;font-weight:600;border-bottom:1px solid rgba(0,0,0,0.07);">Automated AI cross-reference</td>
</tr>
</tbody>
</table>
</div>
</section>
<!-- KEY DECISIONS -->
<section class="decisions-bg">
<div class="container">
<div class="section-label">Decision support</div>
<h2 class="section-title">Decisions Landvex informs in Germany</h2>
<p class="section-sub">Every Landvex engagement is anchored to one or more of these decisions. We start with your question before designing the intelligence mission.</p>
<div class="decisions-grid">
<div class="decision-chip">
<span class="chip-dot"></span>
<span>German retail property acquisition due diligence</span>
</div>
<div class="decision-chip">
<span class="chip-dot"></span>
<span>Open-ended fund asset management evidence</span>
</div>
<div class="decision-chip">
<span class="chip-dot"></span>
<span>Innenstadt revitalisation investment planning</span>
</div>
<div class="decision-chip">
<span class="chip-dot"></span>
<span>Retailer site selection and negotiation intelligence</span>
</div>
<div class="decision-chip">
<span class="chip-dot"></span>
<span>Portfolio risk reporting</span>
</div></div>
</div>
</section>
<!-- CONTRADICTION ENGINE -->
<section class="contradiction-bg">
<div class="container" style="max-width:900px;">
<div style="text-align:center;margin-bottom:56px;">
<div class="section-label" style="color:rgba(0,0,0,.75);">Contradiction Engine</div>
<h2 class="section-title" style="color: #1d1d1f;">Most systems confirm what you already believe.<br>Landvex finds what doesn&rsquo;t add up.</h2>
<p class="section-sub" style="color:rgba(0,0,0,.75);margin:0 auto;max-width:600px;">The most actionable intelligence is contradiction. Landvex actively searches for conflicts between official narratives and observed field reality — and quantifies the confidence gap.</p>
</div>
<div class="contradiction-box">
<div class="conflict-header">
<span class="conflict-flag">&#9888;</span>
<div>
<div class="conflict-title">Narrative Conflict Detected &mdash; Zeil — Frankfurt am Main</div>
<div class="conflict-desc">BulwienGesa vacancy classification suggests prime performance. Field observation reveals effective vacancy three times the reported rate and occupier quality consistent with secondary location.</div>
</div>
</div>
<div class="conflict-grid">
<div class="conflict-side conflict-official">
<div class="conflict-side-label">Official narrative</div>
<ul><li style='color:rgba(0,0,0,.75);font-size:.875rem;padding:4px 0;'>&#10003; Vacancy rate: 6.1% (BulwienGesa Q4)</li>
<li style='color:rgba(0,0,0,.75);font-size:.875rem;padding:4px 0;'>&#10003; Footfall trend: recovering post-pandemic</li>
<li style='color:rgba(0,0,0,.75);font-size:.875rem;padding:4px 0;'>&#10003; 1A-Lage classification: maintained</li></ul>
</div>
<div class="conflict-side conflict-observed">
<div class="conflict-side-label">Observed reality</div>
<ul><li style='color:rgba(0,0,0,.75);font-size:.875rem;padding:4px 0;'>&#10007; Active vacancy on 14 of 62 units — effective rate 22.6%</li>
<li style='color:rgba(0,0,0,.75);font-size:.875rem;padding:4px 0;'>&#10007; Six units operating as temporary or charity lets masking structural vacancy</li>
<li style='color:rgba(0,0,0,.75);font-size:.875rem;padding:4px 0;'>&#10007; Four anchor occupiers showing evidence of lease-end reduction in fit-out investment</li>
<li style='color:rgba(0,0,0,.75);font-size:.875rem;padding:4px 0;'>&#10007; Street environment maintenance at B-Lage standard on central 300m stretch</li></ul>
</div>
</div>
<div class="conflict-footer">
<span class="conflict-footer-label">Confidence in official narrative</span>
<span class="conflict-confidence">16%</span>
</div>
</div>
<div style="display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:16px;">
<div style="text-align:center;padding:24px;">
<div style="font-size:1.5rem;margin-bottom:10px;color:#5599ff;">&#128269;</div>
<h4 style="color: #1d1d1f;font-weight:700;margin-bottom:6px;">Show me what I am missing</h4>
<p style="color:rgba(0,0,0,.75);font-size:.8125rem;">Blind spots absent from official data and internal reports</p>
</div>
<div style="text-align:center;padding:24px;">
<div style="font-size:1.5rem;margin-bottom:10px;color:#5599ff;">&#9878;</div>
<h4 style="color: #1d1d1f;font-weight:700;margin-bottom:6px;">AI Red Team</h4>
<p style="color:rgba(0,0,0,.75);font-size:.8125rem;">Every conclusion is challenged by a second model before delivery</p>
</div>
<div style="text-align:center;padding:24px;">
<div style="font-size:1.5rem;margin-bottom:10px;color:#5599ff;">&#128208;</div>
<h4 style="color: #1d1d1f;font-weight:700;margin-bottom:6px;">Which assumptions are wrong?</h4>
<p style="color:rgba(0,0,0,.75);font-size:.8125rem;">Identify where your thesis conflicts with observed reality</p>
</div>
</div>
</div>
</section>
<!-- CTA -->
<section class="cta-section">
<div class="container">
<div class="cta-box">
<div class="section-label" style="color:rgba(0,0,0,.75);">Get started</div>
<h2>Request a pilot for Retail Intelligence in Germany</h2>
<p>Tell us the decision you need to make. We will design an intelligence mission and return field-verified data within 72 hours — no procurement delay, no physical access required.</p>
<a class="btn btn-lg" href="/pilot/" style="font-size:17px;padding:16px 36px;">Request a pilot &rarr;</a>
</div>
<p class="lv-disclaimer" style="margin:32px auto 0;">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 &rarr;</a></p>
</div>
</section>
<footer>
<div class="footer-inner">
<div>
<div class="footer-logo">LandveX</div>
<div class="footer-copy">&copy; 2026 Landvex Inc &middot; Landvex AB (org.nr 559141-7042)</div>
<div class="footer-tagline">Decision intelligence for the physical world.</div>
</div>
<div class="footer-links">
<a href="https://www.landvex.com/">Home</a>
<a href="/verticals/">Verticals</a>
<a href="/methodology/">Methodology</a>
<a href="/security/">Security</a>
<a href="https://www.quixzoom.com/" target="_blank" rel="noopener">quiXzoom &rarr;</a>
<a href="mailto:contact@landvex.com">contact@landvex.com</a>
<a href="mailto:security@landvex.com" style="color:var(--text-muted,#888)">security@landvex.com</a>
<a href="https://www.linkedin.com/company/landvex" target="_blank" rel="noopener" class="footer-social" title="LandveX on LinkedIn">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><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" stroke="#888" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><rect x="2" y="9" width="4" height="12" stroke="#888" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><circle cx="4" cy="4" r="2" stroke="#888" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
</a>
<a href="https://x.com/landvex" target="_blank" rel="noopener" class="footer-social" title="LandveX on X">
<svg width="15" height="15" viewBox="0 0 24 24" fill="#888" xmlns="http://www.w3.org/2000/svg"><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>
</footer>
</body>
</html>