:root {
  --ink: #0a1a3a;
  --blue: #0a6fd8;
  --deep: #0b2a6b;
  --sky: #eaf2ff;
  --paper: #f6f9fe;
  --line: #dbe5f5;
  --mut: #51607d;
  --gold: #ffb400;
  --bg: #fff;
  --card: #fff;
  --txt: #0a1a3a;
  --r: 16px;
}
* {
  box-sizing: border-box;
  margin: 0;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 84px;
  height: auto;
}
:root {
  padding-top: env(safe-area-inset-top, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
body {
  font:
    400 1rem/1.65 "DM Sans",
    system-ui,
    sans-serif;
  color: var(--txt);
  background: var(--bg);
  overflow-x: hidden;
}
h1,
h2,
h3 {
  font-family: "Plus Jakarta Sans", sans-serif;
  line-height: 1.1;
  letter-spacing: -0.02em;
}
a {
  color: inherit;
  text-decoration: none;
}
img {
  max-width: 100%;
  display: block;
}
:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 2px;
}
.w {
  width: min(1180px, 100% - 40px);
  margin: auto;
}
section {
  padding: clamp(56px, 8vw, 104px) 0;
}
.alt {
  background: var(--paper);
}
h2 {
  font-size: clamp(1.9rem, 4.2vw, 3rem);
  max-width: 18ch;
}
.lead {
  color: var(--mut);
  max-width: 60ch;
  margin-top: 14px;
  font-size: 1.06rem;
}
.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 26px;
  border-radius: 999px;
  font-weight: 700;
  border: 2px solid transparent;
  cursor: pointer;
  font: 700 1rem "DM Sans";
  transition:
    transform 0.2s,
    background 0.2s;
}
.btn:hover {
  transform: translateY(-2px);
}
.p {
  background: var(--blue);
  color: #fff;
}
.p:hover {
  background: #0858ad;
}
.g {
  border-color: rgba(255, 255, 255, 0.35);
  color: #fff;
}
.g:hover {
  background: rgba(255, 255, 255, 0.1);
}
.o {
  border-color: var(--blue);
  color: var(--blue);
}
header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: color-mix(in srgb, var(--bg) 90%, transparent);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line);
}
.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 72px;
}
.nav img {
  height: 44px;
  border-radius: 6px;
  background: #fff;
  padding: 2px 6px;
}
nav ul {
  display: flex;
  gap: 26px;
  list-style: none;
  padding: 0;
  align-items: center;
}
nav a {
  font-weight: 500;
  font-size: 0.95rem;
  color: var(--mut);
}
nav a:hover {
  color: var(--blue);
}
.nav .btn {
  padding: 10px 20px;
}
#mb {
  display: none;
  background: none;
  border: 1px solid var(--line);
  color: var(--txt);
  width: 44px;
  height: 44px;
  border-radius: 12px;
  font-size: 1.3rem;
}
.hero {
  background:
    radial-gradient(900px 500px at 85% 0, #1b63c9 0, transparent 60%),
    radial-gradient(600px 400px at 0 100%, #0e3a8f 0, transparent 70%), #06142e;
  color: #fff;
  padding: clamp(56px, 9vw, 120px) 0;
  overflow: hidden;
}
.hg {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 48px;
  align-items: center;
}
.hero h1 {
  font-size: clamp(2.4rem, 6.4vw, 4.9rem);
  font-weight: 800;
}
.hero p {
  color: #b9c9e8;
  font-size: 1.15rem;
  max-width: 52ch;
  margin: 22px 0 32px;
}
.cta {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}
.chips {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 34px;
}
.chips span {
  font-size: 0.85rem;
  padding: 7px 14px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.14);
}
.dash {
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 24px;
  padding: 26px;
  backdrop-filter: blur(8px);
}
.dash h3 {
  font-size: 1rem;
  font-weight: 500;
  color: #b9c9e8;
}
.big {
  font-size: clamp(3rem, 7vw, 4.6rem);
  font-weight: 800;
  color: var(--gold);
  font-family: "Plus Jakarta Sans";
}
.dash svg {
  width: 100%;
  height: auto;
  margin: 6px 0 14px;
}
.mini {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.mini div {
  background: rgba(255, 255, 255, 0.07);
  border-radius: 14px;
  padding: 14px;
}
.mini b {
  display: block;
  font: 800 1.7rem "Plus Jakarta Sans";
}
.mini small {
  color: #b9c9e8;
}
.stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-top: 44px;
}
.stat {
  border-left: 4px solid var(--blue);
  padding-left: 18px;
}
.stat b {
  font: 800 clamp(2rem, 4vw, 3rem) "Plus Jakarta Sans";
  color: var(--blue);
  display: block;
  line-height: 1;
}
.tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 30px 0;
}
.tabs button {
  padding: 10px 20px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--card);
  color: var(--txt);
  font: 500 0.95rem "DM Sans";
  cursor: pointer;
}
.tabs button[aria-pressed="true"] {
  background: var(--blue);
  color: #fff;
  border-color: var(--blue);
}
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
  gap: 22px;
}
.card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: 26px;
  transition:
    border-color 0.2s,
    box-shadow 0.2s;
}
.card:hover {
  border-color: var(--blue);
  box-shadow: 0 14px 34px -18px rgba(10, 111, 216, 0.45);
}
.card h3 {
  font-size: 1.25rem;
  margin-bottom: 8px;
}
.card p {
  color: var(--mut);
  font-size: 0.96rem;
}
.tag {
  display: inline-block;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--blue);
  background: var(--sky);
  padding: 4px 12px;
  border-radius: 99px;
  margin-bottom: 12px;
}
.ft {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 16px;
}
.ft i {
  font-style: normal;
  font-size: 0.8rem;
  padding: 4px 10px;
  border-radius: 8px;
  background: var(--sky);
  color: var(--txt);
}
.ic {
  font-size: 1.8rem;
  margin-bottom: 10px;
}
.m {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 18px;
}
.m div {
  background: var(--paper);
  border-radius: 12px;
  padding: 12px;
}
.m b {
  font: 800 1.5rem "Plus Jakarta Sans";
  color: var(--blue);
  display: block;
}
.m small {
  color: var(--mut);
  font-size: 0.8rem;
}
.steps {
  counter-reset: s;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-top: 40px;
}
.steps div {
  position: relative;
  padding: 26px;
  border-radius: var(--r);
  background: var(--deep);
  color: #fff;
}
.steps div:before {
  counter-increment: s;
  content: counter(s);
  font: 800 2.6rem "Plus Jakarta Sans";
  color: var(--gold);
  display: block;
  line-height: 1;
  margin-bottom: 10px;
}
.steps p {
  color: #bcd0f0;
  font-size: 0.95rem;
}
.two {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(28px, 5vw, 64px);
  align-items: center;
}
.two img {
  border-radius: 24px;
  aspect-ratio: 4/3;
  object-fit: cover;
  width: 100%;
}
.mv {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
  margin-top: 30px;
}
.tm {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 18px;
  margin-top: 34px;
}
.tm .card {
  text-align: center;
  padding: 22px 16px;
}
.av {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--blue), var(--deep));
  color: #fff;
  display: grid;
  place-items: center;
  font: 800 1.3rem "Plus Jakarta Sans";
  margin: 0 auto 12px;
}
.tm small {
  display: block;
  color: var(--blue);
  font-weight: 700;
  margin: 2px 0 8px;
}
.chk {
  list-style: none;
  padding: 0;
  margin-top: 20px;
  display: grid;
  gap: 10px;
}
.chk li {
  padding-left: 30px;
  position: relative;
}
.chk li:before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--blue);
  color: #fff;
  font-size: 0.8rem;
  display: grid;
  place-items: center;
}
.q {
  font-size: 1.05rem;
}
.q cite {
  display: block;
  margin-top: 14px;
  font-style: normal;
  font-weight: 700;
  color: var(--blue);
  font-size: 0.92rem;
}
.star {
  color: var(--gold);
  letter-spacing: 3px;
  margin-bottom: 8px;
}
details {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 18px 22px;
  margin-top: 12px;
}
summary {
  cursor: pointer;
  font-weight: 700;
  list-style: none;
  display: flex;
  justify-content: space-between;
  gap: 14px;
}
summary:after {
  content: "+";
  color: var(--blue);
  font-size: 1.4rem;
  line-height: 1;
}
details[open] summary:after {
  content: "–";
}
details p {
  color: var(--mut);
  margin-top: 10px;
}
.cg {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 32px;
  margin-top: 40px;
}
form {
  display: grid;
  gap: 14px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: 28px;
}
label {
  font-weight: 700;
  font-size: 0.9rem;
  display: grid;
  gap: 6px;
}
input,
select,
textarea {
  font: inherit;
  padding: 13px 14px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: var(--bg);
  color: var(--txt);
  width: 100%;
}
.f2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.info {
  display: grid;
  gap: 16px;
  align-content: start;
}
.info .card {
  padding: 20px;
}
.info a {
  color: var(--blue);
  font-weight: 700;
}
.cta2 {
  background: linear-gradient(120deg, var(--blue), var(--deep));
  color: #fff;
  border-radius: 28px;
  padding: clamp(32px, 6vw, 64px);
  text-align: center;
}
.cta2 h2 {
  margin: auto;
  max-width: 20ch;
}
.cta2 p {
  margin: 14px auto 26px;
  color: #d3e2ff;
  max-width: 50ch;
}
footer {
  background: #06142e;
  color: #b9c9e8;
  padding: 56px 0 28px;
}
.fg {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 32px;
}
footer h4 {
  color: #fff;
  margin-bottom: 12px;
  font-family: "Plus Jakarta Sans";
}
footer li {
  list-style: none;
  margin: 6px 0;
}
footer ul {
  padding: 0;
}
footer a:hover {
  color: #fff;
}
footer img {
  height: 44px;
  background: #fff;
  border-radius: 8px;
  padding: 3px 8px;
  margin-bottom: 14px;
}
.cp {
  border-top: 1px solid #1d2d52;
  margin-top: 34px;
  padding-top: 20px;
  font-size: 0.88rem;
}
#wa {
  position: fixed;
  right: 20px;
  bottom: 20px;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #25D366;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
  z-index: 999;
}
#wa svg {
  width: 30px;
  height: 30px;
  fill: #fff;
}
#wa:hover {
  transform: scale(1.08);
}
@media (max-width: 900px) {
  .hg,
  .two,
  .cg,
  .mv {
    grid-template-columns: 1fr;
  }
  .stats {
    grid-template-columns: 1fr 1fr;
  }
  .steps {
    grid-template-columns: 1fr 1fr;
  }
  .fg {
    grid-template-columns: 1fr 1fr;
  }
  #mb {
    display: block;
  }
  nav ul {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 72px;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    background: var(--bg);
    border-bottom: 1px solid var(--line);
    padding: 10px 20px 20px;
  }
  nav.o ul {
    display: flex;
  }
  nav li a {
    display: block;
    padding: 14px 0;
    border-bottom: 1px solid var(--line);
  }
  .nav .btn {
    display: none;
  }
}
@media (max-width: 560px) {
  .steps,
  .f2,
  .fg {
    grid-template-columns: 1fr;
  }
  .grid {
    grid-template-columns: 1fr;
  }
  .btn {
    width: 100%;
    justify-content: center;
  }
  .cta {
    flex-direction: column;
  }
  #wa span {
    display: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
@keyframes up {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.hero .hg > * {
  animation: up 0.8s both;
}
.hero .hg > *:nth-child(2) {
  animation-delay: 0.15s;
}
.ph {
  background: radial-gradient(800px 400px at 90% 0, #1b63c9 0, transparent 60%), #06142e;
  color: #fff;
  padding: clamp(48px, 7vw, 88px) 0;
}
.ph h1 {
  font-size: clamp(2.2rem, 5.4vw, 4rem);
  font-weight: 800;
  max-width: 20ch;
}
.ph p {
  color: #b9c9e8;
  font-size: 1.12rem;
  max-width: 56ch;
  margin-top: 16px;
}
.wide {
  border-radius: 24px;
  margin-top: 22px;
  aspect-ratio: 21/9;
  object-fit: cover;
  width: 100%;
}
nav a[aria-current] {
  color: var(--blue);
  font-weight: 700;
}
.quote {
  background: var(--sky);
  border-left: 5px solid var(--blue);
  border-radius: var(--r);
  padding: 28px;
  max-width: 860px;
}
.quote p + p {
  margin-top: 12px;
  color: var(--mut);
}
.card ul {
  padding-left: 18px;
  margin-top: 12px;
  color: var(--mut);
  font-size: 0.95rem;
}
.stats.s4 {
  margin-top: 30px;
}

/* ===== Header: solid white, plain logo ===== */
header{background:#fff !important;backdrop-filter:none !important;border-bottom:1px solid #dbe5f5}
header .nav img{background:transparent !important;padding:0 !important;border-radius:0 !important}
header nav a{color:#51607d}
header nav a:hover,header nav a[aria-current]{color:#0a6fd8}
#mb{background:#fff;color:#0a1a3a;border-color:#dbe5f5}
footer img{background:none;padding:0;border-radius:0;filter:brightness(0) invert(1)}
@media (max-width:900px){nav ul{background:#fff}nav li a{border-bottom:1px solid #dbe5f5}}

/* ===== Partners ===== */
.partners{background:var(--paper);padding:clamp(48px,6vw,80px) 0}
.sec-center{text-align:center}
.sec-center h2{margin-inline:auto;max-width:22ch}
.partner-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:36px}
.partner{background:#fff;border:1px solid var(--line);border-radius:var(--r);height:140px;display:grid;place-items:center;padding:20px 26px;transition:transform .25s,box-shadow .25s}
.partner:hover{transform:translateY(-4px);box-shadow:0 14px 34px -18px rgba(10,111,216,.45)}
.partner img{max-height:84px;max-width:100%;width:auto;height:auto;object-fit:contain;mix-blend-mode:multiply}
.partner.dark{background:var(--deep);border-color:var(--deep)}
.partner.dark img{mix-blend-mode:normal}

/* ===== Industries ===== */
.ind-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:18px;margin-top:36px}
.ind{flex:0 1 calc(25% - 14px);background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:26px 18px;text-align:center;transition:transform .25s,border-color .25s,box-shadow .25s}
.ind:hover{border-color:var(--blue);transform:translateY(-4px);box-shadow:0 14px 34px -18px rgba(10,111,216,.45)}
.ind span{display:block;font-size:2.2rem;margin-bottom:10px}
.ind b{display:block;font:700 1.1rem "Plus Jakarta Sans";margin-bottom:4px}
.ind small{color:var(--mut);font-size:.88rem}
a.card{display:block}

/* ===== Services page images ===== */
.img-row{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:56px}
.img-row figure{margin:0;position:relative;border-radius:20px;overflow:hidden;aspect-ratio:4/3}
.img-row img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.img-row figure:hover img{transform:scale(1.05)}
.img-row figcaption{position:absolute;left:0;right:0;bottom:0;padding:44px 18px 16px;background:linear-gradient(transparent,rgba(6,20,46,.88));color:#fff;font-weight:700}

@media (max-width:900px){
  .partner-grid{grid-template-columns:1fr 1fr}
  .ind{flex-basis:calc(50% - 9px)}
  .img-row{grid-template-columns:1fr}
}
@media (max-width:560px){.partner{height:110px;padding:14px}.partner img{max-height:64px}.ind{padding:20px 12px}}

/* ===== Infinite partner logo slider ===== */
.partner-marquee{overflow:hidden;margin-top:36px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.partner-track{display:flex;width:max-content;animation:partner-scroll 36s linear infinite}
.partner-marquee:hover .partner-track{animation-play-state:paused}
.partner-track .partner{flex:0 0 260px;margin-right:18px}
@keyframes partner-scroll{to{transform:translateX(-50%)}}
@media (max-width:560px){.partner-track .partner{flex-basis:200px}}
@media (prefers-reduced-motion:reduce){.partner-track{animation:none}}

/* ===== Infinite industries slider ===== */
.ind-marquee{overflow:hidden;margin-top:22px;padding:14px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.ind-track{display:flex;width:max-content;animation:partner-scroll 40s linear infinite reverse}
.ind-marquee:hover .ind-track{animation-play-state:paused}
.ind-track .ind{flex:0 0 240px;margin-right:18px}
@media (max-width:560px){.ind-track .ind{flex-basis:200px}}
@media (prefers-reduced-motion:reduce){.ind-track{animation:none}}

/* ===== Scroll animations ===== */
.js .rv{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.js .rv-l{transform:translateX(-40px)}
.js .rv-r{transform:translateX(40px)}
.js .rv-z{transform:scale(.94)}
.js .rv.in{opacity:1;transform:none}

/* ===== Services dropdown ===== */
nav li.has-dd{position:relative;display:flex;align-items:center;gap:2px;padding:20px 0}
nav li.has-dd>a.is-current{color:var(--blue);font-weight:700}
.dd-btn{background:none;border:0;padding:6px;margin:0;cursor:pointer;color:var(--mut);display:grid;place-items:center;border-radius:8px}
.dd-btn svg{width:12px;height:12px;transition:transform .2s}
.has-dd.open .dd-btn svg{transform:rotate(180deg)}
.dd-btn:hover,.has-dd.open .dd-btn{color:var(--blue)}
nav li.has-dd .dd{position:absolute;top:100%;left:50%;width:660px;max-width:92vw;transform:translate(-50%,10px);opacity:0;visibility:hidden;transition:opacity .2s,transform .2s,visibility .2s;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 60px -20px rgba(10,26,58,.35);padding:22px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px 24px;z-index:60}
.dd-col b{display:block;font:700 .72rem "Plus Jakarta Sans";letter-spacing:.08em;text-transform:uppercase;color:var(--blue);margin-bottom:8px}
nav .dd a{display:block;padding:8px 10px;margin:0 -10px;border-radius:10px;font-size:.93rem;color:var(--txt);font-weight:500;border:0}
nav .dd a:hover{background:var(--sky);color:var(--blue)}
.dd-all{grid-column:1/-1;border-top:1px solid var(--line);padding-top:12px;margin-top:6px}
nav .dd-all a{font-weight:700;color:var(--blue)}
@media (min-width:901px){
  .has-dd:hover .dd,.has-dd.open .dd{opacity:1;visibility:visible;transform:translate(-50%,0)}
  .has-dd:hover .dd-btn svg{transform:rotate(180deg)}
  .has-dd:hover .dd-btn{color:var(--blue)}
}
@media (max-width:900px){
  nav>ul{max-height:calc(100vh - 72px);overflow-y:auto}
  nav li.has-dd{flex-wrap:wrap;align-items:stretch;padding:0;gap:0}
  nav li.has-dd>a{flex:1}
  .dd-btn{width:52px;border-radius:0;border-bottom:1px solid #dbe5f5;color:var(--txt)}
  .dd-btn svg{width:16px;height:16px}
  nav li.has-dd .dd{position:static;width:100%;max-width:none;transform:none;opacity:1;visibility:visible;display:none;box-shadow:none;border:0;border-radius:0;padding:6px 0 12px 14px;grid-template-columns:1fr;gap:0;background:#f6f9fe;flex-basis:100%}
  nav li.has-dd.open .dd{display:grid}
  .dd-col{margin-bottom:8px}
  nav .dd a{padding:10px 8px;margin:0}
}

/* ===== Our expertise: dark bento section ===== */
.exp{position:relative;overflow:hidden;isolation:isolate;padding:clamp(64px,8vw,110px) 0;color:#cfdcf5;
  background:radial-gradient(900px 520px at 88% -8%,rgba(27,99,201,.6),transparent 62%),radial-gradient(700px 420px at 0% 100%,rgba(34,211,238,.2),transparent 65%),linear-gradient(180deg,#06142e,#0a1f4a)}
.exp::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse at 50% 30%,#000 25%,transparent 75%);mask-image:radial-gradient(ellipse at 50% 30%,#000 25%,transparent 75%)}
.exp-orb{position:absolute;border-radius:50%;filter:blur(80px);pointer-events:none;z-index:-1;animation:xp-float 16s ease-in-out infinite alternate}
.exp-orb.o1{width:360px;height:360px;background:#1b63c9;opacity:.45;top:-100px;left:-90px}
.exp-orb.o2{width:320px;height:320px;background:#22d3ee;opacity:.2;bottom:-80px;right:-60px;animation-delay:-8s}
@keyframes xp-float{to{transform:translate(50px,40px) scale(1.12)}}
.exp-head{text-align:center;max-width:720px;margin:0 auto 52px}
.xp-eyebrow{display:inline-block;font:700 .78rem "Plus Jakarta Sans";letter-spacing:.14em;text-transform:uppercase;color:#bfdbfe;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);padding:8px 16px;border-radius:99px;margin-bottom:18px}
.exp-head h2{color:#fff;max-width:none;margin-bottom:14px}
.exp-head p{color:#b9c9e8;font-size:1.08rem}
.xp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.xp-card{position:relative;display:flex;flex-direction:column;overflow:hidden;padding:28px 24px 24px;border-radius:22px;color:#b9c9e8;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.13);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .3s,border-color .3s,box-shadow .3s,background .3s}
.xp-card::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(380px circle at var(--mx,50%) var(--my,0%),rgba(96,165,250,.28),transparent 45%)}
.xp-card:hover{transform:translateY(-6px);border-color:rgba(96,165,250,.65);background:rgba(255,255,255,.09);box-shadow:0 24px 50px -20px rgba(34,211,238,.35)}
.xp-card:hover::before{opacity:1}
.xp-lg{grid-column:span 2;padding:32px 30px 28px;background:linear-gradient(135deg,rgba(27,99,201,.35),rgba(255,255,255,.06))}
.xp-no{position:absolute;top:18px;right:22px;font:800 2.2rem/1 "Plus Jakarta Sans";color:rgba(255,255,255,.14)}
.xp-ic{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;color:#fff;margin-bottom:20px;background:linear-gradient(135deg,#1b63c9,#22d3ee);box-shadow:0 10px 24px -8px rgba(34,211,238,.55)}
.xp-ic svg{width:25px;height:25px}
.xp-card h3{color:#fff;font-size:1.2rem;margin-bottom:8px;position:relative}
.xp-card p{color:#b9c9e8;font-size:.94rem;margin:0 0 18px;position:relative}
.xp-lg h3{font-size:1.4rem}
.xp-tags{display:flex;flex-wrap:wrap;gap:8px;margin:-4px 0 20px;position:relative}
.xp-tags i{font-style:normal;font-size:.8rem;font-weight:600;color:#dbeafe;padding:5px 12px;border-radius:99px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14)}
.xp-go{margin-top:auto;display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.9rem;color:#7dd3fc;position:relative}
.xp-go svg{width:16px;height:16px;transition:transform .25s}
.xp-card:hover .xp-go svg{transform:translateX(5px)}
.xp-cta{margin-top:28px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:22px 28px;border-radius:20px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15)}
.xp-cta b{display:block;color:#fff;font:700 1.15rem "Plus Jakarta Sans"}
.xp-cta span{color:#b9c9e8;font-size:.95rem}
@media (max-width:1000px){.xp-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.xp-grid{grid-template-columns:1fr}.xp-lg{grid-column:auto;padding:28px 24px 24px}.xp-cta{padding:20px}.xp-cta .btn{width:100%}}
@media (prefers-reduced-motion:reduce){.exp-orb{animation:none}}

/* ===== Dark sections: shared glass styles ===== */
.exp::after{content:"";position:absolute;width:320px;height:320px;border-radius:50%;background:#22d3ee;filter:blur(90px);opacity:.16;right:-80px;bottom:-80px;z-index:-1;pointer-events:none;animation:xp-float 16s ease-in-out infinite alternate}
.exp h2{color:#fff;max-width:none}
.exp .lead{color:#b9c9e8}
.exp .card{position:relative;overflow:hidden;color:#b9c9e8;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.13);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:none}
.exp .card h3{color:#fff}
.exp .card p,.exp .card li{color:#b9c9e8}
.exp .card:hover{border-color:rgba(96,165,250,.65);background:rgba(255,255,255,.09);box-shadow:0 24px 50px -20px rgba(34,211,238,.35)}
.exp .card a:not(.btn){color:#7dd3fc !important}
.exp .card::before,.exp .stat::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(380px circle at var(--mx,50%) var(--my,0%),rgba(96,165,250,.28),transparent 45%)}
.exp .card:hover::before,.exp .stat:hover::before{opacity:1}
.exp .tag{background:rgba(255,255,255,.1);color:#bfdbfe}
.exp .ft i{background:rgba(255,255,255,.1);color:#dbeafe}
.exp .tabs button:not([aria-pressed="true"]){background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.18);color:#dbe6fb}
.exp .q{color:#dbe6fb}
.exp .q cite{color:#7dd3fc}
.exp .q::after{content:"\201C";position:absolute;right:20px;top:4px;font:800 5rem/1 Georgia,serif;color:rgba(255,255,255,.1)}
.exp .star{color:#fbbf24}
.exp #ts{display:flex;flex-wrap:wrap;justify-content:center;gap:20px}
.exp #ts .card{flex:1 1 300px;max-width:380px}
.exp .stats{margin-top:30px}
.exp .stat{position:relative;overflow:hidden;color:#b9c9e8;padding:22px 20px;border-radius:16px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-left:4px solid #22d3ee}
.exp .stat b{display:block;background:linear-gradient(100deg,#fff,#7dd3fc);-webkit-background-clip:text;background-clip:text;color:transparent}
.exp .info a:not(.btn){color:#7dd3fc}
.exp .img-row figcaption{background:linear-gradient(transparent,rgba(6,20,46,.9))}

/* ===== Process timeline (all pages) ===== */
.steps{gap:24px}
.steps.n4{grid-template-columns:repeat(4,1fr)}
.steps.n5{grid-template-columns:repeat(5,1fr)}
.steps>div{position:relative;padding:68px 22px 24px;border-radius:20px;color:var(--txt);background:#fff;border:1px solid var(--line);box-shadow:0 10px 30px -18px rgba(10,26,58,.25);transition:transform .3s,box-shadow .3s,border-color .3s}
.steps>div:hover{transform:translateY(-6px);border-color:#9ec5f7}
.steps>div::before{counter-increment:s;content:counter(s);position:absolute;top:18px;left:22px;width:42px;height:42px;margin:0;display:grid;place-items:center;border-radius:50%;font:800 1rem/1 "Plus Jakarta Sans";color:#fff;background:linear-gradient(135deg,#1b63c9,#22d3ee);box-shadow:0 0 0 6px rgba(34,211,238,.14),0 8px 20px -6px rgba(34,211,238,.65)}
.steps>div::after{content:"";position:absolute;top:38px;left:76px;right:-24px;height:2px;background:linear-gradient(90deg,rgba(34,211,238,.8),rgba(34,211,238,.12));transform-origin:left;pointer-events:none}
.steps>div:nth-child(3n)::after{display:none}
.steps.n4>div:nth-child(3n)::after,.steps.n5>div:nth-child(3n)::after{display:block}
.steps.n4>div:nth-child(4n)::after,.steps.n5>div:nth-child(5n)::after{display:none}
.steps>div:last-child::after{display:none !important}
.steps h3{color:var(--ink);font-size:1.1rem;margin-bottom:6px}
.steps p{color:var(--mut);font-size:.94rem;margin:0}
.js .steps>div.rv::after{transform:scaleX(0)}
.js .steps>div.rv.in::after{transform:scaleX(1);transition:transform .9s .5s ease}
.exp .steps>div{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14);box-shadow:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.exp .steps>div:hover{border-color:rgba(96,165,250,.65);box-shadow:0 24px 50px -20px rgba(34,211,238,.35)}
.exp .steps h3{color:#fff}
.exp .steps p{color:#b9c9e8}
@media (max-width:1100px){
  .steps.n5{grid-template-columns:1fr}
}
@media (max-width:900px){
  .steps,.steps.n4,.steps.n5{grid-template-columns:1fr;gap:24px}
  .steps>div{padding:22px 20px 22px 78px}
  .steps>div::before{top:20px;left:18px}
  .steps>div::after,.steps>div:nth-child(n)::after{display:block;top:auto;bottom:-24px;left:38px;right:auto;width:2px;height:24px;transform-origin:top;background:linear-gradient(180deg,rgba(34,211,238,.8),rgba(34,211,238,.15))}
  .steps>div:last-child::after{display:none !important}
}

/* ===== Closing banner ===== */
.cta2{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(600px 300px at 92% 0%,rgba(34,211,238,.38),transparent 60%),radial-gradient(520px 320px at 0% 100%,rgba(27,99,201,.75),transparent 60%),linear-gradient(135deg,#0a1f4a,#0a6fd8)}
.cta2::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(ellipse at 50% 50%,#000 15%,transparent 75%);mask-image:radial-gradient(ellipse at 50% 50%,#000 15%,transparent 75%)}
.cta2::after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:#22d3ee;filter:blur(90px);opacity:.25;right:-60px;bottom:-100px;z-index:-1;pointer-events:none;animation:xp-float 14s ease-in-out infinite alternate}
.cta2 .btn{animation:xp-pulse 2.6s infinite}
@keyframes xp-pulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.55)}70%{box-shadow:0 0 0 16px rgba(255,255,255,0)}100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}}

/* ===== Team glow ===== */
.tm .card .av{transition:box-shadow .3s,transform .3s}
.tm .card:hover .av{transform:scale(1.06);box-shadow:0 0 0 6px rgba(10,111,216,.15),0 12px 30px -6px rgba(10,111,216,.55)}
@media (prefers-reduced-motion:reduce){.exp::after,.cta2::after,.cta2 .btn{animation:none}}

/* ===== Fixes ===== */
.exp form,.exp form label{color:var(--ink)}
main .grid:not(:has(> :nth-child(5))){grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}

/* ===== Why it matters / Ideal for / FAQ (service pages) ===== */
.why-split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.why-eyebrow{display:inline-block;font:700 .78rem "Plus Jakarta Sans";letter-spacing:.14em;text-transform:uppercase;color:var(--blue);background:var(--sky);padding:8px 16px;border-radius:99px;margin-bottom:18px}
.why-text h2{max-width:none;margin-bottom:16px}
.why-text h3{font-size:1.15rem;margin:18px 0 6px;color:var(--blue)}
.why-text p{color:var(--mut);font-size:1.05rem;margin:0 0 14px}
.ideal-label{font:700 .8rem "Plus Jakarta Sans";letter-spacing:.14em;text-transform:uppercase;color:var(--mut);margin:0 0 14px}
.ideal-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ideal{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;transition:transform .3s,border-color .3s,box-shadow .3s}
.ideal:hover{transform:translateY(-5px);border-color:var(--blue);box-shadow:0 18px 40px -22px rgba(10,111,216,.55)}
.ideal span{display:grid;place-items:center;width:48px;height:48px;border-radius:13px;background:linear-gradient(135deg,var(--sky),#fff);border:1px solid var(--line);font-size:1.5rem;margin-bottom:14px}
.ideal b{display:block;font:700 1rem "Plus Jakarta Sans";color:var(--ink);margin-bottom:4px}
.ideal small{display:block;color:var(--mut);font-size:.9rem;line-height:1.5}
.faq-split{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}
.faq-side{position:sticky;top:104px}
.faq-side h2{max-width:none;margin-bottom:12px}
.faq-side p{color:var(--mut);margin-bottom:22px}
.faq-list details:first-child{margin-top:0}
.faq-list details{transition:border-color .25s,box-shadow .25s}
.faq-list details[open]{border-color:var(--blue);box-shadow:0 14px 34px -22px rgba(10,111,216,.5)}
.faq-list summary{font-family:"Plus Jakarta Sans";font-size:1.02rem}
.statement{max-width:860px;margin:0 auto;text-align:center;padding:44px 32px;border-radius:26px;background:linear-gradient(135deg,var(--sky),#fff);border:1px solid var(--line)}
.statement h3{font-size:clamp(1.4rem,3vw,2rem);margin-bottom:12px;background:linear-gradient(100deg,#0a1f4a,#0a6fd8);-webkit-background-clip:text;background-clip:text;color:transparent}
.statement p{color:var(--mut);font-size:1.05rem;margin:0}
@media (max-width:900px){.why-split,.faq-split{grid-template-columns:1fr;gap:32px}.faq-side{position:static}}
@media (max-width:560px){.ideal-grid{grid-template-columns:1fr}.statement{padding:32px 22px}}
