/* ===========================================
   GOOGLE FONT & RESET
=========================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Poppins',sans-serif;
    background:#f7f9fc;
    color:#1e293b;
    overflow-x:hidden;
}

img{
    max-width:100%;
    display:block;
}

a{
    text-decoration:none;
}

section{
    padding:100px 8%;
}

/* ===========================================
   CUSTOM COLORS
=========================================== */

:root{

    --primary:#2563eb;
    --secondary:#1e40af;
    --dark:#0f172a;
    --light:#ffffff;
    --gray:#64748b;
    --bg:#f8fafc;

}

/* ===========================================
   HEADER
=========================================== */

header{

    position:fixed;
    width:100%;
    top:0;
    left:0;

    z-index:999;

    padding:18px 8%;

    backdrop-filter:blur(14px);

    background:rgba(255,255,255,.82);

    border-bottom:1px solid rgba(0,0,0,.05);

}

/* ===========================================
   NAVBAR
=========================================== */

nav{

    display:flex;

    justify-content:space-between;

    align-items:center;

}

/* ===========================================
   LOGO (text-only wordmark)
=========================================== */

.logo-text{

    display:flex;

    align-items:baseline;

    text-decoration:none;

    position:relative;

    padding-bottom:4px;

}

.logo-11{

    font-size:1.9rem;

    font-weight:800;

    color:var(--primary);

    letter-spacing:-1px;

}

.logo-apex{

    font-size:1.9rem;

    font-weight:700;

    color:var(--dark);

    letter-spacing:2px;

    margin-left:2px;

}

.logo-underline{

    position:absolute;

    bottom:0;

    left:0;

    width:35%;

    height:3px;

    background:var(--primary);

    border-radius:2px;

}

/* ===========================================
   MENU
=========================================== */

.nav-menu{

    display:flex;

    list-style:none;

    gap:40px;

}

.nav-menu a{

    color:var(--dark);

    font-weight:500;

    transition:.3s;

    position:relative;

}

.nav-menu a:hover{

    color:var(--primary);

}

.nav-menu a::after{

    content:"";

    position:absolute;

    width:0;

    height:2px;

    left:0;

    bottom:-5px;

    background:var(--primary);

    transition:.3s;

}

.nav-menu a:hover::after{

    width:100%;

}

.nav-menu a.active-link{

    color:var(--primary);

}

.nav-menu a.active-link::after{

    width:100%;

}

/* ===========================================
   RIGHT SIDE
=========================================== */

.nav-right{

    display:flex;

    align-items:center;

    gap:20px;

}

/* ===========================================
   SEARCH BAR
=========================================== */

.search-box{

    display:flex;

    align-items:center;

    background:white;

    border-radius:50px;

    overflow:hidden;

    box-shadow:0 8px 25px rgba(0,0,0,.08);

}

.search-box input{

    border:none;

    outline:none;

    padding:13px 18px;

    width:190px;

    font-size:15px;

}

.search-box button{

    display:flex;

    align-items:center;

    justify-content:center;

    border:none;

    background:var(--primary);

    color:white;

    cursor:pointer;

    padding:13px 18px;

    transition:.3s;

}

.search-box button:hover{

    background:var(--secondary);

}

/* ===========================================
   CONTACT BUTTON
=========================================== */

.contact-btn{

    background:var(--primary);

    color:white;

    padding:12px 26px;

    border-radius:50px;

    font-weight:600;

    transition:.35s;

}

.contact-btn:hover{

    background:var(--secondary);

    transform:translateY(-2px);

    box-shadow:0 12px 25px rgba(37,99,235,.3);

}

/* ===========================================
   HAMBURGER MENU
=========================================== */

.hamburger{

    display:none;

    flex-direction:column;

    gap:5px;

    cursor:pointer;

}

.hamburger span{

    width:28px;

    height:3px;

    background:var(--dark);

    border-radius:3px;

    transition:.3s;

}

.hamburger.active span:nth-child(1){

    transform:translateY(8px) rotate(45deg);

}

.hamburger.active span:nth-child(2){

    opacity:0;

}

.hamburger.active span:nth-child(3){

    transform:translateY(-8px) rotate(-45deg);

}

/* ===========================================
   SECTION TITLES
=========================================== */

.section-title{

    text-align:center;

    margin-bottom:60px;

}

.section-title span{

    display:inline-block;

    color:var(--primary);

    background:#dbeafe;

    padding:8px 20px;

    border-radius:50px;

    font-weight:600;

    margin-bottom:15px;

}

.section-title h2{

    font-size:2.8rem;

    color:var(--dark);

}


/* ===========================================
   HERO SECTION
=========================================== */

.hero{

    min-height:100vh;

    display:flex;

    align-items:center;

    padding:140px 8% 100px;

    overflow:hidden;

    background:
    linear-gradient(
        135deg,
        #0f172a 0%,
        #1e3a8a 45%,
        #2563eb 100%
    );

    position:relative;

}

/* Decorative Background Circles */

.hero::before{

    content:"";

    position:absolute;

    width:700px;

    height:700px;

    border-radius:50%;

    background:rgba(255,255,255,.06);

    top:-250px;

    right:-180px;

}

.hero::after{

    content:"";

    position:absolute;

    width:400px;

    height:400px;

    border-radius:50%;

    background:rgba(255,255,255,.05);

    bottom:-150px;

    left:-120px;

}

/* Hero Layout */

.hero-content{

    width:100%;

    max-width:1400px;

    margin:auto;

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:70px;

    position:relative;

    z-index:2;

}

/* White Glass Card */

.hero-card{

    flex:1;

    background:rgba(255,255,255,.96);

    padding:60px;

    border-radius:40px;

    box-shadow:
        0 30px 80px rgba(0,0,0,.18);

}

/* Badge */

.badge{

    display:inline-block;

    padding:8px 18px;

    border-radius:30px;

    background:#dbeafe;

    color:#2563eb;

    font-weight:600;

    margin-bottom:25px;

}

/* Heading */

.hero-card h1{

    font-size:4rem;

    line-height:1.05;

    color:#0f172a;

    margin-bottom:25px;

}

/* Paragraph */

.hero-card p{

    font-size:1.08rem;

    line-height:1.9;

    color:#64748b;

    margin-bottom:35px;

}

/* Buttons */

.hero-buttons{

    display:flex;

    gap:18px;

    flex-wrap:wrap;

}

/* Primary */

.hero-btn{

    background:#2563eb;

    color:white;

    padding:16px 35px;

    border-radius:12px;

    font-weight:600;

    transition:.3s;

}

.hero-btn:hover{

    background:#1d4ed8;

    transform:translateY(-4px);

}

/* Secondary */

.secondary-btn{

    border:2px solid #2563eb;

    color:#2563eb;

    padding:16px 35px;

    border-radius:12px;

    font-weight:600;

    transition:.3s;

}

.secondary-btn:hover{

    background:#2563eb;

    color:white;

}

/* Statistics */

.hero-stats{

    display:flex;

    gap:45px;

    margin-top:50px;

}

.hero-stats h3{

    font-size:2rem;

    color:#2563eb;

}

.hero-stats span{

    color:#64748b;

    font-size:.95rem;

}

/* ===========================================
   HERO — FULL WIDTH TEXT LAYOUT
=========================================== */

.hero-content-full{

    position:relative;

    justify-content:center;

}

.hero-card-full{

    max-width:820px;

    width:100%;

    text-align:left;

}

/* ===========================================
   STAGGERED FADE-UP ENTRANCE ANIMATION
=========================================== */

.fade-up{

    opacity:0;

    transform:translateY(25px);

    animation:heroFadeUp .8s ease forwards;

}

.delay-1{ animation-delay:.1s; }
.delay-2{ animation-delay:.3s; }
.delay-3{ animation-delay:.5s; }
.delay-4{ animation-delay:.7s; }
.delay-5{ animation-delay:.9s; }

@keyframes heroFadeUp{

    to{

        opacity:1;

        transform:translateY(0);

    }

}

/* ===========================================
   FLOATING DECORATIVE SVG SHAPES
=========================================== */

.float-shape{

    position:absolute;

    opacity:.18;

    z-index:1;

    pointer-events:none;

}

.shape-1{

    width:70px;

    height:70px;

    top:12%;

    left:6%;

    animation:floatShape 7s ease-in-out infinite;

}

.shape-2{

    width:50px;

    height:50px;

    top:22%;

    right:10%;

    animation:floatShape 6s ease-in-out infinite;

    animation-delay:.8s;

}

.shape-3{

    width:45px;

    height:45px;

    bottom:20%;

    left:14%;

    animation:floatShape 5.5s ease-in-out infinite;

    animation-delay:1.4s;

}

.shape-4{

    width:65px;

    height:65px;

    bottom:14%;

    right:8%;

    animation:floatShape 6.5s ease-in-out infinite;

    animation-delay:.5s;

}

.shape-5{

    width:55px;

    height:55px;

    top:55%;

    right:22%;

    animation:floatShape 7.5s ease-in-out infinite;

    animation-delay:1.1s;

}

@keyframes floatShape{

    0%{

        transform:translateY(0) rotate(0deg);

    }

    50%{

        transform:translateY(-18px) rotate(8deg);

    }

    100%{

        transform:translateY(0) rotate(0deg);

    }

}

/* Hide shapes on smaller screens so they don't clutter/overlap text */

@media(max-width:1100px){

    .float-shape{

        display:none;

    }

}

/* ===========================================
   CLIENT LOGOS
=========================================== */

#clients{

    background:white;

    padding:60px 8%;

    text-align:center;

}

.clients-label{

    color:#94a3b8;

    font-weight:600;

    letter-spacing:1px;

    margin-bottom:35px;

    text-transform:uppercase;

    font-size:.9rem;

}

.clients-row{

    display:flex;

    justify-content:center;

    align-items:center;

    flex-wrap:wrap;

    gap:60px;

}

.clients-row img{

    height:40px;

    width:auto;

    filter:grayscale(100%);

    opacity:.6;

    transition:.3s;

}

.clients-row img:hover{

    filter:grayscale(0%);

    opacity:1;

}

/* ===========================================
   SERVICES SECTION
=========================================== */

#services{

    background:#f8fafc;

}

.cards{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(320px,1fr));

    gap:35px;

}

.card{

    background:white;

    padding:40px 35px;

    border-radius:25px;

    transition:.35s;

    position:relative;

    overflow:hidden;

    box-shadow:0 15px 40px rgba(0,0,0,.08);

}

.card::before{

    content:"";

    position:absolute;

    top:0;

    left:0;

    width:100%;

    height:5px;

    background:linear-gradient(
        90deg,
        #2563eb,
        #3b82f6
    );

}

.card:hover{

    transform:translateY(-12px);

    box-shadow:0 30px 60px rgba(0,0,0,.12);

}

.icon{

    width:70px;

    height:70px;

    border-radius:18px;

    background:#dbeafe;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:2rem;

    color:var(--primary);

    margin-bottom:25px;

}

.card h3{

    font-size:1.5rem;

    margin-bottom:18px;

    color:#0f172a;

}

.card p{

    color:#64748b;

    line-height:1.8;

}


/* ===========================================
   PRODUCT CATEGORY GRID (homepage)
=========================================== */

.category-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;

}

.category-box{

    display:block;

    background:white;

    border-radius:20px;

    overflow:hidden;

    text-align:center;

    transition:.35s;

    box-shadow:0 12px 35px rgba(0,0,0,.07);

}

.category-box:hover{

    transform:translateY(-8px);

    box-shadow:0 20px 45px rgba(0,0,0,.13);

}

.category-image{

    width:100%;

    height:200px;

    overflow:hidden;

    background:#edf2f7;

}

.category-image img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:.4s;

}

.category-box:hover .category-image img{

    transform:scale(1.08);

}

.category-box h3{

    padding:18px 15px;

    font-size:1.05rem;

    color:#0f172a;

}

/* Responsive */

@media(max-width:900px){

    .category-grid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media(max-width:550px){

    .category-grid{

        grid-template-columns:1fr;

    }

}

/* ===========================================
   VIEW ALL PRODUCTS BUTTON
=========================================== */

.view-all-wrapper{

    text-align:center;

    margin-top:50px;

}

.view-all-btn{

    display:inline-block;

    background:#2563eb;

    color:white;

    padding:16px 40px;

    border-radius:12px;

    font-weight:600;

    transition:.3s;

}

.view-all-btn:hover{

    background:#1d4ed8;

    transform:translateY(-3px);

    box-shadow:0 15px 30px rgba(37,99,235,.25);

}

/* ===========================================
   FEATURE STRIP
=========================================== */

.features{

    margin-top:70px;

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:30px;

}

.feature{

    background:white;

    border-radius:18px;

    padding:30px;

    text-align:center;

    box-shadow:0 10px 35px rgba(0,0,0,.06);

}

.feature h4{

    margin-top:15px;

    color:#0f172a;

}

.feature p{

    margin-top:10px;

    color:#64748b;

    font-size:.95rem;

}

/* ===========================================
   WHY CHOOSE US SECTION
=========================================== */

#why-choose-us{

    background:#f8fafc;

}

.why-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(320px,1fr));

    gap:35px;

}

.why-card{

    background:white;

    padding:40px 35px;

    border-radius:25px;

    transition:.35s;

    position:relative;

    box-shadow:0 15px 40px rgba(0,0,0,.08);

}

.why-card:hover{

    transform:translateY(-12px);

    box-shadow:0 30px 60px rgba(0,0,0,.12);

}

.why-number{

    font-size:2.2rem;

    font-weight:700;

    color:#dbeafe;

    -webkit-text-stroke:1px #2563eb;

    margin-bottom:15px;

}

.why-card h3{

    font-size:1.4rem;

    margin-bottom:15px;

    color:#0f172a;

}

.why-card p{

    color:#64748b;

    line-height:1.8;

}

/* ===========================================
   TESTIMONIALS
=========================================== */

#testimonials{

    background:white;

}

.testimonial-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(320px,1fr));

    gap:35px;

}

.testimonial-card{

    background:#f8fafc;

    padding:40px 35px;

    border-radius:25px;

    transition:.35s;

    position:relative;

    box-shadow:0 15px 40px rgba(0,0,0,.06);

}

.testimonial-card:hover{

    transform:translateY(-10px);

    box-shadow:0 25px 55px rgba(0,0,0,.1);

}

.quote-icon{

    font-size:3.5rem;

    color:#2563eb;

    line-height:1;

    margin-bottom:10px;

    font-family:Georgia,serif;

}

.testimonial-card p{

    color:#475569;

    line-height:1.8;

    margin-bottom:30px;

    font-size:1.02rem;

}

.testimonial-author{

    display:flex;

    align-items:center;

    gap:15px;

}

.author-initial{

    width:48px;

    height:48px;

    border-radius:50%;

    background:#2563eb;

    color:white;

    display:flex;

    align-items:center;

    justify-content:center;

    font-weight:600;

    font-size:1.1rem;

}

.testimonial-author h4{

    color:#0f172a;

    font-size:1rem;

}

.testimonial-author span{

    color:#64748b;

    font-size:.9rem;

}

/* ===========================================
   ABOUT SECTION
=========================================== */

#about{

    background:#f8fafc;

}

.about-text{

    max-width:900px;

    margin:auto;

    text-align:center;

    color:#64748b;

    font-size:1.15rem;

    line-height:2;

}

.about-grid{

    margin-top:70px;

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));

    gap:30px;

}

.about-box{

    background:white;

    padding:35px;

    border-radius:20px;

    box-shadow:0 10px 30px rgba(0,0,0,.08);

    transition:.3s;

}

.about-box:hover{

    transform:translateY(-8px);

}

.about-box h3{

    color:#0f172a;

    margin-bottom:15px;

}

.about-box p{

    color:#64748b;

    line-height:1.8;

}

/* ===========================================
   FAQ
=========================================== */

#faq{

    background:white;

}

.faq-list{

    max-width:850px;

    margin:auto;

    display:flex;

    flex-direction:column;

    gap:20px;

}

.faq-item{

    background:#f8fafc;

    border-radius:18px;

    box-shadow:0 10px 30px rgba(0,0,0,.06);

    overflow:hidden;

}

.faq-question{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:25px 30px;

    cursor:pointer;

}

.faq-question h3{

    font-size:1.1rem;

    color:#0f172a;

}

.faq-icon{

    font-size:1.5rem;

    color:#2563eb;

    transition:.3s;

    flex-shrink:0;

    margin-left:20px;

}

.faq-item.active .faq-icon{

    transform:rotate(45deg);

}

.faq-answer{

    max-height:0;

    overflow:hidden;

    transition:max-height .35s ease, padding .35s ease;

    padding:0 30px;

}

.faq-item.active .faq-answer{

    max-height:200px;

    padding:0 30px 25px;

}

.faq-answer p{

    color:#64748b;

    line-height:1.8;

}

/* ===========================================
   CONTACT
=========================================== */

#contact{

    background:linear-gradient(
        135deg,
        #0f172a,
        #1e3a8a
    );

    color:white;

}

#contact .section-title h2{

    color:white;

}

#contact .section-title span{

    background:rgba(255,255,255,.15);

    color:white;

}

form{

    max-width:700px;

    margin:auto;

    background:white;

    padding:45px;

    border-radius:25px;

    box-shadow:0 25px 60px rgba(0,0,0,.18);

}

form input,
form textarea{

    width:100%;

    margin-bottom:20px;

    padding:16px;

    border:none;

    border-radius:12px;

    background:#f1f5f9;

    font-size:16px;

    outline:none;

}

form textarea{

    min-height:180px;

    resize:vertical;

}

form button{

    width:100%;

    padding:16px;

    border:none;

    border-radius:12px;

    background:#2563eb;

    color:white;

    font-size:17px;

    font-weight:600;

    cursor:pointer;

    transition:.3s;

}

form button:hover{

    background:#1d4ed8;

}

/* ===========================================
   FOOTER
=========================================== */

footer{

    background:#020617;

    color:#cbd5e1;

    text-align:center;

    padding:30px;

}

footer p{

    letter-spacing:.5px;

}

/* ===========================================
   SCROLL FADE-IN
=========================================== */

.fade-in{

    opacity:0;

    transform:translateY(30px);

    transition:opacity .7s ease, transform .7s ease;

}

.fade-in.visible{

    opacity:1;

    transform:translateY(0);

}



.social-links{

    display:flex;

    justify-content:center;

    gap:18px;

    margin-bottom:20px;

}

.social-links a{

    width:40px;

    height:40px;

    border-radius:50%;

    background:rgba(255,255,255,.08);

    color:#cbd5e1;

    display:flex;

    align-items:center;

    justify-content:center;

    transition:.3s;

}

.social-links a:hover{

    background:var(--primary);

    color:white;

    transform:translateY(-3px);

}


/* ===========================================
   RESPONSIVE
=========================================== */

@media(max-width:1100px){

.hero-content{

flex-direction:column;

text-align:center;

}

.hero-card{

padding:45px;

}

.hero-buttons{

justify-content:center;

}

.hero-stats{

justify-content:center;

}

.features{

grid-template-columns:repeat(2,1fr);

}

}

@media(max-width:900px){

header{

padding:18px 5%;

}

nav{

flex-wrap:wrap;

}

.hamburger{

display:flex;

}

.nav-menu{

position:absolute;

top:100%;

left:0;

width:100%;

background:white;

flex-direction:column;

align-items:center;

padding:30px 0;

gap:25px;

display:none;

box-shadow:0 15px 30px rgba(0,0,0,.08);

}

.nav-menu.show{

display:flex;

}

.nav-right{

margin-top:15px;

}

.hero-card h1{

font-size:3rem;

}

.section-title h2{

font-size:2.2rem;

}

.product-grid{

grid-template-columns:1fr;

}

.cards{

grid-template-columns:1fr;

}

.why-grid{

grid-template-columns:1fr;

}

.testimonial-grid{

grid-template-columns:1fr;

}

.about-grid{

grid-template-columns:1fr;

}

}

@media(max-width:650px){

section{

padding:80px 6%;

}

.hero{

padding-top:170px;

}

.hero-card{

padding:30px;

border-radius:25px;

}

.hero-card h1{

font-size:2.3rem;

}

.hero-stats{

flex-direction:column;

gap:20px;

}

.hero-buttons{

flex-direction:column;

}

.hero-btn,
.secondary-btn{

width:100%;

text-align:center;

}

.features{

grid-template-columns:1fr;

}

.search-box input{

width:150px;

}

.clients-row{

gap:35px;

}

}



.contact-info{

    max-width:700px;

    margin:0 auto 35px;

    display:flex;

    gap:20px;

    flex-wrap:wrap;

}

.contact-info-item{

    flex:1;

    min-width:220px;

    display:flex;

    align-items:center;

    gap:15px;

    background:rgba(255,255,255,.08);

    border:1px solid rgba(255,255,255,.15);

    padding:18px 22px;

    border-radius:16px;

    transition:.3s;

}

.contact-info-item:hover{

    background:rgba(255,255,255,.14);

    transform:translateY(-3px);

}

.contact-info-icon{

    width:44px;

    height:44px;

    border-radius:12px;

    background:rgba(255,255,255,.15);

    color:white;

    display:flex;

    align-items:center;

    justify-content:center;

    flex-shrink:0;

}

.contact-info-item span{

    color:#cbd5e1;

    font-size:.85rem;

}

.contact-info-item h4{

    color:white;

    font-size:1.05rem;

    margin-top:2px;

}

@media(max-width:650px){

    .contact-info{

        flex-direction:column;

    }

}



.social-links{

    display:flex;

    justify-content:center;

    gap:18px;

    margin-bottom:20px;

}

.social-icon{

    width:42px;

    height:42px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    color:white;

    position:relative;

    overflow:hidden;

    transition:transform .3s ease, box-shadow .3s ease;

}

.social-icon svg{

    position:relative;

    z-index:2;

}

.social-icon::before{

    content:"";

    position:absolute;

    inset:0;

    opacity:.85;

    transition:.3s;

}

.social-icon:hover{

    transform:translateY(-4px) scale(1.08);

}

.social-icon:hover::before{

    opacity:1;

}

/* Instagram gradient */

.insta::before{

    background:linear-gradient(
        45deg,
        #feda75,
        #fa7e1e,
        #d62976,
        #962fbf,
        #4f5bd5
    );

}

.insta:hover{

    box-shadow:0 10px 25px rgba(214,41,118,.4);

}

/* Facebook */

.fb::before{

    background:linear-gradient(135deg, #1877f2, #0d5cd6);

}

.fb:hover{

    box-shadow:0 10px 25px rgba(24,119,242,.4);

}

/* X / Twitter */

.twitter::before{

    background:linear-gradient(135deg, #000000, #333333);

}

.twitter:hover{

    box-shadow:0 10px 25px rgba(0,0,0,.35);

}

/* Pinterest */

.pinterest::before{

    background:linear-gradient(135deg, #e60023, #ad081b);

}

.pinterest:hover{

    box-shadow:0 10px 25px rgba(230,0,35,.4);

}