/* FB Buttons — front-end floating button + popup form. Scoped to .fbmnv2. */
.fbmnv2{position:fixed;z-index:99990;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;}
/* The modal is a CHILD of .fbmnv2, and .fbmnv2 is positioned — so it creates a
   stacking context and the modal can never paint above anything that outranks
   the container, however high the modal's own z-index goes. Themes routinely put
   a sticky header above 99990 (Divi uses 100001), which would cover the popup.
   Lift the whole container only while the popup is open, so the resting button
   keeps its normal, polite layer. */
.fbmnv2.fbmnv2-open{z-index:1000000;}
/* Matches v1 exactly: split transitions, explicit-width technique (JS), !important circle. */
.fbmnv2-launch{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  background:var(--fbmn-accent,#2d6a4f);color:var(--fbmn-text,#fff);border:none;cursor:pointer;
  font-size:20px;font-weight:normal;line-height:1.2;padding:12px 20px;
  width:auto;min-width:48px;min-height:48px;border-radius:50px;
  white-space:nowrap;overflow:hidden;box-sizing:border-box;box-shadow:0 4px 15px rgba(0,0,0,.2);
  transition:width .5s cubic-bezier(.4,0,.2,1),height .5s cubic-bezier(.4,0,.2,1),
             border-radius .5s cubic-bezier(.4,0,.2,1),padding .5s cubic-bezier(.4,0,.2,1),
             box-shadow .3s ease,transform .3s ease;}
.fbmnv2-launch:hover,.fbmnv2-launch:focus{box-shadow:0 6px 20px rgba(0,0,0,.3);outline:none;}
.fbmnv2-launch:not(.scrolled):hover{transform:translateY(-2px);}
.fbmnv2-launch.scrolled:hover{transform:scale(1.1);}
.fbmnv2-text{display:inline-block;opacity:1;transform:translateX(0);
  transition:opacity .25s ease,transform .25s ease;}
.fbmnv2-launch:not(.scrolled) .fbmnv2-text{transition-delay:.25s;}
.fbmnv2-icon{position:absolute;top:50%;left:50%;display:flex;opacity:0;
  transform:translate(-50%,-50%) scale(0);transition:opacity .25s ease,transform .25s ease;}
/* Collapsed circle — !important so it overrides the inline px width the JS sets */
.fbmnv2-launch.scrolled{border-radius:50%;padding:12px!important;width:48px!important;height:48px!important;}
.fbmnv2-launch.scrolled .fbmnv2-text{opacity:0;transform:translateX(-20px);transition-delay:0s;}
.fbmnv2-launch.scrolled .fbmnv2-icon{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:.25s;}
@media(max-width:767px){
  .fbmnv2-launch{font-size:16px;padding:8px 14px;min-width:40px;min-height:40px;}
  .fbmnv2-launch.scrolled{padding:10px!important;width:40px!important;height:40px!important;}
}
/* Per-button custom font (var set inline on .fbmnv2; inherits theme when unset) */
.fbmnv2-launch,.fbmnv2-title,.fbmnv2-form input,.fbmnv2-form textarea,.fbmnv2-form select,.fbmnv2-submit{font-family:var(--fbmn-font,inherit);}
/* Device visibility — hide the button on devices it isn't enabled for */
@media(max-width:767px){.fbmnv2:not(.fbmnv2-show-mobile){display:none!important;}}
@media(min-width:768px) and (max-width:991px){.fbmnv2:not(.fbmnv2-show-tablet){display:none!important;}}
@media(min-width:992px){.fbmnv2:not(.fbmnv2-show-desktop){display:none!important;}}

.fbmnv2-modal{position:fixed;inset:0;z-index:99991;background:rgba(16,24,40,.45);
  display:flex;align-items:center;justify-content:center;padding:18px;}
.fbmnv2-modal[hidden]{display:none;}
.fbmnv2-card{background:#fff;width:100%;max-width:420px;border-radius:16px;padding:26px 24px 22px;
  position:relative;box-shadow:0 24px 60px rgba(16,24,40,.35);animation:fbmnv2-pop .18s ease;}
@keyframes fbmnv2-pop{from{transform:translateY(10px);opacity:0;}to{transform:none;opacity:1;}}
.fbmnv2-close{position:absolute;top:12px;right:14px;background:none;border:none;font-size:24px;
  line-height:1;color:#9aa4b2;cursor:pointer;}
.fbmnv2-close:hover{color:#5b6878;}
.fbmnv2-title{margin:0 0 16px;font-size:19px;font-weight:700;color:#1f2733;padding-right:24px;}
.fbmnv2-form label{display:block;margin-bottom:12px;}
.fbmnv2-form label span{display:block;font-size:13px;font-weight:600;color:#3a4452;margin-bottom:5px;}
.fbmnv2-form input,.fbmnv2-form textarea,.fbmnv2-form select{
  width:100%;box-sizing:border-box;padding:11px 13px;border:1px solid #d4dae3;border-radius:10px;
  font-size:14px;font-family:inherit;color:#1f2733;background:#fff;transition:.15s;}
.fbmnv2-form input:focus,.fbmnv2-form textarea:focus,.fbmnv2-form select:focus{outline:none;border-color:var(--fbmn-accent,#2d6a4f);
  box-shadow:0 0 0 3px rgba(45,106,79,.15);}
/* Native select needs its own chevron once appearance is reset, or themes leave
   it looking unlike the other fields. */
.fbmnv2-form select{
  appearance:none;-webkit-appearance:none;-moz-appearance:none;height:auto;line-height:1.4;
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236b7683' d='M1.4 0 6 4.6 10.6 0 12 1.4 6 7.4 0 1.4z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center;padding-right:34px;cursor:pointer;}
.fbmnv2-form textarea{resize:vertical;min-height:90px;}
.fbmnv2-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden;}
.fbmnv2-submit{width:100%;margin-top:6px;background:var(--fbmn-accent,#2d6a4f);color:var(--fbmn-text,#fff);
  border:none;border-radius:10px;padding:13px;font-size:15px;font-weight:700;cursor:pointer;transition:.15s;}
.fbmnv2-submit:hover{filter:brightness(.94);}
.fbmnv2-submit:disabled{opacity:.6;cursor:default;}
.fbmnv2-feedback{margin-top:12px;font-size:13.5px;text-align:center;min-height:18px;}
.fbmnv2-feedback.ok{color:#1c6b45;}
.fbmnv2-feedback.err{color:#c0392b;}
@media(max-width:480px){.fbmnv2-launch{font-size:14px;padding:12px 18px;}}
