/* =========================================================
   ONSPOTIT — Design tokens
   Palette drawn from ops/monitoring dashboards: dark "control
   room" base, signal-green = operational, amber = attention.
   ========================================================= */
:root{
  --ink:        #0A0F1D;
  --ink-2:      #0D1426;
  --panel:      #121A2E;
  --panel-2:    #16203A;
  --border:     #232E49;
  --border-soft:#1B2540;
  --text:       #E9EDF7;
  --muted:      #90A0C4;
  --muted-2:    #6B7A9C;
  --signal:     #22D189;
  --signal-dim: #16794F;
  --amber:      #F5A623;
  --amber-dim:  #7A5313;
  --danger:     #F0556B;

  --font-display: 'Space Grotesk', 'Segoe UI', sans-serif;
  --font-body:    'Inter', 'Segoe UI', sans-serif;
  --font-mono:    'IBM Plex Mono', 'Consolas', monospace;

  --wrap: 1180px;
  --radius: 10px;
  --radius-lg: 16px;
  --shadow: 0 20px 50px -20px rgba(0,0,0,0.6);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--ink);
  color:var(--text);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
h1,h2,h3,h4{font-family:var(--font-display);line-height:1.15;margin:0 0 .5em;font-weight:600;}
p{margin:0 0 1em;color:var(--muted);}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px;}

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

a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline:2px solid var(--signal);
  outline-offset:3px;
  border-radius:4px;
}

/* =========================================================
   Buttons
   ========================================================= */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--font-body);font-weight:600;font-size:15px;
  padding:14px 26px;border-radius:8px;border:1px solid transparent;
  cursor:pointer;transition:transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease;
  white-space:nowrap;
}
.btn--signal{background:var(--signal);color:#04120B;}
.btn--signal:hover{background:#3adf9e;transform:translateY(-1px);box-shadow:0 10px 30px -10px rgba(34,209,137,.5);}
.btn--outline{background:transparent;color:var(--text);border-color:var(--border);}
.btn--outline:hover{border-color:var(--signal);color:var(--signal);}
.btn--sm{padding:10px 18px;font-size:14px;}
.btn--lg{padding:16px 32px;font-size:16px;}
.btn--block{width:100%;}

/* =========================================================
   Header
   ========================================================= */
.site-header{position:sticky;top:0;z-index:100;background:rgba(10,15,29,0.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--border-soft);}
.utility-bar{background:var(--ink-2);border-bottom:1px solid var(--border-soft);font-family:var(--font-mono);font-size:12.5px;}
.utility-bar__inner{display:flex;justify-content:space-between;align-items:center;height:36px;}
.utility-links{display:flex;gap:20px;}
.utility-links a{color:var(--muted-2);transition:color .15s;}
.utility-links a:hover{color:var(--signal);}
.utility-contact{color:var(--muted-2);display:flex;align-items:center;gap:8px;}
.utility-contact a:hover{color:var(--signal);}
.dot-sep{opacity:.5;}

.nav-row{display:flex;align-items:center;gap:32px;height:76px;}
.logo{display:flex;align-items:center;gap:10px;margin-right:auto;}
.logo__mark{width:12px;height:12px;border-radius:50%;background:var(--signal);box-shadow:0 0 0 4px rgba(34,209,137,.15);position:relative;flex:none;}
.logo__mark::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--signal);animation:pulse 2.2s ease-out infinite;}
@keyframes pulse{0%{transform:scale(1);opacity:.6;}100%{transform:scale(2.6);opacity:0;}}
.logo__text{font-family:var(--font-display);font-weight:700;font-size:22px;letter-spacing:-0.02em;color:var(--text);}

.main-nav ul{display:flex;gap:28px;}
.main-nav a{font-size:14.5px;font-weight:500;color:var(--muted);padding:8px 0;position:relative;transition:color .15s;}
.main-nav a:hover, .main-nav a.is-active{color:var(--text);}
.main-nav a.is-active::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--signal);}

.nav-row__actions{display:flex;align-items:center;gap:16px;}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;padding:6px;cursor:pointer;}
.nav-toggle span{width:22px;height:2px;background:var(--text);}

/* =========================================================
   Hero + signature "status strip"
   ========================================================= */
.hero{padding:88px 0 64px;position:relative;overflow:hidden;}
.hero::before{
  content:"";position:absolute;top:-200px;right:-150px;width:600px;height:600px;
  background:radial-gradient(circle, rgba(34,209,137,.14), transparent 70%);
  pointer-events:none;
}
.eyebrow{
  font-family:var(--font-mono);font-size:13px;color:var(--signal);
  display:inline-flex;align-items:center;gap:8px;margin-bottom:18px;letter-spacing:.02em;
}
.eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--signal);}
.hero h1{font-size:clamp(34px,5vw,56px);max-width:16ch;color:var(--text);}
.hero__lead{font-size:18px;max-width:56ch;color:var(--muted);}
.hero__actions{display:flex;gap:16px;margin:32px 0 56px;flex-wrap:wrap;}

.status-strip{
  background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);
  box-shadow:var(--shadow);position:relative;z-index:1;
}
.status-strip__inner{display:flex;align-items:center;gap:28px;padding:18px 28px;flex-wrap:wrap;}
.status-strip__label{font-family:var(--font-mono);font-size:12.5px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.06em;}
.status-strip__list{display:flex;gap:26px;flex-wrap:wrap;font-family:var(--font-mono);font-size:13.5px;color:var(--text);}
.status-strip__list li{display:flex;align-items:center;gap:9px;}
.status-dot{width:8px;height:8px;border-radius:50%;background:var(--signal);flex:none;box-shadow:0 0 0 3px rgba(34,209,137,.18);}

.status-strip--footer{background:var(--ink-2);border-radius:0;border:0;border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);}
.status-strip--footer .status-strip__inner{justify-content:center;padding:16px 24px;}

/* =========================================================
   Sections / layout
   ========================================================= */
section{padding:88px 0;}
.section-head{max-width:640px;margin:0 0 48px;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head h2{font-size:clamp(26px,3.4vw,38px);color:var(--text);}
.section--tint{background:var(--ink-2);}

.grid{display:grid;gap:24px;}
.grid--3{grid-template-columns:repeat(3,1fr);}
.grid--2{grid-template-columns:repeat(2,1fr);}
.grid--4{grid-template-columns:repeat(4,1fr);}

.card{
  background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:32px;transition:transform .2s ease, border-color .2s ease;
}
.card:hover{transform:translateY(-4px);border-color:var(--border);}
.card__icon{
  width:44px;height:44px;border-radius:10px;background:var(--panel-2);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;margin-bottom:20px;font-family:var(--font-mono);
  color:var(--signal);font-size:16px;
}
.card h3{font-size:19px;color:var(--text);}
.card p{margin-bottom:0;font-size:14.5px;}
.card__meta{display:flex;gap:16px;margin-top:18px;padding-top:16px;border-top:1px solid var(--border-soft);font-family:var(--font-mono);font-size:12px;color:var(--muted-2);flex-wrap:wrap;}
.card__meta span{display:flex;align-items:center;gap:6px;}
.card__meta span::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--amber);}

.pill{display:inline-block;font-family:var(--font-mono);font-size:12px;padding:4px 10px;border-radius:20px;background:var(--panel-2);border:1px solid var(--border);color:var(--muted);}

/* stat row */
.stats{display:flex;gap:0;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--panel);}
.stats__item{flex:1;padding:28px 20px;text-align:center;border-right:1px solid var(--border);}
.stats__item:last-child{border-right:0;}
.stats__num{font-family:var(--font-mono);font-size:30px;color:var(--signal);font-weight:500;}
.stats__label{font-size:13px;color:var(--muted-2);margin-top:4px;}

/* process / list-with-number (only used where content is a real sequence) */
.steps{counter-reset:step;}
.steps li{
  counter-increment:step;position:relative;padding:24px 0 24px 56px;border-top:1px solid var(--border-soft);
}
.steps li:first-child{border-top:0;}
.steps li::before{
  content:counter(step,decimal-leading-zero);position:absolute;left:0;top:24px;
  font-family:var(--font-mono);color:var(--signal);font-size:14px;
}
.steps h4{color:var(--text);margin-bottom:6px;font-size:16px;}
.steps p{margin:0;font-size:14.5px;}

/* two-col layout */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}

/* CTA band */
.cta-band{
  background:linear-gradient(135deg, var(--panel) 0%, var(--panel-2) 100%);
  border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:56px;text-align:center;
}
.cta-band h2{color:var(--text);}
.cta-band .hero__actions{justify-content:center;margin-bottom:0;}

/* Forms */
.form{display:grid;gap:16px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
label{font-size:13px;color:var(--muted);display:block;margin-bottom:6px;font-family:var(--font-mono);}
input, select, textarea{
  width:100%;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;
  padding:13px 14px;color:var(--text);font-family:var(--font-body);font-size:15px;
}
input::placeholder, textarea::placeholder{color:var(--muted-2);}
textarea{resize:vertical;min-height:120px;}

.legal-content h3{color:var(--text);font-size:17px;font-family:var(--font-body);font-weight:700;margin:32px 0 12px;}
.legal-content h3:first-child{margin-top:0;}
.legal-content p, .legal-content li{font-size:14.5px;color:var(--muted);margin-bottom:12px;}
.legal-content ol, .legal-content ul{padding-left:22px;margin-bottom:16px;}
.legal-content a{color:var(--signal);}
.legal-content strong{color:var(--text);}

table{width:100%;border-collapse:collapse;}
table th, table td{padding:14px 16px;border-bottom:1px solid var(--border-soft);text-align:left;font-size:14.5px;}
table th{font-family:var(--font-mono);font-size:12px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.05em;}

/* =========================================================
   Footer
   ========================================================= */
.site-footer{background:var(--ink-2);border-top:1px solid var(--border-soft);}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:40px;padding:64px 0 40px;}
.footer-col h4{color:var(--text);font-size:14px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;margin-bottom:18px;}
.footer-links li, .footer-contact li{margin-bottom:12px;font-size:14.5px;color:var(--muted);}
.footer-links a:hover, .footer-contact a:hover{color:var(--signal);}
.logo--footer{margin-bottom:16px;}
.footer-col--brand p{font-size:14px;max-width:34ch;}
.social-links{display:flex;gap:10px;margin-top:20px;}
.social-links a{
  width:34px;height:34px;border-radius:8px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;
  font-family:var(--font-mono);font-size:11px;text-transform:uppercase;color:var(--muted);
}
.social-links a:hover{border-color:var(--signal);color:var(--signal);}
.footer-col--contact .btn{margin-top:16px;}
.muted{color:var(--muted-2) !important;font-size:13px !important;}
.footer-bottom{display:flex;justify-content:space-between;padding:24px 0;border-top:1px solid var(--border-soft);font-size:13px;color:var(--muted-2);}
.footer-bottom a:hover{color:var(--signal);}

/* =========================================================
   Reveal-on-scroll (subtle, respects reduced motion)
   ========================================================= */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease, transform .6s ease;}
.reveal.is-visible{opacity:1;transform:none;}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 980px){
  .grid--3, .grid--4{grid-template-columns:repeat(2,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .split{grid-template-columns:1fr;gap:32px;}
  .stats{flex-wrap:wrap;}
  .stats__item{flex:1 1 50%;border-bottom:1px solid var(--border);}
}
@media (max-width: 720px){
  .utility-bar{display:none;}
  .main-nav{
    position:fixed;inset:76px 0 0 0;background:var(--ink);border-top:1px solid var(--border-soft);
    padding:24px;transform:translateX(100%);transition:transform .25s ease;overflow-y:auto;
  }
  .main-nav.is-open{transform:translateX(0);}
  .main-nav ul{flex-direction:column;gap:4px;}
  .main-nav a{display:block;padding:14px 4px;font-size:17px;border-bottom:1px solid var(--border-soft);}
  .nav-toggle{display:flex;}
  .nav-row__actions .btn{display:none;}
  .grid--2, .grid--3, .grid--4{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;padding:48px 0 24px;}
  .footer-bottom{flex-direction:column;gap:8px;}
  .hero{padding:48px 0 40px;}
  section{padding:56px 0;}
  .cta-band{padding:36px 20px;}
  .form-row{grid-template-columns:1fr;}
  .status-strip__inner{padding:16px 20px;}
}
