/* 仅在 job detail 页加载 */

/* 先隐藏原本页面底部的申请表单 */
.awsm-job-apply-form,
.awsm-application-form,
.awsm-job-form {
  display: none !important;
}

/*
 * Sticky title row + Apply（方案 A）
 * 若主题有固定顶栏，请设置：body 或根节点上 --iws-job-detail-sticky-top: 顶栏高度;
 * z-index 须低于主导航/下拉菜单（曾用 99990 会盖住菜单）；可用 --iws-job-detail-sticky-z 覆盖。
 */
.iws-job-detail-sticky-head {
  position: sticky;
  top: var(--iws-job-detail-sticky-top, 0px);
  z-index: var(--iws-job-detail-sticky-z, 10);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 16px;
  box-sizing: border-box;
  width: 100%;
  padding: 12px 16px;
  margin: 0 0 8px;
  background: #fff;
  border-bottom: 1px solid #e8eaed;
}

.iws-job-detail-sticky-head > *:not(.iws-apply-btn-wrap) {
  flex: 1 1 200px;
  min-width: 0;
  margin: 0;
}

.iws-job-detail-sticky-head > .iws-apply-btn-wrap {
  flex: 0 0 auto;
  justify-content: flex-end;
}

/* CTA 容器：默认随 sticky 行排列；--floating 时固定在视口左下 */
.iws-apply-btn-wrap {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: auto;
  max-width: 100%;
  margin: 0;
  pointer-events: none;
}

.iws-apply-btn-wrap--floating {
  position: fixed;
  left: calc(36px + env(safe-area-inset-left, 0px));
  right: auto;
  bottom: calc(18px + env(safe-area-inset-bottom, 0px));
  z-index: 99997;
  max-width: calc(100vw - 36px - 18px);
}

.iws-apply-btn-wrap .iws-apply-btn {
  pointer-events: auto;
}

/* CTA 按钮（button 提高优先级，避免主题覆盖圆角等） */
button.iws-apply-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 10px 18px;
  border: 0;
  border-radius: 10px;
  background: #0a3875;
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  transition:
    transform 0.18s ease,
    background 0.18s ease,
    box-shadow 0.18s ease;
  box-shadow: 0 8px 22px rgba(10, 56, 117, 0.28);
}

.iws-apply-btn-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.iws-apply-btn-label {
  line-height: 1;
}

button.iws-apply-btn:hover {
  transform: translateY(-1px);
  background: #0c458f;
  box-shadow: 0 10px 26px rgba(10, 56, 117, 0.32);
}

button.iws-apply-btn:focus-visible {
  outline: 2px solid #0a3875;
  outline-offset: 2px;
}

.iws-modal-close:focus-visible {
  outline: 2px solid #111;
  outline-offset: 2px;
}

/* Modal 外层 */
.iws-modal {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: none;
}

.iws-modal.active {
  display: block;
}

/* 遮罩 */
.iws-modal-overlay {
  position: absolute;
  inset: 0;
  background: rgba(17, 17, 17, 0.56);
  backdrop-filter: blur(2px);
}

/* 弹窗主体 */
.iws-modal-content {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(92vw, 680px);
  max-height: 84vh;
  transform: translate(-50%, -50%);
  background: #fff;
  border-radius: 18px;
  padding: 24px 24px 20px;
  overflow: auto;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.22);
}

/* 关闭按钮 */
.iws-modal-close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: 999px;
  background: #f2f4f7;
  color: #111;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}

/* 标题 */
.iws-modal-header {
  margin-bottom: 16px;
  padding-right: 48px;
}

.iws-modal-title {
  margin: 0;
  font-size: 24px;
  line-height: 1.25;
  color: #111;
}

/* 表单容器 */
.iws-form-container {
  position: relative;
}

.iws-apply-success-message {
  margin: 0 0 12px;
  padding: 18px 20px;
  border-radius: 10px;
  border: 1px solid #9ad6a0;
  background: #ecf9ee;
  color: #1f5f2a;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.35;
}

.iws-form-container.is-success-only .awsm-job-apply-form,
.iws-form-container.is-success-only .awsm-application-form,
.iws-form-container.is-success-only .awsm-job-form,
.iws-form-container.is-success-only form {
  display: none !important;
}

/* Wins over `#iws-form-container #awsm-application-form { display: grid !important; }` */
#iws-form-container.is-success-only #awsm-application-form {
  display: none !important;
}

#iws-form-container.is-success-only .awsm-job-apply-form {
  display: none !important;
}

/* 把被搬进来的表单重新显示（grid 仅加在 #awsm-application-form 上） */
.iws-form-container .awsm-job-apply-form,
.iws-form-container .awsm-job-form {
  display: block !important;
}

.iws-form-container .awsm-application-form:not(#awsm-application-form) {
  display: block !important;
}

/* Popup 内申请表单：两列 grid（仅 #iws-form-container + #awsm-application-form） */
#iws-form-container #awsm-application-form {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

/* 默认每个字段组占满整行 */
#iws-form-container #awsm-application-form > .awsm-job-form-group {
  grid-column: 1 / -1;
  margin: 0;
  min-width: 0;
}

/* Email 左列、Phone 右列（同一行）；:has() 不支持时可用 .iws-col-email / .iws-col-phone */
#iws-form-container #awsm-application-form > .awsm-job-form-group.iws-col-email,
#iws-form-container #awsm-application-form > .awsm-job-form-group:has(#awsm-applicant-email) {
  grid-column: 1;
}

#iws-form-container #awsm-application-form > .awsm-job-form-group.iws-col-phone,
#iws-form-container #awsm-application-form > .awsm-job-form-group:has(#awsm-applicant-phone) {
  grid-column: 2;
}

/* GDPR 等 inline 组：强制整行；复选框与文案同一行 */
#iws-form-container #awsm-application-form > .awsm-job-form-group.awsm-job-inline-group {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 10px;
}

#iws-form-container .awsm-job-inline-group label {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 0;
  flex: 1;
  min-width: 0;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
}

#iws-form-container .awsm-job-inline-group input[type="checkbox"] {
  flex-shrink: 0;
  margin-top: 2px;
  margin-right: 0;
}

/* Submit：与 iws-popup-engine 中 Get Job Alerts（.iws-popup-submit / .iws-subscribe-btn）一致 */
#iws-form-container .awsm-application-submit-btn {
  width: 100%;
  min-height: 48px;
  padding: 12px 16px;
  box-sizing: border-box;
  background: #d92d20;
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.2;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(217, 45, 32, 0.22);
  transition: transform 0.2s ease, opacity 0.2s ease, box-shadow 0.2s ease;
}

#iws-form-container .awsm-application-submit-btn:hover:not(:disabled) {
  transform: translateY(-1px);
  opacity: 0.95;
}

#iws-form-container .awsm-application-submit-btn:focus-visible {
  outline: 2px solid #d92d20;
  outline-offset: 3px;
}

#iws-form-container .awsm-application-submit-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

#iws-form-container label {
  font-size: 13px;
  font-weight: 500;
  margin-bottom: 4px;
  display: block;
}

#iws-form-container .awsm-job-form-control,
#iws-form-container textarea,
#iws-form-container input[type="file"] {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

#iws-form-container .awsm-job-form-control,
#iws-form-container textarea,
#iws-form-container select.awsm-job-form-control {
  border: 1px solid #ddd;
  border-radius: 8px;
  padding: 10px 12px;
  font: inherit;
}

#iws-form-container .awsm-job-form-control:focus-visible,
#iws-form-container textarea:focus-visible,
#iws-form-container select.awsm-job-form-control:focus-visible {
  outline: 2px solid #111;
  outline-offset: 2px;
  border-color: #111;
}

#iws-form-container input[type="checkbox"] {
  transform: scale(1.2);
  margin-right: 6px;
  vertical-align: middle;
}

/* 手机端 */
@media (max-width: 767px) {
  .iws-job-detail-sticky-head {
    padding: 10px 0 12px;
    gap: 10px 12px;
  }

  .iws-apply-btn-wrap--floating {
    left: calc(28px + env(safe-area-inset-left, 0px));
    max-width: calc(100vw - 28px - 16px);
    bottom: calc(14px + env(safe-area-inset-bottom, 0px));
  }

  button.iws-apply-btn {
    min-height: 40px;
    padding: 9px 15px;
    font-size: 13px;
    border-radius: 10px;
  }

  .iws-modal-content {
    width: calc(100vw - 20px);
    max-height: 88vh;
    padding: 18px 16px 16px;
    border-radius: 14px;
  }

  .iws-modal-title {
    font-size: 20px;
  }

  #iws-form-container #awsm-application-form {
    grid-template-columns: 1fr;
  }

  #iws-form-container #awsm-application-form > .awsm-job-form-group.iws-col-email,
  #iws-form-container #awsm-application-form > .awsm-job-form-group.iws-col-phone,
  #iws-form-container #awsm-application-form > .awsm-job-form-group:has(#awsm-applicant-email),
  #iws-form-container #awsm-application-form > .awsm-job-form-group:has(#awsm-applicant-phone) {
    grid-column: 1 / -1;
  }
}
