:root{
  --im-primary:#0EA5E9;
  --im-primary-2:#7C3AED;
  --im-dark:#0F172A;
  --im-muted:#64748B;
  --im-bg:#0B1220;
  --im-card:#0F1A2F;
  --im-border:rgba(148,163,184,.22);
}

html{scroll-behavior:smooth;}
body{
  font-family:Poppins, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--im-dark);
}

/* Utility */
.text-muted-2{color:var(--im-muted)!important;}
.bg-soft{background:linear-gradient(180deg, rgba(14,165,233,.10), rgba(124,58,237,.06));}
.bg-grid{
  background-image:
    radial-gradient(circle at 1px 1px, rgba(148,163,184,.25) 1px, transparent 0);
  background-size:18px 18px;
}
.shadow-soft{box-shadow:0 18px 50px rgba(2,6,23,.12);}
.border-soft{border:1px solid rgba(148,163,184,.22)!important;}
.rounded-2xl{border-radius:18px;}
.btn-gradient{
  border:0;
  color:#fff;
  background:linear-gradient(90deg, var(--im-primary), var(--im-primary-2));
}
.btn-gradient:hover{filter:brightness(.98);}
.badge-gradient{
  color:#fff;
  background:linear-gradient(90deg, var(--im-primary), var(--im-primary-2));
}

/* Navbar */
.navbar{
  transition:all .2s ease;
}
.navbar.im-nav{
  background:rgba(255,255,255,.78);
  backdrop-filter: blur(10px);
  border-bottom:1px solid rgba(148,163,184,.18);
}
.navbar .nav-link{
  font-weight:600;
  color:#0b1220;
}
.navbar .nav-link.active,
.navbar .nav-link:hover{
  color:var(--im-primary);
}
.navbar-brand img{height:40px;}

/* Hero */
.hero{
  position:relative;
  overflow:hidden;
}
.hero .hero-card{
  background:rgba(255,255,255,.9);
  border:1px solid rgba(148,163,184,.18);
}
.hero .hero-photo{
  border-radius:22px;
  border:1px solid rgba(148,163,184,.20);
  box-shadow:0 24px 60px rgba(2,6,23,.16);
}
.hero::before{
  content:"";
  position:absolute;
  inset:-40% -20% auto -30%;
  height:520px;
  background:radial-gradient(circle at 20% 20%, rgba(14,165,233,.26), transparent 55%),
             radial-gradient(circle at 60% 40%, rgba(124,58,237,.20), transparent 56%);
  filter: blur(10px);
  pointer-events:none;
}

/* Sections */
.section{
  padding:72px 0;
}
.section-title{
  letter-spacing:-0.02em;
}
.kpi{
  border:1px solid rgba(148,163,184,.20);
  background:#fff;
}
.service-card{
  height:100%;
  background:#fff;
  border:1px solid rgba(148,163,184,.20);
  transition:transform .15s ease, box-shadow .15s ease;
}
.service-card:hover{
  transform: translateY(-2px);
  box-shadow:0 20px 50px rgba(2,6,23,.12);
}
.icon-pill{
  width:44px;height:44px;
  display:grid;place-items:center;
  border-radius:12px;
  background:rgba(14,165,233,.12);
  border:1px solid rgba(14,165,233,.18);
  color:var(--im-primary);
}

/* Blog */
.blog-card{
  height:100%;
  border:1px solid rgba(148,163,184,.20);
  background:#fff;
  overflow:hidden;
}
.blog-card img{object-fit:cover; height:210px; width:100%;}
.blog-hero{
  border:1px solid rgba(148,163,184,.20);
  border-radius:22px;
  overflow:hidden;
}
.blog-hero img{width:100%; height:340px; object-fit:cover;}
.prose h2{font-size:1.35rem; margin-top:1.4rem;}
.prose p{color:#0f172a; opacity:.92; line-height:1.8;}

/* Contact */
.contact-card{
  background:#fff;
  border:1px solid rgba(148,163,184,.20);
}
.form-control, .form-select{
  border-radius:12px;
  border:1px solid rgba(148,163,184,.28);
}
.form-control:focus, .form-select:focus{
  border-color: rgba(14,165,233,.55);
  box-shadow:0 0 0 .2rem rgba(14,165,233,.12);
}

/* Footer */
footer{
  background:linear-gradient(180deg, #0B1220, #070B14);
  color:#E2E8F0;
}
footer a{color:#E2E8F0; text-decoration:none;}
footer a:hover{color:#fff; text-decoration:underline;}
.footer-top{
  border-top:1px solid rgba(148,163,184,.18);
  border-bottom:1px solid rgba(148,163,184,.18);
}
.footer-badge{
  border:1px solid rgba(148,163,184,.22);
  border-radius:999px;
  padding:.35rem .65rem;
  display:inline-flex;
  gap:.5rem;
  align-items:center;
}

/* Back to top */
.back-to-top{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:1030;
  opacity:0;
  transform:translateY(8px);
  pointer-events:none;
  transition:all .18s ease;
}
.back-to-top.show{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}

/* Small tweaks */
@media (max-width: 991.98px){
  .section{padding:56px 0;}
  .blog-hero img{height:260px;}
}
