★★★★★
Rated 4.9/5 from 167+ Google Reviews
Web Development Company in Lahore Building High-Performance Websites That Generate More Leads, Sales & Business Growth
First Idea Web Development helps startups, SMEs, ecommerce businesses and enterprise companies build fast, secure, SEO-ready websites that improve rankings, generate quality leads and accelerate long-term digital growth across Pakistan.
✔ SEO Optimized
✔ Mobile First
✔ Lightning Fast
✔ Secure Development
0
Projects Completed
0
Years Experience
0
Google Reviews
0
Countries Served

Google Ranking
#1 Growth Strategy
SEO Ready
Technical SEO Built-In
AI Ready
Future Search Optimized
PageSpeed
90+ Performance
/* ==========================================
FIRST IDEA HOMEPAGE 2030
HERO CSS – PART A
========================================== */
:root{
–primary:#0B63F6;
–primary-dark:#0847b8;
–secondary:#1E88FF;
–accent:#14C38E;
–dark:#0F172A;
–text:#64748B;
–white:#ffffff;
–light:#F8FAFC;
–radius:22px;
–shadow:0 25px 60px rgba(15,23,42,.10);
–transition:.35s ease;
}
*{
margin:0;
padding:0;
box-sizing:border-box;
}
body{
font-family:Inter,sans-serif;
background:#fff;
color:var(–dark);
overflow-x:hidden;
}
.fiwd-hero{
position:relative;
overflow:hidden;
padding:120px 0;
background:
linear-gradient(135deg,#071B52 0%,#0B63F6 50%,#3AA7FF 100%);
}
.container{
max-width:1400px;
margin:auto;
padding:0 30px;
}
.hero-grid{
display:grid;
grid-template-columns:1.1fr .9fr;
align-items:center;
gap:70px;
position:relative;
z-index:2;
}
/* ———————–
Review Badge
———————– */
.hero-review{
display:inline-flex;
align-items:center;
gap:12px;
padding:10px 22px;
background:rgba(255,255,255,.12);
backdrop-filter:blur(15px);
border:1px solid rgba(255,255,255,.2);
border-radius:50px;
margin-bottom:30px;
}
.hero-review .stars{
color:#FFD54F;
font-size:18px;
letter-spacing:2px;
}
.hero-review span{
color:#fff;
font-size:15px;
font-weight:600;
}
/* ———————–
Heading
———————– */
.hero-content h1{
font-size:68px;
font-weight:800;
line-height:1.05;
letter-spacing:-2px;
color:#fff;
margin-bottom:28px;
max-width:850px;
}
.hero-description{
font-size:20px;
line-height:1.9;
color:rgba(255,255,255,.88);
max-width:760px;
margin-bottom:35px;
}
/* ———————–
Keyword Tags
———————– */
.hero-tags{
display:flex;
flex-wrap:wrap;
gap:12px;
margin-bottom:40px;
}
.hero-tags span{
padding:12px 22px;
background:rgba(255,255,255,.12);
border:1px solid rgba(255,255,255,.15);
border-radius:50px;
color:#fff;
font-size:15px;
transition:var(–transition);
backdrop-filter:blur(15px);
}
.hero-tags span:hover{
background:#fff;
color:var(–primary);
transform:translateY(-4px);
}
/* ———————–
Buttons
———————– */
.hero-buttons{
display:flex;
gap:18px;
margin-bottom:45px;
flex-wrap:wrap;
}
.btn-primary{
display:inline-flex;
align-items:center;
justify-content:center;
padding:18px 36px;
background:#fff;
color:var(–primary);
font-weight:700;
border-radius:50px;
text-decoration:none;
transition:var(–transition);
box-shadow:var(–shadow);
}
.btn-primary:hover{
transform:translateY(-6px);
}
.btn-secondary{
display:inline-flex;
align-items:center;
justify-content:center;
padding:18px 36px;
border:2px solid rgba(255,255,255,.35);
color:#fff;
text-decoration:none;
font-weight:700;
border-radius:50px;
background:rgba(255,255,255,.08);
backdrop-filter:blur(20px);
transition:var(–transition);
}
.btn-secondary:hover{
background:#fff;
color:var(–primary);
}
/* ———————–
Feature List
———————– */
.hero-features{
display:grid;
grid-template-columns:repeat(2,1fr);
gap:15px;
margin-bottom:55px;
}
.feature{
color:#fff;
font-weight:600;
font-size:16px;
}
/* ———————–
Statistics
———————– */
.hero-stats{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:20px;
}
.stat-box{
background:rgba(255,255,255,.10);
backdrop-filter:blur(20px);
padding:28px;
border-radius:22px;
text-align:center;
border:1px solid rgba(255,255,255,.15);
transition:var(–transition);
}
.stat-box:hover{
transform:translateY(-8px);
background:rgba(255,255,255,.18);
}
.stat-box h2{
font-size:42px;
color:#fff;
margin-bottom:10px;
font-weight:800;
}
.stat-box p{
color:rgba(255,255,255,.9);
font-size:15px;
}
/* ======================
Responsive
====================== */
@media(max-width:1200px){
.hero-grid{
grid-template-columns:1fr;
}
.hero-content{
text-align:center;
}
.hero-description{
margin:auto auto 35px;
}
.hero-tags{
justify-content:center;
}
.hero-buttons{
justify-content:center;
}
.hero-features{
max-width:700px;
margin:0 auto 55px;
}
}
/* ==========================================
FIRST IDEA HOMEPAGE 2030
HERO CSS – PART B
Right Side | Floating Cards | Background
==========================================*/
/* ==========================
RIGHT COLUMN
==========================*/
.hero-image{
position:relative;
display:flex;
justify-content:center;
align-items:center;
min-height:720px;
}
/* ==========================
MAIN DASHBOARD
==========================*/
.hero-dashboard{
position:relative;
width:100%;
max-width:620px;
padding:18px;
border-radius:30px;
background:rgba(255,255,255,.08);
backdrop-filter:blur(30px);
border:1px solid rgba(255,255,255,.18);
box-shadow:
0 40px 90px rgba(0,0,0,.25);
overflow:hidden;
animation:dashboardFloat 6s ease-in-out infinite;
}
.hero-dashboard img{
width:100%;
display:block;
border-radius:22px;
}
/* ==========================
FLOATING CARDS
==========================*/
.floating-card{
position:absolute;
padding:18px 24px;
border-radius:20px;
background:rgba(255,255,255,.12);
backdrop-filter:blur(25px);
border:1px solid rgba(255,255,255,.18);
box-shadow:0 18px 40px rgba(0,0,0,.18);
transition:.35s;
min-width:220px;
}
.floating-card:hover{
transform:translateY(-8px);
background:#fff;
}
.floating-card:hover h4{
color:#0B63F6;
}
.floating-card:hover strong{
color:#0F172A;
}
.floating-card h4{
font-size:14px;
color:#fff;
margin-bottom:8px;
font-weight:600;
}
.floating-card strong{
font-size:18px;
color:#fff;
font-weight:700;
display:block;
}
/* ==========================
CARD POSITIONS
==========================*/
.card-one{
top:30px;
left:-70px;
animation:floatCard1 5s ease-in-out infinite;
}
.card-two{
top:160px;
right:-60px;
animation:floatCard2 6s ease-in-out infinite;
}
.card-three{
bottom:150px;
left:-50px;
animation:floatCard3 7s ease-in-out infinite;
}
.card-four{
bottom:30px;
right:-80px;
animation:floatCard4 5.5s ease-in-out infinite;
}
/* ==========================
BACKGROUND SHAPES
==========================*/
.hero-shape{
position:absolute;
border-radius:50%;
filter:blur(40px);
opacity:.25;
z-index:1;
}
.shape-1{
width:320px;
height:320px;
background:#3AA7FF;
top:-120px;
left:-120px;
animation:shapeFloat1 12s linear infinite;
}
.shape-2{
width:420px;
height:420px;
background:#14C38E;
right:-150px;
top:80px;
animation:shapeFloat2 15s linear infinite;
}
.shape-3{
width:260px;
height:260px;
background:#ffffff;
bottom:-100px;
left:45%;
opacity:.12;
animation:shapeFloat3 10s linear infinite;
}
/* ==========================
ANIMATIONS
==========================*/
@keyframes dashboardFloat{
0%,100%{
transform:translateY(0);
}
50%{
transform:translateY(-12px);
}
}
@keyframes floatCard1{
0%,100%{
transform:translateY(0);
}
50%{
transform:translateY(-15px);
}
}
@keyframes floatCard2{
0%,100%{
transform:translateY(0);
}
50%{
transform:translateY(18px);
}
}
@keyframes floatCard3{
0%,100%{
transform:translateY(0);
}
50%{
transform:translateY(-18px);
}
}
@keyframes floatCard4{
0%,100%{
transform:translateY(0);
}
50%{
transform:translateY(15px);
}
}
@keyframes shapeFloat1{
0%{
transform:translate(0,0) rotate(0deg);
}
100%{
transform:translate(60px,40px) rotate(360deg);
}
}
@keyframes shapeFloat2{
0%{
transform:translate(0,0);
}
50%{
transform:translate(-50px,30px);
}
100%{
transform:translate(0,0);
}
}
@keyframes shapeFloat3{
0%{
transform:scale(1);
}
50%{
transform:scale(1.25);
}
100%{
transform:scale(1);
}
}
/* ==========================
RESPONSIVE
==========================*/
@media(max-width:1200px){
.hero-image{
margin-top:70px;
min-height:auto;
}
.card-one,
.card-two,
.card-three,
.card-four{
position:relative;
left:auto;
right:auto;
top:auto;
bottom:auto;
margin:18px auto;
display:block;
max-width:320px;
}
.hero-dashboard{
margin-bottom:30px;
}
}
@media(max-width:768px){
.hero-image{
padding:20px 0;
}
.hero-dashboard{
padding:12px;
border-radius:20px;
}
.hero-dashboard img{
border-radius:14px;
}
.floating-card{
min-width:100%;
padding:18px;
}
}
/* ==========================================
FIRST IDEA HOMEPAGE 2030
HERO JS – PART C
Premium Animations
========================================== */
document.addEventListener(“DOMContentLoaded”,function(){
/* ================================
ANIMATED COUNTERS
================================ */
const counters=document.querySelectorAll(“.counter”);
const runCounter=(counter)=>{
const target=+counter.dataset.target;
const speed=80;
const update=()=>{
const count=+counter.innerText;
const increment=Math.ceil(target/speed);
if(count
entries.forEach(entry=>{
if(entry.isIntersecting){
runCounter(entry.target);
counterObserver.unobserve(entry.target);
}
});
},{threshold:.5});
counters.forEach(counter=>{
counterObserver.observe(counter);
});
/* ================================
SCROLL REVEAL
================================ */
const revealItems=document.querySelectorAll(
“.hero-content,.hero-dashboard,.floating-card,.stat-box”
);
const revealObserver=new IntersectionObserver((entries)=>{
entries.forEach(entry=>{
if(entry.isIntersecting){
entry.target.style.opacity=”1″;
entry.target.style.transform=”translateY(0)”;
}
});
},{threshold:.2});
revealItems.forEach(item=>{
item.style.opacity=”0″;
item.style.transform=”translateY(50px)”;
item.style.transition=”all .9s ease”;
revealObserver.observe(item);
});
/* ================================
BUTTON RIPPLE EFFECT
================================ */
document.querySelectorAll(“.btn-primary,.btn-secondary”).forEach(btn=>{
btn.addEventListener(“mousemove”,function(e){
const rect=this.getBoundingClientRect();
const x=e.clientX-rect.left;
const y=e.clientY-rect.top;
this.style.setProperty(“–x”,x+”px”);
this.style.setProperty(“–y”,y+”px”);
});
});
/* ================================
PARALLAX
================================ */
const dashboard=document.querySelector(“.hero-dashboard”);
document.addEventListener(“mousemove”,(e)=>{
const x=(window.innerWidth/2-e.clientX)/45;
const y=(window.innerHeight/2-e.clientY)/45;
dashboard.style.transform=
`rotateY(${x}deg) rotateX(${-y}deg)`;
});
/* ================================
FLOATING CARDS
================================ */
const cards=document.querySelectorAll(“.floating-card”);
cards.forEach((card,index)=>{
card.animate([
{
transform:”translateY(0px)”
},
{
transform:”translateY(-12px)”
},
{
transform:”translateY(0px)”
}
],{
duration:3500+(index*500),
iterations:Infinity,
easing:”ease-in-out”
});
});
/* ================================
BACKGROUND PARALLAX
================================ */
const shapes=document.querySelectorAll(“.hero-shape”);
window.addEventListener(“mousemove”,(e)=>{
const mouseX=e.clientX/window.innerWidth;
const mouseY=e.clientY/window.innerHeight;
shapes.forEach((shape,index)=>{
const speed=(index+1)*15;
shape.style.transform=
`translate(${mouseX*speed}px,${mouseY*speed}px)`;
});
});
/* ================================
GLOW EFFECT
================================ */
const hero=document.querySelector(“.fiwd-hero”);
const glow=document.createElement(“div”);
glow.className=”cursor-glow”;
hero.appendChild(glow);
hero.addEventListener(“mousemove”,(e)=>{
const rect=hero.getBoundingClientRect();
glow.style.left=e.clientX-rect.left+”px”;
glow.style.top=e.clientY-rect.top+”px”;
});
/* ================================
TYPEWRITER TAGS
================================ */
const tags=document.querySelectorAll(“.hero-tags span”);
tags.forEach((tag,index)=>{
setTimeout(()=>{
tag.style.opacity=”1″;
tag.style.transform=”translateY(0)”;
},300*index);
});
});
/* ==========================================
PARTICLE BACKGROUND
========================================== */
const hero=document.querySelector(“.fiwd-hero”);
for(let i=0;i<25;i++){ const particle=document.createElement("span"); particle.className="particle"; particle.style.left=Math.random()*100+"%"; particle.style.animationDelay=Math.random()*8+"s"; particle.style.animationDuration=6+Math.random()*6+"s"; hero.appendChild(particle); }