:root{
  --njs-bg-1:#040817;
  --njs-bg-2:#071230;
  --njs-bg-3:#101a46;
  --njs-panel:rgba(8,18,55,.78);
  --njs-panel-2:rgba(10,22,67,.92);
  --njs-border:rgba(255,255,255,.10);
  --njs-border-strong:rgba(125,110,255,.32);
  --njs-text:#f4f7ff;
  --njs-text-soft:#cdd7fb;
  --njs-text-muted:#9fb0e8;
  --njs-purple:#7a5cff;
  --njs-purple-2:#b44cff;
  --njs-blue:#4b7bff;
  --njs-green:#2fe37c;
  --njs-shadow-lg:0 28px 80px rgba(0,0,0,.30);
  --njs-shadow-md:0 16px 40px rgba(0,0,0,.22);
  --njs-radius-xl:28px;
  --njs-radius-lg:22px;
  --njs-radius-md:16px;
  --njs-max:1320px;
}

html{
  scroll-behavior:smooth;
}

body{
  color:var(--njs-text);
  background:
    radial-gradient(circle at 12% 18%, rgba(88,108,255,.16), transparent 26%),
    radial-gradient(circle at 84% 12%, rgba(180,76,255,.14), transparent 22%),
    radial-gradient(circle at 72% 72%, rgba(55,95,255,.10), transparent 22%),
    linear-gradient(180deg, var(--njs-bg-1) 0%, var(--njs-bg-2) 48%, #06112f 100%);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  position:relative;
  overflow-x:hidden;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:0;
  opacity:.45;
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size:120px 120px;
  mask-image:radial-gradient(circle at center, rgba(0,0,0,.9), transparent 88%);
}

body > *{
  position:relative;
  z-index:1;
}

::selection{
  background:rgba(122,92,255,.35);
  color:#fff;
}

img{
  max-width:100%;
  height:auto;
}

header, .site-header, .main-header, .topbar, .navbar, nav.primary, .header-wrap{
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  background:linear-gradient(180deg, rgba(4,10,32,.86), rgba(3,9,28,.88)) !important;
  border-bottom:1px solid rgba(255,255,255,.08);
  box-shadow:0 10px 30px rgba(0,0,0,.16);
}

header a, .site-header a, .navbar a, nav a{
  transition:all .18s ease;
}

header a:hover, .site-header a:hover, .navbar a:hover, nav a:hover{
  color:#fff;
  text-shadow:0 0 18px rgba(122,92,255,.25);
}

header .logo img,
.site-logo img,
.brand img,
.navbar-brand img,
.main-header img:first-child,
header a img,
nav a img{
  width:auto !important;
  height:auto !important;
  max-height:56px !important;
  object-fit:contain !important;
  transform:none !important;
  filter:none !important;
  box-shadow:none !important;
  border-radius:12px;
}

main, .page-wrap, .site-wrap, .content-wrap, .container, .section-inner{
  position:relative;
}

.container, .wrap, .content-wrap, .section-inner, .njs-projects-hardfix{
  max-width:var(--njs-max);
}

h1, h2, h3, h4, h5, h6{
  color:#f7f9ff;
  letter-spacing:-.03em;
  line-height:1.05;
  text-wrap:balance;
}

h1{
  font-size:clamp(40px, 6vw, 86px);
  font-weight:900;
}

h2{
  font-size:clamp(30px, 4.1vw, 64px);
  font-weight:850;
}

h3{
  font-size:clamp(22px, 2vw, 30px);
  font-weight:800;
}

p, li{
  color:var(--njs-text-soft);
  line-height:1.75;
}

small, .muted, .text-muted{
  color:var(--njs-text-muted) !important;
}

section{
  scroll-margin-top:110px;
}

.hero,
.hero-section,
.banner,
.page-hero,
.intro-hero{
  position:relative;
}

.hero::after,
.hero-section::after,
.banner::after,
.page-hero::after{
  content:"";
  position:absolute;
  inset:auto -8% -12% auto;
  width:42vw;
  height:42vw;
  min-width:280px;
  min-height:280px;
  max-width:560px;
  max-height:560px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(122,92,255,.18), transparent 64%);
  filter:blur(20px);
  pointer-events:none;
  z-index:0;
}

.hero > *,
.hero-section > *,
.banner > *,
.page-hero > *{
  position:relative;
  z-index:1;
}

.card,
.box,
.panel,
.tile,
.widget,
.service-card,
.project-card,
.feature-card,
.njs-card,
.njs-home-card,
article.card,
article[class*="card"],
div[class*="card"]{
  border:1px solid var(--njs-border);
  border-radius:var(--njs-radius-xl);
  background:
    linear-gradient(180deg, rgba(8,18,55,.88), rgba(6,15,42,.98));
  box-shadow:var(--njs-shadow-md);
  overflow:hidden;
}

.card:hover,
.box:hover,
.panel:hover,
.tile:hover,
.widget:hover,
.service-card:hover,
.project-card:hover,
.feature-card:hover,
.njs-card:hover,
.njs-home-card:hover{
  border-color:var(--njs-border-strong);
  box-shadow:0 24px 60px rgba(0,0,0,.28), 0 0 0 1px rgba(122,92,255,.10) inset;
}

.card img,
.box img,
.panel img,
.tile img,
.widget img,
.service-card img,
.project-card img,
.feature-card img,
.njs-card img,
.njs-home-card img{
  display:block;
}

.badge,
.tag,
.pill,
.label,
.section-badge,
.njs-home-card-tag,
.njs-home-projects-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 16px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.03);
  color:#dfe6ff;
  font-size:12px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}

a.button,
a.btn,
button,
input[type="submit"],
input[type="button"],
.cta,
.cta-btn,
.njs-home-card-cta,
.njs-card .cta{
  border:0;
  border-radius:999px;
  box-shadow:0 14px 34px rgba(71,81,255,.20);
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

a.button:hover,
a.btn:hover,
button:hover,
input[type="submit"]:hover,
input[type="button"]:hover,
.cta:hover,
.cta-btn:hover,
.njs-home-card-cta:hover,
.njs-card .cta:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 40px rgba(71,81,255,.26);
  filter:brightness(1.03);
}

a.button.secondary,
a.btn.secondary,
.btn-secondary{
  background:rgba(255,255,255,.04) !important;
  border:1px solid rgba(255,255,255,.10) !important;
  color:#fff !important;
  box-shadow:none !important;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="number"],
input[type="search"],
input[type="date"],
select,
textarea{
  width:100%;
  border:1px solid rgba(255,255,255,.10);
  border-radius:18px;
  background:rgba(7,18,54,.94);
  color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
  transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

input::placeholder,
textarea::placeholder{
  color:#93a6e2;
}

input:focus,
select:focus,
textarea:focus{
  outline:none;
  border-color:rgba(122,92,255,.55);
  box-shadow:0 0 0 4px rgba(122,92,255,.15);
  background:rgba(9,22,63,.98);
}

table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  overflow:hidden;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(7,18,54,.82);
}

th, td{
  border-bottom:1px solid rgba(255,255,255,.06);
  color:var(--njs-text-soft);
}

th{
  color:#fff;
  background:rgba(255,255,255,.03);
}

footer,
.site-footer{
  border-top:1px solid rgba(255,255,255,.08);
  background:linear-gradient(180deg, rgba(5,10,30,.72), rgba(4,9,25,.95)) !important;
}

footer a,
.site-footer a{
  color:#d7e0ff;
}

footer a:hover,
.site-footer a:hover{
  color:#fff;
}

nav ul, .menu, .navbar-nav{
  list-style:none;
}

nav li, .menu li, .navbar-nav li{
  position:relative;
}

nav li > ul,
nav li > .sub-menu,
nav li > .dropdown-menu,
.menu li > ul,
.menu li > .sub-menu,
.menu li > .dropdown-menu,
.navbar-nav li > ul,
.navbar-nav li > .sub-menu,
.navbar-nav li > .dropdown-menu{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(10px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
  background:linear-gradient(180deg, rgba(7,18,55,.96), rgba(5,14,42,.98));
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  box-shadow:0 22px 55px rgba(0,0,0,.28);
  overflow:hidden;
}

nav li:hover > ul,
nav li:hover > .sub-menu,
nav li:hover > .dropdown-menu,
nav li:focus-within > ul,
nav li:focus-within > .sub-menu,
nav li:focus-within > .dropdown-menu,
.menu li:hover > ul,
.menu li:hover > .sub-menu,
.menu li:hover > .dropdown-menu,
.menu li:focus-within > ul,
.menu li:focus-within > .sub-menu,
.menu li:focus-within > .dropdown-menu,
.navbar-nav li:hover > ul,
.navbar-nav li:hover > .sub-menu,
.navbar-nav li:hover > .dropdown-menu,
.navbar-nav li:focus-within > ul,
.navbar-nav li:focus-within > .sub-menu,
.navbar-nav li:focus-within > .dropdown-menu{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}

nav li > ul a,
nav li > .sub-menu a,
nav li > .dropdown-menu a,
.menu li > ul a,
.menu li > .sub-menu a,
.menu li > .dropdown-menu a,
.navbar-nav li > ul a,
.navbar-nav li > .sub-menu a,
.navbar-nav li > .dropdown-menu a{
  display:block;
  white-space:nowrap;
  color:#eef2ff;
}

nav li > ul a:hover,
nav li > .sub-menu a:hover,
nav li > .dropdown-menu a:hover,
.menu li > ul a:hover,
.menu li > .sub-menu a:hover,
.menu li > .dropdown-menu a:hover,
.navbar-nav li > ul a:hover,
.navbar-nav li > .sub-menu a:hover,
.navbar-nav li > .dropdown-menu a:hover{
  background:rgba(255,255,255,.04);
}

.njs-projects-hardfix .njs-card .media,
.njs-home-projects .njs-home-card-media{
  background:
    radial-gradient(circle at top right, rgba(180,76,255,.12), transparent 34%),
    linear-gradient(135deg,#0c183f,#151442 58%,#2e1d67);
}

.njs-projects-hardfix .njs-card .body,
.njs-home-projects .njs-home-card-body{
  padding:22px;
}

.njs-projects-hardfix .njs-card h3,
.njs-home-projects .njs-home-card-title{
  margin-bottom:10px;
}

.njs-projects-hardfix .njs-card .cta,
.njs-home-projects .njs-home-card-cta{
  background:linear-gradient(90deg, var(--njs-blue), var(--njs-purple-2));
}

a[href*="wa.me"],
a[href*="whatsapp"],
.whatsapp-btn,
.whatsapp,
.whatsapp-float{
  box-shadow:0 16px 40px rgba(47,227,124,.25) !important;
}

.progress, .line, .divider{
  border-color:rgba(255,255,255,.08);
}

blockquote{
  margin:0;
  padding:22px 24px;
  border-left:4px solid rgba(122,92,255,.55);
  border-radius:20px;
  background:rgba(255,255,255,.03);
  color:#e6edff;
}

hr{
  border:0;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.14), transparent);
}

::-webkit-scrollbar{
  width:12px;
  height:12px;
}

::-webkit-scrollbar-track{
  background:#08112d;
}

::-webkit-scrollbar-thumb{
  border-radius:999px;
  background:linear-gradient(180deg,#3b6cff,#9a4dff);
  border:2px solid #08112d;
}

@media (max-width:1024px){
  h1{font-size:clamp(36px, 7vw, 64px)}
  h2{font-size:clamp(28px, 5vw, 48px)}
  header .logo img,
  .site-logo img,
  .brand img,
  .navbar-brand img,
  .main-header img:first-child,
  header a img,
  nav a img{
    max-height:50px !important;
  }
}

@media (max-width:768px){
  body::before{opacity:.28}
  h1{font-size:clamp(32px, 11vw, 52px)}
  h2{font-size:clamp(26px, 8vw, 40px)}
  p, li{line-height:1.7}
  header .logo img,
  .site-logo img,
  .brand img,
  .navbar-brand img,
  .main-header img:first-child,
  header a img,
  nav a img{
    max-height:42px !important;
  }
  nav li > ul,
  nav li > .sub-menu,
  nav li > .dropdown-menu,
  .menu li > ul,
  .menu li > .sub-menu,
  .menu li > .dropdown-menu,
  .navbar-nav li > ul,
  .navbar-nav li > .sub-menu,
  .navbar-nav li > .dropdown-menu{
    transform:none;
  }
}

@media (max-width:520px){
  .card,
  .box,
  .panel,
  .tile,
  .widget,
  .service-card,
  .project-card,
  .feature-card,
  .njs-card,
  .njs-home-card,
  article.card,
  article[class*="card"],
  div[class*="card"]{
    border-radius:22px;
  }
}
