/* ============================================================
   RIXLSOFT — DESIGN SYSTEM
   Deep navy + electric blue + cyan/mint accents
   Fonts: Plus Jakarta Sans (headings) · DM Sans (body) · Syne (logo)
============================================================ */
:root {
  --navy: #05101e;
  --navy2: #081628;
  --navy3: #0b1d35;
  --blue: #0a6ef5;
  --blue-h: #1a7fff;
  --cyan: #00c8f0;
  --mint: #00d4a0;
  --violet: #7c5cff;
  --light: #f4f7fc;
  --light2: #eaf0fb;
  --section-alt: #f6f9ff;
  --text: #0d1a2e;
  --text2: #3d4f6a;
  --text3: #6b7ea0;
  --border: #dce6f5;
  --grad: linear-gradient(135deg, #0a6ef5 0%, #00c8f0 100%);
  --grad-3: linear-gradient(120deg, #0a6ef5, #00c8f0 50%, #00d4a0);
  --font-h: 'Plus Jakarta Sans', system-ui, sans-serif;
  --font-logo: 'Syne', system-ui, sans-serif;
  --font-b: 'DM Sans', system-ui, sans-serif;
  --shadow: 0 4px 24px rgba(10,110,245,0.10);
  --shadow-lg: 0 20px 60px rgba(10,50,120,0.14);
  --ease: cubic-bezier(.2,.7,.2,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
  --nav-h: 72px;
}
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:var(--nav-h); }
body { font-family:var(--font-b); background:#fff; color:var(--text); line-height:1.65; overflow-x:hidden; -webkit-font-smoothing:antialiased; }
main { overflow-x:clip; }
img { max-width:100%; display:block; color:transparent; }
a { text-decoration:none; color:inherit; }
button { font:inherit; }
::selection { background:rgba(10,110,245,0.18); }
::-webkit-scrollbar { width:6px; }
::-webkit-scrollbar-track { background:var(--navy); }
::-webkit-scrollbar-thumb { background:var(--grad); border-radius:3px; }
:focus-visible { outline:2px solid var(--cyan); outline-offset:3px; border-radius:4px; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* ============================================================
   HELPERS
============================================================ */
.container { max-width:1240px; margin:0 auto; padding:0 32px; }
.sec { padding:84px 0; position:relative; }
.sec-sm { padding:56px 0; position:relative; }
.bg-light { background:var(--light); }
.bg-alt { background:var(--section-alt); }
.bg-dark { background:var(--navy); color:#fff; overflow:hidden; }

.grad-text, h1 em, h2 em {
  background:var(--grad-3); background-size:200% auto;
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  font-style:normal; animation:gradShift 6s linear infinite;
}
@keyframes gradShift { to { background-position:200% center; } }

.icon { width:1em; height:1em; flex-shrink:0; display:inline-block; vertical-align:middle; }

/* Buttons */
.btn {
  position:relative; display:inline-flex; align-items:center; gap:10px;
  padding:14px 28px; border-radius:10px; border:none; cursor:pointer; overflow:hidden; isolation:isolate;
  font-family:var(--font-h); font-size:14px; font-weight:600; letter-spacing:.01em;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), background .3s, color .3s, border-color .3s;
  white-space:nowrap;
}
.btn .icon { font-size:16px; transition:transform .3s var(--ease); }
.btn:hover .icon { transform:translateX(4px); }
.btn-blue { background:var(--grad); color:#fff; box-shadow:0 6px 24px rgba(10,110,245,0.35); }
.btn-blue::before {
  content:''; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(120deg, transparent 20%, rgba(255,255,255,.35) 50%, transparent 80%);
  transform:translateX(-120%); transition:transform .7s var(--ease);
}
.btn-blue:hover::before { transform:translateX(120%); }
.btn-blue:hover { box-shadow:0 12px 36px rgba(10,110,245,0.5); transform:translateY(-2px); }
.btn-outline-dark { background:rgba(255,255,255,.03); color:#fff; border:1.5px solid rgba(255,255,255,0.22); backdrop-filter:blur(6px); }
.btn-outline-dark:hover { border-color:var(--cyan); background:rgba(0,200,240,0.08); }
.btn-outline-blue { background:transparent; color:var(--blue); border:1.5px solid var(--blue); }
.btn-outline-blue:hover { background:var(--blue); color:#fff; }
.btn-ghost { background:transparent; color:var(--blue); padding:0; font-size:14px; }
.btn-sm { padding:10px 20px; font-size:13px; }

/* Section heads */
.sec-badge {
  display:inline-flex; align-items:center; gap:10px;
  font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--blue); margin-bottom:16px;
}
.sec-badge::before { content:''; width:28px; height:2px; background:var(--grad); border-radius:2px; }
.bg-dark .sec-badge, .light .sec-badge { color:var(--cyan); }
.sec-head { text-align:center; max-width:760px; margin:0 auto 44px; }
.sec-head.left { text-align:left; margin-left:0; }
.sec-head h2, .h2 {
  font-family:var(--font-h); font-size:clamp(28px,3.4vw,44px); line-height:1.1;
  font-weight:800; color:var(--text); margin-bottom:18px; letter-spacing:-0.025em;
}
.sec-head p { color:var(--text2); font-size:16px; font-weight:300; line-height:1.7; }
.bg-dark .sec-head h2, .light h2 { color:#fff; }
.bg-dark .sec-head p, .light p { color:rgba(255,255,255,0.62); }
.sec-head-row { display:flex; justify-content:space-between; align-items:flex-end; gap:32px; margin-bottom:40px; }
.sec-head-row .sec-head { margin-bottom:0; }

/* ============================================================
   REVEAL ANIMATIONS
============================================================ */
[data-reveal] { opacity:0; transition:opacity .9s var(--ease-out), transform .9s var(--ease-out), filter .9s var(--ease-out), clip-path 1.1s var(--ease-out); transition-delay:var(--d,0s); will-change:transform,opacity; }
[data-reveal="up"] { transform:translateY(40px); }
[data-reveal="down"] { transform:translateY(-30px); }
[data-reveal="left"] { transform:translateX(-50px); }
[data-reveal="right"] { transform:translateX(50px); }
[data-reveal="zoom"] { transform:scale(.9); }
[data-reveal="blur"] { filter:blur(12px); transform:translateY(20px); }
[data-reveal="clip"] { opacity:1; clip-path:inset(0 0 100% 0 round 20px); }
[data-reveal].in { opacity:1; transform:none; filter:none; }
[data-reveal="clip"].in { clip-path:inset(-10% -10% -10% -10% round 20px); }

/* Split words */
.split-word { display:inline-block; overflow:hidden; vertical-align:top; padding-bottom:.08em; margin-bottom:-.08em; }
.split-word > span { display:inline-block; transform:translateY(105%); transition:transform 1s var(--ease-out); transition-delay:calc(var(--i) * 60ms + var(--d, 0s)); }
.split-in .split-word > span { transform:none; }

/* Scroll progress */
.scroll-progress { position:fixed; top:0; left:0; height:3px; width:100%; transform-origin:0 50%; transform:scaleX(var(--p,0)); background:var(--grad-3); z-index:3001; pointer-events:none; }

/* ============================================================
   NAVIGATION
============================================================ */
.nav-bar {
  position:fixed; top:0; left:0; right:0; z-index:2000; height:var(--nav-h);
  background:rgba(5,16,30,.72); backdrop-filter:blur(16px) saturate(140%); -webkit-backdrop-filter:blur(16px) saturate(140%);
  border-bottom:1px solid rgba(255,255,255,0.06);
  transition:transform .45s var(--ease), background .3s, box-shadow .3s;
}
.nav-bar.scrolled { background:rgba(5,16,30,.94); box-shadow:0 8px 40px rgba(0,0,0,.35); }
.nav-bar.hide { transform:translateY(-100%); }
.nav-inner { display:flex; align-items:center; justify-content:space-between; height:var(--nav-h); }
.nav-logo { font-family:var(--font-logo); font-size:23px; font-weight:800; color:#fff; letter-spacing:-0.4px; flex-shrink:0; display:flex; align-items:center; }
.nav-logo em { color:var(--cyan); font-style:normal; }
.nav-logo i { display:inline-block; width:7px; height:7px; background:var(--cyan); border-radius:50%; margin-left:3px; box-shadow:0 0 12px var(--cyan); animation:pls 2.4s infinite; }
@keyframes pls { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(.75)} }

.nav-menu { display:flex; align-items:stretch; list-style:none; gap:2px; height:var(--nav-h); }
.nav-item { position:relative; display:flex; align-items:center; }
.nav-item.has-mega { position:static; }
.nav-link {
  display:flex; align-items:center; gap:6px; padding:10px 15px; border-radius:8px;
  color:rgba(255,255,255,0.82); font-size:14.5px; font-weight:500; cursor:pointer; white-space:nowrap;
  background:none; border:none; transition:color .2s, background .2s; position:relative;
}
.nav-link::after { content:''; position:absolute; left:15px; right:15px; bottom:-15px; height:2px; border-radius:2px; background:var(--grad); transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease); }
.nav-item.active > .nav-link, .nav-link:hover { color:#fff; }
.nav-item.active > .nav-link::after { transform:scaleX(1); }
.nav-caret { width:14px; height:14px; opacity:.6; transition:transform .3s var(--ease); }
.nav-item.active .nav-caret { transform:rotate(180deg); }
.nav-right { display:flex; align-items:center; gap:10px; }
.nav-careers { color:rgba(255,255,255,0.75); font-size:14px; font-weight:500; padding:8px 12px; border-radius:8px; transition:all .2s; }
.nav-careers:hover { color:#fff; background:rgba(255,255,255,0.07); }

/* Dropdown panels: open on hover (JS hover-intent adds .active; CSS :hover as fallback) */
.mega-drop, .small-drop {
  position:absolute; top:100%;
  background:#fff; border-radius:0 0 18px 18px;
  box-shadow:0 30px 80px rgba(5,20,50,0.28), 0 0 0 1px rgba(10,110,245,0.06);
  opacity:0; visibility:hidden; transform:translateY(10px); transform-origin:top center;
  transition:opacity .25s var(--ease), transform .3s var(--ease), visibility 0s .3s;
  z-index:3000; color:var(--text);
}
.small-drop { border-radius:14px; }
.mega-drop { left:50%; width:min(1180px, calc(100vw - 32px)); margin-left:calc(min(1180px, calc(100vw - 32px)) / -2); padding:0; overflow:hidden; }
.small-drop { left:50%; margin-left:-140px; width:280px; padding:10px; top:calc(100% - 10px); }
.nav-item.active > .mega-drop, .nav-item.active > .small-drop,
.no-js .nav-item:hover > .mega-drop, .no-js .nav-item:hover > .small-drop,
.nav-item:has(:focus-visible) > .mega-drop, .nav-item:has(:focus-visible) > .small-drop {
  opacity:1; visibility:visible; transform:none; transition-delay:0s;
}
.mega-drop::before { content:''; position:absolute; left:0; right:0; top:0; height:3px; background:var(--grad-3); }

/* Services mega: every service visible in practice columns + featured picks */
.ms { display:block; }
.ms-cols { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); padding:22px 12px 10px; }
.ms-col { padding:0 6px; }
.ms-col:not(:last-child) { border-right:1px solid #eef3fc; }
.ms-col-head { display:flex; align-items:center; gap:8px; font-family:var(--font-h); font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--blue); padding:0 6px 12px; margin-bottom:6px; border-bottom:1.5px solid #eef2ff; white-space:nowrap; }
.ms-col .drop-link { padding:7px 6px; gap:9px; font-size:13px; line-height:1.3; }
.ms-col .drop-link .d-icon { width:28px; height:28px; font-size:14px; border-radius:8px; }
.ms-foot { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:12px 18px; background:var(--light); border-top:1px solid var(--border); }
.ms-picks { display:flex; gap:10px; flex-wrap:wrap; }
.ms-pick { display:flex; align-items:center; gap:10px; padding:8px 14px 8px 8px; border-radius:12px; background:#fff; border:1.5px solid var(--border); font-family:var(--font-h); font-size:13.5px; font-weight:700; color:var(--text); transition:all .3s var(--ease); }
.ms-pick small { display:block; font-family:var(--font-b); font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--blue); }
.ms-pick .d-icon { width:34px; height:34px; border-radius:9px; display:grid; place-items:center; font-size:16px; background:var(--grad); color:#fff; }
.ms-pick .go { color:var(--blue); transition:transform .3s var(--ease); }
.ms-pick:hover { border-color:rgba(10,110,245,.35); box-shadow:var(--shadow); transform:translateY(-2px); }
.ms-pick:hover .go { transform:translateX(4px); }
.ms-feature { position:relative; border-radius:14px; overflow:hidden; background:var(--navy); color:#fff; display:flex; flex-direction:column; justify-content:flex-end; padding:18px 20px; isolation:isolate; }
.ms-feature img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform 1.2s var(--ease); }
.ms-feature::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(to top, rgba(5,16,30,.97) 35%, rgba(5,16,30,.35)); }
.ms-feature:hover img { transform:scale(1.07); }
.ms-feature .tag { display:inline-flex; align-items:center; gap:6px; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--cyan); font-weight:700; margin-bottom:4px; }
.ms-feature h5 { font-family:var(--font-h); font-size:16px; font-weight:700; line-height:1.3; margin-bottom:10px; }
.ms-feature .more { display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:600; color:var(--cyan); }

/* Generic mega grid (industries, technologies) */
.mg-feature { margin:14px; }
.mg { display:grid; grid-template-columns:1fr 260px; }
.mg-body { padding:26px 28px; }
.mg-head { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:16px; }
.mg-head h4 { font-family:var(--font-h); font-size:18px; font-weight:800; }
.mg-head a { font-size:13px; font-weight:600; color:var(--blue); display:inline-flex; gap:6px; align-items:center; }
.mg-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:4px 10px; }
.tech-groups { display:grid; grid-template-columns:repeat(3,1fr); gap:18px 22px; }
.tech-group h6 { font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--text3); margin-bottom:10px; padding-bottom:8px; border-bottom:1.5px solid #eef2ff; }
.tech-chips { display:flex; flex-wrap:wrap; gap:6px; }
.tech-chip { display:inline-flex; align-items:center; gap:7px; padding:6px 10px; border-radius:8px; background:var(--light); border:1px solid var(--border); font-size:12.5px; font-weight:600; color:var(--text2); transition:all .2s; }
.tech-chip img { width:16px; height:16px; object-fit:contain; }
.tech-chip:hover { border-color:rgba(10,110,245,.35); color:var(--blue); background:#fff; transform:translateY(-2px); }

.drop-link { display:flex; align-items:center; gap:12px; padding:9px 10px; border-radius:10px; color:var(--text); font-size:13.5px; font-weight:600; transition:background .2s, transform .25s var(--ease); }
.drop-link:hover { background:#f0f6ff; transform:translateX(3px); }
.drop-link .d-icon { width:34px; height:34px; flex-shrink:0; border-radius:9px; display:grid; place-items:center; font-size:16px; color:var(--blue); background:linear-gradient(135deg,#eaf2ff,#e6fbff); transition:all .25s; }
.drop-link:hover .d-icon { background:var(--grad); color:#fff; transform:rotate(-6deg) scale(1.05); }
.drop-link .d-text { line-height:1.25; }
.drop-link .d-text small { display:block; font-size:11.5px; color:var(--text3); font-weight:400; margin-top:2px; }

.nav-ham { display:none; width:42px; height:42px; border-radius:10px; flex-direction:column; justify-content:center; align-items:center; gap:5px; cursor:pointer; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); }
.nav-ham span { display:block; width:20px; height:2px; background:#fff; border-radius:2px; transition:transform .35s var(--ease), opacity .2s; }
.nav-ham.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.nav-ham.open span:nth-child(2) { opacity:0; }
.nav-ham.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

.mob-overlay { position:fixed; inset:var(--nav-h) 0 0 0; background:var(--navy); z-index:1999; overflow-y:auto; padding:12px 24px 40px; opacity:0; visibility:hidden; transform:translateY(-12px); transition:opacity .3s, transform .35s var(--ease), visibility 0s .35s; }
.mob-overlay.open { opacity:1; visibility:visible; transform:none; transition-delay:0s; }
.mob-nav-link { width:100%; display:flex; justify-content:space-between; align-items:center; padding:16px 0; border:none; border-bottom:1px solid rgba(255,255,255,0.07); background:none; color:rgba(255,255,255,0.88); font-size:16px; font-weight:500; cursor:pointer; text-align:left; }
.mob-nav-link .nav-caret { transition:transform .3s; }
.mob-nav-link[aria-expanded="true"] .nav-caret { transform:rotate(180deg); }
.mob-submenu { display:grid; grid-template-rows:0fr; transition:grid-template-rows .4s var(--ease); }
.mob-submenu.open { grid-template-rows:1fr; }
.mob-submenu > div { overflow:hidden; }
.mob-sub-label { font-size:10.5px; text-transform:uppercase; letter-spacing:.14em; color:var(--cyan); margin:14px 0 4px; font-weight:700; }
.mob-sub-link { display:flex; align-items:center; gap:10px; padding:9px 0; color:rgba(255,255,255,0.62); font-size:14.5px; transition:color .2s; }
.mob-sub-link .icon { color:var(--cyan); }
.mob-sub-link:hover { color:#fff; }
body.menu-open { overflow:hidden; }

/* ============================================================
   HERO (HOME)
============================================================ */
.hero-canvas { position:absolute; inset:0; width:100%; height:100%; z-index:0; opacity:.7; }
.orb { position:absolute; border-radius:50%; filter:blur(80px); z-index:0; pointer-events:none; animation:orbFloat 18s ease-in-out infinite; }
.orb-1 { width:560px; height:560px; background:rgba(10,110,245,.35); top:-160px; right:-120px; }
.orb-2 { width:420px; height:420px; background:rgba(0,200,240,.20); bottom:-160px; left:-120px; animation-delay:-6s; }
@keyframes orbFloat { 0%,100%{transform:translate(0,0) scale(1)} 33%{transform:translate(40px,-30px) scale(1.08)} 66%{transform:translate(-30px,30px) scale(.95)} }
.grid-bg { position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
  background-size:72px 72px; mask-image:radial-gradient(ellipse 80% 70% at 50% 40%, #000 30%, transparent 80%); -webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 40%, #000 30%, transparent 80%);
  animation:gridSlide 24s linear infinite; }
@keyframes gridSlide { to { background-position:0 72px, 72px 0; } }

.hero-badge { display:inline-flex; align-items:center; gap:9px; background:rgba(10,110,245,0.14); border:1px solid rgba(10,110,245,0.35); color:var(--cyan); padding:7px 16px 7px 10px; border-radius:100px; font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; margin-bottom:26px; }
.hero-badge .dot { width:8px; height:8px; border-radius:50%; background:var(--mint); box-shadow:0 0 0 0 rgba(0,212,160,.6); animation:ping 2s infinite; }
@keyframes ping { 0%{box-shadow:0 0 0 0 rgba(0,212,160,.6)} 80%,100%{box-shadow:0 0 0 10px rgba(0,212,160,0)} }
.hero-actions { display:flex; gap:14px; flex-wrap:wrap; }

.hero-visual { position:relative; }
.hero-frame { position:relative; border-radius:24px; overflow:hidden; aspect-ratio:4/4.2; border:1px solid rgba(255,255,255,.12); box-shadow:0 40px 100px rgba(0,0,0,.5); background:linear-gradient(135deg,#0a2a55,#05101e); }
.hero-frame img { width:100%; height:100%; object-fit:cover; transform:scale(1.08); transition:transform 1.4s var(--ease); }
.hero-frame::after { content:''; position:absolute; inset:0; background:linear-gradient(160deg, rgba(10,110,245,.25), transparent 40%, rgba(5,16,30,.75)); }
.hero-visual .ring { position:absolute; inset:-40px; border:1px dashed rgba(0,200,240,.22); border-radius:50%; animation:spin 60s linear infinite; z-index:-1; }
@keyframes spin { to { transform:rotate(360deg); } }
.float-card { position:absolute; z-index:3; background:rgba(255,255,255,0.96); color:var(--text); backdrop-filter:blur(12px); border-radius:14px; padding:14px 18px; box-shadow:0 20px 50px rgba(5,20,50,0.35); animation:floatY 5s ease-in-out infinite; }
.float-card.fc-3 { bottom:-22px; left:14%; animation-delay:-3.2s; display:flex; align-items:center; gap:12px; }
@keyframes floatY { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-12px)} }
.fc-label { font-size:10px; color:var(--text3); font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.fc-val { font-family:var(--font-h); font-size:24px; font-weight:800; }
.fc-val em { color:var(--blue); font-style:normal; }
.fc-row { display:flex; align-items:center; gap:8px; margin-top:2px; font-size:11px; color:var(--text3); }
.fc-dot { width:8px; height:8px; border-radius:50%; background:var(--mint); }
.fc-logos { display:flex; }
.fc-logos span { width:34px; height:34px; border-radius:50%; background:#fff; border:2px solid #fff; box-shadow:0 2px 8px rgba(0,0,0,.12); display:grid; place-items:center; margin-left:-8px; }
.fc-logos span:first-child { margin-left:0; }
.fc-logos img { width:20px; height:20px; object-fit:contain; }

/* ============================================================
   LOGO MARQUEE
============================================================ */
.marquee-sec { background:#fff; border-bottom:1px solid var(--border); padding:22px 0; overflow:hidden; }
.marquee-label { text-align:center; font-size:12px; color:var(--text3); letter-spacing:.14em; text-transform:uppercase; font-weight:700; margin-bottom:26px; }
.marquee { display:flex; overflow:hidden; user-select:none; mask-image:linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); -webkit-mask-image:linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.marquee + .marquee { margin-top:16px; }
.marquee-track { display:flex; flex-shrink:0; gap:16px; padding-right:16px; min-width:100%; animation:mq var(--mq-dur, 40s) linear infinite; }
.marquee.reverse .marquee-track { animation-direction:reverse; }
.marquee:hover .marquee-track { animation-play-state:paused; }
@keyframes mq { to { transform:translateX(-100%); } }
.mq-item { display:flex; align-items:center; gap:12px; padding:12px 22px; border-radius:14px; background:var(--light); border:1px solid var(--border); font-family:var(--font-h); font-size:14.5px; font-weight:600; color:var(--text2); white-space:nowrap; transition:all .3s var(--ease); }
.mq-item img { width:26px; height:26px; object-fit:contain; filter:grayscale(1) opacity(.7); transition:filter .35s; }
.mq-item:hover { background:#fff; box-shadow:var(--shadow); border-color:rgba(10,110,245,.25); color:var(--text); transform:translateY(-2px); }
.mq-item:hover img { filter:none; }
.bg-dark .mq-item { background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.08); color:rgba(255,255,255,.75); }
.bg-dark .mq-item img { filter:none; }
.bg-dark .mq-item span.chip { width:34px; height:34px; border-radius:9px; background:#fff; display:grid; place-items:center; }

/* ============================================================
   SERVICES TABS (HOME)
============================================================ */

/* Generic service card (spotlight) */
.spot::before { content:''; position:absolute; inset:0; z-index:-1; opacity:0; transition:opacity .4s; background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%), rgba(10,110,245,.10), transparent 45%); }
.spot:hover::before { opacity:1; }

/* ============================================================
   STATS BAND
============================================================ */
.stats-sec::before { content:''; position:absolute; top:-200px; left:50%; transform:translateX(-50%); width:900px; height:500px; background:radial-gradient(ellipse, rgba(10,110,245,0.25) 0%, transparent 70%); pointer-events:none; }
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,0.07); border-radius:22px; overflow:hidden; border:1px solid rgba(255,255,255,0.08); position:relative; z-index:1; }
.stat-box { background:var(--navy); padding:32px 24px; text-align:center; position:relative; overflow:hidden; transition:background .4s; }
.stat-box:hover { background:var(--navy3); }
.stat-box .s-ico { font-size:22px; color:var(--cyan); margin-bottom:12px; display:inline-grid; place-items:center; width:54px; height:54px; border-radius:14px; background:rgba(0,200,240,.08); border:1px solid rgba(0,200,240,.18); }
.stat-num { font-family:var(--font-h); font-size:48px; font-weight:800; color:#fff; line-height:1; letter-spacing:-0.03em; margin-bottom:10px; }
.stat-num em { color:var(--cyan); font-style:normal; -webkit-text-fill-color:var(--cyan); background:none; animation:none; }
.stat-box .l { font-size:15px; color:rgba(255,255,255,0.72); }
.stat-box .s { font-size:12.5px; color:rgba(255,255,255,0.4); margin-top:4px; }

/* ============================================================
   INDUSTRIES
============================================================ */
.ind-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:16px; }
.ind-card { position:relative; border-radius:18px; overflow:hidden; aspect-ratio:1/1.08; color:#fff; display:flex; flex-direction:column; justify-content:flex-end; padding:22px 20px; background:var(--navy); isolation:isolate; }
.ind-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform 1s var(--ease); }
.ind-card::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(to top, rgba(5,16,30,.95) 10%, rgba(5,16,30,.35) 60%, rgba(5,16,30,.1)); transition:background .5s; }
.ind-card:hover img { transform:scale(1.1); }
.ind-card:hover::before { background:linear-gradient(to top, rgba(10,60,160,.95) 20%, rgba(10,110,245,.45) 70%, rgba(0,200,240,.15)); }
.ind-card .i-ico { width:44px; height:44px; border-radius:12px; display:grid; place-items:center; font-size:20px; background:rgba(255,255,255,.12); backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,.2); margin-bottom:auto; transition:all .4s var(--ease); }
.ind-card:hover .i-ico { background:#fff; color:var(--blue); transform:rotate(-8deg); }
.ind-card h4 { font-family:var(--font-h); font-size:16px; font-weight:700; margin-bottom:4px; }
.ind-card p { font-size:12.5px; color:rgba(255,255,255,.7); line-height:1.5; max-height:0; opacity:0; overflow:hidden; transition:max-height .5s var(--ease), opacity .4s; }
.ind-card:hover p { max-height:60px; opacity:1; }

/* ============================================================
   WHY / ABOUT
============================================================ */
.split { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.media-stack { position:relative; }
.media-main { border-radius:24px; overflow:hidden; aspect-ratio:4/3.9; background:linear-gradient(135deg,#dfe9fb,#c8dcff); box-shadow:var(--shadow-lg); }
.media-main img { width:100%; height:115%; object-fit:cover; will-change:transform; }
.media-badge { position:absolute; right:-24px; bottom:40px; background:var(--navy); color:#fff; border-radius:18px; padding:22px 24px; box-shadow:0 24px 60px rgba(5,16,30,.35); display:flex; align-items:center; gap:14px; animation:floatY 6s ease-in-out infinite; }
.media-badge .b-ico { width:48px; height:48px; border-radius:12px; background:var(--grad); display:grid; place-items:center; font-size:22px; }
.media-badge strong { font-family:var(--font-h); font-size:26px; display:block; line-height:1; }
.media-badge span { font-size:12px; color:rgba(255,255,255,.6); }
.media-dots { position:absolute; left:-30px; top:-30px; width:140px; height:140px; background-image:radial-gradient(var(--blue) 1.5px, transparent 1.5px); background-size:14px 14px; opacity:.35; z-index:-1; }
.why-text > p { font-size:16px; color:var(--text2); line-height:1.75; font-weight:300; margin-bottom:24px; }
.pillars { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.pillar { position:relative; background:#fff; border:1.5px solid var(--border); border-radius:16px; padding:18px; transition:all .35s var(--ease); overflow:hidden; isolation:isolate; }
.pillar:hover { border-color:rgba(10,110,245,.3); box-shadow:var(--shadow-lg); transform:translateY(-4px); }
.pillar .p-ico { width:44px; height:44px; border-radius:12px; display:grid; place-items:center; font-size:20px; color:var(--blue); background:var(--light2); margin-bottom:14px; transition:all .35s; }
.pillar:hover .p-ico { background:var(--grad); color:#fff; }
.pillar h4 { font-family:var(--font-h); font-size:15.5px; font-weight:700; margin-bottom:6px; }
.pillar p { font-size:13.5px; color:var(--text2); line-height:1.6; }

/* ============================================================
   PROCESS TIMELINE
============================================================ */
.tl-deliv { margin-top:14px; display:flex; flex-wrap:wrap; gap:6px; }
.tl-deliv span { font-size:11.5px; color:var(--text2); background:var(--light); border:1px solid var(--border); padding:4px 10px; border-radius:6px; }

/* ============================================================
   TECH STACK (TABS OF LOGOS)
============================================================ */
.pill-tabs { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin-bottom:40px; }
.pill-tab { padding:10px 20px; border-radius:100px; border:1.5px solid var(--border); background:#fff; font-family:var(--font-h); font-size:13.5px; font-weight:600; color:var(--text2); cursor:pointer; transition:all .3s var(--ease); }
.pill-tab:hover { border-color:var(--blue); color:var(--blue); }
.pill-tab[aria-selected="true"] { background:var(--grad); border-color:transparent; color:#fff; box-shadow:0 8px 24px rgba(10,110,245,.3); }
.bg-dark .pill-tab { background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.12); color:rgba(255,255,255,.7); }
.logo-grid { display:none; grid-template-columns:repeat(auto-fill, minmax(150px,1fr)); gap:14px; }
.logo-grid.active { display:grid; }
.logo-tile { background:#fff; border:1.5px solid var(--border); border-radius:16px; padding:24px 12px 18px; display:flex; flex-direction:column; align-items:center; gap:12px; text-align:center; transition:all .35s var(--ease); opacity:0; transform:translateY(16px) scale(.96); animation:tileIn .6s var(--ease-out) forwards; animation-delay:calc(var(--i) * 45ms); }
@keyframes tileIn { to { opacity:1; transform:none; } }
.logo-tile img { width:44px; height:44px; object-fit:contain; transition:transform .45s var(--ease); }
.logo-tile span { font-size:13px; font-weight:600; color:var(--text2); }
.logo-tile:hover { border-color:rgba(10,110,245,.3); box-shadow:var(--shadow-lg); transform:translateY(-5px); }
.logo-tile:hover img { transform:scale(1.15) rotate(-4deg); }

/* ============================================================
   RECOGNITION
============================================================ */

/* ============================================================
   INSIGHTS
============================================================ */

/* ============================================================
   CTA + FORM
============================================================ */
.cta-sec { padding:84px 0; }
.cta-sec::before { content:''; position:absolute; top:-120px; left:50%; transform:translateX(-50%); width:900px; height:560px; background:radial-gradient(ellipse, rgba(10,110,245,0.25) 0%, transparent 65%); pointer-events:none; }
.cta-inner { display:grid; grid-template-columns:1fr 1.05fr; gap:72px; align-items:start; position:relative; z-index:1; }
.cta-left h2 { font-family:var(--font-h); font-size:clamp(32px,4vw,52px); line-height:1.08; font-weight:800; color:#fff; margin-bottom:18px; letter-spacing:-0.025em; }
.cta-left > p { font-size:16.5px; color:rgba(255,255,255,0.6); line-height:1.75; font-weight:300; margin-bottom:34px; }
.cta-info-list { display:flex; flex-direction:column; gap:14px; }
.cta-info { display:flex; align-items:center; gap:14px; color:rgba(255,255,255,0.75); font-size:14.5px; }
.cta-info .ci-icon { width:42px; height:42px; border-radius:11px; background:rgba(0,200,240,0.08); border:1px solid rgba(0,200,240,.18); display:grid; place-items:center; font-size:18px; color:var(--cyan); flex-shrink:0; }
.cta-info a:hover { color:var(--cyan); }
.cta-form { background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.1); border-radius:24px; padding:36px; backdrop-filter:blur(10px); position:relative; }
.cta-form::before { content:''; position:absolute; inset:-1px; border-radius:24px; padding:1px; background:linear-gradient(135deg, rgba(0,200,240,.5), transparent 40%, transparent 60%, rgba(10,110,245,.5)); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }
.form-group { display:flex; flex-direction:column; gap:7px; }
.form-group.full { grid-column:1/-1; }
.form-group label { font-size:12px; font-weight:600; color:rgba(255,255,255,0.6); letter-spacing:.04em; }
.form-control { background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.12); border-radius:10px; padding:13px 15px; color:#fff; font-family:var(--font-b); font-size:14px; transition:all .25s; outline:none; width:100%; }
.form-control:focus { border-color:var(--cyan); background:rgba(0,200,240,0.06); box-shadow:0 0 0 4px rgba(0,200,240,.1); }
.form-control::placeholder { color:rgba(255,255,255,0.3); }
.form-control.invalid { border-color:#ff5c7a; }
select.form-control option { background:var(--navy2); color:#fff; }
textarea.form-control { resize:vertical; min-height:110px; }
.form-submit { width:100%; justify-content:center; padding:16px; font-size:15px; margin-top:6px; }
.form-note { font-size:12px; color:rgba(255,255,255,.4); margin-top:12px; text-align:center; }

.toast { position:fixed; left:50%; bottom:28px; transform:translate(-50%, 140%); z-index:4000; background:#fff; color:var(--text); padding:14px 20px; border-radius:12px; box-shadow:0 20px 50px rgba(5,20,50,.3); display:flex; align-items:center; gap:10px; font-size:14px; font-weight:500; transition:transform .5s var(--ease); max-width:calc(100% - 32px); }
.toast .icon { color:var(--mint); font-size:20px; }
.toast.show { transform:translate(-50%, 0); }

/* ============================================================
   FOOTER
============================================================ */
.footer { background:var(--navy2); border-top:1px solid rgba(255,255,255,0.06); padding:80px 0 32px; color:#fff; position:relative; overflow:hidden; }
.footer-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:28px 32px; margin-bottom:56px; }
.footer-brand { grid-column:1 / -1; display:flex; justify-content:space-between; align-items:center; gap:32px; flex-wrap:wrap; padding-bottom:36px; margin-bottom:8px; border-bottom:1px solid rgba(255,255,255,.06); }
.footer-brand .logo { margin-bottom:0; }
.footer-brand p { margin-bottom:0; max-width:520px; }
.footer .logo { font-family:var(--font-logo); font-size:26px; font-weight:800; letter-spacing:-0.4px; margin-bottom:14px; display:inline-block; }
.footer .logo em { color:var(--cyan); font-style:normal; }
.footer-brand p { font-size:14px; color:rgba(255,255,255,0.45); line-height:1.75; }
.footer-socials { display:flex; gap:10px; }
.f-social { width:40px; height:40px; border-radius:10px; display:grid; place-items:center; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.08); transition:all .3s var(--ease); }
.f-social svg { width:17px; height:17px; fill:rgba(255,255,255,.65); transition:fill .3s; }
.f-social:hover { background:var(--blue); border-color:var(--blue); transform:translateY(-3px); }
.f-social:hover svg { fill:#fff; }
.f-social svg.icon { fill:none; stroke:rgba(255,255,255,.65); }
.f-social:hover svg.icon { fill:none; stroke:#fff; }
.f-col h5 { white-space:nowrap; font-family:var(--font-h); font-size:12px; font-weight:700; color:rgba(255,255,255,0.9); letter-spacing:.12em; text-transform:uppercase; margin-bottom:20px; }
.f-links { list-style:none; display:flex; flex-direction:column; gap:10px; }
.f-links a { font-size:14px; color:rgba(255,255,255,0.48); transition:color .2s, padding .3s var(--ease); display:inline-block; }
.f-links a:hover { color:#fff; padding-left:4px; }
.footer-bottom { border-top:1px solid rgba(255,255,255,0.06); padding-top:28px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; }
.footer-bottom p { font-size:13px; color:rgba(255,255,255,0.35); }
.footer-legal { display:flex; gap:20px; }
.footer-legal a { font-size:13px; color:rgba(255,255,255,0.35); transition:color .2s; }
.footer-legal a:hover { color:rgba(255,255,255,0.8); }
.footer-verify { text-align:center; font-size:11px; color:rgba(255,255,255,0.15); margin-top:16px; }
.footer-watermark { position:absolute; left:50%; bottom:-40px; transform:translateX(-50%); font-family:var(--font-logo); font-weight:800; font-size:clamp(80px,17vw,240px); letter-spacing:-.05em; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.04); white-space:nowrap; pointer-events:none; user-select:none; }

.to-top { position:fixed; right:24px; bottom:24px; z-index:1500; width:48px; height:48px; border-radius:50%; border:none; cursor:pointer; background:var(--grad); color:#fff; font-size:20px; display:grid; place-items:center; box-shadow:0 10px 30px rgba(10,110,245,.4); opacity:0; transform:translateY(20px) scale(.8); transition:all .4s var(--ease); pointer-events:none; }
.to-top.show { opacity:1; transform:none; pointer-events:auto; }
.to-top:hover { transform:translateY(-3px); }

/* ============================================================
   SERVICE PAGE
============================================================ */
.page-hero { background:var(--navy); color:#fff; position:relative; overflow:hidden; padding:calc(var(--nav-h) + 44px) 0 72px; }
.page-hero .container { position:relative; z-index:2; }
.page-hero-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:64px; align-items:center; }
.crumbs { display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:13px; color:rgba(255,255,255,.5); margin-bottom:22px; }
.crumbs a { color:rgba(255,255,255,.7); transition:color .2s; }
.crumbs a:hover { color:var(--cyan); }
.crumbs .icon { font-size:12px; opacity:.5; }
.page-hero h1 { font-family:var(--font-h); font-size:clamp(30px,3.4vw,50px); font-weight:700; line-height:1.14; letter-spacing:-0.025em; margin-bottom:18px; }
.page-hero .lead { font-size:17px; color:rgba(255,255,255,.66); font-weight:300; line-height:1.75; max-width:600px; margin-bottom:36px; }
.page-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:36px; padding-top:24px; border-top:1px solid rgba(255,255,255,.1); flex-wrap:wrap; }
.page-stats .stat-num { font-size:34px; margin-bottom:4px; }
.page-stats .l { font-size:12.5px; color:rgba(255,255,255,.5); }
.page-hero .hero-frame { aspect-ratio:4/3.6; }
.hero-chip { position:absolute; z-index:3; left:-28px; top:24px; background:rgba(255,255,255,.97); color:var(--text); border-radius:16px; padding:14px 16px; display:flex; align-items:center; gap:12px; box-shadow:0 20px 50px rgba(0,0,0,.35); animation:floatY 5s ease-in-out infinite; }
.hero-chip .c-ico { width:44px; height:44px; border-radius:12px; background:var(--grad); color:#fff; display:grid; place-items:center; font-size:22px; }
.hero-chip strong { font-family:var(--font-h); font-size:15px; display:block; }
.hero-chip small { font-size:11.5px; color:var(--text3); }

.intro-points { list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:28px; }
.intro-points li { display:flex; align-items:center; gap:10px; font-size:14.5px; font-weight:500; color:var(--text); }
.intro-points .icon { color:#fff; background:var(--grad); border-radius:50%; padding:4px; width:22px; height:22px; }
.prose p { font-size:16.5px; color:var(--text2); line-height:1.8; font-weight:300; margin-bottom:16px; }

.offer-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.offer-card { position:relative; background:#fff; border:1.5px solid var(--border); border-radius:20px; padding:34px 30px; transition:transform .45s var(--ease), box-shadow .45s var(--ease), border-color .3s; overflow:hidden; isolation:isolate; }
.offer-card .num { position:absolute; top:22px; right:26px; font-family:var(--font-h); font-size:44px; font-weight:800; color:var(--light2); line-height:1; transition:color .4s; z-index:-1; }
.offer-card:hover .num { color:rgba(10,110,245,.1); }
.offer-card .o-ico { width:58px; height:58px; border-radius:16px; display:grid; place-items:center; font-size:26px; color:var(--blue); background:linear-gradient(135deg,#eaf2ff,#e2fbff); margin-bottom:24px; transition:all .45s var(--ease); }
.offer-card:hover { transform:translateY(-8px); box-shadow:var(--shadow-lg); border-color:rgba(10,110,245,.28); }
.offer-card:hover .o-ico { background:var(--grad); color:#fff; transform:rotate(-8deg) scale(1.06); box-shadow:0 12px 30px rgba(10,110,245,.35); }
.offer-card h3 { font-family:var(--font-h); font-size:19px; font-weight:700; margin-bottom:10px; }
.offer-card p { font-size:14.5px; color:var(--text2); line-height:1.7; }
.offer-card::after { content:''; position:absolute; left:0; bottom:0; height:3px; width:100%; background:var(--grad); transform:scaleX(0); transform-origin:left; transition:transform .5s var(--ease); }
.offer-card:hover::after { transform:scaleX(1); }

.benefit-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,.08); border-radius:22px; overflow:hidden; border:1px solid rgba(255,255,255,.08); position:relative; z-index:1; }
.benefit { background:var(--navy); padding:40px 30px; transition:background .4s; position:relative; overflow:hidden; isolation:isolate; }
.benefit::before { content:''; position:absolute; inset:0; z-index:-1; opacity:0; transition:opacity .4s; background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%), rgba(0,200,240,.14), transparent 50%); }
.benefit:hover::before { opacity:1; }
.benefit .b-ico { width:52px; height:52px; border-radius:14px; display:grid; place-items:center; font-size:24px; color:var(--cyan); background:rgba(0,200,240,.08); border:1px solid rgba(0,200,240,.2); margin-bottom:22px; transition:all .4s var(--ease); }
.benefit:hover .b-ico { background:var(--grad); color:#fff; border-color:transparent; transform:translateY(-4px); }
.benefit h3 { font-family:var(--font-h); font-size:18px; font-weight:700; margin-bottom:10px; color:#fff; }
.benefit p { font-size:14px; color:rgba(255,255,255,.6); line-height:1.7; }
.dark-glow::before { content:''; position:absolute; top:-200px; right:-200px; width:700px; height:700px; background:radial-gradient(circle, rgba(10,110,245,.22), transparent 65%); pointer-events:none; }
.dark-glow::after { content:''; position:absolute; bottom:-250px; left:-150px; width:600px; height:600px; background:radial-gradient(circle, rgba(0,200,240,.12), transparent 65%); pointer-events:none; }

.steps-h { display:grid; grid-template-columns:repeat(5,1fr); gap:20px; position:relative; counter-reset:step; }
.steps-h::before { content:''; position:absolute; top:28px; left:10%; right:10%; height:2px; background:var(--border); }
.steps-h .bar { position:absolute; top:28px; left:10%; height:2px; width:80%; background:var(--grad); transform-origin:left; transform:scaleX(0); transition:transform 2.2s var(--ease-out); box-shadow:0 0 14px rgba(0,200,240,.6); }
.steps-h.in .bar { transform:scaleX(1); }
.step-h { position:relative; text-align:center; }
.step-h .sn { width:56px; height:56px; margin:0 auto 22px; border-radius:50%; background:#fff; border:2px solid var(--border); display:grid; place-items:center; font-family:var(--font-h); font-weight:800; color:var(--text3); position:relative; z-index:1; transition:all .5s var(--ease); transition-delay:calc(var(--i) * .4s); }
.steps-h.in .step-h .sn { background:var(--grad); color:#fff; border-color:transparent; box-shadow:0 0 0 7px rgba(10,110,245,.1); }
.step-h h3 { font-family:var(--font-h); font-size:16.5px; font-weight:700; margin-bottom:8px; }
.step-h p { font-size:13.5px; color:var(--text2); line-height:1.65; }
.step-h .tl-deliv { justify-content:center; }

.model-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.model-card { position:relative; border-radius:20px; padding:34px 30px; background:#fff; border:1.5px solid var(--border); transition:all .4s var(--ease); overflow:hidden; isolation:isolate; }
.model-card.featured { background:var(--navy); color:#fff; border-color:var(--navy); }
.model-card.featured p { color:rgba(255,255,255,.65); }
.model-card.featured::after { content:'Most popular'; position:absolute; top:20px; right:20px; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; font-weight:700; background:var(--grad); color:#fff; padding:5px 10px; border-radius:100px; }
.model-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.model-card .m-ico { font-size:28px; color:var(--blue); margin-bottom:18px; }
.model-card.featured .m-ico { color:var(--cyan); }
.model-card h3 { font-family:var(--font-h); font-size:19px; font-weight:700; margin-bottom:10px; }
.model-card p { font-size:14.5px; color:var(--text2); line-height:1.7; margin-bottom:22px; }

.ind-chips { display:grid; grid-template-columns:repeat(6,1fr); gap:14px; }
.ind-chips .ind-card { aspect-ratio:1/1.15; padding:18px; }
.ind-chips .ind-card h4 { font-size:14.5px; }

.faq-wrap { display:grid; grid-template-columns:.8fr 1.2fr; gap:64px; align-items:start; }
.faq-wrap .sec-head { position:sticky; top:calc(var(--nav-h) + 24px); }
.faq { border:1.5px solid var(--border); border-radius:16px; background:#fff; margin-bottom:12px; transition:border-color .3s, box-shadow .3s; overflow:hidden; }
.faq[open] { border-color:rgba(10,110,245,.3); box-shadow:var(--shadow); }
.faq summary { list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:16px; padding:20px 24px; font-family:var(--font-h); font-size:16px; font-weight:700; color:var(--text); }
.faq summary::-webkit-details-marker { display:none; }
.faq summary .pm { width:30px; height:30px; flex-shrink:0; border-radius:50%; background:var(--light2); display:grid; place-items:center; color:var(--blue); transition:transform .4s var(--ease), background .3s, color .3s; }
.faq[open] summary .pm { transform:rotate(45deg); background:var(--grad); color:#fff; }
.faq .ans { padding:0 24px 22px; font-size:15px; color:var(--text2); line-height:1.75; }
.faq .ans-wrap { overflow:hidden; transition:height .45s var(--ease); }

.related-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.rel-card { position:relative; border-radius:20px; overflow:hidden; min-height:300px; display:flex; flex-direction:column; justify-content:flex-end; padding:28px; color:#fff; background:var(--navy); isolation:isolate; }
.rel-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; opacity:.7; transition:transform 1s var(--ease), opacity .5s; }
.rel-card::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(to top, rgba(5,16,30,.96) 25%, rgba(5,16,30,.2)); }
.rel-card:hover img { transform:scale(1.08); opacity:.85; }
.rel-card .r-ico { width:46px; height:46px; border-radius:12px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2); backdrop-filter:blur(8px); display:grid; place-items:center; font-size:22px; margin-bottom:16px; }
.rel-card h3 { font-family:var(--font-h); font-size:21px; font-weight:700; margin-bottom:6px; }
.rel-card p { font-size:13.5px; color:rgba(255,255,255,.7); margin-bottom:14px; }
.rel-card .more { display:inline-flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; color:var(--cyan); }
.rel-card .more .icon { transition:transform .3s var(--ease); }
.rel-card:hover .more .icon { transform:translateX(5px); }

.cta-band { position:relative; border-radius:28px; overflow:hidden; padding:64px; background:var(--grad); color:#fff; display:flex; justify-content:space-between; align-items:center; gap:32px; isolation:isolate; }
.cta-band::before { content:''; position:absolute; inset:0; z-index:-1; 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:40px 40px; mask-image:linear-gradient(90deg, transparent, #000); -webkit-mask-image:linear-gradient(90deg, transparent, #000); }
.cta-band::after { content:''; position:absolute; right:-80px; top:-80px; width:320px; height:320px; border-radius:50%; border:50px solid rgba(255,255,255,.08); z-index:-1; animation:spin 30s linear infinite; }
.cta-band h2 { font-family:var(--font-h); font-size:clamp(26px,3.2vw,40px); font-weight:800; line-height:1.15; letter-spacing:-.02em; margin-bottom:10px; }
.cta-band p { color:rgba(255,255,255,.82); font-size:16px; max-width:560px; }
.cta-band .btn-white { background:#fff; color:var(--blue); box-shadow:0 12px 30px rgba(5,16,30,.25); }
.cta-band .btn-white:hover { transform:translateY(-2px); box-shadow:0 18px 40px rgba(5,16,30,.35); }

/* Services hub */
.hub-cat { margin-bottom:80px; }
.hub-cat:last-child { margin-bottom:0; }
.hub-cat-head { display:flex; align-items:center; gap:18px; margin-bottom:28px; }
.hub-cat-head .h-ico { width:56px; height:56px; border-radius:16px; background:var(--grad); color:#fff; display:grid; place-items:center; font-size:26px; box-shadow:0 12px 30px rgba(10,110,245,.3); }
.hub-cat-head h2 { font-family:var(--font-h); font-size:30px; font-weight:800; letter-spacing:-.02em; }
.hub-cat-head p { color:var(--text2); font-size:15px; }
.hub-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.hub-card { position:relative; display:flex; flex-direction:column; background:#fff; border:1.5px solid var(--border); border-radius:20px; overflow:hidden; transition:all .45s var(--ease); isolation:isolate; }
.hub-card:hover { transform:translateY(-8px); box-shadow:var(--shadow-lg); border-color:rgba(10,110,245,.25); }
.hub-card .hc-clip { position:absolute; inset:0; overflow:hidden; }
.hub-card .hc-img { aspect-ratio:16/9; background:linear-gradient(135deg,#0a2040,#0a6ef5); position:relative; }
.hub-card .hc-img img { width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease); }
.hub-card:hover .hc-img img { transform:scale(1.08); }
.hub-card .hc-ico { position:absolute; left:20px; bottom:-24px; width:52px; height:52px; border-radius:14px; background:#fff; color:var(--blue); display:grid; place-items:center; font-size:24px; box-shadow:0 10px 30px rgba(5,20,50,.18); transition:all .4s var(--ease); z-index:2; }
.hub-card:hover .hc-ico { background:var(--grad); color:#fff; transform:rotate(-8deg); }
.hub-card .hc-body { padding:38px 22px 24px; display:flex; flex-direction:column; flex:1; }
.hub-card h3 { font-family:var(--font-h); font-size:18px; font-weight:700; margin-bottom:6px; }
.hub-card p { font-size:14px; color:var(--text2); margin-bottom:16px; line-height:1.65; }
.hub-card .more { margin-top:auto; display:inline-flex; align-items:center; gap:6px; color:var(--blue); font-weight:600; font-size:14px; }
.hub-card .more .icon { transition:transform .3s var(--ease); }
.hub-card:hover .more .icon { transform:translateX(5px); }

/* Image fallback */
.img-fallback { opacity:0 !important; }

/* ============================================================
   HERO SLIDER (HOME)
============================================================ */
.hs { position:relative; display:grid; min-height:clamp(560px, calc(100vh - 64px), 800px); min-height:clamp(560px, calc(100svh - 64px), 800px); background:var(--navy); color:#fff; overflow:hidden; isolation:isolate; }
.hs .hero-canvas { z-index:1; opacity:.3; pointer-events:none; }
.hs-slide { position:relative; grid-area:1 / 1; opacity:0; visibility:hidden; transition:opacity 1.1s var(--ease), visibility 0s 1.1s; z-index:0; }
.hs-slide.on { opacity:1; visibility:visible; transition-delay:0s; z-index:1; }
.hs-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:70% center; transform:scale(1.12); transition:transform 8s linear; }
.hs-slide.on .hs-bg { transform:scale(1.02); }
.hs-slide::before { content:''; position:absolute; inset:0; z-index:1; background:
  linear-gradient(90deg, rgba(5,16,30,.97) 0%, rgba(5,16,30,.9) 34%, rgba(5,16,30,.45) 62%, rgba(5,16,30,.2) 100%),
  linear-gradient(to top, rgba(5,16,30,.95) 0%, transparent 30%); }
.hs-content { position:relative; z-index:2; min-height:100%; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding-top:calc(var(--nav-h) + 24px); padding-bottom:130px; }
.hs .anim { opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease-out), transform .9s var(--ease-out); }
.hs-slide.on .anim { opacity:1; transform:none; transition-delay:calc(.3s + var(--k) * .1s); }
.hs-eyebrow { font-size:13px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.85); margin-bottom:18px; display:flex; align-items:center; gap:10px; }
.hs-eyebrow::before { content:''; width:26px; height:2px; background:var(--grad); border-radius:2px; }
.hs-title { font-family:var(--font-h); font-size:clamp(32px,3.7vw,56px); font-weight:700; line-height:1.12; letter-spacing:-.025em; margin-bottom:18px; max-width:780px; }
.hs-text { font-size:17px; line-height:1.7; color:rgba(255,255,255,.75); font-weight:400; max-width:600px; margin-bottom:30px; }
.hs-bottom { position:absolute; left:0; right:0; bottom:0; z-index:3; padding-bottom:30px; pointer-events:none; }
.hs-bottom .container { display:flex; justify-content:space-between; align-items:flex-end; gap:32px; }
.hs-bottom .container > * { pointer-events:auto; }
.hs-label { font-size:12px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.85); margin-bottom:14px; }
.hs-logos { display:flex; flex-wrap:wrap; align-items:center; gap:10px 26px; }
.hs-logos span { display:inline-flex; align-items:center; gap:8px; font-family:var(--font-h); font-size:15px; font-weight:700; color:rgba(255,255,255,.72); white-space:nowrap; transition:color .3s; }
.hs-logos span:hover { color:#fff; }
.hs-logos img { width:22px; height:22px; object-fit:contain; filter:brightness(0) invert(1); opacity:.8; }
.hs-ctrl { display:flex; align-items:center; gap:18px; }
.hs-arrow { width:46px; height:46px; border-radius:50%; border:1px solid rgba(255,255,255,.25); background:transparent; color:#fff; font-size:20px; display:grid; place-items:center; cursor:pointer; transition:all .3s var(--ease); }
.hs-arrow:hover { background:#fff; color:var(--navy); border-color:#fff; }
/* next section overlaps the hero with a rounded edge so visitors see there's more below */
.peek { position:relative; z-index:3; margin-top:-28px; border-radius:28px 28px 0 0; background:var(--light); padding-top:48px; }

/* ============================================================
   SHOWCASE BENTO
============================================================ */
.bento { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:220px; gap:16px; grid-template-areas:"g g a a" "g g x b" "w w c d"; }
.tile { position:relative; border-radius:20px; overflow:hidden; color:#fff; background:var(--navy); isolation:isolate; display:flex; flex-direction:column; justify-content:flex-end; padding:24px; }
.tile-g { grid-area:g; padding:34px; } .tile-a { grid-area:a; } .tile-x { grid-area:x; } .tile-b { grid-area:b; }
.tile-w { grid-area:w; } .tile-c { grid-area:c; } .tile-d { grid-area:d; }
.tile img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform 1.2s var(--ease); }
.tile::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(to top, rgba(5,16,30,.95) 8%, rgba(5,16,30,.45) 55%, rgba(5,16,30,.15)); transition:opacity .5s; }
.tile::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(to top, rgba(10,60,170,.95) 10%, rgba(10,110,245,.5) 60%, rgba(0,200,240,.15)); opacity:0; transition:opacity .5s var(--ease); }
.tile:hover img { transform:scale(1.08); }
.tile:hover::after { opacity:1; }
.tile-tag { position:absolute; top:20px; left:20px; display:inline-flex; align-items:center; gap:8px; padding:7px 12px; border-radius:100px; font-size:11.5px; font-weight:700; letter-spacing:.04em; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.2); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.tile-tag .icon { font-size:14px; color:var(--cyan); }
.tile-body h3 { font-family:var(--font-h); font-size:21px; font-weight:800; letter-spacing:-.01em; line-height:1.2; }
.tile-g .tile-body h3 { font-size:clamp(28px,3vw,40px); margin-bottom:10px; }
.tile-body p { font-size:13.5px; color:rgba(255,255,255,.78); line-height:1.6; max-height:0; opacity:0; overflow:hidden; transition:max-height .5s var(--ease), opacity .4s, margin .4s; }
.tile:hover .tile-body p, .tile-g .tile-body p, .tile-a .tile-body p, .tile-w .tile-body p { max-height:90px; opacity:1; margin-top:6px; }
.tile-g .tile-body p { font-size:15.5px; max-width:460px; }
.tile-go { position:absolute; right:20px; bottom:20px; width:42px; height:42px; border-radius:50%; background:#fff; color:var(--blue); display:grid; place-items:center; font-size:18px; transform:scale(.6) rotate(-45deg); opacity:0; transition:all .45s var(--ease); }
.tile:hover .tile-go { transform:none; opacity:1; }
.tile-body { padding-right:48px; }
.svc-chips { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:26px; }
.svc-chips-label { font-size:11.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--text3); margin-right:6px; }
.svc-chip { display:inline-flex; align-items:center; gap:8px; padding:8px 14px; border-radius:100px; border:1.5px solid var(--border); background:#fff; font-size:13px; font-weight:600; color:var(--text2); transition:all .3s var(--ease); }
.svc-chip .icon { color:var(--blue); }
.svc-chip:hover { background:var(--navy); color:#fff; border-color:var(--navy); transform:translateY(-2px); }
.svc-chip:hover .icon { color:var(--cyan); }

/* Awards strip (in stats band) */
.awards-strip { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin-top:22px; position:relative; z-index:1; }
.award-pill { display:flex; align-items:center; gap:12px; padding:14px 16px; border-radius:14px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); transition:all .3s var(--ease); }
.award-pill:hover { background:rgba(255,255,255,.08); transform:translateY(-3px); }
.ap-logo { width:44px; height:44px; flex-shrink:0; border-radius:11px; background:#fff; display:grid; place-items:center; font-size:22px; color:#ff3d2e; }
.award-pill:nth-child(4) .ap-logo { color:var(--blue); }
.ap-logo img { width:28px; height:28px; object-fit:contain; }
.award-pill strong { display:block; font-family:var(--font-h); font-size:13.5px; }
.award-pill small { font-size:11.5px; color:rgba(255,255,255,.5); }

/* ============================================================
   PROCESS FLOW (compact)
============================================================ */
.flow { position:relative; display:grid; grid-template-columns:repeat(5,1fr); gap:16px; }
.flow-line { position:absolute; left:34px; right:34px; top:34px; height:2px; background:var(--border); }
.flow-line i { position:absolute; inset:0; background:var(--grad-3); transform:scaleX(0); transform-origin:left; transition:transform 2.4s var(--ease-out); box-shadow:0 0 12px rgba(0,200,240,.5); }
.flow.in .flow-line i { transform:scaleX(1); }
.flow-step { position:relative; background:#fff; border:1.5px solid var(--border); border-radius:18px; padding:20px 20px 18px; margin-top:0; transition:all .4s var(--ease); }
.flow-step:hover { border-color:rgba(10,110,245,.3); box-shadow:var(--shadow-lg); transform:translateY(-6px); }
.flow-ico { position:relative; width:48px; height:48px; border-radius:14px; background:var(--grad); color:#fff; display:grid; place-items:center; font-size:22px; margin-bottom:16px; box-shadow:0 10px 24px rgba(10,110,245,.3); }
.flow-ico span { position:absolute; top:-8px; right:-10px; font-family:var(--font-h); font-size:10.5px; font-weight:800; background:var(--navy); color:#fff; border-radius:100px; padding:3px 7px; }
.flow-step h3 { font-family:var(--font-h); font-size:17px; font-weight:700; margin-bottom:6px; }
.flow-step p { font-size:13.5px; color:var(--text2); line-height:1.6; margin-bottom:14px; }
.flow-deliv { display:flex; align-items:center; gap:7px; font-size:11.5px; font-weight:600; color:var(--text3); padding-top:12px; border-top:1px dashed var(--border); }
.flow-deliv .icon { color:var(--blue); }

/* ============================================================
   INSIGHTS (compact: feature + list)
============================================================ */
.ins { display:grid; grid-template-columns:1.2fr 1fr; gap:20px; }
.ins-feature { position:relative; border-radius:22px; overflow:hidden; min-height:440px; display:flex; align-items:flex-end; color:#fff; background:var(--navy); isolation:isolate; }
.ins-feature img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform 1.2s var(--ease); }
.ins-feature::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(to top, rgba(5,16,30,.97) 25%, rgba(5,16,30,.2) 80%); }
.ins-feature:hover img { transform:scale(1.06); }
.ins-feature-body { padding:32px; }
.ins-feature h3 { font-family:var(--font-h); font-size:clamp(22px,2.2vw,28px); font-weight:800; line-height:1.25; margin:10px 0; }
.ins-feature p { font-size:14.5px; color:rgba(255,255,255,.72); line-height:1.65; margin-bottom:16px; max-width:520px; }
.ins-meta { display:flex; align-items:center; gap:10px; font-size:12px; color:var(--text3); }
.ins-feature .ins-meta { color:rgba(255,255,255,.6); }
.ins-type { font-size:10.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:4px 10px; border-radius:100px; background:var(--grad); color:#fff; }
.ins-type.blog { background:var(--navy); }
.ins-result { display:inline-flex; align-items:center; gap:7px; font-size:12.5px; font-weight:700; color:var(--mint); }
.ins-list { display:flex; flex-direction:column; gap:12px; }
.ins-item { display:grid; grid-template-columns:118px 1fr; gap:16px; align-items:center; padding:12px; border-radius:16px; border:1.5px solid var(--border); background:#fff; transition:all .35s var(--ease); cursor:default; flex:1; }
.ins-item:hover { border-color:rgba(10,110,245,.3); box-shadow:var(--shadow-lg); transform:translateX(-4px); }
.ins-thumb { border-radius:12px; overflow:hidden; aspect-ratio:4/3; background:linear-gradient(135deg,#0a2040,#0a6ef5); }
.ins-thumb img { width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.ins-item:hover .ins-thumb img { transform:scale(1.1); }
.ins-item h4 { font-family:var(--font-h); font-size:15px; font-weight:700; line-height:1.35; margin:6px 0; }
.ins-item .ins-result { color:var(--blue); font-size:12px; }

/* ============================================================
   RESPONSIVE
============================================================ */
@media (max-width:1180px) {
  .nav-careers { display:none; }
  .hs-logos span:nth-child(n+6) { display:none; }
  .nav-link { padding:10px 11px; font-size:14px; }
  .nav-link::after { left:11px; right:11px; }
  .ms-col .drop-link { font-size:12.5px; }
  .ms-picks .ms-pick:nth-child(3) { display:none; }
  .mg-feature { display:none; }
  .mg { grid-template-columns:1fr; }
  .hero-visual { max-width:560px; margin:0 auto; width:100%; }
  .ind-grid { grid-template-columns:repeat(3,1fr); }
  .ind-chips { grid-template-columns:repeat(3,1fr); }
  .footer-grid { grid-template-columns:repeat(3,1fr); }
  .cta-inner, .split, .faq-wrap { grid-template-columns:1fr; gap:56px; }
  .faq-wrap .sec-head { position:static; }
  .benefit-grid { grid-template-columns:repeat(2,1fr); }
  .steps-h { grid-template-columns:1fr; gap:0; max-width:560px; margin:0 auto; }
  .steps-h::before, .steps-h .bar { top:0; bottom:0; left:28px; right:auto; width:2px; height:auto; }
  .steps-h .bar { transform:scaleY(0); transform-origin:top; }
  .steps-h.in .bar { transform:scaleY(1); }
  .step-h { display:grid; grid-template-columns:56px 1fr; gap:20px; text-align:left; padding-bottom:28px; }
  .step-h .sn { margin:0; }
  .step-h .tl-deliv { justify-content:flex-start; }
  .media-badge { right:16px; }
}
@media (max-width:1023px) {
  .nav-menu { display:none; }
  .nav-ham { display:flex; }
}
@media (max-width:900px) {
  .sec { padding:84px 0; }
  .stats-grid { grid-template-columns:1fr 1fr; }
  .offer-grid, .insights-grid, .hub-grid, .related-grid, .model-grid { grid-template-columns:1fr 1fr; }
  .sec-head-row { flex-direction:column; align-items:flex-start; }
  .cta-band { flex-direction:column; align-items:flex-start; padding:44px 32px; }
}
@media (max-width:640px) {
  .container { padding:0 20px; }
  .nav-cta { display:none; }
  .sec { padding:72px 0; }
  .ind-grid, .ind-chips { grid-template-columns:1fr 1fr; }
  .ind-card p { max-height:none; opacity:1; }
  .stat-num { font-size:44px; }
  .stat-box { padding:36px 16px; }
  .benefit-grid { grid-template-columns:1fr; }
  .form-row { grid-template-columns:1fr; }
  .cta-form { padding:24px; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:36px; }
  .hero-chip { left:8px; }
  .hero-visual .ring { display:none; }
  .page-stats { gap:28px; }
  .logo-grid { grid-template-columns:repeat(3,1fr); gap:10px; }
  .logo-tile { padding:18px 8px 14px; }
  .logo-tile img { width:34px; height:34px; }
  .mq-item { padding:10px 16px; font-size:13px; }
  .media-badge { right:8px; bottom:16px; padding:14px 16px; }
}

/* ============================================================
   MEGA MENU: insights / company variants
============================================================ */
.mega-drop.mega-sm { width:min(860px, calc(100vw - 32px)); margin-left:calc(min(860px, calc(100vw - 32px)) / -2); }
.mg-2 { display:grid; grid-template-columns:1fr 1fr; gap:10px 28px; }
.mg-2 > div + div { border-left:1px solid #eef3fc; padding-left:24px; }
.mg-head h4 { display:flex; align-items:center; gap:8px; }
.mg-head h4 .icon { color:var(--blue); }
.mg-grid.c2 { grid-template-columns:1fr 1fr; }
.mg-2 .drop-link .d-text { font-size:13px; line-height:1.35; }

/* ============================================================
   WHY RIXLSOFT CARD (devsinc-style)
============================================================ */
.why-card { position:relative; overflow:hidden; border-radius:28px; padding:56px; color:#fff; isolation:isolate;
  background:radial-gradient(ellipse 60% 70% at 70% 20%, rgba(0,200,240,.16), transparent 70%), linear-gradient(135deg, #07243a 0%, #05101e 70%); }
.why-card::after { content:''; position:absolute; inset:0; z-index:-1; background-image:linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px); background-size:48px 48px; mask-image:linear-gradient(to bottom, #000, transparent 70%); -webkit-mask-image:linear-gradient(to bottom, #000, transparent 70%); }
.why-top { display:flex; justify-content:space-between; align-items:center; gap:32px; margin-bottom:40px; }
.why-eyebrow { font-size:13px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.8); margin-bottom:16px; }
.why-card h2 { font-family:var(--font-h); font-size:clamp(28px,3.2vw,44px); font-weight:700; line-height:1.15; letter-spacing:-.02em; max-width:760px; margin-bottom:14px; }
.why-card h2 em { display:block; }
.why-top p { font-size:17px; color:rgba(255,255,255,.65); max-width:640px; }
.btn-white { background:#fff; color:var(--navy); }
.btn-white:hover { transform:translateY(-2px); box-shadow:0 14px 34px rgba(0,0,0,.3); }
.plat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.plat-card { position:relative; border-radius:18px; padding:24px; background:rgba(255,255,255,.035); border:1px solid rgba(255,255,255,.1); transition:all .35s var(--ease); overflow:hidden; isolation:isolate; }
.plat-card:hover { background:rgba(255,255,255,.07); border-color:rgba(0,200,240,.35); transform:translateY(-4px); }
.plat-card.spot::before { background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%), rgba(0,200,240,.14), transparent 50%); }
.plat-head { display:flex; flex-direction:column; align-items:flex-start; gap:14px; margin-bottom:16px; }
.plat-logo { display:inline-flex; align-items:center; gap:10px; background:#fff; color:var(--text); padding:10px 16px; border-radius:12px; font-family:var(--font-h); font-weight:700; font-size:16px; }
.plat-logo img { width:24px; height:24px; object-fit:contain; }
.plat-tag { font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--cyan); line-height:1.5; }
.plat-card p { font-size:14px; color:rgba(255,255,255,.62); line-height:1.65; }
.recog { margin-top:40px; padding-top:28px; border-top:1px solid rgba(255,255,255,.1); }
.recog-list { display:flex; flex-wrap:wrap; gap:12px; }
.recog-pill { display:inline-flex; align-items:center; gap:10px; padding:10px 18px 10px 10px; border-radius:12px; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.03); font-size:14px; font-weight:500; color:#fff; }
.rp-ico { width:32px; height:32px; border-radius:50%; background:#fff; display:grid; place-items:center; color:#ff3d2e; font-size:16px; }
.rp-ico img { width:20px; height:20px; object-fit:contain; }
.recog-pill:nth-child(4) .rp-ico { color:var(--blue); }
.recog-pill.light { color:var(--text); background:#fff; border-color:var(--border); padding:10px 16px; }
.recog-pill.light .icon { color:var(--blue); }

/* ============================================================
   CASE STUDY / BLOG CARDS & INDEX
============================================================ */
.cs-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.cs-feature + .cs-grid { margin-top:24px; }
.cs-card, .blog-card { display:flex; flex-direction:column; background:#fff; border:1.5px solid var(--border); border-radius:20px; overflow:hidden; transition:all .4s var(--ease); }
.cs-card:hover, .blog-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:rgba(10,110,245,.25); }
.cs-img, .blog-img { position:relative; aspect-ratio:16/10; overflow:hidden; background:linear-gradient(135deg,#0a2040,#0a6ef5); }
.cs-img img, .blog-img img { width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease); }
.cs-card:hover img, .blog-card:hover img { transform:scale(1.07); }
.cs-chip { position:absolute; left:14px; top:14px; display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border-radius:100px; font-size:11px; font-weight:700; letter-spacing:.06em; color:#fff; background:rgba(5,16,30,.72); backdrop-filter:blur(8px); }
.cs-body, .blog-body { padding:22px; display:flex; flex-direction:column; flex:1; }
.cs-meta { font-size:12px; color:var(--text3); margin-bottom:8px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.cs-card h3, .blog-card h3 { font-family:var(--font-h); font-size:17px; font-weight:700; line-height:1.35; margin-bottom:14px; }
.blog-card p { font-size:13.5px; color:var(--text2); line-height:1.65; margin-bottom:16px; }
.cs-results { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:16px; padding:14px 0; border-top:1px dashed var(--border); border-bottom:1px dashed var(--border); }
.cs-results strong { display:block; font-family:var(--font-h); font-size:22px; font-weight:800; background:var(--grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.cs-results span { font-size:11.5px; color:var(--text3); line-height:1.4; display:block; }
.cs-results.big { grid-template-columns:repeat(3,1fr); }
.cs-results.big strong { font-size:28px; }
.cs-card .more, .blog-card .more { margin-top:auto; display:inline-flex; align-items:center; gap:6px; font-size:13.5px; font-weight:600; color:var(--blue); }
.cs-card .more .icon, .blog-card .more .icon { transition:transform .3s var(--ease); }
.cs-card:hover .more .icon, .blog-card:hover .more .icon { transform:translateX(5px); }
.cs-feature { display:grid; grid-template-columns:1.1fr 1fr; background:#fff; border:1.5px solid var(--border); border-radius:24px; overflow:hidden; transition:all .4s var(--ease); }
.cs-feature:hover { box-shadow:var(--shadow-lg); border-color:rgba(10,110,245,.25); }
.cs-feature-img { overflow:hidden; min-height:360px; background:linear-gradient(135deg,#0a2040,#0a6ef5); }
.cs-feature-img img { width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); }
.cs-feature:hover .cs-feature-img img { transform:scale(1.05); }
.cs-feature-body { padding:40px; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; }
.cs-feature-body h2 { font-family:var(--font-h); font-size:clamp(22px,2.2vw,30px); font-weight:800; line-height:1.25; margin-bottom:12px; }
.cs-feature-body p { font-size:15px; color:var(--text2); line-height:1.7; margin-bottom:20px; }
.cs-feature-body .cs-results { width:100%; }
.page-hero-slim { padding-bottom:56px; }
.page-hero-solo { max-width:860px; }
.cs-facts { display:grid; grid-template-columns:repeat(4,auto); justify-content:start; gap:14px 36px; padding-top:22px; border-top:1px solid rgba(255,255,255,.1); }
.cs-facts div { font-size:14.5px; font-weight:600; }
.cs-facts small { display:block; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--cyan); margin-bottom:4px; }
.post-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:14px; color:rgba(255,255,255,.7); }
.post-meta .icon { color:var(--cyan); }
.post-meta span { opacity:.4; }

/* Article layout */
.article-layout { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:56px; align-items:start; }
.article-side { position:sticky; top:calc(var(--nav-h) + 20px); display:flex; flex-direction:column; gap:16px; }
.side-card { background:#fff; border:1.5px solid var(--border); border-radius:18px; padding:22px; }
.side-card h4 { font-family:var(--font-h); font-size:12px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--text3); margin:18px 0 10px; }
.side-card h4:first-child { margin-top:0; }
.side-card dl { display:grid; grid-template-columns:auto 1fr; gap:8px 14px; font-size:13.5px; }
.side-card dt { color:var(--text3); }
.side-card dd { font-weight:600; }
.side-card.dark { background:var(--navy); border-color:var(--navy); color:#fff; }
.side-card.dark h4 { color:var(--cyan); }
.side-card.dark p { font-size:14px; color:rgba(255,255,255,.7); margin-bottom:16px; }
.side-card.dark .side-links a { color:rgba(255,255,255,.8); }
.side-links { display:flex; flex-direction:column; gap:4px; margin-top:12px; }
.side-links a { display:flex; align-items:center; gap:8px; padding:7px 0; font-size:14px; font-weight:600; color:var(--text); transition:color .2s, padding .3s var(--ease); }
.side-links a .icon { color:var(--blue); }
.side-links a:hover { color:var(--blue); padding-left:4px; }
.toc { display:flex; flex-direction:column; }
.toc a { font-size:13.5px; color:var(--text2); padding:8px 0 8px 14px; border-left:2px solid var(--border); transition:all .2s; line-height:1.4; }
.toc a:hover { color:var(--blue); border-color:var(--blue); }
.sol-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:8px; }
.sol-card { position:relative; background:var(--light); border:1.5px solid var(--border); border-radius:16px; padding:22px; overflow:hidden; isolation:isolate; transition:all .35s var(--ease); }
.sol-card:hover { background:#fff; box-shadow:var(--shadow-lg); border-color:rgba(10,110,245,.25); }
.sol-card .num { font-family:var(--font-h); font-weight:800; font-size:13px; color:var(--blue); }
.sol-card h3 { font-family:var(--font-h); font-size:16.5px; font-weight:700; margin:6px 0; }
.sol-card p { font-size:14px; color:var(--text2); line-height:1.65; }
.highlights { display:grid; gap:12px; }
.hl { display:flex; align-items:center; gap:14px; padding:18px 20px; border-radius:14px; background:var(--light); border:1.5px solid var(--border); font-weight:600; font-size:15px; }
.hl .icon { width:28px; height:28px; padding:5px; border-radius:50%; background:var(--grad); color:#fff; flex-shrink:0; }
.flow.f4 { grid-template-columns:repeat(4,1fr); }

/* Blog post */
.post-sec { padding-top:48px; }
.post-cover { border-radius:24px; overflow:hidden; aspect-ratio:21/9; margin-bottom:48px; background:linear-gradient(135deg,#0a2040,#0a6ef5); }
.post-cover img { width:100%; height:100%; object-fit:cover; }
.post { font-size:17px; color:var(--text2); line-height:1.85; }
.post .post-lead { font-size:19px; color:var(--text); line-height:1.75; margin-bottom:18px; }
.post h2 { font-family:var(--font-h); font-size:clamp(22px,2.2vw,28px); font-weight:800; color:var(--text); margin:40px 0 14px; letter-spacing:-.01em; scroll-margin-top:calc(var(--nav-h) + 20px); }
.post p { margin-bottom:16px; }
.post ul { margin:6px 0 20px; padding-left:22px; }
.post li { margin-bottom:8px; }
.post li::marker { color:var(--blue); }
.takeaways { margin-top:40px; padding:28px; border-radius:18px; background:linear-gradient(135deg,#eef5ff,#e8fbff); border:1.5px solid rgba(10,110,245,.18); }
.takeaways h3 { display:flex; align-items:center; gap:10px; font-family:var(--font-h); font-size:18px; color:var(--text); margin-bottom:14px; }
.takeaways h3 .icon { color:var(--blue); }
.takeaways ul { list-style:none; padding:0; margin:0; }
.takeaways li { display:flex; gap:10px; align-items:flex-start; font-size:15.5px; color:var(--text); }
.takeaways li .icon { color:var(--mint); margin-top:5px; }

/* About / careers */
.mv-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:24px; }
.mv-card { background:#fff; border:1.5px solid var(--border); border-radius:16px; padding:20px; }
.mv-card .p-ico { width:44px; height:44px; border-radius:12px; display:grid; place-items:center; font-size:20px; color:#fff; background:var(--grad); margin-bottom:12px; }
.mv-card h4 { font-family:var(--font-h); font-size:16px; font-weight:700; margin-bottom:6px; }
.mv-card p { font-size:14px; color:var(--text2); line-height:1.6; }
.regions { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; }
.regions p { color:var(--text2); font-size:16px; }
.region-list { display:flex; flex-wrap:wrap; gap:10px; }
.empty-roles { max-width:720px; margin:0 auto; text-align:center; background:#fff; border:1.5px dashed rgba(10,110,245,.35); border-radius:24px; padding:48px 32px; }
.er-ico { width:72px; height:72px; margin:0 auto 18px; border-radius:20px; display:grid; place-items:center; font-size:32px; color:#fff; background:var(--grad); box-shadow:0 14px 34px rgba(10,110,245,.35); }
.empty-roles h3 { font-family:var(--font-h); font-size:24px; font-weight:800; margin-bottom:10px; }
.empty-roles p { color:var(--text2); font-size:15.5px; line-height:1.7; margin-bottom:24px; }

@media (max-width:1180px) {
  .plat-grid { grid-template-columns:1fr 1fr; }
  .article-layout { grid-template-columns:1fr; }
  .article-side { position:static; }
  .flow.f4 { grid-template-columns:1fr 1fr; }
}
@media (max-width:900px) {
  .why-card { padding:36px 24px; }
  .why-top { flex-direction:column; align-items:flex-start; }
  .cs-grid { grid-template-columns:1fr 1fr; }
  .cs-feature { grid-template-columns:1fr; }
  .cs-feature-img { min-height:240px; }
  .cs-facts { grid-template-columns:1fr 1fr; }
  .regions { grid-template-columns:1fr; }
}
@media (max-width:640px) {
  .plat-grid, .cs-grid, .sol-grid, .mv-grid, .flow.f4 { grid-template-columns:1fr; }
  .cs-feature-body { padding:24px; }
  .cs-results.big { grid-template-columns:1fr 1fr; }
  .post-cover { aspect-ratio:16/10; }
  .post { font-size:16px; }
}

/* New landing components — responsive */
@media (max-width:1180px) {
  .bento { grid-template-columns:repeat(3,1fr); grid-template-areas:"g g a" "g g x" "b w w" "c d d"; }
  .flow { grid-template-columns:repeat(3,1fr); }
  .flow-line { display:none; }
  .awards-strip { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:900px) {
  .hs-bottom .container { flex-direction:column; align-items:flex-start; gap:18px; }
  .hs-content { padding-bottom:190px; }
  .ins { grid-template-columns:1fr; }
  .ins-feature { min-height:380px; }
  .bento { grid-template-columns:1fr 1fr; grid-auto-rows:200px; grid-template-areas:"g g" "g g" "a a" "x b" "w w" "c d"; }
}
@media (max-width:640px) {
  .hs-slide::before { background:linear-gradient(180deg, rgba(5,16,30,.8), rgba(5,16,30,.94)); }
  .hs-text { font-size:15.5px; }
  .hs-logos { gap:8px 18px; }
  .hs-logos span { font-size:13px; }
  .hs-content { justify-content:flex-start; padding-top:calc(var(--nav-h) + 40px); }
  .hs-logos span:nth-child(n+5) { display:none; }
  .peek { border-radius:20px 20px 0 0; margin-top:-20px; }
  .bento { grid-template-columns:1fr 1fr; grid-auto-rows:180px; gap:12px; grid-template-areas:"g g" "g g" "a a" "x b" "w w" "c d"; }
  .tile { padding:18px; }
  .tile-g { padding:24px; }
  .tile-x .tile-tag, .tile-b .tile-tag, .tile-c .tile-tag, .tile-d .tile-tag { display:none; }
  .tile-x .tile-body, .tile-b .tile-body, .tile-c .tile-body, .tile-d .tile-body { padding-right:0; }
  .tile-body h3 { font-size:17px; }
  .tile-x p, .tile-b p, .tile-c p, .tile-d p { display:none; }
  .flow { grid-template-columns:1fr; }
  .awards-strip { grid-template-columns:1fr; }
  .ins-item { grid-template-columns:92px 1fr; }
  .svc-chips-label { width:100%; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
  [data-reveal] { opacity:1; transform:none; filter:none; clip-path:none; }
  .split-word > span { transform:none; }
  .marquee-track { animation:none; }
}

/* Form uploads + spam honeypot */
.hp { position:absolute !important; left:-9999px !important; width:1px; height:1px; opacity:0; }
.form-group label .opt { font-weight:400; color:rgba(255,255,255,.4); letter-spacing:0; }
.file-drop { position:relative; display:flex; align-items:center; gap:12px; padding:16px; border-radius:10px; border:1.5px dashed rgba(255,255,255,.22); background:rgba(255,255,255,.04); cursor:pointer; transition:all .25s; color:rgba(255,255,255,.7) !important; font-size:14px !important; font-weight:500 !important; letter-spacing:0 !important; }
.file-drop:hover, .file-drop:focus-within { border-color:var(--cyan); background:rgba(0,200,240,.06); }
.file-drop input { position:absolute; inset:0; opacity:0; cursor:pointer; }
.file-drop .fd-ico { width:36px; height:36px; flex-shrink:0; border-radius:9px; display:grid; place-items:center; font-size:17px; color:var(--cyan); background:rgba(0,200,240,.1); }
.file-drop.has-file { border-style:solid; border-color:var(--mint); }
.file-drop.has-file .fd-ico { color:#fff; background:var(--mint); }
.file-drop.invalid { border-color:#ff5c7a; }
.form-submit:disabled { opacity:.7; cursor:progress; }
.thanks-card { max-width:680px; margin:0 auto; text-align:center; }
.thanks-card .er-ico { background:linear-gradient(135deg,#00d4a0,#00c8f0); }
.thanks-card .hero-actions { justify-content:center; margin-top:28px; }

/* ============================================================
   CLIENT VOICES (testimonials) + TRUSTED BY
============================================================ */
.tm-sec { background:radial-gradient(ellipse 50% 60% at 90% 0%, rgba(0,200,240,.16), transparent 70%), linear-gradient(160deg, #07243a 0%, #05101e 65%); color:#fff; overflow:hidden; }
.tm-title { font-family:var(--font-h); font-size:clamp(28px,3.2vw,44px); font-weight:700; line-height:1.15; letter-spacing:-.02em; max-width:760px; }
 .tm-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.tm-card { position:relative; display:flex; flex-direction:column; margin:0; padding:28px 24px 22px; border-radius:20px; background:rgba(255,255,255,.035); border:1px solid rgba(255,255,255,.1); overflow:hidden; isolation:isolate; transition:border-color .35s, background .35s, transform .4s var(--ease); }
.tm-card:hover { border-color:rgba(0,200,240,.35); background:rgba(255,255,255,.06); transform:translateY(-4px); }
.tm-card.spot::before { background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%), rgba(0,200,240,.12), transparent 50%); }
.tm-q { font-family:Georgia, serif; font-size:72px; line-height:.8; height:36px; font-weight:700; background:var(--grad-3); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; margin-bottom:12px; }
.tm-card blockquote { font-size:15px; line-height:1.75; color:rgba(255,255,255,.86); margin:0 0 22px; flex:1; }
.tm-card figcaption { display:flex; align-items:center; gap:12px; padding-top:18px; border-top:1px solid rgba(255,255,255,.12); }
.tm-card figcaption strong { display:block; font-family:var(--font-h); font-size:15px; font-weight:700; }
.tm-card figcaption span { font-size:12.5px; color:rgba(255,255,255,.55); line-height:1.4; display:block; }
/* Client logos: identical white tiles; logos scaled to the same visual weight */
.client-tile { display:inline-flex; align-items:center; justify-content:center; gap:10px; width:188px; height:84px; padding:14px 20px; border-radius:16px; background:#fff; box-shadow:0 1px 0 rgba(255,255,255,.1) inset; transition:transform .35s var(--ease), box-shadow .35s; }
.client-tile img { max-width:100%; max-height:44px; object-fit:contain; }
.client-tile.square { padding:6px; }
.client-tile.square img { max-height:72px; border-radius:10px; }
.client-tile.dark img { filter:invert(1) brightness(.12); }   /* white logo shown dark on the white tile */
.client-tile:hover { transform:translateY(-3px); box-shadow:0 14px 34px rgba(0,0,0,.35); }
.mono-tile .cm-mono { width:40px; height:40px; border-radius:10px; display:grid; place-items:center; font-family:var(--font-h); font-size:18px; font-weight:800; color:#fff; background:var(--grad); flex-shrink:0; }
.mono-tile .cm-name { font-family:var(--font-h); font-size:22px; font-weight:800; color:var(--navy); letter-spacing:-.01em; }
.tm-card .client-tile { width:112px; height:52px; padding:8px 12px; border-radius:12px; flex-shrink:0; }
.tm-card .client-tile img { max-height:28px; }
.tm-card .client-tile.square img { max-height:40px; }
.tm-card .mono-tile .cm-mono { width:28px; height:28px; font-size:13px; }
.tm-card .mono-tile .cm-name { font-size:15px; }
.trusted { margin-top:44px; padding-top:28px; border-top:1px solid rgba(255,255,255,.1); }
.trusted-row { display:grid; grid-template-columns:repeat(6, minmax(0,1fr)); gap:14px; }
.trusted-row .client-tile { width:100%; }
@media (max-width:1180px) { .tm-grid { grid-template-columns:1fr 1fr; } .trusted-row { grid-template-columns:repeat(3, minmax(0,1fr)); } }
@media (max-width:640px) {
  .tm-grid { grid-template-columns:1fr; }
  .trusted-row { grid-template-columns:1fr 1fr; }
  .trusted-row .client-tile { width:100%; height:72px; }
}
.tm-card figcaption .tm-co { color:var(--cyan); font-weight:600; margin-top:2px; }
.nf-code { font-family:var(--font-h); font-size:clamp(90px,14vw,160px); font-weight:800; line-height:1; letter-spacing:-.04em; background:var(--grad-3); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; margin-bottom:8px; }
.thanks-card h1 { font-family:var(--font-h); font-size:clamp(28px,3.4vw,46px); font-weight:700; line-height:1.15; margin-bottom:16px; }
