File: //home/primrwxj/landpjsolutions.com/index.html
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>LandPjSolutions | Building & Construction Services</title>
<meta name="description" content="LandPjSolutions is a building construction firm delivering residential building projects, site coordination, and execution of approved architectural and engineering designs in compliance with estate regulations and statutory authorities." />
<meta name="theme-color" content="#f8fafc"/>
<meta property="og:title" content="LandPjSolutions | Building & Construction Services" />
<meta property="og:description" content="Residential building projects, site coordination, and strict execution of approved architectural and engineering designs—aligned with estate regulations and statutory authorities." />
<meta property="og:type" content="website" />
<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=Inter:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap" rel="stylesheet">
<style>
:root{
--bg: #f8fafc; /* plain light background */
--text: #0f172a;
--muted:#475569;
--faint:#64748b;
--line:#e2e8f0;
--surface:#ffffff;
--surface2:#f1f5f9;
--brand:#b8860b; /* classy gold */
--brand2:#2563eb; /* blue accent */
--good:#16a34a;
--shadow: 0 18px 60px rgba(2,6,23,.10);
--radius: 18px;
--radius2: 26px;
--max: 1120px;
}
*{box-sizing:border-box}
html,body{height:100%}
html{scroll-behavior:smooth}
body{
margin:0;
color:var(--text);
background: var(--bg);
font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
letter-spacing: -0.01em;
line-height:1.55;
}
a{color:inherit;text-decoration:none}
.container{max-width:var(--max); margin:0 auto; padding:0 20px}
/* Top bar */
.topbar{
position: sticky;
top:0;
z-index: 50;
background: rgba(248,250,252,.92);
backdrop-filter: blur(10px);
border-bottom: 1px solid var(--line);
}
.topbar-inner{
display:flex;
align-items:center;
justify-content:space-between;
padding: 14px 0;
gap:14px;
}
.brand{
display:flex;
align-items:center;
gap:12px;
min-width: 220px;
}
.logo{
width:80px;height:80px;border-radius:12px;
background: linear-gradient(135deg, rgba(184,134,11,.95), rgba(37,99,235,.85));
box-shadow: 0 12px 30px rgba(2,6,23,.10);
position:relative;
overflow:hidden;
}
.logo:after{
content:"";
position:absolute; inset:-30%;
background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.65), transparent 48%);
transform: rotate(20deg);
}
.brand-title{display:flex; flex-direction:column; line-height:1.1}
.brand-title strong{font-weight:800; letter-spacing:-0.03em}
.brand-title span{font-size:12.5px; color:var(--muted)}
nav{
display:flex;
gap:18px;
align-items:center;
flex-wrap:wrap;
justify-content:flex-end;
}
nav a{
font-size: 13.5px;
color: var(--muted);
padding: 8px 10px;
border-radius: 12px;
transition: all .18s ease;
border: 1px solid transparent;
}
nav a:hover{
color: var(--text);
background: rgba(2,6,23,.03);
border-color: rgba(2,6,23,.06);
}
.btn{
display:inline-flex;
align-items:center;
justify-content:center;
gap:10px;
padding: 12px 14px;
border-radius: 14px;
border: 1px solid var(--line);
background: var(--surface);
color: var(--text);
font-weight: 600;
font-size: 13.5px;
transition: transform .18s ease, background .18s ease, border-color .18s ease;
white-space:nowrap;
box-shadow: 0 10px 25px rgba(2,6,23,.06);
}
.btn:hover{transform: translateY(-1px); background: var(--surface2); border-color: #cbd5e1}
.btn.primary{
background: linear-gradient(135deg, rgba(184,134,11,.95), rgba(37,99,235,.78));
border-color: rgba(2,6,23,.08);
color:#0b1220;
box-shadow: 0 18px 60px rgba(2,6,23,.10);
}
.btn.primary:hover{transform: translateY(-1px) scale(1.01)}
.btn small{opacity:.9; font-weight:800}
/* Hero */
.hero{padding: 56px 0 18px}
.hero-grid{
display:grid;
grid-template-columns: 1.15fr .85fr;
gap: 26px;
align-items: stretch;
}
.card{
border-radius: var(--radius2);
background: var(--surface);
border: 1px solid var(--line);
box-shadow: var(--shadow);
}
.hero-main{padding: 26px}
.kicker{
display:inline-flex;
align-items:center;
gap:10px;
padding: 8px 12px;
border-radius: 999px;
background: #f1f5f9;
border:1px solid var(--line);
color: var(--muted);
font-size: 13px;
width: fit-content;
}
.dot{
width: 8px; height: 8px; border-radius: 50%;
background: var(--good);
box-shadow: 0 0 0 6px rgba(22,163,74,.12);
}
h1{
margin: 14px 0 10px;
font-family: "Playfair Display", serif;
font-weight: 700;
letter-spacing: -0.03em;
line-height: 1.05;
font-size: clamp(34px, 4.2vw, 52px);
}
.lead{margin:0 0 18px; color: var(--muted); font-size: 16.5px; max-width: 58ch}
.hero-actions{display:flex; gap:12px; flex-wrap:wrap; margin-top: 18px}
.trust-row{display:flex; gap:10px; flex-wrap:wrap; margin-top: 16px; color: var(--faint); font-size: 13px}
.trust-pill{
display:inline-flex; align-items:center; gap:8px;
padding: 8px 10px;
border-radius: 999px;
border:1px solid var(--line);
background: #f8fafc;
}
.icon{width:16px;height:16px; display:inline-block; opacity:.95}
.hero-side{padding: 22px; background: #ffffff}
.side-title{font-weight: 800; letter-spacing:-0.02em; margin:0 0 10px}
.side-list{display:grid; gap: 12px; margin-top: 12px}
.side-item{
display:flex; gap: 12px; padding: 12px;
border-radius: var(--radius);
background: #f8fafc;
border: 1px solid var(--line);
}
.badge{
width: 36px; height: 36px; border-radius: 14px;
background: rgba(184,134,11,.12);
display:flex; align-items:center; justify-content:center;
border: 1px solid rgba(184,134,11,.22);
flex: 0 0 auto;
}
.side-item strong{display:block; font-size: 14px; margin-bottom: 2px}
.side-item span{color: var(--muted); font-size: 13px}
section{padding: 54px 0}
.section-head{
display:flex; align-items:flex-end; justify-content:space-between; gap:14px;
margin-bottom: 18px;
}
.section-head h2{margin:0; font-size: 24px; letter-spacing:-0.02em}
.section-head p{margin:0; color: var(--muted); max-width: 60ch; font-size: 14.5px}
.grid-3{display:grid; grid-template-columns: repeat(3, 1fr); gap: 16px}
.grid-2{display:grid; grid-template-columns: repeat(2, 1fr); gap: 16px}
.tile{
padding: 18px;
border-radius: var(--radius2);
border: 1px solid var(--line);
background: var(--surface);
box-shadow: 0 12px 40px rgba(2,6,23,.06);
}
.tile h3{margin: 0 0 8px; font-size: 16px}
.tile p{margin:0; color:var(--muted); font-size: 14px}
.numbers{display:grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 14px}
.number{
padding: 14px;
border-radius: var(--radius);
border: 1px solid var(--line);
background: #f8fafc;
}
.number strong{font-size: 20px; letter-spacing:-0.02em; display:block; margin-bottom: 4px}
.number span{color: var(--muted); font-size: 12.5px}
.steps{display:grid; gap: 12px}
.step{
padding: 16px;
border-radius: var(--radius2);
border:1px solid var(--line);
background: #f8fafc;
display:flex;
gap: 14px;
}
.step .num{
width: 38px; height: 38px; border-radius: 14px;
display:flex; align-items:center; justify-content:center;
background: rgba(37,99,235,.10);
border: 1px solid rgba(37,99,235,.18);
font-weight: 800;
color: var(--text);
flex: 0 0 auto;
}
.step h4{margin: 0 0 4px}
.step p{margin:0; color:var(--muted); font-size: 14px}
.project{display:flex; flex-direction:column; gap: 10px}
.project .cover{
height: 170px;
border-radius: 18px;
border: 1px solid var(--line);
background: linear-gradient(135deg, rgba(184,134,11,.16), rgba(37,99,235,.10));
position:relative;
overflow:hidden;
}
.project .cover:after{
content:"";
position:absolute;
inset:auto -20% -40% -20%;
height: 140px;
background: linear-gradient(180deg, transparent, rgba(2,6,23,.10));
transform: skewY(-6deg);
}
.project .meta{display:flex; align-items:flex-start; justify-content:space-between; gap:10px}
.tag{
display:inline-flex; align-items:center; gap:8px;
font-size: 12.5px;
color: var(--muted);
padding: 7px 10px;
border:1px solid var(--line);
background: #f8fafc;
border-radius: 999px;
width: fit-content;
}
.project h3{margin:0; font-size: 16px}
.project p{margin:0; color:var(--muted); font-size: 14px}
.quote{
padding: 18px;
border-radius: var(--radius2);
border: 1px solid var(--line);
background: var(--surface);
box-shadow: 0 12px 40px rgba(2,6,23,.06);
}
.quote p{margin:0 0 12px; color: var(--text); font-size: 14.5px}
.who{display:flex; align-items:center; gap:10px; color: var(--muted); font-size: 13px}
.avatar{
width: 34px; height: 34px; border-radius: 14px;
background: #f1f5f9;
border:1px solid var(--line);
display:flex; align-items:center; justify-content:center;
font-weight:800;
color: var(--text);
}
.contact{display:grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items:stretch}
label{display:block; font-size: 12.5px; color: var(--muted); margin: 10px 0 6px}
input, textarea, select{
width:100%;
border-radius: 14px;
border:1px solid #cbd5e1;
background: #ffffff;
color: var(--text);
padding: 12px 12px;
outline:none;
font-family: inherit;
font-size: 14px;
}
textarea{min-height: 120px; resize: vertical}
.form-row{display:grid; grid-template-columns: 1fr 1fr; gap: 10px}
.fineprint{color: var(--faint); font-size: 12.5px; margin-top: 10px}
footer{padding: 22px 0 38px; border-top: 1px solid var(--line); color: var(--muted)}
.footer-grid{display:grid; grid-template-columns: 1.3fr .7fr; gap: 16px; align-items:start}
.footer-links{display:flex; gap: 10px; flex-wrap:wrap; justify-content:flex-end}
.footer-links a{
color: var(--muted);
padding: 8px 10px;
border-radius: 12px;
border:1px solid var(--line);
background: #ffffff;
}
.footer-links a:hover{color:var(--text)}
.gallery-item{padding:0; overflow:hidden; display:block;}
.gallery-item img{width:100%; height:220px; object-fit:cover; display:block; border-radius: calc(var(--radius2) - 2px); transition: transform .25s ease;}
.gallery-item:hover img{transform: scale(1.03);}
.lightbox{position:fixed; inset:0; background: rgba(15,23,42,.72); display:none; align-items:center; justify-content:center; padding:18px; z-index:1000;}
.lightbox.open{display:flex}
.lightbox-card{width:min(980px,96vw); border-radius:18px; background:#ffffff; border:1px solid rgba(255,255,255,.12); box-shadow: 0 30px 90px rgba(2,6,23,.30); overflow:hidden; position:relative;}
.lightbox-img{width:100%; height:min(72vh,720px); object-fit:contain; display:block; background:#0b1220;}
.lightbox-ui{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 12px; background:#f8fafc; border-top:1px solid var(--line); color: var(--muted); font-size:13px;}
.lb-btn{display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:14px; border:1px solid var(--line); background:#ffffff; color:var(--text); cursor:pointer; box-shadow: 0 10px 25px rgba(2,6,23,.06);}
.lb-btn:hover{background: var(--surface2)}
.lb-btn svg{width:18px;height:18px}
.wa-float{position:fixed; right:16px; bottom:16px; z-index:999; display:flex; align-items:center; gap:10px; padding:12px 14px; border-radius:999px; background:#ffffff; border:1px solid var(--line); box-shadow: 0 18px 60px rgba(2,6,23,.16); font-weight:700; color: var(--text);}
.wa-float .wa-dot{width:12px; height:12px; border-radius:50%; background:#22c55e; box-shadow: 0 0 0 6px rgba(34,197,94,.18);}
.cookie{position:fixed; left:16px; right:16px; bottom:76px; z-index:998; display:none;}
.cookie.open{display:block}
.cookie-card{max-width: var(--max); margin:0 auto; background:#ffffff; border:1px solid var(--line); border-radius:18px; box-shadow: 0 18px 60px rgba(2,6,23,.16); padding:14px; display:flex; align-items:flex-start; justify-content:space-between; gap:12px;}
.cookie-card p{margin:0; color: var(--muted); font-size:13.5px}
.cookie-actions{display:flex; gap:10px; flex-wrap:wrap}
.cookie-actions .btn{box-shadow:none}
.nav-toggle{display:none; width:44px; height:44px; border-radius:14px; border:1px solid var(--line); background:#ffffff; box-shadow: 0 10px 25px rgba(2,6,23,.06); cursor:pointer; align-items:center; justify-content:center;}
.nav-toggle svg{width:20px;height:20px}
.mobile-nav{display:none; position:fixed; top:64px; left:16px; right:16px; z-index:900; background:#ffffff; border:1px solid var(--line); border-radius:18px; box-shadow: 0 18px 60px rgba(2,6,23,.16); padding:10px;}
.mobile-nav.open{display:block}
.mobile-nav a{display:block; padding:12px 12px; border-radius:14px; color: var(--text); font-weight:600; font-size:14px;}
.mobile-nav a:hover{background: var(--surface2)}
@media (max-width: 980px){
.hero-grid{grid-template-columns: 1fr}
.numbers{grid-template-columns: repeat(2, 1fr)}
.grid-3{grid-template-columns: 1fr}
.grid-2{grid-template-columns: 1fr}
.contact{grid-template-columns: 1fr}
nav{display:none}
.nav-toggle{display:inline-flex}
}
/* Project cover image sizing */
.project .cover {
height: 180px; /* controls the mini size */
overflow: hidden;
border-radius: 14px;
background: #f3f4f6;
}
.project .cover img {
width: 100%;
height: 100%;
object-fit: cover; /* crops nicely, no stretching */
display: block;
}
</style>
</head>
<body>
<header class="topbar">
<div class="container">
<div class="topbar-inner">
<a class="brand" href="#top" aria-label="LandPjSolutions home">
<div class="logo" aria-hidden="true" style="background:none; box-shadow:none; display:flex; align-items:center; justify-content:center; overflow:hidden;"><img src="logo.png" alt="LandPjSolutions logo" style="width:40px;height:40px;object-fit:contain;display:block;"></div>
<div class="brand-title">
<strong>LandPjSolutions</strong>
<span>Building & Construction Services</span>
</div>
</a>
<nav aria-label="Primary">
<a href="#services">Services</a>
<a href="#how">How We Work</a>
<a href="#projects">Projects</a>
<a href="#gallery">Gallery</a>
<a href="#compliance">Compliance</a>
<a href="#reviews">Client Voices</a>
<a href="#contact">Contact</a>
</nav>
<button class="nav-toggle" aria-label="Open menu" aria-controls="mobileNav" aria-expanded="false"><svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M4 7h16M4 12h16M4 17h16" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/></svg></button>
<a class="btn primary" href="#contact">Start a Project <small>→</small></a>
</div>
</div>
</header>
<div class="mobile-nav" id="mobileNav" aria-label="Mobile navigation">
<a href="#about">About</a>
<a href="#services">Services</a>
<a href="#how">How We Work</a>
<a href="#projects">Projects</a>
<a href="#gallery">Gallery</a>
<a href="#compliance">Compliance</a>
<a href="#reviews">Client Voices</a>
<a href="#contact">Contact</a>
<a href="#privacy">Privacy</a>
<a href="#terms">Terms</a>
</div>
<main id="top" class="hero">
<div class="container">
<div class="hero-grid">
<div class="card hero-main">
<div class="kicker"><span class="dot"></span> Estate-compliant construction • Quality-first execution</div>
<h1>We build with precision, compliance, and pride.</h1>
<p class="lead">
<strong>LandPjSolutions</strong> is a building construction firm engaged in residential building projects,
site coordination, and execution of approved architectural and engineering designs in compliance with estate
regulations and statutory authorities.
</p>
<div class="hero-actions">
<a class="btn primary" href="#contact">Request a Consultation</a>
<a class="btn" href="#projects">View Completed Work</a>
<a class="btn" href="#compliance">See Our Compliance Standards</a>
</div>
<div class="trust-row" aria-label="trust badges">
<div class="trust-pill">
<svg class="icon" viewBox="0 0 24 24" fill="none"><path d="M12 2l7 4v6c0 5-3 9-7 10C8 21 5 17 5 12V6l7-4z" stroke="currentColor" stroke-width="1.6"/></svg>
Safety-led execution
</div>
<div class="trust-pill">
<svg class="icon" viewBox="0 0 24 24" fill="none"><path d="M20 7l-8 10-4-4" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>
Approved drawings adhered to
</div>
<div class="trust-pill">
<svg class="icon" viewBox="0 0 24 24" fill="none"><path d="M4 19V5m0 14h16M8 15V9m4 6V7m4 8v-5" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/></svg>
Clear milestones & reporting
</div>
</div>
</div>
<aside class="card hero-side" aria-label="quick highlights">
<p class="side-title">What you get when you hire us</p>
<div class="side-list">
<div class="side-item">
<div class="badge" aria-hidden="true">🧱</div>
<div>
<strong>Strict execution of approved designs</strong>
<span>We build from vetted architectural, structural, MEP documents and specifications—no guesswork.</span>
</div>
</div>
<div class="side-item">
<div class="badge" aria-hidden="true">📋</div>
<div>
<strong>Estate + statutory compliance</strong>
<span>We align with estate project teams and relevant regulatory requirements throughout the build.</span>
</div>
</div>
<div class="side-item">
<div class="badge" aria-hidden="true">🧰</div>
<div>
<strong>Site coordination & supervision</strong>
<span>Scheduling, procurement support, workmanship control, and disciplined site management.</span>
</div>
</div>
<div class="side-item">
<div class="badge" aria-hidden="true">✅</div>
<div>
<strong>Quality checks that stand up to scrutiny</strong>
<span>Documented inspections and workmanship standards, with safety as a non-negotiable.</span>
</div>
</div>
</div>
<div class="numbers" aria-label="company numbers">
<div class="number"><strong>20+</strong><span>Homes delivered</span></div>
<div class="number"><strong>18</strong><span>Years of experience</span></div>
<div class="number"><strong>4</strong><span>Active sites</span></div>
<div class="number"><strong>98%</strong><span>Inspection pass rate</span></div>
</div>
</aside>
</div>
</div>
</main>
<section id="services">
<div class="container">
<div class="section-head">
<div>
<h2>What we do</h2>
<p>End-to-end construction execution for residential projects—done with the discipline estates and regulators expect.</p>
</div>
</div>
<div class="grid-3">
<div class="tile">
<h3>Residential Building Construction</h3>
<p>From foundations to finishing, we deliver homes aligned with approved drawings, structural details, and specifications.</p>
</div>
<div class="tile">
<h3>Site Coordination & Project Execution</h3>
<p>We coordinate trades, manage site activities, track milestones, and keep work progressing with clear supervision.</p>
</div>
<div class="tile">
<h3>MEP & Specialist Collaboration</h3>
<p>We work with registered architects, structural engineers, and mechanical/electrical engineers to ensure compliance.</p>
</div>
<div class="tile">
<h3>Quality Control & Workmanship Standards</h3>
<p>Checks at critical stages—reinforcement, casting, blockwork, waterproofing, MEP rough-ins, and finishes.</p>
</div>
<div class="tile">
<h3>Safety Compliance & Site Discipline</h3>
<p>Hazard controls, safe work practices, and site order—because accidents and rework are expensive.</p>
</div>
<div class="tile">
<h3>Documentation & Reporting</h3>
<p>Photo updates, progress notes, and inspection readiness—so stakeholders can verify work confidently.</p>
</div>
</div>
</div>
</section>
<section id="how">
<div class="container">
<div class="section-head">
<div>
<h2>How we do it</h2>
<p>A simple, controlled process that protects your investment and keeps your project aligned with estate rules.</p>
</div>
</div>
<div class="grid-2">
<div class="tile">
<h3>Our delivery process</h3>
<div class="steps">
<div class="step">
<div class="num">1</div>
<div>
<h4>Pre-build review</h4>
<p>We review approved drawings, geotechnical reports, and engineering details; confirm site requirements and estate regulations.</p>
</div>
</div>
<div class="step">
<div class="num">2</div>
<div>
<h4>Work planning & mobilization</h4>
<p>Schedule, procurement plan, site setup, safety controls, and coordination with your consultants and estate team.</p>
</div>
</div>
<div class="step">
<div class="num">3</div>
<div>
<h4>Controlled construction execution</h4>
<p>Build in stages with quality checkpoints, proper supervision, and strict adherence to approved specs.</p>
</div>
</div>
<div class="step">
<div class="num">4</div>
<div>
<h4>Inspection readiness & handover</h4>
<p>Prepare for inspections, close out punch lists, deliver documentation, and hand over cleanly.</p>
</div>
</div>
</div>
</div>
<div class="tile" id="compliance">
<h3>Compliance you can show an estate team</h3>
<p style="color:var(--muted); margin-bottom: 12px">
We operate with a strong commitment to structural integrity, safety compliance, and adherence to approved drawings,
geotechnical reports, and engineering specifications required by estate project teams and relevant authorities.
</p>
<div class="steps">
<div class="step">
<div class="num">✓</div>
<div>
<h4>Approved drawings only</h4>
<p>We execute construction strictly based on vetted and approved architectural/structural/MEP documents.</p>
</div>
</div>
<div class="step">
<div class="num">✓</div>
<div>
<h4>Engineer collaboration</h4>
<p>We work collaboratively with registered professionals to align construction with engineering intent.</p>
</div>
</div>
<div class="step">
<div class="num">✓</div>
<div>
<h4>Inspection discipline</h4>
<p>Stage-based checks and documentation to reduce rework and keep the site inspection-ready.</p>
</div>
</div>
<div class="step">
<div class="num">✓</div>
<div>
<h4>Regulatory alignment</h4>
<p>We build in a manner consistent with estate regulations and statutory expectations (e.g., Lagos State authorities).</p>
</div>
</div>
</div>
<p class="fineprint">
Note: This page is an introduction. Your actual regulatory submissions should be handled by your licensed professionals and follow the estate’s official process.
</p>
</div>
</div>
</div>
</section>
<section id="projects">
<div class="container">
<div class="section-head">
<div>
<h2>Selected projects</h2>
</div>
<a class="to-top" href="#top" aria-label="Back to top">↑</a>
</div>
<div class="grid-3">
<!-- Project 1 -->
<div class="tile project">
<div class="cover">
<img src="building-1.jpg"
alt="Modern 4-bedroom duplex estate build by LandPjSolutions"
loading="lazy">
</div>
<div class="meta">
<div>
<h3>Modern 4-Bed Duplex (Estate Build)</h3>
<p>Site coordination and execution of approved designs, from foundation to finishing.</p>
</div>
<span class="tag">Residential • Turnkey</span>
</div>
<span class="tag">Status: Completed</span>
</div>
<!-- Project 2 -->
<div class="tile project">
<div class="cover">
<img src="building-2.jpg"
alt="3-bedroom bungalow with boys quarter"
loading="lazy">
</div>
<div class="meta">
<div>
<h3>3-Bed Bungalow + Boys’ Quarter</h3>
<p>Quality control checkpoints, blockwork, roofing, and finishing supervision.</p>
</div>
<span class="tag">Residential • QC-led</span>
</div>
<span class="tag">Status: Completed</span>
</div>
<!-- Project 3 -->
<div class="tile project">
<div class="cover">
<img src="building-3.jpg"
alt="Luxury finishing and MEP coordination project"
loading="lazy">
</div>
<div class="meta">
<div>
<h3>Luxury Finishing & MEP Coordination</h3>
<p>MEP coordination with consultants; finishing works aligned with specs and drawings.</p>
</div>
<span class="tag">MEP • Finishes</span>
</div>
<span class="tag">Status: Ongoing</span>
</div>
</div>
</div>
</section>
<section id="gallery">
<div class="container">
<div class="section-head">
<div>
<h2>Projects gallery</h2>
<p>A closer look at some of our residential builds and finishing standards.</p>
</div>
<a class="to-top" href="#top" aria-label="Back to top">
<svg viewBox="0 0 24 24" fill="none" aria-hidden="true">
<path d="M12 5l-6 6m6-6l6 6M12 5v14" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
</div>
<div class="grid-3 gallery" aria-label="Project image gallery">
<a class="tile gallery-item" href="building-1.jpg" data-lightbox="projects" aria-label="Open project image 1">
<img src="building-1.jpg" alt="Residential project exterior by LandPjSolutions" loading="lazy">
</a>
<a class="tile gallery-item" href="building-2.jpg" data-lightbox="projects" aria-label="Open project image 2">
<img src="building-2.jpg" alt="Modern residential project by LandPjSolutions" loading="lazy">
</a>
<a class="tile gallery-item" href="building-3.jpg" data-lightbox="projects" aria-label="Open project image 3">
<img src="building-3.jpg" alt="Completed residential project frontage by LandPjSolutions" loading="lazy">
</a>
</div>
</div>
</section>
<section id="achievements">
<div class="container">
<div class="section-head">
<div>
<h2>Achievements that matter</h2>
</div>
</div>
<div class="grid-3">
<div class="tile">
<h3>Inspection-ready workflow</h3>
<p>Construction stages planned for smooth reviews with estate teams—reducing delays and costly rework.</p>
</div>
<div class="tile">
<h3>Strong site discipline</h3>
<p>Daily supervision culture: safety, order, and workmanship checks—so progress stays consistent.</p>
</div>
<div class="tile">
<h3>Trusted collaboration model</h3>
<p>We coordinate closely with registered consultants to ensure alignment with engineering and architectural intent.</p>
</div>
</div>
</div>
</section>
<section id="reviews">
<div class="container">
<div class="section-head">
<div>
<h2>Client voices</h2>
<p>Short, believable testimonials that sound like real people. Replace names/estates if needed.</p>
</div>
</div>
<div class="grid-3">
<div class="quote">
<p>“What I liked most was the discipline. They didn’t ‘improvise’—they followed the approved drawings and explained each stage clearly.”</p>
<div class="who">
<div class="avatar">A</div>
<div><strong style="color:var(--text)">Engr. Adeyemi</strong><br><span>Homeowner • Lagos</span></div>
</div>
</div>
<div class="quote">
<p>“Progress updates were steady, and the site was always organized. It gave us confidence during inspections and handover.”</p>
<div class="who">
<div class="avatar">K</div>
<div><strong style="color:var(--text)">Mr. Menson</strong><br><span>Client Rep • Residential project</span></div>
</div>
</div>
<div class="quote">
<p>“Good coordination with engineers. Issues were flagged early, and corrections were made before they became expensive.”</p>
<div class="who">
<div class="avatar">M</div>
<div><strong style="color:var(--text)">M. Yusuf</strong><br><span>Project Stakeholder</span></div>
</div>
</div>
</div>
</div>
</section>
<section id="contact">
<div class="container">
<div class="section-head">
<div>
<h2>Let’s discuss your build</h2>
<p>Tell us your estate/location, your building type, and timeline. We’ll respond with next steps and required documents.</p>
</div>
</div>
<div class="contact">
<div class="tile">
<h3>Quick contact</h3>
<p style="color:var(--muted); margin: 0 0 12px">
Prefer WhatsApp or email? Add your details below and we’ll reach out.
</p>
<form name="contact" method="POST" data-netlify="true">
<input type="hidden" name="form-name" value="contact">
<div class="form-row">
<div>
<label for="name">Full Name</label>
<input id="name" name="name" placeholder="Your name" required>
</div>
<div>
<label for="phone">Phone / WhatsApp</label>
<input id="phone" name="phone" placeholder="+2348106914128" required>
</div>
</div>
<div class="form-row">
<div>
<label for="estate">Estate / Location</label>
<input id="estate" name="estate" placeholder="Amen City, Lekki / etc." required>
</div>
<div>
<label for="type">Project Type</label>
<select id="type" name="type" required>
<option value="">Select one</option>
<option>Duplex</option>
<option>Bungalow</option>
<option>Terrace / Row house</option>
<option>Finishing / Renovation</option>
<option>Other</option>
</select>
</div>
</div>
<label for="message">Message</label>
<textarea id="message" name="message" placeholder="Tell us about your land status, approvals, timeline, and any consultant details." required></textarea>
<div class="hero-actions" style="margin-top: 12px">
<button class="btn primary" type="submit">Send Request</button>
<a class="btn" href="mailto:info@landpjsolutions.com">Email Us</a>
</div>
<p class="fineprint">
By submitting, you agree we may contact you about your project. We do not sell your data.
</p>
</form>
</div>
<div class="tile">
<h3>Company profile</h3>
<p style="color:var(--muted); margin-top:0">
LandPjSolutions is engaged in residential building projects, site coordination, and execution of approved architectural and engineering designs in compliance with estate regulations and statutory authorities.
</p>
<div class="steps" style="margin-top: 12px">
<div class="step">
<div class="num">📍</div>
<div>
<h4>Service Areas</h4>
<p>Lagos & surrounding regions (update this to match your coverage).</p>
</div>
</div>
<div class="step">
<div class="num">🧾</div>
<div>
<h4>Documentation Focus</h4>
<p>Approved drawings, geotechnical reports, and engineering specifications for inspection readiness.</p>
</div>
</div>
<div class="step">
<div class="num">🤝</div>
<div>
<h4>Professional Collaboration</h4>
<p>We work with registered architects and structural/mechanical/electrical engineers as required by estates and authorities.</p>
</div>
</div>
</div>
<div class="hero-actions" style="margin-top: 14px">
<a class="btn" href="#services">Explore Services</a>
<a class="btn" href="#projects">See Projects</a>
</div>
</div>
</div>
</div>
</section>
<section id="terms">
<div class="container">
<div class="section-head">
<div>
<h2>Terms of Use</h2>
<p>This website provides general information about LandPjSolutions and our construction services.</p>
</div>
<a class="to-top" href="#top" aria-label="Back to top">
<svg viewBox="0 0 24 24" fill="none" aria-hidden="true">
<path d="M12 5l-6 6m6-6l6 6M12 5v14" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
</div>
<div class="grid-2">
<div class="tile">
<h3>Information accuracy</h3>
<p>
We aim to keep information on this site accurate and up to date. However, construction requirements, estate processes,
and regulatory procedures may change. Always rely on approved project documents and official estate/regulatory guidance.
</p>
</div>
<div class="tile">
<h3>Professional sign-offs</h3>
<p>
Architectural and engineering sign-offs must be provided by appropriately registered professionals. LandPjSolutions
collaborates with registered consultants as required by estates and statutory authorities.
</p>
</div>
<div class="tile">
<h3>Limitation of liability</h3>
<p>
Use of this website is at your discretion. LandPjSolutions is not liable for decisions made solely based on information
presented here without proper project documentation, approvals, and professional supervision.
</p>
</div>
<div class="tile">
<h3>Contact</h3>
<p>
Questions about these terms? Email: <a href="mailto:info@landpjsolutions.com"><strong>info@landpjsolutions.com</strong></a>.
</p>
</div>
</div>
</div>
</section>
<a class="wa-float" href="https://wa.me/2348106914128" target="_blank" rel="noopener" aria-label="Chat on WhatsApp">
<span class="wa-dot" aria-hidden="true"></span>
WhatsApp
</a>
<div class="cookie" id="cookieNotice" role="dialog" aria-live="polite" aria-label="Cookie notice">
<div class="cookie-card">
<p><strong style="color:var(--text)">Cookies:</strong> We use minimal cookies only when needed for site functionality and analytics. You can review our <a href="#privacy"><strong>Privacy Policy</strong></a>.</p>
<div class="cookie-actions">
<button class="btn primary" type="button" id="acceptCookies">Accept</button>
<a class="btn" href="#privacy">Learn more</a>
</div>
</div>
</div>
<div class="lightbox" id="lightbox" aria-label="Image preview" role="dialog" aria-modal="true">
<div class="lightbox-card">
<img class="lightbox-img" id="lightboxImg" alt="Project image preview">
<div class="lightbox-ui">
<span id="lightboxLabel">Project image</span>
<div style="display:flex; gap:10px;">
<button class="lb-btn" type="button" id="lbPrev" aria-label="Previous image">
<svg viewBox="0 0 24 24" fill="none"><path d="M15 18l-6-6 6-6" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>
</button>
<button class="lb-btn" type="button" id="lbNext" aria-label="Next image">
<svg viewBox="0 0 24 24" fill="none"><path d="M9 6l6 6-6 6" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>
</button>
<button class="lb-btn" type="button" id="lbClose" aria-label="Close">
<svg viewBox="0 0 24 24" fill="none"><path d="M6 6l12 12M18 6L6 18" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/></svg>
</button>
</div>
</div>
</div>
</div>
<footer>
<div class="container">
<div class="footer-grid">
<div>
<div style="display:flex; align-items:center; gap:10px; margin-bottom: 8px;">
<div aria-hidden="true" style="width:34px;height:34px;border-radius:12px; display:flex; align-items:center; justify-content:center; overflow:hidden;"><img src="logo.png" alt="" style="width:34px;height:34px;object-fit:contain;display:block;"></div>
<div>
<strong style="color:var(--text)">LandPjSolutions</strong><br>
<span style="color:var(--muted); font-size: 12.5px;">Building & Construction Services • Estate-compliant execution</span>
</div>
</div>
<div style="color:var(--faint); font-size: 12.5px; max-width: 80ch">
Disclaimer: This website provides general information about our services. Regulatory approvals, submissions, and professional sign-offs must follow estate requirements and applicable government procedures.
</div>
<div style="color:var(--muted); font-size: 12.5px; margin-top: 10px;">
© 2008–<span id="year"></span> LandPjSolutions. All rights reserved.
</div>
</div>
<div class="footer-links" aria-label="Footer links">
<a href="#top">Back to top</a>
<a href="#contact">Contact</a>
<a href="#compliance">Compliance</a>
<a href="#projects">Projects</a>
<a href="#gallery">Gallery</a>
</div>
</div>
</div>
</footer>
<script>
document.getElementById("year").textContent = new Date().getFullYear();
// Mobile nav toggle
const toggleBtn = document.querySelector(".nav-toggle");
const mobileNav = document.getElementById("mobileNav");
if (toggleBtn && mobileNav){
toggleBtn.addEventListener("click", () => {
const isOpen = mobileNav.classList.toggle("open");
toggleBtn.setAttribute("aria-expanded", String(isOpen));
});
mobileNav.querySelectorAll("a").forEach(a => a.addEventListener("click", () => {
mobileNav.classList.remove("open");
toggleBtn.setAttribute("aria-expanded","false");
}));
document.addEventListener("click", (e) => {
if (!mobileNav.contains(e.target) && !toggleBtn.contains(e.target)){
mobileNav.classList.remove("open");
toggleBtn.setAttribute("aria-expanded","false");
}
});
}
// Cookie notice
const cookieKey = "landpj_cookie_ok";
const cookieEl = document.getElementById("cookieNotice");
const acceptBtn = document.getElementById("acceptCookies");
if (cookieEl && acceptBtn){
const ok = localStorage.getItem(cookieKey);
if (!ok) cookieEl.classList.add("open");
acceptBtn.addEventListener("click", () => {
localStorage.setItem(cookieKey, "1");
cookieEl.classList.remove("open");
});
}
// Lightbox
const lb = document.getElementById("lightbox");
const lbImg = document.getElementById("lightboxImg");
const lbLabel = document.getElementById("lightboxLabel");
const lbClose = document.getElementById("lbClose");
const lbPrev = document.getElementById("lbPrev");
const lbNext = document.getElementById("lbNext");
const galleryLinks = Array.from(document.querySelectorAll('[data-lightbox="projects"]'));
let lbIndex = 0;
function openLightbox(index){
lbIndex = index;
const href = galleryLinks[lbIndex].getAttribute("href");
const alt = galleryLinks[lbIndex].querySelector("img")?.getAttribute("alt") || "Project image";
lbImg.src = href;
lbImg.alt = alt;
lbLabel.textContent = alt;
lb.classList.add("open");
document.body.style.overflow = "hidden";
}
function closeLightbox(){
lb.classList.remove("open");
document.body.style.overflow = "";
}
function prevLightbox(){
lbIndex = (lbIndex - 1 + galleryLinks.length) % galleryLinks.length;
openLightbox(lbIndex);
}
function nextLightbox(){
lbIndex = (lbIndex + 1) % galleryLinks.length;
openLightbox(lbIndex);
}
galleryLinks.forEach((a, idx) => {
a.addEventListener("click", (e) => {
e.preventDefault();
openLightbox(idx);
});
});
if (lbClose) lbClose.addEventListener("click", closeLightbox);
if (lbPrev) lbPrev.addEventListener("click", prevLightbox);
if (lbNext) lbNext.addEventListener("click", nextLightbox);
if (lb) lb.addEventListener("click", (e) => { if (e.target === lb) closeLightbox(); });
document.addEventListener("keydown", (e) => {
if (!lb || !lb.classList.contains("open")) return;
if (e.key === "Escape") closeLightbox();
if (e.key === "ArrowLeft") prevLightbox();
if (e.key === "ArrowRight") nextLightbox();
});
</script>
</body>
</html>