/* ==========================================================
   DSP SOFTECH — MODERN FRONTEND THEME
   ========================================================== */
:root{
  --primary:#4f46e5;
  --primary-2:#7c3aed;
  --primary-dark:#3730a3;
  --accent:#22d3ee;
  --dark:#0b1020;
  --dark-2:#111827;
  --text:#0f172a;
  --muted:#64748b;
  --light:#f8fafc;
  --border:#e6e8ef;
  --gradient:linear-gradient(135deg,#4f46e5 0%,#7c3aed 50%,#22d3ee 100%);
  --gradient-soft:linear-gradient(135deg,#eef2ff 0%,#f5f3ff 50%,#ecfeff 100%);
  --shadow-sm:0 1px 2px rgba(15,23,42,.05);
  --shadow:0 10px 30px rgba(15,23,42,.08);
  --shadow-lg:0 25px 50px -12px rgba(79,70,229,.25);
  --radius:14px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  color:var(--text);
  line-height:1.65;
  background:#fff;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5,h6{font-weight:800;color:var(--dark);letter-spacing:-.02em}
p{color:#3b4256}
a{text-decoration:none;color:var(--primary);transition:.2s}
a:hover{color:var(--primary-dark)}
img{max-width:100%}
::selection{background:var(--primary);color:#fff}

/* ============ TOPBAR ============ */
.topbar{
  background:var(--dark);
  color:#fff;
  font-size:.85rem;
  border-bottom:1px solid rgba(255,255,255,.05);
}
.topbar a{color:rgba(255,255,255,.85)}
.topbar a:hover{color:#fff}

/* ============ NAVBAR ============ */
.navbar{padding:.85rem 0;backdrop-filter:saturate(180%) blur(10px);background:rgba(255,255,255,.92)!important;border-bottom:1px solid var(--border)}
.navbar-brand{font-size:1.4rem;font-weight:800;color:var(--dark)!important;display:flex;align-items:center;gap:8px}
.navbar-brand .text-primary{background:var(--gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent!important}
.navbar .nav-link{font-weight:500;color:#334155!important;padding:.55rem 1rem!important;border-radius:8px;font-size:.95rem;transition:.2s}
.navbar .nav-link:hover{color:var(--primary)!important;background:#f5f3ff}
.navbar .nav-link.active{color:var(--primary)!important;background:#eef2ff}

/* ============ BUTTONS ============ */
.btn{font-weight:600;border-radius:10px;padding:.65rem 1.4rem;transition:.25s;border:0;font-size:.95rem;letter-spacing:.01em}
.btn-primary{background:var(--gradient);color:#fff;box-shadow:0 6px 20px rgba(79,70,229,.35)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(79,70,229,.5);color:#fff}
.btn-outline-primary{border:2px solid var(--primary);color:var(--primary);background:transparent}
.btn-outline-primary:hover{background:var(--primary);color:#fff;border-color:var(--primary)}
.btn-light{background:#fff;color:var(--primary)}
.btn-light:hover{background:#f5f3ff;color:var(--primary-dark)}
.btn-lg{padding:.85rem 1.8rem;font-size:1rem}

/* ============ HERO ============ */
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(900px 500px at 80% 20%,rgba(34,211,238,.35),transparent 60%),radial-gradient(700px 400px at 10% 90%,rgba(236,72,153,.25),transparent 60%);z-index:-1}
.hero::after{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);z-index:-1;opacity:.4}
.hero h1{color:#fff;font-size:3.5rem;font-weight:800;line-height:1.1;margin-bottom:1.2rem}
.hero h1 .accent{background:linear-gradient(90deg,#fef9c3,#fde68a);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hero p{font-size:1.2rem;opacity:.95;max-width:600px;color:rgba(255,255,255,.92)}
.hero .pill{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);border-radius:999px;font-size:.85rem;font-weight:500;margin-bottom:1.5rem;backdrop-filter:blur(10px)}

/* ============ SECTIONS ============ */
section{padding:90px 0}
.section-title{font-size:2.4rem;font-weight:800;margin-bottom:.7rem;line-height:1.2}
.section-sub{color:var(--muted);font-size:1.08rem;margin-bottom:3rem;max-width:680px}
.section-tag{display:inline-block;padding:6px 14px;background:#eef2ff;color:var(--primary);font-weight:600;font-size:.78rem;border-radius:999px;letter-spacing:.6px;text-transform:uppercase;margin-bottom:1rem}
.section-light{background:linear-gradient(180deg,#fafbff,#fff)}

/* ============ FEATURE / SERVICE CARDS ============ */
.card-feature{
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:32px 26px;
  transition:.3s cubic-bezier(.4,0,.2,1);
  height:100%;
  position:relative;
  overflow:hidden;
}
.card-feature::before{content:'';position:absolute;inset:0;background:var(--gradient);opacity:0;transition:.3s;z-index:0}
.card-feature>*{position:relative;z-index:1}
.card-feature .icon{
  width:60px;height:60px;border-radius:14px;
  background:var(--gradient);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:1.6rem;margin-bottom:1.3rem;
  box-shadow:0 8px 20px rgba(79,70,229,.35);
}
.card-feature h5{font-size:1.18rem;margin-bottom:.6rem;font-weight:700}
.card-feature p{color:var(--muted);font-size:.95rem;margin:0;line-height:1.65}

/* ============ STATS ============ */

.stats::before{content:'';position:absolute;inset:0;background:radial-gradient(600px 300px at 20% 50%,rgba(79,70,229,.3),transparent 70%),radial-gradient(500px 250px at 80% 50%,rgba(34,211,238,.25),transparent 70%)}
.stats .container{position:relative}
.stat-box h2{font-size:3rem;background:linear-gradient(135deg,#fff,#a5b4fc);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:800;margin:0;line-height:1}
.stat-box p{color:rgba(255,255,255,.7);font-weight:500;margin:.4rem 0 0;font-size:.95rem}

/* ============ PORTFOLIO ============ */
.project-card{border-radius:var(--radius);overflow:hidden;background:#fff;border:1px solid var(--border);transition:.3s;height:100%}
.project-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:transparent}
.project-card .thumb{position:relative;overflow:hidden;aspect-ratio:16/10}
.project-card img{width:100%;height:100%;object-fit:cover;transition:.5s}
.project-card:hover img{transform:scale(1.08)}
.project-card .body{padding:22px}
.badge-cat{background:#eef2ff;color:var(--primary);font-weight:600;padding:5px 12px;border-radius:999px;font-size:.72rem;text-transform:uppercase;letter-spacing:.4px}

/* ============ TESTIMONIALS ============ */
.testimonial{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:30px;height:100%;transition:.3s;position:relative}
.testimonial:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.testimonial::before{content:'\201C';position:absolute;top:10px;right:24px;font-size:4rem;color:#eef2ff;font-family:Georgia,serif;line-height:1}
.testimonial .stars{color:#f59e0b;margin-bottom:.8rem}
.testimonial p{font-style:italic;color:#334155;position:relative;z-index:1}
.testimonial .author{display:flex;align-items:center;margin-top:1.2rem}
.testimonial .author img{width:50px;height:50px;border-radius:50%;object-fit:cover;margin-right:12px;border:2px solid #eef2ff}
.testimonial .author strong{color:var(--dark);font-weight:700}
.testimonial .author small{color:var(--muted)}

/* ============ CLIENTS ============ */
.client-logo{
    display:flex;
    align-items:center;
    justify-content:center;
    height:120px;
    background:#fff;
    border-radius:20px;
    transition:.4s;
    border:1px solid rgba(0,0,0,.05);
}

.client-logo:hover{
    transform:translateY(-10px);
    box-shadow:0 20px 40px rgba(79,70,229,.15);
}

.client-logo img{
    max-height:70px;
    filter:grayscale(100%);
    transition:.4s;
}

.client-logo:hover img{
    filter:none;
    transform:scale(1.1);
}

/* ============ FOOTER ============ */
.footer-main{background:var(--dark);color:#fff;position:relative;overflow:hidden}
.footer-main::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(99,102,241,.5),transparent)}
.footer-main h5,.footer-main h6{color:#fff}
.footer-links li{margin-bottom:.55rem}
.footer-links a{color:rgba(255,255,255,.6);font-size:.94rem;transition:.2s;display:inline-block}
.footer-links a:hover{color:#fff;transform:translateX(4px)}
.footer-main hr{border-color:rgba(255,255,255,.08)}

/* ============ FLOATING BUTTONS ============ */
.float-whatsapp,.float-call,.float-top{position:fixed;width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.4rem;box-shadow:0 8px 24px rgba(0,0,0,.22);z-index:999;border:none;cursor:pointer;transition:.3s}
.float-whatsapp{background:#25d366;right:22px;bottom:92px}
.float-call{background:var(--primary);right:22px;bottom:158px}
.float-top{background:var(--dark);right:22px;bottom:22px;opacity:0;visibility:hidden}
.float-top.show{opacity:1;visibility:visible}
.float-whatsapp:hover,.float-call:hover,.float-top:hover{transform:scale(1.12) translateY(-2px);color:#fff}

/* ============ PAGE HEADER ============ */
.page-header{background:var(--gradient);color:#fff;padding:90px 0 70px;text-align:center;position:relative;overflow:hidden}
.page-header::before{content:'';position:absolute;inset:0;background:radial-gradient(800px 400px at 50% 100%,rgba(255,255,255,.18),transparent 60%)}
.page-header h1{color:#fff;font-size:2.8rem;margin-bottom:.5rem;position:relative}
.page-header p{color:rgba(255,255,255,.9);position:relative}
.page-header .breadcrumb{justify-content:center;background:transparent;margin:0;padding:0;position:relative}
.page-header .breadcrumb-item,.page-header .breadcrumb a{color:rgba(255,255,255,.85)}
.page-header .breadcrumb-item.active{color:#fff}
.page-header .breadcrumb-item+.breadcrumb-item::before{color:rgba(255,255,255,.5)}

/* ============ FORMS ============ */
.form-control,.form-select{border-radius:10px;padding:.75rem 1rem;border:1.5px solid #e2e8f0;font-size:.95rem;transition:.2s}
.form-control:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 .2rem rgba(79,70,229,.12)}
label{font-weight:500;color:#334155;margin-bottom:.4rem;font-size:.92rem}

/* ============ BLOG ============ */
.blog-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:.3s;height:100%}
.blog-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.blog-card .thumb{aspect-ratio:16/10;overflow:hidden}
.blog-card .thumb img{width:100%;height:100%;object-fit:cover;transition:.5s}
.blog-card:hover .thumb img{transform:scale(1.08)}
.blog-card .body{padding:22px}
.blog-card h5{font-size:1.1rem;line-height:1.4}
.blog-card h5 a{color:var(--dark)}
.blog-card h5 a:hover{color:var(--primary)}

/* ============ CTA ============ */
.cta-band{background:var(--gradient);color:#fff;padding:70px 0;border-radius:var(--radius);position:relative;overflow:hidden}
.cta-band h2{color:#fff;font-size:2.2rem}
.cta-band p{color:rgba(255,255,255,.92)}

/* ============ ANIMATIONS ============ */
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.fade-up{animation:fadeUp .7s ease-out both}

/* ============ RESPONSIVE ============ */
@media (max-width:992px){
  .hero h1{font-size:2.6rem}
  .section-title{font-size:2rem}
  .page-header h1{font-size:2.1rem}
}
@media (max-width:768px){
  .hero{padding:80px 0 90px}
  .hero h1{font-size:2.1rem}
  .hero p{font-size:1.05rem}
  section{padding:60px 0}
  .stat-box h2{font-size:2.2rem}
  .page-header{padding:60px 0 40px}
}
/* =========================
   HERO ANIMATION
========================= */

.hero{
    position:relative;
    overflow:hidden;
    background:linear-gradient(
        -45deg,
        #4f46e5,
        #7c3aed,
        #22d3ee,
        #4f46e5
    );
    background-size:400% 400%;
    animation:gradientMove 12s ease infinite;
}

@keyframes gradientMove{
    0%{
        background-position:0% 50%;
    }
    50%{
        background-position:100% 50%;
    }
    100%{
        background-position:0% 50%;
    }
}

/* =========================
   FLOATING HERO IMAGE
========================= */

.hero-img{
    animation:floatHero 5s ease-in-out infinite;
}

@keyframes floatHero{
    0%,100%{
        transform:translateY(0px);
    }
    50%{
        transform:translateY(-20px);
    }
}
@media (max-width:768px){

     .hero-img{
        animation:floatHero 5s ease-in-out infinite;
    }

    .card-feature:hover,
    .service-card:hover,
    .project-card:hover,
    .testimonial:hover,
    .stat-box:hover{
        transform:translateY(-5px);
    }

    .hero-shape{
        opacity:.15;
    }

}

/* =========================
   HERO GLOW SHAPES
========================= */

.hero-shape{
    position:absolute;
    border-radius:50%;
    filter:blur(90px);
    opacity:.35;
    z-index:1;
}

.hero .container{
    position:relative;
    z-index:2;
}

.shape1{
    width:300px;
    height:300px;
    background:#00e5ff;
    top:-100px;
    right:-80px;
}

.shape2{
    width:250px;
    height:250px;
    background:#ff4081;
    bottom:-80px;
    left:-80px;
}

.shape3{
    width:220px;
    height:220px;
    background:#00ff95;
    top:40%;
    left:45%;
}

/* =========================
   SERVICE CARD EFFECT
========================= */

.card-feature{
    transition:all .4s ease;
}

.card-feature:hover{
    transform:translateY(-15px);
    box-shadow:
        0 25px 50px rgba(79,70,229,.25);
}

.card-feature:hover .icon{
    transform:rotate(10deg) scale(1.15);
}

/* =========================
   PROJECT CARD EFFECT
========================= */

.project-card{
    overflow:hidden;
}

.project-card img{
    transition:.6s;
}

.project-card:hover img{
    transform:scale(1.1);
}

/* =========================
   CLIENT LOGO EFFECT
========================= */

.client-logo{
    transition:.4s;
}

.client-logo:hover{
    transform:translateY(-8px);
}

/* =========================
   TESTIMONIAL EFFECT
========================= */

.testimonial{
    transition:.4s;
    backdrop-filter:blur(10px);
    background:rgba(255,255,255,.9);
}

.testimonial:hover{
    transform:translateY(-10px);
    box-shadow:0 20px 40px rgba(79,70,229,.12);
}

/* =========================
   GLASS STATS
========================= */

.stat-box:hover{
    transform:translateY(-10px);
}
/* =====================
   MODERN STATS SECTION
===================== */

.stats{
    position:relative;
    background:linear-gradient(
        135deg,
        #0f172a,
        #1e293b
    );
    padding:90px 0;
    overflow:hidden;
}

.stats::before{
    content:'';
    position:absolute;
    width:500px;
    height:500px;
    background:rgba(79,70,229,.20);
    border-radius:50%;
    filter:blur(120px);
    top:-250px;
    left:-200px;
}

.stats::after{
    content:'';
    position:absolute;
    width:400px;
    height:400px;
    background:rgba(34,211,238,.15);
    border-radius:50%;
    filter:blur(120px);
    bottom:-200px;
    right:-150px;
}

.stat-box{
    background:rgba(255,255,255,.08);
    backdrop-filter:blur(20px);
    border:1px solid rgba(255,255,255,.1);
    border-radius:20px;
    padding:30px;
    transition:.4s;
    height:100%;
}

.stat-box:hover{
    transform:translateY(-10px);
    box-shadow:0 20px 40px rgba(0,0,0,.25);
}

.stat-box h2{
    font-size:3rem;
    font-weight:800;
    color:#fff;
    margin-bottom:10px;
}

.stat-box p{
    color:rgba(255,255,255,.75);
    margin:0;
    font-weight:500;
}
/* ==========================
   SERVICES SECTION
========================== */

.service-card{
    position:relative;
    overflow:hidden;
    background:#fff;
    border-radius:20px;
    border:1px solid rgba(79,70,229,.08);
    box-shadow:0 10px 25px rgba(0,0,0,.05);
}

.service-card::before{
    content:'';
    position:absolute;
    top:0;
    left:-100%;
    width:100%;
    height:100%;
    background:linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,.4),
        transparent
    );
    transition:.8s;
}

.service-card:hover::before{
    left:100%;
}

.service-card:hover{
    transform:translateY(-15px);
    box-shadow:
        0 25px 50px rgba(79,70,229,.20);
}

.service-card .icon{
    transition:all .5s ease;
}

.service-card:hover .icon{
    transform:scale(1.2) rotate(10deg);
}

.service-card h5{
    transition:.3s;
}

.service-card:hover h5{
    color:var(--primary);
}
.services-section{
    position:relative;
    background:#fff;
}

.services-section::before{
    content:'';
    position:absolute;
    width:400px;
    height:400px;
    background:rgba(79,70,229,.05);
    border-radius:50%;
    filter:blur(100px);
    top:0;
    right:0;
}
.section-title{
    position:relative;
}

.section-title::after{
    content:'';
    display:block;
    width:80px;
    height:4px;
    margin:15px auto 0;
    border-radius:20px;
    background:var(--gradient);
}
/* ==========================
   CTA SECTION ANIMATION
========================== */

.cta-section{
    position:relative;
    overflow:hidden;
    background:linear-gradient(
        -45deg,
        #4f46e5,
        #7c3aed,
        #22d3ee,
        #4f46e5
    ) !important;
    background-size:400% 400%;
    animation:ctaGradient 12s ease infinite;
}

@keyframes ctaGradient{
    0%{background-position:0% 50%;}
    50%{background-position:100% 50%;}
    100%{background-position:0% 50%;}
}

/* Floating Glow */
.cta-section::before{
    content:'';
    position:absolute;
    width:300px;
    height:300px;
    border-radius:50%;
    background:rgba(255,255,255,.12);
    filter:blur(80px);
    top:-120px;
    left:-80px;
    animation:floatGlow1 8s ease-in-out infinite;
}

.cta-section::after{
    content:'';
    position:absolute;
    width:250px;
    height:250px;
    border-radius:50%;
    background:rgba(255,255,255,.10);
    filter:blur(80px);
    bottom:-100px;
    right:-80px;
    animation:floatGlow2 10s ease-in-out infinite;
}

@keyframes floatGlow1{
    0%,100%{
        transform:translateY(0);
    }
    50%{
        transform:translateY(40px);
    }
}

@keyframes floatGlow2{
    0%,100%{
        transform:translateY(0);
    }
    50%{
        transform:translateY(-40px);
    }
}

/* Content Animation */

.cta-section h2{
    animation:fadeUp 1s ease;
}

.cta-section p{
    animation:fadeUp 1.3s ease;
}

.cta-section .btn{
    animation:fadeUp 1.6s ease;
    transition:.4s;
}

.cta-section .btn:hover{
    transform:translateY(-5px) scale(1.05);
    box-shadow:0 15px 35px rgba(0,0,0,.25);
}
/* ==========================
   ABOUT PAGE ANIMATIONS
========================== */

.about-section{
    position:relative;
    overflow:hidden;
}

.about-section::before{
    content:'';
    position:absolute;
    width:350px;
    height:350px;
    background:rgba(79,70,229,.05);
    border-radius:50%;
    filter:blur(100px);
    top:-100px;
    right:-100px;
}

/* Founder */

.founder-section{
    background:var(--light);
    position:relative;
    overflow:hidden;
}

.founder-img{
    transition:.5s;
    animation:floatFounder 5s ease-in-out infinite;
}

@keyframes floatFounder{
    0%,100%{
        transform:translateY(0);
    }
    50%{
        transform:translateY(-15px);
    }
}

.founder-img:hover{
    transform:scale(1.05);
}

/* Team */

.team-card{
    transition:.4s;
}

.team-card:hover{
    transform:translateY(-15px);
    box-shadow:0 25px 50px rgba(79,70,229,.25);
}

.team-img{
    transition:.4s;
}

.team-card:hover .team-img{
    transform:scale(1.1);
}

/* Social Icons */

.founder-section a{
    transition:.3s;
    display:inline-block;
}

.founder-section a:hover{
    transform:translateY(-5px);
    color:var(--primary);
}

/* Mobile */

@media(max-width:768px){

    .founder-img{
        animation:none;
    }

    .team-card:hover{
        transform:translateY(-5px);
    }
}
.client-logo{
    background:#fff;
    border-radius:15px;
    padding:20px;
    text-align:center;
    transition:.3s ease;
    height:100%;
}

.client-logo:hover{
    transform:translateY(-5px);
    box-shadow:0 10px 25px rgba(0,0,0,.1);
}

.client-logo img{
    max-width:100%;
    max-height:70px;
    object-fit:contain;
    transition:.3s ease;
}

.client-logo:hover img{
    transform:scale(1.05);
}