.membership-application-wizard .membership-application-progress {
  display: flex;
  gap: .5rem;
  margin: 0 0 2rem;
}

.membership-application-wizard .membership-application-progress-item {
  position: relative;
  display: flex;
  flex: 1;
  align-items: center;
  gap: .5rem;
  min-height: 2.5rem;
  padding: .25rem .5rem .75rem;
  border-bottom: 2px solid #e4e5ef;
  color: #62688f;
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.25;
}

.membership-application-wizard .membership-application-progress-item > p {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin: 0;
}

.membership-application-wizard .membership-application-progress-item.active {
  border-bottom-color: #202566;
  color: #202566;
}

.membership-application-wizard .membership-application-progress-item.complete {
  border-bottom-color: #aeb6d4;
  color: #4a4f7d;
}

.membership-application-wizard .membership-application-progress-number {
  display: inline-flex;
  flex: 0 0 2rem;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: #eef0f8;
  color: #202566;
  font-size: .85rem;
  font-weight: 800;
}

.membership-application-wizard .membership-application-progress-item.active .membership-application-progress-number {
  background: #202566;
  color: #fff;
}

.membership-application-wizard .membership-application-progress-item.complete .membership-application-progress-number {
  background: #dce1f1;
  color: #202566;
}

.membership-application-wizard .membership-application-step-heading {
  margin: 0 0 1.5rem;
  color: #202566;
  font-size: clamp(1.9rem, 3vw, 2.75rem);
  line-height: 1.1;
}

.membership-application-wizard .membership-application-step-help,
.membership-application-wizard .membership-application-note {
  color: #62688f;
}

.membership-application-wizard .membership-application-required {
  color: #b42318;
  font-weight: 700;
}

.membership-application-wizard .membership-application-step[hidden] {
  display: none;
}

.membership-application-wizard .membership-application-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.membership-application-wizard .membership-application-field {
  min-width: 0;
}

.membership-application-wizard .membership-application-field--full {
  grid-column: 1 / -1;
}

.membership-application-wizard .membership-application-field input,
.membership-application-wizard .membership-application-field textarea {
  width: 100%;
  box-sizing: border-box;
}

.membership-application-wizard .membership-application-field textarea {
  min-height: 15rem;
}

.membership-application-wizard .membership-application-consent {
  margin: 0;
  color: #62688f;
}

.membership-application-wizard .membership-application-consent .wpcf7-list-item {
  margin: 0;
}

.membership-application-wizard .membership-application-consent label {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  cursor: pointer;
}

.membership-application-wizard .membership-application-consent input[type="checkbox"] {
  display: grid;
  flex: 0 0 1.25rem;
  place-content: center;
  width: 1.25rem;
  height: 1.25rem;
  margin: .1rem 0 0;
  padding: 0;
  border: 2px solid #202566;
  border-radius: .3rem;
  -webkit-appearance: none;
  appearance: none;
  background: #fff;
}

.membership-application-wizard .membership-application-consent input[type="checkbox"]::before {
  width: .35rem;
  height: .65rem;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  content: "";
  transform: rotate(45deg) scale(0);
  transition: transform .15s ease-in-out;
}

.membership-application-wizard .membership-application-consent input[type="checkbox"]:checked {
  background: #202566;
}

.membership-application-wizard .membership-application-consent input[type="checkbox"]:checked::before {
  transform: rotate(45deg) scale(1);
}

.membership-application-wizard .membership-application-consent input[type="checkbox"]:focus-visible {
  outline: 3px solid rgba(32, 37, 102, .25);
  outline-offset: 2px;
}

form.wpcf7-form:has(.membership-application-wizard) .wpcf7-response-output {
  margin: 1rem 0 0;
  padding: .75rem 1rem;
  border: 0;
  border-radius: .75rem;
}

form.wpcf7-form:has(.membership-application-wizard).unaccepted .wpcf7-response-output,
form.wpcf7-form:has(.membership-application-wizard).invalid .wpcf7-response-output,
form.wpcf7-form:has(.membership-application-wizard).failed .wpcf7-response-output,
form.wpcf7-form:has(.membership-application-wizard).spam .wpcf7-response-output,
form.wpcf7-form:has(.membership-application-wizard).aborted .wpcf7-response-output {
  color: #b42318;
  background: #fef3f2;
}

form.wpcf7-form:has(.membership-application-wizard).sent .wpcf7-response-output {
  color: #236b4a;
  background: #eaf6ef;
}

.membership-application-wizard .membership-application-actions {
  margin-top: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

@media (min-width: 641px) {
  .membership-application-wizard .membership-application-step {
    display: flex;
    min-height: 33rem;
    flex-direction: column;
  }

  .membership-application-wizard .membership-application-step > .membership-application-actions {
    margin-top: auto;
  }
}

.membership-application-wizard .membership-application-actions > p {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin: 0;
}

.membership-application-wizard .membership-application-actions > p > br {
  display: none;
}

.membership-application-wizard .membership-application-actions > p:has(> .membership-application-back) {
  flex: 1;
  justify-content: space-between;
}

.membership-application-wizard .membership-application-actions-left {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.membership-application-wizard button,
.membership-application-wizard input[type="submit"] {
  min-height: 2.75rem;
  padding: .7rem 1.25rem;
  border: 0;
  border-radius: 999px;
  background: #202566;
  box-shadow: none;
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-size: .9rem;
  font-weight: 700;
  line-height: 1;
  transition: background-color .2s ease, transform .2s ease;
}

.membership-application-wizard button:hover,
.membership-application-wizard button:focus-visible,
.membership-application-wizard input[type="submit"]:hover,
.membership-application-wizard input[type="submit"]:focus-visible {
  background: #303a82;
  color: #fff;
  transform: translateY(-1px);
}

.membership-application-wizard .membership-application-back {
  background: #eef0f8;
  color: #202566;
}

.membership-application-wizard .membership-application-back:hover,
.membership-application-wizard .membership-application-back:focus-visible {
  background: #dce1f1;
  color: #202566;
}

@media (max-width: 640px) {
  .membership-application-wizard .membership-application-progress-item {
    flex: 0 1 auto;
  }

  .membership-application-wizard .membership-application-progress-item > span:not(.membership-application-progress-number),
  .membership-application-wizard .membership-application-progress-item > p > span:not(.membership-application-progress-number) {
    display: none;
  }

  .membership-application-wizard .membership-application-progress-item {
    min-width: 0;
    justify-content: center;
  }

  .membership-application-wizard .membership-application-grid {
    grid-template-columns: 1fr;
  }

  .membership-application-wizard .membership-application-field--full {
    grid-column: auto;
  }

  .membership-application-wizard .membership-application-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .membership-application-wizard .membership-application-actions-left {
    justify-content: space-between;
  }
}
