Files
boc/landvex-site/security/index.html
T
Bernt 6989a98d75 feat: Passwordless cross-device authentication
- Arkitektur: docs/auth/passwordless-architecture.md
- Backend: iom/quixzoom-auth-service/ (FastAPI + Redis)
- Webb: quixzoom-market-pages/se/login/ (QR-kod + polling)
- App: iom/quixzoom-app/src/features/auth/ (push + deep links)

Flöde: QR-kod → app-godkännande → webb-inloggad
2026-07-07 07:11:50 +00:00

739 lines
28 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Security — LandveX | Enterprise-Grade Data Security</title>
<meta name="description" content="LandveX security overview: data encryption, identity management, GDPR compliance, and operational security for enterprise customers.">
<link rel="canonical" href="https://www.landvex.com/security/">
<meta name="robots" content="index, follow">
<!-- Open Graph -->
<meta property="og:type" content="website">
<meta property="og:url" content="https://www.landvex.com/security/">
<meta property="og:title" content="Security — LandveX | Enterprise-Grade Data Security">
<meta property="og:description" content="LandveX security overview: data encryption, identity management, GDPR compliance, and operational security for enterprise customers.">
<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="Security — LandveX">
<meta name="twitter:description" content="Enterprise-grade security: TLS 1.2+, AES-256, GDPR compliance, and AWS-hosted infrastructure.">
<meta name="twitter:image" content="https://www.landvex.com/og-image.jpg">
<!-- Favicons -->
<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">
<!-- Structured Data -->
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"WebPage","name":"Security — LandveX","url":"https://www.landvex.com/security/","description":"Enterprise-grade data security at LandveX: encryption, identity, compliance and operational security.","isPartOf":{"@type":"WebSite","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-dark: #0a0a0a;
--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;
--green: #22c55e;
--green-glow: rgba(34,197,94,0.12);
}
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 */
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;
}
.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; }
.nav-links a.active { 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 */
.hero {
min-height: 60vh;
display: flex; flex-direction: column; align-items: center; justify-content: center;
text-align: center;
padding: 120px 24px 72px;
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(34,197,94,0.08) 0%, rgba(0,102,255,0.06) 40%, transparent 70%);
pointer-events: none;
}
.hero-eyebrow {
display: inline-flex; align-items: center; gap: 8px;
background: rgba(34,197,94,0.08);
border: 1px solid rgba(34,197,94,0.2);
color: #4ade80;
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(40px, 6vw, 72px);
font-weight: 800;
letter-spacing: -2px;
line-height: 1.05;
color: #1d1d1f;
max-width: 760px;
margin-bottom: 24px;
}
.hero-sub {
font-size: clamp(16px, 2vw, 19px);
color: var(--text-dim);
max-width: 580px;
line-height: 1.65;
margin-bottom: 40px;
}
/* TRUST BADGES */
.trust-bar {
display: flex; gap: 32px; flex-wrap: wrap; justify-content: center;
padding: 40px 24px;
border-top: 1px solid var(--border);
border-bottom: 1px solid var(--border);
background: var(--surface);
}
.trust-item {
display: flex; align-items: center; gap: 10px;
font-size: 14px; font-weight: 600; color: var(--text-dim);
}
.trust-item .icon {
width: 32px; height: 32px;
background: var(--green-glow);
border: 1px solid rgba(34,197,94,0.2);
border-radius: var(--radius-sm);
display: flex; align-items: center; justify-content: center;
font-size: 15px;
flex-shrink: 0;
}
/* SECTION COMMON */
section { padding: 88px 24px; }
.container { max-width: 1100px; margin: 0 auto; }
.section-label {
font-size: 12px; font-weight: 700; letter-spacing: 0.1em;
text-transform: uppercase; color: var(--green);
margin-bottom: 12px;
}
.section-title {
font-size: clamp(26px, 3.5vw, 40px);
font-weight: 800;
letter-spacing: -1px;
line-height: 1.12;
color: #1d1d1f;
margin-bottom: 14px;
}
.section-sub {
font-size: 17px;
color: var(--text-dim);
max-width: 540px;
line-height: 1.7;
}
/* SECURITY GRID */
.security-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 24px;
}
.security-card {
background: var(--surface);
border: 1px solid var(--border);
border-radius: var(--radius-lg);
padding: 36px 36px 32px;
transition: border-color 0.25s, transform 0.2s;
}
.security-card:hover {
border-color: rgba(34,197,94,0.25);
transform: translateY(-2px);
}
.card-header {
display: flex; align-items: flex-start; gap: 16px;
margin-bottom: 28px;
}
.card-icon {
width: 48px; height: 48px;
background: var(--green-glow);
border: 1px solid rgba(34,197,94,0.2);
border-radius: var(--radius-md);
display: flex; align-items: center; justify-content: center;
font-size: 22px;
flex-shrink: 0;
}
.card-title-wrap h2 {
font-size: 19px; font-weight: 800;
color: #1d1d1f; letter-spacing: -0.3px;
margin-bottom: 2px;
}
.card-title-wrap p {
font-size: 13px; color: var(--text-muted);
}
.security-items {
list-style: none;
display: flex; flex-direction: column; gap: 12px;
}
.security-items li {
display: flex; align-items: flex-start; gap: 12px;
font-size: 14.5px;
color: #c8c8c8;
line-height: 1.5;
}
.security-items li::before {
content: '<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>';
color: var(--green);
font-weight: 800;
font-size: 14px;
margin-top: 1px;
flex-shrink: 0;
}
/* ENTERPRISE CTA */
.enterprise-block {
background: var(--surface);
border: 1px solid var(--border);
border-radius: var(--radius-lg);
padding: 56px 56px;
display: flex; align-items: center; gap: 48px; flex-wrap: wrap;
}
.enterprise-block .main { flex: 1; min-width: 260px; }
.enterprise-block h2 {
font-size: clamp(22px, 3vw, 32px);
font-weight: 800; color: #1d1d1f;
letter-spacing: -0.8px;
margin-bottom: 12px;
}
.enterprise-block p {
font-size: 16px; color: var(--text-dim);
max-width: 460px; line-height: 1.65;
}
.enterprise-block .actions {
display: flex; flex-direction: column; gap: 12px;
flex-shrink: 0;
}
.enterprise-block .contact-item {
display: flex; align-items: center; gap: 10px;
font-size: 14px; color: var(--text-dim);
}
.enterprise-block .contact-item strong { color: #1d1d1f; }
/* COMPLIANCE STRIP */
.compliance-strip {
background: rgba(0,102,255,0.04);
border: 1px solid rgba(0,102,255,0.12);
border-radius: var(--radius-lg);
padding: 32px 40px;
display: flex; align-items: center; gap: 40px; flex-wrap: wrap;
}
.compliance-badge {
display: flex; align-items: center; gap: 10px;
}
.compliance-badge .dot {
width: 8px; height: 8px;
background: var(--green);
border-radius: var(--radius-full);
box-shadow: 0 0 6px rgba(34,197,94,0.6);
flex-shrink: 0;
}
.compliance-badge span {
font-size: 14px; font-weight: 600; color: var(--text-light);
}
.compliance-divider {
width: 1px; height: 32px;
background: var(--border);
flex-shrink: 0;
}
/* FOOTER */
footer {
border-top: 1px solid var(--border);
padding: 40px 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-links { display: flex; gap: 24px; align-items: center; }
.footer-links a { font-size: 14px; color: var(--text-muted); transition: color 0.2s; }
.footer-links a:hover { color: #1d1d1f; }
.footer-tagline { font-size: 12px; color: var(--text-muted); margin-top: 4px; }
.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); }
/* RESPONSIVE */
@media (max-width: 900px) {
nav { padding: 0 20px; }
.nav-links { display: none; }
.security-grid { grid-template-columns: 1fr; }
.enterprise-block { padding: 36px 28px; gap: 28px; }
.compliance-divider { display: none; }
}
@media (max-width: 600px) {
section { padding: 64px 20px; }
.trust-bar { gap: 20px; }
.security-card { padding: 28px 24px; }
.footer-inner { flex-direction: column; text-align: center; }
}
</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": "Security",
"item": "https://www.landvex.com/security/"
}
]
}
</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/">
<style>
@media (max-width: 640px) {
.hero h1 { font-size: 2rem !important; }
.hero p { font-size: 1rem !important; }
.card { padding: 1.5rem !important; }
.grid { grid-template-columns: 1fr !important; }
.btn { padding: 0.75rem 1.5rem !important; font-size: 1rem !important; }
}
</style>
</head>
<body>
<nav aria-label="breadcrumb" style="padding: 10px 20px; color: rgba(235,235,245,0.6); font-size: 14px;">
<a href="/" style="color: #007AFF; text-decoration: none;">Home</a> / <span>security</span>
</nav>
<!-- 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="/security/" class="active">Security</a></li>
<li><a href="/#contact">Contact</a></li>
</ul>
<a class="btn btn-outline" href="/#contact">Get in touch →</a>
</nav>
<!-- HERO -->
<section class="hero">
<div class="hero-eyebrow"> Enterprise Security</div>
<h1>Built secure<br>from the ground up.</h1>
<p class="hero-sub">LandveX runs on AWS infrastructure in Stockholm, with end-to-end encryption, verified identity chains, and GDPR-compliant data handling — designed for organisations that demand it.</p>
<div style="display:flex;gap:14px;flex-wrap:wrap;justify-content:center">
<a class="btn btn-lg" href="mailto:security@landvex.com">Contact security team →</a>
<a class="btn btn-outline btn-lg" href="/#contact">Request DPA</a>
</div>
</section>
<!-- TRUST BAR -->
<div class="trust-bar">
<div class="trust-item">
<div class="icon"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="3" y="7" width="10" height="7" rx="1" stroke="#666" stroke-width="1.5"/><path d="M5 7V5C5 3.3 6.3 2 8 2C9.7 2 11 3.3 11 5V7" stroke="#666" stroke-width="1.5"/><circle cx="8" cy="10.5" r="1" fill="#666"/></svg></div>
AES-256 at rest
</div>
<div class="trust-item">
<div class="icon"></div>
TLS 1.2+ in transit
</div>
<div class="trust-item">
<div class="icon"></div>
EU data residency
</div>
<div class="trust-item">
<div class="icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#00C853" stroke-width="3"><path d="M20 6L9 17l-5-5"/></svg></div>
GDPR compliant
</div>
<div class="trust-item">
<div class="icon"></div>
Hosted on AWS SOC 2 Type II infrastructure
</div>
<div class="trust-item">
<div class="icon"></div>
ISO 27001-certified infrastructure (AWS)
</div>
</div>
<!-- SECURITY SECTIONS -->
<section>
<div class="container">
<div style="text-align:center;max-width:600px;margin:0 auto 56px">
<div class="section-label">Security overview</div>
<h2 class="section-title">Six layers of enterprise-grade protection.</h2>
<p class="section-sub" style="margin:0 auto">Every aspect of the Landvex platform is designed to meet the requirements of enterprise customers — from data capture to delivery.</p>
</div>
<div class="security-grid">
<!-- Data Security -->
<div class="security-card" style="cursor:pointer;" onclick="location.href='#contact'" role="button" tabindex="0">
<div class="card-header">
<div class="card-icon"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="3" y="7" width="10" height="7" rx="1" stroke="#666" stroke-width="1.5"/><path d="M5 7V5C5 3.3 6.3 2 8 2C9.7 2 11 3.3 11 5V7" stroke="#666" stroke-width="1.5"/><circle cx="8" cy="10.5" r="1" fill="#666"/></svg></div>
<div class="card-title-wrap">
<h2>Data Security</h2>
<p>Encryption end-to-end, always</p>
</div>
</div>
<ul class="security-items">
<li>All data encrypted in transit using TLS 1.2 or higher</li>
<li>All data encrypted at rest using AES-256</li>
<li>AWS infrastructure: eu-north-1 (Stockholm) primary region</li>
<li>S3 server-side encryption enabled on all buckets</li>
<li>CloudFront HTTPS-only — HTTP requests redirected automatically</li>
</ul>
</div>
<!-- Identity & Access -->
<div class="security-card" style="cursor:pointer;" onclick="location.href='#contact'" role="button" tabindex="0">
<div class="card-header">
<div class="card-icon"></div>
<div class="card-title-wrap">
<h2>Identity &amp; Access</h2>
<p>Verified identities, least-privilege access</p>
</div>
</div>
<ul class="security-items">
<li>Contributor identity verification required before first payout (KYC)</li>
<li>JWT-based authentication using RS256 asymmetric signing</li>
<li>Role-based access control: Zoomer / Orderer / Admin</li>
<li>No shared credentials anywhere in the platform</li>
</ul>
</div>
<!-- Data Integrity -->
<div class="security-card" style="cursor:pointer;" onclick="location.href='#contact'" role="button" tabindex="0">
<div class="card-header">
<div class="card-icon"></div>
<div class="card-title-wrap">
<h2>Data Integrity</h2>
<p>Tamper-evident submission chain</p>
</div>
</div>
<ul class="security-items">
<li>Every submission receives a cryptographic integrity hash at capture</li>
<li>AI review verifies geo-compliance, image authenticity, and spec compliance</li>
<li>Submissions linked to verified contributor identity throughout the chain</li>
</ul>
</div>
<!-- Privacy & Compliance -->
<div class="security-card" style="cursor:pointer;" onclick="location.href='#contact'" role="button" tabindex="0">
<div class="card-header">
<div class="card-icon"></div>
<div class="card-title-wrap">
<h2>Privacy &amp; Compliance</h2>
<p>GDPR by design, not as an afterthought</p>
</div>
</div>
<ul class="security-items">
<li>GDPR compliant — all data stored within EU (Stockholm)</li>
<li>Data minimization: only data necessary for mission execution collected</li>
<li>Right to erasure fully supported for contributors and end users</li>
<li>Privacy policy: <a href="https://landvex.com/privacy" style="color:#5599ff;text-decoration:underline;text-underline-offset:3px">landvex.com/privacy</a></li>
</ul>
</div>
<!-- Operational Security -->
<div class="security-card" style="cursor:pointer;" onclick="location.href='#contact'" role="button" tabindex="0">
<div class="card-header">
<div class="card-icon"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><circle cx="8" cy="8" r="3" stroke="#666" stroke-width="1.5"/><path d="M8 2V4M8 12V14M2 8H4M12 8H14M4.3 4.3L5.7 5.7M10.3 10.3L11.7 11.7M4.3 11.7L5.7 10.3M10.3 5.7L11.7 4.3" stroke="#666" stroke-width="1.5" stroke-linecap="round"/></svg></div>
<div class="card-title-wrap">
<h2>Operational Security</h2>
<p>Hardened, monitored, incident-ready</p>
</div>
</div>
<ul class="security-items">
<li>Infrastructure hosted on AWS — SOC 2 Type II and ISO 27001 certified. Landvex own ISO 27001 certification: in planning for 2027.</li>
<li>Automated vulnerability scanning on all production systems</li>
<li>Incident response process documented and tested</li>
</ul>
</div>
<!-- Enterprise -->
<div class="security-card" style="cursor:pointer;border-color:rgba(0,102,255,0.18);background:rgba(0,102,255,0.04)" onclick="location.href='#contact'" role="button" tabindex="0">
<div class="card-header">
<div class="card-icon" style="background:var(--blue-glow);border-color:rgba(0,102,255,0.25)"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="3" y="2" width="10" height="12" rx="1" stroke="#666" stroke-width="1.5"/><path d="M6 5H7M6 8H7M6 11H7M9 5H10M9 8H10M9 11H10" stroke="#666" stroke-width="1.5" stroke-linecap="round"/></svg></div>
<div class="card-title-wrap">
<h2>Enterprise</h2>
<p>Agreements, questionnaires, direct contact</p>
</div>
</div>
<ul class="security-items">
<li>Data Processing Agreements (DPA) available on request</li>
<li>Security questionnaires handled within 5 business days</li>
<li>Dedicated contact: <a href="mailto:security@landvex.com" style="color:#5599ff;text-decoration:underline;text-underline-offset:3px">security@landvex.com</a></li>
</ul>
<div style="margin-top:24px;padding-top:20px;border-top:1px solid var(--border)">
<a href="mailto:security@landvex.com" class="btn" style="font-size:13px;padding:10px 20px">Request DPA or questionnaire →</a>
</div>
</div>
</div>
</div>
</section>
<!-- COMPLIANCE STRIP -->
<section style="padding:0 24px 88px">
<div class="container">
<div class="compliance-strip">
<div style="flex:1;min-width:200px">
<div style="font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);margin-bottom:6px">Compliance status</div>
<div style="font-size:15px;font-weight:700;color: #1d1d1f">All systems ready for August 2026 launch</div>
</div>
<div class="compliance-divider"></div>
<div class="compliance-badge">
<div class="dot"></div>
<span>GDPR — EU data residency</span>
</div>
<div class="compliance-divider"></div>
<div class="compliance-badge">
<div class="dot"></div>
<span>Hosted on AWS SOC 2 Type II infrastructure</span>
</div>
<div class="compliance-divider"></div>
<div class="compliance-badge">
<div class="dot"></div>
<span>ISO 27001-certified infrastructure (AWS eu-north-1)</span>
</div>
<div class="compliance-divider"></div>
<div class="compliance-badge">
<div class="dot"></div>
<span>TLS 1.2+ enforced</span>
</div>
</div>
</div>
</section>
<!-- ENTERPRISE CTA -->
<section style="background:var(--surface);padding:88px 24px">
<div class="container">
<div class="enterprise-block">
<div class="main">
<div class="section-label" style="color:var(--blue)">Enterprise ready</div>
<h2>Security questions? We answer them.</h2>
<p>Procurement, legal, or IT security teams with questions about the Landvex platform can contact our security team directly. We respond to all questionnaires within 5 business days.</p>
<div style="margin-top:28px;display:flex;flex-direction:column;gap:10px">
<div class="contact-item">
<span style="font-size:16px"></span>
<span>Security team: <strong><a href="mailto:security@landvex.com" style="color:#5599ff">security@landvex.com</a></strong></span>
</div>
<div class="contact-item">
<span style="font-size:16px"></span>
<span>DPA available on request</span>
</div>
<div class="contact-item">
<span style="font-size:16px"></span>
<span>Questionnaire SLA: <strong>5 business days</strong></span>
</div>
</div>
</div>
<div class="actions">
<a class="btn btn-lg" href="mailto:security@landvex.com">Email security team →</a>
<a class="btn btn-outline btn-lg" href="/#contact">General enquiry</a>
</div>
</div>
</div>
</section>
<!-- FOOTER -->
<section style="max-width:760px;margin:0 auto 48px;padding:0 24px">
<h2 style="font-size:1.1rem;font-weight:700;margin-bottom:16px">Trust Centre — Security Documentation</h2>
<p style="font-size:.9rem;line-height:1.65;color:#444;margin-bottom:16px">
Enterprise and government clients can request the following documentation under NDA.
We respond within one business day.
</p>
<div style="display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px">
<div style="border:1px solid #e5e7eb;border-radius: var(--radius-md);padding:14px 16px">
<div style="font-weight:700;font-size:.875rem;margin-bottom:4px">Penetration test summary</div>
<div style="font-size:.8rem;color:#aaa">Most recent external pen test — under NDA</div>
</div>
<div style="border:1px solid #e5e7eb;border-radius: var(--radius-md);padding:14px 16px">
<div style="font-weight:700;font-size:.875rem;margin-bottom:4px">AWS compliance reports</div>
<div style="font-size:.8rem;color:#aaa">SOC 2 Type II + ISO 27001 (AWS infrastructure)</div>
</div>
<div style="border:1px solid #e5e7eb;border-radius: var(--radius-md);padding:14px 16px">
<div style="font-weight:700;font-size:.875rem;margin-bottom:4px">CAIQ / SIG questionnaire</div>
<div style="font-size:.8rem;color:#aaa">Pre-filled security assessment on request</div>
</div>
<div style="border:1px solid #e5e7eb;border-radius: var(--radius-md);padding:14px 16px">
<div style="font-weight:700;font-size:.875rem;margin-bottom:4px">Data Processing Agreement</div>
<div style="font-size:.8rem;color:#aaa"><a href="/dpa" style="color:#2563eb">View DPA →</a></div>
</div>
</div>
<a href="mailto:security@landvex.com?subject=Security%20documentation%20request"
style="display:inline-block;background:#0a1628;color: #1d1d1f;padding:10px 20px;border-radius: var(--radius-md);font-size:.875rem;font-weight:700;text-decoration:none">
Request documentation →
</a>
<p style="font-size:.75rem;color:#aaa;margin-top:10px">
Landvex own ISO 27001: in planning for 2027. SOC 2 Type I target: Q4 2026.
We do not claim certifications we do not hold.
</p>
</section>
<footer>
<div class="footer-inner">
<div>
<div class="footer-logo">LandveX</div>
<div class="footer-copy">© 2026 Landvex Inc · 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="/privacy">Privacy</a>
<a href="/terms">Terms</a>
<a href="/security/" style="color: #1d1d1f;font-weight:600">Security</a>
<a href="https://www.quixzoom.com/" target="_blank" rel="noopener">quiXzoom →</a>
<a href="mailto:contact@landvex.com">contact@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>