bae705aa97
- Add NFC ePassport roadmap (ICAO 9303, eIDAS) - Add TensorFlow.js edge face detection (BlazeFace) - Add structured audit logger (GDPR-compliant) - Risk scoring support Part of KYC Apple Native UX v1.1.0
899 lines
27 KiB
HTML
899 lines
27 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<meta name="description" content="Landvex — Enterprise property intelligence. Precision at scale." />
|
|
<title>Landvex — Enterprise Property Intelligence</title>
|
|
<link rel="canonical" href="https://www.landvex.com/">
|
|
|
|
<!-- IBM Plex Sans + Serif — core brand typefaces -->
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&family=IBM+Plex+Serif:ital,wght@0,400;0,600;1,400&display=swap" rel="stylesheet" />
|
|
|
|
<style>
|
|
/* ── DESIGN TOKENS ─────────────────────────────────────────────────────── */
|
|
:root {
|
|
/* Grayscale — light theme */
|
|
--lv-white: #FFFFFF;
|
|
--lv-gray-50: #F7F7F7;
|
|
--lv-gray-100: #EFEFEF;
|
|
--lv-gray-200: #DEDEDE;
|
|
--lv-gray-400: #9A9A9A;
|
|
--lv-gray-600: #5A5A5A;
|
|
--lv-gray-800: #222222;
|
|
--lv-deep-carbon: #111111;
|
|
|
|
/* Accents */
|
|
--lv-enterprise-blue: #1B4FBF;
|
|
--lv-enterprise-dark: #0F2E6E;
|
|
--lv-accent-secondary: #3A3A3A;
|
|
--lv-blue-10: rgba(27, 79, 191, 0.10);
|
|
--lv-blue-20: rgba(27, 79, 191, 0.20);
|
|
|
|
/* Semantic */
|
|
--lv-bg: var(--lv-white);
|
|
--lv-bg-surface: var(--lv-gray-50);
|
|
--lv-text-primary: var(--lv-gray-800);
|
|
--lv-text-display: var(--lv-deep-carbon);
|
|
--lv-text-muted: var(--lv-gray-600);
|
|
--lv-border: var(--lv-gray-200);
|
|
--lv-border-strong: var(--lv-gray-400);
|
|
|
|
/* 8px grid spacing */
|
|
--lv-space-1: 8px;
|
|
--lv-space-2: 16px;
|
|
--lv-space-3: 24px;
|
|
--lv-space-4: 32px;
|
|
--lv-space-6: 48px;
|
|
--lv-space-8: 64px;
|
|
--lv-space-12: 96px;
|
|
--lv-space-16: 128px;
|
|
|
|
/* Type scale */
|
|
--lv-text-xs: 12px;
|
|
--lv-text-sm: 16px;
|
|
--lv-text-md: 24px;
|
|
--lv-text-lg: 48px;
|
|
--lv-text-xl: 64px;
|
|
|
|
/* Line heights */
|
|
--lv-leading-tight: 1.2;
|
|
--lv-leading-snug: 1.35;
|
|
--lv-leading-base: 1.55;
|
|
|
|
/* Easing */
|
|
--lv-ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
|
|
--lv-ease-out: cubic-bezier(0.0, 0.0, 0.2, 1);
|
|
|
|
/* Duration */
|
|
--lv-dur-fast: 120ms;
|
|
--lv-dur-base: 200ms;
|
|
--lv-dur-slow: 350ms;
|
|
|
|
/* Radius — enterprise-precision, minimal */
|
|
--lv-radius-sm: 2px;
|
|
--lv-radius-md: 4px;
|
|
|
|
/* Shadows */
|
|
--lv-shadow-sm:
|
|
0 1px 3px rgba(0, 0, 0, 0.08),
|
|
0 0 1px rgba(0, 0, 0, 0.04);
|
|
--lv-shadow-md:
|
|
0 4px 8px rgba(0, 0, 0, 0.07),
|
|
0 1px 2px rgba(0, 0, 0, 0.05);
|
|
}
|
|
|
|
/* ── RESET ──────────────────────────────────────────────────────────────── */
|
|
*, *::before, *::after {
|
|
box-sizing: border-box;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
html {
|
|
/* scroll-behavior disabled to prevent auto-scroll on page load */
|
|
-webkit-text-size-adjust: 100%;
|
|
}
|
|
|
|
body {
|
|
background-color: var(--lv-bg);
|
|
color: var(--lv-text-primary);
|
|
font-family: 'IBM Plex Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
|
font-size: var(--lv-text-sm);
|
|
line-height: var(--lv-leading-base);
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
font-feature-settings: "kern" 1, "liga" 1, "calt" 1;
|
|
min-height: 100dvh;
|
|
}
|
|
|
|
/* ── KEYFRAMES ──────────────────────────────────────────────────────────── */
|
|
@keyframes lv-fade-up {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(16px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
@keyframes lv-fade-in {
|
|
from { opacity: 0; }
|
|
to { opacity: 1; }
|
|
}
|
|
|
|
@keyframes lv-expand-width {
|
|
from { width: 0; }
|
|
to { width: 100%; }
|
|
}
|
|
|
|
/* ── NAV ────────────────────────────────────────────────────────────────── */
|
|
.nav {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 0 var(--lv-space-3);
|
|
height: 56px;
|
|
border-bottom: 1px solid var(--lv-border);
|
|
background: var(--lv-white);
|
|
position: sticky;
|
|
top: 0;
|
|
z-index: 100;
|
|
}
|
|
|
|
.nav-logo {
|
|
font-family: 'IBM Plex Sans', sans-serif;
|
|
font-size: 15px;
|
|
font-weight: 600;
|
|
letter-spacing: -0.01em;
|
|
color: var(--lv-deep-carbon);
|
|
text-decoration: none;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
}
|
|
|
|
.nav-logo-mark {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 24px;
|
|
height: 24px;
|
|
background: var(--lv-enterprise-blue);
|
|
border-radius: var(--lv-radius-sm);
|
|
font-size: 11px;
|
|
font-weight: 700;
|
|
color: white;
|
|
letter-spacing: 0;
|
|
}
|
|
|
|
.nav-links {
|
|
display: none;
|
|
gap: var(--lv-space-4);
|
|
list-style: none;
|
|
align-items: center;
|
|
}
|
|
|
|
.nav-links a {
|
|
font-size: 14px;
|
|
font-weight: 400;
|
|
color: var(--lv-text-muted);
|
|
text-decoration: none;
|
|
transition: color var(--lv-dur-fast) var(--lv-ease-standard);
|
|
}
|
|
|
|
.nav-links a:hover {
|
|
color: var(--lv-text-primary);
|
|
}
|
|
|
|
.nav-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--lv-space-2);
|
|
}
|
|
|
|
.nav-link {
|
|
font-size: 14px;
|
|
font-weight: 400;
|
|
color: var(--lv-enterprise-blue);
|
|
text-decoration: none;
|
|
transition: color var(--lv-dur-fast) var(--lv-ease-standard);
|
|
}
|
|
|
|
.nav-link:hover {
|
|
color: var(--lv-enterprise-dark);
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.nav-cta {
|
|
font-size: 13px;
|
|
font-weight: 500;
|
|
color: var(--lv-white);
|
|
background: var(--lv-enterprise-blue);
|
|
border: 1px solid var(--lv-enterprise-blue);
|
|
border-radius: var(--lv-radius-md);
|
|
padding: 8px 16px;
|
|
cursor: pointer;
|
|
letter-spacing: 0;
|
|
text-decoration: none;
|
|
transition:
|
|
background var(--lv-dur-fast) var(--lv-ease-standard),
|
|
border-color var(--lv-dur-fast) var(--lv-ease-standard),
|
|
box-shadow var(--lv-dur-base) var(--lv-ease-standard);
|
|
}
|
|
|
|
.nav-cta:hover {
|
|
background: var(--lv-enterprise-dark);
|
|
border-color: var(--lv-enterprise-dark);
|
|
box-shadow: var(--lv-shadow-sm);
|
|
}
|
|
|
|
/* ── HERO SECTION ───────────────────────────────────────────────────────── */
|
|
.hero {
|
|
display: flex;
|
|
flex-direction: column;
|
|
border-bottom: 1px solid var(--lv-border);
|
|
}
|
|
|
|
/* ── HERO HEADER ────────────────────────────────────────────────────────── */
|
|
.hero-header {
|
|
padding: var(--lv-space-8) var(--lv-space-3) var(--lv-space-6);
|
|
border-bottom: 1px solid var(--lv-border);
|
|
animation: lv-fade-up var(--lv-dur-slow) var(--lv-ease-out) 0.1s both;
|
|
}
|
|
|
|
/* Overline */
|
|
.hero-overline {
|
|
font-size: var(--lv-text-xs);
|
|
font-weight: 500;
|
|
letter-spacing: 0.10em;
|
|
text-transform: uppercase;
|
|
color: var(--lv-enterprise-blue);
|
|
margin-bottom: var(--lv-space-2);
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--lv-space-1);
|
|
}
|
|
|
|
.overline-rule {
|
|
display: inline-block;
|
|
width: 20px;
|
|
height: 1px;
|
|
background: var(--lv-enterprise-blue);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
/* Main headline */
|
|
.hero-headline {
|
|
font-family: Georgia, 'Georgia', serif;
|
|
font-size: clamp(32px, 8vw, 48px);
|
|
font-weight: 600;
|
|
line-height: var(--lv-leading-tight);
|
|
letter-spacing: -0.01em;
|
|
color: var(--lv-text-display);
|
|
max-width: 20ch;
|
|
margin-bottom: var(--lv-space-3);
|
|
}
|
|
|
|
/* Sub-headline */
|
|
.hero-sub {
|
|
font-size: clamp(15px, 3vw, 17px);
|
|
font-weight: 400;
|
|
line-height: var(--lv-leading-base);
|
|
color: var(--lv-text-muted);
|
|
max-width: 52ch;
|
|
}
|
|
|
|
/* ── HERO CONTENT GRID ──────────────────────────────────────────────────── */
|
|
.hero-grid {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
/* ── MAIN COLUMN ────────────────────────────────────────────────────────── */
|
|
.hero-main {
|
|
padding: var(--lv-space-6) var(--lv-space-3);
|
|
animation: lv-fade-up var(--lv-dur-slow) var(--lv-ease-out) 0.2s both;
|
|
}
|
|
|
|
.hero-description {
|
|
font-size: var(--lv-text-sm);
|
|
line-height: var(--lv-leading-base);
|
|
color: var(--lv-text-primary);
|
|
max-width: 60ch;
|
|
margin-bottom: var(--lv-space-4);
|
|
}
|
|
|
|
.hero-description + .hero-description {
|
|
margin-top: calc(-1 * var(--lv-space-2));
|
|
}
|
|
|
|
/* CTA group */
|
|
.hero-cta-group {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--lv-space-2);
|
|
margin-bottom: var(--lv-space-6);
|
|
}
|
|
|
|
.btn-primary {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: var(--lv-space-1);
|
|
font-family: 'IBM Plex Sans', sans-serif;
|
|
font-size: var(--lv-text-sm);
|
|
font-weight: 500;
|
|
letter-spacing: 0;
|
|
text-decoration: none;
|
|
color: var(--lv-white);
|
|
background: var(--lv-enterprise-blue);
|
|
border: 1px solid var(--lv-enterprise-blue);
|
|
border-radius: var(--lv-radius-md);
|
|
padding: 14px 24px;
|
|
cursor: pointer;
|
|
width: 100%;
|
|
justify-content: center;
|
|
transition:
|
|
background var(--lv-dur-fast) var(--lv-ease-standard),
|
|
box-shadow var(--lv-dur-base) var(--lv-ease-standard);
|
|
}
|
|
|
|
.btn-primary:hover {
|
|
background: var(--lv-enterprise-dark);
|
|
border-color: var(--lv-enterprise-dark);
|
|
box-shadow: var(--lv-shadow-md);
|
|
}
|
|
|
|
.btn-secondary {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: var(--lv-space-1);
|
|
font-family: 'IBM Plex Sans', sans-serif;
|
|
font-size: var(--lv-text-sm);
|
|
font-weight: 400;
|
|
letter-spacing: 0;
|
|
text-decoration: none;
|
|
color: var(--lv-enterprise-blue);
|
|
background: transparent;
|
|
border: 1px solid var(--lv-border-strong);
|
|
border-radius: var(--lv-radius-md);
|
|
padding: 13px 24px;
|
|
cursor: pointer;
|
|
width: 100%;
|
|
justify-content: center;
|
|
transition:
|
|
border-color var(--lv-dur-fast) var(--lv-ease-standard),
|
|
background var(--lv-dur-fast) var(--lv-ease-standard),
|
|
color var(--lv-dur-fast) var(--lv-ease-standard);
|
|
}
|
|
|
|
.btn-secondary:hover {
|
|
border-color: var(--lv-enterprise-blue);
|
|
background: var(--lv-blue-10);
|
|
color: var(--lv-enterprise-dark);
|
|
}
|
|
|
|
/* ── FEATURE LIST ───────────────────────────────────────────────────────── */
|
|
.feature-list {
|
|
list-style: none;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.feature-item {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: var(--lv-space-2);
|
|
padding: var(--lv-space-2) 0;
|
|
border-bottom: 1px solid var(--lv-border);
|
|
font-size: 14px;
|
|
line-height: var(--lv-leading-snug);
|
|
color: var(--lv-text-primary);
|
|
}
|
|
|
|
.feature-item:first-child {
|
|
border-top: 1px solid var(--lv-border);
|
|
}
|
|
|
|
.feature-icon {
|
|
flex-shrink: 0;
|
|
width: 16px;
|
|
height: 16px;
|
|
margin-top: 2px;
|
|
color: var(--lv-enterprise-blue);
|
|
}
|
|
|
|
.feature-title {
|
|
font-weight: 500;
|
|
display: block;
|
|
margin-bottom: 2px;
|
|
}
|
|
|
|
.feature-desc {
|
|
font-size: var(--lv-text-xs);
|
|
color: var(--lv-text-muted);
|
|
line-height: var(--lv-leading-base);
|
|
}
|
|
|
|
/* ── SIDEBAR COLUMN ─────────────────────────────────────────────────────── */
|
|
.hero-sidebar {
|
|
background: var(--lv-bg-surface);
|
|
border-top: 1px solid var(--lv-border);
|
|
padding: var(--lv-space-6) var(--lv-space-3);
|
|
animation: lv-fade-up var(--lv-dur-slow) var(--lv-ease-out) 0.35s both;
|
|
}
|
|
|
|
/* Metrics block */
|
|
.metrics-header {
|
|
font-size: var(--lv-text-xs);
|
|
font-weight: 600;
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
color: var(--lv-text-muted);
|
|
margin-bottom: var(--lv-space-2);
|
|
}
|
|
|
|
.metrics-grid {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 1px;
|
|
background: var(--lv-border);
|
|
border: 1px solid var(--lv-border);
|
|
margin-bottom: var(--lv-space-4);
|
|
}
|
|
|
|
.metric-cell {
|
|
background: var(--lv-white);
|
|
padding: var(--lv-space-2) var(--lv-space-2);
|
|
}
|
|
|
|
.metric-value {
|
|
font-size: 22px;
|
|
font-weight: 600;
|
|
letter-spacing: -0.02em;
|
|
color: var(--lv-text-display);
|
|
line-height: 1;
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.metric-value .unit {
|
|
font-size: 13px;
|
|
font-weight: 400;
|
|
color: var(--lv-text-muted);
|
|
letter-spacing: 0;
|
|
}
|
|
|
|
.metric-label {
|
|
font-size: 11px;
|
|
font-weight: 400;
|
|
letter-spacing: 0.04em;
|
|
color: var(--lv-text-muted);
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
/* Pricing block */
|
|
.pricing-block {
|
|
border: 1px solid var(--lv-border);
|
|
background: var(--lv-white);
|
|
padding: var(--lv-space-3);
|
|
margin-bottom: var(--lv-space-3);
|
|
}
|
|
|
|
.pricing-label {
|
|
font-size: var(--lv-text-xs);
|
|
font-weight: 500;
|
|
letter-spacing: 0.06em;
|
|
text-transform: uppercase;
|
|
color: var(--lv-text-muted);
|
|
margin-bottom: var(--lv-space-1);
|
|
}
|
|
|
|
.pricing-value {
|
|
font-size: 28px;
|
|
font-weight: 600;
|
|
letter-spacing: -0.02em;
|
|
color: var(--lv-text-display);
|
|
line-height: 1;
|
|
margin-bottom: var(--lv-space-1);
|
|
}
|
|
|
|
.pricing-value .currency {
|
|
font-size: 16px;
|
|
font-weight: 400;
|
|
vertical-align: super;
|
|
margin-right: 1px;
|
|
}
|
|
|
|
.pricing-value .period {
|
|
font-size: 14px;
|
|
font-weight: 400;
|
|
color: var(--lv-text-muted);
|
|
}
|
|
|
|
.pricing-desc {
|
|
font-size: var(--lv-text-xs);
|
|
color: var(--lv-text-muted);
|
|
line-height: var(--lv-leading-base);
|
|
border-top: 1px solid var(--lv-border);
|
|
padding-top: var(--lv-space-2);
|
|
margin-top: var(--lv-space-2);
|
|
}
|
|
|
|
/* Clients strip */
|
|
.clients-section {
|
|
margin-top: var(--lv-space-4);
|
|
}
|
|
|
|
.clients-label {
|
|
font-size: var(--lv-text-xs);
|
|
font-weight: 500;
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
color: var(--lv-text-muted);
|
|
margin-bottom: var(--lv-space-2);
|
|
}
|
|
|
|
.clients-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 1px;
|
|
}
|
|
|
|
.client-row {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: var(--lv-space-1) 0;
|
|
border-bottom: 1px solid var(--lv-border);
|
|
font-size: 13px;
|
|
}
|
|
|
|
.client-name {
|
|
font-weight: 500;
|
|
color: var(--lv-text-primary);
|
|
}
|
|
|
|
.client-type {
|
|
font-size: var(--lv-text-xs);
|
|
color: var(--lv-text-muted);
|
|
}
|
|
|
|
/* ── BOTTOM TRUST BAR ───────────────────────────────────────────────────── */
|
|
.trust-bar {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 1px;
|
|
background: var(--lv-border);
|
|
border-top: 1px solid var(--lv-border);
|
|
animation: lv-fade-in var(--lv-dur-slow) var(--lv-ease-out) 0.5s both;
|
|
}
|
|
|
|
.trust-item {
|
|
background: var(--lv-white);
|
|
padding: var(--lv-space-3);
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: var(--lv-space-2);
|
|
}
|
|
|
|
.trust-icon {
|
|
flex-shrink: 0;
|
|
width: 20px;
|
|
height: 20px;
|
|
margin-top: 2px;
|
|
}
|
|
|
|
.trust-text strong {
|
|
display: block;
|
|
font-size: 13px;
|
|
font-weight: 600;
|
|
color: var(--lv-text-display);
|
|
margin-bottom: 2px;
|
|
}
|
|
|
|
.trust-text span {
|
|
font-size: var(--lv-text-xs);
|
|
color: var(--lv-text-muted);
|
|
line-height: var(--lv-leading-base);
|
|
}
|
|
|
|
/* ── MEDIA QUERIES ──────────────────────────────────────────────────────── */
|
|
|
|
/* Tablet 640px+ */
|
|
@media (min-width: 640px) {
|
|
.nav {
|
|
padding: 0 var(--lv-space-6);
|
|
}
|
|
|
|
.nav-links {
|
|
display: flex;
|
|
}
|
|
|
|
.hero-header {
|
|
padding: var(--lv-space-8) var(--lv-space-6) var(--lv-space-6);
|
|
}
|
|
|
|
.hero-main {
|
|
padding: var(--lv-space-6) var(--lv-space-6);
|
|
}
|
|
|
|
.hero-cta-group {
|
|
flex-direction: row;
|
|
}
|
|
|
|
.btn-primary,
|
|
.btn-secondary {
|
|
width: auto;
|
|
min-width: 180px;
|
|
}
|
|
|
|
.hero-sidebar {
|
|
padding: var(--lv-space-6) var(--lv-space-6);
|
|
}
|
|
|
|
.trust-bar {
|
|
flex-direction: row;
|
|
}
|
|
|
|
.trust-item {
|
|
flex: 1;
|
|
border-right: 1px solid var(--lv-border);
|
|
}
|
|
|
|
.trust-item:last-child {
|
|
border-right: none;
|
|
}
|
|
}
|
|
|
|
/* Desktop 1024px+ */
|
|
@media (min-width: 1024px) {
|
|
.nav {
|
|
padding: 0 var(--lv-space-8);
|
|
}
|
|
|
|
.hero-header {
|
|
padding: var(--lv-space-12) var(--lv-space-8) var(--lv-space-8);
|
|
}
|
|
|
|
.hero-grid {
|
|
flex-direction: row;
|
|
min-height: 520px;
|
|
}
|
|
|
|
.hero-main {
|
|
flex: 1 1 0;
|
|
padding: var(--lv-space-8);
|
|
border-right: 1px solid var(--lv-border);
|
|
}
|
|
|
|
.hero-sidebar {
|
|
width: 320px;
|
|
flex-shrink: 0;
|
|
border-top: none;
|
|
padding: var(--lv-space-6);
|
|
}
|
|
|
|
.hero-headline {
|
|
font-size: var(--lv-text-lg); /* 48px locked desktop */
|
|
}
|
|
}
|
|
|
|
/* Large Desktop 1440px+ */
|
|
@media (min-width: 1440px) {
|
|
.nav {
|
|
padding: 0 var(--lv-space-16);
|
|
}
|
|
|
|
.hero-header {
|
|
padding: var(--lv-space-12) var(--lv-space-16) var(--lv-space-8);
|
|
}
|
|
|
|
.hero-main {
|
|
padding: var(--lv-space-8) var(--lv-space-16) var(--lv-space-8) var(--lv-space-16);
|
|
}
|
|
|
|
.hero-sidebar {
|
|
width: 360px;
|
|
}
|
|
}
|
|
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<!-- NAV -->
|
|
<nav class="nav" aria-label="Main navigation">
|
|
<a href="/" class="nav-logo">
|
|
<span class="nav-logo-mark" aria-hidden="true">L</span>
|
|
Landvex
|
|
</a>
|
|
<ul class="nav-links" role="list">
|
|
<li><a href="#platform">Platform</a></li>
|
|
<li><a href="#solutions">Solutions</a></li>
|
|
<li><a href="#customers">Customers</a></li>
|
|
<li><a href="#pricing">Pricing</a></li>
|
|
</ul>
|
|
<div class="nav-actions">
|
|
<a href="#login" class="nav-link">Sign in</a>
|
|
<a href="#contact" class="nav-cta">Request Demo</a>
|
|
</div>
|
|
</nav>
|
|
|
|
<!-- HERO SECTION -->
|
|
<section class="hero" aria-labelledby="hero-headline">
|
|
|
|
<!-- HEADER -->
|
|
<header class="hero-header">
|
|
<p class="hero-overline">
|
|
<span class="overline-rule" aria-hidden="true"></span>
|
|
Enterprise Property Intelligence
|
|
</p>
|
|
<h1 class="hero-headline" id="hero-headline">
|
|
Landvex — The Operating System for Property Professionals
|
|
</h1>
|
|
<p class="hero-sub">
|
|
Landvex consolidates valuation data, transaction records, and portfolio analytics
|
|
into a single, auditable workspace — built for the precision that enterprise decisions demand.
|
|
</p>
|
|
</header>
|
|
|
|
<!-- CONTENT GRID -->
|
|
<div class="hero-grid">
|
|
|
|
<!-- MAIN COLUMN -->
|
|
<div class="hero-main">
|
|
<p class="hero-description">
|
|
Modern property transactions depend on structured, reliable data. Landvex gives
|
|
analysts and fund managers a unified environment where every data point is
|
|
traceable, every workflow is reproducible, and every output is audit-ready.
|
|
</p>
|
|
|
|
<!-- CTA -->
|
|
<div class="hero-cta-group">
|
|
<a href="#request-demo" class="btn-primary">Request a Demo</a>
|
|
<a href="#documentation" class="btn-secondary">View Documentation →</a>
|
|
</div>
|
|
|
|
<!-- Feature list -->
|
|
<ul class="feature-list" aria-label="Platform features">
|
|
<li class="feature-item">
|
|
<svg class="feature-icon" viewBox="0 0 16 16" fill="none" aria-hidden="true">
|
|
<path d="M13 4L6 11L3 8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
</svg>
|
|
<div>
|
|
<span class="feature-title">Unified Data Layer</span>
|
|
<span class="feature-desc">Consolidate cadastral records, transaction history, and market indices. Single source of truth across your entire portfolio.</span>
|
|
</div>
|
|
</li>
|
|
<li class="feature-item">
|
|
<svg class="feature-icon" viewBox="0 0 16 16" fill="none" aria-hidden="true">
|
|
<path d="M13 4L6 11L3 8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
</svg>
|
|
<div>
|
|
<span class="feature-title">Automated Valuation Models</span>
|
|
<span class="feature-desc">Reproducible, explainable AVMs with confidence intervals. Designed for scrutiny by auditors and regulators.</span>
|
|
</div>
|
|
</li>
|
|
<li class="feature-item">
|
|
<svg class="feature-icon" viewBox="0 0 16 16" fill="none" aria-hidden="true">
|
|
<path d="M13 4L6 11L3 8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
</svg>
|
|
<div>
|
|
<span class="feature-title">Enterprise SSO & Role-Based Access</span>
|
|
<span class="feature-desc">SAML 2.0, SCIM provisioning, and fine-grained permissions. Meets ISO 27001 and SOC 2 Type II requirements.</span>
|
|
</div>
|
|
</li>
|
|
<li class="feature-item">
|
|
<svg class="feature-icon" viewBox="0 0 16 16" fill="none" aria-hidden="true">
|
|
<path d="M13 4L6 11L3 8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
</svg>
|
|
<div>
|
|
<span class="feature-title">API-First Architecture</span>
|
|
<span class="feature-desc">REST and GraphQL endpoints with webhook support. Integrate with existing ERP, CRM, and reporting stacks.</span>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<!-- SIDEBAR COLUMN -->
|
|
<aside class="hero-sidebar" aria-label="Platform metrics and pricing">
|
|
|
|
<!-- Metrics -->
|
|
<p class="metrics-header">Platform Overview</p>
|
|
<div class="metrics-grid" role="list">
|
|
<div class="metric-cell" role="listitem">
|
|
<div class="metric-value">2.4<span class="unit">M+</span></div>
|
|
<div class="metric-label">Properties tracked</div>
|
|
</div>
|
|
<div class="metric-cell" role="listitem">
|
|
<div class="metric-value">99.9<span class="unit">%</span></div>
|
|
<div class="metric-label">Uptime SLA</div>
|
|
</div>
|
|
<div class="metric-cell" role="listitem">
|
|
<div class="metric-value">140<span class="unit">ms</span></div>
|
|
<div class="metric-label">Median API latency</div>
|
|
</div>
|
|
<div class="metric-cell" role="listitem">
|
|
<div class="metric-value">12<span class="unit"> EU</span></div>
|
|
<div class="metric-label">Markets covered</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Pricing -->
|
|
<div class="pricing-block">
|
|
<p class="pricing-label">Enterprise Plan</p>
|
|
<div class="pricing-value">
|
|
<span class="currency">€</span>1,490<span class="period"> / month</span>
|
|
</div>
|
|
<p class="pricing-desc">
|
|
Per workspace. Unlimited users and API calls.
|
|
Annual billing available — save up to 20%.
|
|
All data hosted in EU (Frankfurt).
|
|
</p>
|
|
</div>
|
|
|
|
<!-- Clients -->
|
|
<div class="clients-section">
|
|
<p class="clients-label">Selected Clients</p>
|
|
<ul class="clients-list" aria-label="Client examples">
|
|
<li class="client-row">
|
|
<span class="client-name">Nordea Real Estate</span>
|
|
<span class="client-type">Fund Manager</span>
|
|
</li>
|
|
<li class="client-row">
|
|
<span class="client-name">Patrizia AG</span>
|
|
<span class="client-type">Investment Manager</span>
|
|
</li>
|
|
<li class="client-row">
|
|
<span class="client-name">Niam Capital</span>
|
|
<span class="client-type">Private Equity</span>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
|
|
</aside>
|
|
</div>
|
|
|
|
<!-- TRUST BAR -->
|
|
<div class="trust-bar" role="list" aria-label="Compliance and security">
|
|
<div class="trust-item" role="listitem">
|
|
<svg class="trust-icon" viewBox="0 0 20 20" fill="none" aria-hidden="true">
|
|
<path d="M10 2L3 6v5c0 4.418 3.134 8.55 7 9.5C16.866 19.55 20 15.418 20 11V6l-7-4H10z" stroke="#1B4FBF" stroke-width="1.25" fill="none"/>
|
|
<path d="M7 10l2 2 4-4" stroke="#1B4FBF" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
|
</svg>
|
|
<div class="trust-text">
|
|
<strong>SOC 2 Type II Certified</strong>
|
|
<span>Annual independent security audit. Full report available under NDA.</span>
|
|
</div>
|
|
</div>
|
|
<div class="trust-item" role="listitem">
|
|
<svg class="trust-icon" viewBox="0 0 20 20" fill="none" aria-hidden="true">
|
|
<rect x="2" y="3" width="16" height="14" rx="1" stroke="#1B4FBF" stroke-width="1.25"/>
|
|
<path d="M6 8h8M6 11h5" stroke="#1B4FBF" stroke-width="1.25" stroke-linecap="round"/>
|
|
</svg>
|
|
<div class="trust-text">
|
|
<strong>GDPR Compliant</strong>
|
|
<span>EU data residency guaranteed. DPA available on request.</span>
|
|
</div>
|
|
</div>
|
|
<div class="trust-item" role="listitem">
|
|
<svg class="trust-icon" viewBox="0 0 20 20" fill="none" aria-hidden="true">
|
|
<circle cx="10" cy="10" r="8" stroke="#1B4FBF" stroke-width="1.25"/>
|
|
<path d="M10 6v4l3 2" stroke="#1B4FBF" stroke-width="1.25" stroke-linecap="round"/>
|
|
</svg>
|
|
<div class="trust-text">
|
|
<strong>99.9% Uptime SLA</strong>
|
|
<span>Contractual uptime guarantee with financial penalties for breach.</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</section>
|
|
|
|
</body>
|
|
</html>
|