/* GFMB Mega Menu — premium full-width dropdown for Katen + Elementor (Free)
 * v1.0.8: Katen Canvas fix by removing <li> constraints (force block layout + full-width panel).
 */

.gfmb-mega { position: relative; }
.gfmb-mega > .sub-menu { display: none !important; }

/* Desktop panel */
.gfmb-mega-panel{
  position:absolute;
  left:50%;
  top:calc(100% + 10px);
  transform:translateX(-50%);
  width:100vw;
  max-width:100vw;
  padding-left:20px;
  padding-right:20px;
  background:transparent;
  z-index:9999;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .18s ease, visibility .18s ease;
}
.gfmb-mega-inner{
  width:min(1200px, calc(100vw - 40px));
  margin:0 auto;
  background:#fff;
  border-radius:10px;
  box-shadow:0 20px 55px rgba(0,0,0,.10);
  padding:36px 38px;
  border-top:3px solid var(--gfmb-primary, #E28A1E);
}
.gfmb-mega:hover > .gfmb-mega-panel,
.gfmb-mega:focus-within > .gfmb-mega-panel{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.gfmb-mega-inner a{ text-decoration:none; }
.gfmb-mega-inner a:hover{ color: var(--gfmb-primary, #E28A1E); }

/* Mobile/Tablet */
@media (max-width: 1024px){
  .gfmb-mega-panel{ display:none !important; }

  /* Force the menu item to be block so it doesn't squeeze the panel */
  li.gfmb-mm-has-panel{
    display:block !important;
    width:100% !important;
    flex-wrap: wrap !important;
  }

  /* Menu link: full row */
  li.gfmb-mm-has-panel > a{
    width: 100% !important;
    flex: 1 1 100% !important;
    display:flex !important;
    justify-content: space-between !important;
    align-items:center !important;
  }

  /* Panel injected by JS (inserted after the <a>) */
  .gfmb-mm-mobile-panel{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    margin:10px 0 10px 0 !important;
    background:#fff !important;
    border-radius:12px !important;
    box-shadow:0 10px 30px rgba(0,0,0,.08) !important;
    padding:16px 14px !important;
    border-top:3px solid var(--gfmb-primary, #E28A1E) !important;
    overflow:hidden !important;
    text-align:left !important;
    flex: 1 1 100% !important;
    order: 99 !important;
  }
  .gfmb-mm-mobile-panel[hidden]{ display:none !important; }

  /* Hard reset text wrapping: prevent "letter stacking" */
  .gfmb-mm-mobile-panel,
  .gfmb-mm-mobile-panel *{
    writing-mode: horizontal-tb !important;
    direction:ltr !important;
    letter-spacing: normal !important;
    text-transform:none !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    hyphens: none !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }

  /* Force Elementor columns to stack */
  .gfmb-mm-mobile-panel .elementor-section,
  .gfmb-mm-mobile-panel .elementor-container,
  .gfmb-mm-mobile-panel .elementor-row{
    width:100% !important;
    max-width:100% !important;
  }
  .gfmb-mm-mobile-panel .elementor-column,
  .gfmb-mm-mobile-panel .elementor-col-25,
  .gfmb-mm-mobile-panel .elementor-col-33,
  .gfmb-mm-mobile-panel .elementor-col-50{
    width:100% !important;
    max-width:100% !important;
    flex:0 0 100% !important;
  }

  .gfmb-mm-mobile-panel .elementor-icon-list-items{ padding-left:0 !important; margin:0 !important; }
  .gfmb-mm-mobile-panel .elementor-icon-list-item{ margin:0 0 10px 0 !important; }
  .gfmb-mm-mobile-panel .elementor-icon-list-text{ display:inline !important; font-size:15px !important; line-height:1.35 !important; }
  .gfmb-mm-mobile-panel a{ display:inline !important; width:auto !important; }
}

/* Optional debug overlay when URL contains ?gfmb_mm_debug=1 */
.gfmb-mm-debug-overlay{
  position: fixed;
  left: 10px;
  right: 10px;
  bottom: 10px;
  z-index: 999999;
  background: rgba(0,0,0,.85);
  color: #fff;
  border-radius: 10px;
  padding: 12px 12px;
  font-size: 12px;
  line-height: 1.35;
  max-height: 40vh;
  overflow: auto;
}
.gfmb-mm-debug-overlay pre{
  margin:0;
  white-space: pre-wrap;
  word-break: break-word;
}

/* v1.0.9 — Katen Canvas Overlay Panel (prevents writing-mode inheritance by rendering outside <li>) */
@media (max-width: 1024px){
  /* Katen canvas uses bootstrap utility classes (d-flex align-items-end flex-column).
     We must override BOTH the class rule and any theme specificity. */
  .canvas-menu.gfmb-mm-has-overlay{ align-items: stretch !important; }
  html body .canvas-menu.d-flex.align-items-end.flex-column.open.gfmb-mm-has-overlay{ align-items: stretch !important; justify-content:flex-start !important; }

  .canvas-menu .gfmb-mm-canvas-overlay{
    width: 100% !important;
    max-width: 100% !important;
    align-self: stretch !important;
    margin-top: 10px !important;
    padding: 0 12px 12px 12px !important;
    box-sizing: border-box !important;
  }

  .canvas-menu .gfmb-mm-canvas-overlay[hidden]{ display:none !important; }

  .canvas-menu .gfmb-mm-canvas-overlay-inner{
    width: 100% !important;
    max-width: 100% !important;
    background: #fff !important;
    border-radius: 12px !important;
    box-shadow: 0 10px 30px rgba(0,0,0,.08) !important;
    padding: 16px 14px !important;
    border-top: 3px solid var(--gfmb-primary, #E28A1E) !important;
    overflow: hidden !important;
    text-align: left !important;
    box-sizing: border-box !important;
  }

  /* HARD RESET: ensure Katen canvas nav styles cannot force vertical writing mode inside overlay */
  .canvas-menu .gfmb-mm-canvas-overlay-inner,
  .canvas-menu .gfmb-mm-canvas-overlay-inner *{
    writing-mode: horizontal-tb !important;
    direction: ltr !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    hyphens: none !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  /* Force Elementor layout to stack within overlay */
  .canvas-menu .gfmb-mm-canvas-overlay-inner .elementor-section,
  .canvas-menu .gfmb-mm-canvas-overlay-inner .elementor-container,
  .canvas-menu .gfmb-mm-canvas-overlay-inner .elementor-row{
    width:100% !important;
    max-width:100% !important;
  }

  .canvas-menu .gfmb-mm-canvas-overlay-inner .elementor-column,
  .canvas-menu .gfmb-mm-canvas-overlay-inner .elementor-col-25,
  .canvas-menu .gfmb-mm-canvas-overlay-inner .elementor-col-33,
  .canvas-menu .gfmb-mm-canvas-overlay-inner .elementor-col-50{
    width:100% !important;
    max-width:100% !important;
    flex:0 0 100% !important;
  }

  /* Icon list readability */
  .canvas-menu .gfmb-mm-canvas-overlay-inner .elementor-icon-list-items{ padding-left:0 !important; margin:0 !important; }
  .canvas-menu .gfmb-mm-canvas-overlay-inner .elementor-icon-list-item{ margin:0 0 10px 0 !important; }
  .canvas-menu .gfmb-mm-canvas-overlay-inner .elementor-icon-list-text{ display:inline !important; font-size:15px !important; line-height:1.35 !important; }
}

/* v1.1.0 — Ultra-specific Katen canvas overrides (handles !important rules & flex column links) */
@media (max-width: 1024px){
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner,
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner *{
    writing-mode: horizontal-tb !important;
    transform: none !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    white-space: normal !important;
    letter-spacing: normal !important;
  }

  /* If Katen forces anchors into flex-column, neutralize it */
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner a{
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-icon-list-item a{
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    width: 100% !important;
  }

  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-icon-list-text{
    display: inline-block !important;
    width: auto !important;
    max-width: 100% !important;
    white-space: normal !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
  }

  /* Safety: ensure no parent squeezes text to 1ch */
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-widget-container,
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-widget,
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-element{
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}

/* v1.1.2 — Mobile overlay alignment fixes (Elementor templates inside Katen canvas)
   Goal: remove weird center/overlap, normalize icon-list alignment, headings, and button spacing. */
@media (max-width: 1024px){

  /* Force overlay typography left-aligned and predictable */
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner{
    text-align: left !important;
  }

  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner h1,
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner h2,
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner h3,
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner h4,
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner h5,
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner h6,
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner p,
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner a,
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner span{
    text-align: left !important;
  }

  /* Normalize Elementor widget spacing that can cause overlaps in narrow containers */
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-widget{
    margin-bottom: 14px !important;
  }
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-widget:last-child{
    margin-bottom: 0 !important;
  }

  /* Headings should sit above lists cleanly */
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-heading-title{
    display: block !important;
    margin: 0 0 10px 0 !important;
    padding: 0 !important;
    line-height: 1.2 !important;
  }

  /* Divider shouldn't collapse into text */
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-widget-divider{
    margin: 8px 0 14px 0 !important;
  }

  /* ICON LIST: fix alignment (stacking/overlap) */
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-icon-list-items{
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }

  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-icon-list-item{
    margin: 0 0 10px 0 !important;
    padding: 0 !important;
  }

  /* Each icon list link should be a single horizontal row */
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-icon-list-item a{
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-icon-list-icon{
    flex: 0 0 auto !important;
    min-width: 18px !important;
  }

  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-icon-list-text{
    flex: 1 1 auto !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.35 !important;
  }

  /* Buttons: stop weird overlap, keep them readable */
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-button,
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-button-wrapper{
    position: static !important;
    transform: none !important;
  }

  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-button{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1.1 !important;
    white-space: normal !important;
  }

  /* Prevent inherited center alignment from wrappers */
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-widget-wrap,
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-column-wrap{
    align-items: flex-start !important;
    text-align: left !important;
  }
}

/* v1.1.3 — Hard layout normalization for Elementor templates inside Katen canvas overlay
   Fixes: heading overlapping list items, CTA/button/text overlapping, stray absolute/transform rules.
*/
@media (max-width: 1024px){

  /* 1) Nuke positioning tricks inside overlay on mobile */
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-element,
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-widget,
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-widget-container{
    position: static !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    transform: none !important;
    float: none !important;
    clear: both !important;
  }

  /* 2) Force block flow for containers to avoid odd flex stacking */
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-section,
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-container,
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-row,
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-column,
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-widget-wrap{
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  /* 3) Normalize spacing so headings never collide with lists */
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-widget-heading{
    margin: 0 0 12px 0 !important;
  }
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-widget-icon-list{
    margin: 0 0 18px 0 !important;
  }
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-icon-list-items{
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  /* 4) Icon list row rules (repeat here with higher specificity) */
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-icon-list-item a{
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 10px !important;
  }

  /* 5) Featured CTA card: ensure normal readable block flow */
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-widget-text-editor{
    margin: 0 0 14px 0 !important;
  }
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-button-wrapper{
    margin-top: 12px !important;
  }
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-button{
    width: auto !important;
    max-width: 100% !important;
  }

  /* 6) Last resort: prevent “compress to narrow column” */
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner *{
    min-width: 0 !important;
  }
}

/* v1.1.4 — Mobile CTA overflow + button label alignment fix */
@media (max-width: 1024px){

  /* Ensure overlay inner content never exceeds screen width */
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay,
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner{
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  /* Text editor: prevent off-screen overflow, keep readable line length */
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-widget-text-editor,
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-widget-text-editor *{
    max-width: 100% !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  /* If template uses big desktop fonts, scale them down slightly on mobile canvas */
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-widget-text-editor{
    font-size: 16px !important;
    line-height: 1.35 !important;
  }

  /* Button wrapper + button: force proper centering and prevent label escaping */
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-button-wrapper{
    width: 100% !important;
    max-width: 100% !important;
  }

  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-button{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: 100% !important;          /* full-width button works best in canvas */
    max-width: 100% !important;
    padding: 14px 16px !important;
    border-radius: 999px !important;
    box-sizing: border-box !important;
    line-height: 1.1 !important;
    text-align: center !important;
    white-space: normal !important;
  }

  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-button span,
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-button .elementor-button-text{
    display: inline-block !important;
    width: auto !important;
    max-width: 100% !important;
    line-height: 1.1 !important;
    text-align: center !important;
    white-space: normal !important;
  }

  /* Some Elementor buttons include an <i> icon container; keep it aligned */
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-button i,
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner .elementor-button svg{
    flex: 0 0 auto !important;
  }
}

/* v1.1.5 — Mobile usability: overlay header + close button, ensure canvas scroll */
@media (max-width: 1024px){
  html body .canvas-menu.open.gfmb-mm-has-overlay{
    overflow-y: auto !important;
    max-height: 100vh !important;
    -webkit-overflow-scrolling: touch;
  }

  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-head{
    display:flex !important;
    align-items:center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    margin: 0 0 14px 0 !important;
    padding: 0 0 10px 0 !important;
    border-bottom: 1px solid rgba(0,0,0,.08) !important;
  }

  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-title{
    font-weight: 700 !important;
    font-size: 14px !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    color: var(--gfmb-primary, #E28A1E) !important;
  }

  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-close{
    appearance:none !important;
    border: 0 !important;
    background: transparent !important;
    width: 40px !important;
    height: 40px !important;
    border-radius: 999px !important;
    font-size: 26px !important;
    line-height: 1 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    cursor:pointer !important;
    color: #111 !important;
  }
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-close:active{
    transform: scale(.98) !important;
  }
}

/* v1.1.6 — Mobile canvas: prevent "lock up" by making overlay itself scrollable and touch-friendly */
@media (max-width: 1024px){
  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay{
    pointer-events: auto !important;
    touch-action: pan-y !important;
  }

  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-inner{
    max-height: 75vh !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    pointer-events: auto !important;
    touch-action: pan-y !important;
  }

  html body .canvas-menu.open.gfmb-mm-has-overlay .gfmb-mm-canvas-overlay-head{
    position: sticky !important;
    top: 0 !important;
    background: #fff !important;
    z-index: 5 !important;
    padding-top: 2px !important;
  }
}

/* v1.1.7 — Body-level fixed mega panel for mobile (bypasses Katen canvas touch/scroll locks) */
@media (max-width: 1024px){
  body.gfmb-mm-fixed-open{ overflow:hidden !important; }

  .gfmb-mm-fixed{
    position: fixed;
    inset: 0;
    z-index: 9999999;
    pointer-events: auto;
  }
  .gfmb-mm-fixed-backdrop{
    position:absolute;
    inset:0;
    background: rgba(0,0,0,.35);
  }
  .gfmb-mm-fixed-panel{
    position:absolute;
    top:0;
    right:0;
    height:100vh;
    background:#fff;
    box-shadow: -20px 0 55px rgba(0,0,0,.18);
    overflow:hidden;
    display:flex;
    flex-direction:column;
    max-width: 92vw;
  }
  .gfmb-mm-fixed-inner{
    padding: 16px 14px;
    overflow-y:auto;
    -webkit-overflow-scrolling: touch;
    height:100%;
  }
  .gfmb-mm-fixed-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap: 10px;
    margin: 0 0 14px 0;
    padding: 0 0 10px 0;
    border-bottom: 1px solid rgba(0,0,0,.08);
    position: sticky;
    top: 0;
    background:#fff;
    z-index: 3;
  }
  .gfmb-mm-fixed-title{
    font-weight: 700;
    font-size: 14px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--gfmb-primary, #E28A1E);
  }
  .gfmb-mm-fixed-close{
    appearance:none;
    border:0;
    background:transparent;
    width:40px;
    height:40px;
    border-radius:999px;
    font-size:26px;
    line-height:1;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    color:#111;
  }

  /* Apply the same normalization rules inside the fixed panel */
  .gfmb-mm-fixed-inner,
  .gfmb-mm-fixed-inner *{
    writing-mode: horizontal-tb !important;
    transform:none !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
    max-width:100% !important;
    box-sizing:border-box !important;
  }

  .gfmb-mm-fixed-inner .elementor-section,
  .gfmb-mm-fixed-inner .elementor-container,
  .gfmb-mm-fixed-inner .elementor-row,
  .gfmb-mm-fixed-inner .elementor-column,
  .gfmb-mm-fixed-inner .elementor-widget-wrap{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
  }

  .gfmb-mm-fixed-inner .elementor-icon-list-item a{
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:10px !important;
    width:100% !important;
  }

  .gfmb-mm-fixed-inner .elementor-button{
    width:100% !important;
    max-width:100% !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:14px 16px !important;
    border-radius:999px !important;
  }
}

/* v1.1.8 — Premium GFMB Mobile Panel Skin (gold accent, spacing, CTA card) */
:root{
  --gfmb-gold: #E28A1E;
  --gfmb-ink: #0B0B0C;
  --gfmb-charcoal: #121214;
  --gfmb-soft: rgba(255,255,255,.06);
}

@media (max-width: 1024px){

  /* Panel shell (body-level) */
  .gfmb-mm-mobile-panel{
    border-left: 1px solid rgba(226,138,30,.22) !important;
    background: linear-gradient(180deg, #0B0B0C 0%, #121214 100%) !important;
    color: #F5F5F6 !important;
  }

  .gfmb-mm-mobile-backdrop{
    background: rgba(0,0,0,.62) !important;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
  }

  /* Header */
  .gfmb-mm-mobile-panel-head{
    position: sticky !important;
    top: 0 !important;
    z-index: 10 !important;
    padding: 16px 16px 12px 16px !important;
    background: rgba(11,11,12,.92) !important;
    border-bottom: 1px solid rgba(255,255,255,.08) !important;
  }

  .gfmb-mm-mobile-panel-head:before{
    content: "";
    display:block;
    height: 3px;
    border-radius: 999px;
    background: var(--gfmb-gold);
    margin-bottom: 12px;
  }

  .gfmb-mm-mobile-panel-title{
    font-weight: 800 !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
    font-size: 13px !important;
    color: #FFFFFF !important;
  }

  .gfmb-mm-mobile-panel-close{
    width: 42px !important;
    height: 42px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    background: rgba(255,255,255,.06) !important;
    color: #FFFFFF !important;
  }

  /* Inner content area */
  .gfmb-mm-mobile-panel-body{
    padding: 16px !important;
  }

  /* Section headings */
  .gfmb-mm-mobile-panel-body .elementor-heading-title{
    color: #FFFFFF !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
    font-size: 12px !important;
    margin: 0 0 12px 0 !important;
  }

  /* Divider */
  .gfmb-mm-mobile-panel-body .elementor-divider-separator{
    border-top-color: rgba(226,138,30,.65) !important;
  }

  /* Icon List rows */
  .gfmb-mm-mobile-panel-body .elementor-icon-list-item a{
    display:flex !important;
    align-items:center !important;
    gap: 10px !important;
    padding: 10px 10px !important;
    border-radius: 12px !important;
    background: rgba(255,255,255,.04) !important;
    border: 1px solid rgba(255,255,255,.06) !important;
    color: #F5F5F6 !important;
    text-decoration: none !important;
  }
  .gfmb-mm-mobile-panel-body .elementor-icon-list-icon{
    color: var(--gfmb-gold) !important;
  }
  .gfmb-mm-mobile-panel-body .elementor-icon-list-text{
    color: #F5F5F6 !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
  }

  /* Featured CTA card (auto-marked by JS) */
  .gfmb-mm-mobile-panel-body .gfmb-mm-featured{
    padding: 16px !important;
    border-radius: 16px !important;
    background: radial-gradient(120% 120% at 0% 0%, rgba(226,138,30,.18) 0%, rgba(255,255,255,.05) 45%, rgba(255,255,255,.03) 100%) !important;
    border: 1px solid rgba(226,138,30,.28) !important;
    box-shadow: 0 18px 40px rgba(0,0,0,.28) !important;
  }

  .gfmb-mm-mobile-panel-body .gfmb-mm-featured .elementor-widget-text-editor{
    margin: 0 0 14px 0 !important;
    color: #F5F5F6 !important;
  }

  .gfmb-mm-mobile-panel-body .gfmb-mm-featured .elementor-button{
    width: 100% !important;
    border-radius: 999px !important;
    padding: 14px 16px !important;
    background: var(--gfmb-gold) !important;
    border: 0 !important;
    color: #0B0B0C !important;
    font-weight: 800 !important;
    letter-spacing: .02em !important;
  }
}

/* v1.1.9 — Fix narrow text columns inside mobile panel (force Elementor columns to 100% + normalize wrapping) */
@media (max-width: 1024px){

  /* Elementor often keeps desktop column widths (25/33/50%). Force full width in the GFMB mobile panel. */
  .gfmb-mm-mobile-panel .elementor-section,
  .gfmb-mm-mobile-panel .elementor-container,
  .gfmb-mm-mobile-panel .elementor-row{
    width: 100% !important;
    max-width: 100% !important;
  }

  .gfmb-mm-mobile-panel .elementor-container{
    display: block !important; /* kill desktop flex behavior */
  }

  .gfmb-mm-mobile-panel .elementor-column,
  .gfmb-mm-mobile-panel .elementor-col-25,
  .gfmb-mm-mobile-panel .elementor-col-33,
  .gfmb-mm-mobile-panel .elementor-col-50{
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
  }

  .gfmb-mm-mobile-panel .elementor-widget-wrap{
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
  }

  /* Make sure no element is stuck at tiny widths */
  .gfmb-mm-mobile-panel .elementor-element,
  .gfmb-mm-mobile-panel .elementor-widget,
  .gfmb-mm-mobile-panel .elementor-widget-container{
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  /* Headings / text editor: prevent awkward breaks like "PROBLEM S" */
  .gfmb-mm-mobile-panel h1,
  .gfmb-mm-mobile-panel h2,
  .gfmb-mm-mobile-panel h3,
  .gfmb-mm-mobile-panel h4,
  .gfmb-mm-mobile-panel h5,
  .gfmb-mm-mobile-panel h6,
  .gfmb-mm-mobile-panel .elementor-heading-title,
  .gfmb-mm-mobile-panel .elementor-widget-text-editor,
  .gfmb-mm-mobile-panel .elementor-widget-text-editor *{
    word-break: normal !important;
    overflow-wrap: break-word !important;
    hyphens: auto !important;
    white-space: normal !important;
  }

  /* If any theme rule set break-all, neutralize */
  .gfmb-mm-mobile-panel *{
    word-break: normal !important;
  }

  /* Button label: keep it readable and centered */
  .gfmb-mm-mobile-panel .elementor-button{
    width: 100% !important;
  }
  .gfmb-mm-mobile-panel .elementor-button-text{
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    text-align: center !important;
    display: inline-block !important;
    width: 100% !important;
  }
}

/* v1.2.0 — Stop mid-word breaking + fix Featured card width */
@media (max-width: 1024px){

  /* 1) Absolute stop: never break inside words in the mobile panel */
  .gfmb-mm-mobile-panel,
  .gfmb-mm-mobile-panel *{
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
  }

  /* Allow normal wrapping only at spaces for long paragraphs */
  .gfmb-mm-mobile-panel .elementor-widget-text-editor,
  .gfmb-mm-mobile-panel .elementor-widget-text-editor *{
    white-space: normal !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
  }

  /* 2) Section headers: keep single line (prevents "PROBLEM S") */
  .gfmb-mm-mobile-panel-body .elementor-heading-title{
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    font-size: 12px !important;
    letter-spacing: .08em !important;
  }

  /* 3) Featured card must be full width; remove any max-width centering */
  .gfmb-mm-mobile-panel-body .gfmb-mm-featured{
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    align-self: stretch !important;
  }

  /* Some Elementor templates set inner containers to fixed widths; override */
  .gfmb-mm-mobile-panel-body .gfmb-mm-featured .elementor-container,
  .gfmb-mm-mobile-panel-body .gfmb-mm-featured .elementor-widget-wrap,
  .gfmb-mm-mobile-panel-body .gfmb-mm-featured .elementor-widget-container{
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
  }

  /* Featured card headings should wrap at spaces, not mid-word */
  .gfmb-mm-mobile-panel-body .gfmb-mm-featured h1,
  .gfmb-mm-mobile-panel-body .gfmb-mm-featured h2,
  .gfmb-mm-mobile-panel-body .gfmb-mm-featured h3,
  .gfmb-mm-mobile-panel-body .gfmb-mm-featured h4,
  .gfmb-mm-mobile-panel-body .gfmb-mm-featured h5,
  .gfmb-mm-mobile-panel-body .gfmb-mm-featured h6,
  .gfmb-mm-mobile-panel-body .gfmb-mm-featured .elementor-heading-title{
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    word-break: keep-all !important;
  }

  /* 4) Button label: wrap at spaces only and center */
  .gfmb-mm-mobile-panel .elementor-button-text{
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    white-space: normal !important;
    text-align: center !important;
  }
}


/* v1.3.0 — Body-level mobile mega panel (slides in from RIGHT) */
@media (max-width: 1024px){

  html.gfmb-mm-lock, body.gfmb-mm-lock{
    overflow: hidden !important;
    height: 100% !important;
    touch-action: none !important;
  }

  .gfmb-mm-mobile-backdrop{
    position: fixed !important;
    inset: 0 !important;
    background: rgba(0,0,0,.62) !important;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    opacity: 0;
    pointer-events: none;
    transition: opacity .22s ease;
    z-index: 999999;
  }
  .gfmb-mm-mobile-backdrop.open{
    opacity: 1;
    pointer-events: auto;
  }

  .gfmb-mm-mobile-panel{
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    left: auto !important;
    height: 100vh !important;
    width: 100vw !important;
    max-width: 100vw !important;
    margin: 0 !important;
    border-radius: 0 !important;
    transform: translateX(100%);
    transition: transform .24s ease;
    z-index: 1000000;
    overflow: hidden !important;
    border-left: 1px solid rgba(226,138,30,.22) !important;
    background: linear-gradient(180deg, #0B0B0C 0%, #121214 100%) !important;
    color: #F5F5F6 !important;
  }
  .gfmb-mm-mobile-panel.open{
    transform: translateX(0);
  }

  .gfmb-mm-mobile-panel-head{
    position: sticky !important;
    top: 0 !important;
    z-index: 10 !important;
    padding: 16px 16px 12px 16px !important;
    background: rgba(11,11,12,.92) !important;
    border-bottom: 1px solid rgba(255,255,255,.08) !important;
    display:flex !important;
    align-items:center !important;
    justify-content: space-between !important;
    gap: 10px !important;
  }
  .gfmb-mm-mobile-panel-head:before{
    content:"";
    position:absolute;
    left: 16px;
    right: 16px;
    top: 8px;
    height: 3px;
    border-radius: 999px;
    background: var(--gfmb-gold, #E28A1E);
  }

  .gfmb-mm-mobile-panel-title{
    margin-top: 10px !important;
    font-weight: 800 !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
    font-size: 13px !important;
    color: #FFFFFF !important;
  }

  .gfmb-mm-mobile-panel-close{
    margin-top: 10px !important;
    width: 42px !important;
    height: 42px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    background: rgba(255,255,255,.06) !important;
    color: #FFFFFF !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    font-size: 26px !important;
    line-height: 1 !important;
    cursor:pointer !important;
  }

  .gfmb-mm-mobile-panel-body{
    padding: 16px !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    max-height: calc(100vh - 72px) !important;
  }

  /* Force Elementor full width in panel */
  .gfmb-mm-mobile-panel-body .elementor-section,
  .gfmb-mm-mobile-panel-body .elementor-container,
  .gfmb-mm-mobile-panel-body .elementor-row,
  .gfmb-mm-mobile-panel-body .elementor-column,
  .gfmb-mm-mobile-panel-body .elementor-widget-wrap,
  .gfmb-mm-mobile-panel-body .elementor-widget,
  .gfmb-mm-mobile-panel-body .elementor-widget-container{
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .gfmb-mm-mobile-panel-body .elementor-container{ display:block !important; }

  /* Never break inside words */
  .gfmb-mm-mobile-panel, .gfmb-mm-mobile-panel *{
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
  }

  /* Section headings */
  .gfmb-mm-mobile-panel-body .elementor-heading-title{
    color: #FFFFFF !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
    font-size: 12px !important;
    margin: 0 0 12px 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  /* Icon list rows */
  .gfmb-mm-mobile-panel-body .elementor-icon-list-item a{
    display:flex !important;
    align-items:center !important;
    gap: 10px !important;
    padding: 10px 10px !important;
    border-radius: 12px !important;
    background: rgba(255,255,255,.04) !important;
    border: 1px solid rgba(255,255,255,.06) !important;
    color: #F5F5F6 !important;
    text-decoration: none !important;
  }
  .gfmb-mm-mobile-panel-body .elementor-icon-list-icon{ color: var(--gfmb-gold, #E28A1E) !important; }
  .gfmb-mm-mobile-panel-body .elementor-icon-list-text{ color: #F5F5F6 !important; font-weight: 600 !important; line-height: 1.25 !important; }

  /* Featured CTA card */
  .gfmb-mm-mobile-panel-body .gfmb-mm-featured{
    padding: 16px !important;
    border-radius: 16px !important;
    background: radial-gradient(120% 120% at 0% 0%, rgba(226,138,30,.18) 0%, rgba(255,255,255,.05) 45%, rgba(255,255,255,.03) 100%) !important;
    border: 1px solid rgba(226,138,30,.28) !important;
    box-shadow: 0 18px 40px rgba(0,0,0,.28) !important;
  }
  .gfmb-mm-mobile-panel-body .gfmb-mm-featured .elementor-button{
    width: 100% !important;
    border-radius: 999px !important;
    padding: 14px 16px !important;
    background: var(--gfmb-gold, #E28A1E) !important;
    border: 0 !important;
    color: #0B0B0C !important;
    font-weight: 800 !important;
    letter-spacing: .02em !important;
  }
}


/* v1.3.1 — Fix template readability + responsive images inside mobile panel */
@media (max-width: 1024px){

  /* The Elementor mega templates often use white backgrounds.
     Our panel shell is dark, so we scope the BODY area to a light surface for readability. */
  .gfmb-mm-mobile-panel-body{
    background: #FFFFFF !important;
    color: #111111 !important;
  }

  /* Ensure default text is readable (prevents “faint/ghost” text on white cards). */
  .gfmb-mm-mobile-panel-body,
  .gfmb-mm-mobile-panel-body p,
  .gfmb-mm-mobile-panel-body li,
  .gfmb-mm-mobile-panel-body span,
  .gfmb-mm-mobile-panel-body div{
    color: #111111 !important;
  }

  /* Links inside templates */
  .gfmb-mm-mobile-panel-body a{
    color: #111111 !important;
    text-decoration: none !important;
  }
  .gfmb-mm-mobile-panel-body a:hover{
    color: var(--gfmb-gold, #E28A1E) !important;
  }

  /* Keep our “section heading” treatment */
  .gfmb-mm-mobile-panel-body .elementor-heading-title{
    color: #0B0B0C !important;
  }

  /* Make ALL images responsive and fit the panel */
  .gfmb-mm-mobile-panel-body img{
    max-width: 100% !important;
    height: auto !important;
    display: block !important;
  }
  .gfmb-mm-mobile-panel-body .elementor-widget-image img{
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    object-fit: cover;
    border-radius: 14px !important;
  }

  /* Prevent images/cards from overflowing their containers */
  .gfmb-mm-mobile-panel-body .elementor-widget-image,
  .gfmb-mm-mobile-panel-body .elementor-widget-image .elementor-widget-container{
    overflow: hidden !important;
    border-radius: 14px !important;
  }

  /* Featured CTA card sits on light surface—ensure contrast */
  .gfmb-mm-mobile-panel-body .gfmb-mm-featured{
    background: #FFFFFF !important;
    border: 1px solid rgba(226,138,30,.30) !important;
    box-shadow: 0 18px 40px rgba(0,0,0,.14) !important;
  }
  .gfmb-mm-mobile-panel-body .gfmb-mm-featured .elementor-widget-text-editor,
  .gfmb-mm-mobile-panel-body .gfmb-mm-featured .elementor-widget-text-editor *{
    color: #111111 !important;
  }
}


/* v1.3.2 — Fix faint/ghost icon list links (force opacity + color) */
@media (max-width: 1024px){

  /* Some templates apply opacity on columns/widgets for hover/animation. Remove it inside panel. */
  .gfmb-mm-mobile-panel-body .elementor-element,
  .gfmb-mm-mobile-panel-body .elementor-widget,
  .gfmb-mm-mobile-panel-body .elementor-widget-container,
  .gfmb-mm-mobile-panel-body .elementor-column,
  .gfmb-mm-mobile-panel-body .elementor-widget-wrap{
    opacity: 1 !important;
    filter: none !important;
  }

  /* Icon list: force readable color + opacity */
  .gfmb-mm-mobile-panel-body .elementor-widget-icon-list,
  .gfmb-mm-mobile-panel-body .elementor-icon-list-items,
  .gfmb-mm-mobile-panel-body .elementor-icon-list-item,
  .gfmb-mm-mobile-panel-body .elementor-icon-list-item a,
  .gfmb-mm-mobile-panel-body .elementor-icon-list-item a *{
    opacity: 1 !important;
    color: #111111 !important;
  }

  /* Keep icon accent gold */
  .gfmb-mm-mobile-panel-body .elementor-icon-list-icon,
  .gfmb-mm-mobile-panel-body .elementor-icon-list-icon *{
    color: var(--gfmb-gold, #E28A1E) !important;
    opacity: 1 !important;
  }

  /* Improve tap target and contrast on white surface */
  .gfmb-mm-mobile-panel-body .elementor-icon-list-item a{
    background: rgba(0,0,0,.03) !important;
    border: 1px solid rgba(0,0,0,.06) !important;
  }
  .gfmb-mm-mobile-panel-body .elementor-icon-list-item a:hover,
  .gfmb-mm-mobile-panel-body .elementor-icon-list-item a:active{
    background: rgba(226,138,30,.10) !important;
    border-color: rgba(226,138,30,.30) !important;
  }

  /* Text editor: force readable */
  .gfmb-mm-mobile-panel-body .elementor-widget-text-editor,
  .gfmb-mm-mobile-panel-body .elementor-widget-text-editor *{
    opacity: 1 !important;
    color: #111111 !important;
  }
}


/* v1.3.3 — Fix Featured CTA button layout inside mobile panel */
@media (max-width: 1024px){

  /* Ensure CTA widget container doesn't constrain the button */
  .gfmb-mm-mobile-panel-body .gfmb-mm-featured .elementor-widget-button,
  .gfmb-mm-mobile-panel-body .gfmb-mm-featured .elementor-widget-button .elementor-widget-container,
  .gfmb-mm-mobile-panel-body .gfmb-mm-featured .elementor-button-wrapper{
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
  }

  .gfmb-mm-mobile-panel-body .gfmb-mm-featured .elementor-button{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 52px !important;
    padding: 14px 18px !important;
    border-radius: 999px !important;
    background: var(--gfmb-gold, #E28A1E) !important;
    border: 0 !important;
    box-shadow: none !important;
    text-decoration: none !important;
    line-height: 1.1 !important;
  }

  .gfmb-mm-mobile-panel-body .gfmb-mm-featured .elementor-button .elementor-button-content-wrapper{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    width: 100% !important;
  }

  .gfmb-mm-mobile-panel-body .gfmb-mm-featured .elementor-button .elementor-button-text,
  .gfmb-mm-mobile-panel-body .gfmb-mm-featured .elementor-button span{
    color: #0B0B0C !important;
    font-weight: 900 !important;
    letter-spacing: .02em !important;
    text-align: center !important;
    white-space: normal !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    line-height: 1.1 !important;
  }

  /* If theme adds pseudo-elements over the button, disable */
  .gfmb-mm-mobile-panel-body .gfmb-mm-featured .elementor-button:before,
  .gfmb-mm-mobile-panel-body .gfmb-mm-featured .elementor-button:after{
    content: none !important;
  }
}
