@import url('https://fonts.googleapis.com/css2?family=Sora:wght@400;600;700;800&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --navy:#080B14;
  --navy-2:#0E1424;
  --navy-3:#141B2E;
  --blue:#3B82F6;
  --cyan:#22D3EE;
  --amber:#FBBF24;
  --amber-dark:#F59E0B;
  --bg:#080B14;
  --ink:#080B14;
  --paper:#F4F6FB;
  --line:rgba(255,255,255,.08);
  --line-light:#E4E7EE;
  --muted:#8B93A7;
  --muted-light:#5B6378;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:'Inter',system-ui,sans-serif;
  color:#fff;
  background:var(--navy);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.font-display{font-family:'Sora',system-ui,sans-serif;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);}
.reveal.is-visible{opacity:1;transform:translateY(0);}
.reveal-delay-1{transition-delay:.08s}
.reveal-delay-2{transition-delay:.16s}
.reveal-delay-3{transition-delay:.24s}
.reveal-delay-4{transition-delay:.32s}
.reveal-scale{opacity:0;transform:scale(.92);transition:opacity .65s cubic-bezier(.16,1,.3,1),transform .65s cubic-bezier(.16,1,.3,1);}
.reveal-scale.is-visible{opacity:1;transform:scale(1);}
.reveal-left{opacity:0;transform:translateX(-32px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);}
.reveal-left.is-visible{opacity:1;transform:translateX(0);}
.reveal-right{opacity:0;transform:translateX(32px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);}
.reveal-right.is-visible{opacity:1;transform:translateX(0);}

/* ---------- Glow backdrop ---------- */
.glow-field{position:relative;overflow:hidden;}
.glow-orb{position:absolute;border-radius:50%;filter:blur(70px);opacity:.35;pointer-events:none;}
@keyframes orbDrift{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(24px,-28px) scale(1.1);}}
.orb-drift{animation:orbDrift 11s ease-in-out infinite;}

/* ---------- Nav ---------- */
.site-nav{background:rgba(8,11,20,.7);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);transition:padding .3s ease;}
.nav-link{position:relative;color:#C7CCDA;}
.nav-link::after{content:'';position:absolute;left:0;bottom:-6px;width:0;height:2px;background:var(--cyan);transition:width .25s ease;box-shadow:0 0 8px var(--cyan);}
.nav-link:hover::after,.nav-link.active::after{width:100%;}
.nav-link:hover,.nav-link.active{color:#fff;}

/* ---------- Buttons ---------- */
.btn-amber{
  background:linear-gradient(135deg,var(--amber),var(--amber-dark));
  color:#1A1304;
  transition:transform .2s ease, box-shadow .2s ease;
  box-shadow:0 10px 28px -10px rgba(251,191,36,.55);
}
.btn-amber:hover{transform:translateY(-2px);box-shadow:0 16px 34px -10px rgba(251,191,36,.65);}
.btn-ghost{border:1.5px solid rgba(255,255,255,.18);color:#fff;transition:all .2s ease;}
.btn-ghost:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.35);}

/* ---------- Glass panels ---------- */
.glass{background:rgba(255,255,255,.04);border:1px solid var(--line);backdrop-filter:blur(10px);}
.glass-strong{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(16px);}

/* ---------- Dashboard chip (hero) ---------- */
.dash-chip{position:absolute;background:rgba(14,20,36,.85);border:1px solid var(--line);backdrop-filter:blur(12px);border-radius:1rem;box-shadow:0 20px 50px -20px rgba(0,0,0,.6);}
.status-dot{width:8px;height:8px;border-radius:50%;background:#34D399;box-shadow:0 0 0 0 rgba(52,211,153,.6);animation:statusPulse 2s infinite;}
@keyframes statusPulse{0%{box-shadow:0 0 0 0 rgba(52,211,153,.6);}70%{box-shadow:0 0 0 10px rgba(52,211,153,0);}100%{box-shadow:0 0 0 0 rgba(52,211,153,0);}}

/* ---------- Feature icon (2x2 grid, borderless) ---------- */
.feature-icon{
  width:56px;height:56px;border-radius:14px;
  background:linear-gradient(135deg, rgba(59,130,246,.18), rgba(34,211,238,.1));
  display:flex;align-items:center;justify-content:center;
  transition:transform .3s ease, box-shadow .3s ease;
}
.feature-row:hover .feature-icon{transform:translateY(-3px);box-shadow:0 0 24px rgba(34,211,238,.35);}

/* ---------- Radar / pulsing rings (smart diagnostics graphic) ---------- */
.radar-wrap{position:relative;width:280px;height:280px;display:flex;align-items:center;justify-content:center;}
.radar-ring{position:absolute;border-radius:50%;border:1px solid rgba(34,211,238,.35);animation:radarPing 3.2s ease-out infinite;}
.radar-ring:nth-child(2){animation-delay:.8s;}
.radar-ring:nth-child(3){animation-delay:1.6s;}
@keyframes radarPing{
  0%{width:40px;height:40px;opacity:.9;}
  100%{width:280px;height:280px;opacity:0;}
}
.radar-core{position:relative;width:90px;height:90px;border-radius:50%;background:radial-gradient(circle,var(--cyan),var(--blue));display:flex;align-items:center;justify-content:center;box-shadow:0 0 50px rgba(34,211,238,.6);z-index:5;}

/* ---------- Scroll-progress timeline (Process) ---------- */
.timeline-rail{position:absolute;left:27px;top:0;bottom:0;width:2px;background:rgba(255,255,255,.1);}
.timeline-fill{position:absolute;left:0;top:0;width:100%;height:0%;background:linear-gradient(180deg,var(--cyan),var(--blue));box-shadow:0 0 12px var(--cyan);transition:height .1s linear;}
.timeline-node{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--navy-3);border:2px solid rgba(255,255,255,.12);z-index:2;transition:border-color .3s ease, box-shadow .3s ease;}
.timeline-node.lit{border-color:var(--cyan);box-shadow:0 0 20px rgba(34,211,238,.5);}

/* ---------- Vertical infinite testimonial wall ---------- */
.wall-col{overflow:hidden;height:560px;position:relative;mask-image:linear-gradient(180deg,transparent,black 10%,black 90%,transparent);}
.wall-track{display:flex;flex-direction:column;gap:1.25rem;animation:scrollUp 32s linear infinite;}
.wall-col.down .wall-track{animation:scrollDown 32s linear infinite;}
@keyframes scrollUp{from{transform:translateY(0);}to{transform:translateY(-50%);}}
@keyframes scrollDown{from{transform:translateY(-50%);}to{transform:translateY(0);}}
.wall-col:hover .wall-track{animation-play-state:paused;}

/* ---------- Service tile (drag-scroll filmstrip) ---------- */
.filmstrip{display:flex;gap:1.25rem;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:.5rem;cursor:grab;}
.filmstrip.dragging{cursor:grabbing;scroll-snap-type:none;user-select:none;}
.filmstrip::-webkit-scrollbar{height:6px;}
.filmstrip::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:3px;}
.film-tile{flex:0 0 280px;scroll-snap-align:start;}

/* ---------- FAQ ---------- */
.faq-item[open] .faq-icon{transform:rotate(45deg);}
.faq-icon{transition:transform .25s ease;}
.faq-item summary{cursor:pointer;list-style:none;}
.faq-item summary::-webkit-details-marker{display:none;}

/* ---------- Sticky mobile call bar ---------- */
.mobile-call-bar{transform:translateY(100%);transition:transform .35s cubic-bezier(.16,1,.3,1);}
.mobile-call-bar.show{transform:translateY(0);}

::selection{background:var(--cyan);color:#04141A;}
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, summary:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:4px;}

/* ---------- Light section helper (for content-heavy subpages) ---------- */
.section-light{background:var(--paper);color:var(--ink);}
.section-light .muted{color:var(--muted-light);}
