/* ==========================================================================
   assets/careers/careers.css · THE CAREERS PAGE — written 2026-09-27
   Linked LAST in careers.html. Everything here is scoped to the three
   Careers sections (#roles, #why, #apply); the header, the hero (#overview)
   and the footer are the site's own and are not restyled here, except the
   hero's frame height (section 1).

   Surfaces follow site/shelf.css: #roles is a shelf (a set to choose
   between), #why is editorial, #apply is the page's one action block.
   Colours are the site's own tokens (site/align.css, site/edges.css):
   action #0760C6, cobalt #004594 for "open", pale #F3F7FC grounds,
   #DCE3EC / #E5EAF1 / #EDF0F5 edges, radius ladder 16 / 12 / 10.
   ========================================================================== */

.cr{
  --cr-ink:#0E1E35; --cr-ink2:#24364F; --cr-mute:#505C6C; --cr-quiet:#6B7788;
  --cr-act:#0760C6; --cr-act-h:#004EA6; --cr-act-p:#003F8A; --cr-cob:#004594;
  --cr-edge:#DCE3EC; --cr-edge2:#E5EAF1; --cr-div:#EDF0F5;
  --cr-ctl:#C9D3E0; --cr-ctl-h:#AEBBCC; --cr-focus:#1A73E8;
  --cr-pale:#F3F7FC; --cr-soft:#EAF2FD; --cr-tint:#D6E3F8;
  --cr-err:#B42318; --cr-err-bg:#FEF3F2; --cr-err-ln:#F4C7C3;
  --cr-ok:#167C4A;
  --cr-r:16px; --cr-rc:12px; --cr-rk:10px;
  --cr-shadow:0 1px 2px rgba(15,27,61,.04), 0 18px 36px -28px rgba(15,27,61,.16);
  --cr-ease:cubic-bezier(.2,.7,.2,1);
  font-family:var(--sans, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI", Arial, sans-serif);
  color:var(--cr-ink);
  scroll-margin-top:calc(var(--barh, 104px) - 1px);
}
.cr *, .cr *::before, .cr *::after{ box-sizing:border-box; }
.cr .cr-w{ width:min(var(--maxw, 1440px), 100% - 2 * var(--pad, 18px)); margin-inline:auto; }
.cr .vh{ position:absolute; width:1px; height:1px; margin:-1px; padding:0; border:0;
  overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
.cr [hidden]{ display:none !important; }
.cr svg{ display:block; flex:none; fill:none; stroke:currentColor; stroke-width:1.8;
  stroke-linecap:round; stroke-linejoin:round; }

/* the line under a section title */
.cr .hd-intro > .cr-sub{
  margin:14px auto 0; max-width:640px;
  font-size:clamp(15.5px, 1.1vw, 17px); line-height:1.6; color:var(--cr-mute);
  text-align:center; text-wrap:pretty;
}


/* ==========================================================================
   1 · THE HERO — the site's inner-page hero, unchanged, except that its
   pale frame closes around all of its content (the default --cut of 78%
   is sized for a hero that carries a card sheet under its words).
   ========================================================================== */
#overview.cr-hero.sl.sh .k5-cor{ --cut:100%; }


/* ==========================================================================
   2 · OPEN ROLES — one bounded list, one row per role: its area, its title,
   one line about it, and Apply. (2026-09-28: the detailed JD was removed on
   the owner's instruction, so a row no longer opens.)
   ========================================================================== */
#roles .rl-list{
  margin:0 auto; padding:0; list-style:none; max-width:1180px;
  background:#FFFFFF; border:1px solid var(--cr-edge); border-radius:var(--cr-r);
  box-shadow:var(--cr-shadow); overflow:clip;
}
#roles .rl{ border-top:1px solid var(--cr-div); scroll-margin-top:calc(var(--barh, 104px) + 12px); }
#roles .rl:first-child{ border-top:0; }
#roles .rl-row{
  display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:28px; align-items:center;
  padding:22px 30px;
}
#roles .rl-txt{ min-width:0; }
#roles .rl-cat{
  display:block; font-family:var(--mono, ui-monospace, "SF Mono", Menlo, Consolas, monospace);
  font-size:11.5px; line-height:16px; font-weight:500; letter-spacing:.12em; text-transform:uppercase;
  color:var(--cr-quiet);
}
#roles .rl-t{
  margin:5px 0 0; font-size:clamp(18px, 1.45vw, 21px); line-height:1.25; font-weight:750; letter-spacing:-.015em;
  color:var(--cr-ink);
}
#roles .rl-sum{ margin:6px 0 0; max-width:70ch; font-size:15.5px; line-height:1.5; color:var(--cr-mute); text-wrap:pretty; }
#roles .rl-apply{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  height:44px; padding:0 18px; border-radius:var(--cr-rk);
  background:#FFFFFF; border:1px solid #C9D9EF; color:var(--cr-act);
  font-size:15px; font-weight:700; text-decoration:none; white-space:nowrap;
  transition:background-color .2s, border-color .2s, color .2s;
}
#roles .rl-apply:hover{ background:var(--cr-soft); border-color:#A9C4EA; color:var(--cr-act-h); }
#roles .rl-apply:focus-visible{ outline:2px solid var(--cr-focus); outline-offset:2px; }
#roles .rl-apply svg{ width:15px; height:15px; stroke-width:2; }
@media (max-width:760px){
  #roles .rl-row{ grid-template-columns:minmax(0,1fr); row-gap:14px; padding:18px; }
  #roles .rl-sum{ font-size:15px; }
  #roles .rl-apply{ justify-self:start; }
}


/* ==========================================================================
   3 · WHY WORK WITH US — four short statements, no icons, no boxes
   ========================================================================== */
#why .wy-list{
  margin:0 auto; padding:0; list-style:none; max-width:1180px;
  display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:0 clamp(24px, 2.6vw, 40px);
}
#why .wy{ padding-top:20px; border-top:2px solid var(--cr-tint); }
#why .wy-n{
  display:block; font-family:var(--mono, ui-monospace, "SF Mono", Menlo, Consolas, monospace);
  font-size:12px; letter-spacing:.12em; color:var(--cr-act);
}
#why .wy-t{ margin:10px 0 0; font-size:clamp(17px, 1.3vw, 19px); line-height:1.3; font-weight:750; letter-spacing:-.01em; color:var(--cr-ink); }
#why .wy-p{ margin:8px 0 0; font-size:15.5px; line-height:1.6; color:var(--cr-mute); text-wrap:pretty; }
#why .wy-co{
  max-width:1180px; margin:clamp(26px, 2.8vw, 38px) auto 0; padding-top:18px; border-top:1px solid var(--cr-div);
  display:flex; flex-wrap:wrap; justify-content:center; gap:6px 12px;
  font-size:14.5px; line-height:1.5; color:var(--cr-mute); text-align:center;
}
#why .wy-co b{ color:var(--cr-ink); font-weight:700; }
#why .wy-co i{ font-style:normal; color:#A3AFBF; }
@media (max-width:1080px){ #why .wy-list{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:26px clamp(24px, 3vw, 40px); } }
@media (max-width:560px){
  #why .wy-list{ grid-template-columns:minmax(0,1fr); gap:22px; }
  #why .wy-co i{ display:none; }
  #why .wy-co{ flex-direction:column; gap:4px; }
}


/* ==========================================================================
   4 · THE APPLICATION — one form sheet, eight numbered groups. On wide
   screens a quiet index sits beside it and keeps the chosen role in view.
   ========================================================================== */
#apply .af-grid{
  display:grid; grid-template-columns:minmax(0, 1fr); justify-content:center;
  max-width:1180px; margin:0 auto;
}
@media (min-width:1100px){
  #apply .af-grid{ grid-template-columns:250px minmax(0, 800px); column-gap:clamp(32px, 3.4vw, 56px); }
}

/* the index beside the form */
#apply .af-aside{ display:none; }
@media (min-width:1100px){
  #apply .af-aside{ display:block; }
  #apply .af-stick{ position:sticky; top:calc(var(--barh, 104px) + 24px); }
}
#apply .af-for{
  padding:16px 18px; border-radius:var(--cr-rc); background:#FFFFFF; border:1px solid var(--cr-edge);
}
#apply .af-for-k{ display:block; font-size:12.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--cr-quiet); }
#apply .af-for-v{ display:block; margin-top:6px; font-size:16.5px; line-height:1.3; font-weight:750; color:var(--cr-ink); }
#apply .af-for-v.is-empty{ color:var(--cr-quiet); font-weight:600; }
#apply .af-for-a{ display:inline-block; margin-top:8px; font-size:14px; font-weight:700; color:var(--cr-act); text-decoration:none; }
#apply .af-for-a:hover{ text-decoration:underline; text-underline-offset:3px; }
#apply .af-index{ margin:18px 0 0; padding:0; list-style:none; }
#apply .af-index a{
  display:grid; grid-template-columns:24px minmax(0,1fr) 16px; align-items:center; gap:10px;
  padding:8px 10px; margin:0 -10px; border-radius:8px;
  font-size:14.5px; font-weight:600; color:var(--cr-ink2); text-decoration:none;
}
#apply .af-index a:hover{ background:rgba(255,255,255,.7); color:var(--cr-act-h); }
#apply .af-index a:focus-visible{ outline:2px solid var(--cr-focus); outline-offset:0; }
#apply .af-index .af-ix{
  display:grid; place-items:center; width:24px; height:24px; border-radius:50%;
  background:#FFFFFF; border:1px solid var(--cr-tint); font-size:12px; font-weight:750; color:var(--cr-act);
}
#apply .af-index .af-ok{ width:16px; height:16px; color:var(--cr-ok); stroke-width:2.4; opacity:0; transition:opacity .25s; }
#apply .af-index li.is-done .af-ok{ opacity:1; }
#apply .af-index li.is-done .af-ix{ background:var(--cr-soft); border-color:#A9C4EA; }
#apply .af-req{ margin:16px 0 0; font-size:13.5px; line-height:1.5; color:var(--cr-mute); }
#apply .af-req b, #apply .af-star{ color:var(--cr-err); font-weight:700; }

/* the sheet */
#apply .af, #apply .af-done{
  min-width:0; margin:0; background:#FFFFFF; border:1px solid var(--cr-edge); border-radius:var(--cr-r);
  box-shadow:var(--cr-shadow);
}
#apply .af-top{ padding:22px clamp(18px, 3vw, 36px); border-bottom:1px solid var(--cr-div); font-size:14.5px; line-height:1.55; color:var(--cr-mute); }
#apply .af-top b{ color:var(--cr-ink2); }
#apply .af-g{ margin:0; min-width:0; padding:clamp(22px, 2.6vw, 32px) clamp(18px, 3vw, 36px); border:0; border-top:1px solid var(--cr-div); scroll-margin-top:calc(var(--barh, 104px) + 16px); }
#apply .af-g:first-of-type{ border-top:0; }
#apply .af-lg{ display:flex; align-items:center; gap:12px; float:left; width:100%; margin:0; padding:0;
  font-size:clamp(18px, 1.4vw, 20px); line-height:1.3; font-weight:750; letter-spacing:-.01em; color:var(--cr-ink); }
#apply .af-lg + *{ clear:both; }
#apply .af-n{
  display:grid; place-items:center; flex:none; width:28px; height:28px; border-radius:50%;
  background:var(--cr-soft); color:var(--cr-act); font-size:13.5px; font-weight:800; letter-spacing:0;
}
#apply .af-help{ margin:6px 0 0 40px; font-size:14.5px; line-height:1.55; color:var(--cr-mute); }
#apply .af-body{ margin-top:20px; display:grid; gap:18px; }
#apply .af-row{ display:grid; grid-template-columns:minmax(0,1fr); gap:18px; }
@media (min-width:700px){
  #apply .af-row{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  #apply .af-row > .af-f.is-wide{ grid-column:1 / -1; }
}
#apply .af-sub{
  margin:4px 0 0; padding-top:18px; border-top:1px dashed var(--cr-edge2);
  font-size:15px; font-weight:750; color:var(--cr-ink2);
}

/* one field */
#apply .af-f{ min-width:0; margin:0; padding:0; border:0; }
#apply .af-f > .af-l, #apply .af-f > legend.af-l{
  display:block; float:none; width:100%; margin:0 0 7px; padding:0;
  font-size:14.5px; line-height:1.4; font-weight:650; color:var(--cr-ink);
}
#apply .af-opt{ font-weight:500; color:var(--cr-quiet); }
#apply .af-hint{ display:block; margin-top:6px; font-size:13.5px; line-height:1.5; color:var(--cr-quiet); }
#apply .af-hint + .af-err{ margin-top:4px; }

#apply .af-in, #apply .af-sel, #apply .af-ta{
  display:block; width:100%; min-width:0; margin:0;
  height:48px; padding:0 14px; border-radius:var(--cr-rk);
  background:#FFFFFF; border:1px solid var(--cr-ctl); box-shadow:none;
  font:inherit; font-size:16px; line-height:1.4; color:var(--cr-ink);
  -webkit-appearance:none; appearance:none;
  transition:border-color .15s, box-shadow .15s;
}
#apply .af-ta{ height:auto; min-height:104px; padding:12px 14px; resize:vertical; line-height:1.55; }
#apply .af-ta.is-short{ min-height:80px; }
#apply .af-sel{
  padding-right:42px; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 6l4.5 4.5L12.5 6' fill='none' stroke='%23505C6C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; background-size:16px;
}
#apply .af-sel:invalid, #apply .af-sel.is-ph{ color:var(--cr-quiet); }
#apply .af-sel option{ color:var(--cr-ink); }
#apply .af-in::placeholder, #apply .af-ta::placeholder{ color:#8A95A5; opacity:1; }
#apply :is(.af-in, .af-sel, .af-ta):hover{ border-color:var(--cr-ctl-h); }
#apply :is(.af-in, .af-sel, .af-ta):focus{ outline:none; border-color:var(--cr-focus); box-shadow:0 0 0 3px rgba(26,115,232,.18); }
#apply input[type="date"].af-in, #apply input[type="month"].af-in{ min-height:48px; line-height:46px; }

/* a prefixed input: +91, ₹ */
#apply .af-pre{ display:flex; align-items:stretch; }
#apply .af-pre > span{
  display:grid; place-items:center; flex:none; padding:0 12px; min-width:52px;
  border:1px solid var(--cr-ctl); border-right:0; border-radius:var(--cr-rk) 0 0 var(--cr-rk);
  background:var(--cr-pale); font-size:15.5px; font-weight:650; color:var(--cr-ink2);
}
#apply .af-pre > .af-in{ border-radius:0 var(--cr-rk) var(--cr-rk) 0; }

/* salary: amount + period, side by side at every width */
#apply .af-money{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
#apply .af-per{ display:inline-grid; grid-auto-flow:column; padding:3px; border-radius:var(--cr-rk); background:var(--cr-pale); border:1px solid var(--cr-edge2); }
#apply .af-per label{ position:relative; display:block; }
#apply .af-per input{ position:absolute; opacity:0; inset:0; margin:0; cursor:pointer; }
#apply .af-per span{
  display:flex; align-items:center; justify-content:center; gap:7px; height:40px; padding:0 12px; border-radius:8px;
  font-size:14px; font-weight:650; color:var(--cr-mute); white-space:nowrap; border:1px solid transparent;
}
#apply .af-per span::before{ width:17px; height:17px; }
#apply .af-per input:checked + span{ background:#FFFFFF; border-color:#C9D9EF; color:var(--cr-ink); box-shadow:0 1px 2px rgba(15,27,61,.06); }
#apply .af-per input:focus-visible + span{ outline:2px solid var(--cr-focus); outline-offset:1px; }
#apply .af-echo{ display:block; margin-top:6px; font-size:13.5px; color:var(--cr-quiet); min-height:1.5em; }

/* choices: radio and checkbox chips */
#apply .af-ch{ display:flex; flex-wrap:wrap; gap:8px; }
#apply .af-ch.is-grid{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); }
@media (max-width:640px){ #apply .af-ch.is-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
#apply .af-c{ position:relative; display:block; min-width:0; }
#apply .af-c input{ position:absolute; opacity:0; inset:0; width:100%; height:100%; margin:0; cursor:pointer; z-index:1; }
#apply .af-c span{
  display:flex; align-items:center; gap:10px; min-height:46px; height:100%; padding:10px 14px;
  border:1px solid var(--cr-ctl); border-radius:var(--cr-rk); background:#FFFFFF;
  font-size:15px; line-height:1.3; font-weight:600; color:var(--cr-ink2);
  transition:background-color .15s, border-color .15s, color .15s;
}
/* the tick box: empty and clearly drawn until chosen, then filled with a
   tick. A single choice has a round box, a multiple choice a square one. */
#apply .af-c span::before,
#apply .lv-o span::before,
#apply .af-per span::before{
  content:""; flex:none; width:20px; height:20px; border-radius:50%;
  border:2px solid #8391A5; background:#FFFFFF;
  transition:background-color .15s, border-color .15s;
}
#apply .af-c input[type="checkbox"] + span::before{ border-radius:5px; }
#apply .af-c input:hover + span{ border-color:var(--cr-ctl-h); }
#apply .af-c input:hover + span::before,
#apply .lv-o input:hover + span::before,
#apply .af-per input:hover + span::before{ border-color:#5B6778; }
#apply .af-c input:checked + span{ background:var(--cr-soft); border-color:var(--cr-act); color:var(--cr-ink); }
#apply .af-c input:checked + span::before,
#apply .lv-o input:checked + span::before,
#apply .af-per input:checked + span::before{
  border-color:var(--cr-act);
  background:var(--cr-act) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.2l3 3 6-6.4' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/13px no-repeat;
}
/* the line under each question that says how to answer it */
#apply .af-how{ display:block; margin-top:2px; font-size:13px; font-weight:500; color:var(--cr-quiet); }
#apply .af-c input:focus-visible + span{ outline:2px solid var(--cr-focus); outline-offset:2px; }

/* a single confirming checkbox (WhatsApp same as mobile, declaration) */
#apply .af-tick{ position:relative; display:flex; align-items:flex-start; gap:12px; cursor:pointer; font-size:15px; line-height:1.5; color:var(--cr-ink2); }
#apply .af-tick input{ position:absolute; opacity:0; width:22px; height:22px; margin:0; cursor:pointer; }
#apply .af-tick .af-box{
  flex:none; width:22px; height:22px; margin-top:1px; border-radius:6px; border:2px solid #8391A5; background:#FFFFFF;
  transition:background-color .15s, border-color .15s;
}
#apply .af-tick input:checked + .af-box{
  border-color:var(--cr-act); background:var(--cr-act) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.2l3 3 6-6.4' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat;
}
#apply .af-tick input:focus-visible + .af-box{ outline:2px solid var(--cr-focus); outline-offset:2px; }
#apply .af-tick a{ color:var(--cr-act); font-weight:650; }

/* skill levels: one row per skill, four steps */
#apply .af-skills{ display:grid; gap:0; border:1px solid var(--cr-edge2); border-radius:var(--cr-rc); overflow:hidden; }
#apply .lv{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0, 360px); align-items:center; gap:10px 20px;
  margin:0; padding:12px 14px; border:0; border-top:1px solid var(--cr-div); min-width:0;
}
#apply .lv:first-child{ border-top:0; }
#apply .lv > legend{ float:left; padding:0; font-size:15px; font-weight:650; color:var(--cr-ink); }
#apply .lv-o{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); padding:3px; border-radius:var(--cr-rk); background:var(--cr-pale); }
#apply .lv-o label{ position:relative; display:block; }
#apply .lv-o input{ position:absolute; opacity:0; inset:0; width:100%; height:100%; margin:0; cursor:pointer; }
#apply .lv-o span{
  display:flex; align-items:center; justify-content:center; gap:7px; height:42px; padding:0 6px; border-radius:8px; border:1px solid transparent;
  font-size:13.5px; font-weight:650; color:var(--cr-mute); white-space:nowrap;
}
#apply .lv-o span::before{ width:17px; height:17px; }
#apply .lv-o input:hover + span{ color:var(--cr-ink); }
#apply .lv-o input:checked + span{ background:#FFFFFF; border-color:#C9D9EF; color:var(--cr-ink); box-shadow:0 1px 2px rgba(15,27,61,.06); }
#apply .lv-o input:focus-visible + span{ outline:2px solid var(--cr-focus); outline-offset:1px; }
@media (max-width:640px){
  #apply .lv{ grid-template-columns:minmax(0,1fr); padding:12px; }
  /* a legend that is not floated is drawn on the row's top rule: keep it
     floated, full width, so the row's own padding sits above it */
  #apply .lv > legend{ float:left; width:100%; margin-bottom:8px; }
  #apply .lv-o{ clear:both; }
  /* four steps across a phone: the tick box sits above its word */
  #apply .lv-o span{ flex-direction:column; gap:4px; height:58px; }
}
#apply .af-skills-empty{
  padding:18px; border-radius:var(--cr-rc); background:var(--cr-pale);
  font-size:15px; line-height:1.55; color:var(--cr-mute);
}
#apply .af-skills-empty a{ color:var(--cr-act); font-weight:700; }

/* resume */
#apply .af-file{ position:relative; }
#apply .af-drop{
  position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  min-height:128px; padding:20px; border-radius:var(--cr-rc); text-align:center;
  background:#FAFCFF; border:1.5px dashed #B8CCE8; cursor:pointer;
  transition:background-color .15s, border-color .15s;
}
#apply .af-drop:hover, #apply .af-file.is-over .af-drop{ background:var(--cr-soft); border-color:var(--cr-act); }
#apply .af-drop input{ position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
#apply .af-drop input:focus-visible ~ .af-drop-t{ outline:2px solid var(--cr-focus); outline-offset:4px; border-radius:4px; }
#apply .af-drop svg{ width:28px; height:28px; color:var(--cr-act); stroke-width:1.6; }
#apply .af-drop-t{ font-size:16px; font-weight:750; color:var(--cr-act); }
#apply .af-drop-s{ font-size:14px; color:var(--cr-mute); }
@media (hover:none){ #apply .af-drop-or{ display:none; } }
#apply .af-got{
  display:grid; grid-template-columns:40px minmax(0,1fr) auto; align-items:center; gap:12px;
  padding:12px 14px; border-radius:var(--cr-rc); background:#FFFFFF; border:1px solid var(--cr-edge);
}
#apply .af-got-ic{ display:grid; place-items:center; width:40px; height:40px; border-radius:10px; background:var(--cr-soft); color:var(--cr-act); }
#apply .af-got-ic svg{ width:20px; height:20px; }
#apply .af-got-n{ display:block; font-size:15px; font-weight:700; color:var(--cr-ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#apply .af-got-s{ display:block; margin-top:2px; font-size:13.5px; color:var(--cr-mute); }
#apply .af-got-a{ display:flex; gap:4px; }
#apply .af-lnk{
  display:inline-flex; align-items:center; min-height:40px; padding:0 10px; border-radius:8px; border:0; background:none; cursor:pointer;
  font:inherit; font-size:14.5px; font-weight:700; color:var(--cr-act);
}
#apply .af-lnk:hover{ background:var(--cr-soft); }
#apply .af-lnk:focus-visible{ outline:2px solid var(--cr-focus); outline-offset:1px; }
#apply .af-lnk.is-quiet{ color:var(--cr-mute); }
@media (max-width:480px){
  #apply .af-got{ grid-template-columns:40px minmax(0,1fr); }
  #apply .af-got-a{ grid-column:1 / -1; justify-content:flex-end; margin-top:-2px; }
}

/* errors — shown only after a field has been left, or on submit */
#apply .af-err{ display:flex; align-items:flex-start; gap:6px; margin-top:7px; font-size:13.5px; line-height:1.45; font-weight:600; color:var(--cr-err); }
#apply .af-err svg{ width:15px; height:15px; margin-top:1px; stroke-width:2; }
#apply .af-f.is-bad :is(.af-in, .af-sel, .af-ta){ border-color:var(--cr-err); }
#apply .af-f.is-bad :is(.af-in, .af-sel, .af-ta):focus{ box-shadow:0 0 0 3px rgba(180,35,24,.14); }
#apply .af-f.is-bad .af-pre > span{ border-color:var(--cr-err); }
#apply .af-f.is-bad .af-drop{ border-color:var(--cr-err); background:var(--cr-err-bg); }
#apply .af-f.is-bad .af-tick .af-box{ border-color:var(--cr-err); }
#apply .af-f.is-bad .af-c span{ border-color:#E7A29C; }

/* a field that has just been set from a role's Apply button */
#apply .af-f.is-flash .af-sel{ animation:crFlash 1.6s var(--cr-ease) 1; }
@keyframes crFlash{ 0%{ box-shadow:0 0 0 0 rgba(7,96,198,0); } 25%{ box-shadow:0 0 0 5px rgba(7,96,198,.22); border-color:var(--cr-act); } 100%{ box-shadow:0 0 0 0 rgba(7,96,198,0); } }

/* the end of the form */
#apply .af-end{ padding:clamp(22px, 2.6vw, 32px) clamp(18px, 3vw, 36px) clamp(24px, 2.8vw, 34px); border-top:1px solid var(--cr-div); background:#FAFCFF; border-radius:0 0 var(--cr-r) var(--cr-r); }
#apply .af-for-sum{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px 16px;
  padding:14px 16px; border-radius:var(--cr-rc); background:#FFFFFF; border:1px solid #C9D9EF;
}
#apply .af-for-sum-k{ display:block; font-size:13px; font-weight:650; color:var(--cr-mute); }
#apply .af-for-sum-v{ display:block; margin-top:2px; font-size:17px; font-weight:800; color:var(--cr-ink); }
#apply .af-for-sum-v.is-empty{ font-size:15.5px; font-weight:650; color:var(--cr-err); }
#apply .af-checks{ display:grid; gap:14px; margin-top:20px; }
#apply .af-alert{
  margin-top:20px; padding:14px 16px; border-radius:var(--cr-rc);
  background:var(--cr-err-bg); border:1px solid var(--cr-err-ln); color:#7A271A;
  font-size:14.5px; line-height:1.55;
}
#apply .af-alert:focus{ outline:none; }
#apply .af-alert b{ display:block; font-size:15.5px; color:var(--cr-err); }
#apply .af-alert ul{ margin:8px 0 0; padding:0 0 0 18px; }
#apply .af-alert li{ margin-top:2px; }
#apply .af-alert a{ color:#7A271A; font-weight:650; }
#apply .af-alert .af-retry{
  display:inline-flex; align-items:center; justify-content:center; height:44px; margin-top:12px; padding:0 18px; border-radius:8px;
  background:#FFFFFF; border:1px solid var(--cr-err-ln); cursor:pointer; font:inherit; font-size:15px; font-weight:750; color:var(--cr-err);
}
#apply .af-alert .af-retry:hover{ background:#FFF8F7; }
#apply .af-btn{
  display:flex; align-items:center; justify-content:center; gap:10px; width:100%; margin-top:20px;
  height:56px; padding:0 28px; border:0; border-radius:6px; cursor:pointer;
  background:var(--cr-act); color:#FFFFFF; font:inherit; font-size:17px; font-weight:800; letter-spacing:-.005em;
  transition:background-color .15s;
}
@media (min-width:700px){ #apply .af-btn{ width:auto; min-width:280px; } }
#apply .af-btn:hover{ background:var(--cr-act-h); }
#apply .af-btn:active{ background:var(--cr-act-p); }
#apply .af-btn:focus-visible{ outline:2px solid var(--cr-act-p); outline-offset:3px; }
#apply .af-btn[disabled]{ cursor:progress; background:#3F7FCB; }
#apply .af-btn svg{ width:18px; height:18px; stroke-width:2; }
#apply .af-spin{ width:18px; height:18px; border-radius:50%; border:2.2px solid rgba(255,255,255,.4); border-top-color:#FFFFFF; animation:crSpin .8s linear infinite; }
@keyframes crSpin{ to{ transform:rotate(360deg); } }
#apply .af-fine{ margin:14px 0 0; font-size:13.5px; line-height:1.55; color:var(--cr-quiet); }

/* success */
#apply .af-done{ padding:clamp(28px, 4vw, 52px) clamp(20px, 4vw, 52px); text-align:center; }
#apply .af-done:focus{ outline:none; }
#apply .af-done-ic{ display:grid; place-items:center; width:56px; height:56px; margin:0 auto; border-radius:50%; background:#E8F6EE; color:var(--cr-ok); }
#apply .af-done-ic svg{ width:28px; height:28px; stroke-width:2.2; }
#apply .af-done-h{ margin:18px 0 0; font-size:clamp(24px, 2.2vw, 30px); line-height:1.2; font-weight:800; letter-spacing:-.02em; color:var(--cr-ink); }
#apply .af-done-p{ max-width:560px; margin:12px auto 0; font-size:16px; line-height:1.65; color:var(--cr-mute); text-wrap:pretty; }
#apply .af-done-dl{ max-width:460px; margin:24px auto 0; text-align:left; border-top:1px solid var(--cr-div); }
#apply .af-done-dl > div{ display:flex; justify-content:space-between; gap:16px; padding:11px 0; border-bottom:1px solid var(--cr-div); font-size:15px; }
#apply .af-done-dl dt{ color:var(--cr-mute); }
#apply .af-done-dl dd{ margin:0; font-weight:700; color:var(--cr-ink); text-align:right; overflow-wrap:anywhere; }
#apply .af-done-note{ max-width:460px; margin:14px auto 0; font-size:14px; line-height:1.55; color:var(--cr-quiet); }
#apply .af-done-a{
  display:inline-flex; align-items:center; gap:8px; margin-top:24px; min-height:44px;
  font-size:16px; font-weight:750; color:var(--cr-act); text-decoration:none;
}
#apply .af-done-a:hover{ text-decoration:underline; text-underline-offset:4px; }
#apply .af-done-a svg{ width:16px; height:16px; stroke-width:2; }

/* the honeypot — off screen, never focusable */
#apply .af-hp{ position:absolute !important; left:-10000px !important; width:1px; height:1px; overflow:hidden; }

@media (max-width:760px){
  #apply .af-g{ padding:22px 16px; }
  #apply .af-top{ padding:18px 16px; }
  #apply .af-end{ padding:22px 16px 24px; }
  #apply .af-help{ margin-left:0; }
  #apply .af-lg{ font-size:18px; }
}

@media (prefers-reduced-motion:reduce){
  .cr *, .cr *::before, .cr *::after{ transition:none !important; animation:none !important; }
}

/* once a resume is chosen the drop area steps aside — visually only, so the
   file input stays in the page and "Replace" can still open it */
#apply .af-file.has-file .af-drop{
  position:absolute; width:1px; height:1px; min-height:0; padding:0; margin:0; border:0;
  overflow:hidden; clip-path:inset(50%);
}

/* the reference is one code: it moves under its label rather than breaking */
#apply .af-done-dl > div{ flex-wrap:wrap; }
#apply .af-done-dl dd{ white-space:nowrap; overflow-wrap:normal; margin-left:auto; }

/* a link inside a hint is still a link */
#apply .af-hint a{ color:var(--cr-act); font-weight:650; text-decoration:none; }
#apply .af-hint a:hover{ text-decoration:underline; text-underline-offset:3px; }

/* phones: the amount keeps the full width; its period sits under it */
@media (max-width:520px){
  #apply .af-money{ grid-template-columns:minmax(0,1fr); }
  #apply .af-per{ grid-auto-columns:1fr; }
}
/* the narrowest phones: the four skill steps sit two by two, at full size */
@media (max-width:359px){
  #apply .lv-o{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:3px; }
  #apply .lv-o span{ flex-direction:row; gap:7px; height:44px; }
}
@media (max-width:359px){ #apply .af-ch.is-grid{ grid-template-columns:minmax(0,1fr); } }


/* "Where you live": the first sub-heading needs no rule above it; the place
   the candidate is originally from is shown under its tick */
#apply .af-sub.is-first{ margin-top:0; padding-top:0; border-top:0; }
#apply .af-tick-echo{ display:block; margin-top:2px; font-size:14px; font-weight:650; color:var(--cr-ink); }
#apply .af-tick-echo:empty{ display:none; }
#apply .af-tick input:hover + .af-box{ border-color:#5B6778; }
/* the current place is named under the tick only while it is ticked */
#apply .af-tick input:not(:checked) ~ span .af-tick-echo{ display:none; }

/* ==========================================================================
   5 · ROLE TILES — the role chosen by tick, not from a menu (layout options
   1 and 3). The native <select> stays in the form, unseen, and is what is
   sent; role-tiles.js keeps the two in step.
   ========================================================================== */
#apply .rt-native{ position:absolute !important; width:1px !important; height:1px !important; padding:0 !important;
  border:0 !important; opacity:0 !important; pointer-events:none; overflow:hidden; }
#apply .rt-set{ display:grid; gap:10px; }
#apply .rt{ position:relative; display:block; min-width:0; }
#apply .rt input{ position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer; z-index:1; }
#apply .rt-box{
  display:grid; grid-template-columns:minmax(0,1fr) 22px; grid-template-areas:"cat tick" "t tick" "s s"; column-gap:14px;
  height:100%; padding:16px 18px 17px; border-radius:var(--cr-rc); background:#FFFFFF; border:1px solid var(--cr-ctl);
  transition:background-color .15s, border-color .15s, box-shadow .15s;
}
#apply .rt-box::after{
  content:""; grid-area:tick; align-self:start; width:22px; height:22px; border-radius:50%;
  border:2px solid #8391A5; background:#FFFFFF; transition:background-color .15s, border-color .15s;
}
#apply .rt-cat{ grid-area:cat; font-family:var(--mono, ui-monospace, "SF Mono", Menlo, Consolas, monospace);
  font-size:11.5px; line-height:16px; letter-spacing:.12em; text-transform:uppercase; color:var(--cr-quiet); }
#apply .rt-t{ grid-area:t; margin-top:4px; font-size:17px; line-height:1.3; font-weight:750; letter-spacing:-.01em; color:var(--cr-ink); }
#apply .rt-s{ grid-area:s; margin-top:7px; font-size:14.5px; line-height:1.5; color:var(--cr-mute); text-wrap:pretty; }
#apply .rt input:hover + .rt-box{ border-color:var(--cr-ctl-h); }
#apply .rt input:hover + .rt-box::after{ border-color:#5B6778; }
#apply .rt input:checked + .rt-box{ background:#F5F9FF; border-color:var(--cr-act); box-shadow:0 0 0 1px var(--cr-act); }
#apply .rt input:checked + .rt-box::after{
  border-color:var(--cr-act);
  background:var(--cr-act) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.2l3 3 6-6.4' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat;
}
#apply .rt input:focus-visible + .rt-box{ outline:2px solid var(--cr-focus); outline-offset:2px; }
#apply .af-f.is-bad .rt-box{ border-color:#E7A29C; }
#apply .af-f.is-flash .rt input:checked + .rt-box{ animation:crFlash 1.6s var(--cr-ease) 1; }
/* a label kept for screen readers only must not take the field's full width */
#apply .af-f > .af-l.vh{ position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }

/* the required mark keeps its colour inside the top note */
#apply .af-top b.af-star{ color:var(--cr-err); }
/* salary in a narrow column: the amount keeps the full width, the period sits under it */
#apply .af-f[data-money]{ container-type:inline-size; }
@container (max-width:460px){
  #apply .af-money{ grid-template-columns:minmax(0,1fr); }
  #apply .af-per{ grid-auto-columns:1fr; }
}
