:root{
  --primary:#0B5ED7;
  --secondary:#00B894;
  --accent:#FFC107;
  --bg-light:#F8F9FA;
  --dark:#101828;
  --radius:16px;
}

*{font-family:'Poppins',sans-serif;}
body{background:var(--bg-light); color:#2c2c2c;}

a{text-decoration:none;}
.text-primary{color:var(--primary) !important;}
.text-success{color:var(--secondary) !important;}
.bg-primary{background:var(--primary) !important;}

/* Top bar */
.top-bar{background:var(--dark); color:#fff;}

/* Navbar */
.navbar .nav-link{font-weight:500; color:#333; margin:0 4px;}
.navbar .nav-link.active, .navbar .nav-link:hover{color:var(--primary);}
.btn-primary{background:var(--primary); border-color:var(--primary);}
.btn-primary:hover{background:#094bb0; border-color:#094bb0;}

/* Hero / banner slider */
.hero-slide{
  min-height:520px; display:flex; align-items:center;
  background-size:cover; background-position:center;
  position:relative; color:#fff;
}
.hero-slide::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(11,94,215,.85) 20%, rgba(11,94,215,.35) 100%);
}
.hero-slide .container{position:relative; z-index:2;}
.hero-slide h1{font-size:2.6rem; font-weight:800;}

/* Cards */
.card-soft{
  background:#fff; border:none; border-radius:var(--radius);
  box-shadow:0 6px 24px rgba(16,24,40,.06);
  transition:transform .25s ease, box-shadow .25s ease;
  height:100%;
}
.card-soft:hover{transform:translateY(-6px); box-shadow:0 14px 32px rgba(16,24,40,.12);}

.service-icon{
  width:64px; height:64px; border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(11,94,215,.1); color:var(--primary); font-size:26px;
}

.section-title{font-weight:800; letter-spacing:-.5px;}
.section-sub{color:#667085; max-width:640px; margin:0 auto;}

/* Counters */
.counter-box{background:#fff; border-radius:var(--radius); padding:2rem 1rem; box-shadow:0 6px 24px rgba(16,24,40,.06);}
.counter-number{font-size:2.2rem; font-weight:800; color:var(--primary);}

/* Process timeline */
.process-step{
  background:#fff; border-radius:var(--radius); padding:1.75rem;
  box-shadow:0 6px 24px rgba(16,24,40,.06); position:relative; height:100%;
}
.process-step .step-num{
  width:42px; height:42px; border-radius:50%; background:var(--secondary); color:#fff;
  display:flex; align-items:center; justify-content:center; font-weight:700; margin-bottom:1rem;
}

/* Testimonials */
.testimonial-card{background:#fff; border-radius:var(--radius); padding:2rem; box-shadow:0 6px 24px rgba(16,24,40,.06);}
.testimonial-card .stars{color:var(--accent);}

/* CTA banner */
.cta-banner{background:linear-gradient(120deg, var(--primary), #063e94);}

/* Footer */
.footer-dark{background:var(--dark);}
.footer-link{color:#b7c0cd; transition:color .2s;}
.footer-link:hover{color:#fff;}

/* Floating buttons */
.float-btn{
  position:fixed; right:22px; width:52px; height:52px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:#fff; font-size:22px;
  box-shadow:0 8px 20px rgba(0,0,0,.2); z-index:1050; border:none;
}
.whatsapp-btn{background:#25D366; bottom:96px;}
.call-btn{background:var(--primary); bottom:26px;}
.back-top-btn{background:var(--dark); bottom:166px; display:none;}

/* Gallery / samples */
.gallery-item img{border-radius:12px; cursor:pointer; transition:transform .3s;}
.gallery-item:hover img{transform:scale(1.03);}
.filter-btn{border-radius:30px; margin:0 4px 8px; border:1px solid #dcdfe6; background:#fff;}
.filter-btn.active, .filter-btn:hover{background:var(--primary); color:#fff; border-color:var(--primary);}

/* Service detail */
.service-banner{border-radius:var(--radius); overflow:hidden; min-height:280px; background-size:cover; background-position:center;}

/* FAQ */
.accordion-button:not(.collapsed){background:rgba(11,94,215,.08); color:var(--primary);}

/* Lightbox overlay (vanilla JS) */
.lightbox-overlay{
  position:fixed; inset:0; background:rgba(0,0,0,.9); z-index:2000;
  display:flex; align-items:center; justify-content:center; flex-direction:column;
}
.lightbox-overlay img{max-width:90%; max-height:80vh; border-radius:8px;}
.lightbox-close{position:absolute; top:20px; right:30px; color:#fff; font-size:36px; cursor:pointer;}
.lightbox-download{margin-top:16px; color:#fff; background:var(--primary); padding:8px 18px; border-radius:8px;}

/* Utilities */
.rounded-xl{border-radius:var(--radius) !important;}
.shadow-soft{box-shadow:0 6px 24px rgba(16,24,40,.06) !important;}
