/* FILE: assets/bluechip-tweaks.css
/* =========================================================
   BLUE CHIP — REGISTRATION FUNNEL STYLES (CLEAN / CANONICAL)
   Scope:
   - Registration product pages: body.bc-reg-product
   - Registration funnel pages: body.bc-registration-checkout
   - Registration complete page: body.bc-registration-complete
   - Temp rail pages: body.bc-reg-page

   FIXES APPLIED IN THIS CANONICAL VERSION:
   1) GF "card chrome" lives ONLY on #bc-gf-mount (NOT on .gform_wrapper)
      - Eliminates mount vs wrapper conflicts.
   2) Mobile cards are FULL-WIDTH (no inset calc wars).
      - One mobile rail block ≤820px; no competing overrides.
   3) Removed "fit-content" variations table rules that visually shrink composite UI
      - Composite cards can now truly read as full-width like GF.
   4) Composite totals: single source of truth (ONE layout system + ONE label system)
      - Uses .composite_wrap::before for "Total" and hides any injected label nodes.

========================================================= */


/* =========================================================
   0) GLOBAL SAFETY
========================================================= */
body.bc-reg-product *,
body.bc-registration-checkout *,
body.bc-registration-complete *,
body.bc-reg-page *{
  box-sizing: border-box;
}


/* =========================================================
   1) REGISTRATION PRODUCT PAGES (bc-reg-product)
========================================================= */

/* Hide footer/sponsors/site-info */
body.bc-reg-product footer,
body.bc-reg-product #colophon,
body.bc-reg-product .site-footer,
body.bc-reg-product .footer,
body.bc-reg-product .footer-widgets,
body.bc-reg-product .sp-footer-sponsors,
body.bc-reg-product .site-info{
  display: none !important;
}

/* Center the single product content (desktop rail) */
body.single-product .product.product_cat-registration-hub{
  margin-left: auto;
  margin-right: auto;
  padding-left: 16px;
  padding-right: 16px;
}

/* Main product surfaces: clean card feel */
body.single-product .product.product_cat-registration-hub .summary,
body.single-product .product.product_cat-registration-hub .woocommerce-product-gallery{
  background: #fff;
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 12px;
  padding: 16px;
}

/* Title + price */
body.bc-reg-product.single-product .product .summary{
  text-align: left !important;
}
body.bc-reg-product.single-product .product .summary .product_title{
  font-weight: 900;
  font-size: 34px;
  line-height: 1.15;
  letter-spacing: -0.3px;
  text-align: center !important;
  margin-bottom: 6px;
}
body.bc-reg-product.single-product .product .summary .price{
  display: block !important;
  font-size: 20px;
  font-weight: 900;
  margin: 6px auto 12px auto !important;
  text-align: center !important;
}

/* Divider above short description */
body.bc-reg-product .summary .woocommerce-product-details__short-description{
  border-top: 6px solid #111 !important;
  margin-top: 14px !important;
  padding-top: 14px !important;
}

/* IMPORTANT FIX:
   Remove shrink-wrap behavior that makes Composite "feel narrower"
   (formerly used width: fit-content on variations table)
   Keep variations readable and aligned; allow full-width card appearance.
*/
body.bc-reg-product .composited_product_details_wrapper table.variations{
  width: 100% !important;
  margin: 0 !important;
}
body.bc-reg-product .composited_product_details_wrapper table.variations tbody{
  display: table-row-group !important;
  width: auto !important;
  margin: 0 !important;
}
body.bc-reg-product .composited_product_details_wrapper table.variations tr.attribute_options{
  justify-content: flex-start !important;
}


/* =========================================================
   2) TOP BARS (reg product + checkout)
========================================================= */
body.bc-reg-product .bc-reg-topbar,
body.bc-registration-checkout .bc-reg-topbar{
  margin: 0 0 12px 0;
  padding: 10px 12px;
  border-radius: 12px;
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
}

body.bc-reg-product .bc-reg-topbar{
  margin-left: auto;
  margin-right: auto;
}

body.bc-reg-product .bc-reg-topbar__title,
body.bc-registration-checkout .bc-reg-topbar__title{
  font-weight: 800;
}
body.bc-reg-product .bc-reg-topbar__link,
body.bc-registration-checkout .bc-reg-topbar__link{
  color: #fff;
  text-decoration: underline;
  font-weight: 900;
}

body.bc-registration-checkout .bc-reg-topbar--checkout,
body.bc-reg-product .bc-reg-topbar--active{
  background: #111;
  color: #fff;
}

body.bc-reg-product .bc-reg-topbar--back{
  background: #0a3a5c;
  color: #fff;
  justify-content: flex-start;
  width: 100%;
}
body.bc-reg-product .bc-reg-topbar__backlink{
  color: #fff;
  font-weight: 800;
  text-decoration: none;
}


/* =========================================================
   3) REGISTRATION CHECKOUT FUNNEL (bc-registration-checkout)
========================================================= */

/* Hide header/nav/footer/sponsors/social */
body.bc-registration-checkout header,
body.bc-registration-checkout .site-header,
body.bc-registration-checkout #masthead,
body.bc-registration-checkout nav.main-navigation,
body.bc-registration-checkout .main-navigation,
body.bc-registration-checkout .site-header nav,
body.bc-registration-checkout #masthead nav,
body.bc-registration-checkout footer,
body.bc-registration-checkout #colophon,
body.bc-registration-checkout .site-footer,
body.bc-registration-checkout .footer,
body.bc-registration-checkout .footer-widgets,
body.bc-registration-checkout .site-info,
body.bc-registration-checkout .sp-footer-sponsors,
body.bc-registration-checkout .social-sidebar,
body.bc-registration-checkout .social-sidebar-icon,
body.bc-registration-checkout .social-sidebar a,
body.bc-registration-checkout .social-sidebar i{
  display: none !important;
}

/* Funnel centered rail */
body.bc-registration-checkout #content,
body.bc-registration-checkout .site-content,
body.bc-registration-checkout .woocommerce{
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
}

body.bc-registration-checkout #content,
body.bc-registration-checkout .site-content{
  padding-top: 18px !important;
}

body.bc-registration-checkout .woocommerce-checkout .col2-set,
body.bc-registration-checkout .woocommerce-checkout #order_review{
  background: #fff;
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 12px;
  padding: 14px;
}
@media (min-width: 992px){
  body.bc-registration-checkout .woocommerce-checkout .col2-set,
  body.bc-registration-checkout .woocommerce-checkout #order_review{
    padding: 16px;
  }
}

body.bc-registration-checkout .woocommerce-checkout .col2-set,
body.bc-registration-checkout .woocommerce-checkout #order_review_heading,
body.bc-registration-checkout .woocommerce-checkout #order_review{
  margin-top: 14px !important;
}

/* Remove links on checkout */
body.bc-registration-checkout a.bc-remove-checkout-item,
body.bc-registration-checkout a.bc-remove-checkout-item:link,
body.bc-registration-checkout a.bc-remove-checkout-item:visited{
  margin-left: 8px;
  font-weight: 700;
  color: #c62828 !important;
  text-decoration: underline;
  cursor: pointer;
  white-space: nowrap;
}
body.bc-registration-checkout a.bc-remove-checkout-item:hover,
body.bc-registration-checkout a.bc-remove-checkout-item:focus{
  color: #8e0000 !important;
}

/* Customer details: remove empty col-2 */
@media (min-width: 768px){
  body.bc-registration-checkout .woocommerce-checkout .col2-set,
  body.bc-registration-checkout .woocommerce-checkout #customer_details{
    display: block !important;
  }
  body.bc-registration-checkout .woocommerce-checkout .col2-set .col-1,
  body.bc-registration-checkout .woocommerce-checkout #customer_details .col-1{
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  body.bc-registration-checkout .woocommerce-checkout .col2-set .col-2,
  body.bc-registration-checkout .woocommerce-checkout #customer_details .col-2{
    display: none !important;
  }
}

/* Show Woo's "Returning customer?" toggle banner (we will style it, not hide it) */
body.bc-registration-checkout .woocommerce-form-login-toggle{
  display: block !important;
  margin: 0 0 10px 0 !important;
}

/* Make it less aggressive than Woo's default black bar */
body.bc-registration-checkout .woocommerce-form-login-toggle .woocommerce-info{
  background: rgba(0,0,0,.04) !important;
  border: 1px solid rgba(0,0,0,.10) !important;
  color: #111 !important;
  border-radius: 12px !important;
  padding: 12px 14px !important;
}
body.bc-registration-checkout .woocommerce-form-login-toggle .woocommerce-info a{
  font-weight: 900 !important;
  text-decoration: underline !important;
}

/* Keep login form available; JS will open it when needed */
body.bc-registration-checkout form.woocommerce-form-login{
  display: none;
  margin: 10px 0 14px 0;
  padding: 12px 14px;
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 12px;
  background: #fff;
}

/* Remove confusing account UI */
body.bc-registration-checkout .woocommerce-account-fields,
body.bc-registration-checkout .woocommerce-account-fields label[for="createaccount"],
body.bc-registration-checkout .woocommerce-account-fields #createaccount,
body.bc-registration-checkout .woocommerce-account-fields .form-row.create-account{
  display: none !important;
}


/* =========================================================
   4) REGISTRATION COMPLETE PAGE (bc-registration-complete)
========================================================= */
body.bc-registration-complete #secondary,
body.bc-registration-complete .widget-area,
body.bc-registration-complete .sidebar,
body.bc-registration-complete aside{
  display: none !important;
}

body.bc-registration-complete #primary,
body.bc-registration-complete .content-area,
body.bc-registration-complete #main,
body.bc-registration-complete .site-content{
  width: 100% !important;
  max-width: 980px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  float: none !important;
}

body.bc-registration-complete #content,
body.bc-registration-complete .site-content{
  padding-top: 18px !important;
}


/* =========================================================
   5) DONATION BOX (checkout)
========================================================= */
.bc-donate-box #bc_donate_panel > div,
.bc-donate-box #bc-donate-panel > div{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}


/* =========================================================
   6) COMPOSITE — REG HUB UX (SAFE)
========================================================= */

/* Hide junk header bits; keep component titles visible */
body.bc-reg-product .component_summary .component_section_title,
body.bc-reg-product .component_summary .clear_component_options_wrapper,
body.bc-reg-product .component_summary a.clear_component_options,
body.bc-reg-product .component_summary p.component_section_title{
  display: none !important;
}

/* Keep variation areas visible */
body.bc-reg-product .component_summary,
body.bc-reg-product .component_summary_content,
body.bc-reg-product .component_content,
body.bc-reg-product .composited_product_details_wrapper,
body.bc-reg-product form.variations_form,
body.bc-reg-product .single_variation_wrap{
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

/* Remove redundant “Available options:” label */
body.bc-reg-product .component_option_radio_buttons .select_label{
  display: none !important;
}

/* Composite component cards */
body.bc-reg-product .composite_component{
  border: 1px solid rgba(15,23,42,0.18) !important;
  border-radius: 16px !important;
  padding: 16px 16px 18px 16px !important;
  background: #fff !important;
  box-shadow: 0 10px 28px rgba(15,23,42,0.06) !important;
  margin: 14px 0 !important;
}

/* Radio option cards */
body.bc-reg-product li.component_option_radio_button_container{
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 10px;
  background: #fff;
  margin-bottom: 8px;
  overflow: visible !important;
  position: relative !important;
}
body.bc-reg-product li.component_option_radio_button_container.selected,
body.bc-reg-product li.component_option_radio_button_container .component_option_radio_button.selected{
  border-color: #0a3a5c;
  background: #f5f9fc;
}

/* Radio row layout */
body.bc-reg-product li.component_option_radio_button_container > div.component_option_radio_button{
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 10px 12px !important;
  min-height: 52px !important;
}

/* Make room for price pill */
body.bc-reg-product li.component_option_radio_button_container .radio_button_title,
body.bc-reg-product li.component_option_radio_button_container .radio_button_description{
  padding-right: 90px !important;
}

/* Price pill */
body.bc-reg-product li.component_option_radio_button_container .radio_button_price,
body.bc-reg-product li.component_option_radio_button_container .radio_button_description > .price{
  position: absolute !important;
  right: 12px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: nowrap !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  padding: 4px 8px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(0,0,0,.12) !important;
  background: #fff !important;
  font-size: 0.95em !important;
  margin: 0 !important;
}

/* Narrow: drop pill under text */
@media (max-width: 420px){
  body.bc-reg-product li.component_option_radio_button_container .radio_button_title,
  body.bc-reg-product li.component_option_radio_button_container .radio_button_description{
    padding-right: 0 !important;
  }
  body.bc-reg-product li.component_option_radio_button_container .radio_button_price,
  body.bc-reg-product li.component_option_radio_button_container .radio_button_description > .price{
    position: static !important;
    transform: none !important;
    margin-top: 8px !important;
    align-self: flex-start !important;
  }
}

/* Selected option highlight (thick red border) */
.composite_component li.component_option_radio_button_container.selected,
.composite_component li[id^="component_option_radio_button_container_"].selected{
  border: 4px solid #c40000 !important;
  border-radius: 14px !important;
  background: rgba(196, 0, 0, 0.06) !important;
  box-shadow: 0 0 0 3px rgba(196, 0, 0, 0.20) !important;
}
.composite_component li[id^="component_option_radio_button_container_"]:has(input.radio_button:checked){
  border: 4px solid #c40000 !important;
  border-radius: 14px !important;
  background: rgba(196, 0, 0, 0.06) !important;
  box-shadow: 0 0 0 3px rgba(196, 0, 0, 0.20) !important;
}
.composite_component li[id^="component_option_radio_button_container_"]{
  overflow: visible !important;
  padding: 10px 12px !important;
  margin-bottom: 10px !important;
}

/* Keep Composite hidden select alive (REG ONLY) */
body.bc-reg-product .composite_component .component_options_select_wrapper{
  display: block !important;
  position: absolute !important;
  left: -9999px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

/* Variation dropdown layout */
body.bc-reg-product .composite_component table.variations tr.attribute_options{
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  flex-wrap: nowrap !important;
}
body.bc-reg-product .composite_component table.variations td.label{
  white-space: nowrap !important;
  flex: 0 0 auto !important;
  padding-right: 8px !important;
}
body.bc-reg-product .composite_component table.variations td.value{
  flex: 0 0 auto !important;
  white-space: nowrap !important;
}
body.bc-reg-product .composite_component table.variations select{
  min-width: 5.5rem !important;
  width: auto !important;
  max-width: 11rem !important;
  padding-right: 28px !important;
  color: #111 !important;
  background-color: #fff !important;
  opacity: 1 !important;
  -webkit-text-fill-color: #111 !important;
}

/* Variation price: show only when JS marks it */
body.bc-reg-product .composite_component .woocommerce-variation-price{
  display: none !important;
}
body.bc-reg-product .composite_component .woocommerce-variation-price.bc-has-price{
  display: inline-flex !important;
  align-items: center !important;
  white-space: nowrap !important;
}

/* Optional: hide availability line in reg products */
body.bc-reg-product .composite_component .woocommerce-variation-availability{
  display: none !important;
}

/* Remove reset variations link */
body.bc-reg-product a.reset_variations,
body.bc-reg-product .reset_variations,
body.bc-reg-product .reset_variations_wrapper,
body.bc-reg-product .reset_variations_wrapper_fixed{
  display: none !important;
}


/* =========================================================
   7) UNIFORM MODULE (callout hook: .bc-reg-callout.bc-uniform-check)
========================================================= */

body.bc-reg-product .bc-uniform-check .bc-reg-callout-title{
  text-align: center !important;
  margin: 0 auto !important;
}
body.bc-reg-product .bc-uniform-check .bc-reg-callout-body > p:first-child{
  text-align: center !important;
  margin: 0 0 10px 0 !important;
}
body.bc-reg-product .bc-uniform-check .bc-reg-uniform-img-wrap{
  display: flex !important;
  justify-content: center !important;
  margin: 0 0 10px 0 !important;
}
body.bc-reg-product .bc-uniform-check .bc-reg-uniform-img{
  display: block !important;
  margin: 0 auto !important;
  max-width: 340px !important;
  width: 100% !important;
  height: auto !important;
}

body.bc-reg-product .bc-uniform-check,
body.bc-reg-product .bc-uniform-check .bc-reg-callout-body{
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
body.bc-reg-product .bc-uniform-check .bc-reg-callout-body ul{
  margin: 0 !important;
  padding-bottom: 0 !important;
}
body.bc-reg-product .bc-uniform-check .bc-reg-callout-body li:last-child{
  margin-bottom: 0 !important;
}

/* Uniform component surface */
body.bc-reg-product .composite_component:has(.bc-uniform-check){
  background: #eef2f6 !important;
  padding-bottom: 10px !important;
}

/* Prevent inner wrappers from painting white */
body.bc-reg-product .composite_component:has(.bc-uniform-check) .component_description_wrapper,
body.bc-reg-product .composite_component:has(.bc-uniform-check) .component_description,
body.bc-reg-product .composite_component:has(.bc-uniform-check) .component_selections,
body.bc-reg-product .composite_component:has(.bc-uniform-check) .component_content,
body.bc-reg-product .composite_component:has(.bc-uniform-check) .component_summary,
body.bc-reg-product .composite_component:has(.bc-uniform-check) .details.component_data{
  background: transparent !important;
}

/* Center size label + dropdown inside uniform module */
body.bc-reg-product .composite_component:has(.bc-uniform-check) table.variations,
body.bc-reg-product .composite_component:has(.bc-uniform-check) table.variations tbody{
  width: 100% !important;
}
body.bc-reg-product .composite_component:has(.bc-uniform-check) table.variations tr.attribute_options{
  justify-content: center !important;
  width: 100% !important;
}
body.bc-reg-product .composite_component:has(.bc-uniform-check) table.variations td.label,
body.bc-reg-product .composite_component:has(.bc-uniform-check) table.variations td.value{
  width: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  white-space: nowrap !important;
}

/* Uniform price pill only */
body.bc-reg-product .composite_component:has(.bc-uniform-check) .single_variation_wrap,
body.bc-reg-product .composite_component:has(.bc-uniform-check) .component_wrap,
body.bc-reg-product .composite_component:has(.bc-uniform-check) .woocommerce-variation,
body.bc-reg-product .composite_component:has(.bc-uniform-check) .woocommerce-variation-price{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}
body.bc-reg-product .composite_component:has(.bc-uniform-check) .single_variation_wrap{
  display: flex !important;
  justify-content: center !important;
  margin-top: 8px !important;
}
body.bc-reg-product .composite_component:has(.bc-uniform-check) .woocommerce-variation-price{
  display: inline-flex !important;
  justify-content: center !important;
  width: auto !important;
}
body.bc-reg-product .composite_component:has(.bc-uniform-check) .woocommerce-variation-price .price{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 8px 14px !important;
  border-radius: 999px !important;
  background: #fff !important;
  border: 1px solid rgba(0,0,0,.15) !important;
  font-size: 1.2rem !important;
  font-weight: 800 !important;
  color: #000 !important;
}

/* Remove variation add-to-cart spacer inside uniform module */
body.bc-reg-product .composite_component:has(.bc-uniform-check) .woocommerce-variation-add-to-cart,
body.bc-reg-product .composite_component:has(.bc-uniform-check) .variations_button,
body.bc-reg-product .composite_component:has(.bc-uniform-check) .quantity_button,
body.bc-reg-product .composite_component:has(.bc-uniform-check) .quantity_hidden{
  display: none !important;
}


/* =========================================================
   8) GRAVITY FORMS — BASE CONTROL SANITY (reg products)
========================================================= */

/* Kill GF Product Add-ons totals (reg products only) */
body.bc-reg-product .gform_wrapper .product_totals,
body.bc-reg-product .gform_wrapper .gform_product_total,
body.bc-reg-product .gform_wrapper .gform_product_total_wrapper,
body.bc-reg-product .gform_wrapper .gform_page_footer .product_totals,
body.bc-reg-product .gform_wrapper .gform_footer .product_totals,
body.bc-reg-product .gform_wrapper .gform_footer .gform_product_total,
body.bc-reg-product .gform_wrapper .gform_footer .gform_product_total_wrapper,
body.bc-reg-product .gform_wrapper .gform_page_footer .gform_product_total,
body.bc-reg-product .gform_wrapper .gform_page_footer .gform_product_total_wrapper{
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Collapse totals field containers if present */
body.bc-reg-product .gform_wrapper li.gfield.product_totals,
body.bc-reg-product .gform_wrapper li.gfield.gform_product_total,
body.bc-reg-product .gform_wrapper li.gfield.gform_product_total_wrapper{
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Input + select height normalization */
body.bc-reg-product .gform_wrapper input[type="text"],
body.bc-reg-product .gform_wrapper select{
  height: 44px !important;
  line-height: 44px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

body.bc-reg-product .gform_wrapper .ginput_container input[type="text"]{
  min-height: 44px !important;
}
body.bc-reg-product .gform_wrapper .ginput_container_select{
  min-height: 44px !important;
}

/* Checkbox/radio row layout */
body.bc-reg-product .gform_wrapper .gfield_checkbox .gchoice,
body.bc-reg-product .gform_wrapper .gfield_radio .gchoice{
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  width: 100% !important;
}

/* Make sure checkboxes/radios render normally */
body.bc-reg-product .gform_wrapper .gfield_checkbox input[type="checkbox"],
body.bc-reg-product .gform_wrapper .gfield_radio input[type="radio"]{
  flex: 0 0 auto !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  min-height: 18px !important;
  margin: 2px 0 0 0 !important;
  padding: 0 !important;
  transform: none !important;
  -webkit-transform: none !important;
  appearance: auto !important;
}

/* Divider field utility */
body.bc-reg-product .gform_wrapper .gfield.bc-reg-divider-field,
body.bc-reg-product .gform_wrapper li.gfield.bc-reg-divider-field,
body.bc-reg-product .gform_wrapper div.gfield.bc-reg-divider-field{
  grid-column: 1 / -1 !important;
  flex: 0 0 100% !important;
  width: 100% !important;
  max-width: 100% !important;
  display: block !important;
  clear: both !important;
  margin: 18px 0 20px 0 !important;
  padding: 0 !important;
}
body.bc-reg-product .gform_wrapper .bc-reg-divider{
  display: block !important;
  width: 100% !important;
  border-top: 4px solid #111 !important;
  height: 0 !important;
}

/* Acknowledgements (Field CSS Class: ack-check) */
body.bc-reg-product .gform_wrapper .ack-check legend.gfield_label,
body.bc-reg-product .gform_wrapper .ack-check .gsection_title{
  font-weight: 800 !important;
  font-size: 1.1rem !important;
  margin-bottom: 8px !important;
}
body.bc-reg-product .gform_wrapper .ack-check .gfield_checkbox .gchoice label{
  display: block !important;
  flex: 1 1 auto !important;
  margin: 0 !important;
  max-width: 100% !important;
  white-space: normal !important;
  line-height: 1.35 !important;
  color: #b00000 !important;
  font-weight: 700 !important;
}

/* Form 57 hidden fields */
body.bc-reg-product #gform_wrapper_57 .gfield_visibility_hidden,
body.bc-reg-product #gform_wrapper_57 .gform_hidden,
body.bc-reg-product #gform_wrapper_57 .gfield--hidden{
  display: none !important;
}


/* =========================================================
   9) GF MOUNT (when GF wrapper is moved into #bc-gf-mount)
   FIX: Chrome/card styling lives ONLY here.
========================================================= */

/* GF mount is the card */
body.bc-reg-product #bc-gf-mount{
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 0 14px 0 !important;

  background: #fff !important;
  border: 1px solid rgba(0,0,0,.10) !important;
  border-radius: 12px !important;
  padding: 12px !important;

  box-sizing: border-box !important;
}

/* gform_wrapper becomes content-only */
body.bc-reg-product #bc-gf-mount .gform_wrapper{
  width: 100% !important;
  max-width: 100% !important;

  margin: 0 !important;
  padding: 0 !important;

  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

/* Inner form should not become a second card */
body.bc-reg-product #bc-gf-mount .gform_wrapper form,
body.bc-reg-product #bc-gf-mount .gform_wrapper .gform_body,
body.bc-reg-product #bc-gf-mount .gform_wrapper .gform-body,
body.bc-reg-product #bc-gf-mount .gform_wrapper .gform_fields{
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* Remove list styles */
body.bc-reg-product #bc-gf-mount .gform_wrapper ul.gform_fields,
body.bc-reg-product #bc-gf-mount .gform_wrapper ul.gform_fields > li.gfield,
body.bc-reg-product #bc-gf-mount .gform_wrapper .gfield{
  list-style: none !important;
}

/* Label restore */
body.bc-reg-product #bc-gf-mount .gform_wrapper .gfield_label,
body.bc-reg-product #bc-gf-mount .gform_wrapper legend.gfield_label{
  display: block !important;
  font-weight: 800 !important;
  margin: 0 0 6px 0 !important;
  color: #111 !important;
}

/* Inputs */
body.bc-reg-product #bc-gf-mount .gform_wrapper input[type="text"],
body.bc-reg-product #bc-gf-mount .gform_wrapper input[type="email"],
body.bc-reg-product #bc-gf-mount .gform_wrapper input[type="tel"],
body.bc-reg-product #bc-gf-mount .gform_wrapper input[type="number"],
body.bc-reg-product #bc-gf-mount .gform_wrapper select,
body.bc-reg-product #bc-gf-mount .gform_wrapper textarea{
  width: 100% !important;
  background: #fff !important;
  color: #111 !important;
  border: 1px solid rgba(0,0,0,.18) !important;
  border-radius: 10px !important;
  font-size: 16px !important;
  line-height: 1.25 !important;
}

body.bc-reg-product #bc-gf-mount .gform_wrapper input[type="text"],
body.bc-reg-product #bc-gf-mount .gform_wrapper select{
  height: 44px !important;
  padding: 0 12px !important;
}
body.bc-reg-product #bc-gf-mount .gform_wrapper textarea{
  min-height: 110px !important;
  padding: 10px 12px !important;
}

/* GF inner grid breathing room (Form 57 fields container) */
body.bc-reg-product #bc-gf-mount #gform_fields_57{
  padding: 2% !important;
}


/* =========================================================
   10) WIZARD UI (callouts + pulse)
========================================================= */
body.bc-reg-product .bc-wizard-callout{
  text-align: center !important;
  padding: 16px 16px !important;
  border-radius: 18px !important;
  border: 1px solid rgba(15, 23, 42, 0.10) !important;
  background: linear-gradient(180deg, #f8fafc, #eef2f7) !important;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06) !important;
}
body.bc-reg-product .bc-wizard-callout strong{
  display: block !important;
  font-weight: 900 !important;
  font-size: 18px !important;
  margin-bottom: 6px !important;
}
body.bc-reg-product .bc-wizard-callout p,
body.bc-reg-product .bc-wizard-callout div{
  margin: 0 !important;
  font-weight: 650 !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
  opacity: 0.95 !important;
}
body.bc-reg-product .bc-wizard-callout details{
  text-align: left;
  max-width: 760px;
  margin: 10px auto 0;
}
body.bc-reg-product .bc-wizard-callout details summary{
  cursor: pointer;
  font-weight: 900;
  text-align: center;
}

/* Pulse/highlight */
body.bc-reg-product .bc-focus-pulse{
  outline: 3px solid rgba(30, 64, 175, 0.45);
  outline-offset: 6px;
  border-radius: 14px;
  animation: bcPulse 1.4s ease-out 1;
}
@keyframes bcPulse{
  0%   { outline-color: rgba(30, 64, 175, 0.00); }
  30%  { outline-color: rgba(30, 64, 175, 0.65); }
  100% { outline-color: rgba(30, 64, 175, 0.00); }
}

/* Wizard Output Card (GF Field 38) */
#field_57_38 .bc-tier-result-card{
  display:none;
  border:2px solid rgba(10,58,92,.25);
  border-radius:18px;
  padding:16px 16px 12px;
  margin:14px 0 18px;
  background:#fff;
  box-shadow:0 10px 24px rgba(0,0,0,.08);
}
#field_57_38 .bc-tier-result-title{
  font-weight:900;
  font-size:18px;
  letter-spacing:.2px;
  color:rgb(10,58,92);
  margin-bottom:8px;
}
#field_57_38 .bc-tier-result-body{
  font-size:15px;
  line-height:1.35;
}
#field_57_38 .bc-tier-result-name{
  font-weight:900;
  color:rgb(10,58,92);
}
#field_57_38 .bc-tier-result-sub{
  margin-top:6px;
  opacity:.9;
}
#field_57_38 .bc-tier-result-note{
  margin-top:10px;
  padding:10px 12px;
  border-radius:14px;
  background:rgba(10,58,92,.06);
  border:1px solid rgba(10,58,92,.18);
}
#field_57_38 .bc-tier-result-actions{
  margin-top:10px;
}
#field_57_38 a.bc-wizard-start-over{
  font-weight:800;
  text-decoration:underline;
}

/* Centered / Hero Result */
#field_57_38 .bc-tier-result-card{
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  max-width: 720px;
}
#field_57_38 .bc-tier-result-line{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
#field_57_38 .bc-tier-result-name{
  display: block;
  font-weight: 900;
  font-size: 26px;
  line-height: 1.15;
  margin-top: 2px;
}
#field_57_38 .bc-tier-result-actions{
  display: flex;
  justify-content: center;
  margin-top: 14px;
}
#field_57_38 a.bc-wizard-start-over{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 18px;
  border-radius: 14px;
  font-weight: 900;
  text-decoration: none;
  border: 2px solid rgba(10,58,92,.30);
  background: rgba(10,58,92,.06);
  color: rgb(10,58,92);
}
#field_57_38 a.bc-wizard-start-over:hover{ background: rgba(10,58,92,.10); }
#field_57_38 a.bc-wizard-start-over:focus{
  outline: 3px solid rgba(10,58,92,.25);
  outline-offset: 2px;
}


/* =========================================================
   11) FORM-SPECIFIC PACKING
========================================================= */

/* Form 60 packing */
#gform_wrapper_60 #gform_fields_60{
  display: flex;
  flex-wrap: wrap;
  column-gap: 16px;
  row-gap: 16px;
}
#gform_wrapper_60 #field_60_1{ flex: 2 1 340px; min-width: 260px; }
#gform_wrapper_60 #field_60_3{ flex: 0 0 120px; max-width: 140px; min-width: 110px; }
#gform_wrapper_60 #field_60_21{ flex: 2 1 340px; min-width: 260px; }
#gform_wrapper_60 #field_60_1 input,
#gform_wrapper_60 #field_60_3 select,
#gform_wrapper_60 #field_60_21 input{
  width: 100%;
  max-width: 100%;
}
@media (max-width: 520px){
  #gform_wrapper_60 #field_60_3{
    flex: 1 1 100%;
    max-width: none;
    min-width: 0;
  }
}

/* Form 57: list cleanup example */
body.bc-reg-product .gform_wrapper #field_57_68 ul{
  list-style: none !important;
  padding-left: 0 !important;
}
body.bc-reg-product .gform_wrapper #field_57_68 ul li{
  margin: 6px 0 !important;
  font-weight: 600;
}


/* =========================================================
   12) TEXT JUSTIFICATION FIX (mobile readability)
========================================================= */
body.bc-reg-product .bc-reg-callout,
body.bc-reg-product .bc-reg-callout-body,
body.bc-reg-product .bc-reg-callout-body p,
body.bc-reg-product .bc-reg-callout-body li{
  text-align: left !important;
  text-justify: auto !important;
  word-spacing: normal !important;
  letter-spacing: normal !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  hyphens: auto !important;
}


/* =========================================================
   13) MOBILE RAIL — ≤820px (FULL WIDTH CARDS)
========================================================= */
@media (max-width: 820px){

  html, body{
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  body.bc-reg-product{
    --bc-rail-pad: 6px;
    --bc-card-pad: 14px;
    background: #fff !important;
  }

  /* Nuke theme clamp wrappers that create gutters */
  body.bc-reg-product .hfeed.site,
  body.bc-reg-product #page,
  body.bc-reg-product #content,
  body.bc-reg-product .site-content,
  body.bc-reg-product .content-area,
  body.bc-reg-product #primary,
  body.bc-reg-product #main,
  body.bc-reg-product .container,
  body.bc-reg-product .wrap,
  body.bc-reg-product .wrapper{
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
  }

  /* Force Woo single-column */
  body.bc-reg-product .woocommerce div.product,
  body.bc-reg-product .woocommerce div.product div.images,
  body.bc-reg-product .woocommerce div.product .woocommerce-product-gallery,
  body.bc-reg-product .woocommerce div.product div.summary,
  body.bc-reg-product .woocommerce div.product div.summary.entry-summary,
  body.bc-reg-product .product.type-product,
  body.bc-reg-product .summary.entry-summary{
    float: none !important;
    clear: both !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Rail padding applies to the summary (top description area) */
  body.bc-reg-product .summary.entry-summary{
    padding-left: var(--bc-rail-pad) !important;
    padding-right: var(--bc-rail-pad) !important;
  }

  /* FULL-WIDTH cards */
  body.bc-reg-product #bc-gf-mount,
  body.bc-reg-product .composite_component,
  body.bc-reg-product .composite_totals{
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: var(--bc-card-pad) !important;
    border-radius: 14px !important;
  }

  /* Clamp media */
  body.bc-reg-product img,
  body.bc-reg-product svg,
  body.bc-reg-product iframe,
  body.bc-reg-product table{
    max-width: 100% !important;
  }
}


/* =========================================================
   14) COMPOSITE TOTALS (CANONICAL — SINGLE SOURCE OF TRUTH)
   Desktop: [Total] [Price centered] [Button right]
   Row 2: notices/messages centered across full width
========================================================= */

/* Kill any injected/extra label element nodes */
body.bc-reg-product div[id^="composite_data_"] .composite_wrap .bc-total-label,
body.bc-reg-product div[id^="composite_data_"] .composite_wrap > .bc-total-label{
  display: none !important;
}

/* Hide the plugin’s internal “Total” label cells safely */
body.bc-reg-product .composite_price .label,
body.bc-reg-product .composite_price .price_label,
body.bc-reg-product .composite_price table .label,
body.bc-reg-product .composite_price table .price_label{
  display: none !important;
}

/* Ensure we never use native pseudo label on composite_price */
body.bc-reg-product div[id^="composite_data_"] .composite_wrap > .composite_price::before{
  content: none !important;
  display: none !important;
}

/* Totals container surface */
body.bc-reg-product .composite_totals{
  border: 1px solid rgba(15,23,42,0.18) !important;
  border-radius: 16px !important;
  background: #fff !important;
  box-shadow: 0 10px 28px rgba(15,23,42,0.06) !important;
}

/* Never hide first column globally */
body.bc-reg-product .composite_price table th:first-child,
body.bc-reg-product .composite_price table td:first-child{
  display: table-cell !important;
}

/* Canonical totals card + grid */
body.bc-reg-product div[id^="composite_data_"] .composite_wrap{
  border: 2px solid rgba(15,23,42,0.20) !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: 0 12px 32px rgba(15,23,42,0.08) !important;
  padding: 18px !important;
  margin: 18px 0 0 0 !important;

  display: grid !important;
  grid-template-columns: auto 1fr auto !important;
  grid-template-areas:
    "label price button"
    "message message message" !important;
  column-gap: 14px !important;
  row-gap: 10px !important;
  align-items: center !important;
  position: relative !important;
}

/* SINGLE label injection */
body.bc-reg-product div[id^="composite_data_"] .composite_wrap::before{
  content: "Total" !important;
  grid-area: label !important;
  font-weight: 900 !important;
  font-size: 20px !important;
  line-height: 1.1 !important;
  white-space: nowrap !important;
  justify-self: start !important;
  align-self: center !important;
  color: inherit !important;
}

/* Price centered */
body.bc-reg-product div[id^="composite_data_"] .composite_wrap > .composite_price{
  grid-area: price !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  min-width: 0 !important;
}
body.bc-reg-product div[id^="composite_data_"] .composite_wrap .composite_price .price,
body.bc-reg-product div[id^="composite_data_"] .composite_wrap .composite_price p.price{
  margin: 0 !important;
  display: inline-block !important;
}
body.bc-reg-product div[id^="composite_data_"] .composite_wrap .composite_price .amount{
  white-space: nowrap !important;
}

/* Button right */
body.bc-reg-product div[id^="composite_data_"] .composite_wrap > .composite_button{
  grid-area: button !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
}

/* Notices/messages row */
body.bc-reg-product div[id^="composite_data_"] .composite_wrap > .composite_message,
body.bc-reg-product div[id^="composite_data_"] .composite_wrap > .composite_availability,
body.bc-reg-product div[id^="composite_data_"] .composite_wrap .woocommerce-error,
body.bc-reg-product div[id^="composite_data_"] .composite_wrap .woocommerce-message,
body.bc-reg-product div[id^="composite_data_"] .composite_wrap .woocommerce-info,
body.bc-reg-product div[id^="composite_data_"] .composite_wrap .wc-notices-wrapper{
  grid-area: message !important;
  margin: 0 !important;
  width: 100% !important;
  justify-self: center !important;
  text-align: center !important;
  max-width: 720px !important;
}

/* Mobile ≤640: stack cleanly */
@media (max-width: 640px){

  body.bc-reg-product div[id^="composite_data_"] .composite_wrap{
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "label"
      "price"
      "button"
      "message" !important;
    justify-items: center !important;
    row-gap: 10px !important;
    text-align: center !important;
  }

  body.bc-reg-product div[id^="composite_data_"] .composite_wrap::before{
    justify-self: center !important;
  }

  body.bc-reg-product div[id^="composite_data_"] .composite_wrap > .composite_button{
    justify-content: center !important;
    width: 100% !important;
  }

  body.bc-reg-product div[id^="composite_data_"] .composite_wrap .composite_add_to_cart_button,
  body.bc-reg-product div[id^="composite_data_"] .composite_wrap .single_add_to_cart_button.composite_add_to_cart_button{
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    margin: 0 auto !important;
    float: none !important;
    font-weight: 900 !important;
    text-align: center !important;
    border-radius: 14px !important;
  }

  body.bc-reg-product div[id^="composite_data_"] .composite_wrap > .composite_message,
  body.bc-reg-product div[id^="composite_data_"] .composite_wrap > .composite_availability{
    max-width: none !important;
  }
}


/* =========================================================
   UNIFIED SECTION HEADERS (Composite + GF + Custom)
========================================================= */
body.bc-reg-product .bc-component-title,
body.bc-reg-product .component .component_title,
body.bc-reg-product .component_title_wrapper .component_title,
body.bc-reg-product .component_options_title,
body.bc-reg-product .gform_wrapper .gsection_title{
  font-family: inherit !important;
  color: #0a3a5c !important;
  font-weight: 900 !important;
  font-size: 20px !important;
  line-height: 1.2 !important;
  letter-spacing: .2px !important;
  text-align: center !important;
  margin: 18px 0 10px !important;
}
body.bc-reg-product .bc-component-title{
  width: 100% !important;
  display: block !important;
}


/* =========================================================
   PRODUCT SHORT DESCRIPTION ACCORDION HEADERS (bc-acc)
========================================================= */
body.bc-reg-product details.bc-acc > summary{
  font-family: inherit !important;
  color: inherit !important;
  font-weight: 800 !important;
  font-size: 16px !important;
  line-height: 1.25 !important;
  text-align: left !important;
  margin: 0 !important;
  padding: 10px 12px !important;
  cursor: pointer;
}

/* Uniform Check: center ONLY the title line */
body.bc-reg-product .bc-reg-callout-body p.bc-uniform-review-title{
  text-align: center !important;
  font-size: 18px;
  font-weight: 800;
}

/* Center uniform image container */
body.bc-reg-product .bc-reg-uniform-img-wrap{
  text-align: center !important;
  margin: 12px auto !important;
}


/* =========================================================
   Tighten spacing ONLY under the Wizard Output (Field 57_38)
========================================================= */
#field_57_38 .gform-footer,
#field_57_38 .gform_footer{
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
}
#field_57_38{
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
#bc-wizard-output-mount{
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
#field_57_38 .ginput_container,
#field_57_38 .gfield_description,
#field_57_38 .gfield_label,
#field_57_38 .gfield_header_item,
#field_57_38 .gfield_visibility_visible{
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
#field_57_38 .bc-tier-result-card{
  margin-bottom: 0 !important;
}
#field_57_38 .bc-tier-result-card > *:last-child{
  margin-bottom: 0 !important;
}

/* Hide unused Gravity Forms footer under Form 57 (reg product only) */
body.bc-reg-product #gform_wrapper_57 > .gform-footer.gform_footer.top_label{
  display: none !important;
}

/* Tighten spacing inside program acknowledgement blocks only */
.bc-ack-block > p{ margin-bottom: 2px; }
.bc-ack-block .bc-ack-details{ margin-top: 0; }
.bc-ack-block .bc-ack-details summary{ margin-top: 0; }


/* =========================================================
   Checkout: collapse gift/credit redemption
========================================================= */
body.bc-registration-checkout .add_gift_card_form #wc_gc_cart_redeem_form{
  display: none !important;
  margin-top: 6px !important;
}
body.bc-registration-checkout .add_gift_card_form.bc-gc-open #wc_gc_cart_redeem_form{
  display: block !important;
}
body.bc-registration-checkout .add_gift_card_form h4{
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  margin: 10px 0 6px !important;
  cursor: pointer;
}
body.bc-registration-checkout .add_gift_card_form #wc_gc_cart_redeem_form input,
body.bc-registration-checkout .add_gift_card_form #wc_gc_cart_redeem_form button{
  margin-top: 6px !important;
}
/* =========================================================
   NEXT STEPS — CORE STYLES (RESTORE PACK)
   Scope: .bc-next-steps only (no body class dependency)
   Purpose:
   - Restore Next Steps container/card, typography, accordions,
     tool row, and spacing after CSS cleanup.
========================================================= */

/* =========================================================
   NEXT STEPS — RAIL CLAMP (match product rail/cards)
   - Desktop rail: 980px max
   - Same breakpoints as the funnel CSS (900/640/820)
========================================================= */

.bc-next-steps{
  /* Same typography stack as rails */
  font-family: Roboto, system-ui, -apple-system, "Segoe UI", Arial, sans-serif !important;
  font-size: 16px;
  line-height: 1.5;

  /* Rail clamp (matches your #primary/.site-content rail logic) */
  max-width: 980px !important;
  width: calc(100% - 28px) !important;     /* default desktop/tablet gutter */
  margin: 18px auto 0 auto !important;

  /* Card surface (same vibe as composites/GF mount) */
  background: #fff;
  border: 1px solid rgba(15,23,42,0.18);
  border-radius: 18px;
  box-shadow: 0 12px 30px rgba(15,23,42,0.07);

  padding: 22px 22px 24px;
  box-sizing: border-box !important;
}

/* Tablet-ish: match your rail gutter reduction */
@media (max-width: 900px){
  .bc-next-steps{
    width: calc(100% - 18px) !important;
    padding: 18px 16px 20px !important;
    border-radius: 16px !important;
  }
}

/* Rail-mobile behavior parity */
@media (max-width: 820px){
  .bc-next-steps{
    width: calc(100% - 12px) !important;
    margin-top: 14px !important;
  }
}

/* Phones: match your “near edge-to-edge” rail */
@media (max-width: 640px){
  .bc-next-steps{
    width: calc(100% - 12px) !important;
    padding: 16px 14px 18px !important;
    border-radius: 16px !important;
  }
}

/* Headings inside next steps */
.bc-next-steps h1,
.bc-next-steps h2,
.bc-next-steps h3{
  font-family: inherit !important;
  font-weight: 900 !important;
  letter-spacing: .2px;
  color: rgb(10,58,92);
  margin: 0 0 10px 0;
}

/* Copy */
.bc-next-steps p,
.bc-next-steps li{
  color: rgba(15, 23, 42, 0.82);
  font-weight: 500;
}
.bc-next-steps strong{
  font-weight: 900;
  color: rgb(10,58,92);
}

/* Links */
.bc-next-steps a{
  color: rgb(10,58,92);
  font-weight: 900;
  text-decoration: none;
  border-bottom: 2px solid rgba(10,58,92,.28);
}
.bc-next-steps a:hover{
  border-bottom-color: rgba(10,58,92,.55);
}

/* Tools/status row (if present) */
.bc-next-steps .bc-next-steps-tools{
  margin: 10px 0 16px !important;
  padding: 0 !important;
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 10px !important;
  text-align: center !important;
}
.bc-next-steps .bc-next-steps-tools__status{
  flex-basis: 100%;
  text-align: center !important;
  font-weight: 800 !important;
  margin-top: 6px !important;
  opacity: .92;
}

/* Accordion cards (you already style bc-acc on product pages, but Next Steps needs it too) */
.bc-next-steps details.bc-acc{
  border: 1px solid rgba(15,23,42,0.14) !important;
  border-radius: 14px !important;
  background: #fff !important;
  margin: 10px 0 !important;
  overflow: hidden !important;
}

.bc-next-steps details.bc-acc > summary{
  list-style: none !important;
  cursor: pointer !important;

  font-weight: 900 !important;
  font-size: 16px !important;
  color: rgb(10,58,92) !important;

  padding: 12px 14px !important;
  margin: 0 !important;

  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}
.bc-next-steps details.bc-acc > summary::-webkit-details-marker{
  display: none !important;
}
.bc-next-steps details.bc-acc[open] > summary{
  background: rgba(10,58,92,0.05) !important;
}

/* Accordion body wrapper (common pattern) */
.bc-next-steps details.bc-acc > .bc-acc-body,
.bc-next-steps details.bc-acc > div{
  padding: 14px 14px 16px !important;
  border-top: 1px solid rgba(15,23,42,0.10) !important;
}

/* Mobile */
@media (max-width: 640px){
  .bc-next-steps{
    padding: 16px 14px 18px !important;
    border-radius: 16px !important;
  }
}

/* =========================================================
   Next Steps: "Register another player" buttons
========================================================= */
.bc-next-steps .bc-next-steps-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin:10px 0 18px;
}
.bc-next-steps .bc-next-steps-actions .bc-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 16px;
  min-height:42px;
  border-radius:12px;
  font-weight:900;
  letter-spacing:.2px;
  line-height:1;
  text-decoration:none !important;
  user-select:none;
  transition:transform .12s ease, box-shadow .12s ease, background-color .12s ease, border-color .12s ease;
}
.bc-next-steps .bc-next-steps-actions .bc-btn--primary{
  background:rgb(10,58,92);
  color:#fff !important;
  border:1px solid rgba(10,58,92,.25);
  box-shadow:0 10px 22px rgba(10,58,92,.18);
}
.bc-next-steps .bc-next-steps-actions .bc-btn--ghost{
  background:#fff;
  color:rgb(10,58,92) !important;
  border:1px solid rgba(10,58,92,.28);
  box-shadow:0 6px 14px rgba(0,0,0,.06);
}
.bc-next-steps .bc-next-steps-actions .bc-btn:hover{ transform:translateY(-1px); }
.bc-next-steps .bc-next-steps-actions .bc-btn--primary:hover{ box-shadow:0 12px 26px rgba(10,58,92,.22); }
.bc-next-steps .bc-next-steps-actions .bc-btn--ghost:hover{
  border-color:rgba(10,58,92,.45);
  box-shadow:0 10px 18px rgba(0,0,0,.08);
}
.bc-next-steps .bc-next-steps-actions .bc-btn:focus-visible{
  outline:3px solid rgba(10,58,92,.25);
  outline-offset:3px;
}
@media (max-width:640px){
  .bc-next-steps .bc-next-steps-actions{
    flex-direction:column;
    align-items:stretch;
  }
  .bc-next-steps .bc-next-steps-actions .bc-btn{ width:100%; }
}


/* =========================================================
   Rails: hide any leftover tab wrappers
========================================================= */
body.bc-reg-product .woocommerce-tabs,
body.bc-reg-product .wc-tabs-wrapper,
body.bc-reg-product .woocommerce-Tabs-panel,
body.bc-reg-product .wc-tabs{
  display: none !important;
}


/* =========================================================
   Rail mode should not show theme chrome
========================================================= */
body.bc-reg-product header,
body.bc-reg-page header,
body.bc-registration-complete header,
body.bc-registration-checkout header{
  display: none !important;
}
body.bc-reg-product .social,
body.bc-reg-page .social,
body.bc-registration-complete .social,
body.bc-registration-checkout .social,
body.bc-reg-product .social-icons,
body.bc-reg-page .social-icons,
body.bc-registration-complete .social-icons,
body.bc-registration-checkout .social-icons{
  display: none !important;
}

/* Registration Complete — Social Sidebar Refinement */
body.bc-registration-complete .social-sidebar{
  display: block !important;
  padding-top: 12px !important;
  padding-bottom: 20px !important;
}


/* =========================================================
   Rail Font Override (kills Courtside inline heading font)
========================================================= */
body.bc-reg-product :is(h1,h2,h3,h4,h5,h6),
body.bc-reg-product .entry-title,
body.bc-reg-product .entry-title a{
  font-family: Roboto, sans-serif !important;
  font-weight: 700;
}
body.bc-reg-product .wp-block-heading{
  font-family: Roboto, sans-serif !important;
}


/* =========================================================
   PAGE RAIL LAYOUT (Gutenberg/Page template)
========================================================= */
body.bc-reg-page .bc-rail-content{
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
  padding: 18px 14px 28px;
  font-family: Roboto, sans-serif;
}
body.bc-reg-page .bc-rail-content > *{ max-width: 100%; }
body.bc-reg-page .bc-rail-content .bc-rail-header,
body.bc-reg-page .bc-rail-content .bc-rail-footer{
  max-width: 100%;
  font-family: Roboto, sans-serif;
}
body.bc-reg-page .bc-rail-content h1,
body.bc-reg-page .bc-rail-content h2,
body.bc-reg-page .bc-rail-content h3,
body.bc-reg-page .bc-rail-content h4,
body.bc-reg-page .bc-rail-content h5,
body.bc-reg-page .bc-rail-content h6{
  font-family: Roboto, sans-serif;
  font-weight: 700;
}
body.bc-reg-page .bc-rail-content .gform_wrapper,
body.bc-reg-page .bc-rail-content .gform_wrapper *{
  font-family: Roboto, sans-serif;
}
@media (min-width: 1100px){
  body.bc-reg-page .bc-rail-content{
    padding-left: 0;
    padding-right: 0;
  }
}
body.bc-reg-page .bc-rail-content #gform_wrapper_57{
  background: #fff;
  border-radius: 18px;
  padding: 16px 14px;
  box-shadow: 0 8px 26px rgba(0,0,0,0.08);
}


/* =========================================================
   PAGE RAIL SHELL (Foundations temp pages)
========================================================= */
body.bc-reg-page,
body.bc-reg-product{
  font-family: Roboto, system-ui, -apple-system, "Segoe UI", Arial, sans-serif !important;
}
body.bc-reg-page{
  background: #f2f2f2;
}
body.bc-reg-page .bc-reg-topbar,
body.bc-reg-product .bc-reg-topbar{
  max-width: 980px;
  margin: 10px auto 0 auto;
  padding: 0 16px;
}
body.bc-reg-page .bc-rail-wrap{
  max-width: 980px;
  margin: 0 auto;
  padding: 0 16px 28px 16px;
}
body.bc-reg-page .bc-rail-card{
  background: #fff;
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,0.10);
  box-shadow: 0 8px 24px rgba(0,0,0,0.08);
  padding: 22px 22px 26px 22px;
}
body.bc-reg-page .bc-rail-header{
  text-align: center;
  margin: 6px 0 14px 0;
}
body.bc-reg-page .bc-rail-title{
  font-weight: 800;
  font-size: 36px;
  line-height: 1.1;
  margin: 0;
}
body.bc-reg-page .bc-rail-title-rule{
  height: 4px;
  width: 100%;
  background: #111;
  margin: 10px 0 0 0;
}
body.bc-reg-page .entry-content,
body.bc-reg-page .entry-content > *{
  max-width: none !important;
}
body.bc-reg-page .gform_wrapper,
body.bc-reg-page .gform_wrapper *{
  font-family: Roboto, system-ui, -apple-system, "Segoe UI", Arial, sans-serif !important;
}
body.bc-reg-page .gform_wrapper input[type="text"],
body.bc-reg-page .gform_wrapper input[type="email"],
body.bc-reg-page .gform_wrapper input[type="tel"],
body.bc-reg-page .gform_wrapper input[type="number"],
body.bc-reg-page .gform_wrapper select,
body.bc-reg-page .gform_wrapper textarea{
  border-radius: 8px;
  border: 1px solid rgba(0,0,0,0.25);
  background: #fff;
}
body.bc-reg-page .bc-rail-content > *:first-child{ margin-top: 0; }
body.bc-reg-page .bc-rail-content > *:last-child{  margin-bottom: 0; }


/* =========================================================
   GRAVITY FORMS — RAIL ENFORCEMENT (Shared)
========================================================= */
body.bc-reg-product .gform_wrapper,
body.bc-reg-page .gform_wrapper,
body.bc-reg-product .gform_wrapper *,
body.bc-reg-page .gform_wrapper *{
  font-family: Roboto, system-ui, -apple-system, "Segoe UI", Arial, sans-serif !important;
}
body.bc-reg-product .gform_wrapper .gfield_label,
body.bc-reg-page .gform_wrapper .gfield_label,
body.bc-reg-product .gform_wrapper .gform-field-label,
body.bc-reg-page .gform_wrapper .gform-field-label{
  font-weight: 700 !important;
  font-size: 14px !important;
  line-height: 1.2 !important;
  color: #123;
  margin-bottom: 6px !important;
}
body.bc-reg-product .gform_wrapper .gfield_required,
body.bc-reg-page .gform_wrapper .gfield_required{
  color: #b00020 !important;
  font-weight: 700 !important;
}
body.bc-reg-product .gform_wrapper input[type="text"],
body.bc-reg-page .gform_wrapper input[type="text"],
body.bc-reg-product .gform_wrapper input[type="email"],
body.bc-reg-page .gform_wrapper input[type="email"],
body.bc-reg-product .gform_wrapper input[type="tel"],
body.bc-reg-page .gform_wrapper input[type="tel"],
body.bc-reg-product .gform_wrapper input[type="number"],
body.bc-reg-page .gform_wrapper input[type="number"],
body.bc-reg-product .gform_wrapper input[type="url"],
body.bc-reg-page .gform_wrapper input[type="url"],
body.bc-reg-product .gform_wrapper input[type="password"],
body.bc-reg-page .gform_wrapper input[type="password"],
body.bc-reg-product .gform_wrapper select,
body.bc-reg-page .gform_wrapper select,
body.bc-reg-product .gform_wrapper textarea,
body.bc-reg-page .gform_wrapper textarea{
  background: #fff !important;
  border: 1px solid rgba(0,0,0,0.25) !important;
  border-radius: 10px !important;
  padding: 10px 12px !important;
  font-size: 14px !important;
  line-height: 1.25 !important;
  box-shadow: none !important;
}
body.bc-reg-product .gform_wrapper input:focus,
body.bc-reg-page .gform_wrapper input:focus,
body.bc-reg-product .gform_wrapper select:focus,
body.bc-reg-page .gform_wrapper select:focus,
body.bc-reg-product .gform_wrapper textarea:focus,
body.bc-reg-page .gform_wrapper textarea:focus{
  outline: none !important;
  border-color: rgba(0,0,0,0.45) !important;
  box-shadow: 0 0 0 3px rgba(0,0,0,0.08) !important;
}
body.bc-reg-product .gform_wrapper .gfield,
body.bc-reg-page .gform_wrapper .gfield{
  margin-top: 14px !important;
}


/* =========================================================
   GF ACK CHECKBOX FIX (Registration Funnel)
========================================================= */
body.bc-reg-product .gform_wrapper input[type="checkbox"],
body.bc-reg-page .gform_wrapper input[type="checkbox"],
body.bc-registration-checkout .gform_wrapper input[type="checkbox"],
body.bc-reg-hub .gform_wrapper input[type="checkbox"],
body.bc-reg-product .gform_wrapper input[type="radio"],
body.bc-reg-page .gform_wrapper input[type="radio"],
body.bc-registration-checkout .gform_wrapper input[type="radio"],
body.bc-reg-hub .gform_wrapper input[type="radio"]{
  -webkit-appearance: auto !important;
  appearance: auto !important;
  opacity: 1 !important;
  visibility: visible !important;
  position: static !important;
  left: auto !important;
  width: auto !important;
  height: auto !important;
  margin: 0 .5em 0 0 !important;
  clip: auto !important;
  clip-path: none !important;
  transform: none !important;
  pointer-events: auto !important;
}
body.bc-reg-product .gform_wrapper .gfield_checkbox label::before,
body.bc-reg-page .gform_wrapper .gfield_checkbox label::before,
body.bc-registration-checkout .gform_wrapper .gfield_checkbox label::before,
body.bc-reg-hub .gform_wrapper .gfield_checkbox label::before,
body.bc-reg-product .gform_wrapper .gfield_radio label::before,
body.bc-reg-page .gform_wrapper .gfield_radio label::before,
body.bc-registration-checkout .gform_wrapper .gfield_radio label::before,
body.bc-reg-hub .gform_wrapper .gfield_radio label::before,
body.bc-reg-product .gform_wrapper .gfield_checkbox label::after,
body.bc-reg-page .gform_wrapper .gfield_checkbox label::after,
body.bc-registration-checkout .gform_wrapper .gfield_checkbox label::after,
body.bc-reg-hub .gform_wrapper .gfield_checkbox label::after,
body.bc-reg-product .gform_wrapper .gfield_radio label::after,
body.bc-reg-page .gform_wrapper .gfield_radio label::after,
body.bc-registration-checkout .gform_wrapper .gfield_radio label::after,
body.bc-reg-hub .gform_wrapper .gfield_radio label::after{
  content: none !important;
  display: none !important;
}


/* =========================================================
   REG PRODUCT — Woo "Sale!" badge (fix rail layout + make red)
========================================================= */
body.bc-reg-product.single-product .product.product_cat-registration-hub,
body.bc-reg-product.single-product .product.product_cat-registration-hub .summary,
body.bc-reg-product.single-product .product.product_cat-registration-hub .woocommerce-product-gallery{
  position: relative !important;
}
body.bc-reg-product.single-product .product.product_cat-registration-hub span.onsale{
  position: absolute !important;
  top: 12px !important;
  left: 12px !important;
  z-index: 50 !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  padding: 6px 10px !important;
  border-radius: 999px !important;

  background: #c40000 !important;
  color: #fff !important;

  font-weight: 900 !important;
  font-size: 13px !important;
  line-height: 1 !important;

  box-shadow: 0 10px 22px rgba(0,0,0,0.18) !important;
  margin: 0 !important;

  float: none !important;
  max-width: calc(100% - 24px) !important;
  white-space: nowrap !important;
}

/* Pre-order availability */
body.bc-reg-product .availability_date{
  display: block !important;
  text-align: center !important;
  font-weight: 650 !important;
  margin: 8px 0 10px 0 !important;
}
body.bc-reg-product .availability_date .bc-preorder-date{
  color: #c40000 !important;
  font-weight: 900 !important;
}
/* ============================================================
   GF WRAPPER — HIDE OUTER "CARD" + LET gform-body / bc-gf-mount BE THE CARD
   (Restores: no extra border/padding/shadow from div.gform_wrapper)
============================================================ */

/* Scope to your reg product pages (adjust if you use a different body class) */
body.bc-reg-product .gform_wrapper,
body.bc-reg-page .gform_wrapper,
body.woocommerce-page .gform_wrapper{
  /* remove the unwanted outer container styling */
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
}

/* Gravity “theme wrapper” often carries the border/padding, not just .gform_wrapper */
body.bc-reg-product .gform_wrapper.gravity-theme,
body.bc-reg-page .gform_wrapper.gravity-theme,
body.woocommerce-page .gform_wrapper.gravity-theme{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
}

/* Your mount should be the full-width container */
body.bc-reg-product #bc-gf-mount,
body.bc-reg-page #bc-gf-mount{
  display: block !important;
  width: 100% !important;
}

/* Make the form body fill and carry the card look (if you already style it elsewhere, keep this minimal) */
body.bc-reg-product #bc-gf-mount .gform-body,
body.bc-reg-page #bc-gf-mount .gform-body{
  width: 100% !important;
}

/* Optional: tiny “room to breathe” for fields (you asked for ~2% max) */
body.bc-reg-product #bc-gf-mount #gform_fields_57,
body.bc-reg-page #bc-gf-mount #gform_fields_57{
  padding: 2% !important;
  box-sizing: border-box !important;
}

/* Ensure padding doesn’t break the grid */
body.bc-reg-product #bc-gf-mount #gform_fields_57 > .gfield,
body.bc-reg-page #bc-gf-mount #gform_fields_57 > .gfield{
  box-sizing: border-box !important;
}
/* =========================================================
   COMPOSITE VARIATIONS — FORCE FULL-WIDTH TABLE
   (Prevents shrink-wrap 279px tables)
========================================================= */

body.bc-reg-product .composite_component .composited_product_details_wrapper{
  width: 100% !important;
}

body.bc-reg-product .composite_component .composited_product_details_wrapper table.variations{
  width: 100% !important;
  min-width: 100% !important;
  table-layout: fixed !important; /* stops shrink-to-content behavior */
}

/* Keep the flex row centered across the full table width */
body.bc-reg-product .composite_component table.variations tr.attribute_options{
  width: 100% !important;
  justify-content: center !important;
}
/* =========================================================
   COMPOSITE COMPONENT — REMOVE IMAGE LANE
   (Fixes mismatched variations widths between components)
========================================================= */

body.bc-reg-product .composite_component .composited_product_images,
body.bc-reg-product .composite_component .composited_product_image,
body.bc-reg-product .composite_component .composited_product_images.images{
  display: none !important;
  width: 0 !important;
  max-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Force the details lane to take full width */
body.bc-reg-product .composite_component .composited_product_details_wrapper,
body.bc-reg-product .composite_component .details.component_data{
  width: 100% !important;
  max-width: 100% !important;
}
body.bc-reg-product .composite_component .composited_product_details_wrapper{
  float: none !important;
  flex: 1 1 auto !important;
}
/* =========================================================
   COMPOSITE VARIATIONS — FINAL ALIGNMENT + NO OVERFLOW
   Goals:
   - Both components line up to same left/right edges
   - Center label+select consistently
   - Prevent right-side overflow on small screens
========================================================= */

/* 1) Normalize the inner lane widths (eliminate 581 vs 557 drift) */
body.bc-reg-product .composite_component .details.component_data,
body.bc-reg-product .composite_component .composited_product_details_wrapper{
  width: 100% !important;
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

/* If any inner wrapper adds padding, clamp it */
body.bc-reg-product .composite_component .details.component_data > *{
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* 2) Table must be full-width, always */
body.bc-reg-product .composite_component table.variations{
  width: 100% !important;
  min-width: 100% !important;
  margin: 0 !important;
  table-layout: fixed !important;
  box-sizing: border-box !important;
}

/* 3) The row is the alignment “rail”: full width + centered */
body.bc-reg-product .composite_component table.variations tr.attribute_options{
  display: flex !important;
  width: 100% !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 10px !important;
  flex-wrap: wrap !important;            /* KEY: allows wrap on tight screens */
}

/* 4) Stop fixed-width cell behavior causing drift/overflow */
body.bc-reg-product .composite_component table.variations td.label{
  flex: 0 0 auto !important;
  white-space: nowrap !important;
  margin: 0 !important;
}

body.bc-reg-product .composite_component table.variations td.value{
  flex: 0 1 320px !important;            /* can shrink; not locked at 220px */
  min-width: 0 !important;               /* KEY: prevents overflow in flex */
  width: auto !important;
  text-align: center !important;
  margin: 0 !important;
}

/* 5) Select must never exceed card */
body.bc-reg-product .composite_component table.variations td.value select{
  width: min(320px, 100%) !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* 6) Remove any invisible junk reserving space */
body.bc-reg-product .composite_component .reset_variations_wrapper_fixed{
  display: none !important;
}

/* 7) Hard safety: nothing inside component can spill out */
body.bc-reg-product .composite_component{
  overflow-x: hidden !important;
}
/* =========================================================
   GF57 — Remove phantom reserved row (field_57_79 HTML block)
========================================================= */
body.bc-reg-product #gform_fields_57 #field_57_79{
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body.bc-reg-product #gform_fields_57 #field_57_79:empty{
  display: none !important;
}
/* =========================================================
   GF57 — Remove wasted space above/below + kill empty footer section
========================================================= */

/* 1) Kill the wrapper padding that creates the "blank first row" */
body.bc-reg-product #bc-gf-mount{
  padding-top: 0 !important;
  padding-bottom: 0 !important;  /* remove bottom dead space too */
  margin-bottom: 0 !important;   /* optional: tighten outside spacing */
}

/* 2) Tighten the very first field so the header sits tight */
body.bc-reg-product #bc-gf-mount #gform_fields_57 > .gfield:first-child{
  margin-top: 0 !important;
}

/* 3) Remove the empty trailing section (your lastVisibleField) */
body.bc-reg-product #bc-gf-mount #field_57_70{
  display: none !important;
}

/* 4) Optional: if you want NO divider line under section headers, keep spacing but remove the line */
body.bc-reg-product #bc-gf-mount .gsection{
  border-bottom: 0 !important;
}

/* 5) Mobile: prevent any tiny right overflow */
body.bc-reg-product #bc-gf-mount,
body.bc-reg-product #bc-gf-mount *{
  box-sizing: border-box;
}
body.bc-reg-product #bc-gf-mount select,
body.bc-reg-product #bc-gf-mount input,
body.bc-reg-product #bc-gf-mount textarea{
  max-width: 100% !important;
}
/* =========================================================
   BC REG — Global Card Surface (borders + shadow)
   Scoped to bc-reg-page / bc-reg-product only
========================================================= */

/* 1) Define a consistent card surface */
body.bc-reg-page,
body.bc-reg-product{
  --bc-card-border: rgba(0,0,0,.16);   /* thicker-looking border */
  --bc-card-shadow: 0 10px 26px rgba(0,0,0,.12);
  --bc-card-radius: 16px;
}

/* 2) Hit the real “container cards” you’re using */
body.bc-reg-page .bc-card,
body.bc-reg-product .bc-card,
body.bc-reg-page .bc-wizard-card,
body.bc-reg-product .bc-wizard-card,
body.bc-reg-page .bc-wizard-option,
body.bc-reg-product .bc-wizard-option,
body.bc-reg-page .bc-reg-card,
body.bc-reg-product .bc-reg-card,
body.bc-reg-product .composite_component,
body.bc-reg-product .component_content,
body.bc-reg-product .composited_product_details_wrapper,
body.bc-reg-product .composite_wrap,
body.bc-reg-product .woocommerce-product-details__short-description,
body.bc-reg-product #bc-gf-mount{
  border: 1.5px solid var(--bc-card-border) !important;
  border-radius: var(--bc-card-radius) !important;
  box-shadow: var(--bc-card-shadow) !important;
  background-clip: padding-box;
}

/* Optional: remove “double borders” when a card contains another card */
body.bc-reg-product .composite_component .component_content{
  border: 0 !important;
  box-shadow: none !important;
}

/* =========================================================
   BC REG — Reduce Left Gutter / Over-Padding
========================================================= */

/* 3) Common culprit: theme container padding */
body.bc-reg-page .site-content,
body.bc-reg-product .site-content,
body.bc-reg-page .content-area,
body.bc-reg-product .content-area,
body.bc-reg-page .entry-content,
body.bc-reg-product .entry-content{
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* 4) Keep the page from touching the edges: add controlled padding */
body.bc-reg-page .entry-content > *,
body.bc-reg-product .entry-content > *{
  margin-left: auto;
  margin-right: auto;
  max-width: 860px;                /* adjust if you want wider */
  padding-left: 14px;
  padding-right: 14px;
}

/* 5) Specific to your GF mount/grid: kill internal “mystery” left padding */
body.bc-reg-product #bc-gf-mount{
  padding-left: 14px !important;   /* keep card padding */
  padding-right: 14px !important;
}

body.bc-reg-product #bc-gf-mount #gform_fields_57{
  padding-left: 0 !important;      /* was ~9.6px in your JSON */
  padding-right: 0 !important;
}
/* =========================================================
   COMPOSITE VARIATIONS — Add breathing room inside card
========================================================= */

/* Add inner padding to the content area that holds variations */
body.bc-reg-product .composite_component .component_content,
body.bc-reg-product .composite_component .details.component_data{
  padding: 16px !important;   /* adjust 14–20px to taste */
}

/* Ensure the table still fills the padded container cleanly */
body.bc-reg-product .composite_component table.variations{
  width: 100% !important;
  margin: 0 !important;
  box-sizing: border-box;
}
body.bc-reg-product .composite_component table.variations{
  background: rgba(0,0,0,0.02);
  border-radius: 12px;
  padding: 12px 14px;
}
/* =========================================================
   BC REG — World-class rail clamp (forms)
   - 720px max on desktop
   - tighter gutters on mobile
   - symmetric by construction
========================================================= */

body.bc-reg-product{
  --bc-rail-max: 720px;
  --bc-gutter: 24px;
}

/* Clamp the actual content rail (the thing you see) */
body.bc-reg-product.single-product .product.product_cat-registration-hub .summary{
  max-width: var(--bc-rail-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--bc-gutter) !important;
  padding-right: var(--bc-gutter) !important;
  box-sizing: border-box !important;
}

/* Topbar should match exactly */
body.bc-reg-product .bc-reg-topbar{
  max-width: var(--bc-rail-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--bc-gutter) !important;
  padding-right: var(--bc-gutter) !important;
  box-sizing: border-box !important;
}

/* Cards should be full width of the rail (no asymmetric margins) */
body.bc-reg-product #bc-gf-mount,
body.bc-reg-product .composite_component,
body.bc-reg-product .composite_totals,
body.bc-reg-product div[id^="composite_data_"] .composite_wrap{
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

/* Tablet-ish: slightly narrower gutter */
@media (max-width: 900px){
  body.bc-reg-product{ --bc-gutter: 14px; }
}

/* Mobile: near edge-to-edge */
@media (max-width: 640px){
  body.bc-reg-product{ --bc-gutter: 6px; }

  /* Prevent theme wrappers from adding their own padding */
  body.bc-reg-product #page,
  body.bc-reg-product #content,
  body.bc-reg-product .site-content,
  body.bc-reg-product .content-area,
  body.bc-reg-product #primary,
  body.bc-reg-product #main,
  body.bc-reg-product .container,
  body.bc-reg-product .wrap,
  body.bc-reg-product .wrapper{
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
/* =========================================================
   MOBILE — Fix asymmetric gutters caused by theme .content-area padding
   Keep .product.type-product intact
========================================================= */
@media (max-width: 820px){

  /* The culprit */
  body.bc-reg-product .content-area{
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Often paired with an inner wrapper that also pads */
  body.bc-reg-product .content-area .entry-content{
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* OPTIONAL: add a tiny symmetric gutter back at a stable layer
     (keeps cards off the screen edge without relying on theme padding) */
  body.bc-reg-product .content-area{
    box-sizing: border-box !important;
  }
  body.bc-reg-product .content-area > *{
    box-sizing: border-box !important;
  }
}

/* tighter phones */
@media (max-width: 640px){
  body.bc-reg-product .content-area{
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
/* =========================================================
   MOBILE GUTTERS — stop stacking: body margin + theme paddings
========================================================= */
@media (max-width: 820px){

  /* 1) Remove the browser's default 8px body margin */
  body.bc-reg-product{
    margin: 0 !important;
  }

  /* 2) Remove theme side padding that is adding 16px + 16px */
  body.bc-reg-product .content-area,
  body.bc-reg-product #primary{
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* 3) Keep ONLY a tiny, intentional rail pad */
  body.bc-reg-product.single-product div.product.type-product .summary,
  body.bc-reg-product .summary.entry-summary{
    padding-left: 6px !important;
    padding-right: 6px !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 640px){
  body.bc-reg-product.single-product div.product.type-product .summary,
  body.bc-reg-product .summary.entry-summary{
    padding-left: 4px !important;
    padding-right: 4px !important;
  }
}
/* ============================================================
   BC REG HUB — CARD GRID (RESTORE GOOD LAYOUT)
   - 2 columns desktop, stack under 900px
   - Consistent spacing
   - Prevent Gutenberg margin/padding weirdness inside cards
============================================================ */

body.bc-reg-hub .bc-hub-grid{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px !important;

  width: 100% !important;
  max-width: 980px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.bc-reg-hub .bc-hub-card{
  display: flex;
  flex-direction: column;
  position: relative; /* anchor countdown overlap */
}

/* Kill Gutenberg spacing inside each card cell */
body.bc-reg-hub .bc-hub-card > *{
  margin-top: 0 !important;
}

body.bc-reg-hub .bc-hub-card .wp-block-image{
  width: 100% !important;
  margin: 0 !important;
}

body.bc-reg-hub .bc-hub-card .wp-block-image img{
  width: 100% !important;
  height: auto !important;
  display: block !important;

  /* scale without cropping */
  object-fit: contain !important;

  border-radius: 16px !important;
}
/* ============================================================
   BC REG HUB — FULL WIDTH + KILL CONSTRAINED WRAPPERS
   - Prevent theme/Gutenberg constrained layout from squeezing hub
============================================================ */

body.bc-reg-hub .site-content,
body.bc-reg-hub .content-area,
body.bc-reg-hub .site-main,
body.bc-reg-hub .entry-content,
body.bc-reg-hub .wp-block-post-content,
body.bc-reg-hub .wp-site-blocks{
  max-width: none !important;
  width: 100% !important;
}

body.bc-reg-hub .container,
body.bc-reg-hub .content-container,
body.bc-reg-hub .wrap,
body.bc-reg-hub .site-container{
  max-width: none !important;
  width: 100% !important;
}

/* Only for hub: remove Gutenberg constrained inner container */
body.bc-reg-hub .is-layout-constrained > .wp-block-group__inner-container,
body.bc-reg-hub .wp-block-group.is-layout-constrained > .wp-block-group__inner-container{
  max-width: none !important;
  width: 100% !important;
}

/* Keep hub from feeling pinched on mobile */
body.bc-reg-hub .site-content,
body.bc-reg-hub .entry-content{
  padding-left: 14px !important;
  padding-right: 14px !important;
}
/* ============================================================
   BC COUNTDOWN — CLEAN FINAL VERSION
   - Title lighter + smaller
   - Timer pill primary visual
   - Text baseline sits on card edge
   - Only descenders overlap card
============================================================ */

body.bc-reg-hub .bc-countdown,
body.bc-reg-product .bc-countdown,
body.bc-reg-page .bc-countdown{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;

  margin: 0 !important;
  padding: 0 !important;

  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;

  position: relative;
  z-index: 5;
}

/* =========================================================
   TITLE (supporting text)
========================================================= */

body .bc-countdown__title{
  font-weight: 600;
  font-size: 14px;
  line-height: 1.1;
  letter-spacing: -0.02em;
  word-spacing: -0.02em;

  color: #3e6ab0;

  white-space: nowrap;
  text-align: center;

  /* readability boost */
  text-shadow:
    0 1px 0 rgba(255,255,255,.35),
    0 2px 4px rgba(0,0,0,.25);
}

/* =========================================================
   TIMER PILL (primary visual)
========================================================= */

body .bc-countdown__timer{
  font-weight: 800;
  font-size: 18px;
  line-height: 1;

  padding: 6px 12px !important;
  border-radius: 999px;

  color: #0A3D91;
  background: rgba(10, 61, 145, 0.10);
  border: 2px solid rgba(10, 61, 145, 0.35);

  white-space: nowrap;

  /* baseline alignment tweak */
  position: relative;
  top: 1px;

  margin-left: -2px;
box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 4px 12px rgba(0,0,0,.14);
}

/* =========================================================
   PHASE STYLING
========================================================= */

body .bc-countdown.is-early .bc-countdown__title{
  color: #0A3D91;
}

body .bc-countdown.is-early .bc-countdown__timer{
  color: #0b5b2e;
  background: rgba(0,160,80,0.14);
  border-color: rgba(0,160,80,0.55);
}

body .bc-countdown.is-late .bc-countdown__title{
  color: #7cafd4;
}

body .bc-countdown.is-late .bc-countdown__timer{
  color: #ffffff;
  background: #7cafd4;
  border-color: rgba(255,255,255,0.55);
  box-shadow: 0 4px 12px rgba(0,0,0,0.14);
}

body .bc-countdown.is-close .bc-countdown__title{
  color: #0A3D91;
}

body .bc-countdown.is-close .bc-countdown__timer{
  color: #4b2f00;
  background: rgba(245,166,35,0.22);
  border-color: rgba(245,166,35,0.70);
}

body .bc-countdown.is-game .bc-countdown__title{
  color: #0A3D91;
}

body .bc-countdown.is-game .bc-countdown__timer{
  color: #0A3D91;
  background: rgba(124,175,212,0.20);
  border-color: rgba(124,175,212,0.55);
}

body .bc-countdown.is-done .bc-countdown__title{
  color: rgba(10,61,145,0.70);
}

body .bc-countdown.is-done .bc-countdown__timer{
  color: rgba(10,61,145,0.70);
  background: rgba(10,61,145,0.07);
  border-color: rgba(10,61,145,0.22);
}

/* =========================================================
   PULSE ANIMATION
========================================================= */

@keyframes bcPulse{
  0% { transform: scale(1); }
  50% { transform: scale(1.06); }
  100% { transform: scale(1); }
}

body .bc-countdown__timer.is-pulse-green{
  animation: bcPulse 1.2s ease-in-out infinite;
  border-color: rgba(0,160,80,0.60);
  background: rgba(0,160,80,0.15);
  color: #006a38;
}

body .bc-countdown__timer.is-pulse-red{
  animation: bcPulse 1.05s ease-in-out infinite;
  border-color: rgba(200,40,40,0.75);
  background: rgba(200,40,40,0.18);
  color: #ffffff;
  box-shadow: 0 4px 14px rgba(0,0,0,0.18);
}

/* Respect reduced motion */

@media (prefers-reduced-motion: reduce){
  body .bc-countdown__timer.is-pulse-green,
  body .bc-countdown__timer.is-pulse-red{
    animation: none !important;
  }
}

/* =========================================================
   HUB CARD ALIGNMENT
   Baseline sits on top edge of card
========================================================= */

body.bc-reg-hub .bc-hub-card .bc-countdown{
  transform: translateY(-10px);
  margin-bottom: 0 !important;
}

/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 600px){

  body .bc-countdown__title{
    font-size: 13px;
  }

  body .bc-countdown__timer{
    font-size: 16px;
    padding: 6px 10px !important;
  }

  body.bc-reg-hub .bc-hub-card .bc-countdown{
    transform: translateY(-10px);
  }

}
/* ============================================================
   HUB GRID: 2x2 Desktop, Stack ONLY on phones
============================================================ */

body.bc-reg-hub .bc-hub-grid{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px !important;

  max-width: 980px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  width: 100% !important;
}

/* Stack only at phone widths */
@media (max-width: 640px){
  body.bc-reg-hub .bc-hub-grid{
    grid-template-columns: 1fr !important;
    max-width: none !important;
  }
}

/* Card wrapper */
body.bc-reg-hub .bc-hub-card{
  display: flex;
  flex-direction: column;
}

/* Remove Gutenberg spacing */
body.bc-reg-hub .bc-hub-card .wp-block-image{
  width: 100% !important;
  margin: 0 !important;
}

/* SCALE image without cropping */
body.bc-reg-hub .bc-hub-card .wp-block-image img{
  width: 100% !important;
  height: auto !important;
  display: block !important;

  max-height: clamp(160px, 22vw, 240px) !important;
  object-fit: contain !important;
  border-radius: 16px;
}

@media (max-width: 780px){
  body.bc-reg-hub .bc-hub-card .wp-block-image img{
    max-height: clamp(210px, 52vw, 320px) !important;
  }
}

/* ============================================================
   GUTENBERG COLUMNS — FIX STACK GAP (RAILS)
============================================================ */

body.bc-reg-rail .wp-block-columns.bc-reg-card-grid{
  gap: 18px;
}

@media (max-width: 781px){
  body.bc-reg-rail .wp-block-columns.bc-reg-card-grid{
    gap: 16px !important;
    margin-block: 0 !important;
  }

  body.bc-reg-rail .wp-block-columns.bc-reg-card-grid .wp-block-column.is-layout-flow{
    --wp--style--block-gap: 0px !important;
  }

  body.bc-reg-rail .wp-block-columns.bc-reg-card-grid .wp-block-column > *:last-child{
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }

  body.bc-reg-rail .wp-block-columns.bc-reg-card-grid .wp-block-column > *:first-child{
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  body.bc-reg-rail .wp-block-columns.bc-reg-card-grid .wp-block-group,
  body.bc-reg-rail .wp-block-columns.bc-reg-card-grid .wp-block-cover,
  body.bc-reg-rail .wp-block-columns.bc-reg-card-grid .wp-block-media-text{
    margin: 0 !important;
  }
}
/* ============================================================
   HUB COUNTDOWN — SCALE WITH CARD (NO WRAP, NO OVERFLOW)
   Uses container query units (cqi) so it scales like the card.
============================================================ */

/* Enable container sizing on each card */
body.bc-reg-hub .bc-hub-card{
  container-type: inline-size;
}

/* Countdown row: never wrap, allow shrinking */
body.bc-reg-hub .bc-hub-card .bc-countdown{
  flex-wrap: nowrap !important;
  white-space: nowrap !important;

  /* keep your “attached” overlap */
  transform: translateY(10px);
  margin-bottom: -10px !important;

  /* reduce gap as card shrinks */
  gap: clamp(6px, 2cqi, 10px) !important;
}

/* Make BOTH pieces scale with the card width */
body.bc-reg-hub .bc-hub-card .bc-countdown__title,
body.bc-reg-hub .bc-hub-card .bc-countdown__timer{
  font-size: clamp(14px, 6cqi, 22px) !important;
}

/* Allow title to shrink instead of forcing overflow */
body.bc-reg-hub .bc-hub-card .bc-countdown__title{
  min-width: 0 !important;
  flex: 1 1 auto !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important; /* only kicks in on very tight widths */
}

/* Timer can shrink a bit too (prevents the whole row from spilling) */
body.bc-reg-hub .bc-hub-card .bc-countdown__timer{
  flex: 0 1 auto !important;
  padding: clamp(4px, 1.2cqi, 6px) clamp(10px, 3cqi, 14px) !important;
}
/* ============================================================
   BC COUNTDOWN — HARD OVERRIDE FIT (NO OVERFLOW)
   JS sets: --bc-fit (0.50–1.00)
============================================================ */

body.bc-reg-hub .bc-hub-card .bc-countdown{
  --bc-fit: 1;
  transform-origin: center top !important;
  transform: translateY(px) scale(var(--bc-fit)) !important;
  margin-bottom: -10px !important;

  /* never wrap */
  flex-wrap: nowrap !important;
  white-space: nowrap !important;
}

body.bc-reg-hub .bc-hub-card .bc-countdown__title,
body.bc-reg-hub .bc-hub-card .bc-countdown__timer{
  white-space: nowrap !important;
}
/* ============================================================
   HUB COUNTDOWN — FIT TO CARD (NO OVERFLOW)
   JS sets --bc-fit; CSS owns transform + centering
============================================================ */
body.bc-reg-hub .bc-hub-card .bc-countdown{
  --bc-fit: 1;

  width: max-content !important;
  max-width: none !important;
  margin-left: auto !important;
  margin-right: auto !important;

  transform-origin: center top !important;
  transform: translateY(-0px) scale(var(--bc-fit)) !important;
margin-bottom: -12px !important;

  flex-wrap: nowrap !important;
  white-space: nowrap !important;

  will-change: transform;
}

/* ============================================================
   WOO COUNTDOWN BADGE (LEGACY) — DISABLED
   We no longer use the Woo "onsale" badge for countdown on
   single product pages. Countdown is rendered inline under price.
============================================================ */
body.woocommerce.single-product span.onsale.bc-woo-countdown,
body.woocommerce.single-product .summary span.onsale.bc-woo-countdown,
body.woocommerce.single-product span.onsale.bc-woo-countdown::before,
body.woocommerce.single-product span.onsale.bc-woo-countdown::after{
  display: none !important;
  content: none !important;
}
/* ===== CNB: ALIGN LABEL NEXT TO ICON (PROPER ANCHOR) ===== */

/* Keep wrapper inline with natural positioning */
.cnb-single.cnb-fixed .cnb-floating {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important; /* was center */
  gap: 10px !important;
}

/* Rebuild the label pill */
.cnb-floating-label {
  font-size: 0 !important;       
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  padding: 9px 16px !important;
  border-radius: 999px !important;

  background: rgba(0,0,0,0.5) !important;
  color: #fff !important;

  white-space: nowrap !important;
  margin: 0 !important;
  line-height: 1 !important;

  position: static !important;   /* remove relative shifting */
  transform: none !important;
}

/* Hide injected internal nodes */
.cnb-floating-label * {
  display: none !important;
}

/* Inject custom label text */
.cnb-floating-label::after {
  content: "Text Us" !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  letter-spacing: .4px !important;
  line-height: 1 !important;
  display: inline-block !important;
}

/* =========================================================
   CHECKOUT: Payment method description list alignment
   - Fixes janky OL indentation inside .payment_box
   ========================================================= */

.woocommerce-checkout #payment .payment_box ol {
  margin: 10px 0 10px 0 !important;
  padding-left: 22px !important;          /* controls how far numbers sit in */
  list-style-position: outside !important;
}

.woocommerce-checkout #payment .payment_box ol li {
  margin: 6px 0 !important;
  padding-left: 0 !important;
}

.woocommerce-checkout #payment .payment_box ol li::marker {
  font-weight: 700;
}

/* Tighten paragraphs around the list so it reads clean */
.woocommerce-checkout #payment .payment_box p {
  margin: 8px 0 !important;
}

/* Make the dynamic amount line sit nicely */
.woocommerce-checkout #payment .payment_box .bc-dynamic-amount {
  margin-top: 10px !important;
  font-weight: 700;
}
/* =========================================================
   CHECKOUT: Force step list alignment in payment descriptions
   - Replaces <ol> markers with CSS counters (theme-proof)
   ========================================================= */

.woocommerce-checkout #payment .payment_box ol {
  margin: 10px 0 !important;
  padding: 0 !important;
  list-style: none !important;

  counter-reset: bcstep;
}

.woocommerce-checkout #payment .payment_box ol > li {
  margin: 8px 0 !important;
  padding: 0 !important;

  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;

  counter-increment: bcstep;
}

/* Step number */
.woocommerce-checkout #payment .payment_box ol > li::before {
  content: counter(bcstep) "." !important;
  display: inline-block !important;
  min-width: 22px !important;     /* controls number column width */
  text-align: right !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
}

/* Kill any theme marker/pseudo marker behavior */
.woocommerce-checkout #payment .payment_box ol > li::marker {
  content: "" !important;
}

/* Optional: tighten paragraphs around list */
.woocommerce-checkout #payment .payment_box p {
  margin: 8px 0 !important;
}
/* =========================================================
   CHECKOUT: Payment steps — tighten number/text alignment
   ========================================================= */

/* Ensure LI is the flex row and nothing inside adds extra indent */
.woocommerce-checkout #payment .payment_box ol > li {
  display: flex !important;
  align-items: flex-start !important;
  gap: 12px !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
  text-indent: 0 !important;
}

/* Number column */
.woocommerce-checkout #payment .payment_box ol > li::before {
  min-width: 28px !important;     /* slightly wider = cleaner column */
  text-align: right !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.6 !important;
}

/* Force everything inside LI to start at the same left edge */
.woocommerce-checkout #payment .payment_box ol > li > * {
  margin-left: 0 !important;
  padding-left: 0 !important;
}

/* If theme wraps LI text in <p> or adds margin, neutralize */
.woocommerce-checkout #payment .payment_box ol > li p,
.woocommerce-checkout #payment .payment_box ol > li span {
  margin: 0 !important;
  padding: 0 !important;
}
/* REG CHECKOUT: fix Woo login-toggle icon artifact */
body.bc-registration-checkout .woocommerce-form-login-toggle .woocommerce-info::before{
  display: none !important;
}
body.bc-registration-checkout .woocommerce-form-login-toggle .woocommerce-info{
  padding-left: 14px !important; /* remove space that was reserved for the icon */
}
/* Checkout Acknowledgements: red highlight when missing */
body.woocommerce-checkout .bc-checkout-ack-item.bc-ack-missing{
  border: 2px solid #d63638 !important;
  background: rgba(214,54,56,.06) !important;
  border-radius: 12px !important;
  padding: 12px !important;
}
body.woocommerce-checkout .bc-checkout-ack-item.bc-ack-missing .bc-ack-inline-error{
  color: #d63638 !important;
  font-weight: 800 !important;
}

/* =========================================================
   CHECKOUT: Match BC Waiver checkbox styling to Program Acks
   Target: #bc_waiver_ack_field
   ========================================================= */

/* Neutral (premium) look */
body.woocommerce-checkout #bc_waiver_ack_field{
  border: 1px solid rgba(0,0,0,.10) !important;
  background: rgba(0,0,0,.02) !important;
  border-radius: 12px !important;
  padding: 12px !important;
  margin: 12px 0 !important;
}

/* Error state (match bc-ack-missing red) */
body.woocommerce-checkout #bc_waiver_ack_field.woocommerce-invalid,
body.woocommerce-checkout #bc_waiver_ack_field.woocommerce-invalid-required-field{
  border: 2px solid #d63638 !important;
  background: rgba(214,54,56,.06) !important;
}

/* Label weight to match */
body.woocommerce-checkout #bc_waiver_ack_field label{
  font-weight: 800 !important;
}
