/* ===================================================================
   APEXIUM — futuristic, 3D corporate theme
   Design tokens
   =================================================================== */
:root{
  --bg:            #05070e;
  --bg-2:          #080b13;
  --ink:           #eaf1fb;
  --ink-soft:      #aeb9cc;
  --ink-mute:      #6b7689;
  --line:          rgba(150,178,214,.12);
  --line-strong:   rgba(150,178,214,.22);

  --cyan:          #4f8bf5;
  --cyan-deep:     #2b5fc4;
  --teal:          #6f9cf0;
  --chrome-1:      #f3f8ff;
  --chrome-2:      #aebfd4;
  --chrome-3:      #6d7e95;

  --glass:         rgba(18,26,42,.55);
  --glass-2:       rgba(22,31,49,.7);

  --shadow:        0 30px 80px -30px rgba(0,0,0,.7);
  --glow:          0 0 60px -10px rgba(79,139,245,.55);

  --grad-cyan:     linear-gradient(120deg,#9cc0ff 0%, #4f8bf5 35%, #6f9cf0 70%, #a8c8ff 100%);
  --grad-chrome:   linear-gradient(135deg,#ffffff 0%,#c4d4e8 30%,#7c8da4 50%,#dfeaf8 75%,#ffffff 100%);

  --r-sm: 12px;
  --r-md: 18px;
  --r-lg: 26px;
  --ease: cubic-bezier(.22,.61,.36,1);
  --maxw: 1240px;
  --pad: clamp(20px, 5vw, 72px);
  --font-body: "Sora", system-ui, -apple-system, sans-serif;
  --font-heading: "Space Grotesk", "Sora", system-ui, sans-serif;
  --font-accent: "Chakra Petch", "Space Grotesk", system-ui, sans-serif;
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  font-family:var(--font-body), system-ui, -apple-system, sans-serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  cursor:none;
}
body.menu-open{ overflow:hidden; }
@media (hover:none){ body{ cursor:auto; } }

a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{ font-family:var(--font-heading), var(--font-body), sans-serif; line-height:1.04; letter-spacing:-.02em; font-weight:600; }
img,svg{ display:block; max-width:100%; }
::selection{ background:rgba(79,139,245,.3); color:#fff; }

/* ===================================================================
   Ambient backdrop
   =================================================================== */
.grain{
  position:fixed; inset:0; z-index:1; pointer-events:none; opacity:.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.aurora{ position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.aurora__blob{
  position:absolute; border-radius:50%; filter:blur(90px); opacity:.45;
  animation:drift 24s var(--ease) infinite alternate;
}
.aurora .a1{ width:48vw; height:48vw; left:-10vw; top:-10vw; background:radial-gradient(circle,#12386e,transparent 65%); }
.aurora .a2{ width:42vw; height:42vw; right:-12vw; top:18vh; background:radial-gradient(circle,#16305e,transparent 65%); animation-delay:-8s; }
.aurora .a3{ width:50vw; height:50vw; left:20vw; bottom:-20vw; background:radial-gradient(circle,#133a72,transparent 65%); animation-delay:-14s; }
@keyframes drift{ to{ transform:translate3d(6vw,4vh,0) scale(1.15); } }

/* ===================================================================
   Custom cursor
   =================================================================== */
.cursor,.cursor-dot{ position:fixed; top:0; left:0; z-index:9999; pointer-events:none; border-radius:50%; mix-blend-mode:difference; }
.cursor{ width:34px; height:34px; border:1.5px solid #fff; transform:translate(-50%,-50%); transition:width .25s,height .25s,background .25s,border-color .25s; }
.cursor-dot{ width:5px; height:5px; background:#fff; transform:translate(-50%,-50%); }
.cursor.is-hover{ width:64px; height:64px; background:rgba(255,255,255,.1); border-color:transparent; }
.cursor.is-view::after{ content:'VIEW'; font:600 9px var(--font-heading); letter-spacing:.1em; color:#fff; }
.cursor.is-hover{ display:grid; place-items:center; }
@media (hover:none){ .cursor,.cursor-dot{ display:none; } }

/* ===================================================================
   Preloader
   =================================================================== */
.preloader{
  position:fixed; inset:0; z-index:10000; background:var(--bg);
  display:grid; place-content:center; gap:26px; justify-items:center;
  transition:opacity .8s var(--ease), visibility .8s;
}
.preloader.done{ opacity:0; visibility:hidden; }
.preloader__mark{ position:relative; width:200px; height:200px; display:grid; place-items:center; }
.preloader__logo-img{ width:156px; height:auto; filter:drop-shadow(0 4px 18px rgba(79,139,245,.4)); }
.preloader__logo-img.apexium-logo--white{ filter:brightness(0) saturate(100%) invert(100%) drop-shadow(0 4px 18px rgba(79,139,245,.4)); }
.preloader__d{ font:700 40px var(--font-heading); background:var(--grad-chrome); -webkit-background-clip:text; background-clip:text; color:transparent; }
.preloader__ring{ position:absolute; inset:0; border-radius:50%; border:2px solid rgba(150,178,214,.1); border-top-color:var(--cyan); animation:spin 1s linear infinite; }
@keyframes spin{ to{ transform:rotate(360deg); } }
.preloader__bar{ width:200px; height:2px; background:var(--line-strong); border-radius:2px; overflow:hidden; }
.preloader__bar i{ display:block; height:100%; width:0; background:var(--grad-cyan); box-shadow:var(--glow); }
.preloader__label{ font:500 11px var(--font-heading); letter-spacing:.34em; text-transform:uppercase; color:var(--ink-mute); }

/* ===================================================================
   Buttons
   =================================================================== */
.btn{
  position:relative; display:inline-flex; align-items:center; gap:.6em;
  padding:.85em 1.5em; border-radius:100px; font:600 14px var(--font-heading);
  letter-spacing:.01em; cursor:none; white-space:nowrap; overflow:hidden;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), color .3s, border-color .3s;
}
.btn svg path{ transition:transform .35s var(--ease); }
.btn:hover svg{ transform:translateX(2px); }
.btn--lg{ padding:1.05em 2em; font-size:15px; }
.btn--solid{ background:var(--grad-cyan); color:#022; box-shadow:0 12px 36px -12px rgba(79,139,245,.6); }
.btn--solid:hover{ transform:translateY(-3px); box-shadow:0 18px 50px -14px rgba(79,139,245,.85); }
.btn--line{ border:1px solid var(--line-strong); color:var(--ink); background:rgba(255,255,255,.02); }
.btn--line:hover{ border-color:var(--cyan); color:#fff; transform:translateY(-3px); }
.btn--ghost{ border:1px solid var(--line-strong); color:var(--ink); background:rgba(255,255,255,.03); backdrop-filter:blur(8px); }
.btn--ghost:hover{ border-color:var(--cyan); color:#fff; }

/* ===================================================================
   Scroll progress + back-to-top
   =================================================================== */
.scroll-progress{ position:fixed; top:0; left:0; height:2px; width:0; z-index:200; background:var(--grad-cyan); box-shadow:0 0 12px rgba(79,139,245,.7); transition:width .1s linear; }
.to-top{
  position:fixed; right:clamp(18px,3vw,34px); bottom:clamp(18px,3vw,34px); z-index:120;
  width:48px; height:48px; display:grid; place-items:center; border-radius:50%;
  border:1px solid var(--line-strong); background:var(--glass-2); backdrop-filter:blur(10px);
  color:var(--ink); cursor:none; opacity:0; transform:translateY(20px) scale(.8); pointer-events:none;
  transition:opacity .4s var(--ease), transform .4s var(--ease), border-color .3s, color .3s;
}
.to-top.show{ opacity:1; transform:none; pointer-events:auto; }
.to-top:hover{ border-color:var(--cyan); color:var(--cyan); transform:translateY(-3px); }
@media (hover:none){ .to-top{ cursor:pointer; } }

/* ===================================================================
   Navigation — floating pill (Gigai-Kripa style)
   =================================================================== */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; justify-content:center;
  padding:16px var(--pad);
  transition:padding .4s var(--ease);
}
.nav.scrolled{ padding-top:10px; padding-bottom:0; }

.nav__bar{
  width:100%; max-width:var(--maxw);
  display:flex; align-items:center; gap:20px;
  padding:8px 10px 8px 24px;
  border-radius:100px;
  background:rgba(14,19,30,.5);
  border:1px solid rgba(150,178,214,.16);
  backdrop-filter:blur(18px) saturate(150%);
  box-shadow:0 24px 55px -26px rgba(0,0,0,.75), inset 0 1px 0 rgba(255,255,255,.08);
  transition:box-shadow .4s var(--ease), background .4s, border-color .4s;
}
.nav.scrolled .nav__bar{ background:rgba(10,15,24,.72); border-color:rgba(150,178,214,.22); box-shadow:0 18px 44px -22px rgba(0,0,0,.8), inset 0 1px 0 rgba(255,255,255,.1); }

/* logo sits directly on the glass (no block) */
.nav__brand{ display:flex; align-items:center; cursor:none; }
.nav__logo-img{ height:52px; width:auto; filter:drop-shadow(0 2px 10px rgba(79,139,245,.35)); transition:filter .4s; }
.nav__logo-img.apexium-logo--white{ filter:brightness(0) saturate(100%) invert(100%) drop-shadow(0 2px 10px rgba(79,139,245,.35)); }
.nav__brand:hover .nav__logo-img{ filter:drop-shadow(0 2px 14px rgba(79,139,245,.7)); }
.nav__brand:hover .nav__logo-img.apexium-logo--white{ filter:brightness(0) saturate(100%) invert(100%) drop-shadow(0 2px 14px rgba(79,139,245,.7)); }
.nav__logo{ filter:drop-shadow(0 2px 10px rgba(79,139,245,.35)); }
.nav__wordmark{ display:flex; flex-direction:column; line-height:.92; font:700 17px var(--font-heading); letter-spacing:.12em; }
.nav__wordmark small{ font-size:8.5px; letter-spacing:.42em; color:var(--cyan); font-weight:500; }

/* centered dark nav links on the light pill */
.nav__links{ display:flex; gap:28px; margin:0 auto; align-items:center; }
.nav__item{ position:relative; display:flex; align-items:center; }
.nav__links a{ position:relative; display:inline-flex; align-items:center; gap:8px; font:500 15px var(--font-body); color:var(--ink-soft); padding:6px 0; cursor:none; transition:color .3s; }
.nav__links a::after{ content:''; position:absolute; left:0; bottom:0; width:0; height:2px; border-radius:2px; background:var(--grad-cyan); transition:width .35s var(--ease); }
.nav__links a:hover{ color:#fff; }
.nav__links a:hover::after, .nav__links a.active::after{ width:100%; }
.nav__links a.active{ color:#fff; }
.nav__item.is-active > a{ color:#fff; }
.nav__caret{ width:14px; height:14px; opacity:.68; transition:transform .28s var(--ease), opacity .28s var(--ease); }
.nav__item--has-children:hover .nav__caret,
.nav__item--has-children.is-active .nav__caret{ transform:rotate(180deg); opacity:1; }
.nav__dropdown{
  position:absolute;
  top:100%;
  left:50%;
  min-width:220px;
  display:grid;
  gap:4px;
  padding:14px;
  border-radius:20px;
  border:1px solid rgba(150,178,214,.18);
  background:rgba(9,13,22,.96);
  backdrop-filter:blur(18px);
  box-shadow:0 24px 50px -26px rgba(0,0,0,.78);
  opacity:0;
  visibility:hidden;
  transform:translate(-50%, 14px);
  transition:opacity .26s var(--ease), transform .26s var(--ease), visibility .26s;
}
.nav__item--has-children:hover .nav__dropdown,
.nav__item--has-children:focus-within .nav__dropdown{
  opacity:1;
  visibility:visible;
  transform:translate(-50%, 10px);
}
.nav__dropdown a{
  padding:10px 12px;
  border-radius:12px;
  color:var(--ink-soft);
  background:transparent;
}
.nav__dropdown a::after{ display:none; }
.nav__dropdown a:hover,
.nav__dropdown a.active{
  color:#fff;
  background:rgba(79,139,245,.08);
}

.nav__cta{ flex:0 0 auto; }
.nav__burger{ display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:8px; margin-left:auto; margin-right:6px; }
.nav__burger span{ width:24px; height:2px; background:var(--ink); border-radius:2px; transition:.3s var(--ease); }
.nav__burger.open span:nth-child(1){ transform:translateY(3.5px) rotate(45deg); }
.nav__burger.open span:nth-child(2){ transform:translateY(-3.5px) rotate(-45deg); }

.mobile-menu{
  position:fixed; inset:0 0 0 auto; width:min(82vw,360px); z-index:99;
  background:rgba(7,10,19,.96); backdrop-filter:blur(20px);
  border-left:1px solid var(--line); padding:110px 32px 40px;
  display:flex; flex-direction:column; gap:8px;
  transform:translateX(100%); transition:transform .5s var(--ease);
}
.mobile-menu.open{ transform:translateX(0); }
.mobile-menu__group{ display:grid; gap:6px; }
.mobile-menu a{ padding:14px 0; font:600 19px var(--font-heading); border-bottom:1px solid var(--line); color:var(--ink); }
.mobile-menu__sub{ display:grid; gap:4px; padding-left:16px; }
.mobile-menu__sub a{
  padding:8px 0 10px;
  font-size:14px;
  color:var(--ink-soft);
}
.mobile-menu .btn{ margin-top:18px; justify-content:center; }

/* ===================================================================
   HERO
   =================================================================== */
.hero{ position:relative; min-height:100svh; display:flex; align-items:center; overflow:hidden; }
.hero__canvas{ position:absolute; inset:0; width:100%; height:100%; z-index:2; }
/* Fallback orb when WebGL is unavailable */
.no-3d .hero__canvas{ background:
  radial-gradient(38% 46% at 70% 46%, rgba(143,180,255,.55), rgba(79,139,245,.25) 40%, transparent 70%),
  radial-gradient(30% 38% at 68% 44%, rgba(255,255,255,.5), transparent 60%);
  filter:blur(2px); }
.no-3d .preloader{ display:none; }
.hero__veil{
  position:absolute; inset:0; z-index:3; pointer-events:none;
  background:
    radial-gradient(120% 80% at 70% 40%, transparent 30%, rgba(5,7,14,.5) 78%),
    linear-gradient(180deg, rgba(5,7,14,.55) 0%, transparent 22%, transparent 60%, var(--bg) 100%);
}
.hero__inner{ position:relative; z-index:4; width:100%; max-width:var(--maxw); margin:0 auto; padding:0 var(--pad); }
.hero__eyebrow{
  display:inline-flex; align-items:center; gap:10px; margin-bottom:26px;
  padding:8px 16px; border:1px solid var(--line-strong); border-radius:100px;
  background:var(--glass); backdrop-filter:blur(10px);
  font:500 12.5px var(--font-heading); letter-spacing:.06em; color:var(--ink-soft);
}
.hero__eyebrow .dot{ width:7px; height:7px; border-radius:50%; background:var(--cyan); box-shadow:0 0 12px var(--cyan); animation:pulse 2s infinite; }
@keyframes pulse{ 0%,100%{ opacity:1; } 50%{ opacity:.35; } }

.hero__title{ font-size:clamp(2.7rem, 8vw, 6.6rem); font-weight:700; margin-bottom:26px; }
.hero:not(.hero--page) .hero__title{
  font-size:clamp(2.2rem, 6.3vw, 5.15rem);
  font-family:"Orbitron", var(--font-accent), var(--font-heading), sans-serif;
  font-weight:800;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.hero__title .line{ display:block; overflow:hidden; }
.hero__title .word{ display:inline-block; transform:translateY(110%); }
.hero__title .grad{ background:var(--grad-cyan); -webkit-background-clip:text; background-clip:text; color:transparent; filter:drop-shadow(0 6px 30px rgba(79,139,245,.25)); }

.hero__lede{ max-width:560px; font-size:clamp(1rem,1.5vw,1.22rem); color:var(--ink-soft); margin-bottom:34px; }
.hero__actions{ display:flex; flex-wrap:wrap; gap:14px; margin-bottom:40px; }
.hero__pills{ display:flex; flex-wrap:wrap; gap:10px; }
.hero__pills span{ padding:7px 14px; border:1px solid var(--line); border-radius:100px; font:500 12px var(--font-heading); color:var(--ink-mute); background:rgba(255,255,255,.015); }

.hero__scroll{ position:absolute; left:50%; bottom:104px; z-index:5; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:10px; font:500 10px var(--font-heading); letter-spacing:.3em; text-transform:uppercase; color:var(--ink-mute); cursor:none; }
.hero__scroll i{ width:1px; height:46px; background:linear-gradient(var(--cyan),transparent); position:relative; overflow:hidden; }
.hero__scroll i::after{ content:''; position:absolute; top:-50%; left:0; width:100%; height:50%; background:var(--cyan); animation:scrolldot 1.8s var(--ease) infinite; }
@keyframes scrolldot{ to{ top:100%; } }

.hero__marquee{ position:absolute; left:0; right:0; bottom:0; z-index:5; padding:16px 0; border-top:1px solid var(--line); background:linear-gradient(transparent,rgba(5,7,14,.6)); overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.hero__marquee-track{ display:flex; align-items:center; gap:30px; width:max-content; animation:marquee 32s linear infinite; }
.hero__marquee-track span{ font:500 13px var(--font-heading); letter-spacing:.08em; color:var(--ink-soft); white-space:nowrap; }
.hero__marquee-track span:nth-child(even){ color:var(--cyan); }
@keyframes marquee{ to{ transform:translateX(-50%); } }

/* ===================================================================
   Section scaffolding
   =================================================================== */
.section{ position:relative; z-index:5; max-width:var(--maxw); margin:0 auto; padding:clamp(90px,12vw,160px) var(--pad); }
.section__head{ max-width:760px; margin-bottom:clamp(44px,6vw,72px); }
.section__head h2{ font-size:clamp(2rem,4.4vw,3.5rem); margin-top:18px; }
.section__sub{ margin-top:22px; color:var(--ink-soft); font-size:1.06rem; max-width:600px; }
.kicker{ display:inline-flex; align-items:center; gap:12px; font:600 12px var(--font-heading); letter-spacing:.22em; text-transform:uppercase; color:var(--cyan); }
.kicker span{ display:grid; place-items:center; width:30px; height:30px; border:1px solid var(--line-strong); border-radius:8px; color:var(--ink-soft); font-size:11px; }

/* keep section content above decorative parallax layers */
.section{ isolation:isolate; }
.section > .deco{ z-index:0; }
.section__head, .firm__grid, .stats, .caps__grid, .why__grid, .industries,
.steps, .quote, .track__panel, .contact__panel{ position:relative; z-index:1; }

/* ===================================================================
   Decorative parallax layers
   =================================================================== */
.deco{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.deco__orb{ position:absolute; border-radius:50%; filter:blur(60px); opacity:.5; will-change:transform; }
.deco__orb.c{ background:radial-gradient(circle,rgba(79,139,245,.5),transparent 65%); }
.deco__orb.t{ background:radial-gradient(circle,rgba(111,156,240,.45),transparent 65%); }
.deco__ring{ position:absolute; border:1px solid var(--line-strong); border-radius:50%; will-change:transform; }
.deco__ring::after{ content:''; position:absolute; inset:18%; border:1px solid var(--line); border-radius:50%; }
.deco__num{ position:absolute; font:700 clamp(6rem,14vw,13rem) var(--font-heading); line-height:.8; color:transparent; -webkit-text-stroke:1px rgba(150,178,214,.07); will-change:transform; user-select:none; }
.deco__plus{ position:absolute; width:16px; height:16px; will-change:transform; }
.deco__plus::before,.deco__plus::after{ content:''; position:absolute; background:var(--line-strong); }
.deco__plus::before{ left:50%; top:0; width:1px; height:100%; transform:translateX(-50%); }
.deco__plus::after{ top:50%; left:0; height:1px; width:100%; transform:translateY(-50%); }

/* reveal animation */
.reveal{ opacity:0; transform:translateY(34px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; } }

/* ===================================================================
   FIRM
   =================================================================== */
.firm__grid{ display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(28px,4vw,60px); align-items:start; }
.firm__lead{ font-size:clamp(1.18rem,2vw,1.55rem); font-family:var(--font-heading); font-weight:400; line-height:1.45; color:var(--ink); }
.firm__body{ color:var(--ink-soft); font-size:1.04rem; }

.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:clamp(50px,7vw,90px); }
.stat{ position:relative; padding:30px 26px; border:1px solid var(--line); border-radius:var(--r-md); background:var(--glass); backdrop-filter:blur(8px); overflow:hidden; transition:border-color .4s, transform .2s; transform-style:preserve-3d; }
.stat::before{ content:''; position:absolute; inset:0; background:radial-gradient(120% 100% at 0 0,rgba(79,139,245,.1),transparent 60%); opacity:0; transition:opacity .4s; }
.stat:hover{ border-color:var(--line-strong); }
.stat:hover::before{ opacity:1; }
.stat__num{ display:block; font:700 clamp(2.4rem,5vw,3.4rem) var(--font-heading); line-height:1; background:var(--grad-chrome); -webkit-background-clip:text; background-clip:text; color:transparent; }
.stat__label{ display:block; margin-top:12px; font-size:13px; color:var(--ink-soft); }

/* ===================================================================
   CAPABILITIES
   =================================================================== */
.caps__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.cap{ position:relative; padding:32px 30px; border:1px solid var(--line); border-radius:var(--r-lg); background:var(--glass); backdrop-filter:blur(8px); overflow:hidden; transition:border-color .4s var(--ease), transform .2s var(--ease), background .4s; transform-style:preserve-3d; }
.cap::after{ content:''; position:absolute; inset:0; border-radius:inherit; padding:1px; background:linear-gradient(140deg,rgba(79,139,245,.5),transparent 40%); -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; opacity:0; transition:opacity .4s; }
.cap:hover{ border-color:transparent; transform:translateY(-4px); background:var(--glass-2); }
.cap:hover::after{ opacity:1; }
.cap--wide{ grid-column:span 1; }
.cap__index{ position:absolute; top:24px; right:26px; font:600 12px var(--font-heading); letter-spacing:.1em; color:var(--ink-mute); }
.cap__icon{ width:50px; height:50px; display:grid; place-items:center; border:1px solid var(--line-strong); border-radius:14px; margin-bottom:22px; color:var(--cyan); background:rgba(79,139,245,.05); transition:transform .4s var(--ease), box-shadow .4s; }
.cap__icon svg{ width:24px; height:24px; }
.cap:hover .cap__icon{ transform:translateZ(30px) scale(1.05); box-shadow:0 10px 30px -8px rgba(79,139,245,.5); }
.cap h3{ font-size:1.18rem; margin-bottom:10px; }
.cap p{ color:var(--ink-soft); font-size:.96rem; }
.cap__glow{ position:absolute; right:-40px; bottom:-40px; width:160px; height:160px; border-radius:50%; background:radial-gradient(circle,rgba(111,156,240,.35),transparent 65%); filter:blur(20px); opacity:.6; }
@media (min-width:900px){ .cap--wide{ grid-column:span 2; display:flex; flex-direction:column; justify-content:center; } }

/* ===================================================================
   APPROACH
   =================================================================== */
.steps{ list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:18px; counter-reset:s; }
.step{ position:relative; padding:34px 28px 30px; border:1px solid var(--line); border-radius:var(--r-md); background:linear-gradient(180deg,var(--glass),transparent); overflow:hidden; transition:transform .2s, border-color .4s; transform-style:preserve-3d; }
.step:hover{ border-color:var(--line-strong); }
.step__no{ font:700 14px var(--font-heading); color:var(--cyan); letter-spacing:.1em; }
.step h3{ font-size:1.16rem; margin:18px 0 10px; }
.step p{ color:var(--ink-soft); font-size:.95rem; }
.step::before{ content:''; position:absolute; top:0; left:0; width:100%; height:2px; background:var(--grad-cyan); transform:scaleX(0); transform-origin:left; transition:transform .5s var(--ease); }
.step:hover::before{ transform:scaleX(1); }

.quote{ margin-top:clamp(48px,6vw,80px); padding:clamp(32px,5vw,56px); border:1px solid var(--line); border-radius:var(--r-lg); background:var(--glass); backdrop-filter:blur(8px); text-align:center; }
.quote p{ font:400 clamp(1.3rem,3vw,2.1rem) var(--font-heading); line-height:1.35; max-width:880px; margin:0 auto 18px; background:linear-gradient(180deg,#fff,#aebfd4); -webkit-background-clip:text; background-clip:text; color:transparent; }
.quote cite{ font-style:normal; color:var(--cyan); font:500 13px var(--font-heading); letter-spacing:.1em; }

/* ===================================================================
   TRACK RECORD
   =================================================================== */
.track__panel{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(32px,5vw,72px); align-items:center; padding:clamp(36px,5vw,64px); border:1px solid var(--line); border-radius:var(--r-lg); background:var(--glass); backdrop-filter:blur(10px); overflow:hidden; }
.track__copy h2{ font-size:clamp(1.9rem,3.6vw,3rem); margin:18px 0 22px; }
.track__copy p{ color:var(--ink-soft); margin-bottom:30px; }
.track__visual{ position:relative; padding:26px; border:1px solid var(--line-strong); border-radius:var(--r-md); background:linear-gradient(160deg,rgba(79,139,245,.06),rgba(7,10,19,.6)); overflow:hidden; }
.track__globe{ display:block; width:100%; height:300px; }
.no-3d .track__globe{ background:radial-gradient(circle at 50% 45%,rgba(79,139,245,.25),transparent 60%); border-radius:50%; }
.globe__caption{ display:flex; align-items:center; gap:10px; justify-content:center; margin:-6px 0 18px; font:600 11px var(--font-heading); letter-spacing:.18em; text-transform:uppercase; color:var(--ink-mute); }
.globe__caption .dot{ width:6px; height:6px; border-radius:50%; background:var(--cyan); box-shadow:0 0 10px var(--cyan); animation:pulse 2s infinite; }
.ticker{ display:grid; gap:10px; margin-bottom:22px; }
.ticker__row{ display:flex; justify-content:space-between; align-items:center; padding:11px 15px; border:1px solid var(--line); border-radius:10px; background:rgba(5,7,14,.5); font:500 13px var(--font-heading); }
.ticker__row span{ color:var(--ink-soft); }
.ticker__row b{ font-weight:600; }
.ticker__row .up{ color:var(--teal); }
.track__chart svg{ width:100%; height:140px; }
.chart__line{ stroke-dasharray:700; stroke-dashoffset:700; }
.chart__line.draw{ animation:draw 2s var(--ease) forwards; }
@keyframes draw{ to{ stroke-dashoffset:0; } }

/* ===================================================================
   WHY DOMINANT
   =================================================================== */
.why__grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(28px,5vw,72px); align-items:start; }
.why__head h2{ font-size:clamp(1.9rem,3.8vw,3rem); margin:18px 0 20px; }
.why__lead{ color:var(--ink-soft); font-size:1.05rem; max-width:420px; }
.why__cards{ display:grid; gap:16px; }
.why__card{ position:relative; padding:26px 28px; border:1px solid var(--line); border-radius:var(--r-md); background:var(--glass); backdrop-filter:blur(8px); overflow:hidden; transition:border-color .4s, transform .2s; transform-style:preserve-3d; }
.why__card::before{ content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--grad-cyan); transform:scaleY(0); transform-origin:top; transition:transform .5s var(--ease); }
.why__card:hover{ border-color:var(--line-strong); }
.why__card:hover::before{ transform:scaleY(1); }
.why__num{ font:700 13px var(--font-heading); letter-spacing:.1em; color:var(--cyan); }
.why__card h3{ font-size:1.2rem; margin:12px 0 8px; }
.why__card p{ color:var(--ink-soft); font-size:.97rem; }

.industries{ margin-top:clamp(50px,7vw,80px); padding:30px clamp(22px,4vw,40px); border:1px solid var(--line); border-radius:var(--r-md); background:rgba(255,255,255,.015); display:flex; flex-wrap:wrap; align-items:center; gap:18px 30px; }
.industries__label{ font:600 12px var(--font-heading); letter-spacing:.14em; text-transform:uppercase; color:var(--ink-mute); margin-right:auto; }
.industries__list{ display:flex; flex-wrap:wrap; gap:10px 12px; }
.industries__list span{ padding:8px 16px; border:1px solid var(--line); border-radius:100px; font:500 13px var(--font-heading); color:var(--ink-soft); transition:.3s var(--ease); }
.industries__list span:hover{ color:#fff; border-color:var(--cyan); background:rgba(79,139,245,.06); }

/* ===================================================================
   CONTACT
   =================================================================== */
.contact__panel{ position:relative; display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(32px,5vw,64px); padding:clamp(34px,5vw,60px); border:1px solid var(--line-strong); border-radius:var(--r-lg); background:radial-gradient(120% 130% at 100% 0,rgba(79,139,245,.08),transparent 55%),var(--glass); backdrop-filter:blur(12px); overflow:hidden; }
.contact__panel::before{ content:''; position:absolute; top:-60%; right:-10%; width:80%; height:160%; background:conic-gradient(from 0deg,transparent,rgba(79,139,245,.06),transparent 32%); animation:spin 18s linear infinite; pointer-events:none; }
.contact__aside{ position:relative; }
.contact__title{ font-size:clamp(1.9rem,3.6vw,2.9rem); margin:18px 0 18px; }
.contact__sub{ color:var(--ink-soft); font-size:1.05rem; margin-bottom:34px; max-width:42ch; }
.contact__details{ list-style:none; display:grid; gap:18px; }
.contact__details li{ display:flex; align-items:center; gap:14px; }
.contact__ico{ flex:0 0 auto; width:44px; height:44px; display:grid; place-items:center; border:1px solid var(--line-strong); border-radius:12px; color:var(--cyan); background:rgba(79,139,245,.05); }
.contact__ico svg{ width:20px; height:20px; }
.contact__details b{ display:block; font:600 12px var(--font-heading); letter-spacing:.08em; text-transform:uppercase; color:var(--ink-mute); margin-bottom:3px; }
.contact__details span, .contact__details a{ color:var(--ink); font-size:.98rem; cursor:none; }
.contact__details a:hover{ color:var(--cyan); }

.contact__form{ position:relative; display:grid; gap:16px; align-content:start; }
.field{ display:grid; gap:8px; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field label{ font:600 12px var(--font-heading); letter-spacing:.06em; color:var(--ink-soft); }
.field input, .field textarea, .field select{
  width:100%; padding:13px 15px; border:1px solid var(--line-strong); border-radius:12px;
  background:rgba(5,7,14,.5); color:var(--ink); font:400 15px var(--font-body); cursor:none;
  transition:border-color .3s, box-shadow .3s, background .3s;
}
.field textarea{ resize:vertical; min-height:110px; }
.field input::placeholder, .field textarea::placeholder{ color:var(--ink-mute); }
.field input:focus, .field textarea:focus, .field select:focus{ outline:none; border-color:var(--cyan); box-shadow:0 0 0 3px rgba(79,139,245,.14); background:rgba(5,7,14,.7); }
.field input.invalid, .field textarea.invalid, .field select.invalid{ border-color:#ff6b7d; box-shadow:0 0 0 3px rgba(255,107,125,.14); }
.select-wrap{ position:relative; }
.select-wrap::after{ content:''; position:absolute; right:16px; top:50%; width:8px; height:8px; border-right:2px solid var(--ink-soft); border-bottom:2px solid var(--ink-soft); transform:translateY(-70%) rotate(45deg); pointer-events:none; }
.field select{ appearance:none; -webkit-appearance:none; }
.field select option{ background:#0a0e16; color:var(--ink); }
.contact__submit{ justify-content:center; margin-top:4px; }
.contact__note{ font-size:12.5px; color:var(--ink-mute); text-align:center; }
.contact__note.ok{ color:var(--teal); }
.contact__note.err{ color:#ff8593; }

/* ===================================================================
   Footer
   =================================================================== */
.footer{ position:relative; z-index:5; border-top:1px solid var(--line); padding:clamp(54px,7vw,84px) var(--pad) 36px; background:var(--bg-2); }
.footer__top{ max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:1.4fr 2fr; gap:clamp(34px,6vw,80px); }
.footer__logo-img{ height:76px; width:auto; filter:drop-shadow(0 3px 14px rgba(79,139,245,.22)); opacity:.95; }
.footer__logo-img.apexium-logo--white{ filter:brightness(0) saturate(100%) invert(100%) drop-shadow(0 3px 14px rgba(79,139,245,.22)); opacity:1; }
.footer__brand p{ margin-top:18px; max-width:340px; color:var(--ink-soft); font-size:.95rem; }
.footer__cols{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.footer__cols h4{ font:600 12px var(--font-heading); letter-spacing:.16em; text-transform:uppercase; color:var(--ink-mute); margin-bottom:16px; }
.footer__cols a{ display:block; padding:6px 0; color:var(--ink-soft); font-size:.95rem; transition:color .3s; cursor:none; }
.footer__cols a:hover{ color:var(--cyan); }
.footer__bottom{ max-width:var(--maxw); margin:48px auto 0; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:12.5px; color:var(--ink-mute); font-family:var(--font-heading); letter-spacing:.04em; }

/* ===================================================================
   Responsive
   =================================================================== */
@media (max-width:980px){
  .nav__links, .nav__cta{ display:none; }
  .nav__burger{ display:flex; }
  .firm__grid{ grid-template-columns:1fr; }
  .stats{ grid-template-columns:repeat(2,1fr); }
  .caps__grid{ grid-template-columns:repeat(2,1fr); }
  .cap--wide{ grid-column:span 2; }
  .steps{ grid-template-columns:repeat(2,1fr); }
  .track__panel{ grid-template-columns:1fr; }
  .why__grid{ grid-template-columns:1fr; }
  .contact__panel{ grid-template-columns:1fr; }
  .footer__top{ grid-template-columns:1fr; }
}
@media (max-width:560px){
  .stats, .caps__grid, .steps{ grid-template-columns:1fr; }
  .cap--wide{ grid-column:span 1; }
  .field-row{ grid-template-columns:1fr; }
  .industries{ flex-direction:column; align-items:flex-start; }
  .industries__label{ margin-right:0; }
  .footer__cols{ grid-template-columns:1fr 1fr; }
  .hero__scroll{ display:none; }
  .footer__bottom{ flex-direction:column; }
  .nav__logo-img{ height:62px; }
  .nav.scrolled .nav__logo-img{ height:56px; }
  .reviews__badge{
    width:100%;
    justify-content:flex-start;
    grid-template-columns:72px 44px minmax(0,1fr) auto;
    padding:14px;
  }
  .reviews__badge-art{ width:72px; flex-basis:72px; }
}

/* ===================================================================
   Hero strapline (relocated tagline)
   =================================================================== */
.hero__strap{ font:600 13px/1 var(--font-heading); letter-spacing:.36em; text-transform:uppercase; color:var(--cyan); margin:-6px 0 24px; }
/* Hero tagline uses the logo-style futuristic typeface (Chakra Petch) */
.hero__title{ font-family:var(--font-accent),var(--font-heading),sans-serif; letter-spacing:0; }
.hero__title .word{ line-height:1.02; }
/* brand "Capital" spaced like the logo wordmark beneath the mark */
.hero__title .hero__wm{ text-transform:uppercase; letter-spacing:.1em; }

/* ===================================================================
   Testimonials (Google Reviews)
   =================================================================== */
.reviews__head{
  max-width:none;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,430px);
  align-items:end;
  gap:26px 34px;
}
.reviews__head > div{ min-width:0; }
.reviews__head h2{
  max-width:11ch;
  line-height:.96;
}
.reviews__badge{
  width:100%;
  display:grid;
  grid-template-columns:84px 48px minmax(0,1fr) auto;
  align-items:center;
  gap:16px;
  padding:16px 20px 16px 16px;
  border:1px solid var(--line-strong);
  border-radius:24px;
  background:radial-gradient(140% 140% at 0 0,rgba(79,139,245,.1),transparent 62%),var(--glass);
  backdrop-filter:blur(8px);
  cursor:none;
  transition:border-color .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease);
}
.reviews__badge:hover{
  border-color:var(--cyan);
  transform:translateY(-2px);
  box-shadow:0 24px 42px -28px rgba(79,139,245,.35);
}
.reviews__badge-art{
  width:84px;
  height:auto;
  display:block;
  flex:0 0 84px;
  border-radius:14px;
  box-shadow:0 22px 30px -24px rgba(79,139,245,.52);
}
.reviews__g{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:14px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.035);
}
.reviews__badge-txt{ display:flex; flex-direction:column; gap:4px; line-height:1.1; }
.reviews__badge-txt b{ font:700 clamp(1.35rem,2vw,1.8rem) var(--font-heading); }
.reviews__badge-txt small{ font-size:12px; color:var(--ink-mute); }
.reviews__stars{ color:#7fb0ff; letter-spacing:3px; font-size:16px; white-space:nowrap; }
.reviews__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:44px; position:relative; z-index:1; }
.review{ display:flex; flex-direction:column; gap:16px; padding:28px 26px; border:1px solid var(--line); border-radius:var(--r-md); background:var(--glass); backdrop-filter:blur(8px); transition:border-color .4s var(--ease), transform .2s var(--ease); transform-style:preserve-3d; }
.review:hover{ border-color:var(--line-strong); }
.review__stars{ color:#7fb0ff; letter-spacing:3px; font-size:16px; }
.review p{ flex:1; color:var(--ink); font-size:1rem; line-height:1.6; }
.review__by{ display:flex; align-items:center; gap:12px; }
.review__ava{ width:40px; height:40px; border-radius:50%; display:grid; place-items:center; font:700 16px var(--font-heading); color:#04070e; background:var(--grad-cyan); }
.review__by div{ margin-right:auto; }
.review__by b{ display:block; font:600 14px var(--font-heading); }
.review__by small{ font-size:12px; color:var(--ink-mute); }
.reviews__note{ margin-top:22px; font-size:12px; color:var(--ink-mute); text-align:center; position:relative; z-index:1; }

/* ===================================================================
   FAQ
   =================================================================== */
.faq__list{ max-width:860px; margin:0 auto; display:grid; gap:14px; position:relative; z-index:1; }
.faq__item{ border:1px solid var(--line); border-radius:var(--r-md); background:var(--glass); backdrop-filter:blur(8px); overflow:hidden; transition:border-color .3s; }
.faq__item[open]{ border-color:var(--line-strong); }
.faq__item summary{ list-style:none; cursor:none; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:22px 24px; font:600 1.08rem var(--font-heading); color:var(--ink); }
.faq__item summary::-webkit-details-marker{ display:none; }
.faq__item summary:hover{ color:#fff; }
.faq__icon{ position:relative; flex:0 0 auto; width:20px; height:20px; }
.faq__icon::before, .faq__icon::after{ content:''; position:absolute; background:var(--cyan); border-radius:2px; transition:transform .3s var(--ease); }
.faq__icon::before{ left:0; top:9px; width:20px; height:2px; }
.faq__icon::after{ left:9px; top:0; width:2px; height:20px; }
.faq__item[open] .faq__icon::after{ transform:scaleY(0); }
.faq__body{ padding:0 24px 22px; color:var(--ink-soft); }
.faq__body p{ font-size:1rem; }
.faq__body a{ color:var(--cyan); }
.faq__item[open] .faq__body{ animation:faqIn .35s var(--ease); }
@keyframes faqIn{ from{ opacity:0; transform:translateY(-6px); } to{ opacity:1; transform:none; } }

@media (max-width:980px){
  .reviews__grid{ grid-template-columns:1fr 1fr; }
  .reviews__head{
    grid-template-columns:1fr;
    align-items:flex-start;
  }
  .reviews__badge{
    justify-self:start;
    max-width:520px;
  }
}
@media (max-width:640px){
  .reviews__grid{ grid-template-columns:1fr; }
  .reviews__badge{
    grid-template-columns:68px 1fr;
    gap:14px 16px;
    padding:14px;
  }
  .reviews__g{
    display:none;
  }
  .reviews__badge-art{
    width:68px;
    flex-basis:68px;
  }
  .reviews__stars{
    grid-column:2;
    justify-self:start;
  }
}
