/* ═══════════════════════════════════════════════
   VLS Technology – Shared Stylesheet
   vlstechnology.com
═══════════════════════════════════════════════ */

:root {
  --navy:       #060f24;
  --navy-2:     #0d1f3c;
  --navy-3:     #112244;
  --blue:       #1d54d4;
  --blue-light: #3b7bff;
  --sky:        #64a6ff;
  --accent:     #00d4aa;
  --white:      #ffffff;
  --offwhite:   #f0f4ff;
  --muted:      #7b93c4;
  --border:     rgba(100,166,255,0.13);
  --card-bg:    rgba(255,255,255,0.04);
  --shadow:     0 8px 40px rgba(0,0,0,0.35);
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; font-size:16px; }
body {
  background: var(--navy);
  color: var(--white);
  font-family: 'DM Sans', sans-serif;
  line-height: 1.65;
  overflow-x: hidden;
}
body::before {
  content:'';
  position:fixed; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  pointer-events:none; z-index:0; opacity:.35;
}
::-webkit-scrollbar { width:6px; }
::-webkit-scrollbar-track { background:var(--navy); }
::-webkit-scrollbar-thumb { background:var(--blue); border-radius:3px; }

/* TYPOGRAPHY */
h1,h2,h3,h4,h5,h6 { font-family:'Sora',sans-serif; line-height:1.15; font-weight:700; }
a { color:inherit; text-decoration:none; }

/* UTILITY */
.container { max-width:1160px; margin:0 auto; padding:0 24px; }
.badge {
  display:inline-block;
  font-family:'Sora',sans-serif; font-size:11px; font-weight:600;
  letter-spacing:2.5px; text-transform:uppercase;
  color:var(--accent); padding:4px 12px;
  border:1px solid rgba(0,212,170,.3); border-radius:20px;
  margin-bottom:16px;
}
.section-title { font-size:clamp(2rem,4vw,2.9rem); font-weight:800; }
.section-sub { color:var(--muted); font-size:1.05rem; max-width:560px; margin-top:12px; }
.btn {
  display:inline-flex; align-items:center; gap:8px;
  padding:14px 30px; border-radius:8px;
  font-family:'Sora',sans-serif; font-size:14px; font-weight:600;
  cursor:pointer; transition:all .25s; border:none;
}
.btn-primary {
  background:linear-gradient(135deg,var(--blue),var(--blue-light));
  color:#fff; box-shadow:0 4px 20px rgba(29,84,212,.45);
}
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 8px 28px rgba(29,84,212,.55); }
.btn-outline { background:transparent; color:var(--white); border:1.5px solid var(--border); }
.btn-outline:hover { border-color:var(--blue-light); color:var(--blue-light); }
.btn svg { width:16px; height:16px; flex-shrink:0; }

/* ─── NAVBAR ─── */
#navbar {
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:20px 0; transition:background .3s,padding .3s,backdrop-filter .3s;
}
#navbar.scrolled {
  background:rgba(6,15,36,.88); backdrop-filter:blur(18px);
  padding:14px 0; border-bottom:1px solid var(--border);
}
.nav-inner { display:flex; align-items:center; justify-content:space-between; }
.nav-logo {
  display:flex; align-items:center; gap:10px;
  font-family:'Sora',sans-serif; font-weight:800; font-size:1.3rem;
}
.nav-logo .vls { color:var(--blue-light); }
.nav-logo .tech { color:var(--white); }
.nav-logo-dot {
  width:8px; height:8px; border-radius:50%;
  background:var(--accent); display:inline-block;
  margin-left:2px; margin-bottom:6px;
}
nav ul { list-style:none; display:flex; align-items:center; gap:4px; }
nav ul li a {
  padding:8px 14px; font-size:14px; font-weight:500;
  color:var(--muted); border-radius:6px;
  transition:color .2s,background .2s;
}
nav ul li a:hover { color:var(--white); background:rgba(255,255,255,.06); }
nav ul li a.active { color:var(--white); }
.nav-dropdown { position:relative; }
.nav-dropdown-menu {
  display:none; position:absolute; top:calc(100% + 8px); left:0;
  background:var(--navy-2); border:1px solid var(--border);
  border-radius:10px; min-width:180px; padding:8px;
  box-shadow:var(--shadow);
}
.nav-dropdown:hover .nav-dropdown-menu { display:block; }
.nav-dropdown-menu a {
  display:flex; align-items:center; gap:8px;
  padding:10px 12px !important; border-radius:6px;
  font-size:13.5px !important; color:var(--muted) !important;
}
.nav-dropdown-menu a:hover { background:rgba(255,255,255,.07) !important; color:var(--white) !important; }
.nav-dot { width:7px; height:7px; border-radius:50%; flex-shrink:0; }
.dot-green { background:var(--accent); }
.dot-blue { background:var(--blue-light); }
.dot-orange { background:#f97316; }
.nav-cta {
  background:linear-gradient(135deg,var(--blue),var(--blue-light)) !important;
  color:#fff !important; padding:9px 20px !important;
  border-radius:8px !important; font-weight:600 !important;
  box-shadow:0 4px 16px rgba(29,84,212,.4);
}
.nav-cta:hover { transform:translateY(-1px); box-shadow:0 6px 20px rgba(29,84,212,.5) !important; }
.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:4px; }
.hamburger span { width:24px; height:2px; background:var(--white); border-radius:2px; transition:.3s; }
.mobile-nav {
  display:none; position:fixed; inset:0;
  background:var(--navy); z-index:99;
  flex-direction:column; align-items:center; justify-content:center; gap:24px;
}
.mobile-nav.open { display:flex; }
.mobile-nav a { font-family:'Sora',sans-serif; font-size:1.4rem; font-weight:600; color:var(--muted); transition:color .2s; }
.mobile-nav a:hover { color:var(--white); }
.mobile-close { position:absolute; top:24px; right:24px; background:none; border:none; color:var(--white); font-size:28px; cursor:pointer; }

/* ─── PAGE HERO (inner pages) ─── */
.page-hero {
  padding:140px 0 80px; position:relative; overflow:hidden;
  border-bottom:1px solid var(--border);
}
.page-hero-glow {
  position:absolute; width:500px; height:500px; border-radius:50%;
  background:radial-gradient(circle,rgba(29,84,212,.18) 0%,transparent 70%);
  filter:blur(60px); top:-100px; right:-100px; pointer-events:none;
}
.page-hero-grid {
  position:absolute; inset:0;
  background-image:linear-gradient(rgba(100,166,255,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(100,166,255,.04) 1px,transparent 1px);
  background-size:60px 60px; pointer-events:none;
}
.page-hero-inner { position:relative; z-index:1; }
.breadcrumb { display:flex; align-items:center; gap:8px; margin-bottom:20px; font-size:13px; color:var(--muted); }
.breadcrumb a { color:var(--muted); transition:color .2s; }
.breadcrumb a:hover { color:var(--sky); }
.breadcrumb span { color:var(--border); }
.page-hero-title { font-size:clamp(2.2rem,5vw,3.5rem); font-weight:800; margin-bottom:16px; }
.page-hero-desc { color:var(--muted); font-size:1.05rem; max-width:580px; }

/* ─── FOOTER ─── */
footer { border-top:1px solid var(--border); padding:60px 0 32px; }
.footer-inner { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; margin-bottom:48px; }
.footer-brand-desc { color:var(--muted); font-size:14px; margin:16px 0 24px; max-width:280px; line-height:1.7; }
.footer-social { display:flex; gap:10px; }
.social-btn {
  width:36px; height:36px; border-radius:8px;
  background:var(--card-bg); border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  transition:border-color .25s,background .25s; color:var(--muted);
}
.social-btn:hover { border-color:var(--blue-light); color:var(--blue-light); background:rgba(29,84,212,.08); }
.social-btn svg { width:15px; height:15px; }
.footer-col h5 { font-size:13px; font-weight:700; margin-bottom:18px; color:var(--white); letter-spacing:.5px; }
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:10px; }
.footer-col ul li a { font-size:14px; color:var(--muted); transition:color .2s; }
.footer-col ul li a:hover { color:var(--white); }
.footer-bottom {
  border-top:1px solid var(--border); padding-top:28px;
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px;
}
.footer-copy { font-size:13px; color:var(--muted); }
.footer-copy span { color:var(--sky); }

/* ─── ANIMATIONS ─── */
.reveal { opacity:0; transform:translateY(28px); transition:opacity .65s ease,transform .65s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal-delay-1 { transition-delay:.1s; }
.reveal-delay-2 { transition-delay:.2s; }
.reveal-delay-3 { transition-delay:.3s; }
.reveal-delay-4 { transition-delay:.4s; }

/* ─── CARD ─── */
.card {
  background:var(--card-bg); border:1px solid var(--border); border-radius:20px;
  padding:32px; transition:border-color .3s,transform .3s;
}
.card:hover { border-color:rgba(29,84,212,.3); transform:translateY(-4px); }

/* ─── FORM ELEMENTS ─── */
.form-group { display:flex; flex-direction:column; gap:6px; margin-bottom:16px; }
.form-group label { font-size:12px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.8px; }
.form-group input,
.form-group textarea,
.form-group select {
  background:rgba(255,255,255,.04); border:1px solid var(--border);
  border-radius:8px; padding:12px 14px;
  color:var(--white); font-family:'DM Sans',sans-serif; font-size:14px;
  outline:none; transition:border-color .25s; resize:none;
}
.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus { border-color:var(--blue-light); }
.form-group input::placeholder,
.form-group textarea::placeholder { color:rgba(255,255,255,.25); }
.form-group select option { background:var(--navy-2); }

/* ─── RESPONSIVE ─── */
@media(max-width:1024px) {
  .footer-inner { grid-template-columns:1fr 1fr; }
}
@media(max-width:768px) {
  nav ul { display:none; }
  .hamburger { display:flex; }
  .footer-inner { grid-template-columns:1fr; gap:32px; }
}
