:root {
  color-scheme: light;
  font-family: "Plus Jakarta Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #102a56;
  background: #f8fbff;
  font-synthesis: none;
  --navy: #102a56;
  --blue: #2563eb;
  --cyan: #0891b2;
  --muted: #526b92;
  --line: rgba(37, 99, 235, .15);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #fff; color: var(--navy); }
a { color: inherit; }
.skip-link {
  position: fixed;
  z-index: 100;
  top: 12px;
  left: 12px;
  padding: 10px 14px;
  border-radius: 6px;
  background: #fff;
  color: #071225;
  font-weight: 750;
  transform: translateY(-160%);
}
.skip-link:focus { transform: none; }

.site-header, footer, main > section {
  width: min(1180px, calc(100% - 40px));
  margin-inline: auto;
}
.site-header {
  min-height: 92px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  z-index: 10;
}
.brand { display: inline-flex; align-items: center; gap: 12px; color: var(--navy); text-decoration: none; font-weight: 800; letter-spacing: -.03em; }
.brand-mark { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 12px; background: linear-gradient(135deg, #1d4ed8, #0891b2); color: #fff; box-shadow: 0 10px 28px rgba(37,99,235,.22); }
.brand-name { font-size: 17px; }
.brand-name small { margin-left: 5px; color: #6680a6; font-size: 11px; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
nav { display: flex; align-items: center; gap: 26px; }
.nav-link { color: #536b90; font-size: 14px; font-weight: 650; text-decoration: none; }
.nav-link:hover { color: var(--blue); }
.nav-cta { padding: 11px 17px; border-radius: 10px; background: linear-gradient(100deg, #2563eb, #0891b2); color: #fff; font-size: 14px; font-weight: 750; text-decoration: none; box-shadow: 0 9px 24px rgba(37,99,235,.16); }
.language-switcher { display: inline-flex; align-items: center; gap: 7px; color: #9aabc3; font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.language-switcher a { color: #8094b2; text-decoration: none; }
.language-switcher a[aria-current="page"] { color: var(--blue); }
.language-switcher a:hover { color: var(--navy); }

.hero {
  min-height: 720px;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
  align-items: center;
  gap: 76px;
  position: relative;
  padding: 80px 0 100px;
}
.hero::before {
  content: "";
  position: absolute;
  z-index: -2;
  inset: -92px calc((1180px - 100vw) / 2) 0;
  background: linear-gradient(135deg, #f4f8ff 0%, #e8f1ff 44%, #dbeafe 75%, #e6f7fb 100%);
}
.hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -92px calc((1180px - 100vw) / 2) 0;
  opacity: .45;
  background-image: linear-gradient(rgba(37,99,235,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(37,99,235,.055) 1px, transparent 1px);
  background-size: 36px 36px;
  mask-image: linear-gradient(100deg, black, transparent 83%);
}
.eyebrow, .section-index { margin: 0; color: var(--blue); font-size: 11px; font-weight: 800; letter-spacing: .23em; }
h1, h2 { margin: 0; letter-spacing: -.052em; line-height: 1.02; }
h1 { max-width: 760px; margin-top: 25px; font-size: clamp(48px, 6.7vw, 82px); font-weight: 790; }
h1 span, .culture h2 em { background: linear-gradient(105deg, #1d4ed8, #0891b2); background-clip: text; color: transparent; }
.hero-copy { max-width: 660px; margin: 28px 0 0; color: var(--muted); font-size: clamp(17px, 1.7vw, 20px); line-height: 1.65; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.button { display: inline-flex; min-height: 49px; align-items: center; justify-content: center; gap: 11px; padding: 0 21px; border-radius: 11px; font-size: 14px; font-weight: 750; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: linear-gradient(105deg, #2563eb, #0891b2); color: #fff; box-shadow: 0 12px 28px rgba(37,99,235,.2); }
.button-primary:hover { box-shadow: 0 16px 34px rgba(37,99,235,.28); }
.button-secondary { border: 1px solid rgba(37,99,235,.22); background: rgba(255,255,255,.68); color: #244b83; }
.button-light { background: #fff; color: #174ba5; box-shadow: 0 12px 30px rgba(4,28,72,.18); }
.signal { display: flex; flex-wrap: wrap; gap: 12px 25px; margin-top: 56px; padding-top: 21px; border-top: 1px solid var(--line); color: #687f9f; font-size: 11px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.signal span::before { content: "✓"; margin-right: 7px; color: #3484e8; }

.work-panel { padding: 28px; border: 1px solid rgba(37,99,235,.18); border-radius: 24px; background: rgba(255,255,255,.86); box-shadow: 0 28px 75px rgba(30,64,175,.13); backdrop-filter: blur(10px); transform: rotate(1deg); }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.status-dot { display: inline-flex; align-items: center; gap: 7px; border: 1px solid #c8ddff; border-radius: 999px; background: #eff6ff; padding: 7px 10px; color: #245fba; font-size: 10px; font-weight: 750; }
.status-dot::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #3b82f6; }
.work-panel h2 { max-width: 410px; margin-top: 27px; font-size: clamp(31px, 3.5vw, 44px); }
.work-panel ol { margin: 30px 0 0; padding: 0; list-style: none; }
.work-panel li { display: grid; grid-template-columns: 38px 1fr; gap: 14px; padding: 18px 0; border-top: 1px solid #e2eaf6; }
.work-panel li > span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 10px; background: #edf4ff; color: #3375d5; font-size: 10px; font-weight: 800; }
.work-panel strong { font-size: 14px; }
.work-panel li p { margin: 5px 0 0; color: #6b7f9d; font-size: 13px; line-height: 1.5; }

.culture { display: grid; grid-template-columns: 1.05fr .95fr; gap: 90px; padding: 130px 0 105px; }
h2 { font-size: clamp(40px, 5.6vw, 66px); }
.culture h2 { max-width: 650px; margin-top: 23px; }
.section-copy { color: #5c718f; font-size: 18px; line-height: 1.75; }
.section-copy p:first-child { margin-top: 0; color: #244469; }
.values { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid #dbe7f7; border-radius: 22px; overflow: hidden; box-shadow: 0 17px 50px rgba(37,99,235,.06); }
.values article { padding: 39px; background: #fff; }
.values article + article { border-left: 1px solid #dbe7f7; }
.values strong { color: var(--blue); font-size: 11px; letter-spacing: .14em; }
.values h3 { margin: 28px 0 10px; color: #153664; font-size: 23px; }
.values p { margin: 0; color: #637794; line-height: 1.65; }

.everyday { display: grid; grid-template-columns: 1.05fr .95fr; gap: 90px; align-items: end; padding: 130px 0; }
.everyday h2 { margin-top: 23px; }
.everyday-copy > p:last-child { max-width: 690px; margin: 27px 0 0; color: #5c718f; font-size: 18px; line-height: 1.7; }
.everyday ul { margin: 0; padding: 0; list-style: none; }
.everyday li { display: flex; gap: 14px; align-items: center; padding: 19px 0; border-bottom: 1px solid #dbe7f7; color: #294b77; font-weight: 680; }
.everyday li span { display: grid; width: 30px; height: 30px; flex: 0 0 auto; place-items: center; border-radius: 9px; background: #eaf3ff; color: var(--blue); }

.closing { margin-bottom: 90px; padding: 82px; text-align: center; border-radius: 28px; position: relative; overflow: hidden; background: linear-gradient(125deg, #173e8f 0%, #2563eb 48%, #0891b2 100%); color: #fff; box-shadow: 0 28px 70px rgba(37,99,235,.22); }
.closing::before { content: ""; position: absolute; inset: 0; opacity: .12; background-image: linear-gradient(rgba(255,255,255,.3) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.3) 1px, transparent 1px); background-size: 34px 34px; }
.closing > * { position: relative; }
.closing .section-index { color: #c8e8ff; }
.closing h2 { max-width: 850px; margin: 25px auto 35px; }
footer { min-height: 116px; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid #dbe7f7; color: #7386a2; font-size: 13px; }
footer a { color: #2f6cc5; font-weight: 700; text-decoration: none; }

.placeholder { min-height: calc(100vh - 92px); display: flex; align-items: center; padding: 75px 0 120px; position: relative; }
.placeholder::before { content: ""; position: absolute; z-index: -1; inset: 0 calc((1180px - 100vw) / 2); background: linear-gradient(135deg, #f4f8ff, #dfeeff); }
.placeholder > div { max-width: 880px; }
.placeholder h1 { max-width: 870px; margin-top: 25px; font-size: clamp(48px, 7vw, 88px); }
.placeholder > div > p:not(.section-index) { max-width: 620px; margin: 28px 0 0; color: var(--muted); font-size: 19px; line-height: 1.65; }
.text-link { color: var(--blue); font-size: 14px; font-weight: 750; text-decoration: none; }

@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; gap: 50px; padding-top: 75px; }
  .work-panel { max-width: 650px; transform: none; }
  .culture, .everyday { grid-template-columns: 1fr; gap: 40px; }
  .values { grid-template-columns: 1fr; }
  .values article + article { border-top: 1px solid #dbe7f7; border-left: 0; }
}

@media (max-width: 650px) {
  .site-header { min-height: 76px; }
  .brand-name small, .nav-link { display: none; }
  .nav-process { display: inline-flex; min-height: 44px; align-items: center; }
  nav { gap: 12px; }
  .nav-cta { padding: 10px 12px; }
  .hero { min-height: auto; padding: 72px 0 80px; }
  .hero::before, .hero::after { inset: -76px -20px 0; }
  .signal { flex-direction: column; }
  .work-panel { padding: 22px; }
  .culture, .everyday { padding: 90px 0; }
  .values article { padding: 32px 26px; }
  .closing { padding: 65px 22px; border-radius: 20px; }
  footer { min-height: 140px; align-items: flex-start; flex-direction: column; justify-content: center; gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .button { transition: none; }
}

/* Shared public shell */
.public-site-header {
  position: relative;
  z-index: 30;
  width: 100%;
  color: #fff;
  background: #071225;
}

.public-site-header--overlay {
  position: absolute;
  top: 0;
  left: 0;
  background: transparent;
}

.public-site-header__inner {
  position: relative;
  display: flex;
  width: min(1180px, calc(100% - 48px));
  min-height: 84px;
  margin-inline: auto;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

.public-site-brand {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 12px;
  color: #fff;
  font-weight: 800;
  letter-spacing: -.03em;
  text-decoration: none;
}

.public-site-brand__mark {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 11px;
  background: rgba(255, 255, 255, .08);
}

.public-site-brand__name { font-size: 16px; }
.public-site-brand__name small {
  margin-left: 5px;
  color: #8fa4c3;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.public-site-nav {
  display: flex;
  align-items: center;
  gap: 25px;
}

.public-site-nav > a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  color: rgba(255, 255, 255, .72);
  font-size: 13px;
  font-weight: 750;
  text-decoration: none;
}

.public-site-nav > a:hover,
.public-site-nav > a[aria-current="page"] { color: #fff; }

.public-site-nav > .public-site-nav__cta {
  min-height: 42px;
  padding: 0 17px;
  border-radius: 8px;
  color: #fff;
  background: linear-gradient(105deg, #2563eb, #0891b2);
  box-shadow: 0 9px 24px rgba(0, 0, 0, .2);
}

.public-site-language {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: 7px;
  color: rgba(255, 255, 255, .36);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .08em;
}

.public-site-language a { color: rgba(255, 255, 255, .58); text-decoration: none; }
.public-site-language a:hover,
.public-site-language a[aria-current="page"] { color: #fff; }

.public-site-menu { display: none; }

.public-site-header a:focus-visible,
.public-site-header summary:focus-visible,
.public-site-footer a:focus-visible {
  outline: 3px solid #8ed8ff;
  outline-offset: 4px;
}

.public-site-footer {
  display: block;
  width: 100%;
  min-height: 0;
  margin: 0;
  border: 0;
  color: #8192ad;
  background: #050d1c;
  font-size: 13px;
}

.public-site-footer__inner {
  display: grid;
  width: min(1180px, calc(100% - 48px));
  min-height: 124px;
  margin-inline: auto;
  grid-template-columns: 1.2fr 1fr auto auto;
  align-items: center;
  gap: 24px;
}

.public-site-footer__brand { color: #fff; font-weight: 750; }
.public-site-footer a { color: #9dcfff; font-weight: 700; text-decoration: none; }
.public-site-footer a:hover { color: #fff; }

@media (max-width: 760px) {
  .public-site-header__inner { width: calc(100% - 32px); min-height: 74px; }
  .public-site-brand__name small { display: none; }
  .public-site-nav { display: none; }
  .public-site-menu { display: block; }
  .public-site-menu summary {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 9px;
    cursor: pointer;
    list-style: none;
  }
  .public-site-menu summary::-webkit-details-marker { display: none; }
  .public-site-menu summary span,
  .public-site-menu summary span::before,
  .public-site-menu summary span::after {
    display: block;
    width: 18px;
    height: 2px;
    border-radius: 999px;
    background: #fff;
  }
  .public-site-menu summary span { position: relative; }
  .public-site-menu summary span::before,
  .public-site-menu summary span::after { position: absolute; left: 0; content: ""; }
  .public-site-menu summary span::before { top: -6px; }
  .public-site-menu summary span::after { top: 6px; }
  .public-site-menu[open] summary span { background: transparent; }
  .public-site-menu[open] summary span::before { top: 0; transform: rotate(45deg); }
  .public-site-menu[open] summary span::after { top: 0; transform: rotate(-45deg); }
  .public-site-menu nav {
    position: absolute;
    top: calc(100% - 1px);
    right: 0;
    display: grid;
    width: min(290px, calc(100vw - 32px));
    padding: 12px;
    gap: 2px;
    border: 1px solid rgba(148, 190, 255, .2);
    border-radius: 0 0 12px 12px;
    background: #071225;
    box-shadow: 0 22px 44px rgba(0, 0, 0, .28);
  }
  .public-site-menu nav > a {
    display: flex;
    min-height: 48px;
    align-items: center;
    padding: 0 13px;
    border-radius: 7px;
    color: rgba(255, 255, 255, .78);
    font-size: 14px;
    font-weight: 750;
    text-decoration: none;
  }
  .public-site-menu nav > a:hover,
  .public-site-menu nav > a[aria-current="page"] { color: #fff; background: rgba(255, 255, 255, .08); }
  .public-site-menu .public-site-language { padding: 3px 13px 0; }
  .public-site-footer__inner {
    min-height: 180px;
    padding-block: 35px;
    grid-template-columns: 1fr;
    align-content: center;
    gap: 10px;
  }
}

@media print {
  .public-print-hide { display: none !important; }
}

/* Localized careers zone */
.careers-header { background: rgba(255,255,255,.94); }
.careers-main, .job-main { overflow: hidden; }
.careers-hero, .job-hero {
  width: 100%; max-width: none; min-height: 590px; margin: 0; padding: 118px max(40px, calc((100vw - 1180px) / 2)) 105px;
  display: flex; flex-direction: column; justify-content: flex-end; position: relative; color: #fff;
  background: linear-gradient(90deg, rgba(5,23,56,.94) 0%, rgba(8,39,88,.75) 52%, rgba(8,39,88,.28) 100%), url('/assets/talent/qa-team-hero.jpg') center 44% / cover no-repeat;
}
.careers-hero::after, .job-hero::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, transparent 55%, rgba(4,16,41,.38)); }
.careers-hero > *, .job-hero > * { position: relative; z-index: 1; }
.careers-hero .eyebrow, .job-hero .eyebrow { color: #9ed7ff; }
.careers-hero h1 { max-width: 930px; margin-top: 24px; font-size: clamp(48px, 6.3vw, 86px); }
.careers-hero > p:last-child { max-width: 680px; margin: 28px 0 0; color: #d8e9ff; font-size: 19px; line-height: 1.7; }
.open-roles { padding: 120px 0; }
.open-roles-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 48px; }
.open-roles-heading h2 { margin-top: 20px; }
.open-roles-heading > p { color: #5a7193; font-weight: 700; }
.roles-list { border-top: 1px solid #cad9ec; }
.role-row { display: grid; grid-template-columns: 1fr auto 38px; gap: 28px; align-items: center; min-height: 128px; padding: 25px 8px; border-bottom: 1px solid #cad9ec; text-decoration: none; transition: padding .2s ease, background .2s ease; }
.role-row:hover { padding-inline: 24px; background: #f2f7ff; }
.role-main { display: flex; flex-direction: column; gap: 10px; }
.role-main strong { color: #102a56; font-size: clamp(22px, 2.8vw, 34px); letter-spacing: -.035em; }
.role-main small, .role-meta { color: #637a9b; font-size: 14px; }
.role-meta { border: 1px solid #bfd1e9; border-radius: 999px; padding: 8px 13px; font-weight: 700; }
.role-arrow { color: #2563eb; font-size: 28px; }
.empty-roles { padding: 70px; border: 1px solid #d5e2f3; border-radius: 24px; background: #f6f9fe; text-align: center; }
.empty-roles h3 { margin: 0; font-size: 28px; }
.empty-roles p { margin: 14px 0 0; color: #607696; }
.careers-note { width: 100%; max-width: none; margin: 0; padding: 110px max(40px, calc((100vw - 1180px) / 2)); color: #fff; background: #0c2b5e url('/assets/talent/qa-defect-review.jpg') right center / 48% auto no-repeat; position: relative; }
.careers-note::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #0c2b5e 0%, #0c2b5e 52%, rgba(12,43,94,.65) 75%, rgba(12,43,94,.25)); }
.careers-note > * { position: relative; max-width: 600px; }
.careers-note .section-index { color: #8fd4ff; }
.careers-note h2 { margin-top: 24px; }
.careers-note > p:last-child { margin-top: 25px; color: #d5e6fd; font-size: 18px; line-height: 1.75; }
.careers-footer { width: min(1180px, calc(100% - 40px)); }

.job-hero { min-height: 570px; padding-bottom: 85px; background-image: linear-gradient(90deg, rgba(5,23,56,.96), rgba(8,39,88,.78) 55%, rgba(8,39,88,.4)), url('/assets/talent/qa-mobile-testing.jpg'); }
.job-hero h1 { max-width: 900px; margin-top: 24px; font-size: clamp(50px, 7vw, 88px); }
.back-link { align-self: flex-start; margin-bottom: 70px; color: #c8e4ff; font-size: 14px; font-weight: 700; text-decoration: none; }
.job-facts { display: flex; flex-wrap: wrap; gap: 10px; margin: 28px 0 34px; }
.job-facts span { border: 1px solid rgba(255,255,255,.35); border-radius: 999px; padding: 8px 13px; color: #e2edff; font-size: 13px; font-weight: 700; backdrop-filter: blur(5px); }
.job-hero .button { align-self: flex-start; background: #fff; color: #174ba5; }
.unavailable-callout { display: flex; max-width: 670px; flex-direction: column; gap: 8px; margin-top: 28px; padding: 20px 22px; border: 1px solid rgba(255,255,255,.3); border-radius: 14px; background: rgba(4,23,54,.55); }
.unavailable-callout span { color: #d2e2f7; font-size: 14px; line-height: 1.5; }
.job-content-grid { width: min(1180px, calc(100% - 40px)); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 90px; padding: 115px 0; align-items: start; }
.job-copy section + section { margin-top: 75px; }
.job-copy h2 { margin-bottom: 28px; font-size: clamp(34px, 4vw, 48px); }
.job-copy h3, .job-copy h4 { color: #153664; }
.job-copy p, .job-copy li { color: #526b8d; font-size: 17px; line-height: 1.75; }
.job-copy ul { padding-left: 21px; }
.job-copy li + li { margin-top: 10px; }
.job-summary { position: sticky; top: 28px; padding: 29px; border: 1px solid #d8e4f3; border-radius: 20px; background: #f8fbff; }
.job-summary dl { margin: 25px 0 0; }
.job-summary dl div { padding: 18px 0; border-top: 1px solid #dce6f3; }
.job-summary dt { color: #7083a0; font-size: 12px; font-weight: 750; text-transform: uppercase; letter-spacing: .08em; }
.job-summary dd { margin: 7px 0 0; color: #173760; font-weight: 700; }

.application-section { width: 100%; max-width: none; margin: 0; padding: 115px max(40px, calc((100vw - 900px) / 2)); background: #eef5ff; }
.application-intro { max-width: 750px; margin-bottom: 44px; }
.application-intro h2 { margin-top: 23px; }
.application-intro > p:last-child { color: #5c7292; font-size: 17px; line-height: 1.65; }
.form-notice { margin: 0 0 25px; padding: 18px 20px; border-radius: 12px; font-weight: 650; line-height: 1.5; }
.form-notice-error { border: 1px solid #f3b8ba; background: #fff3f3; color: #8f2028; }
.form-notice-info { border: 1px solid #a8ccee; background: #f1f8ff; color: #164b7c; }
.application-form { padding: 42px; border: 1px solid #d1e0f3; border-radius: 24px; background: #fff; box-shadow: 0 22px 65px rgba(35,73,132,.09); }
.application-form fieldset { margin: 0; padding: 0; border: 0; }
.application-form fieldset + fieldset { margin-top: 45px; padding-top: 39px; border-top: 1px solid #dbe6f3; }
.application-form legend { margin-bottom: 23px; color: #153664; font-size: 21px; font-weight: 800; letter-spacing: -.02em; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 23px; }
.field { display: flex; flex-direction: column; gap: 8px; color: #2a486e; font-size: 13px; font-weight: 750; }
.field[hidden] { display: none; }
.field-wide { grid-column: 1 / -1; }
.field small { color: #7385a0; font-weight: 550; }
.field input, .field select, .field textarea { width: 100%; border: 1px solid #c5d5e9; border-radius: 10px; background: #fbfdff; color: #142e52; padding: 13px 14px; font: inherit; font-size: 15px; font-weight: 500; outline: none; }
.field input:not([type="file"]), .field select { min-height: 48px; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37,99,235,.13); }
.file-field input { border-style: dashed; background: #f4f8ff; padding: 22px; }
.field-error { color: #b4232b; font-size: 12px; font-weight: 700; }
.field-hint { margin: -10px 0 17px; color: #607797; font-size: 14px; }
.radio-row { display: flex; flex-wrap: wrap; gap: 13px 28px; margin-bottom: 22px; color: #2d4d75; font-size: 14px; font-weight: 650; }
.radio-row input, .consent-check input { accent-color: #2563eb; }
.privacy-notice { margin-bottom: 19px; padding: 20px; border-radius: 12px; background: #f3f7fd; color: #566d8d; font-size: 13px; line-height: 1.65; }
.privacy-notice p { margin: 0; }
.consent-check { display: grid; grid-template-columns: 20px 1fr; gap: 11px; color: #2c496e; font-size: 14px; line-height: 1.55; }
.consent-check input { width: 18px; height: 18px; margin-top: 2px; }
.submit-button { margin-top: 38px; border: 0; cursor: pointer; }
.submit-hint { display: inline; margin-left: 15px; color: #6d819e; font-size: 12px; }
.honeypot { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip-path: inset(50%) !important; }
.application-success { min-height: calc(100vh - 92px); display: grid; place-items: center; padding: 80px 20px; background: linear-gradient(135deg, #edf5ff, #d9ebff); }
.application-success section { max-width: 820px; text-align: center; }
.success-mark { display: grid; width: 65px; height: 65px; place-items: center; margin: 0 auto 28px; border-radius: 50%; background: #2563eb; color: #fff; font-size: 28px; box-shadow: 0 13px 34px rgba(37,99,235,.25); }
.application-success h1 { margin-top: 24px; }
.application-success section > p:not(.eyebrow) { max-width: 650px; margin: 27px auto 32px; color: #506b91; font-size: 18px; line-height: 1.7; }

.careers-positions-hero { min-height: 650px; }
.positions-browser { padding-top: 105px; }
.jobs-filter { display: grid; grid-template-columns: 1.4fr repeat(4, minmax(130px, .75fr)); gap: 14px; align-items: end; margin-bottom: 42px; padding: 24px; border: 1px solid #d3e1f2; border-radius: 18px; background: #f7faff; }
.jobs-filter label { display: flex; min-width: 0; flex-direction: column; gap: 8px; color: #3b5679; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.jobs-filter input, .jobs-filter select { min-height: 47px; width: 100%; border: 1px solid #c5d5e9; border-radius: 9px; background: #fff; color: #17365f; padding: 0 12px; font: inherit; font-size: 14px; font-weight: 550; letter-spacing: 0; text-transform: none; outline: none; }
.jobs-filter input:focus, .jobs-filter select:focus { border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37,99,235,.12); }
.filter-submit { min-height: 47px; border: 0; cursor: pointer; grid-column: 1 / 2; justify-self: start; }
.filter-clear { align-self: center; color: #245fb8; font-size: 13px; font-weight: 750; }
.talent-pool-row { display: grid; grid-template-columns: 1fr auto; gap: 25px; align-items: center; margin: 0 0 34px; padding: 32px 36px; border-radius: 18px; background: linear-gradient(115deg, #102e68, #1d5db8 62%, #1482ae); color: #fff; text-decoration: none; box-shadow: 0 18px 42px rgba(20,72,151,.18); }
.talent-pool-row > span:first-child { display: flex; flex-direction: column; gap: 7px; }
.talent-pool-row small { color: #a9ddff; font-size: 10px; font-weight: 850; letter-spacing: .16em; }
.talent-pool-row strong { font-size: clamp(22px, 3vw, 32px); letter-spacing: -.03em; }
.talent-pool-row span span { color: #d9eaff; font-size: 14px; }
.talent-pool-row .role-arrow { color: #fff; }
.modern-role-row { grid-template-columns: minmax(250px, 1fr) auto 38px; }
.role-facts { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.role-facts span { border: 1px solid #c7d8eb; border-radius: 999px; padding: 7px 11px; color: #526c8e; font-size: 12px; font-weight: 700; }
/* Two facts now (location + work model): contract is no longer shown publicly.
   A fixed 3-column grid would leave an empty third cell with a dangling divider. */
.detail-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; border: 1px solid #d8e4f3; border-radius: 16px; }
.detail-facts > span { display: flex; min-height: 105px; flex-direction: column; justify-content: center; gap: 8px; padding: 22px; color: #17365f; font-size: 17px; font-weight: 750; }
.detail-facts > span + span { border-left: 1px solid #d8e4f3; }
.detail-facts small { color: #7085a3; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.interest-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.interest-option { display: flex; align-items: center; gap: 11px; min-height: 52px; padding: 11px 14px; border: 1px solid #cad9eb; border-radius: 10px; background: #fbfdff; color: #294b75; font-size: 14px; font-weight: 700; cursor: pointer; }
.interest-option:has(input:checked) { border-color: #4b83df; background: #edf5ff; }
.interest-option input { width: 17px; height: 17px; accent-color: #2563eb; }

@media (max-width: 800px) {
  .careers-hero, .job-hero { min-height: 520px; padding-inline: 24px; }
  .job-content-grid { grid-template-columns: 1fr; gap: 45px; }
  .job-summary { position: static; grid-row: 1; }
  .careers-note { background-size: cover; }
  .careers-note::before { background: rgba(9,38,83,.88); }
  .jobs-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .filter-search { grid-column: 1 / -1; }
}

@media (max-width: 650px) {
  .careers-header .nav-link:first-child { display: none; }
  .careers-hero, .job-hero { min-height: 500px; padding: 90px 20px 65px; }
  .back-link { margin-bottom: 50px; }
  .open-roles { padding: 80px 0; }
  .open-roles-heading { display: block; }
  .open-roles-heading > p { margin-top: 20px; }
  .role-row { grid-template-columns: 1fr 25px; min-height: 105px; gap: 14px; }
  .role-meta { display: none; }
  .careers-note { padding: 80px 20px; }
  .job-content-grid { padding: 80px 0; }
  .application-section { padding: 80px 20px; }
  .application-form { padding: 27px 20px; border-radius: 18px; }
  .form-grid { grid-template-columns: 1fr; }
  .field-wide { grid-column: auto; }
  .submit-button { width: 100%; }
  .submit-hint { display: block; margin: 14px 0 0; text-align: center; }
  .jobs-filter { grid-template-columns: 1fr; padding: 18px; }
  .filter-search { grid-column: auto; }
  .filter-submit { width: 100%; grid-column: auto; }
  .talent-pool-row { padding: 27px 22px; }
  .modern-role-row { grid-template-columns: 1fr 25px; }
  .role-facts { grid-column: 1; justify-content: flex-start; }
  .detail-facts, .interest-grid { grid-template-columns: 1fr; }
  .detail-facts > span + span { border-top: 1px solid #d8e4f3; border-left: 0; }
}
