:root{--navy:#0a1a3a;--navy2:#12285a;--blue:#2f6bff;--amber:#f5b301;--ink:#14213d;--mut:#5b6784;--bg:#f5f8ff;--r:14px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;font:16px/1.65 "Plus Jakarta Sans",system-ui,sans-serif;color:var(--ink);background:#fff}
img{max-width:100%;height:auto}a{color:var(--blue)}.wrap{max-width:1140px;margin:0 auto;padding:0 20px}.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;background:#fff;padding:8px;z-index:99}
:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
.hdr{position:sticky;top:0;z-index:50;background:rgba(10,26,58,.96);backdrop-filter:blur(8px)}.bar{display:flex;align-items:center;justify-content:space-between;height:68px}
.logo img{display:block;background:#fff;border-radius:6px;padding:4px}.nav{display:flex;align-items:center;gap:22px}.nav a{color:#dbe5ff;text-decoration:none;font-weight:500;font-size:15px}.nav a:hover{color:var(--amber)}
.burger{display:none;background:none;border:0;padding:8px}.burger span{display:block;width:24px;height:2px;background:#fff;margin:5px 0}
.btn{display:inline-block;padding:13px 26px;border-radius:10px;font-weight:700;text-decoration:none;background:var(--blue);color:#fff!important;border:2px solid var(--blue);cursor:pointer;font:inherit;font-weight:700;transition:transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(47,107,255,.35)}.btn.sm{padding:8px 16px;font-size:14px}.btn.amber{background:var(--amber);border-color:var(--amber);color:var(--navy)!important}.btn.ghost{background:transparent;border-color:#fff}
.hero{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;padding:96px 0 84px}.hero h1{font-size:clamp(34px,5.6vw,64px);line-height:1.08;margin:0 0 20px;max-width:15ch;letter-spacing:-.02em}
.lead{font-size:clamp(17px,2vw,21px);max-width:60ch;color:#cfdcff}.row{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.sec{padding:76px 0}.sec.tight{padding:40px 0}.alt{background:var(--bg)}.sh{max-width:640px;margin-bottom:34px}h2{font-size:clamp(26px,3.4vw,38px);line-height:1.2;margin:0 0 10px;letter-spacing:-.01em}.small{font-size:20px;text-align:center;color:var(--mut)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid.c3{grid-template-columns:repeat(3,1fr)}@media(max-width:900px){.grid.c3{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.grid.c3{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid #dfe7fb;border-radius:var(--r);padding:26px;margin:0;border-top:3px solid var(--blue);transition:transform .2s,box-shadow .2s}.card:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(10,26,58,.1)}
.card h3,.steps h3{margin:0 0 8px;font-size:19px}.card p{margin:0 0 8px;color:var(--mut)}blockquote{margin:0 0 14px;font-size:17px}figcaption{color:var(--mut);font-size:14px}
.dual{display:grid;grid-template-columns:1fr 1fr;gap:20px}.path{display:block;background:var(--navy);color:#fff;border-radius:var(--r);padding:34px;text-decoration:none;transition:transform .2s}.path:hover{transform:translateY(-4px)}.path p{color:#cfdcff}.path span{color:var(--amber);font-weight:700}.path.alt{background:var(--blue)}.path.alt span,.path.alt p{color:#fff}
.logos{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:16px}.lg{background:var(--bg);border-radius:10px;padding:14px;display:grid;place-items:center}
.pills{display:flex;flex-wrap:wrap;gap:10px}.pills span{background:#fff;border:1px solid #cdd9f7;border-radius:99px;padding:9px 18px;font-weight:600;transition:.2s}.pills span:hover{background:var(--navy);color:#fff}
.steps{list-style:none;counter-reset:s;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}.steps li{counter-increment:s;background:#fff;border-radius:var(--r);padding:26px;border:1px solid #dfe7fb}.steps li:before{content:counter(s);display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--amber);color:var(--navy);font-weight:800;margin-bottom:12px}.steps p{margin:0;color:var(--mut)}
.faq details{background:#fff;border:1px solid #dfe7fb;border-radius:12px;padding:16px 20px;margin-bottom:10px}.faq summary{cursor:pointer;font-weight:700}.faq p{color:var(--mut);margin:10px 0 0}
.cta{background:var(--navy);color:#fff;text-align:center}.cta p{color:#cfdcff}.big{font-size:clamp(20px,2.6vw,28px);max-width:30ch;font-weight:600;margin:0 0 30px}
.form{display:grid;grid-template-columns:1fr 1fr;gap:16px;background:#fff;padding:28px;border-radius:var(--r);border:1px solid #dfe7fb}.f{display:flex;flex-direction:column;gap:6px}.f.full,.form .btn,.msg{grid-column:1/-1}
label{font-weight:600;font-size:14px}input,select,textarea{font:inherit;padding:11px 12px;border:1.5px solid #c3d0ee;border-radius:9px;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px rgba(47,107,255,.2)}.hp{position:absolute;left:-999px}
.msg{margin:0;font-weight:600}.msg.ok{color:#0a7a3d}.msg.err{color:#b3261e}.two{display:grid;grid-template-columns:1.4fr 1fr;gap:28px;align-items:start}.legal .wrap{max-width:780px}.legal h2{font-size:22px;margin-top:28px}
.ftr{background:#071230;color:#cfdcff;padding:56px 0 20px}.fg{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:30px}.ftr a{display:block;color:#cfdcff;text-decoration:none;padding:3px 0}.ftr a:hover{color:var(--amber)}.ftr h4{color:#fff;margin:0 0 10px}.ftr img{background:#fff;padding:4px;border-radius:6px}.mut{color:#8fa0c8}.ftr p a{display:inline;margin-right:10px}.copy{margin-top:30px;border-top:1px solid #1d2c55;padding-top:16px;font-size:14px}
.wa{position:fixed;right:18px;bottom:18px;z-index:60;background:#25d366;color:#fff;font-weight:700;padding:13px 18px;border-radius:99px;text-decoration:none;box-shadow:0 6px 18px rgba(0,0,0,.3)}
.js .rv{opacity:0;transform:translateY(14px);transition:opacity .6s,transform .6s}.js .rv.in{opacity:1;transform:none}
@media(max-width:860px){.burger{display:block}.nav{display:none;position:absolute;top:68px;left:0;right:0;background:var(--navy);flex-direction:column;align-items:flex-start;padding:20px;gap:14px}.nav.open{display:flex}.dual,.two,.fg,.form{grid-template-columns:1fr}.hero{padding:64px 0}.sec{padding:56px 0}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}.js .rv{opacity:1;transform:none}}
/* Safety net: never leave reveal content hidden */
.js .rv.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .rv { opacity: 1 !important; transform: none !important; }
}
.js .rv.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .rv { opacity: 1 !important; transform: none !important; }
}

.jobs-tools { display:flex; gap:16px; align-items:center; flex-wrap:wrap; margin-bottom:24px; }
.jobs-tools input { flex:1; min-width:240px; padding:14px 16px; border:1px solid #d6dcec; border-radius:12px; font:inherit; background:#fff; }
.jobs-list { display:grid; gap:20px; }
.job { background:#fff; border:1px solid #e3e8f4; border-radius:16px; padding:24px; }
.job h3 { margin:0 0 12px; }
.job-meta { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.job-meta span { background:#eef2fb; border-radius:999px; padding:6px 12px; font-size:14px; }
.job-foot { display:flex; gap:16px; align-items:center; flex-wrap:wrap; margin-top:16px; }
.job-full { margin-top:16px; padding-top:16px; border-top:1px solid #e3e8f4; }
.job-full h4 { margin:16px 0 8px; font-size:16px; }
.job-full p { margin:0 0 10px; }
.job-full ul { margin:0 0 10px; padding-left:20px; }
.job-full li { margin-bottom:6px; }
.btn.ghost-dark { background:transparent; color:#0b1b4a; border:2px solid #0b1b4a; }
.linkbtn { background:none; border:0; color:#2563ff; font:inherit; cursor:pointer; padding:0; }
.linkbtn:hover { text-decoration:underline; }
.job-foot button.btn.ghost-dark {
  background: #fff !important;
  color: #0b1b4a !important;
  border: 2px solid #0b1b4a !important;
}
.job-foot button.btn.ghost-dark:hover {
  background: #0b1b4a !important;
  color: #fff !important;
}
.jshare { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

.jshare-btn {
  background: #ffffff;
  color: #0b1b4a;
  border: 2px solid #0b1b4a;
  border-radius: 12px;
  padding: 12px 20px;
  font: inherit;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.2;
  cursor: pointer;
}
.jshare-btn:hover { background: #0b1b4a; color: #ffffff; }

.jshare-menu { display: none; gap: 8px; flex-wrap: wrap; }
.jshare-menu.open { display: flex; }

.jshare-opt {
  display: inline-block;
  padding: 10px 16px;
  border: 0;
  border-radius: 10px;
  font: inherit;
  font-weight: 700;
  font-size: 14px;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  color: #ffffff;
}
.jshare-opt.swa { background: #25d366; }
.jshare-opt.li { background: #0a66c2; }
.jshare-opt.em { background: #0b1b4a; }
.jshare-opt.cp { background: #eef2fb; color: #0b1b4a; }
.jshare-opt:hover { filter: brightness(0.92); }
form { max-width: 100%; }
form div, form label { min-width: 0; }

form input,
form select,
form textarea {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

form input[type="file"] {
  font-size: 14px;
  padding: 10px;
}

form select { text-overflow: ellipsis; }

@media (max-width: 640px) {
  form [class*="grid"],
  form [class*="row"],
  form [class*="two"],
  form [class*="cols"] {
    grid-template-columns: 1fr !important;
  }
}
form .hp,
form input[name="_gotcha"] {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  min-width: 0 !important;
  max-width: 1px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  opacity: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
}
input[name="_gotcha"] {
  display: none !important;
}
/* ===== Recruzant Jobs Search Bar ===== */

.job-search {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto 18px;
  display: grid;
  grid-template-columns: minmax(280px, 2fr) minmax(190px, 1fr) minmax(220px, 1.2fr) 150px;
  gap: 12px;
  align-items: center;
  box-sizing: border-box;
}

.job-search .search-field {
  height: 58px;
  display: flex;
  align-items: center;
  position: relative;
  background: #fff;
  border: 1px solid #d5dff0;
  border-radius: 10px;
  box-sizing: border-box;
  min-width: 0;
}

.job-search .search-field:focus-within {
  border-color: #326bff;
  box-shadow: 0 0 0 3px rgba(50, 107, 255, 0.1);
}

.job-search input,
.job-search select {
  width: 100%;
  height: 100%;
  min-width: 0;
  padding: 0 14px;
  border: none;
  outline: none;
  background: transparent;
  color: #15213b;
  font-family: inherit;
  font-size: 16px;
  box-sizing: border-box;
}

.job-search .keyword-field input {
  padding-left: 42px;
}

.job-search .location-field input {
  padding-left: 42px;
}

.job-search input::placeholder {
  color: #737d90;
  opacity: 1;
}

.job-search .search-icon,
.job-search .location-icon {
  position: absolute;
  left: 15px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 21px;
  color: #53647f;
  pointer-events: none;
}

.job-search .experience-field select {
  cursor: pointer;
  appearance: auto;
}

.job-search .search-button {
  height: 58px;
  width: 100%;
  border: none;
  border-radius: 10px;
  background: #326bff;
  color: #fff;
  font-family: inherit;
  font-size: 17px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s ease;
}

.job-search .search-button:hover {
  background: #2055df;
}

.search-results-info {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto 18px;
  color: #5d6980;
  font-size: 14px;
}

/* Tablet */
@media (max-width: 900px) {
  .job-search {
    grid-template-columns: 1fr 1fr;
  }

  .job-search .keyword-field {
    grid-column: 1 / -1;
  }
}

/* Mobile */
@media (max-width: 520px) {
  .job-search {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .job-search .keyword-field {
    grid-column: auto;
  }

  .job-search .search-field,
  .job-search .search-button {
    height: 52px;
  }
}
/* Fix duplicate focus border in job search */
.job-search .search-field:focus-within {
  outline: none !important;
  box-shadow: none !important;
  border: 1px solid #326bff !important;
}

.job-search .search-field input:focus,
.job-search .search-field select:focus {
  outline: none !important;
  box-shadow: none !important;
  border: none !important;
}

.job-search .search-field input,
.job-search .search-field select {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
}
/* Fix desktop job share dropdown */
.jshare {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.jshare-menu {
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 100;
  min-width: 180px;
  padding: 10px;
  gap: 8px;
  flex-direction: column;
  flex-wrap: nowrap;
  background: #fff;
  border: 1px solid #dfe7fb;
  border-radius: 12px;
  box-shadow: 0 10px 28px rgba(10, 26, 58, 0.18);
}

.jshare-menu:not([hidden]) {
  display: flex;
}

.jshare-menu[hidden] {
  display: none !important;
}

.jshare-opt {
  display: block;
  width: 100%;
  text-align: left;
  white-space: nowrap;
}

.jshare-menu .jshare-opt {
  margin: 0;
}

.jshare-btn {
  position: relative;
  z-index: 1;
}

@media (max-width: 640px) {
  .jshare-menu {
    left: auto;
    right: 0;
  }
}
/* Client logos marquee (single block) */
.logos.marquee,
.logos.clients-marquee {
  display: block !important;
  overflow: hidden !important;
  width: 100%;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.logos-track,
.clients-track {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center;
  gap: 0 !important;
  width: max-content !important;
  animation: logos-scroll 60s linear infinite;
  will-change: transform;
}
.logos.marquee .lg,
.logos.clients-marquee .lg {
  flex: 0 0 180px !important;
  width: 180px !important;
  min-width: 180px !important;
  margin-right: 16px !important;
}
.logos.marquee .lg img,
.logos.clients-marquee .lg img {
  display: block;
  max-width: 100%;
  max-height: 60px;
  width: auto;
  height: auto;
  object-fit: contain;
}
.logos.marquee:hover .logos-track,
.logos.clients-marquee:hover .clients-track,
.logos.marquee:hover .clients-track { animation-play-state: paused; }
@keyframes logos-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .logos-track, .clients-track { animation: none !important; }
  .logos.marquee, .logos.clients-marquee { overflow-x: auto !important; }
}
.logos .lg {
  background: #ffffff !important;
  border: 1px solid #e3e8f4;
}
a[href="/sales-roles/"] {
  display: none !important;
}
.form-frame { position: relative; min-height: 320px; }
.form-loading {
  position: absolute;
  top: 0; left: 0; right: 0;
  margin: 0;
  padding: 40px 20px;
  text-align: center;
  color: #5b6784;
  font-weight: 600;
  background: #fff;
  border: 1px solid #dfe7fb;
  border-radius: 16px;
}
/* ===== Balanced card grids: no lonely card on the last row ===== */

/* Laptop / desktop */
@media (min-width: 1001px) {
  :is(.grid, .steps):has(> :nth-child(2):last-child) { grid-template-columns: repeat(2, 1fr); }
  :is(.grid, .steps):has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, 1fr); }
  :is(.grid, .steps):has(> :nth-child(4):last-child) { grid-template-columns: repeat(4, 1fr); }
  :is(.grid, .steps):has(> :nth-child(5):last-child) { grid-template-columns: repeat(5, 1fr); gap: 16px; }
  :is(.grid, .steps):has(> :nth-child(5):last-child) > * { padding: 22px 18px; }
  :is(.grid, .steps):has(> :nth-child(6):last-child) { grid-template-columns: repeat(3, 1fr); }
  :is(.grid, .steps):has(> :nth-child(7):last-child) { grid-template-columns: repeat(12, 1fr); }
  :is(.grid, .steps):has(> :nth-child(7):last-child) > :nth-child(-n+4) { grid-column: span 3; }
  :is(.grid, .steps):has(> :nth-child(7):last-child) > :nth-child(n+5) { grid-column: span 4; }
  :is(.grid, .steps):has(> :nth-child(8):last-child) { grid-template-columns: repeat(4, 1fr); }
  :is(.grid, .steps):has(> :nth-child(9):last-child) { grid-template-columns: repeat(3, 1fr); }
}

/* Tablet */
@media (min-width: 641px) and (max-width: 1000px) {
  :is(.grid, .steps):has(> :nth-child(2):last-child),
  :is(.grid, .steps):has(> :nth-child(4):last-child),
  :is(.grid, .steps):has(> :nth-child(6):last-child),
  :is(.grid, .steps):has(> :nth-child(8):last-child) { grid-template-columns: repeat(2, 1fr); }

  :is(.grid, .steps):has(> :nth-child(3):last-child),
  :is(.grid, .steps):has(> :nth-child(9):last-child) { grid-template-columns: repeat(3, 1fr); gap: 14px; }

  :is(.grid, .steps):has(> :nth-child(5):last-child) { grid-template-columns: repeat(6, 1fr); }
  :is(.grid, .steps):has(> :nth-child(5):last-child) > :nth-child(-n+3) { grid-column: span 2; }
  :is(.grid, .steps):has(> :nth-child(5):last-child) > :nth-child(n+4) { grid-column: span 3; }

  :is(.grid, .steps):has(> :nth-child(7):last-child) { grid-template-columns: repeat(2, 1fr); }
  :is(.grid, .steps):has(> :nth-child(7):last-child) > :nth-child(7) { grid-column: 1 / -1; }
}
