.apcrm-registration-wizard {
  --apcrm-wizard-accent: #183b57;
  --apcrm-wizard-soft: #eef5f8;
  --apcrm-wizard-border: #d8e2e8;
  max-width: 880px;
  margin-inline: auto;
}

.apcrm-registration-wizard .apcrm-wizard-progress {
  position: sticky;
  top: 12px;
  z-index: 10;
  margin: 0 0 24px;
  padding: 16px 18px;
  border: 1px solid var(--apcrm-wizard-border);
  border-radius: 16px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 10px 28px rgba(21, 49, 68, .10);
  backdrop-filter: blur(8px);
}

.apcrm-wizard-progress-copy {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 10px;
}

.apcrm-wizard-progress-copy strong {
  color: var(--apcrm-wizard-accent);
  font-size: .88rem;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.apcrm-wizard-progress-copy span {
  color: #4d6271;
  font-size: .92rem;
  text-align: right;
}

.apcrm-wizard-track {
  height: 9px;
  overflow: hidden;
  border-radius: 999px;
  background: #e4edf1;
}

.apcrm-wizard-track span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: var(--apcrm-wizard-accent);
  transition: width .25s ease;
}

.apcrm-registration-wizard .apcrm-wizard-section {
  margin: 0;
  padding: clamp(20px, 4vw, 34px);
  border: 1px solid var(--apcrm-wizard-border);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 12px 34px rgba(21, 49, 68, .08);
}

.apcrm-registration-wizard .apcrm-wizard-section[hidden] {
  display: none !important;
}

.apcrm-registration-wizard .apcrm-wizard-section.is-active {
  display: block;
  animation: apcrmWizardReveal .22s ease both;
}

.apcrm-registration-wizard .pmpro_form_field,
.apcrm-registration-wizard .pmpro_checkout-field,
.apcrm-registration-wizard .pmpro_form_field-group {
  margin-bottom: 18px;
}

.apcrm-registration-wizard input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.apcrm-registration-wizard select,
.apcrm-registration-wizard textarea {
  width: 100%;
  min-height: 48px;
  box-sizing: border-box;
  border: 1px solid #bdcbd3;
  border-radius: 10px;
  background: #fff;
}

.apcrm-registration-wizard textarea {
  min-height: 130px;
}

.apcrm-registration-wizard button[type="submit"],
.apcrm-registration-wizard input[type="submit"] {
  display: none;
}

.apcrm-registration-wizard button[type="submit"].apcrm-wizard-submit-ready,
.apcrm-registration-wizard input[type="submit"].apcrm-wizard-submit-ready {
  display: inline-flex;
}

.apcrm-wizard-navigation {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 22px 0 10px;
}

.apcrm-wizard-navigation button {
  min-height: 46px;
  padding: 10px 22px;
  border-radius: 10px;
  font-weight: 700;
  cursor: pointer;
}

.apcrm-wizard-back {
  border: 1px solid var(--apcrm-wizard-border);
  background: #fff;
  color: var(--apcrm-wizard-accent);
}

.apcrm-wizard-next {
  margin-left: auto;
  border: 1px solid var(--apcrm-wizard-accent);
  background: var(--apcrm-wizard-accent);
  color: #fff;
}

.apcrm-wizard-navigation button:disabled {
  opacity: .45;
  cursor: not-allowed;
}

.apcrm-wizard-navigation.is-final-step {
  justify-content: flex-start;
}

@keyframes apcrmWizardReveal {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 640px) {
  .apcrm-registration-wizard .apcrm-wizard-progress {
    position: static;
    padding: 14px;
  }

  .apcrm-wizard-progress-copy {
    display: block;
  }

  .apcrm-wizard-progress-copy span {
    display: block;
    margin-top: 3px;
    text-align: left;
  }

  .apcrm-registration-wizard .apcrm-wizard-section {
    padding: 18px 15px;
    border-radius: 14px;
  }

  .apcrm-registration-wizard button[type="submit"],
.apcrm-registration-wizard input[type="submit"] {
  display: none;
}

.apcrm-registration-wizard button[type="submit"].apcrm-wizard-submit-ready,
.apcrm-registration-wizard input[type="submit"].apcrm-wizard-submit-ready {
  display: inline-flex;
}

.apcrm-wizard-navigation {
    position: sticky;
    bottom: 0;
    z-index: 9;
    padding: 12px 0 max(12px, env(safe-area-inset-bottom));
    background: rgba(255,255,255,.97);
  }

  .apcrm-wizard-navigation button {
    flex: 1 1 0;
    padding-inline: 12px;
  }
}

/* Beta 14.2 encrypted server-side registration draft controls */
.apcrm-wizard-save-state{margin-top:10px;font-size:13px;color:#475569;min-height:20px}
.apcrm-wizard-save-state.is-saving{color:#92400e}
.apcrm-wizard-save-state.is-saved{color:#166534}
.apcrm-wizard-save-state.is-restored{padding:9px 12px;border:1px solid #86efac;border-radius:10px;background:#f0fdf4;color:#166534}
.apcrm-wizard-save-state.is-error{color:#b91c1c}
.apcrm-wizard-clear-draft{margin-left:8px;padding:0;border:0;background:transparent;color:inherit;text-decoration:underline;cursor:pointer;font:inherit}
.apcrm-wizard-finish-later{margin-right:auto}
@media(max-width:640px){.apcrm-wizard-navigation{display:grid;grid-template-columns:1fr 1fr;gap:10px}.apcrm-wizard-finish-later{grid-column:1/-1;order:3;margin:0}.apcrm-wizard-next{order:2}.apcrm-wizard-back{order:1}}

/* Beta 14.20: existing candidate Platinum upgrade checkout */
.apcrm-platinum-upgrade-checkout .apcrm-registration-wizard,
.apcrm-platinum-upgrade-form {
  max-width: 760px;
  margin-inline: auto;
}
.apcrm-upgrade-checkout-banner {
  max-width: 760px;
  margin: 0 auto 22px;
  padding: clamp(20px, 4vw, 32px);
  border: 1px solid #d8e2e8;
  border-radius: 20px;
  background: linear-gradient(135deg, #073b4c, #0f766e);
  color: #fff;
  box-shadow: 0 16px 38px rgba(7,59,76,.18);
}
.apcrm-upgrade-checkout-banner h1,
.apcrm-upgrade-checkout-banner p { color: #fff; }
.apcrm-upgrade-checkout-banner h1 { margin: 6px 0 10px; font-size: clamp(1.65rem, 4vw, 2.35rem); }
.apcrm-upgrade-checkout-banner p { margin: 0; max-width: 660px; line-height: 1.65; }
.apcrm-upgrade-eyebrow { margin: 16px 0 0 !important; font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; opacity: .82; }
.apcrm-upgrade-back { display: inline-flex; color: #fff !important; font-weight: 700; text-decoration: none; }
.apcrm-upgrade-back:hover { text-decoration: underline; }
.apcrm-platinum-upgrade-form .apcrm-wizard-progress,
.apcrm-platinum-upgrade-form .apcrm-wizard-navigation { display: none !important; }
.apcrm-platinum-upgrade-form .pmpro_card,
.apcrm-platinum-upgrade-form fieldset,
.apcrm-platinum-upgrade-form .pmpro_checkout {
  margin-bottom: 18px;
  border-radius: 16px;
}
.apcrm-platinum-upgrade-form .apcrm-upgrade-hidden-section { display: none !important; }
.apcrm-platinum-upgrade-form button[type="submit"],
.apcrm-platinum-upgrade-form input[type="submit"],
.apcrm-platinum-upgrade-form .apcrm-upgrade-submit {
  display: inline-flex !important;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  padding: 12px 24px;
  border: 0;
  border-radius: 10px;
  background: #0f766e !important;
  color: #fff !important;
  font-weight: 800;
  cursor: pointer;
}
.apcrm-platinum-upgrade-form button[type="submit"] *,
.apcrm-platinum-upgrade-form input[type="submit"] * { color: #fff !important; }
.apcrm-platinum-upgrade-form .pmpro_form_fieldset-account,
.apcrm-platinum-upgrade-form [id*="account-information" i] {
  font-size: .92rem;
}
@media (max-width: 640px) {
  .apcrm-upgrade-checkout-banner { border-radius: 14px; padding: 20px 16px; }
  .apcrm-platinum-upgrade-form button[type="submit"],
  .apcrm-platinum-upgrade-form input[type="submit"] { width: 100%; }
}
