:root{
    --primary:#0f172a;
    --accent:#f59e0b;
    --light:#f8fafc;
    --muted:#64748b;
    --border:#e5e7eb;
}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Poppins',sans-serif;
}

html{ scroll-behavior:smooth; }
body{ color:var(--primary); background:white; }
body{
    padding-top:80px;
}

/* NAVBAR UPGRADE */
#navbar{
    position:fixed;
    top:0;
    width:100%;
    z-index:1000;
    transition:.3s ease;
    background:rgba(255,255,255,0.95);
    backdrop-filter:blur(10px);
    box-shadow:0 5px 20px rgba(0,0,0,.05);
}

#navbar.scrolled{
    background:rgba(255,255,255,0.85);
    backdrop-filter:blur(10px);
    box-shadow:0 10px 30px rgba(0,0,0,.08);
}

.nav-inner{
    max-width:1200px;
    margin:auto;
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:1.2rem 2rem;
}

/* LOGO */
.logo{
    font-weight:700;
    font-size:1.3rem;
}

/* LINKS */
.nav-links a{
    margin:0 1rem;
    text-decoration:none;
    color:var(--primary);
    font-weight:500;
    position:relative;
}

/* underline animation */
.nav-links a::after{
    content:"";
    position:absolute;
    bottom:-5px;
    left:0;
    width:0%;
    height:2px;
    background:var(--accent);
    transition:.3s;
}

.nav-links a:hover::after{
    width:100%;
}

/* CTA BUTTON */
.nav-cta{
    background:var(--accent);
    color:white;
    padding:.6rem 1.2rem;
    border-radius:6px;
    text-decoration:none;
    font-weight:600;
    transition:.3s;
}

.nav-cta:hover{
    transform:translateY(-2px);
    box-shadow:0 8px 15px rgba(0,0,0,.15);
}

/* HERO */
/* HERO PREMIUM */
.hero{
    position:relative;
    min-height:100vh;
    display:flex;
    align-items:center;
    padding:8rem 2rem;
    color:white;
    overflow:hidden;

    background:
        linear-gradient(rgba(15,23,42,.75),rgba(15,23,42,.85)),
        url("https://images.unsplash.com/photo-1600585154340-be6161a56a0c");
    background-size:cover;
    background-position:center;
}

/* subtle overlay depth */
.hero-overlay{
    position:absolute;
    inset:0;
    background:radial-gradient(circle at 20% 50%, rgba(245,158,11,0.15), transparent 40%);
}

/* content */
.hero-content{
    position:relative;
    max-width:700px;
    display:flex;
    flex-direction:column;
    gap:1.5rem;
    z-index:2;
}

/* small tag */
.hero-tag{
    color:var(--accent);
    font-weight:600;
    letter-spacing:.5px;
}

/* main heading */
.hero h1{
    font-size:3rem;
    line-height:1.2;
    font-weight:700;
}

/* sub text */
.hero-sub{
    font-size:1.15rem;
    color:#e2e8f0;
    max-width:550px;
}

/* buttons */
.hero-buttons{
    display:flex;
    gap:1rem;
    flex-wrap:wrap;
}

/* primary button */
.cta.primary{
    background:var(--accent);
    padding:1rem 2rem;
    border-radius:8px;
    font-weight:600;
    text-decoration:none;
    color:white;
    transition:.3s;
}

.cta.primary:hover{
    transform:translateY(-3px);
    box-shadow:0 10px 25px rgba(0,0,0,.25);
}

/* secondary button */
.cta.secondary{
    border:2px solid rgba(255,255,255,0.3);
    padding:1rem 2rem;
    border-radius:8px;
    text-decoration:none;
    color:white;
    backdrop-filter:blur(6px);
    transition:.3s;
}

.cta.secondary:hover{
    background:white;
    color:var(--primary);
}

/* RESPONSIVE */
@media(max-width:768px){
    .hero h1{
        font-size:2.2rem;
    }

    .hero{
        padding:6rem 1.5rem;
    }
}

/* SECTIONS */
section{ padding:5rem 2rem; }
.container{ max-width:1200px; margin:auto; }

/* SERVICES */
.services{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
    gap:2rem;
}

.service-card{
    background:var(--light);
    padding:2rem;
    border-radius:10px;
}

/* PROJECTS */
.featured-projects{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
    gap:2rem;
}

.project img{
    width:100%;
    height:200px;
    object-fit:cover;
}

/* CONTACT */
.contact{text-align:center;}

/* WHATSAPP BUTTON */
.whatsapp-btn{
    position:fixed;
    bottom:20px;
    right:20px;
    background:#25D366;
    color:white;
    font-size:1.8rem;
    width:55px;
    height:55px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    text-decoration:none;
    box-shadow:0 8px 20px rgba(0,0,0,.2);
    z-index:1000;
    transition:.3s;
}

.whatsapp-btn:hover{
    transform:scale(1.1);
}

/* CONTACT FORM */
.contact-form{
    max-width:500px;
    margin:2rem auto;
    display:flex;
    flex-direction:column;
    gap:1rem;
}

.contact-form input,
.contact-form textarea{
    padding:1rem;
    border:1px solid var(--border);
    border-radius:6px;
    font-size:1rem;
}

.contact-form textarea{
    min-height:120px;
    resize:vertical;
}

.contact-form button{
    padding:1rem;
    background:var(--accent);
    color:white;
    border:none;
    border-radius:6px;
    font-weight:600;
    cursor:pointer;
}

.contact-form button:hover{
    opacity:.9;
}

.hero-content{
    max-width:600px;
    display:flex;
    flex-direction:column;
    gap:1.5rem; /* creates spacing between text + button */
}

.hero-content h2{
    font-size:2.5rem;
    line-height:1.2;
}

.hero-content p{
    font-size:1.1rem;
    color:#e2e8f0;
}

.cta{
    display:inline-block;
    width:fit-content;
    margin-top:1rem;
}

.hero{
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:flex-start; /* keeps content aligned left */
    padding:6rem 2rem;
}

/* GALLERY */
.gallery{
    background:#f8fafc;
}

.gallery-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:1.2rem;
}

/* uniform image boxes */
.gallery-item{
    position:relative;
    overflow:hidden;
    border-radius:12px;
    cursor:pointer;
}

/* enforce same size */
.gallery-item img{
    width:100%;
    height:250px;
    object-fit:cover;
    transition:transform .5s ease, filter .5s ease;
}

/* hover effect */
.gallery-item:hover img{
    transform:scale(1.1);
    filter:brightness(0.8);
}

/* subtle overlay */
.gallery-item::after{
    content:"View";
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    color:white;
    font-weight:600;
    font-size:1.1rem;
    background:rgba(0,0,0,0.3);
    opacity:0;
    transition:.3s;
}

.gallery-item:hover::after{
    opacity:1;
}

/* LIGHTBOX */
.lightbox{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,0.9);
    display:none;
    align-items:center;
    justify-content:center;
    z-index:2000;
}

.lightbox-img{
    max-width:90%;
    max-height:80%;
    border-radius:10px;
}

.lightbox .close{
    position:absolute;
    top:30px;
    right:40px;
    font-size:2rem;
    color:white;
    cursor:pointer;
}

@media(max-width:768px){
    .nav-links{
        display:none; /* hide desktop nav */
    }

    .nav-inner{
        justify-content:space-between;
    }
}

@media(max-width:768px){

    .hero{
        padding:5rem 1.2rem;
        text-align:center;
        justify-content:center;
    }

    .hero-content{
        align-items:center;
    }

    .hero h1{
        font-size:1.9rem;
    }

    .hero-sub{
        font-size:1rem;
    }

    .hero-buttons{
        flex-direction:column;
        width:100%;
    }

    .cta.primary,
    .cta.secondary{
        width:100%;
        text-align:center;
    }
}

@media(max-width:768px){
    .gallery-item img{
        height:200px;
    }

    .gallery-grid{
        gap:.8rem;
    }
}

.lightbox .close{
    top:15px;
    right:20px;
    font-size:2.5rem; /* bigger for touch */
}

@media(max-width:768px){
    .lightbox-img{
        max-width:95%;
        max-height:70%;
    }
}