.divi_fb_gateways a,.divi_fb_gateways label,.stripe-close{cursor:pointer}.tc_wrap{display:block;padding-top:20px}#card-wrap #card-number-error,.de_fb_gateway_paypal_form .et_pb_column.calculation.last-item,.de_fb_gateway_stripe_form .et_pb_column.calculation.last-item{display:none!important}.stripe-modal .tc_wrap{padding-top:0;padding-bottom:20px}#main-content .divi_fb_gateways{padding-bottom:0}.divi_fb_gateways a{list-style:none;display:inline-block}body #page-container #main-content .et_pb_section .divi_fb_gateway_paypal::after,body #page-container #main-content .et_pb_section .divi_fb_gateway_stripe::after{display:block!important}.divi_fb_gateways a input[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:none}.divi_fb_gateway_paypal.selected:after,.divi_fb_gateway_paypal.selected:before,.divi_fb_gateway_stripe.selected:after,.divi_fb_gateway_stripe.selected:before{font-size:20px}.gateway-form.hide,.payment_design_button .divi_fb_gateways a input[type=radio]{display:none}.de_fb_card_icons{position:absolute!important;top:17px;right:13px}.fb-form-labels-on.de_fb_card_icons{top:40px}.de_fb_card_icons .card-icon{display:none;width:30px}.de_fb_card_icons .card-icon.active{display:inline-block}.de_fb_payment_area{border-style:solid;float:left;width:100%}#card-element{display:inline-block;width:100%;padding-top:20px}#card-element .StripeElement{background-color:#eee;border-width:0;border-radius:0;color:#999;font-size:14px;padding:16px;margin-bottom:1em}#card-element .divi-fb-gateway-field{margin-bottom:1em}.stripe-modal{display:none;position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;background-color:rgba(0,0,0,.5)}.stripe-modal-content{background-color:#fff;margin:10% auto;padding:50px 20px 20px;width:50%;border-radius:10px;text-align:center}.stripe-close{float:right;font-size:28px;z-index:99999;position:absolute;top:0;right:0}.payment-errors{display:block}.et_pb_column.stripe-gateway-form{z-index:3}.divi_fb_payment_gateway_selection::after,.divi_fb_payment_gateway_selection::before{top:50%;transform:translateY(-50%)}.dmem-item-toggle-container .dmem-toggle{position:relative;box-sizing:border-box;margin-left:10px;margin-right:10px}.dmem-item-toggle-container .dmem-toggle input[type=checkbox]{position:absolute;left:0;top:0;z-index:10;width:100%;height:100%;cursor:pointer;opacity:0}.dmem-item-toggle-container .dmem-toggle input[type=checkbox]:checked+label:after{left:34px}.dmem-item-toggle-container .dmem-toggle label{position:relative;display:flex;align-items:center;box-sizing:border-box}.dmem-item-toggle-container .dmem-toggle label:before{content:"";width:60px;height:30px;position:relative;display:inline-block;border-radius:46px;box-sizing:border-box;transition:.2s ease-in}.dmem-item-toggle-container .dmem-toggle label:after{content:"";position:absolute;width:22px;height:22px;border-radius:50%;left:4px;top:4px;z-index:2;box-sizing:border-box;transition:.2s ease-in}.dmem-item-toggle-container .dmem-toggle,.dmem-item-toggle-container p{display:inline-block;vertical-align:middle;padding:0}.dmem-item-toggle-container{padding:10px 0 20px}.divi-fb-form-row.last-item,.divi_amount_wrapper.last-item{margin-right:0!important}.divi-fb-form-row.et_pb_contact_field{padding-left:0}.divi_fb_gateways svg{height:40px;max-height:20px}@media (max-width:767px){.divi_fb_gateways{display:flex}.divi_fb_gateways a{flex:1;text-align:center;margin:0 5px}}@media (max-width:400px){.divi_fb_gateways{display:block}.divi_fb_gateways a{width:100%;margin:0 0 10px}}

/* DFB multistep: prevent interaction with inactive steps (opacity-only hiding can still be clickable). */
.fb_form.multistep .df_form_step,
.fb_form.multistep .df_form_step .de_fb_form_field{pointer-events:none;overflow:hidden}
.fb_form.multistep .df_form_step.active,
.fb_form.multistep .df_form_step.active .de_fb_form_field{pointer-events:auto;overflow:visible}

/* DFB multistep: prevent Divi 5 flex rows from stretching step buttons full height. */
.de_fb_form .fb_form.multistep .df_form_step.et_flex_row,
.de_form_builder_form .fb_form.multistep .df_form_step.et_flex_row{
  align-items:flex-start;
}
.de_fb_form .fb_form.multistep .step_button_wrapper,
.de_form_builder_form .fb_form.multistep .step_button_wrapper{
  align-items:center;
}
.de_fb_form .fb_form.multistep .step_button_wrapper .et_pb_button,
.de_form_builder_form .fb_form.multistep .step_button_wrapper .et_pb_button{
  align-self:flex-start;
}

/* Payment gateway buttons: avoid inline-block whitespace gap (matches Visual Builder). */
.divi_fb_gateways{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

/* Price field: ensure full-width so next columns don't overlap (mobile/responsive). */
.fb_payment_price_cont{
  display:block;
  width:100%;
  float:left;
  clear:both;
}
.fb_payment_price_cont.price-label-top .plan-price-label,
.fb_payment_price_cont.price-label-top .plan-price,
.fb_payment_price_cont.price-label-top #custom_price_wrapper{
  display:block;
  width:100%;
}

/* Divi 4 Stripe legacy fields: mimic Divi contact input styling even if Divi static CSS is suppressed. */
.stripe-gateway-form.et_pb_contact p input.divi-form-builder-field,
.stripe-gateway-form.et_pb_contact p input.et_pb_contact_input{
  background-color:#eee;
  border-width:0;
  border-radius:0;
  color:#999;
  font-size:14px;
  padding:16px;
  margin-bottom:1em;
  width:100%;
  box-sizing:border-box;
}

/* Stripe popup: allow scrolling for long "Advanced" payment UIs (Klarna, Amazon Pay, etc.). */
#stripeModal.stripe-modal{
  /* Keep the overlay fixed, but allow the viewport to scroll when content is tall. */
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  box-sizing:border-box;
  /* Provide breathing room on small screens so the content isn't flush to edges. */
  padding:24px 12px;
}
#stripeModal.stripe-modal .stripe-modal-content{
  /* Existing styles set margin:10% auto and fixed width; override so it fits the viewport. */
  position:relative; /* Make .stripe-close position relative to modal content */
  margin:0 auto;
  width:min(720px, 100%);
  max-width:720px;
  /* Constrain height to viewport and allow inner scrolling. */
  max-height:calc(100vh - 48px);
  overflow-y:auto;
  overflow-x:hidden;
  box-sizing:border-box;
}
#stripeModal.stripe-modal .stripe-close{
  /* Ensure close button stays in the visible modal area */
  top:12px;
  right:12px;
}

/* Divi 5 flex rows: remove legacy float-grid gutters (margin-right) so columns align correctly. */
@media (min-width:981px){
  .de_form_builder_form .divi-form-wrapper .et_flex_row .et_pb_column{
    margin-right:0 !important;
  }
}

/* Divi 5 flex rows add a default row-gap (40px). Keep Form Builder spacing compact. */
.de_form_builder_form .divi-form-wrapper .dfb-form-fields.et_flex_row,
.de_form_builder_form .divi-form-wrapper .df_form_step.et_flex_row{
  --vertical-gap: 0px;
  row-gap: 0px;
}

/* Simple captcha + submit alignment (frontend): keep captcha and button inline.
   Note: On some Divi 5 renders `.et_contact_bottom_container` is output as a sibling
   of `.de_form_builder_form`, so we target both nested + sibling structures. */
.de_form_builder_form .et_contact_bottom_container .submit-container,
.de_form_builder_form + .et_contact_bottom_container .submit-container,
.de_fb_form .et_contact_bottom_container .submit-container,
.de_fb_form + .et_contact_bottom_container .submit-container,
.de_fb_form ~ .et_contact_bottom_container .submit-container{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:18px;
  width:100%;
  justify-content:flex-end;
}
.de_form_builder_form .et_contact_bottom_container .dfb-captcha-wrapper,
.de_form_builder_form + .et_contact_bottom_container .dfb-captcha-wrapper,
.de_fb_form .et_contact_bottom_container .dfb-captcha-wrapper,
.de_fb_form + .et_contact_bottom_container .dfb-captcha-wrapper,
.de_fb_form ~ .et_contact_bottom_container .dfb-captcha-wrapper{
  display:flex;
  align-items:center;
}
.de_form_builder_form .et_contact_bottom_container .maths_captcha.captcha-field,
.de_form_builder_form + .et_contact_bottom_container .maths_captcha.captcha-field,
.de_fb_form .et_contact_bottom_container .maths_captcha.captcha-field,
.de_fb_form + .et_contact_bottom_container .maths_captcha.captcha-field,
.de_fb_form ~ .et_contact_bottom_container .maths_captcha.captcha-field{
  display:inline-flex !important;
  align-items:center;
  gap:8px;
  width:auto !important;
  max-width:100%;
  flex:0 0 auto !important;
  float:none !important;
  margin:0 !important;
}
.de_form_builder_form .et_contact_bottom_container .maths_captcha.captcha-field label,
.de_form_builder_form + .et_contact_bottom_container .maths_captcha.captcha-field label,
.de_fb_form .et_contact_bottom_container .maths_captcha.captcha-field label,
.de_fb_form + .et_contact_bottom_container .maths_captcha.captcha-field label,
.de_fb_form ~ .et_contact_bottom_container .maths_captcha.captcha-field label{
  margin:0;
  line-height:1;
}

/* Ensure the submit button wrapper doesn't take full row. */
.de_form_builder_form .et_contact_bottom_container .et_pb_contact_submit,
.de_form_builder_form + .et_contact_bottom_container .et_pb_contact_submit,
.de_fb_form .et_contact_bottom_container .et_pb_contact_submit,
.de_fb_form + .et_contact_bottom_container .et_pb_contact_submit,
.de_fb_form ~ .et_contact_bottom_container .et_pb_contact_submit{
  display:flex;
  align-items:center;
  margin:0 !important;
}

/* Ensure the submit container doesn't stretch. */
.de_form_builder_form .et_contact_bottom_container .de_fb_submit_container,
.de_form_builder_form .et_contact_bottom_container .divi-form-submit-container,
.de_form_builder_form + .et_contact_bottom_container .de_fb_submit_container,
.de_form_builder_form + .et_contact_bottom_container .divi-form-submit-container{
  width:auto !important;
  flex:0 0 auto !important;
  margin:0 !important;
}

/* Full-width submit button support (Divi 4 + Divi 5). */
.de_form_builder_form .et_contact_bottom_container .de_fb_submit_container.et_pb_button_fullwidth,
.de_form_builder_form + .et_contact_bottom_container .de_fb_submit_container.et_pb_button_fullwidth,
.de_fb_form .et_contact_bottom_container .de_fb_submit_container.et_pb_button_fullwidth,
.de_fb_form + .et_contact_bottom_container .de_fb_submit_container.et_pb_button_fullwidth,
.de_fb_form ~ .et_contact_bottom_container .de_fb_submit_container.et_pb_button_fullwidth{
  width:100% !important;
  flex:1 0 100% !important;
}

.de_form_builder_form .et_contact_bottom_container .de_fb_submit_container.et_pb_button_fullwidth .divi-form-submit-container,
.de_form_builder_form + .et_contact_bottom_container .de_fb_submit_container.et_pb_button_fullwidth .divi-form-submit-container,
.de_fb_form .et_contact_bottom_container .de_fb_submit_container.et_pb_button_fullwidth .divi-form-submit-container,
.de_fb_form + .et_contact_bottom_container .de_fb_submit_container.et_pb_button_fullwidth .divi-form-submit-container,
.de_fb_form ~ .et_contact_bottom_container .de_fb_submit_container.et_pb_button_fullwidth .divi-form-submit-container{
  width:100% !important;
  flex:1 0 100% !important;
}

.de_form_builder_form .et_contact_bottom_container .de_fb_submit_container.et_pb_button_fullwidth .divi-form-submit,
.de_form_builder_form + .et_contact_bottom_container .de_fb_submit_container.et_pb_button_fullwidth .divi-form-submit,
.de_fb_form .et_contact_bottom_container .de_fb_submit_container.et_pb_button_fullwidth .divi-form-submit,
.de_fb_form + .et_contact_bottom_container .de_fb_submit_container.et_pb_button_fullwidth .divi-form-submit,
.de_fb_form ~ .et_contact_bottom_container .de_fb_submit_container.et_pb_button_fullwidth .divi-form-submit{
  display:block;
  width:100%;
}

/* Disabled submit button styling (so it visually looks disabled). */
.de_form_builder_form .divi-form-submit[disabled],
.de_form_builder_form .divi-form-submit:disabled,
.de_fb_form .divi-form-submit[disabled],
.de_fb_form .divi-form-submit:disabled{
  opacity:0.55 !important;
  cursor:not-allowed !important;
  pointer-events:none !important;
  filter:saturate(0.7);
}

/* Checkbox & radio options: stack one per row by default (frontend). */
.de_fb_form .et_pb_contact_field_options_list,
.de_form_builder_form .et_pb_contact_field_options_list{
  display:block;
  width:100%;
}
.de_fb_form .et_pb_contact_field_options_list .et_pb_contact_field_checkbox,
.de_form_builder_form .et_pb_contact_field_options_list .et_pb_contact_field_checkbox,
.de_fb_form .et_pb_contact_field_options_list .et_pb_contact_field_radio,
.de_form_builder_form .et_pb_contact_field_options_list .et_pb_contact_field_radio{
  display:block;
}

/* Range Slider (Ion.RangeSlider - sharp skin): make min/max labels readable.
   The upstream skin sets opacity:.4, which can be too faint on some Divi 5 styles. */
.de_fb_form .irs--sharp .irs-min,
.de_fb_form .irs--sharp .irs-max,
.de_form_builder_form .irs--sharp .irs-min,
.de_form_builder_form .irs--sharp .irs-max{
  opacity:1 !important;
}

/* Select2: avoid double dropdown arrows (Divi pseudo-element + Select2 arrow). */
.de_fb_form .et_pb_contact_field.dfb-select2-active:after,
.de_form_builder_form .et_pb_contact_field.dfb-select2-active:after{
  display:none !important;
  content:none !important;
}

/* Button-style checkbox/radio fields: hide the native checkbox icon (match Divi 4). */
.de_fb_form .dfb_radio_button .et_pb_contact_field_checkbox i,
.de_form_builder_form .dfb_radio_button .et_pb_contact_field_checkbox i{
  display:none !important;
}

/* Button-style checkbox/radio layout: force one-column stack on mobile (override inline/grid layout settings). */
@media (max-width:767px){
  .de_fb_form .dfb_radio_button .et_pb_contact_field_options_list,
  .de_form_builder_form .dfb_radio_button .et_pb_contact_field_options_list{
    display:block !important;
  }
  .de_fb_form .dfb_radio_button .et_pb_contact_field_checkbox,
  .de_form_builder_form .dfb_radio_button .et_pb_contact_field_checkbox{
    width:100%;
    margin-right:0 !important;
  }
}
