:root{
  --bg:#07111F; --surface:#0D1B2A; --surface2:#0F172A; --panel:#0B1A2E;
  --ink:#F1F5F9; --muted:#94A3B8; --faint:#64748B;
  --accent:#2563EB; --cyan:#00D4FF; --royal:#1E3A8A; --deep:#081A33;
  --line:rgba(148,163,184,.14); --line2:rgba(148,163,184,.08);
  --grad:linear-gradient(90deg,#2563EB 0%,#00D4FF 100%);
  --grad-d:linear-gradient(135deg,#1E3A8A 0%,#2563EB 55%,#00D4FF 120%);
  --glow:0 0 40px rgba(37,99,235,.35);
  --r-sm:10px; --r-md:18px; --r-lg:26px; --pill:999px;
  --mw:1200px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg); color:var(--ink);
  font-family:"DM Sans",system-ui,sans-serif; font-weight:400;
  line-height:1.65; -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
h1,h2,h3,h4{font-weight:700;line-height:1.06;letter-spacing:-.02em}
p{color:var(--muted)}
.wrap{max-width:var(--mw);margin:0 auto;padding:0 28px}
.sec{padding:clamp(64px,9vw,120px) 0;position:relative}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan)}
.eyebrow::before{content:"";width:26px;height:1px;background:linear-gradient(90deg,transparent,var(--cyan))}
.eyebrow.c::before{display:none}
.lead{font-size:clamp(16px,1.15vw,18px);color:var(--muted);max-width:60ch}
.sec-head{max-width:720px;margin-bottom:52px}
.sec-head h2{font-size:clamp(30px,4.6vw,52px);margin:16px 0 18px}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:15px;padding:15px 28px;border-radius:var(--pill);border:1px solid transparent;cursor:pointer;transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .3s,background .3s;white-space:nowrap}
.btn svg{width:17px;height:17px;transition:transform .3s}
.btn-primary{background:var(--grad);color:#fff;box-shadow:0 8px 30px rgba(37,99,235,.35)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 44px rgba(0,212,255,.4)}
.btn-primary:hover svg{transform:translateX(4px)}
.btn-ghost{background:rgba(255,255,255,.02);color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:rgba(0,212,255,.5);background:rgba(0,212,255,.05);transform:translateY(-2px)}
.btn-ghost:hover svg{transform:translateX(4px)}

/* header */
header{position:fixed;top:0;left:0;right:0;z-index:100;transition:.35s}
.nav{display:flex;align-items:center;justify-content:space-between;padding:16px 28px;max-width:1360px;margin:0 auto}
header.scrolled{background:rgba(7,17,31,.82);backdrop-filter:blur(18px);border-bottom:1px solid var(--line2)}
.logo{height:28px;width:auto;max-width:150px}
.menu{display:flex;align-items:center;gap:30px;list-style:none}
.menu a{font-size:14.5px;font-weight:500;color:#cbd5e1;transition:.2s;position:relative;padding:6px 0}
.menu a:hover{color:#fff}
.menu .has::after{content:"";display:inline-block;width:6px;height:6px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg) translateY(-2px);margin-left:7px;opacity:.7}
.nav-right{display:flex;align-items:center;gap:18px}
.mega{position:absolute;top:64px;left:50%;transform:translateX(-50%) translateY(10px);width:min(920px,92vw);background:rgba(11,22,38,.97);backdrop-filter:blur(20px);border:1px solid var(--line);border-radius:var(--r-md);padding:26px;opacity:0;visibility:hidden;transition:.3s;box-shadow:0 30px 80px rgba(0,0,0,.5);display:grid;grid-template-columns:repeat(4,1fr);gap:10px 26px;z-index:100}
.has-mega{position:relative}
.has-mega:hover .mega{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.mega-col h5{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);margin-bottom:12px;font-weight:600}
.mega-col a{display:block;font-size:13.5px;color:#cbd5e1;padding:6px 0;transition:.2s}
.mega-col a:hover{color:#fff;transform:translateX(3px)}
.burger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:0;padding:6px}
.burger span{width:24px;height:2px;background:#fff;border-radius:2px;transition:.3s}

/* hero */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;padding-top:120px;overflow:hidden}
.hero-grid-bg{position:absolute;inset:0;background-image:linear-gradient(var(--line2) 1px,transparent 1px),linear-gradient(90deg,var(--line2) 1px,transparent 1px);background-size:56px 56px;mask-image:radial-gradient(ellipse 80% 60% at 60% 40%,#000 30%,transparent 75%);opacity:.6}
.hero-glow{position:absolute;width:720px;height:720px;right:-120px;top:8%;background:radial-gradient(circle,rgba(37,99,235,.28),rgba(0,212,255,.12) 40%,transparent 66%);filter:blur(20px);pointer-events:none;animation:breathe 9s ease-in-out infinite}
.hero-inner{position:relative;z-index:5;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:40px;width:100%;max-width:1300px;margin:0 auto;padding:0 28px}
.hero h1{font-size:clamp(42px,6.4vw,84px);margin:22px 0 22px}
.hero .lead{font-size:clamp(17px,1.3vw,20px);margin-bottom:34px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:40px}
.trust-chips{display:flex;gap:10px;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:#cbd5e1;background:rgba(255,255,255,.03);border:1px solid var(--line);padding:9px 15px;border-radius:var(--pill)}
.chip i{width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px var(--cyan);display:inline-block}

/* hero visual */
.hero-visual{position:relative;height:520px}
.orb{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:230px;height:230px;border-radius:50%;background:radial-gradient(circle at 34% 30%,#7cc7ff,#2563EB 42%,#0A2463 78%);box-shadow:0 0 90px rgba(37,99,235,.55),inset -18px -18px 60px rgba(3,10,25,.75),inset 12px 12px 40px rgba(124,199,255,.35);animation:float 7s ease-in-out infinite}
.orb::after{content:"";position:absolute;top:20%;left:24%;width:60px;height:36px;background:radial-gradient(circle,rgba(255,255,255,.55),transparent 70%);border-radius:50%;filter:blur(4px)}
.ring{position:absolute;top:50%;left:50%;border-radius:50%;border:1px solid rgba(0,212,255,.22);transform:translate(-50%,-50%)}
.ring.r1{width:320px;height:320px;animation:spin 26s linear infinite}
.ring.r2{width:430px;height:430px;border-style:dashed;border-color:rgba(37,99,235,.25);animation:spin 40s linear infinite reverse}
.ring.r3{width:540px;height:540px;border-color:rgba(148,163,184,.1)}
.node{position:absolute;width:11px;height:11px;border-radius:50%;background:var(--cyan);box-shadow:0 0 14px var(--cyan)}
.gpanel{position:absolute;background:rgba(13,27,42,.72);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:0 20px 50px rgba(0,0,0,.4)}
.gpanel .lbl{font-size:11px;color:var(--muted);letter-spacing:.05em}
.gpanel .val{font-size:20px;font-weight:700;color:#fff;margin-top:2px}
.gpanel .val small{color:var(--cyan);font-size:13px;font-weight:600}
.p1{top:8%;left:-4%;animation:float 6s ease-in-out infinite}
.p2{bottom:10%;right:-6%;animation:float 7.5s ease-in-out infinite .6s}
.spark{width:96px;height:34px;margin-top:8px;display:block}

/* marquee / positioning */
.posbar{border-top:1px solid var(--line2);border-bottom:1px solid var(--line2);background:var(--surface2)}
.posbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-top:26px;padding-bottom:26px}
.posbar .pi{font-weight:600;font-size:clamp(15px,1.5vw,19px);color:#e2e8f0;display:flex;align-items:center;gap:14px}
.posbar .plus{color:var(--cyan);font-weight:700}

/* about */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.cap-list{display:grid;gap:14px}
.cap{display:flex;gap:16px;align-items:flex-start;padding:18px 20px;border:1px solid var(--line);border-radius:var(--r-sm);background:rgba(255,255,255,.02);transition:.3s}
.cap:hover{border-color:rgba(0,212,255,.35);transform:translateX(4px)}
.cap .ic{flex:0 0 40px;height:40px;border-radius:10px;background:var(--grad-d);display:grid;place-items:center}
.cap .ic svg{width:20px;height:20px;stroke:#fff}
.cap h4{font-size:16px;margin-bottom:3px}
.cap p{font-size:13.5px;line-height:1.5}

/* services */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.svc{position:relative;padding:28px 26px;border:1px solid var(--line);border-radius:var(--r-md);background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.005));overflow:hidden;transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s;display:flex;flex-direction:column;min-height:210px}
.svc::before{content:"";position:absolute;inset:0;background:radial-gradient(400px circle at var(--mx,50%) var(--my,0%),rgba(0,212,255,.1),transparent 60%);opacity:0;transition:.4s}
.svc:hover{transform:translateY(-6px);border-color:rgba(0,212,255,.4)}
.svc:hover::before{opacity:1}
.svc .num{font-size:12px;color:var(--faint);font-weight:600;letter-spacing:.1em}
.svc .sic{width:44px;height:44px;border-radius:11px;background:rgba(37,99,235,.14);border:1px solid rgba(37,99,235,.3);display:grid;place-items:center;margin:12px 0 16px;transition:.35s}
.svc:hover .sic{transform:translateY(-3px) scale(1.05);background:var(--grad-d);border-color:transparent}
.svc .sic svg{width:22px;height:22px;stroke:var(--cyan);transition:.35s}
.svc:hover .sic svg{stroke:#fff}
.svc h3{font-size:18.5px;margin-bottom:7px}
.svc p{font-size:13.5px;line-height:1.5;flex:1}
.svc .arw{display:inline-flex;align-items:center;gap:7px;color:var(--cyan);font-size:13.5px;font-weight:600;margin-top:14px}
.svc .arw svg{width:15px;height:15px;transition:.3s}
.svc:hover .arw svg{transform:translateX(5px)}

/* why */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.why{padding:26px;border:1px solid var(--line);border-radius:var(--r-md);background:rgba(255,255,255,.02);transition:.3s}
.why:hover{border-color:rgba(37,99,235,.4);background:rgba(37,99,235,.05)}
.why .wn{font-size:13px;color:var(--cyan);font-weight:700;letter-spacing:.08em}
.why h4{font-size:18px;margin:12px 0 8px}
.why p{font-size:13.5px;line-height:1.55}

/* process timeline */
.timeline{display:grid;grid-template-columns:repeat(6,1fr);gap:0;position:relative;margin-top:20px}
.timeline::before{content:"";position:absolute;top:26px;left:6%;right:6%;height:2px;background:linear-gradient(90deg,var(--royal),var(--cyan))}
.step{position:relative;padding:0 12px;text-align:center}
.step .dot{width:54px;height:54px;border-radius:50%;background:var(--surface);border:1px solid rgba(0,212,255,.4);display:grid;place-items:center;margin:0 auto 18px;font-weight:700;color:var(--cyan);position:relative;z-index:2;transition:.35s}
.step:hover .dot{background:var(--grad-d);color:#fff;border-color:transparent;box-shadow:var(--glow);transform:scale(1.08)}
.step h4{font-size:16px;margin-bottom:6px}
.step p{font-size:12.5px;line-height:1.5}

/* case studies */
.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.case{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:var(--surface);transition:.35s}
.case:hover{transform:translateY(-5px);border-color:rgba(0,212,255,.35)}
.case .ch{height:150px;background:var(--grad-d);position:relative;display:grid;place-items:center;overflow:hidden}
.case .ch span{font-size:13px;color:rgba(255,255,255,.85);font-weight:600;letter-spacing:.05em;z-index:2}
.case .ch::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:26px 26px;opacity:.4}
.case .cb{padding:22px}
.case .tag{font-size:11px;color:var(--cyan);letter-spacing:.1em;text-transform:uppercase;font-weight:600}
.case h4{font-size:17px;margin:8px 0}
.case p{font-size:13px;line-height:1.5}
.ph-note{font-size:11.5px;color:var(--faint);margin-top:10px;font-style:italic}

/* capabilities */
.cap-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.ct{padding:26px;border:1px solid var(--line);border-radius:var(--r-md);background:rgba(255,255,255,.02);text-align:left}
.ct .ci{width:40px;height:40px;border-radius:10px;background:rgba(0,212,255,.1);display:grid;place-items:center;margin-bottom:16px}
.ct .ci svg{width:20px;height:20px;stroke:var(--cyan)}
.ct h4{font-size:16px;margin-bottom:6px}
.ct p{font-size:13px;line-height:1.5}

/* testimonials */
.tst-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.tst{padding:26px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}
.tst .q{font-size:15px;color:#e2e8f0;line-height:1.6;margin-bottom:20px}
.tst .who{display:flex;align-items:center;gap:12px}
.tst .av{width:42px;height:42px;border-radius:50%;background:var(--grad-d)}
.tst .who b{font-size:14px;display:block}
.tst .who span{font-size:12px;color:var(--faint)}

/* faq */
.faq-wrap{max-width:820px;margin:0 auto}
.faq{border-bottom:1px solid var(--line)}
.faq q{quotes:none;display:flex;justify-content:space-between;align-items:center;gap:20px;cursor:pointer;padding:22px 4px;font-size:17px;font-weight:600;color:#fff;font-style:normal}
.faq .ans{max-height:0;overflow:hidden;transition:max-height .4s ease;color:var(--muted)}
.faq .ans p{padding:0 4px 22px;font-size:14.5px;line-height:1.65}
.faq .pm{flex:0 0 auto;width:22px;height:22px;position:relative;transition:.3s}
.faq .pm::before,.faq .pm::after{content:"";position:absolute;background:var(--cyan);border-radius:2px}
.faq .pm::before{top:10px;left:2px;right:2px;height:2px}
.faq .pm::after{left:10px;top:2px;bottom:2px;width:2px;transition:.3s}
.faq.open .pm::after{transform:scaleY(0)}
.faq.open .ans{max-height:260px}

/* CTA band */
.cta-band{position:relative;overflow:hidden;border-radius:var(--r-lg);background:linear-gradient(135deg,#081A33,#0A2463 55%,#123B7A);border:1px solid rgba(0,212,255,.2);padding:clamp(44px,6vw,80px);text-align:center}
.cta-band::before{content:"";position:absolute;width:500px;height:500px;background:radial-gradient(circle,rgba(0,212,255,.22),transparent 65%);top:-40%;left:50%;transform:translateX(-50%)}
.cta-band h2{font-size:clamp(30px,4.6vw,54px);position:relative;margin-bottom:16px}
.cta-band p{color:#cbd5e1;font-size:18px;max-width:560px;margin:0 auto 32px;position:relative}
.cta-band .btn{position:relative}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.form-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:32px}
.form-card .fg{margin-bottom:16px}
.form-card label{font-size:13px;color:#cbd5e1;font-weight:500;display:block;margin-bottom:7px}
.form-card input,.form-card select{width:100%;background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-sm);padding:13px 15px;color:var(--ink);font-family:inherit;font-size:14.5px;transition:.25s}
.form-card input:focus,.form-card select:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(0,212,255,.15)}
.form-card .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.microcopy{font-size:12.5px;color:var(--faint);margin-top:14px;text-align:center}
.cinfo .ci-item{display:flex;gap:16px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line2)}
.cinfo .ci-ic{width:46px;height:46px;border-radius:12px;background:rgba(37,99,235,.12);border:1px solid rgba(37,99,235,.3);display:grid;place-items:center;flex:0 0 auto}
.cinfo .ci-ic svg{width:20px;height:20px;stroke:var(--cyan)}
.cinfo .ci-item b{font-size:15px;display:block}
.cinfo .ci-item span{font-size:13.5px;color:var(--muted)}

/* footer */
footer{background:var(--surface2);border-top:1px solid var(--line);padding:64px 0 30px}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;margin-bottom:44px}
.foot-brand .logo{height:28px;margin-bottom:18px}
.foot-brand p{font-size:13.5px;max-width:300px}
.foot-col h5{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:#fff;margin-bottom:16px}
.foot-col a{display:block;font-size:13.5px;color:var(--muted);padding:6px 0;transition:.2s}
.foot-col a:hover{color:var(--cyan)}
.foot-bottom{border-top:1px solid var(--line2);padding-top:24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--faint)}
.soc{display:flex;gap:10px}
.soc a{width:34px;height:34px;border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;transition:.25s}
.soc a:hover{border-color:var(--cyan);background:rgba(0,212,255,.08)}
.soc svg{width:16px;height:16px;fill:var(--muted)}

/* floating + sticky */
.float{position:fixed;right:20px;bottom:20px;z-index:90;display:flex;flex-direction:column;gap:12px}
.fbtn{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.4);transition:.25s}
.fbtn:hover{transform:scale(1.08)}
.fbtn.wa{background:#25D366}
.fbtn.call{background:var(--grad)}
.fbtn svg{width:24px;height:24px}
.msticky{display:none}

/* reveal */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}
@keyframes float{0%,100%{transform:translate(-50%,-50%)}50%{transform:translate(-50%,calc(-50% - 16px))}}
.p1,.p2{animation-name:floaty}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes breathe{0%,100%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}

/* responsive */
@media(max-width:1024px){
  .hero-inner,.about-grid,.contact-grid{grid-template-columns:1fr}
  .hero-visual{height:400px;margin-top:10px;order:-1;display:none}
  .svc-grid,.why-grid,.cap-strip,.tst-grid,.case-grid{grid-template-columns:repeat(2,1fr)}
  .timeline{grid-template-columns:1fr;gap:8px}
  .timeline::before{display:none}
  .step{display:flex;gap:16px;text-align:left;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line2)}
  .step .dot{margin:0}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:680px){
  .menu,.nav-right .btn{display:none}
  .burger{display:flex}
  .svc-grid,.why-grid,.cap-strip,.tst-grid,.case-grid,.form-card .row,.foot-grid{grid-template-columns:1fr}
  .posbar .wrap{justify-content:flex-start}
  .float{bottom:76px}
  .msticky{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:95;background:rgba(7,17,31,.92);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:12px 16px}
  .msticky .btn{flex:1;justify-content:center}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}

/* ===== ELEMENTOR-NATIVE INTEGRATION ===== */
.elementor-widget{margin-block-end:0}
.e-con>.e-con-inner{padding:0}
.e-con,.e-con-inner{--gap:0px}
.nb-page .elementor-widget-container{margin:0}
.nb-h1 .elementor-heading-title{font-size:clamp(42px,6.4vw,84px);line-height:1.05;font-weight:700;letter-spacing:-.02em;color:#fff}
.nb-h2 .elementor-heading-title{font-size:clamp(30px,4.6vw,52px);line-height:1.06;font-weight:700;letter-spacing:-.02em;color:#fff}
.nb-h3 .elementor-heading-title{font-size:18.5px;font-weight:700;color:#fff}
.nb-eyebrow .elementor-heading-title{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan)}
.nb-eyebrow .elementor-heading-title::before{content:'';width:26px;height:1px;background:linear-gradient(90deg,transparent,var(--cyan))}
.nb-lead .elementor-widget-container{font-size:clamp(16px,1.15vw,18px);color:var(--muted);line-height:1.6;max-width:60ch}
.nb-body .elementor-widget-container{font-size:14.5px;color:var(--muted);line-height:1.65}
.nb-num .elementor-heading-title{font-size:12px;color:var(--faint);font-weight:600;letter-spacing:.1em}
.nb-btn-primary .elementor-button{background:var(--grad);color:#fff;border-radius:var(--pill);font-weight:600;font-size:15px;padding:15px 28px;box-shadow:0 8px 30px rgba(37,99,235,.35);transition:transform .25s,box-shadow .3s}
.nb-btn-primary .elementor-button:hover{transform:translateY(-2px);box-shadow:0 14px 44px rgba(0,212,255,.4)}
.nb-btn-ghost .elementor-button{background:rgba(255,255,255,.02);color:var(--ink);border:1px solid var(--line);border-radius:var(--pill);font-weight:600;font-size:15px;padding:14px 27px;transition:.25s}
.nb-btn-ghost .elementor-button:hover{border-color:rgba(0,212,255,.5);background:rgba(0,212,255,.05);transform:translateY(-2px)}
.nb-ncard{padding:28px 26px;border:1px solid var(--line);border-radius:var(--r-md);background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.005));transition:transform .35s,border-color .35s}
.nb-ncard:hover{transform:translateY(-6px);border-color:rgba(0,212,255,.4)}
.nb-sec-pad{padding:clamp(64px,9vw,120px) 0}
.nb-wrapc{max-width:1200px;margin:0 auto;padding:0 28px;width:100%}

/* ===== NB-CONTAINER-LAYOUT ===== */
.e-con.nb-sec{padding-block:clamp(64px,9vw,120px);width:100%}
.e-con.nb-secalt{background:var(--surface2)}
.e-con.nb-wrapc{max-width:1200px;margin-inline:auto;padding-inline:28px;flex-direction:column;align-items:flex-start;gap:0;width:100%}
.e-con.nb-center{align-items:center;text-align:center}
.e-con.nb-btnrow{flex-direction:row;flex-wrap:wrap;gap:14px;width:auto;margin-top:8px}
.e-con.nb-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;width:100%;margin-top:8px}
.e-con.nb-grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;width:100%;margin-top:8px}
.e-con.nb-grid2{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;width:100%;align-items:center}
.e-con.nb-ncard{padding:26px;border:1px solid var(--line);border-radius:var(--r-md);background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.005));flex-direction:column;align-items:flex-start;gap:0;transition:transform .35s,border-color .35s}
.e-con.nb-ncard:hover{transform:translateY(-6px);border-color:rgba(0,212,255,.4)}
.nb-mt8{margin-top:10px}.nb-mt16{margin-top:16px}.nb-mt24{margin-top:24px}
@media(max-width:1024px){.e-con.nb-grid3,.e-con.nb-grid4{grid-template-columns:repeat(2,1fr)}.e-con.nb-grid2{grid-template-columns:1fr;gap:32px}}
@media(max-width:680px){.e-con.nb-grid3,.e-con.nb-grid4{grid-template-columns:1fr}.e-con.nb-wrapc{padding-inline:20px}}

/* ===== NB-NATIVE-SUPPORT ===== */
.nb-herosec{position:relative;min-height:100vh;display:flex;align-items:center;padding-top:120px;overflow:hidden}
.nb-herosec::before{content:'';position:absolute;inset:0;background-image:linear-gradient(var(--line2) 1px,transparent 1px),linear-gradient(90deg,var(--line2) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 80% 60% at 60% 40%,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse 80% 60% at 60% 40%,#000 30%,transparent 75%);opacity:.6;pointer-events:none}
.nb-herosec::after{content:'';position:absolute;width:720px;height:720px;right:-120px;top:8%;background:radial-gradient(circle,rgba(37,99,235,.28),rgba(0,212,255,.12) 40%,transparent 66%);filter:blur(20px);pointer-events:none;animation:breathe 9s ease-in-out infinite}
.e-con.nb-herogrid{position:relative;z-index:5;display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;max-width:1300px;margin-inline:auto;padding-inline:28px;width:100%}
.e-con.nb-herocol,.e-con.nb-col{flex-direction:column;align-items:flex-start;gap:0}
.nb-hero-h1{font-size:clamp(42px,6.4vw,84px);line-height:1.05;font-weight:700;letter-spacing:-.02em;color:#fff;margin:22px 0}
.nb-hl{font-size:clamp(30px,4.6vw,52px);line-height:1.06;font-weight:700;letter-spacing:-.02em;color:#fff;margin-bottom:6px}
.nb-cardtop{display:flex;flex-direction:column;align-items:flex-start;width:100%}
.e-con.nb-ncard.nb-nopad{padding:0;overflow:hidden}
.e-con.nb-cardpad{padding:22px;flex-direction:column;align-items:flex-start;gap:0;width:100%}
.nb-note .elementor-widget-container{font-size:11.5px;color:var(--faint);font-style:italic}
.nb-quote .elementor-widget-container{font-size:15px;color:#e2e8f0;line-height:1.6}
.nb-headwrap,.nb-footwrap{width:100%}
.nb-herogrid .hero-visual{height:520px}
.sic{width:44px;height:44px;border-radius:11px;background:rgba(37,99,235,.14);border:1px solid rgba(37,99,235,.3);display:grid;place-items:center;margin:12px 0 16px;transition:.35s}
.sic svg{width:22px;height:22px;stroke:var(--cyan);transition:.35s}
.nb-ncard:hover .sic{transform:translateY(-3px) scale(1.05);background:var(--grad-d);border-color:transparent}
.nb-ncard:hover .sic svg{stroke:#fff}
.nb-cardtop .num{font-size:12px;color:var(--faint);font-weight:600;letter-spacing:.1em}
.arw{display:inline-flex;align-items:center;gap:7px;color:var(--cyan);font-size:13.5px;font-weight:600;margin-top:14px}
.nb-ncard:hover .arw svg{transform:translateX(5px)}
.wn{font-size:13px;color:var(--cyan);font-weight:700;letter-spacing:.08em}
.ch{height:150px;background:var(--grad-d);position:relative;display:grid;place-items:center;overflow:hidden;width:100%;border-radius:var(--r-md) var(--r-md) 0 0}
.ch span{font-size:13px;color:rgba(255,255,255,.9);font-weight:600;letter-spacing:.05em;z-index:2}
.ch::after{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:26px 26px;opacity:.4}
.tag{font-size:11px;color:var(--cyan);letter-spacing:.1em;text-transform:uppercase;font-weight:600}
.ci{width:40px;height:40px;border-radius:10px;background:rgba(0,212,255,.1);display:grid;place-items:center}
.who{display:flex;align-items:center;gap:12px}.who .av{width:42px;height:42px;border-radius:50%;background:var(--grad-d);flex:0 0 auto}.who b{font-size:14px;display:block;color:#fff}.who span{font-size:12px;color:var(--faint)}
@media(max-width:1024px){.e-con.nb-herogrid{grid-template-columns:1fr}.nb-herogrid .hero-visual{display:none}}

/* ===== NB-SPACING-FIX ===== */
.elementor-widget:not(:last-child){margin-block-end:0}
.elementor-widget-container{margin:0}
.e-con>.e-con-inner{gap:0}
.nb-herosec .elementor-widget{width:auto}
.e-con.nb-btnrow .elementor-widget-button{width:auto}

/* ===== NB-FIXES-1 ===== */
.reveal{opacity:1;transform:none}
.nb-btn-ghost a.elementor-button,.nb-btn-ghost .elementor-button{background-color:rgba(255,255,255,.03)!important;background-image:none!important;color:var(--ink)!important;border:1px solid var(--line)!important;border-radius:var(--pill)!important}
.nb-btn-ghost a.elementor-button:hover{background-color:rgba(0,212,255,.06)!important;border-color:rgba(0,212,255,.5)!important}
.nb-btn-primary a.elementor-button,.nb-btn-primary .elementor-button{background-image:linear-gradient(90deg,#2563EB,#00D4FF)!important;background-color:transparent!important;color:#fff!important;border:none!important;border-radius:var(--pill)!important}
.nb-btn-ghost .elementor-button-text{color:var(--ink)!important}.nb-btn-primary .elementor-button-text{color:#fff!important}

/* ===== NB-FIXES-2 ===== */
.e-con.nb-sec:not(.nb-herosec){display:flex!important;flex-direction:column!important;align-items:center!important}
.e-con.nb-wrapc{width:100%!important;max-width:1200px!important;margin-inline:auto!important;align-self:center}
.e-con.nb-herogrid{max-width:1300px!important;margin-inline:auto!important;align-self:center}
.e-con.nb-grid2,.e-con.nb-grid3,.e-con.nb-grid4,.e-con.nb-btnrow{align-self:stretch}
.e-con.nb-btnrow{align-self:flex-start}

/* ===== NB-PREMIUM-HEADER ===== */
.nb-header{position:fixed;top:0;left:0;right:0;z-index:1000;transition:background .35s,box-shadow .35s;border-bottom:1px solid transparent}
body.admin-bar .nb-header{top:32px}
.nb-header.scrolled{background:rgba(7,17,31,.82);backdrop-filter:blur(18px);border-bottom-color:var(--line2)}
.nb-nav{display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1360px;margin:0 auto;padding:15px 28px}
.nb-menu{display:flex;align-items:center;gap:28px}
.nb-menu>a,.nb-mega-trigger{font-size:14.5px;font-weight:500;color:#cbd5e1;transition:color .2s;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.nb-menu>a:hover,.nb-mega-trigger:hover{color:#fff}
.nb-chev{width:6px;height:6px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg) translateY(-1px);opacity:.7;transition:.3s}
.nb-has-mega{position:relative}
.nb-has-mega:hover .nb-chev{transform:rotate(-135deg)}
.nb-mega{position:fixed;left:50%;top:64px;transform:translateX(-50%) translateY(12px);width:min(1080px,94vw);background:linear-gradient(180deg,rgba(13,27,42,.98),rgba(9,17,31,.98));backdrop-filter:blur(22px);border:1px solid var(--line);border-radius:20px;padding:22px;display:grid;grid-template-columns:1fr 300px;gap:22px;opacity:0;visibility:hidden;transition:opacity .3s,transform .3s,visibility .3s;box-shadow:0 40px 90px rgba(0,0,0,.55);z-index:1001}
body.admin-bar .nb-mega{top:96px}
.nb-has-mega:hover .nb-mega{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.nb-mega-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px 14px}
.nb-mega-col h5{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);margin:2px 0 8px;font-weight:600}
.nb-mi{display:flex;gap:11px;align-items:flex-start;padding:9px;border-radius:12px;transition:background .2s,transform .2s}
.nb-mi:hover{background:rgba(37,99,235,.1)}
.nb-mi-ic{flex:0 0 34px;height:34px;border-radius:9px;background:rgba(37,99,235,.14);border:1px solid rgba(37,99,235,.28);display:grid;place-items:center;transition:.25s}
.nb-mi:hover .nb-mi-ic{background:var(--grad-d);border-color:transparent}
.nb-mi-ic svg{width:17px;height:17px;stroke:var(--cyan)}
.nb-mi:hover .nb-mi-ic svg{stroke:#fff}
.nb-mi-tx b{display:block;font-size:13.5px;color:#fff;font-weight:600;line-height:1.2}
.nb-mi-tx span{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;line-height:1.3}
.nb-mega-feature{background:linear-gradient(150deg,#081A33,#0A2463);border:1px solid rgba(0,212,255,.22);border-radius:16px;padding:24px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.nb-mega-feature::before{content:"";position:absolute;width:260px;height:260px;background:radial-gradient(circle,rgba(0,212,255,.22),transparent 65%);top:-60%;right:-30%}
.nb-eyebrow2{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);font-weight:600;position:relative}
.nb-mega-feature h4{font-size:20px;color:#fff;margin:8px 0 8px;position:relative}
.nb-mega-feature p{font-size:13px;color:#cbd5e1;line-height:1.5;margin-bottom:18px;position:relative}
.nb-fbtn2,.nb-nav-cta,.nb-mobile-cta{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(90deg,#2563EB,#00D4FF);color:#fff;font-weight:600;font-size:14px;padding:12px 20px;border-radius:999px;box-shadow:0 8px 26px rgba(37,99,235,.35);transition:transform .25s,box-shadow .3s;position:relative;justify-content:center}
.nb-fbtn2:hover,.nb-nav-cta:hover{transform:translateY(-2px);box-shadow:0 14px 40px rgba(0,212,255,.4)}
.nb-nav-right{display:flex;align-items:center;gap:16px}
.nb-burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px}
.nb-burger span{width:24px;height:2px;background:#fff;border-radius:2px;transition:.3s}
.nb-burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nb-burger.open span:nth-child(2){opacity:0}
.nb-burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.nb-mobile{display:none;flex-direction:column;background:rgba(7,17,31,.98);backdrop-filter:blur(18px);border-top:1px solid var(--line2);padding:14px 22px 26px;max-height:calc(100vh - 70px);overflow-y:auto}
.nb-mobile a{padding:12px 0;font-size:16px;color:#e2e8f0;border-bottom:1px solid var(--line2)}
.nb-mobile-sub{display:flex;flex-direction:column;padding-left:14px;border-left:2px solid rgba(0,212,255,.3);margin:4px 0}
.nb-mobile-sub a{font-size:14px;color:var(--muted);padding:8px 0;border:0}
.nb-mobile-cta{margin-top:16px;justify-content:center;padding:14px}
.nb-header.mobile-open .nb-mobile{display:flex}
.nb-header.mobile-open{background:rgba(7,17,31,.98);backdrop-filter:blur(18px)}
@media(max-width:1024px){.nb-menu,.nb-nav-cta{display:none}.nb-burger{display:flex}}

/* ===== NB-GLOBAL-FOOTER ===== */
.nb-footer{background:var(--surface2);border-top:1px solid var(--line);padding:64px 0 28px;margin-top:0}
.nb-foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;margin-bottom:40px}
.nb-foot-brand .logo{height:30px;margin-bottom:18px}
.nb-foot-brand p{font-size:13.5px;color:var(--muted);max-width:300px;line-height:1.6}
.nb-foot-col h5{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#fff;margin-bottom:15px}
.nb-foot-col a{display:block;font-size:13.5px;color:var(--muted);padding:6px 0;transition:.2s}
.nb-foot-col a:hover{color:var(--cyan)}
.nb-foot-bottom{border-top:1px solid var(--line2);padding-top:22px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center;font-size:12.5px;color:var(--faint)}
.nb-soc{display:flex;gap:10px}
.nb-soc a{width:34px;height:34px;border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;transition:.25s}
.nb-soc a:hover{border-color:var(--cyan);background:rgba(0,212,255,.08)}
.nb-soc svg{width:16px;height:16px;fill:var(--muted)}
.nb-float{position:fixed;right:20px;bottom:30px;z-index:900;display:flex;flex-direction:column;gap:12px}
.nb-fb{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.4);transition:transform .25s}
.nb-fb:hover{transform:scale(1.08)}
.nb-fb.wa{background:#25D366}.nb-fb.call{background:linear-gradient(90deg,#2563EB,#00D4FF)}
.nb-fb svg{width:24px;height:24px}
.nb-msticky{display:none}
@media(max-width:680px){.nb-foot-grid{grid-template-columns:1fr 1fr}.nb-float{bottom:88px}.nb-msticky{display:block;position:fixed;left:0;right:0;bottom:0;z-index:950;background:rgba(7,17,31,.94);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:12px 16px}.nb-msticky a{display:block;text-align:center;background:linear-gradient(90deg,#2563EB,#00D4FF);color:#fff;font-weight:600;padding:14px;border-radius:999px}}

/* ===== NB-INNER-PAGES ===== */
.e-con.nb-innerhero{padding-top:170px!important;padding-bottom:80px!important;position:relative;overflow:hidden;align-items:center!important}
.nb-innerhero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--line2) 1px,transparent 1px),linear-gradient(90deg,var(--line2) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 30%,#000,transparent 72%);mask-image:radial-gradient(ellipse 70% 60% at 50% 30%,#000,transparent 72%);opacity:.5;pointer-events:none}
.nb-innerhero::after{content:"";position:absolute;width:640px;height:640px;left:50%;top:-40%;transform:translateX(-50%);background:radial-gradient(circle,rgba(37,99,235,.22),rgba(0,212,255,.08) 42%,transparent 68%);pointer-events:none}
.nb-crumb{font-size:12.5px;color:var(--faint);position:relative;z-index:2;margin-bottom:16px}
.nb-crumb a{color:var(--muted)}.nb-crumb a:hover{color:var(--cyan)}
.nb-innerhero .nb-wrapc{position:relative;z-index:2;align-items:center!important;text-align:center}
.nb-innerhero .elementor-heading-title{max-width:16ch}
.nb-h1big .elementor-heading-title{font-size:clamp(38px,5.6vw,68px);line-height:1.05;font-weight:700;letter-spacing:-.02em;color:#fff}
.nb-innerhero .nb-lead .elementor-widget-container{margin:0 auto;text-align:center;max-width:60ch}
.e-con.nb-split{display:grid!important;grid-template-columns:1fr 1fr;gap:40px;align-items:stretch;width:100%}
.e-con.nb-glass{background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.005));border:1px solid var(--line);border-radius:var(--r-md);padding:32px!important;flex-direction:column;align-items:flex-start;gap:0}
.e-con.nb-glass.accent{background:linear-gradient(150deg,rgba(30,58,138,.35),rgba(37,99,235,.12));border-color:rgba(0,212,255,.22)}
.nb-pill-label .elementor-heading-title{display:inline-block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);font-weight:600;background:rgba(0,212,255,.08);border:1px solid rgba(0,212,255,.2);padding:6px 12px;border-radius:999px}
@media(max-width:820px){.e-con.nb-split{grid-template-columns:1fr}}

/* ===== NB-FIXES-3 ===== */
.nb-innerhero .elementor-heading-title{max-width:none!important}
.nb-innerhero .nb-eyebrow .elementor-heading-title{justify-content:center}
.e-con.nb-glass{align-self:stretch}

/* ===== NB-ANIMATIONS ===== */
html.nb-anim .nb-wrapc>.elementor-widget,html.nb-anim .nb-wrapc>.nb-btnrow,html.nb-anim .nb-herocol>.elementor-widget,html.nb-anim .nb-herocol>.nb-btnrow,html.nb-anim .nb-herogrid>.hero-visual,html.nb-anim .nb-grid2>*,html.nb-anim .nb-grid3>*,html.nb-anim .nb-grid4>*,html.nb-anim .nb-split>*,html.nb-anim .cta-band{opacity:0;transform:translateY(28px);transition:opacity .75s cubic-bezier(.2,.7,.2,1),transform .75s cubic-bezier(.2,.7,.2,1)}
html.nb-anim .nb-in{opacity:1!important;transform:none!important}
.nb-menu>a{position:relative}
.nb-menu>a::after{content:"";position:absolute;left:0;bottom:-3px;height:2px;width:0;border-radius:2px;background:linear-gradient(90deg,#2563EB,#00D4FF);transition:width .3s cubic-bezier(.2,.7,.2,1)}
.nb-menu>a:hover::after{width:100%}
.hero-paused .orb,.hero-paused .ring,.hero-paused .hero-glow,.hero-paused .p1,.hero-paused .p2{animation-play-state:paused}
.btn,.nb-nav-cta,.nb-fbtn2{will-change:transform}
@media(prefers-reduced-motion:reduce){html.nb-anim .nb-wrapc>*,html.nb-anim .nb-grid2>*,html.nb-anim .nb-grid3>*,html.nb-anim .nb-grid4>*,html.nb-anim .nb-split>*,html.nb-anim .cta-band,html.nb-anim .nb-herocol>*,html.nb-anim .hero-visual{opacity:1!important;transform:none!important}.orb,.ring,.hero-glow,.p1,.p2{animation:none!important}}

/* ===== NB-FAQ-FIX ===== */
.nb-center .elementor-widget-html{width:100%}
.faq-wrap{max-width:860px;margin-left:auto;margin-right:auto;text-align:left}
.faq q{text-align:left}
.faq .ans p{text-align:left;padding-right:46px}
.faq .pm{flex:0 0 auto}
.sic,.ci,.nb-mi-ic,.ci-ic{display:grid!important;place-items:center!important}
.sic svg,.ci svg,.nb-mi-ic svg,.ci-ic svg,.wn,.num{display:block}

/* ===== NB-FAQ-FIX2 ===== */
.faq{display:block;width:100%}
.faq q{display:flex!important;width:100%;box-sizing:border-box;justify-content:space-between;align-items:center;text-align:left}
.faq q>*{flex:0 0 auto}

/* ===== NB-FAQ-FIX3 ===== */
.faq q{justify-content:flex-start!important;text-align:left}
.faq .pm{margin-left:auto!important}

/* ===== NB-CTA-CENTER ===== */
.nb-wrapc>.elementor-widget-html{width:100%}
.nb-wrapc>.elementor-widget{align-self:stretch}
.cta-band{width:100%;margin-left:auto;margin-right:auto}

/* ===== NB-MEGA-ALIGN ===== */
.nb-mega-grid{align-items:start}
.nb-mega-col{display:flex;flex-direction:column;gap:2px}
.nb-mega-col h5{min-height:14px}
.nb-mi{align-items:flex-start;min-height:58px}
.nb-mi-tx{padding-top:1px}

/* ===== NB-MEGA-ALIGN2 ===== */
.nb-mega-col h5{min-height:26px;display:block;line-height:1.25}

/* ===== NB-HERO-WOW ===== */
.nb-herosec{perspective:1100px}
.hero-visual{transform-style:preserve-3d;will-change:transform}
.nb-herocol{will-change:transform}
.orb{box-shadow:0 0 130px rgba(37,99,235,.6),0 0 64px rgba(0,212,255,.32),inset -18px -18px 60px rgba(3,10,25,.78),inset 14px 14px 46px rgba(124,199,255,.45)}
.orb::before{content:"";position:absolute;inset:-7px;border-radius:50%;background:conic-gradient(from 0deg,transparent 0%,rgba(0,212,255,.55) 18%,transparent 40%,transparent 62%,rgba(37,99,235,.45) 80%,transparent 100%);filter:blur(6px);opacity:.75;z-index:-1;animation:nb-orbspin 7s linear infinite}
@keyframes nb-orbspin{to{transform:rotate(360deg)}}
.nb-particles{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.nb-particles span{position:absolute;bottom:-10px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px var(--cyan);animation:nb-rise linear infinite}
@keyframes nb-rise{0%{transform:translateY(0);opacity:0}12%{opacity:.7}90%{opacity:.5}100%{transform:translateY(-540px);opacity:0}}
.nb-hlines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:0}
.nb-hlines line{stroke:rgba(0,212,255,.32);stroke-width:.35;stroke-dasharray:2 3.2;animation:nb-dashflow 2.6s linear infinite}
@keyframes nb-dashflow{to{stroke-dashoffset:-26}}
.nb-shine-on .grad-text{background-size:220% auto;animation:nb-shine 6.5s linear infinite}
@keyframes nb-shine{to{background-position:220% center}}
.btn-primary,.nb-btn-primary .elementor-button{position:relative;overflow:hidden}
.btn-primary::before,.nb-btn-primary .elementor-button::before{content:"";position:absolute;top:0;left:-135%;width:55%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.42),transparent);transform:skewX(-18deg);pointer-events:none}
.btn-primary:hover::before,.nb-btn-primary .elementor-button:hover::before{animation:nb-sheen .85s ease}
@keyframes nb-sheen{to{left:155%}}
.nb-mag{transition:transform .3s cubic-bezier(.2,.7,.2,1)}
@media(prefers-reduced-motion:reduce){.orb::before,.nb-particles span,.nb-hlines line,.nb-shine-on .grad-text{animation:none!important}.hero-visual,.nb-herocol{transform:none!important}}

/* ===== NB-HERO-RESPONSIVE ===== */
@media(max-width:1024px){.nb-herosec{min-height:unset!important;padding-top:116px!important;padding-bottom:56px!important}.e-con.nb-herogrid{gap:0}}
@media(max-width:600px){.nb-herosec .nb-btnrow{width:100%;flex-direction:column;gap:12px}.nb-herosec .nb-btnrow .elementor-button{width:100%;justify-content:center}.nb-herosec h1{font-size:clamp(38px,10vw,52px)!important}.nb-herocol .nb-lead .elementor-widget-container{font-size:16px}}


/* NB-CARDPAD-FIX: force work/case-study card inner container to a real flex column so its padding is honored */
.e-con.nb-cardpad{display:flex!important;flex-direction:column!important;align-items:stretch!important}
.nb-cardpad>*{padding-left:0!important;padding-right:0!important}
.e-con.nb-cardpad{padding:22px!important}


/* NB-MOBILE-OVERFLOW-FIX: kill right-side dead margin / horizontal scroll on small screens */
@media(max-width:600px){
  html,body{overflow-x:hidden!important;max-width:100%!important}
  .pi{flex-wrap:wrap!important;justify-content:center!important;row-gap:8px!important;max-width:100%!important}
  .e-con,.e-con-inner,.nb-sec,.nb-wrapc{max-width:100%!important}
}


/* NB-BURGER-NORED: remove theme red outline/border/tint on mobile menu + close icon */
.nb-burger,.nb-burger:hover,.nb-burger:focus,.nb-burger:active,.nb-burger:focus-visible{outline:none!important;border:0!important;box-shadow:none!important;color:#fff!important;background:none!important;-webkit-tap-highlight-color:transparent!important}
.nb-burger span,.nb-burger:focus span,.nb-burger:active span,.nb-burger.open span{background:#fff!important;border:0!important;color:#fff!important}


/* NB-CARD-CHILD-STRETCH: .nb-ncard is a flex column with align-items:flex-start,
   so direct child widgets shrink to their content width. That collapsed the .ch
   thumbnail band (and any full-width block) inside cards on Insights / Case Studies. */
.e-con.nb-ncard>.elementor-widget,
.e-con.nb-ncard>.e-con{align-self:stretch;width:100%}
.e-con.nb-ncard>.elementor-widget>.elementor-widget-container{width:100%}
.nb-ncard .ch{width:100%;display:grid}


/* ===== NB-HERO-STACK ============================================
   Hero visual: the capability set as glass pills on a tilted 3D plane.
   Three depth tiers (t1 back, t2 mid, t3 front) differ in translateZ,
   brightness and focus, and each parallaxes by a different amount on
   pointer (--px/--py) and scroll (--nbhero). Entrance lives on the outer
   .hs-i (with a per-pill --o jitter so the cluster never reads as rows),
   depth on the inner .hs-p, so the two transforms never fight.
   =============================================================== */
.hero-visual.hs{position:relative;display:flex;align-items:center;justify-content:center;overflow:visible}
.hs-glow{position:absolute;left:50%;top:48%;width:500px;height:500px;margin:-250px 0 0 -250px;
  border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(37,99,235,.30),rgba(0,212,255,.14) 42%,transparent 70%);
  filter:blur(14px);animation:breathe 9s ease-in-out infinite}
.hs-plane{position:relative;display:flex;flex-wrap:wrap;align-content:center;justify-content:center;
  gap:22px 12px;width:96%;margin-left:-3%;
  transform:perspective(1150px) rotateY(-20deg) rotateX(9deg);transform-style:preserve-3d}
.hs-i{display:block;transform-style:preserve-3d;opacity:0;
  animation:hs-in .85s cubic-bezier(.16,1,.3,1) var(--d,0s) forwards}
@keyframes hs-in{
  from{opacity:0;transform:translate3d(0,calc(var(--o,0px) + 22px),0)}
  to{opacity:1;transform:translate3d(0,var(--o,0px),0)}
}
.hs-p{display:block;white-space:nowrap;font-weight:600;letter-spacing:-.01em;border-radius:999px;
  background-color:rgba(11,22,38,.42);
  background-image:linear-gradient(160deg,rgba(255,255,255,.16),rgba(255,255,255,0) 62%);
  -webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 18px 40px -20px rgba(2,8,20,.9),inset 0 1px 0 rgba(255,255,255,.24)}
/* back tier: small, dim, slightly out of focus */
.t1 .hs-p{font-size:13px;padding:9px 17px;color:#94A3B8;opacity:.5;filter:blur(1.1px);
  transform:translate3d(calc(var(--px,0)*8px),calc(var(--py,0)*6px + var(--nbhero,0)*-20px),0) translateZ(-110px)}
.t2 .hs-p{font-size:14px;padding:11px 20px;color:#CBD5E1;opacity:.82;
  transform:translate3d(calc(var(--px,0)*16px),calc(var(--py,0)*11px + var(--nbhero,0)*-40px),0) translateZ(0)}
/* front tier: crisp, white, cyan edge, closest to the viewer */
.t3 .hs-p{font-size:15px;padding:13px 24px;color:#fff;
  border-color:rgba(0,212,255,.32);
  box-shadow:0 26px 56px -22px rgba(2,8,20,.95),0 0 32px -12px rgba(0,212,255,.5),inset 0 1px 0 rgba(255,255,255,.32);
  transform:translate3d(calc(var(--px,0)*28px),calc(var(--py,0)*19px + var(--nbhero,0)*-66px),0) translateZ(92px)}

@media(max-width:1024px){
  .nb-herogrid .hero-visual.hs{display:flex;height:auto;margin-top:26px}
  .hs-plane{width:100%;margin-left:0;transform:none;gap:10px}
  .hs-glow{width:320px;height:320px;margin:-160px 0 0 -160px}
  .t1 .hs-p,.t2 .hs-p,.t3 .hs-p{transform:none;font-size:13px;padding:9px 16px;filter:none}
  .t1 .hs-p{opacity:.72}.t2 .hs-p{opacity:.88}
  .hs-i{animation-name:hs-in-flat}
  @keyframes hs-in-flat{from{opacity:0;transform:translate3d(0,16px,0)}to{opacity:1;transform:none}}
}
@media(max-width:600px){.nb-herogrid .hero-visual.hs{display:none}}

@media(prefers-reduced-motion:reduce){
  .hs-i{opacity:1;animation:none;transform:translate3d(0,var(--o,0px),0)}
  .hs-glow{animation:none}
  .t1 .hs-p{transform:translateZ(-110px)}
  .t2 .hs-p{transform:translateZ(0)}
  .t3 .hs-p{transform:translateZ(92px)}
}

/* NB-HERO-VCENTER: .nb-herosec is a column flex container, so align-items only
   centred it horizontally and the content sat at the top of the viewport with a
   large dead band underneath. justify-content does the vertical centring. */
.e-con.nb-herosec{justify-content:center}
@media(max-width:1024px){.e-con.nb-herosec{justify-content:flex-start}}


/* NB-CENTERED-BTNROW: .e-con.nb-btnrow is pinned to align-self:flex-start for the
   left aligned home hero, which also dragged the button pair to the left inside
   centred contexts (every inner page hero, and any nb-center block). Re-centre it
   there only. */
.nb-innerhero .e-con.nb-btnrow,
.e-con.nb-center .e-con.nb-btnrow,
.e-con.nb-btnrow.nb-center,
.nb-innerhero .nb-wrapc>.e-con.nb-btnrow{align-self:center!important;justify-content:center!important}


/* NB-BTNROW-BASELINE: the buttons are inline-block, so each widget wrapper picked
   up the inline baseline gap under it. The primary wrapper measured 53px against
   the ghost's 44px, and the row's align-items:center then pushed the ghost down by
   4px. Make the wrappers flex (no baseline gap) and give both buttons one shared
   height instead of two different vertical paddings. */
.e-con.nb-btnrow{align-items:center}
.e-con.nb-btnrow>.elementor-widget-button{display:flex;align-items:center}
.e-con.nb-btnrow .elementor-button,
.nb-btn-primary .elementor-button,
.nb-btn-ghost .elementor-button,
.nb-btn-ghost a.elementor-button{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:46px;line-height:1;
  padding-top:0;padding-bottom:0;padding-left:28px;padding-right:28px;
}


/* NB-BTNROW-GAP: button rows sat only 8px under the copy above them, which read
   as cramped now that the buttons share one height. One value, so every row on
   every page breathes the same. */
.e-con.nb-btnrow{margin-top:24px}
@media(max-width:600px){.e-con.nb-btnrow{margin-top:20px}}


/* ===== NB-HERO-CYCLE + DRIFT =====================================
   Second headline line cycles through outcomes behind a mask, and the
   capability pills breathe on a slow independent drift. Each element
   owns exactly one transform: .hs-i entrance, .hs-d drift, .hs-p depth
   and parallax. Stacking them on one node would make the last rule win
   and silently kill the others.
   ================================================================ */
.nb-cyc{display:block;position:relative;height:1.18em;overflow:hidden;margin-bottom:-.10em}
.nb-cyc-i{position:absolute;left:0;top:0;white-space:nowrap;line-height:1.05;
  transform:translate3d(0,110%,0);opacity:0;
  transition:transform .8s cubic-bezier(.16,1,.3,1),opacity .5s ease}
.nb-cyc-i.is-on{transform:translate3d(0,0,0);opacity:1}
.nb-cyc-i.is-out{transform:translate3d(0,-110%,0);opacity:0}
.nb-cyc-i.nb-cyc-reset{transition:none}

.hs-d{display:block;transform-style:preserve-3d;
  animation:hs-drift var(--t,9s) ease-in-out var(--dd,0s) infinite alternate}
@keyframes hs-drift{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(var(--dx,6px),var(--dy,-10px),0)}
}
/* pills answer the pointer without touching their transform */
.hs-i:hover .hs-p{border-color:rgba(0,212,255,.6);background-color:rgba(16,38,64,.55);
  box-shadow:0 30px 60px -22px rgba(2,8,20,.95),0 0 40px -10px rgba(0,212,255,.6),inset 0 1px 0 rgba(255,255,255,.36)}
.hs-p{transition:border-color .4s cubic-bezier(.16,1,.3,1),background-color .4s cubic-bezier(.16,1,.3,1),box-shadow .4s cubic-bezier(.16,1,.3,1)}

@media(max-width:1024px){.hs-d{animation:none}}
@media(prefers-reduced-motion:reduce){
  .hs-d{animation:none}
  .nb-cyc{height:auto;overflow:visible;margin-bottom:0}
  .nb-cyc-i{position:static;transform:none;opacity:0;transition:none}
  .nb-cyc-i.is-on{opacity:1}
  .nb-cyc-i:not(.is-on){display:none}
}