.b2vsm-form{max-width:980px;margin:0 auto;font-family:inherit}.b2vsm-card{background:#fff;border:1px solid #ddd;border-radius:10px;padding:28px;margin:18px 0;box-shadow:0 1px 4px rgba(0,0,0,.05)}.b2vsm-card h3{margin-top:0}.b2vsm-rows{display:grid;gap:22px}.b2vsm-row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:22px 24px;align-items:start}.b2vsm-column{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px;min-width:0}.b2vsm-column-span-1{grid-column:span 1}.b2vsm-column-span-2{grid-column:span 2}.b2vsm-column-span-3{grid-column:span 3}.b2vsm-column-span-4{grid-column:span 4}.b2vsm-column-span-5{grid-column:span 5}.b2vsm-column-span-6{grid-column:span 6}.b2vsm-column-span-7{grid-column:span 7}.b2vsm-column-span-8{grid-column:span 8}.b2vsm-column-span-9{grid-column:span 9}.b2vsm-column-span-10{grid-column:span 10}.b2vsm-column-span-11{grid-column:span 11}.b2vsm-column-span-12{grid-column:span 12}.b2vsm-field{margin:0;padding-bottom:6px;min-width:0;grid-column:span 12}.b2vsm-field-span-1{grid-column:span 1!important}.b2vsm-field-span-2{grid-column:span 2!important}.b2vsm-field-span-3{grid-column:span 3!important}.b2vsm-field-span-4{grid-column:span 4!important}.b2vsm-field-span-5{grid-column:span 5!important}.b2vsm-field-span-6{grid-column:span 6!important}.b2vsm-field-span-7{grid-column:span 7!important}.b2vsm-field-span-8{grid-column:span 8!important}.b2vsm-field-span-9{grid-column:span 9!important}.b2vsm-field-span-10{grid-column:span 10!important}.b2vsm-field-span-11{grid-column:span 11!important}.b2vsm-field-span-12{grid-column:span 12!important}.b2vsm-align-h-left{text-align:left}.b2vsm-align-h-center{text-align:center}.b2vsm-align-h-right{text-align:right}.b2vsm-align-v-top{align-self:start}.b2vsm-align-v-middle{align-self:center}.b2vsm-align-v-bottom{align-self:end}.b2vsm-field label{display:block;font-weight:600}.b2vsm-field input[type=text],.b2vsm-field input[type=tel],.b2vsm-field input[type=email],.b2vsm-field input[type=url],.b2vsm-field input[type=number],.b2vsm-field input[type=date],.b2vsm-field input[type=time],.b2vsm-field textarea,.b2vsm-field select{width:100%;max-width:100%;padding:10px;border:1px solid #bbb;border-radius:6px}.b2vsm-field textarea{min-height:100px}.b2vsm-field fieldset{border:0;padding:0;margin:0}.b2vsm-field legend{font-weight:700;margin-bottom:8px}.b2vsm-field fieldset label{font-weight:400;margin:6px 0}.b2vsm-help{font-size:.92em;color:#555;margin:.35rem 0}.b2vsm-info{background:#f7f7f7;border-left:4px solid #777;padding:12px;border-radius:5px}.b2vsm-disabled{opacity:.55}.b2vsm-submit,.b2vsm-payment-link{background:#111;color:#fff;border:0;border-radius:6px;padding:11px 18px;cursor:pointer;text-decoration:none;display:inline-block}.b2vsm-submit:disabled{opacity:.65;cursor:wait}.b2vsm-response{margin-top:14px;font-weight:700;min-height:24px}.b2vsm-summary{font-size:1.2em}.b2vsm-print-link{margin-left:10px}.b2vsm-field[data-show-field]{display:none}.b2vsm-wizard-nav{background:#fff;border:1px solid #ddd;border-radius:10px;padding:14px 16px;margin:16px 0}.b2vsm-wizard-progress-label{font-weight:700;margin-bottom:8px}.b2vsm-wizard-progress-bar{height:12px;background:#eee;border-radius:999px;overflow:hidden}.b2vsm-wizard-progress-bar span{display:block;height:100%;width:0;background:#111;transition:width .2s ease}.b2vsm-wizard-controls{display:flex;justify-content:space-between;gap:12px;margin:18px 0}.b2vsm-wizard-controls button{background:#111;color:#fff;border:0;border-radius:6px;padding:11px 18px;cursor:pointer}.b2vsm-wizard-back{background:#555!important}.b2vsm-error{border:2px solid #b32d2e;border-radius:8px;padding:10px;background:#fff5f5}.b2vsm-error-message{color:#b32d2e;font-weight:700;font-size:.9em;margin-top:6px}.b2vsm-section-heading h4{margin:.25rem 0;font-size:1.1em}.b2vsm-divider{border:0;border-top:1px solid #ddd;margin:8px 0}@media(max-width:800px){.b2vsm-row{grid-template-columns:1fr}.b2vsm-column,.b2vsm-column[class*="b2vsm-column-span-"],.b2vsm-field[class*="b2vsm-field-span-"]{grid-column:1/-1!important}}
/* v8.6 text formatting */
.b2vsm-bold label,
.b2vsm-bold legend,
.b2vsm-bold .b2vsm-info{font-weight:700}
.b2vsm-italic label,
.b2vsm-italic legend,
.b2vsm-italic .b2vsm-info{font-style:italic}
.b2vsm-underline label,
.b2vsm-underline legend,
.b2vsm-underline .b2vsm-info{text-decoration:underline}
.b2vsm-font-small{font-size:.9em}
.b2vsm-font-normal{font-size:1em}
.b2vsm-font-large{font-size:1.15em}
.b2vsm-font-xl{font-size:1.35em}

/* v8.7 spacing fixes for formatted labels */
.b2vsm-field label,
.b2vsm-field legend{
  line-height:1.35;
  margin-bottom:8px;
}
.b2vsm-field input,
.b2vsm-field select,
.b2vsm-field textarea{
  margin-top:8px;
}
.b2vsm-font-large label,
.b2vsm-font-large legend,
.b2vsm-font-xl label,
.b2vsm-font-xl legend{
  margin-bottom:12px;
}

/* v8.8 conditional step spacing safeguards */
.b2vsm-card[style*="display: none"] .b2vsm-field{
  display:none;
}

/* v8.9 spacer cells */
.b2vsm-field-spacer{
  min-height:54px;
}
.b2vsm-field-spacer .b2vsm-spacer{
  min-height:54px;
}

/* Universal Form Builder v1.0 */

/* v2.0.1 Phase 1 usability fixes */
.b2vsm-wizard-controls{align-items:center;flex-wrap:wrap}
.b2vsm-wizard-buttons{display:flex;gap:12px;margin-left:auto}
.b2vsm-running-total{background:#fff;border:1px solid #ddd;border-radius:8px;padding:10px 14px;font-size:1.05em}
.b2vsm-field-spacer{min-height:72px;padding-bottom:0!important}
.b2vsm-field-spacer .b2vsm-spacer{min-height:72px}
@media(max-width:800px){.b2vsm-wizard-buttons{margin-left:0}.b2vsm-running-total{width:100%}}

/* v2.0.51 public sold-out option styling */
.b2vsm-option-sold-out{
  opacity:.65;
  cursor:not-allowed;
}
.b2vsm-option-sold-out input{
  cursor:not-allowed;
}
.b2vsm-sold-out-badge{
  display:inline-block;
  margin-left:6px;
  padding:2px 7px;
  border-radius:999px;
  background:#f6f7f7;
  border:1px solid #dcdcde;
  color:#646970;
  font-size:.82em;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.02em;
}


/* v2.0.55 confirmation behavior styling */
.b2vsm-confirmation-link{
  background:#555;
  color:#fff;
  border:0;
  border-radius:6px;
  padding:11px 18px;
  cursor:pointer;
  text-decoration:none;
  display:inline-block;
  margin-left:10px;
}
.b2vsm-redirect-note{
  margin-top:10px;
  font-weight:600;
}

/* v2.0.56 centered post-submit confirmation */
.b2vsm-form.b2vsm-submitted > *:not(.b2vsm-response){
  display:none!important;
}
.b2vsm-response.b2vsm-confirmation-panel{
  display:block;
  box-sizing:border-box;
  max-width:760px;
  margin:24px auto;
  padding:32px 28px;
  border:1px solid #dcdcde;
  border-radius:16px;
  background:#fff;
  box-shadow:0 3px 14px rgba(0,0,0,.08);
  color:#1d2327;
  text-align:center;
  font-weight:400;
  line-height:1.55;
}
.b2vsm-confirmation-logo-wrap{
  margin:0 auto 18px;
  text-align:center;
}
.b2vsm-confirmation-logo{
  display:inline-block;
  max-width:220px;
  max-height:120px;
  width:auto;
  height:auto;
  object-fit:contain;
}
.b2vsm-confirmation-message{
  font-size:1.08em;
  margin:0 auto;
}
.b2vsm-confirmation-actions{
  display:flex;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:20px;
}
.b2vsm-confirmation-actions .b2vsm-print-link,
.b2vsm-confirmation-actions .b2vsm-payment-link,
.b2vsm-confirmation-actions .b2vsm-confirmation-link,
.b2vsm-confirmation-actions .b2vsm-confirmation-close-link{
  margin:0;
}
.b2vsm-print-link{
  background:#555;
  color:#fff;
  border:0;
  border-radius:6px;
  padding:11px 18px;
  cursor:pointer;
  text-decoration:none;
  display:inline-block;
}
.b2vsm-confirmation-close-link{
  background:#1d2327;
  color:#fff;
  border:0;
  border-radius:999px;
  padding:11px 20px;
  cursor:pointer;
  text-decoration:none;
  display:inline-block;
  font-weight:700;
}
.b2vsm-confirmation-close-link:hover,
.b2vsm-confirmation-close-link:focus{
  color:#fff;
  text-decoration:none;
}
.b2vsm-redirect-note{
  text-align:center;
  margin-top:16px;
}
@media(max-width:640px){
  .b2vsm-response.b2vsm-confirmation-panel{
    padding:24px 18px;
    margin:18px auto;
  }
  .b2vsm-confirmation-logo{
    max-width:180px;
    max-height:95px;
  }
}

/* v2.0.58 confirmation action button alignment */
.b2vsm-confirmation-actions a,
.b2vsm-confirmation-actions .b2vsm-print-link,
.b2vsm-confirmation-actions .b2vsm-confirmation-close-link,
.b2vsm-confirmation-actions .b2vsm-confirmation-link,
.b2vsm-confirmation-actions .b2vsm-payment-link{
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  min-width:155px;
  margin:0;
  padding:11px 20px;
  border-radius:999px;
  border:1px solid #c3c4c7;
  background:#f6f7f7;
  color:#1d2327;
  font-size:14px;
  font-weight:700;
  line-height:1.2;
  text-align:center;
  text-decoration:none;
  cursor:pointer;
  box-shadow:0 1px 2px rgba(0,0,0,.06);
}
.b2vsm-confirmation-actions a:hover,
.b2vsm-confirmation-actions a:focus,
.b2vsm-confirmation-actions .b2vsm-print-link:hover,
.b2vsm-confirmation-actions .b2vsm-print-link:focus,
.b2vsm-confirmation-actions .b2vsm-confirmation-close-link:hover,
.b2vsm-confirmation-actions .b2vsm-confirmation-close-link:focus,
.b2vsm-confirmation-actions .b2vsm-confirmation-link:hover,
.b2vsm-confirmation-actions .b2vsm-confirmation-link:focus,
.b2vsm-confirmation-actions .b2vsm-payment-link:hover,
.b2vsm-confirmation-actions .b2vsm-payment-link:focus{
  background:#fff;
  color:#1d2327;
  border-color:#8c8f94;
  text-decoration:none;
}
.b2vsm-confirmation-actions .b2vsm-payment-link{
  background:#1d2327;
  border-color:#1d2327;
  color:#fff;
}
.b2vsm-confirmation-actions .b2vsm-payment-link:hover,
.b2vsm-confirmation-actions .b2vsm-payment-link:focus{
  background:#2c3338;
  border-color:#2c3338;
  color:#fff;
}
@media(max-width:640px){
  .b2vsm-confirmation-actions a,
  .b2vsm-confirmation-actions .b2vsm-print-link,
  .b2vsm-confirmation-actions .b2vsm-confirmation-close-link,
  .b2vsm-confirmation-actions .b2vsm-confirmation-link,
  .b2vsm-confirmation-actions .b2vsm-payment-link{
    width:100%;
    max-width:280px;
  }
}

/* v2.0.59 payment confirmation behavior */
.b2vsm-confirmation-payment{
  max-width:640px;
  margin:18px auto 0;
  padding:16px 18px;
  border:1px solid #dcdcde;
  border-radius:14px;
  background:#f8fafc;
  text-align:center;
}
.b2vsm-confirmation-payment h4{
  margin:0 0 8px;
  font-size:1.05em;
}
.b2vsm-confirmation-payment-text{
  margin:0;
  color:#1d2327;
}
.b2vsm-confirmation-payment-note{
  margin:10px 0 0;
  color:#50575e;
  font-size:.95em;
}
