.entry-wizard {
  --wizard-purple: #651473;
  --wizard-purple-dark: #42104c;
  --wizard-gold: #c7a847;
  --wizard-border: #decce3;
  --wizard-soft: #f8f2fa;
  color: #211827;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  max-width: 1040px;
  width: 100%;
}

.entry-wizard,
.entry-wizard *,
.entry-wizard *::before,
.entry-wizard *::after { box-sizing: border-box; }

body:has(> .entry-wizard) {
  background: #f7f3f8;
  margin: 0;
  padding: clamp(14px, 3vw, 36px);
}
body:has(> .entry-wizard) > .entry-wizard { margin: 0 auto; }

.entry-wizard h1 { color: var(--wizard-purple-dark); font-size: 2.1rem; line-height: 1.18; margin: 0 0 16px; }
.entry-wizard .lead { color: #4d4053; font-size: 1.18rem; line-height: 1.5; margin: 0; }
.entry-wizard p { margin: 0 0 10px; }
.entry-wizard label { display: inline-block; }
.entry-wizard .form-label { font-weight: 600; margin-bottom: 8px; }
.entry-wizard .form-control,
.entry-wizard .form-select {
  appearance: none;
  background: #fff;
  border: 1px solid var(--wizard-border);
  color: #211827;
  display: block;
  font: inherit;
  line-height: 1.5;
  min-height: 38px;
  padding: 6px 12px;
  width: 100%;
}
.entry-wizard .form-check-input { accent-color: var(--wizard-purple); }
.entry-wizard .btn {
  align-items: center;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 6px;
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-weight: 500;
  gap: 6px;
  justify-content: center;
  line-height: 1.5;
  min-height: 38px;
  padding: 6px 12px;
  text-align: center;
  text-decoration: none;
}
.entry-wizard .btn-primary { background: var(--wizard-purple); border-color: var(--wizard-purple); color: #fff; }
.entry-wizard .btn-primary:hover,
.entry-wizard .btn-primary:focus { background: var(--wizard-purple-dark); border-color: var(--wizard-purple-dark); color: #fff; }
.entry-wizard .btn-outline-primary { border-color: var(--wizard-purple); color: var(--wizard-purple); }
.entry-wizard .btn-outline-primary:hover,
.entry-wizard .btn-outline-primary:focus { background: var(--wizard-purple); color: #fff; }
.entry-wizard .btn:focus-visible { box-shadow: 0 0 0 .2rem rgba(101, 20, 115, .18); outline: none; }
.entry-wizard .btn:disabled { cursor: not-allowed; opacity: .65; }

.entry-wizard [hidden] { display: none !important; }

.entry-wizard__hero {
  align-items: center;
  border-left: 6px solid var(--wizard-gold);
  display: flex;
  gap: 24px;
  justify-content: space-between;
  padding: 18px 22px;
}

.entry-wizard__eyebrow {
  color: var(--wizard-purple);
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .07em;
  margin: 0 0 5px;
  text-transform: uppercase;
}

.entry-wizard__event-meta {
  color: #5d4e64;
  display: grid;
  flex: 0 0 auto;
  font-size: .9rem;
  gap: 5px;
  min-width: 210px;
}

.entry-wizard__event-meta span { display: flex; gap: 8px; }
.entry-wizard__event-meta i { color: var(--wizard-purple); width: 18px; }

.entry-wizard__intro {
  background: #fff;
  border: 1px solid var(--wizard-border);
  border-radius: 10px;
  box-shadow: 0 2px 8px rgba(66, 16, 76, .06);
  color: #35283a;
  margin-top: 18px;
  padding: 22px 24px;
}

.entry-wizard__intro > :first-child { margin-top: 0; }
.entry-wizard__intro > :last-child { margin-bottom: 0; }
.entry-wizard__intro h2,
.entry-wizard__intro h3 { color: var(--wizard-purple-dark); }
.entry-wizard__intro h2 { font-size: 1.45rem; }
.entry-wizard__intro h3 { font-size: 1.15rem; }
.entry-wizard__intro li + li { margin-top: 5px; }
.entry-wizard__intro .entry-disclaimer {
  border-top: 1px solid var(--wizard-border);
  color: #5d4e64;
  font-size: .9rem;
  margin-top: 20px;
  padding-top: 14px;
}

.entry-wizard__intro.entry-wizard__panel {
  border: 0;
  border-radius: 0;
  box-shadow: none;
  margin-top: 0;
  padding: 28px 30px;
}

.entry-wizard__shell {
  background: #fff;
  border: 1px solid var(--wizard-border);
  border-radius: 10px;
  box-shadow: 0 2px 8px rgba(66, 16, 76, .08);
  margin-top: 18px;
  overflow: hidden;
}

.entry-wizard__steps {
  background: #fbf9fc;
  border-bottom: 1px solid var(--wizard-border);
  display: grid;
  grid-template-columns: repeat(var(--step-count), minmax(0, 1fr));
}

.entry-wizard__step {
  align-items: center;
  color: #75647c;
  display: flex;
  font-size: .82rem;
  font-weight: 700;
  gap: 8px;
  justify-content: center;
  padding: 13px 8px;
}

.entry-wizard__step b {
  align-items: center;
  background: #eadfee;
  border-radius: 50%;
  display: inline-flex;
  height: 24px;
  justify-content: center;
  width: 24px;
}

.entry-wizard__step.is-active { color: var(--wizard-purple-dark); }
.entry-wizard__step.is-active b { background: var(--wizard-purple); color: #fff; }
.entry-wizard__step.is-complete b { background: #198754; color: #fff; }

.entry-wizard__panel { padding: 24px; }
.entry-wizard__panel-heading { align-items: flex-start; display: flex; gap: 12px; margin-bottom: 20px; }
.entry-wizard__panel-heading h2 { color: var(--wizard-purple-dark); font-size: 1.35rem; margin: 0 0 3px; }
.entry-wizard__panel-heading p { color: #67576f; margin: 0; }

.entry-wizard__step-number {
  align-items: center;
  background: var(--wizard-purple);
  border-radius: 50%;
  color: #fff;
  display: inline-flex;
  flex: 0 0 auto;
  font-weight: 800;
  height: 34px;
  justify-content: center;
  width: 34px;
}

.entry-wizard .form-control,
.entry-wizard .form-select { border-color: var(--wizard-border); border-radius: 7px; }
.entry-wizard .form-control:focus,
.entry-wizard .form-select:focus { border-color: var(--wizard-purple); box-shadow: 0 0 0 .2rem rgba(101, 20, 115, .14); }
.entry-wizard__member-picker { position: relative; }
.entry-wizard__member-picker > i { color: #76647d; left: 13px; pointer-events: none; position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; }
.entry-wizard__member-picker .form-control { padding-left: 38px; }
.entry-wizard__member-results {
  background: #fff;
  border: 1px solid var(--wizard-border);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(48, 20, 55, .16);
  left: 0;
  margin-top: 4px;
  max-height: min(320px, 45vh);
  overflow-y: auto;
  position: absolute;
  right: 0;
  z-index: 20;
  -webkit-overflow-scrolling: touch;
}
.entry-wizard__member-results[hidden] { display: none; }
.entry-wizard__member-results button {
  background: #fff;
  border: 0;
  border-bottom: 1px solid #eee4f1;
  color: var(--wizard-purple-dark);
  display: block;
  font-size: 1rem;
  min-height: 46px;
  padding: 11px 14px;
  text-align: left;
  width: 100%;
}
.entry-wizard__member-results button:last-child { border-bottom: 0; }
.entry-wizard__member-results button:hover,
.entry-wizard__member-results button:focus { background: var(--wizard-soft); outline: none; }
.entry-wizard__member-results-empty { color: #67576f; display: block; padding: 12px 14px; }

.entry-wizard__choice-list { display: grid; gap: 12px; }
.entry-wizard__choice {
  align-items: center;
  background: #fff;
  border: 1px solid var(--wizard-border);
  border-radius: 9px;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  padding: 16px;
}
.entry-wizard__choice--required { background: var(--wizard-soft); border-left: 4px solid var(--wizard-purple); }
.entry-wizard__choice span { color: #67576f; display: block; }
.entry-wizard__choice strong { color: var(--wizard-purple-dark); }
.entry-wizard__choice .form-check {
  align-items: center;
  display: grid;
  gap: 10px;
  grid-template-columns: 18px minmax(0, 1fr);
  margin: 0;
  min-height: 28px;
}
.entry-wizard__choice .form-check-input {
  align-self: center;
  height: 16px;
  margin: 0;
  position: static;
  width: 16px;
}
.entry-wizard__choice .form-check > span > strong { font-size: 1.08rem; line-height: 1.2; }
.entry-wizard__entry-option { cursor: pointer; margin-bottom: 10px; }
.entry-wizard__entry-option:has(input:checked) { background: var(--wizard-soft); border-color: var(--wizard-purple); color: var(--wizard-purple-dark); }
.entry-wizard__entry-option small { color: #67576f; display: block; font-size: .82rem; font-weight: 400; margin-top: 3px; }

.entry-wizard__partner-types { display: grid; gap: 10px; grid-template-columns: repeat(3, 1fr); }
.entry-wizard__partner-types label {
  border: 1px solid var(--wizard-border);
  border-radius: 8px;
  cursor: pointer;
  font-weight: 700;
  padding: 13px;
}
.entry-wizard__partner-types label:has(input:checked) { background: var(--wizard-soft); border-color: var(--wizard-purple); color: var(--wizard-purple-dark); }
.entry-wizard__partner-panel { border-top: 1px solid #eee4f1; margin-top: 18px; padding-top: 18px; }
.entry-wizard__guest-grid { display: grid; gap: 14px; grid-template-columns: 1fr 1fr; }
.entry-wizard__guest-note { color: #67576f; grid-column: 1 / -1; margin: 0; }
.entry-wizard__guest-ghin-status { grid-column: 1 / -1; margin: 0; padding: 0; }
.entry-wizard__guest-ghin-status:empty { display: none; }
.entry-wizard__partner-status { border-radius: 7px; margin: 10px 0 0; padding: 9px 11px; }
.entry-wizard__partner-status.is-signed { background: #e9f6ee; color: #146c43; }
.entry-wizard__partner-status.is-waiting { background: #fff7df; color: #725814; }
.entry-wizard__choice--disabled { background: #f5f3f6; color: #756b79; cursor: not-allowed; opacity: .72; }

.entry-wizard__review { border: 1px solid var(--wizard-border); border-radius: 8px; margin: 0; overflow: hidden; }
.entry-wizard__review div { display: grid; gap: 12px; grid-template-columns: 180px 1fr; padding: 11px 14px; }
.entry-wizard__review div:nth-child(even) { background: #fbf8fc; }
.entry-wizard__review dt { color: #67576f; font-weight: 600; }
.entry-wizard__review dd { font-weight: 700; margin: 0; }
.entry-wizard__total,
.entry-wizard__payment-total { align-items: center; display: flex; justify-content: space-between; margin-top: 16px; }
.entry-wizard__total strong,
.entry-wizard__payment-total strong { color: var(--wizard-purple); font-size: 1.8rem; }
.entry-wizard__payment-total span { text-align: left; }
.entry-wizard__payment-total small { color: #67576f; display: block; font-size: .78rem; margin-top: 3px; }
.entry-wizard__payment-items { max-width: 440px; margin: -8px auto 18px; }
.entry-wizard__payment-items div { display: flex; justify-content: space-between; gap: 18px; padding: 7px 0; border-bottom: 1px dashed var(--wizard-border); }
.entry-wizard__payment-items dt { font-weight: 600; }
.entry-wizard__payment-items dd { margin: 0; font-weight: 700; }
.entry-wizard__agreement { align-items: flex-start; display: flex; gap: 10px; margin-top: 18px; }

.entry-wizard__actions { border-top: 1px solid var(--wizard-border); display: flex; justify-content: space-between; padding: 16px 24px; }
.entry-wizard__actions [data-wizard-next] { margin-left: auto; }
.entry-wizard__payment { text-align: center; }
.entry-wizard__payment .entry-wizard__panel-heading { justify-content: center; text-align: left; }
.entry-wizard__payment-total { border-bottom: 1px solid var(--wizard-border); border-top: 1px solid var(--wizard-border); margin: 18px auto; max-width: 440px; padding: 14px 0; }
.entry-wizard__payment-nav { display: flex; justify-content: flex-start; margin: 0 auto 16px; max-width: 760px; }
.entry-wizard__sandbox-card { max-width: 760px; margin: 0 auto 18px; padding: 14px; border: 1px solid var(--wizard-border); border-radius: 10px; background: #fff; color: var(--wizard-purple-dark); box-shadow: 0 4px 14px rgba(55, 16, 65, .06); text-align: left; }
.entry-wizard__sandbox-heading { align-items: center; background: var(--wizard-soft); border-bottom: 1px solid var(--wizard-border); border-radius: 9px 9px 0 0; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; margin: -14px -14px 14px; padding: 12px 14px; }
.entry-wizard__sandbox-heading span { color: #67576f; font-size: .9rem; }
.entry-wizard__sandbox-fields { margin: 14px 0 0; }
.entry-wizard__sandbox-fields .form-control { background: #faf8fb; color: #242029; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-weight: 700; }
.entry-wizard__fine-print { color: #67576f; font-size: .85rem; margin: 12px 0 0; }
.entry-wizard__card-brands { align-items: center; display: flex; flex-wrap: wrap; gap: 18px; justify-content: center; margin-top: 16px; }
.entry-wizard__card-brands img { height: 30px; object-fit: contain; width: auto; }
.entry-wizard__card-fields {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 18px auto;
  max-width: 760px;
  text-align: left;
}
.entry-wizard__card-field--wide { grid-column: 1 / -1; }
.entry-wizard__card-field label {
  color: var(--wizard-purple-dark);
  display: block;
  font-size: .9rem;
  font-weight: 700;
  margin-bottom: 6px;
}
.entry-wizard__clover-element {
  background: #fff;
  border: 1px solid var(--wizard-border);
  border-radius: 7px;
  height: 48px;
  padding: 12px;
}
.entry-wizard__clover-element:focus-within {
  border-color: var(--wizard-purple);
  box-shadow: 0 0 0 .2rem rgba(101, 20, 115, .14);
}
.entry-wizard__card-error {
  color: #a21b1b;
  font-size: .9rem;
  margin: 0 auto 14px;
  max-width: 760px;
  min-height: 1.35em;
  text-align: left;
}
.entry-wizard__billing { display: grid; gap: 14px; grid-template-columns: 1fr 1fr; margin: 18px auto; max-width: 760px; text-align: left; }
.entry-wizard__billing-wide { grid-column: 1 / -1; }
.entry-wizard__payment-frame-shell {
  background: #fbf8fc;
  border: 1px solid var(--wizard-border);
  border-radius: 10px;
  margin: 18px auto 14px;
  max-width: 760px;
  min-height: 540px;
  overflow: hidden;
}
.entry-wizard__payment-loading {
  align-items: center;
  color: var(--wizard-purple-dark);
  display: flex;
  flex-direction: column;
  gap: 12px;
  justify-content: center;
  min-height: 540px;
}
.entry-wizard__payment-frame { background: #fff; border: 0; display: block; min-height: 640px; width: 100%; }

.entry-wizard__notice {
  align-items: flex-start;
  background: #fff;
  border: 1px solid;
  border-radius: 10px;
  display: flex;
  gap: 14px;
  margin-top: 18px;
  padding: 20px;
}
.entry-wizard__notice > i { font-size: 1.8rem; }
.entry-wizard__notice h2 { font-size: 1.25rem; margin: 0 0 5px; }
.entry-wizard__notice p { margin: 0 0 12px; }
.entry-wizard__notice--error { background: #fff6f6; border-color: #e3abab; color: #7b1717; }
.entry-wizard__notice--success {
  align-items: center;
  background: linear-gradient(135deg, #f5fcf7 0%, #edf8f1 100%);
  border-color: #9ad0af;
  box-shadow: 0 10px 28px rgba(18, 92, 57, .09);
  gap: 20px;
  padding: 26px 28px;
}
.entry-wizard__success-icon {
  align-items: center;
  background: #198754;
  border: 6px solid #dff3e7;
  border-radius: 50%;
  box-shadow: 0 5px 14px rgba(25, 135, 84, .2);
  color: #fff;
  display: flex;
  flex: 0 0 auto;
  font-size: 1.8rem;
  height: 68px;
  justify-content: center;
  width: 68px;
}
.entry-wizard__success-content { color: #254535; }
.entry-wizard__notice--success .entry-wizard__success-eyebrow {
  color: #198754;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .08em;
  margin: 0 0 4px;
  text-transform: uppercase;
}
.entry-wizard__notice--success h2 {
  color: var(--wizard-purple-dark);
  font-size: 1.55rem;
  margin-bottom: 6px;
}
.entry-wizard__notice--success [data-wizard-confirmation-text] {
  font-size: 1.02rem;
  margin-bottom: 16px;
}
.entry-wizard__receipt {
  background: #fff;
  border: 1px solid #c9dfd1;
  border-radius: 10px;
  color: #24142a;
  margin: 4px 0 18px;
  max-width: 560px;
  overflow: hidden;
  width: min(560px, 100%);
}
.entry-wizard__receipt-heading {
  align-items: center;
  background: #f6fbf8;
  border-bottom: 1px solid #dcebe2;
  display: flex;
  justify-content: space-between;
  padding: 13px 16px;
}
.entry-wizard__receipt-heading h3 { color: var(--wizard-purple-dark); font-size: 1rem; margin: 0; }
.entry-wizard__receipt-heading span { color: #198754; font-size: .86rem; font-weight: 700; }
.entry-wizard__receipt-lines,
.entry-wizard__receipt-payments { margin: 0; padding: 10px 16px; }
.entry-wizard__receipt-lines > div,
.entry-wizard__receipt-payments > div,
.entry-wizard__receipt-total { align-items: center; display: flex; gap: 20px; justify-content: space-between; }
.entry-wizard__receipt-lines > div { padding: 5px 0; }
.entry-wizard__receipt dt,
.entry-wizard__receipt dd { font-weight: 500; margin: 0; }
.entry-wizard__receipt dd { font-variant-numeric: tabular-nums; text-align: right; }
.entry-wizard__receipt-total { border-top: 1px solid #dcebe2; font-size: 1.06rem; padding: 12px 16px; }
.entry-wizard__receipt-total strong { color: var(--wizard-purple-dark); }
.entry-wizard__receipt-payments { background: #faf8fb; border-top: 1px solid #eadfed; font-size: .9rem; }
.entry-wizard__receipt-payments > div { padding: 3px 0; }
.entry-wizard__receipt-credit dd { color: #198754; }
.entry-wizard__success-action {
  align-items: center;
  display: inline-flex;
  gap: 8px;
}
.entry-wizard__notice--closed {
  background: #fff9e8;
  border-color: #d8bd64;
  color: #59430b;
}
.entry-wizard__notice--late { background: #f4ecf7; border-color: #b88ac1; color: #42104c; }
.entry-wizard__notice--late > i { color: #681172; }
.entry-wizard__notice--late h2 { color: #681172; }
.entry-wizard__shell.is-read-only .entry-wizard__intro .entry-disclaimer { display: none; }
.entry-wizard__credit-choice { align-items: center; background: #f2fbf6; border: 1px solid #9bd1b1; border-radius: 10px; cursor: pointer; display: flex; gap: 12px; margin-top: 18px; padding: 14px 16px; }
.entry-wizard__credit-choice[hidden] { display: none; }
.entry-wizard__credit-choice span { display: grid; flex: 1; }
.entry-wizard__credit-choice small { color: #426450; font-weight: 400; }
.entry-wizard__credit-choice > i { color: #198754; font-size: 1.45rem; }

@media (max-width: 720px) {
  .entry-wizard__hero { align-items: flex-start; flex-direction: column; }
  .entry-wizard__event-meta { min-width: 0; }
  .entry-wizard__step span { display: none; }
  .entry-wizard__partner-types { grid-template-columns: 1fr; }
  .entry-wizard__guest-grid { grid-template-columns: 1fr; }
  .entry-wizard__review div { grid-template-columns: 1fr; gap: 2px; }
  .entry-wizard__billing { grid-template-columns: 1fr; }
  .entry-wizard__billing-wide { grid-column: auto; }
  .entry-wizard__card-fields { grid-template-columns: 1fr; }
  .entry-wizard__card-field--wide { grid-column: auto; }
  .entry-wizard__panel { padding: 18px; }
  .entry-wizard__payment-frame-shell,
  .entry-wizard__payment-loading { min-height: 620px; }
  .entry-wizard__payment-frame { min-height: 700px; }
  .entry-wizard__notice--success { align-items: flex-start; padding: 22px 20px; }
  .entry-wizard__success-icon { border-width: 5px; font-size: 1.4rem; height: 54px; width: 54px; }
}
