/* Scoped additions for the existing WPVibe purchase flow and native catalogue CTA. */
.bswa-product .bs-buy-now-home,
.bswa-product .bs-buy-now-home:visited {
  display: flex; align-items: center; justify-content: center; width: 100%;
  min-height: 48px; margin-top: 12px; padding: 13px 16px; box-sizing: border-box;
  border: 2px solid #111; border-radius: .75rem; background: #111; color: #fff !important;
  font: inherit; font-weight: 750; line-height: 1.3; text-align: center; text-decoration: none;
}
.bswa-product .bs-buy-now-home:hover,
.bswa-product .bs-buy-now-home:focus,
.bswa-product .bs-buy-now-home:active { background: #2e2e2e; border-color: #2e2e2e; color: #fff !important; }
.bswa-product .bs-buy-now-home:focus-visible { outline: 3px solid #9b0c29; outline-offset: 3px; }
.bs-buy-flow { max-width: 1060px; margin: 30px auto; padding: 24px; color: #171619; background: #fffdfa; font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 16px; line-height: 1.6; color-scheme: light; }
.bs-buy-flow *, .bs-buy-flow *::before, .bs-buy-flow *::after { box-sizing: border-box; }
.bs-buy-flow :where(p, h1, h2, h3, dd, dt, label, span, a) { overflow-wrap: anywhere; }
.bs-buy-flow :where(h1, h2, h3) { color: #171619; line-height: 1.2; margin: 0 0 14px; }
.bs-buy-flow h1 { font-size: clamp(2rem, 5vw, 3rem); }
.bs-buy-flow h2 { font-size: 1.5rem; }
.bs-buy-flow h3 { font-size: 1.15rem; margin-top: 20px; }
.bs-buy-flow p { margin: 0 0 16px; }
.bs-buy-flow a:not(.bs-buy-btn) { color: #940c28; text-decoration: underline; text-underline-offset: .2em; }
.bs-buy-head { border-bottom: 1px solid #d0c8c8; padding-bottom: 22px; margin-bottom: 24px; }
.bs-buy-eyebrow { font-size: .875rem; letter-spacing: .1em; font-weight: 750; }
.bs-buy-flow .bs-buy-price { font-size: 1.7rem; font-weight: 750; }
.bs-buy-choices, .bs-buy-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.bs-buy-choices { margin-bottom: 30px; }
.bs-buy-choice { padding: 22px; border: 1px solid #bdb4b5; border-radius: 14px; background: #f7f2e8; }
.bs-buy-flow .bs-buy-btn,
.bs-buy-flow .bs-buy-btn:visited { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; max-width: 100%; gap: 8px; padding: 13px 20px; border: 2px solid #111; border-radius: 12px; background: #111; color: #fff !important; font: inherit; font-weight: 750; line-height: 1.4; text-align: center; text-decoration: none; cursor: pointer; }
.bs-buy-flow .bs-buy-btn:hover, .bs-buy-flow .bs-buy-btn:focus, .bs-buy-flow .bs-buy-btn:active { background: #333; border-color: #333; color: #fff !important; }
.bs-buy-flow .bs-buy-btn--outline, .bs-buy-flow .bs-buy-btn--outline:visited { background: #fff; color: #171619 !important; }
.bs-buy-flow .bs-buy-btn--outline:hover, .bs-buy-flow .bs-buy-btn--outline:focus, .bs-buy-flow .bs-buy-btn--outline:active { background: #ede7dd; color: #171619 !important; }
.bs-buy-flow .bs-buy-btn:disabled { opacity: 1; background: #d8d3ce; border-color: #817b77; color: #35312e !important; cursor: not-allowed; }
.bs-buy-flow :where(a, button, input, select, textarea):focus-visible { outline: 3px solid #960d2a; outline-offset: 3px; box-shadow: none; }
.bs-buy-flow fieldset { min-width: 0; margin: 0 0 28px; padding: 22px; border: 1px solid #bdb4b5; border-radius: 14px; }
.bs-buy-flow legend { max-width: 100%; padding: 0 8px; color: #171619; font-size: 1.25rem; font-weight: 750; white-space: normal; }
.bs-buy-field { min-width: 0; }
.bs-buy-field label { display: block; margin-bottom: 7px; color: #171619; font-weight: 650; }
.bs-buy-flow input:not([type="checkbox"]):not([type="hidden"]), .bs-buy-flow select { width: 100%; max-width: 100%; min-height: 48px; margin: 0; padding: 11px 12px; border: 1px solid #736c6d; border-radius: 8px; background: #fff; color: #171619; font: inherit; line-height: 1.4; }
.bs-buy-flow input[type="file"] { overflow: hidden; font-size: .9rem !important; }
.bs-buy-flow input[type="file"]::file-selector-button { min-height: 36px; margin-right: 8px; border: 1px solid #817b77; border-radius: 4px; background: #f1ece6; color: #171619; cursor: pointer; }
.bs-buy-flow input[type="date"] { min-width: 0; -webkit-min-logical-width: 0; }
.bs-buy-flow .bs-buy-field--capacity { padding: 12px; border: 2px solid #940c28; border-radius: 10px; background: #fff7f8; }
.bs-buy-flow small, .bs-buy-help { display: block; margin-top: 7px; color: #4b4348; font-size: .9rem; }
.bs-buy-summary { padding: 18px; margin-bottom: 22px; border-radius: 10px; background: #f4eee6; }
.bs-buy-details { margin: 0; }
.bs-buy-details > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; border-bottom: 1px solid #c8bfba; padding: 9px 0; }
.bs-buy-details dt { font-weight: 650; }
.bs-buy-details dd { margin: 0; }
.bs-buy-plan-status { padding: 12px; margin-top: 18px !important; margin-bottom: 0 !important; border-left: 4px solid #746765; background: #fff; color: #3d3435; }
.bs-buy-plan-status[data-valid="false"] { border-color: #a40b28; color: #810820; }
.bs-buy-plan-status[data-valid="true"] { border-color: #236442; color: #184b30; }
.bs-buy-flow .bs-buy-consent { display: flex; align-items: flex-start; gap: 12px; margin: 18px 0; padding: 12px; border: 1px solid #bdb4b5; border-radius: 8px; color: #171619; cursor: pointer; }
.bs-buy-flow .bs-buy-consent input { flex: 0 0 22px; width: 22px; height: 22px; margin-top: 3px; accent-color: #940c28; }
.bs-buy-flow .bs-buy-submit { width: 100%; }
.bs-buy-errors, .bs-buy-success { padding: 20px; border: 2px solid #a40b28; border-radius: 12px; margin-bottom: 24px; background: #fff5f6; color: #810820; }
.bs-buy-success { border-color: #236442; background: #f0f8f3; color: #184b30; }
.bs-buy-flow .bs-buy-errors h2, .bs-buy-flow .bs-buy-success h2 { color: inherit; }
.bs-rateale-portal { max-width: 100%; overflow-wrap: anywhere; }
.bs-rateale-portal table { width: 100%; border-collapse: collapse; }
.bs-rateale-portal :where(th, td) { border-bottom: 1px solid #c8bfba; padding: 8px; text-align: left; }
@media (max-width: 680px) {
  .bs-buy-flow { margin: 16px auto; padding: 12px; }
  .bs-buy-choices, .bs-buy-grid { grid-template-columns: 1fr; gap: 18px; }
  .bs-buy-choice, .bs-buy-flow fieldset { padding: 16px 12px; }
  .bs-buy-flow .bs-buy-btn { width: 100%; }
  .bs-buy-summary { padding: 12px; }
  .bs-buy-details > div { grid-template-columns: 1fr; gap: 3px; }
  .bs-buy-flow legend { font-size: 1.15rem; }
}
