/* Single job application modal only. The Staff Portal form and submission flow remain unchanged. */
.single-ha_job .ha-job-apply-trigger{cursor:pointer}
.single-ha_job .ha-job-modal{
  position:fixed;
  inset:0;
  z-index:99999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:clamp(.75rem,2vw,1.5rem);
}
.single-ha_job .ha-job-modal.is-open{display:flex}
.single-ha_job .ha-job-modal__backdrop{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  border-radius:0;
  background:rgba(7,25,39,.78);
  cursor:default;
  backdrop-filter:blur(5px);
}
.single-ha_job .ha-job-modal__dialog{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  width:min(1060px,100%);
  max-height:calc(100dvh - 2rem);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.55);
  border-radius:16px;
  background:#fff;
  box-shadow:0 34px 100px rgba(3,17,30,.42);
}
.single-ha_job .ha-job-modal__header{
  display:flex;
  flex:0 0 auto;
  align-items:flex-start;
  justify-content:space-between;
  gap:1.5rem;
  padding:1.1rem 1.3rem;
  border-bottom:1px solid #dce8ec;
  background:linear-gradient(135deg,#f7fbfc,#fff 62%,#fcf4f9);
}
.single-ha_job .ha-job-modal__header>div{min-width:0}
.single-ha_job .ha-job-modal__header span{
  display:block;
  margin-bottom:.2rem;
  color:var(--ha-primary);
  font-size:.68rem;
  font-weight:850;
  letter-spacing:.11em;
  line-height:1.3;
  text-transform:uppercase;
}
.single-ha_job .ha-job-modal__header h2{
  margin:0;
  overflow:hidden;
  color:var(--ha-navy);
  font-size:clamp(1.15rem,2vw,1.45rem);
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.single-ha_job .ha-job-modal__header p{
  margin:.25rem 0 0;
  color:#617681;
  font-size:.77rem;
  line-height:1.45;
}
.single-ha_job .ha-job-modal__close{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  flex:0 0 42px;
  padding:0;
  border:1px solid #cfdee4;
  border-radius:10px;
  background:#fff;
  color:var(--ha-navy);
  box-shadow:0 7px 18px rgba(9,43,62,.07);
}
.single-ha_job .ha-job-modal__close .ha-icon{width:20px;height:20px}
.single-ha_job .ha-job-modal__close:hover{border-color:#adc9d3;background:#f2f8fa}
.single-ha_job .ha-job-modal__close:focus-visible{outline:3px solid var(--ha-secondary);outline-offset:2px}
.single-ha_job .ha-job-modal__body{
  min-height:0;
  padding:0 clamp(1rem,2.8vw,2rem) clamp(1rem,2.8vw,2rem);
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}

/* Form shell and introduction. */
.single-ha_job .ha-job-modal .hasp-job-application{
  display:block!important;
  margin:0;
  padding:clamp(1.25rem,2.8vw,2rem) 0 0;
  border:0;
  border-radius:0;
  background:#fff;
  box-shadow:none;
}
.single-ha_job .ha-job-modal .hasp-app-intro{max-width:760px;margin:0 0 1.2rem}
.single-ha_job .ha-job-modal .hasp-app-eyebrow{
  margin-bottom:.35rem;
  color:var(--ha-primary);
  font-size:.72rem;
  letter-spacing:.1em;
}
.single-ha_job .ha-job-modal .hasp-app-intro h2{
  margin:0 0 .45rem;
  font-size:clamp(1.55rem,3vw,2.15rem);
  line-height:1.15;
}
.single-ha_job .ha-job-modal .hasp-app-intro p{
  max-width:700px;
  margin:0;
  color:#5a707a;
  font-size:.9rem;
  line-height:1.62;
}

/* Clear, readable three-step progress indicator. */
.single-ha_job .ha-job-modal .hasp-app-progress{
  position:sticky;
  top:0;
  z-index:3;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.6rem;
  margin:0 0 1.5rem;
  padding:.65rem 0;
  background:rgba(255,255,255,.97);
}
.single-ha_job .ha-job-modal .hasp-app-progress button{
  position:relative;
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  align-items:center;
  gap:.65rem;
  min-width:0;
  min-height:58px;
  padding:.65rem .75rem;
  border:1px solid #d8e4e9;
  border-radius:10px;
  background:#f7fafb;
  color:#536a75;
  text-align:left;
  transition:border-color .2s ease,background .2s ease,color .2s ease;
}
.single-ha_job .ha-job-modal .hasp-app-progress button::after{
  content:"";
  position:absolute;
  right:.7rem;
  bottom:-1px;
  left:.7rem;
  height:3px;
  border-radius:3px 3px 0 0;
  background:transparent;
}
.single-ha_job .ha-job-modal .hasp-app-progress b{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:9px;
  background:#e5edf0;
  color:#405965;
  font-size:.78rem;
}
.single-ha_job .ha-job-modal .hasp-app-progress span{
  display:block;
  min-width:0;
  overflow:hidden;
  font-size:.77rem;
  font-weight:800;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.single-ha_job .ha-job-modal .hasp-app-progress button.is-active,
.single-ha_job .ha-job-modal .hasp-app-progress button.is-complete{
  border-color:#bcdde5;
  background:#edf8fa;
  color:var(--ha-navy);
}
.single-ha_job .ha-job-modal .hasp-app-progress button.is-active::after{background:linear-gradient(90deg,var(--ha-primary),var(--ha-secondary))}
.single-ha_job .ha-job-modal .hasp-app-progress button.is-active b,
.single-ha_job .ha-job-modal .hasp-app-progress button.is-complete b{background:var(--ha-secondary-dark);color:#fff}

/* Fields, checkbox groups and files. */
.single-ha_job .ha-job-modal .hasp-app-step h3{
  margin:0 0 1rem;
  font-size:1.2rem;
  line-height:1.3;
}
.single-ha_job .ha-job-modal .hasp-app-grid{gap:.9rem 1rem}
.single-ha_job .ha-job-modal .hasp-app-field{gap:.38rem;color:#203b49;font-size:.88rem}
.single-ha_job .ha-job-modal .hasp-app-field>span{font-size:.82rem;font-weight:800;line-height:1.45}
.single-ha_job .ha-job-modal .hasp-app-field>span>span{color:#b7274f}
.single-ha_job .ha-job-modal .hasp-app-field input,
.single-ha_job .ha-job-modal .hasp-app-field select,
.single-ha_job .ha-job-modal .hasp-app-field textarea{
  min-height:50px;
  padding:.7rem .8rem;
  border:1px solid #bdced5;
  border-radius:8px;
  background:#fff;
  color:#182f3c;
  font-size:.9rem;
  box-shadow:inset 0 1px 2px rgba(9,43,62,.025);
}
.single-ha_job .ha-job-modal .hasp-app-field textarea{min-height:118px;resize:vertical}
.single-ha_job .ha-job-modal .hasp-app-field input:hover,
.single-ha_job .ha-job-modal .hasp-app-field select:hover,
.single-ha_job .ha-job-modal .hasp-app-field textarea:hover{border-color:#91b4c0}
.single-ha_job .ha-job-modal .hasp-app-field input:focus,
.single-ha_job .ha-job-modal .hasp-app-field select:focus,
.single-ha_job .ha-job-modal .hasp-app-field textarea:focus{
  border-color:var(--ha-secondary-dark);
  outline:0;
  box-shadow:0 0 0 3px rgba(39,169,204,.16);
}
.single-ha_job .ha-job-modal .hasp-app-field input[type="file"]{
  height:auto;
  min-height:52px;
  padding:.42rem;
  background:#f8fbfc;
}
.single-ha_job .ha-job-modal .hasp-app-field input[type="file"]::file-selector-button{
  min-height:36px;
  margin-right:.65rem;
  padding:.45rem .7rem;
  border:1px solid #b9ccd4;
  border-radius:7px;
  background:#fff;
  color:var(--ha-navy);
  font-weight:800;
  cursor:pointer;
}
.single-ha_job .ha-job-modal .hasp-app-checkgrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.55rem;
  padding:.7rem;
  border:1px solid #dbe7eb;
  border-radius:10px;
  background:#f6fafb;
}
.single-ha_job .ha-job-modal .hasp-app-checkgrid label{
  display:flex;
  align-items:flex-start;
  gap:.58rem;
  min-width:0;
  min-height:44px;
  margin:0;
  padding:.65rem .7rem;
  border:1px solid #dce7eb;
  border-radius:8px;
  background:#fff;
  color:#3b545f;
  font-size:.82rem;
  font-weight:650;
  line-height:1.4;
}
.single-ha_job .ha-job-modal .hasp-app-checkgrid input[type="checkbox"],
.single-ha_job .ha-job-modal .hasp-app-consent input[type="checkbox"]{
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  min-height:18px!important;
  flex:0 0 18px;
  margin:.05rem 0 0;
  padding:0;
  accent-color:var(--ha-primary);
}
.single-ha_job .ha-job-modal .hasp-app-consent{
  display:flex;
  align-items:flex-start;
  gap:.7rem;
  margin:1.1rem 0 0;
  padding:1rem;
  border:1px solid #d6e5ea;
  border-radius:10px;
  background:#f5fafb;
  color:#405965;
  font-size:.84rem;
  font-weight:650;
  line-height:1.55;
}

/* Actions and form feedback. */
.single-ha_job .ha-job-modal .hasp-app-actions{
  display:flex;
  justify-content:flex-end;
  gap:.7rem;
  margin-top:1.3rem;
  padding-top:1rem;
  border-top:1px solid #e2ebee;
}
.single-ha_job .ha-job-modal .hasp-app-actions button{
  min-width:130px;
  min-height:46px;
  padding:.7rem 1.1rem;
  border:1px solid transparent;
  border-radius:10px;
  font-size:.86rem;
  font-weight:850;
  box-shadow:none;
  transition:transform .18s ease,background .18s ease,border-color .18s ease;
}
.single-ha_job .ha-job-modal .hasp-app-next,
.single-ha_job .ha-job-modal .hasp-app-submit{background:linear-gradient(135deg,var(--ha-primary),#b6398d);color:#fff}
.single-ha_job .ha-job-modal .hasp-app-prev{border-color:#cbdade;background:#fff;color:var(--ha-navy)}
.single-ha_job .ha-job-modal .hasp-app-actions button:hover{transform:translateY(-1px)}
.single-ha_job .ha-job-modal .hasp-app-actions button:focus-visible{outline:3px solid var(--ha-secondary);outline-offset:2px}
.single-ha_job .ha-job-modal .hasp-app-actions button:disabled{cursor:wait;opacity:.65;transform:none}
.single-ha_job .ha-job-modal .hasp-app-success,
.single-ha_job .ha-job-modal .hasp-app-error{
  margin:1rem 0;
  padding:1rem 1.1rem;
  border:1px solid transparent;
  border-radius:10px;
  line-height:1.6;
}
.single-ha_job .ha-job-modal .hasp-app-success{border-color:#b9dfcf;background:#edf9f3;color:#155c40}
.single-ha_job .ha-job-modal .hasp-app-error{border-color:#efc7d0;background:#fff3f5;color:#8b2440}
.single-ha_job .ha-job-modal .hasp-app-success h3{margin:0 0 .35rem;color:#155c40;font-size:1.15rem}
.single-ha_job .ha-job-modal .hasp-app-success p{margin:0}
body.ha-job-modal-open{overflow:hidden}

@media(max-width:760px){
  .single-ha_job .ha-job-modal{padding:0}
  .single-ha_job .ha-job-modal__dialog{width:100%;height:100dvh;max-height:none;border:0;border-radius:0}
  .single-ha_job .ha-job-modal__header{gap:.8rem;padding:.85rem 1rem}
  .single-ha_job .ha-job-modal__body{padding:0 .9rem .9rem;scrollbar-gutter:auto}
  .single-ha_job .ha-job-modal .hasp-job-application{padding-top:1rem}
  .single-ha_job .ha-job-modal .hasp-app-progress{gap:.35rem;margin-bottom:1.15rem;padding:.5rem 0}
  .single-ha_job .ha-job-modal .hasp-app-progress button{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:.32rem;
    min-height:68px;
    padding:.45rem .3rem;
    text-align:center;
  }
  .single-ha_job .ha-job-modal .hasp-app-progress b{width:28px;height:28px;border-radius:8px}
  .single-ha_job .ha-job-modal .hasp-app-progress span{
    display:block!important;
    width:100%;
    overflow:visible;
    font-size:.66rem;
    line-height:1.18;
    text-overflow:clip;
    white-space:normal;
  }
  .single-ha_job .ha-job-modal .hasp-app-grid{grid-template-columns:1fr}
  .single-ha_job .ha-job-modal .hasp-app-checkgrid{grid-template-columns:1fr}
}
@media(max-width:520px){
  .single-ha_job .ha-job-modal__header p{display:none}
  .single-ha_job .ha-job-modal__header h2{font-size:1rem}
  .single-ha_job .ha-job-modal__close{width:40px;height:40px;flex-basis:40px}
  .single-ha_job .ha-job-modal .hasp-app-intro h2{font-size:1.45rem}
  .single-ha_job .ha-job-modal .hasp-app-actions{display:grid;grid-template-columns:1fr 1fr}
  .single-ha_job .ha-job-modal .hasp-app-actions button{width:100%;min-width:0}
  .single-ha_job .ha-job-modal .hasp-app-actions button:only-child{grid-column:1/-1}
}
@media(prefers-reduced-motion:reduce){
  .single-ha_job .ha-job-modal .hasp-app-progress button,
  .single-ha_job .ha-job-modal .hasp-app-actions button{transition:none}
  .single-ha_job .ha-job-modal__backdrop{backdrop-filter:none}
}
