/* GG_CSS_BUILD_MARKER v1.45.8 */
/* GG_CSS_BUILD_MARKER v1.45.3 */
/* GGPM_PROOF_CSS v1.43.4 */
:root{
  --ggm-blue:#0b1b33;
  --ggm-silver:#1c2230;
  --ggm-dark:#0f131c;
  --ggm-text:#ffffff;
  --ggm-border: rgba(255,255,255,0.12);
}

/* =====================================================================
   v142.68 — Hard overrides for BuddyBoss popup items
   Goal:
    - Visible thick orange underline under TEXT on hover/focus (all popups)
    - Spacing between icon slot and text
    - Optional 3 "column panels" layout for large mega dropdowns
   Notes:
    - Uses background underline (not ::after) so it cannot be hidden by theme rules.
    - Very high specificity + !important to win against BuddyBoss/theme.
   ===================================================================== */

/* Ensure popup lists never show bullets (BuddyBoss sometimes forces list-style) */
.gg-submenu-panel ul.gg-submenu,
.gg-submenu-panel ul.gg-submenu > li,
.gg-submenu-panel li.gg-menu-item{
  list-style: none !important;
}

/* Popup links: force predictable layout + remove native underline */
.gg-submenu-panel .gg-menu-link{
  display: inline-flex !important;
  align-items: center !important;
  text-decoration: none !important;
  gap: 0 !important;
  padding-bottom: 0.55rem !important; /* room for underline */

  /* Background underline (thick orange) */
  background-image:none !important;
  background-repeat: no-repeat !important;
  background-position: 0% 100% !important;
  background-size: 0 !important;

  transition:
    background-size 520ms cubic-bezier(.16,1.08,.28,1) !important,
    transform 220ms ease !important,
    filter 220ms ease !important;
}

/* Icon slot inside popup links */
.gg-submenu-panel .gg-menu-link > .gg-submenu-icon{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 1.25em !important;
  height: 1.25em !important;
  margin-right: 0.55rem !important; /* requested spacing */
  flex: 0 0 auto !important;
  opacity: 0.95;
}

@keyframes ggpmUnderlineBounceSize{
  0%   { background-size: 0% 6px; }
  60%  { background-size: 108% 6px; }
  82%  { background-size: 96% 6px; }
  100% { background-size: 100% 6px; }
}

/* Hover/focus: show underline + little lift + glow */
.gg-submenu-panel .gg-menu-link:hover,
.gg-submenu-panel .gg-menu-link:focus,
.gg-submenu-panel .gg-menu-link:focus-visible{
  text-decoration: none !important;
  transform: translateY(-1px) !important;
  filter: drop-shadow(0 6px 14px rgba(255, 132, 0, 0.35)) !important;
  animation: ggpmUnderlineBounceSize 520ms cubic-bezier(.16,1.08,.28,1) both !important;
  background-size: 100% 6px !important;
}

/* If theme tries to draw its own underline, kill it */
.gg-submenu-panel .gg-menu-link:hover,
.gg-submenu-panel .gg-menu-link:focus,
.gg-submenu-panel .gg-menu-link:focus-visible{
  text-decoration-line: none !important;
}

/* --- Tri-panel mega layout (JS adds .gg-tri-panels) --- */
.gg-submenu-panel .gg-tri-panels{
  position: relative;
  display: flex;
  gap: 1.05rem;
  align-items: stretch;
  --gg-tri-collapsed: 74px;
  /* Prevent "flash" during rapid class changes: */
  backface-visibility: hidden;
  transform: translateZ(0);
}

/* We keep these classes for backwards compatibility, but sizing is driven by
   .is-active on each tower (smoothly animatable in flex). */
.gg-submenu-panel .gg-tri-panels.active-0,
.gg-submenu-panel .gg-tri-panels.active-1,
.gg-submenu-panel .gg-tri-panels.active-2{ }

/* Smooth moving background bar behind the active "tower" */
.gg-submenu-panel .gg-tri-activebar{
  position: absolute;
  left: 0;
  top: 0;
  width: 0;
  height: 0;
  pointer-events: none;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255,122,0,0.18) 0%, rgba(255,196,0,0.10) 100%);
  border: 1px solid rgba(255, 150, 30, 0.28);
  box-shadow: 0 14px 40px rgba(255, 122, 0, 0.16);
  transform: translate3d(0,0,0);
  transition:
    transform 980ms cubic-bezier(.18, 1.25, .22, 1),
    width 980ms cubic-bezier(.18, 1.25, .22, 1),
    height 980ms cubic-bezier(.18, 1.25, .22, 1),
    opacity 260ms ease;
  z-index: 0;
}

.gg-submenu-panel .gg-tri-panel{
  min-width: 0;
  /* Smooth tower resize (no fast flashes). Inactive is fixed width; active flexes. */
  flex: 0 0 var(--gg-tri-collapsed);
  width: var(--gg-tri-collapsed);
  border: 1px solid var(--ggm-border);
  border-radius: 14px;
  background: rgba(255,255,255,0.04);
  /* Keep constant dimensions for both active/inactive panels; only the
     grid column width changes. */
  padding: 0.75rem 0.75rem 0.6rem;
  position: relative;
  z-index: 1;
  transition:
    filter 320ms ease,
    flex-basis 980ms cubic-bezier(.18, 1.25, .22, 1),
    width 980ms cubic-bezier(.18, 1.25, .22, 1);
}

/*
 * On first open (and on reopen) the active tower expands from collapsed -> active.
 * If we position the orange/brown activebar while the tower is still collapsed,
 * the highlight appears "too small" until the user moves the mouse.
 *
 * We temporarily disable transitions during the initial measuring/sync pass,
 * then re-enable them so hover animations keep working.
 */
.gg-submenu-panel .gg-tri-panels.ggpm-layout-instant .gg-tri-panel{
  transition: none !important;
}
.gg-submenu-panel .gg-tri-panels.ggpm-layout-instant .gg-tri-activebar{
  transition: none !important;
}

.gg-submenu-panel .gg-tri-panel.is-active{
  flex: 1 1 auto;
  width: auto;
  filter: drop-shadow(0 10px 26px rgba(0,0,0,0.20));
}

/* Inactive towers: show ICONS ONLY, keep icons stacked vertically.
   Active tower: show icon + text. */
.gg-submenu-panel .gg-tri-panel .gg-link-text{ display: inline; }

.gg-submenu-panel .gg-tri-panel:not(.is-active) .gg-link-text{
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.gg-submenu-panel .gg-tri-panel:not(.is-active) .gg-menu-link{
  justify-content: center !important;
  padding-left: 0.35rem !important;
  padding-right: 0.35rem !important;
}

.gg-submenu-panel .gg-tri-panel:not(.is-active) .gg-submenu-icon{
  margin-right: 0 !important;
}

/* Ensure inner UL stacks vertically in towers.
   BuddyBoss/theme sometimes applies flex-row + wrap on submenu lists,
   which makes items appear next to each other. */
/* Force UL to behave like a plain vertical list (no flex/grid/columns).
   This prevents any theme/BuddyBoss layout rules from turning items into rows/columns. */
.gg-submenu-panel .gg-tri-panel > ul.gg-submenu{
  display: block !important;
  columns: 1 !important;
  column-count: 1 !important;
  column-width: auto !important;
  grid-template-columns: none !important;
  grid-auto-flow: row !important;
  flex: none !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
}

/* Safety: also kill any grid/columns on the list */
.gg-submenu-panel .gg-tri-panel > ul.gg-submenu{
  grid-template-columns: none !important;
  grid-auto-flow: row !important;
}

/* Some BuddyBoss/theme styles force submenu items inline/float.
   Hard-force one item per row in towers (active + inactive). */
.gg-submenu-panel .gg-tri-panel > ul.gg-submenu > li{
  display: block !important;
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 auto !important;
}

.gg-submenu-panel .gg-tri-panel > ul.gg-submenu > li > a,
.gg-submenu-panel .gg-tri-panel > ul.gg-submenu > li > .gg-menu-link,
.gg-submenu-panel .gg-tri-panel > ul.gg-submenu > li > button{
  width: 100% !important;
  max-width: 100% !important;
}

/* In tri-panels: icons are always stacked vertically (one item per row).
   Active tower shows icon + text; inactive towers show ONLY icons. */
.gg-submenu-panel .gg-tri-panel .gg-menu-link{
  display: flex;
  align-items: center;
  gap: 0.6rem;
  width: 100%;
}

.gg-submenu-panel .gg-tri-panel:not(.is-active) .gg-menu-link{
  /* Center the *single* icon perfectly in collapsed towers */
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  padding-bottom: 0.35rem !important;
  background-image:none !important; /* no underline in icon-only towers */
  text-align: center !important;
}

/* Visual selection (default = first item) */
.gg-submenu-panel .gg-tri-panel.is-active li.gg-selected > .gg-parent-row > .gg-menu-link,
.gg-submenu-panel .gg-tri-panel.is-active li.gg-selected > .gg-menu-link{
  background: rgba(255, 122, 0, 0.10) !important;
  border-radius: 12px !important;
}

/* In icon-only towers, hide the submenu toggle/caret so icons truly center */
.gg-submenu-panel .gg-tri-panel:not(.is-active) .gg-submenu-toggle{
  display: none !important;
}

.gg-submenu-panel .gg-tri-panel:not(.is-active) .gg-menu-link > .gg-link-text{
  display: none !important;
}

.gg-submenu-panel .gg-tri-panel:not(.is-active) .gg-submenu-icon{
  margin-right: 0 !important;
}

.gg-submenu-panel .gg-tri-panel.is-active .gg-menu-link{
  justify-content: flex-start;
}

/* Default/active item highlight inside the active tower */
.gg-submenu-panel .gg-tri-panel.is-active li.is-selected > .gg-parent-row > .gg-menu-link,
.gg-submenu-panel .gg-tri-panel.is-active li.is-selected > .gg-menu-link{
  background: rgba(255, 122, 0, 0.12) !important;
  border: 1px solid rgba(255, 150, 30, 0.22) !important;
  box-shadow: 0 10px 24px rgba(0,0,0,0.18);
}

.gg-submenu-panel .gg-tri-panel .gg-submenu-icon{
  width: 22px;
  min-width: 22px;
  height: 22px;
  margin-right: 0;
}

/* Centering helper on the wp_nav_menu container (parent of .gg-popup-root).
   This avoids relying on BuddyBoss header wrappers (which often right-align children). */
.gg-popup-container{
  width:100% !important;
  flex: 1 1 auto !important;
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
}

.gg-popup-root{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  /* Desktop: keep the plugin's top-level menu in ONE ROW.
     BuddyBoss (and some themes) apply flex:1 / width:100% / justify-content:space-between
     to menu items, which makes them spread "all over the screen".
     We constrain ONLY this plugin's root so BuddyBoss nav isn't overridden globally. */
  flex-wrap:nowrap;
  /* Center top-level items in the header */
  justify-content:center !important;
  /* Force the UL to actually occupy the available header width.
     Some BuddyBoss header wrappers align children to the right and allow
     the menu UL to shrink-to-content; this keeps it centered. */
  width:100% !important;
  flex:1 1 auto !important;
  min-width:0;
  margin-left:auto !important;
  margin-right:auto !important;
  align-items:center;
  white-space:nowrap;
  align-items:center;
  gap:0.5rem;
}

/* Dashicons in menu links */
.gg-menu-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1.1em;
  height:1.1em;
  margin-right:0.45rem;
  font-size:1.05em;
  opacity:0.95;
}

/* BuddyBoss bucket: show submenu items in TWO ROWS (grid) */
.gg-popup-root > li.gg-buddyboss-category > .gg-submenu-panel{
  padding: 0.75rem;
  /* Give the BuddyBoss bucket more room so all subcategories fit comfortably */
  min-width: 22rem;
  max-width: min(92vw, 56rem);
}

.gg-popup-root > li.gg-buddyboss-category > .gg-submenu-panel > ul.gg-submenu{
  /* BuddyBoss "bucket" layout: two columns without scrollbars */
  display:grid;
  /* Desktop: 3 columns (requested) */
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-flow: row;
  gap: 0.35rem 0.85rem;
  align-items:start;
  overflow-x: hidden;
  overflow-y: visible;
}

@media (max-width: 991.98px){
  .gg-popup-root > li.gg-buddyboss-category > .gg-submenu-panel > ul.gg-submenu{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px){
  .gg-popup-root > li.gg-buddyboss-category > .gg-submenu-panel > ul.gg-submenu{
    grid-template-columns: 1fr;
  }
}

/* Strong reset inside panels to prevent BuddyBoss/theme dropdown rules from leaking in */
.gg-submenu-panel,
.gg-submenu-panel *{
  box-sizing: border-box;
}

.gg-submenu-panel ul,
.gg-submenu-panel ol{
  list-style: none;
  margin: 0;
  padding: 0;
}

/* =====================================================================
   v142.68 — Popup link styling
   - Underline is implemented via background-size on the link itself.
     This is far more robust than ::after under BuddyBoss/theme CSS,
     because pseudo-elements are often suppressed/overridden.
   - Applies to every depth (all panels)
   - Adds consistent icon/text spacing for submenu items
   ===================================================================== */

@keyframes ggpmUnderlineBounce{
  0%   { background-size: 0% 6px; }
  60%  { background-size: 112% 6px; }
  82%  { background-size: 94% 6px; }
  100% { background-size: 100% 6px; }
}

@keyframes ggpmUnderlineShimmerBg{
  0%   { background-position: 0% 100%; }
  100% { background-position: 200% 100%; }
}

/* Submenu icon slot: consistent spacing (BuddyBoss popup) */
.gg-submenu-panel .gg-submenu-icon{
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 1.15em;
  min-width: 1.15em;
  height: 1.15em;
  margin-right: 0.55rem;
  opacity: 0.92;
}

/* Links inside panels */
.gg-submenu-panel .gg-menu-link,
.gg-submenu-panel a.gg-menu-link{
  /* Layout */
  display: inline-flex !important;
  align-items: center;
  width: 100%;
  max-width: 100%;

  /* Kill theme underline */
  text-decoration: none !important;

  /* Underline effect (background-based) */
  padding-bottom: 0.55rem !important;
  background-image:none !important;
  background-repeat: no-repeat;
  background-position: 0% 100%;
  background-size: 0% 6px;
  background-size: 0% 6px;
  background-color: transparent;

  /* Subtle glow */
  filter: drop-shadow(0 3px 10px rgba(255, 132, 0, 0.18));

  transition: transform 180ms cubic-bezier(.2,.9,.2,1);
}

.gg-submenu-panel .gg-menu-link:hover,
.gg-submenu-panel .gg-menu-link:focus-visible{
  text-decoration: none !important;
  transform: translateY(-1px);
  animation: ggpmUnderlineBounce 560ms cubic-bezier(.2,.95,.2,1) both;
  background-size: 100% 6px;
  background-position: 0% 100%;
  background-size: 100% 6px;
  background-size: 100% 6px;
  background-position: 0% 100%;
  background-size: 100% 6px;
  background-size: 100% 6px;
  background-position: 0% 100%;
  background-size: 100% 6px;
  background-position: 0% 100%;
  background-size: 100% 6px;
  background-position: 0% 100%;
  background-size: 100% 6px;
  background-size: 100% 6px;
  background-position: 0% 100%;
  background-size: 100% 6px;
  background-position: 0% 100%;
  background-size: 100% 6px;
  background-position: 0% 100%;
  background-size: 100% 6px;
  /* Shimmer */
  background-size: 220% 6px;
  animation: ggpmUnderlineBounce 560ms cubic-bezier(.2,.95,.2,1) both, ggpmUnderlineShimmerBg 1100ms linear infinite;
}

/* If older pseudo-element rules exist, disable them so they don't fight */
.gg-submenu-panel .gg-menu-link::after{ content: none !important; }

/* FIX: this selector previously missed the leading dot and never applied */
.gg-submenu-panel li{
  float: none !important;
  clear: none !important;
  position: relative;
  display: block;
}

/* (Older tri-panel flex layout removed in v142.68; we use the grid-based towers above.) */

.gg-submenu-panel{
  /* Prevent internal horizontal scrollbars, but don't clip vertical
     shadows/animations inside the panel. */
  overflow-x: hidden;
  overflow-y: visible;
}

.gg-popup-root > .gg-menu-item{
  position:relative;
  /* Prevent theme rules from stretching items across the navbar */
  flex:0 0 auto !important;
  width:auto !important;
}

.gg-menu-link{
  display:inline-flex;
  align-items:center;
  padding:0.5rem 0.75rem;
  color:var(--ggm-text) !important;
  text-decoration:none;
  border-radius:0.5rem;
  width:auto !important;
  white-space:nowrap;
  position:relative;
  transition: background 160ms ease, transform 160ms ease;
}

.gg-menu-link:hover,
.gg-menu-link:focus{
  background: rgba(255,255,255,0.08);
  transform: translateY(-1px);
}

/* Subtle underline accent (no blur) */
.gg-menu-link::after{
  content:"";
  position:absolute;
  left:0.6rem;
  right:0.6rem;
  bottom:0.3rem;
  height:2px;
  background: rgba(255,255,255,0.35);
  transform: scaleX(0);
  transform-origin:left;
  transition: transform 180ms ease;
  border-radius:999px;
  pointer-events:none;
  display:none;
  visibility:hidden;

  /* Never show scrollbars on the panel itself. If any child exceeds width,
     we prefer clipping/wrapping over horizontal scrollbars. */
  overflow-x: hidden;
  overflow-y: visible;
}

.gg-menu-link:hover::after,
.gg-menu-link:focus::after{
  transform: scaleX(1);
}

.gg-parent-row{
  display:flex;
  align-items:center;
  gap:0.25rem;
  width:auto;
}

.gg-submenu-toggle{
  border:1px solid var(--ggm-border);
  background:transparent;
  color:var(--ggm-text);
  width:2.25rem;
  height:2.25rem;
  border-radius:0.5rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

/* Inline caret (rendered as <span class="gg-submenu-toggle gg-inline-caret"> inside the link) */
.gg-menu-link .gg-inline-caret{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-left: 0.55rem !important;
  padding: 0.12rem 0.35rem !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
}

/* Tiny caret rotate effect when open (pure CSS; keeps Motion/GSAP inside panels) */
.gg-submenu-toggle svg,
.gg-submenu-toggle .gg-caret{
  transition: transform 160ms ease;
}
.gg-submenu-toggle[aria-expanded="true"] svg,
.gg-submenu-toggle[aria-expanded="true"] .gg-caret{
  transform: rotate(180deg);
}

.gg-submenu-toggle:hover,
.gg-submenu-toggle:focus{
  background: rgba(255,255,255,0.08);
}

.gg-submenu-panel{
  /* Use fixed positioning so Floating UI placement is stable even inside
     transformed/sticky BuddyBoss headers. JS sets left/top via computePosition. */
  position:fixed;
  top:calc(100% + 0.5rem);
  left:0;
  min-width: 16rem;
  background: linear-gradient(180deg,var(--ggm-blue),var(--ggm-silver));
  border:1px solid var(--ggm-border);
  border-radius: 0.75rem;
  padding: 0.5rem;
  box-shadow: 0 20px 50px rgba(0,0,0,0.45);
  z-index: 9999;

  /* Hidden by default; MUST override BuddyBoss/theme dropdown hover rules.
     Use !important so nested submenus don't expand the parent panel and create scrollbars. */
  opacity:0;
  transform: translateY(-8px) scale(0.75);
  pointer-events:none;
  display:none !important;
  visibility:hidden;
}


.gg-submenu-panel.is-open{
  pointer-events:auto;
  display:block !important;
  visibility:visible;
}

/* Extra safety: if a nested dropdown didn't get normalized to `.gg-submenu-panel`
   (some BuddyBoss variants), keep it hidden so it cannot push layout/scrollbars. */
.gg-submenu-panel ul.sub-menu:not(.gg-submenu-panel),
.gg-submenu-panel .bb-sub-menu:not(.gg-submenu-panel),
.gg-submenu-panel .ab-submenu:not(.gg-submenu-panel){
  display:none !important;
}
.gg-submenu-panel ul.sub-menu:not(.gg-submenu-panel).is-open,
.gg-submenu-panel .bb-sub-menu:not(.gg-submenu-panel).is-open,
.gg-submenu-panel .ab-submenu:not(.gg-submenu-panel).is-open{
  display:block !important;
}

/* Flyouts: keep them compact and viewport-safe */
.gg-submenu-panel[data-gg-depth="1"],
.gg-submenu-panel[data-gg-depth="2"],
.gg-submenu-panel[data-gg-depth="3"],
.gg-submenu-panel[data-gg-depth="4"],
.gg-submenu-panel.gg-flyout{
  min-width: 18rem;
  max-width: min(92vw, 22rem);
}

/* Prevent BuddyBoss/WP hover CSS from forcing nested dropdown lists to display inline and
   expand the current panel. Only our JS-driven `.is-open` state may show a panel. */
.gg-submenu-panel .gg-submenu-panel{
  display:none !important;
}
.gg-submenu-panel .gg-submenu-panel.is-open{
  display:block !important;
}

/* Flyout panels (depth >= 1) should never stretch the mega panel or trigger scrollbars. */
.gg-submenu-panel[data-gg-depth="1"],
.gg-submenu-panel[data-gg-depth="2"],
.gg-submenu-panel[data-gg-depth="3"],
.gg-submenu-panel[data-gg-depth="4"]{
  min-width: 18rem;
  max-width: min(92vw, 26rem);
}

/* === Mega panel layout (2 columns + big intro text) === */
.gg-submenu-panel.gg-mega{
  min-width: 44rem;
  max-width: min(92vw, 60rem);
  padding: 1rem;
  overflow-x: hidden;
  overflow-y: visible;
}

@media (max-width: 991.98px){
  .gg-submenu-panel.gg-mega{
    min-width: min(92vw, 44rem);
    max-width: 92vw;
  }
}

.gg-panel-intro{
  padding: 0.25rem 0.25rem 0.85rem 0.25rem;
  border-bottom: 1px solid rgba(255,255,255,0.12);
  margin-bottom: 0.85rem;
}

.gg-panel-intro-title{
  font-size: 1.08rem;
  font-weight: 800;
  letter-spacing: 0.2px;
}

.gg-panel-intro-text{
  margin-top: 0.28rem;
  font-size: 0.98rem;
  line-height: 1.4;
  opacity: 0.92;
}

/* Depth 0 mega dropdown grid */
.gg-submenu-panel.gg-mega[data-depth="0"] .gg-submenu{
  display: grid;
  /* Desktop: 3 columns (requested) */
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.45rem 0.95rem;
  overflow-x: hidden;
}

@media (max-width: 991.98px){
  .gg-submenu-panel.gg-mega[data-depth="0"] .gg-submenu{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px){
  .gg-submenu-panel.gg-mega[data-depth="0"] .gg-submenu{
    grid-template-columns: 1fr;
  }
}

.gg-submenu li{ margin:0; }

.gg-submenu .gg-menu-link{
  width:100%;
  padding:0.65rem 0.75rem;
  border-radius:0.6rem;
  transform:none;
  display:flex;
  align-items:center;
  gap: 0.55rem;
  min-width: 0;
  overflow: hidden;
  white-space: normal;
  word-break: break-word;
}

.gg-submenu .gg-menu-link:hover,
.gg-submenu .gg-menu-link:focus{
  background: rgba(255,255,255,0.10);
  transform: translateX(2px);
}

/* Submenu item icon slot (always present, even if empty) */
.gg-submenu-icon{
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 0.6rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  /* Keep the icon slot strictly sized so hover/focus effects never
     cause layout shifts or scrollbars */
  flex: 0 0 1.75rem;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.10);
  box-shadow: 0 10px 24px rgba(0,0,0,0.22);
  /* Decorative only; avoid hover/focus hitbox causing layout glitches */
  pointer-events: none;
}

.gg-submenu-icon.dashicons{
  font-size: 1.05rem;
  line-height: 1;
}

/* Third level: open to the right */
.gg-submenu-panel[data-depth="1"]{
  top:0;
  left:calc(100% + 0.5rem);
}

/* Mobile: fall back to inline expansion */
@media (max-width: 767.98px){
  .gg-popup-root{ display:block; }
  .gg-popup-root > .gg-menu-item{ width:100%; }
  .gg-parent-row{ justify-content:space-between; }
  .gg-submenu-panel{ position:static; min-width: unset; margin-top:0.25rem; }
}

/* === GG Popup Menu: hover glow + underline sweep + focus polish === */

/* Ensure links/buttons can host pseudo-elements */
.gg-popup-root > li > a,
.gg-popup-root > li > button,
.gg-popup-root .gg-submenu-panel a {
  position: relative;
  transition: color 0.25s ease, text-shadow 0.25s ease;
}

/* Glow on hover (top-level) */
.gg-popup-root > li:hover > a,
.gg-popup-root > li:hover > button {
  text-shadow:
    0 0 6px rgba(255, 190, 80, 0.55),
    0 0 14px rgba(255, 140, 0, 0.35);
}

/* Underline sweep (top-level) */
.gg-popup-root > li > a::after,
.gg-popup-root > li > button::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -6px;
  height: 2px;
  transform: scaleX(0);
  transform-origin: left center;
  opacity: 0.9;
  transition: transform 0.25s ease;
  background: linear-gradient(90deg, rgba(255, 200, 110, 0.95), rgba(255, 122, 24, 0.95));
}

.gg-popup-root > li:hover > a::after,
.gg-popup-root > li:hover > button::after {
  transform: scaleX(1);
}

/* Keyboard focus polish */
.gg-popup-root a:focus-visible,
.gg-popup-root button:focus-visible,
.gg-submenu-panel a:focus-visible {
  outline: none;
  text-shadow:
    0 0 6px rgba(255, 200, 120, 0.65),
    0 0 14px rgba(255, 140, 0, 0.35);
  box-shadow: 0 0 0 2px rgba(255, 180, 80, 0.35);
  border-radius: 6px;
}


/* === GG Popup Menu: icons (Dashicons) ===
   Usage: in WP Menu item "CSS Classes", add one of:
   gg-icon-home, gg-icon-user, gg-icon-groups, gg-icon-mail, gg-icon-cart, gg-icon-info, gg-icon-settings, gg-icon-star
*/
.gg-popup-root > li[class*="gg-icon-"] > a,
.gg-popup-root > li[class*="gg-icon-"] > button {
  padding-left: 1.8em;
}

.gg-popup-root > li[class*="gg-icon-"] > a::before,
.gg-popup-root > li[class*="gg-icon-"] > button::before {
  content: '';
  font-family: dashicons;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.15em;
  line-height: 1;
  opacity: 0.95;
}

/* Icon glyphs */
.gg-popup-root > li.gg-icon-home > a::before,
.gg-popup-root > li.gg-icon-home > button::before { content: "\f102"; }

.gg-popup-root > li.gg-icon-user > a::before,
.gg-popup-root > li.gg-icon-user > button::before { content: "\f110"; }

.gg-popup-root > li.gg-icon-groups > a::before,
.gg-popup-root > li.gg-icon-groups > button::before { content: "\f307"; }

.gg-popup-root > li.gg-icon-mail > a::before,
.gg-popup-root > li.gg-icon-mail > button::before { content: "\f465"; }

.gg-popup-root > li.gg-icon-cart > a::before,
.gg-popup-root > li.gg-icon-cart > button::before { content: "\f174"; }

.gg-popup-root > li.gg-icon-info > a::before,
.gg-popup-root > li.gg-icon-info > button::before { content: "\f348"; }

.gg-popup-root > li.gg-icon-settings > a::before,
.gg-popup-root > li.gg-icon-settings > button::before { content: "\f111"; }

.gg-popup-root > li.gg-icon-star > a::before,
.gg-popup-root > li.gg-icon-star > button::before { content: "\f155"; }

/* === GG Popup Menu: inserted dashicon spans === */
.gg-menu-icon {
  display: inline-block;
  margin-right: 0.45em;
  vertical-align: middle;
  font-size: 1.05em;
  line-height: 1;
  opacity: 0.95;
}


/* Icons inside main menu links */
.gg-menu-link .gg-menu-icon{
  display:inline-block;
  margin-right:0.45em;
  vertical-align:middle;
  font-size:1.05em;
  line-height:1;
  opacity:0.95;
}


/* === Active indicator (top-level) === */
.gg-popup-root > li.is-active > .gg-menu-item-wrap > .gg-menu-link,
.gg-popup-root > li.is-active > .gg-menu-link {
  position: relative;
}
.gg-popup-root > li.is-active > .gg-menu-item-wrap > .gg-menu-link::after,
.gg-popup-root > li.is-active > .gg-menu-link::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -6px;
  height: 2px;
  background: linear-gradient(90deg, rgba(255,184,77,0.95), rgba(255,122,24,0.95));
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(255, 160, 80, 0.35);
}


/* === Nested submenu positioning polish === */
.gg-submenu-panel { z-index: 999999; }
.gg-submenu-panel[data-depth="1"] { min-width: 220px; }

/* Invisible hover bridge (prevents accidental close across small gaps) */
.gg-popup-bridge{
  position: fixed;
  left: 0;
  top: 0;
  width: 0;
  height: 0;
  background: transparent;
  pointer-events: auto;
}


/* === v135: shared indicator bar (header-only, no GSAP) === */
.gg-popup-root{ position: relative; }
.gg-indicator-bar{
  position: absolute;
  bottom: -8px;
  left: 0;
  height: 3px;
  width: 24px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(255,184,77,0.95), rgba(255,122,24,0.95));
  box-shadow: 0 0 10px rgba(255, 160, 80, 0.35);
  transform-origin: left center;
  transform: translateX(0px) scaleX(1);
  opacity: 0;
  transition: transform 220ms ease, opacity 220ms ease;
  pointer-events: none;
}
.gg-popup-root.gg-indicator-ready .gg-indicator-bar{ opacity: 1; }


/* ============================
   Popup item underline (ALL panels, ALL depths)
   - Colored, animated "dash" underline
   - Works for hover + keyboard focus
   ============================ */
:root{
  --ggpm-underline-c1: rgba(79,209,255,0.95);
  --ggpm-underline-c2: rgba(167,139,250,0.95);
}

/* Hard reset for theme underline/list markers inside our popup panels */
.gg-submenu-panel a{
  text-decoration: none !important;
}

.gg-submenu-panel .gg-submenu{
  list-style: none !important;
}

.gg-submenu-panel .gg-submenu li{
  list-style: none !important;
}

/* Underline lives on submenu links (not the top nav links) */
.gg-submenu-panel .gg-submenu .gg-menu-link{
  position: relative;
}

.gg-submenu-panel .gg-submenu .gg-menu-link::after{
  content: "";
  position: absolute;
  left: 2.65rem; /* start after icon slot */
  right: 0.85rem;
  bottom: 0.42rem;
  height: 3px;
  border-radius: 999px;

  /* dashed gradient strip */
  background-image:none !important;
  background-size: 200% 100%;
  background-position: 0 0;

  opacity: 0;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 260ms ease, opacity 260ms ease;
  pointer-events: none;

  /* IMPORTANT: previous builds hid ::after globally */
  display: block !important;
  visibility: visible !important;
}

/* Motion + color on hover */
.gg-submenu-panel .gg-submenu .gg-menu-link:hover::after,
.gg-submenu-panel .gg-submenu .gg-menu-link:focus::after,
.gg-submenu-panel .gg-submenu .gg-menu-link:focus-visible::after{
  opacity: 1;
  transform: scaleX(1);
  animation: ggpmUnderlineDash 850ms linear infinite;
  filter: drop-shadow(0 0 6px rgba(79,209,255,0.35));
}

@keyframes ggpmUnderlineDash{
  from{ background-position: 0 0; }
  to{ background-position: 80px 0; }
}


/* Popup item underline (all panels, all depths) */
:root{
  --ggpm-underline-c1: rgba(79,209,255,0.95);
  --ggpm-underline-c2: rgba(167,139,250,0.95);
}

.gg-submenu-panel a{
  text-decoration: none !important;
}

.gg-submenu-panel ul,
.gg-submenu-panel li{
  list-style: none !important;
}

.gg-submenu-panel .gg-menu-link{
  position: relative;
}

/* dashed + animated underline */
.gg-submenu-panel .gg-menu-link::after{
  content: "";
  position: absolute;
  left: 2.55rem; /* after icon slot */
  right: 0.9rem;
  bottom: 0.42rem;
  height: 3px;
  border-radius: 999px;
  opacity: 0;
  transform: scaleX(0);
  transform-origin: left;
  background-image:none !important;
  background-size: 200% 100%;
  background-position: 0 0;
  transition: transform 220ms ease, opacity 220ms ease;
  pointer-events: none;
  display: block !important;
  visibility: visible !important;
}

.gg-submenu-panel .gg-menu-link:hover::after,
.gg-submenu-panel .gg-menu-link:focus::after,
.gg-submenu-panel .gg-menu-link:focus-visible::after{
  opacity: 1;
  transform: scaleX(1);
  animation: ggpmUnderlineDash 850ms linear infinite;
}

@keyframes ggpmUnderlineDash{
  from { background-position: 0 0; }
  to   { background-position: 120% 0; }
}

/* Popup item underline (all panels, all depths) */
:root{
  --ggpm-underline-c1: rgba(79,209,255,0.95);
  --ggpm-underline-c2: rgba(167,139,250,0.95);
}

.gg-submenu-panel a{ text-decoration:none !important; }
.gg-submenu-panel ul, .gg-submenu-panel li{ list-style:none !important; }

.gg-submenu-panel .gg-submenu .gg-menu-link{
  position:relative;
}
.gg-submenu-panel .gg-submenu .gg-menu-link::after{
  content:"";
  position:absolute;
  left:2.9rem;
  right:0.85rem;
  bottom:0.42rem;
  height:2px;
  border-radius:999px;
  background: repeating-linear-gradient(
    90deg,
    var(--ggpm-underline-c1) 0 10px,
    var(--ggpm-underline-c2) 10px 16px
  );
  background-size: 200% 100%;
  transform: scaleX(0);
  transform-origin:left;
  opacity:0;
  transition: transform 220ms ease, opacity 220ms ease;
  pointer-events:none;
}

.gg-submenu-panel .gg-submenu .gg-menu-link:hover::after,
.gg-submenu-panel .gg-submenu .gg-menu-link:focus::after,
.gg-submenu-panel .gg-submenu .gg-menu-link:focus-visible::after{
  transform: scaleX(1);
  opacity:1;
  animation: ggpmDashMove 900ms linear infinite;
  filter: drop-shadow(0 0 6px rgba(79,209,255,0.25));
}

@keyframes ggpmDashMove{
  from{ background-position: 0% 0%; }
  to{ background-position: 100% 0%; }
}
.gg-submenu-panel .gg-submenu .gg-menu-link::after{content:"";position:absolute;left:2.9rem;right:0.85rem;bottom:0.42rem;height:2px;border-radius:999px;background:repeating-linear-gradient(90deg,var(--ggpm-underline-c1) 0 10px,var(--ggpm-underline-c2) 10px 16px);background-size:200% 100%;transform:scaleX(0);transform-origin:left;opacity:0;transition:transform .22s ease,opacity .22s ease;pointer-events:none;filter:drop-shadow(0 0 6px rgba(79,209,255,.25));}
.gg-submenu-panel .gg-submenu .gg-menu-link:hover::after,.gg-submenu-panel .gg-submenu .gg-menu-link:focus::after,.gg-submenu-panel .gg-submenu .gg-menu-link:focus-visible::after{transform:scaleX(1);opacity:1;animation:ggpmDash 1.1s linear infinite;}
@keyframes ggpmDash{from{background-position:0% 0}to{background-position:200% 0}}
.gg-submenu-panel .gg-submenu .gg-menu-link::after{content:"";position:absolute;left:2.9rem;right:0.85rem;bottom:0.42rem;height:2px;border-radius:999px;opacity:0;transform:scaleX(0);transform-origin:left;transition:transform .22s ease,opacity .22s ease;pointer-events:none;}
.gg-submenu-panel .gg-submenu .gg-menu-link::after{background:repeating-linear-gradient(90deg,var(--ggpm-underline-c1) 0 10px,var(--ggpm-underline-c2) 10px 16px);background-size:200% 100%;}
.gg-submenu-panel .gg-submenu .gg-menu-link:hover::after,
.gg-submenu-panel .gg-submenu .gg-menu-link:focus::after,
.gg-submenu-panel .gg-submenu .gg-menu-link:focus-visible::after{opacity:1;transform:scaleX(1);animation:ggpmDash 0.9s linear infinite;}
@keyframes ggpmDash{from{background-position:0 0;}to{background-position:100% 0;}}

/* =====================================================================
   v142.68 — Popup underline matches main menu style (thick orange bounce)
   Goal: user reported no visible changes due to theme overriding.
   Strategy: ultra-specific selectors + !important; remove list bullets + native underline.
   Applies to ALL popup panels (all depths).
===================================================================== */

/* Hard reset inside our popup panels (BuddyBoss/theme often adds bullets + text-decoration) */
body .gg-submenu-panel ul,
body .gg-submenu-panel ol,
body .gg-submenu-panel li{
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .gg-submenu-panel a,
body .gg-submenu-panel .gg-menu-link,
body .gg-submenu-panel .menu-item > a{
  text-decoration: none !important;
  position: relative !important;
  display: inline-flex !important;
  align-items: center;
}

/* Thick orange underline — same concept as root menu, but stronger */
body .gg-submenu-panel a::after,
body .gg-submenu-panel .gg-menu-link::after,
body .gg-submenu-panel .menu-item > a::after{
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: -6px !important;
  height: 5px !important;
  border-radius: 999px !important;
  opacity: 0 !important;
  transform: scaleX(0.15) !important;
  transform-origin: left center !important;
  background: linear-gradient(90deg, rgba(255,143,0,0.95), rgba(255,193,7,0.95)) !important;
  box-shadow: 0 2px 14px rgba(255,143,0,0.25) !important;
  transition: opacity 160ms ease, transform 240ms cubic-bezier(.2,.9,.2,1) !important;
  pointer-events: none !important;
  display: block !important;
  visibility: visible !important;
}

@keyframes ggpm_underline_bounce_in{
  0%{ transform: scaleX(0.15); }
  55%{ transform: scaleX(1.12); }
  80%{ transform: scaleX(0.96); }
  100%{ transform: scaleX(1); }
}

/* Hover/focus: bounce + slight "breathing" */
body .gg-submenu-panel a:hover::after,
body .gg-submenu-panel a:focus::after,
body .gg-submenu-panel a:focus-visible::after,
body .gg-submenu-panel .gg-menu-link:hover::after,
body .gg-submenu-panel .gg-menu-link:focus-visible::after,
body .gg-submenu-panel .menu-item > a:hover::after,
body .gg-submenu-panel .menu-item > a:focus-visible::after{
  opacity: 1 !important;
  transform: scaleX(1) !important;
  animation: ggpm_underline_bounce_in 420ms cubic-bezier(.2,.9,.2,1) both;
}

/* Optional: make hover feel responsive even if theme sets link colors */
body .gg-submenu-panel a:hover,
body .gg-submenu-panel a:focus-visible,
body .gg-submenu-panel .gg-menu-link:hover,
body .gg-submenu-panel .gg-menu-link:focus-visible{
  text-decoration: none !important;
}

/* =====================================================================
   v142.68 — Popup underline matches main menu style (thick orange bounce)
   - Force remove bullets + default text underline inside popup
   - Add thick orange underline with bounce/size motion on hover/focus
   - Works for ALL popup panels (all depths)
   ===================================================================== */

/* Hard reset for any theme styles inside our popup panels */
.gg-popup-root .gg-submenu-panel ul,
.gg-popup-root .gg-submenu-panel ol,
.gg-popup-root .gg-submenu-panel li{
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Normalize popup links (BuddyBoss/theme often forces underlines) */
.gg-popup-root .gg-submenu-panel a,
.gg-popup-root .gg-submenu-panel .gg-menu-link,
.gg-popup-root .gg-submenu-panel .menu-item > a{
  position: relative !important;
  display: inline-block !important; /* needed for underline sizing */
  text-decoration: none !important;
  -webkit-text-decoration: none !important;
}

/* Keyframes: bounce + subtle shimmer */
@keyframes ggpm_underline_bounce {
  0%   { transform: scaleX(0)   scaleY(0.55); }
  55%  { transform: scaleX(1.08) scaleY(1.05); }
  78%  { transform: scaleX(0.98) scaleY(0.92); }
  100% { transform: scaleX(1)   scaleY(1); }
}

@keyframes ggpm_underline_flow {
  0%   { background-position: 0 0; }
  100% { background-position: 42px 0; }
}

/* Thick orange underline pseudo element (forced visible) */
.gg-popup-root .gg-submenu-panel a::after,
.gg-popup-root .gg-submenu-panel .gg-menu-link::after,
.gg-popup-root .gg-submenu-panel .menu-item > a::after{
  content: "" !important;
  display: block !important;
  visibility: visible !important;
  opacity: 0 !important;
  height: 5px !important;
  border-radius: 999px !important;
  margin-top: 6px !important;
  transform-origin: left center !important;
  transform: scaleX(0) scaleY(0.55) !important;

  /* orange dash-like strip with motion */
  background-image:none !important;
  background-size: 42px 100% !important;

  /* gentle glow */
  box-shadow: 0 0 14px rgba(255, 140, 40, 0.30) !important;

  transition:
    opacity 180ms ease,
    transform 260ms cubic-bezier(.2, .9, .15, 1) !important;
}

/* Hover/focus: bounce in, then keep a subtle flow */
.gg-popup-root .gg-submenu-panel a:hover::after,
.gg-popup-root .gg-submenu-panel a:focus::after,
.gg-popup-root .gg-submenu-panel a:focus-visible::after,
.gg-popup-root .gg-submenu-panel .gg-menu-link:hover::after,
.gg-popup-root .gg-submenu-panel .gg-menu-link:focus::after,
.gg-popup-root .gg-submenu-panel .gg-menu-link:focus-visible::after,
.gg-popup-root .gg-submenu-panel .menu-item > a:hover::after,
.gg-popup-root .gg-submenu-panel .menu-item > a:focus::after,
.gg-popup-root .gg-submenu-panel .menu-item > a:focus-visible::after{
  opacity: 1 !important;
  animation:
    ggpm_underline_bounce 520ms cubic-bezier(.2, .9, .15, 1) 1,
    ggpm_underline_flow 900ms linear infinite !important;
  transform: scaleX(1) scaleY(1) !important;
}

/* Optional: slightly brighten text on hover/focus without changing layout */
.gg-popup-root .gg-submenu-panel a:hover,
.gg-popup-root .gg-submenu-panel a:focus,
.gg-popup-root .gg-submenu-panel a:focus-visible{
  filter: brightness(1.08) !important;
}


/* =====================================================================
   v142.68b — FINAL override: make popup underline visually match TOP items
   (thick orange bouncing line, very high priority)
   ===================================================================== */

:root{
  --ggpm-orange-1: #ff7a00;
  --ggpm-orange-2: #ffb000;
}

/* Kill any theme underlines + bullets inside any gg submenu panel (even if not under .gg-popup-root) */
body .gg-submenu-panel ul,
body .gg-submenu-panel ol,
body .gg-submenu-panel li{ list-style: none !important; }

body .gg-submenu-panel a,
body .gg-submenu-panel .gg-menu-link,
body .gg-submenu-panel .menu-item > a{
  text-decoration: none !important;
  position: relative !important;
  display: inline-block !important;
}

@keyframes ggpmOrangeBounce{
  0%   { transform: translateY(0) scaleX(0) scaleY(0.6); }
  60%  { transform: translateY(0) scaleX(1.06) scaleY(1.05); }
  82%  { transform: translateY(0) scaleX(0.97) scaleY(0.92); }
  100% { transform: translateY(0) scaleX(1) scaleY(1); }
}

/* Thick orange underline (off by default) */
body .gg-submenu-panel a::after,
body .gg-submenu-panel .gg-menu-link::after,
body .gg-submenu-panel .menu-item > a::after{
  content: "" !important;
  display: block !important;
  visibility: visible !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: -0.28em !important;
  height: 6px !important;
  border-radius: 999px !important;
  background: linear-gradient(90deg, var(--ggpm-orange-1), var(--ggpm-orange-2)) !important;
  opacity: 0 !important;
  transform: scaleX(0) scaleY(0.6) !important;
  transform-origin: left center !important;
  transition: opacity 180ms ease !important;
  pointer-events: none !important;
}

/* Hover/focus: bounce-in */
body .gg-submenu-panel a:hover::after,
body .gg-submenu-panel a:focus-visible::after,
body .gg-submenu-panel .gg-menu-link:hover::after,
body .gg-submenu-panel .gg-menu-link:focus-visible::after,
body .gg-submenu-panel .menu-item > a:hover::after,
body .gg-submenu-panel .menu-item > a:focus-visible::after{
  opacity: 1 !important;
  animation: ggpmOrangeBounce 520ms cubic-bezier(.2,.9,.15,1) both !important;
  transform: scaleX(1) scaleY(1) !important;
}

/* =====================================================================
   v142.68b — FINAL override: make popup underline visually match TOP items
   (thick orange bouncing line, very high priority)
   ===================================================================== */

:root{
  --ggpm-orange-1: #ff7a00;
  --ggpm-orange-2: #ffb000;
}

/* Kill theme bullets and native underline inside any gg popup panel */
body .gg-submenu-panel ul,
body .gg-submenu-panel ol,
body .gg-submenu-panel li{
  list-style: none !important;
}

/* Ensure popup links are not natively underlined and can host pseudo underline */
body .gg-submenu-panel a,
body .gg-submenu-panel .gg-menu-link,
body .gg-submenu-panel .menu-item > a{
  text-decoration: none !important;
  -webkit-text-decoration: none !important;
  position: relative !important;
  display: inline-block !important;
}

@keyframes ggpm_orange_bounce{
  0%   { transform: translateY(0) scaleX(0) scaleY(0.5); }
  55%  { transform: translateY(0) scaleX(1.12) scaleY(1.12); }
  78%  { transform: translateY(0) scaleX(0.96) scaleY(0.92); }
  100% { transform: translateY(0) scaleX(1) scaleY(1); }
}

@keyframes ggpm_orange_flow{
  from { background-position: 0% 50%; }
  to   { background-position: 200% 50%; }
}

/* Thick orange underline (default hidden) */
body .gg-submenu-panel a::after,
body .gg-submenu-panel .gg-menu-link::after,
body .gg-submenu-panel .menu-item > a::after{
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: -6px !important;
  height: 5px !important;
  border-radius: 999px !important;
  background-image:none !important;
  background-size: 200% 100% !important;
  opacity: 0 !important;
  transform-origin: left center !important;
  transform: scaleX(0) scaleY(0.6) !important;
  pointer-events: none !important;
  filter: drop-shadow(0 0 10px rgba(255, 122, 0, 0.25)) !important;
}

/* Hover/focus: bounce + flowing gradient */
body .gg-submenu-panel a:hover::after,
body .gg-submenu-panel a:focus::after,
body .gg-submenu-panel a:focus-visible::after,
body .gg-submenu-panel .gg-menu-link:hover::after,
body .gg-submenu-panel .gg-menu-link:focus::after,
body .gg-submenu-panel .gg-menu-link:focus-visible::after,
body .gg-submenu-panel .menu-item > a:hover::after,
body .gg-submenu-panel .menu-item > a:focus::after,
body .gg-submenu-panel .menu-item > a:focus-visible::after{
  opacity: 1 !important;
  animation:
    ggpm_orange_bounce 520ms cubic-bezier(.2,.9,.15,1) 1,
    ggpm_orange_flow 900ms linear infinite !important;
  transform: scaleX(1) scaleY(1) !important;
}

/* Optional: gentle emphasis without shifting layout */
body .gg-submenu-panel a:hover,
body .gg-submenu-panel a:focus,
body .gg-submenu-panel a:focus-visible{
  filter: brightness(1.1) !important;
}

/* =====================================================================
   v142.68 — Underline unification (background-based, orange, all levels)
   Requirements:
   - Thick orange underline under TEXT (top items + all popup items + all depths)
   - Smooth animated + reliable (background-based, not pseudo elements)
   - In inactive towers (icon-only), underline must be OFF
===================================================================== */
:root{
  --ggpm-orange-underline: #ff7a00;
  --ggpm-underline-h: 4px;
}

/* Kill any pseudo underline implementations that may still exist */
.gg-popup-root a.gg-menu-link::after,
.gg-submenu-panel a.gg-menu-link::after,
.gg-popup-root a.gg-menu-link::before,
.gg-submenu-panel a.gg-menu-link::before{
  content: none !important;
  display: none !important;
}

/* Text span is the underline host (keeps underline under text, not icons) */
.gg-popup-root .gg-menu-link .gg-menu-title,
.gg-submenu-panel .gg-menu-link .gg-menu-title,
.gg-submenu-panel .gg-menu-link .gg-link-text{
  text-decoration: none !important;
  background-image:none !important;
  background-repeat: no-repeat !important;
  background-position: 0 100% !important;
  background-size: 0 !important;
  padding-bottom: 0.35rem !important;
  transition: background-size 520ms cubic-bezier(.2,.9,.15,1) !important;
  border: 0 !important;
}

/* Show underline on hover/focus/selected/active */
.gg-popup-root li:hover > .gg-parent-row > .gg-menu-link .gg-menu-title,
.gg-popup-root li:hover > .gg-menu-link .gg-menu-title,
.gg-popup-root li:focus-within > .gg-parent-row > .gg-menu-link .gg-menu-title,
.gg-popup-root li:focus-within > .gg-menu-link .gg-menu-title,
.gg-popup-root li.is-active > .gg-parent-row > .gg-menu-link .gg-menu-title,
.gg-popup-root li.is-active > .gg-menu-link .gg-menu-title,
.gg-submenu-panel li:hover > .gg-parent-row > .gg-menu-link .gg-menu-title,
.gg-submenu-panel li:hover > .gg-menu-link .gg-menu-title,
.gg-submenu-panel li:focus-within > .gg-parent-row > .gg-menu-link .gg-menu-title,
.gg-submenu-panel li:focus-within > .gg-menu-link .gg-menu-title,
.gg-submenu-panel li.is-selected > .gg-parent-row > .gg-menu-link .gg-menu-title,
.gg-submenu-panel li.is-selected > .gg-menu-link .gg-menu-title,
.gg-submenu-panel li.gg-selected > .gg-parent-row > .gg-menu-link .gg-menu-title,
.gg-submenu-panel li.gg-selected > .gg-menu-link .gg-menu-title{
  background-size: 100% var(--ggpm-underline-h) !important;
}

/* Also support tri-panel wrapper span (.gg-link-text) */
.gg-submenu-panel li:hover > .gg-parent-row > .gg-menu-link .gg-link-text,
.gg-submenu-panel li:hover > .gg-menu-link .gg-link-text,
.gg-submenu-panel li:focus-within > .gg-parent-row > .gg-menu-link .gg-link-text,
.gg-submenu-panel li:focus-within > .gg-menu-link .gg-link-text,
.gg-submenu-panel li.is-selected > .gg-parent-row > .gg-menu-link .gg-link-text,
.gg-submenu-panel li.is-selected > .gg-menu-link .gg-link-text,
.gg-submenu-panel li.gg-selected > .gg-parent-row > .gg-menu-link .gg-link-text,
.gg-submenu-panel li.gg-selected > .gg-menu-link .gg-link-text{
  background-size: 100% var(--ggpm-underline-h) !important;
}

/* In icon-only (inactive) towers: ensure underline is OFF + no layout shift */
.gg-submenu-panel .gg-tri-panel:not(.is-active) .gg-menu-link .gg-menu-title,
.gg-submenu-panel .gg-tri-panel:not(.is-active) .gg-menu-link .gg-link-text{
  background-image:none !important;
  background-size: 0 !important;
  padding-bottom: 0 !important;
}

/* v142.68 caret + underline */
.gg-menu-item-link{display:flex;align-items:center;width:100%;box-sizing:border-box;}
.gg-menu-caret{margin-left:auto;opacity:0;transform:translateX(-6px);transition:opacity 320ms ease,transform 420ms cubic-bezier(.22,.61,.36,1);pointer-events:none;}
.gg-menu-item.is-hover-intent>.gg-menu-item-link .gg-menu-caret,.gg-menu-item.is-selected>.gg-menu-item-link .gg-menu-caret{opacity:1;transform:translateX(0);}
.gg-menu-title{background-image:linear-gradient(#ff7a00,#ff7a00);background-repeat:no-repeat;background-position:0 100%;background-size:0% 4px;transition:background-size 420ms cubic-bezier(.22,.61,.36,1);}
.gg-menu-item.is-hover-intent .gg-menu-title,.gg-menu-item.is-selected .gg-menu-title{background-size:100% 4px;}


/* v142.68 fixes: icon centering in inactive towers + full-width underline + right-edge submenu */
.gg-tri-panel:not(.is-active) .gg-menu-item-link{
  justify-content:center;
  padding-left:0 !important;
  padding-right:0 !important;
}
.gg-tri-panel:not(.is-active) .gg-menu-icon{
  margin:0 !important;
  display:flex;
  align-items:center;
  justify-content:center;
}
.gg-tri-panel:not(.is-active) .gg-menu-title,
.gg-tri-panel:not(.is-active) .gg-menu-caret{
  display:none !important;
}

/* FULL-WIDTH underline (applies to link, not title). Disabled in inactive towers by selector. */
.gg-tri-panel.is-active .gg-menu-item-link{
  background-image:linear-gradient(#ff7a00,#ff7a00);
  background-repeat:no-repeat;
  background-position:0 100%;
  background-size:0% 4px;
  transition:background-size 420ms cubic-bezier(.22,.61,.36,1);
}
.gg-tri-panel.is-active .gg-menu-item.is-hover-intent > .gg-menu-item-link,
.gg-tri-panel.is-active .gg-menu-item.is-selected > .gg-menu-item-link{
  background-size:100% 4px;
}
/* neutralize title underline (avoid double line) */
.gg-tri-panel.is-active .gg-menu-title{
  background-image:none !important;
  background-size:auto !important;
}



/* v142.68: right-aligned mega + full-height undertext highlight */
.gg-tri-panel:not(.is-active) .gg-menu-item-link{
  justify-content:center;
  padding:0 !important;
  gap:0 !important;
}
.gg-tri-panel:not(.is-active) .gg-menu-icon{
  margin:0 !important;
}

/* Full-height highlight + bottom underline across FULL item width (active tower only) */
.gg-tri-panel.is-active .gg-menu-item-link{
  background-image:
    linear-gradient(rgba(255,122,0,.18), rgba(255,122,0,.18)),
    linear-gradient(#ff7a00,#ff7a00);
  background-repeat:no-repeat,no-repeat;
  background-position:0 0, 0 100%;
  background-size:0% 100%, 0% 4px;
  transition:background-size 420ms cubic-bezier(.22,.61,.36,1);
}
.gg-tri-panel.is-active .gg-menu-item.is-hover-intent > .gg-menu-item-link,
.gg-tri-panel.is-active .gg-menu-item.is-selected > .gg-menu-item-link{
  background-size:100% 100%, 100% 4px;
}



/* v142.68: make item rows truly full-width so highlight/underline reach the far right */
.gg-menu-list,
.gg-panel-col,
.gg-panel-col ul,
.gg-panel-col li,
.gg-menu-item{
  width:100%;
}
.gg-menu-item{display:block;}
.gg-menu-item-link{
  width:100%;
  flex:1 1 auto;
}

/* caret should sit at the far right edge of the row */
.gg-menu-item-link .gg-menu-caret{margin-left:auto;}

/* Inactive panels: render separate icon-only visuals (original link hidden, no submenu/caret influence) */
.gg-tri-panel:not(.is-active) .gg-menu-item{
  position:relative;
}
.gg-tri-panel:not(.is-active) .gg-menu-item-link{
  display:none !important; /* hide functional link in inactive towers */
}
.gg-tri-panel:not(.is-active) .gg-inactive-icon-only{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:56px;
}
.gg-tri-panel:not(.is-active) .gg-inactive-icon-only .gg-menu-icon{
  margin:0 !important;
}



/* v142.68: underline from text start to row right edge + caret pinned right */
.gg-tri-panel.is-active .gg-menu-item-link{
  display:flex;
  align-items:center;
  width:100%;
}
.gg-tri-panel.is-active .gg-menu-title{
  flex:1 1 auto;
  display:block;
  /* underline lives here so it starts under text (not under icon) but extends to the right edge */
  background-image:linear-gradient(#ff7a00,#ff7a00);
  background-repeat:no-repeat;
  background-position:0 100%;
  background-size:0% 4px;
  transition:background-size 420ms cubic-bezier(.22,.61,.36,1);
}
.gg-tri-panel.is-active .gg-menu-item.is-hover-intent > .gg-menu-item-link .gg-menu-title,
.gg-tri-panel.is-active .gg-menu-item.is-selected > .gg-menu-item-link .gg-menu-title{
  background-size:100% 4px;
}
/* ensure caret is truly at the far right edge of the row container */
.gg-tri-panel.is-active .gg-menu-caret{
  margin-left:0 !important;
  flex:0 0 auto;
}



/* v142.68: inactive towers show ONLY independent icons (no link backgrounds, no underline) */
.gg-tri-panel:not(.is-active) .gg-inactive-icon-only{
  background:none !important;
  box-shadow:none !important;
}



/* v142.68: keep inactive links in DOM flow for logic, but visually isolate them (icon-only UI comes from separate node) */
.gg-tri-panel:not(.is-active) .gg-menu-item{position:relative;}
.gg-tri-panel:not(.is-active) .gg-menu-item-link{
  display:flex !important;
  opacity:0 !important;
  pointer-events:none !important;
  position:absolute !important;
  inset:0 !important;
  margin:0 !important;
}


/* v142.68: ensure tri-panels stretch full mega width and align to the RIGHT on open */
.gg-mega .gg-tri-panels{
  width: 100%;
  justify-content: flex-end;
}
.gg-mega .gg-tri-panel.is-active{
  /* make sure active tower actually consumes remaining space */
  flex: 1 1 0;
}

/* v142.68: inactive towers should show ONLY independent icons */
.gg-tri-panel:not(.is-active) .gg-menu-title,
.gg-tri-panel:not(.is-active) .gg-menu-caret{
  display:none !important;
}
.gg-tri-panel:not(.is-active) .gg-inactive-icon-only{
  display:flex !important;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:56px;
}
.gg-tri-panel:not(.is-active) .gg-menu-item-link{
  opacity:0 !important;
  pointer-events:none !important;
  position:absolute !important;
  inset:0 !important;
}



/* v142.68: inactive panels show ONLY pure icon graphic */
.gg-tri-panel:not(.is-active) .gg-inactive-icon-only{
  display:flex !important;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:56px;
  background:none !important;
  box-shadow:none !important;
}
.gg-tri-panel:not(.is-active) .gg-inactive-icon-only .gg-inactive-icon-graphic{
  display:flex;
  align-items:center;
  justify-content:center;
}
.gg-tri-panel:not(.is-active) .gg-inactive-icon-only svg,
.gg-tri-panel:not(.is-active) .gg-inactive-icon-only img,
.gg-tri-panel:not(.is-active) .gg-inactive-icon-only i{
  display:block;
}
/* Make sure any submenu/caret artifacts never appear in inactive */
.gg-tri-panel:not(.is-active) .gg-menu-caret,
.gg-tri-panel:not(.is-active) .gg-menu-title,
.gg-tri-panel:not(.is-active) .gg-submenu,
.gg-tri-panel:not(.is-active) .gg-has-submenu{
  display:none !important;
}



/* v142.68: INACTIVE towers = strict vertical stacking, pure icons only, no submenu/layout influence */
.gg-tri-panel:not(.is-active) .gg-menu-list,
.gg-tri-panel:not(.is-active) ul{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap: 10px !important;
  padding: 0 !important;
  margin: 0 !important;
}
.gg-tri-panel:not(.is-active) .gg-menu-item,
.gg-tri-panel:not(.is-active) li{
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:64px !important;   /* lock each row height so icons stack perfectly */
  min-height:64px !important;
  margin:0 !important;
}
.gg-tri-panel:not(.is-active) .gg-inactive-icon-only{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:64px !important;
  pointer-events:none !important;
}
.gg-tri-panel:not(.is-active) .gg-inactive-icon-only svg,
.gg-tri-panel:not(.is-active) .gg-inactive-icon-only img{
  width:24px !important;
  height:24px !important;
}
/* keep original links for logic, but remove any sizing/padding/position that could disturb stacking */
.gg-tri-panel:not(.is-active) .gg-menu-item-link{
  visibility:hidden !important;
  pointer-events:none !important;
  position:static !important;
  inset:auto !important;
  padding:0 !important;
  margin:0 !important;
  height:0 !important;
  line-height:0 !important;
  overflow:hidden !important;
}

/* v142.68: ACTIVE row flow = icon -> text (flex) -> caret at far right, full-width */
.gg-tri-panel.is-active .gg-menu-item-link{
  display:flex !important;
  align-items:center !important;
  width:100% !important;
  justify-content:flex-start !important;
}
.gg-tri-panel.is-active .gg-menu-icon{
  flex:0 0 auto !important;
}
.gg-tri-panel.is-active .gg-menu-title{
  flex: 1 1 auto !important;
  min-width: 0 !important;
}
.gg-tri-panel.is-active .gg-menu-caret{
  flex:0 0 auto !important;
  margin-left: auto !important; /* pin to far right of active column */
}



/* v142.68: ACTIVE items must be a single ROW: icon -> text -> caret pinned right */
.gg-tri-panel.is-active .gg-menu-item,
.gg-tri-panel.is-active li{
  width:100%;
}
.gg-tri-panel.is-active .gg-menu-item-link{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap: 14px !important;
  width:100% !important;
  white-space:nowrap; /* keep caret on same line */
}
.gg-tri-panel.is-active .gg-menu-icon{
  flex:0 0 auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
.gg-tri-panel.is-active .gg-menu-title{
  flex:1 1 auto !important;
  min-width:0 !important;
  display:block !important;
}
.gg-tri-panel.is-active .gg-menu-caret{
  flex:0 0 auto !important;
  margin-left:auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
/* If caret/title wrappers are being forced to 100% width somewhere, neutralize */
.gg-tri-panel.is-active .gg-menu-title,
.gg-tri-panel.is-active .gg-menu-caret{
  width:auto !important;
  max-width:100% !important;
}



/* v142.68: FIX ACTIVE ROW using real classes from walker:
   .gg-parent-row > a.gg-menu-link contains: .gg-menu-icon + .gg-submenu-icon + .gg-menu-title + .gg-submenu-toggle(.gg-caret)
*/
.gg-tri-panel.is-active .gg-parent-row,
.gg-tri-panel.is-active .gg-menu-link{
  width:100% !important;
}
.gg-tri-panel.is-active .gg-menu-link{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:14px !important;
  white-space:nowrap !important;
}
.gg-tri-panel.is-active .gg-menu-icon,
.gg-tri-panel.is-active .gg-submenu-icon{
  flex:0 0 auto !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}
.gg-tri-panel.is-active .gg-menu-title{
  flex:1 1 auto !important;
  min-width:0 !important;
  display:block !important;
}
.gg-tri-panel.is-active .gg-submenu-toggle{
  flex:0 0 auto !important;
  margin-left:auto !important; /* pin to far right of active column */
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}

/* v142.68: INACTIVE towers show ONLY icon-only node; hide ALL other children visually so submenu wrappers cannot affect layout */
.gg-tri-panel:not(.is-active) .gg-parent-row,
.gg-tri-panel:not(.is-active) .gg-menu-link,
.gg-tri-panel:not(.is-active) .gg-menu-title,
.gg-tri-panel:not(.is-active) .gg-submenu-toggle,
.gg-tri-panel:not(.is-active) .gg-submenu-icon{
  display:none !important;
}
.gg-tri-panel:not(.is-active) .gg-menu-item{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:64px !important;
  min-height:64px !important;
  margin:0 !important;
}
.gg-tri-panel:not(.is-active) .gg-inactive-icon-only{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:64px !important;
  pointer-events:none !important;
}



/* v142.68: ensure inactive icon-only wrappers are ALWAYS visible (icons only) */
.gg-tri-panel:not(.is-active) .gg-menu-item{
  position:relative !important;
}
.gg-tri-panel:not(.is-active) .gg-inactive-icon-only{
  display:flex !important;
  visibility:visible !important;
  opacity:1 !important;
  position:relative !important;
  z-index:2 !important;
}
/* Safety: if any rule hid svg/img in inactive panels, re-enable inside icon-only */
.gg-tri-panel:not(.is-active) .gg-inactive-icon-only svg,
.gg-tri-panel:not(.is-active) .gg-inactive-icon-only img,
.gg-tri-panel:not(.is-active) .gg-inactive-icon-only i,
.gg-tri-panel:not(.is-active) .gg-inactive-icon-only span{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
}



/* v142.68: HARD FORCE layout (BuddyBoss-safe) */

/* ACTIVE: icon -> title (flex) -> caret at FAR RIGHT, never wraps */
.gg-mega .gg-tri-panel.is-active a.gg-menu-link{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  width:100% !important;
  gap:14px !important;
}
.gg-mega .gg-tri-panel.is-active .gg-menu-icon,
.gg-mega .gg-tri-panel.is-active .gg-submenu-icon{
  flex:0 0 auto !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}
.gg-mega .gg-tri-panel.is-active .gg-menu-title{
  flex:1 1 auto !important;
  min-width:0 !important;
  display:block !important;
}
.gg-mega .gg-tri-panel.is-active .gg-submenu-toggle{
  flex:0 0 auto !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:auto !important;
  max-width:none !important;
  margin-left:auto !important; /* far right */
  position:static !important;
}
.gg-mega .gg-tri-panel.is-active .gg-submenu-toggle,
.gg-mega .gg-tri-panel.is-active .gg-submenu-toggle *{
  white-space:nowrap !important;
}

/* underline under TEXT area extending to the RIGHT EDGE */
.gg-mega .gg-tri-panel.is-active .gg-menu-title{
  background-image:linear-gradient(#ff7a00,#ff7a00);
  background-repeat:no-repeat;
  background-position:0 100%;
  background-size:0% 4px;
  transition:background-size 420ms cubic-bezier(.22,.61,.36,1);
}
.gg-mega .gg-tri-panel.is-active li.gg-menu-item.is-hover-intent > .gg-parent-row a.gg-menu-link .gg-menu-title,
.gg-mega .gg-tri-panel.is-active li.gg-menu-item.is-selected > .gg-parent-row a.gg-menu-link .gg-menu-title,
.gg-mega .gg-tri-panel.is-active li.gg-menu-item.is-hover-intent > a.gg-menu-link .gg-menu-title,
.gg-mega .gg-tri-panel.is-active li.gg-menu-item.is-selected > a.gg-menu-link .gg-menu-title{
  background-size:100% 4px !important;
}

/* INACTIVE: show ONLY icons, stacked vertically */
.gg-mega .gg-tri-panel:not(.is-active) ul,
.gg-mega .gg-tri-panel:not(.is-active) .gg-menu-list{
  display:flex !important;
  flex-direction:column !important;
  gap:10px !important;
  padding:0 !important;
  margin:0 !important;
}
.gg-mega .gg-tri-panel:not(.is-active) li.gg-menu-item{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:64px !important;
  min-height:64px !important;
  margin:0 !important;
  position:relative !important;
}
.gg-mega .gg-tri-panel:not(.is-active) .gg-parent-row,
.gg-mega .gg-tri-panel:not(.is-active) a.gg-menu-link,
.gg-mega .gg-tri-panel:not(.is-active) .gg-menu-title,
.gg-mega .gg-tri-panel:not(.is-active) .gg-submenu-toggle,
.gg-mega .gg-tri-panel:not(.is-active) .gg-submenu-icon{
  display:none !important;
}
.gg-mega .gg-tri-panel:not(.is-active) .gg-inactive-icon-only{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:64px !important;
  pointer-events:none !important;
}



/* v142.68: Fix active panel selection sizing + full-width underline + caret pinned to row right */

/* 1) Ensure the ACTIVE column bounds the hover/selected background (no overflow into free space) */
.gg-tri-panel.is-active{
  overflow:hidden !important;
}
.gg-tri-panel.is-active .gg-menu-list,
.gg-tri-panel.is-active ul{
  width:100% !important;
}
.gg-tri-panel.is-active .gg-menu-item,
.gg-tri-panel.is-active li{
  width:100% !important;
  max-width:100% !important;
}
.gg-tri-panel.is-active .gg-menu-link{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}

/* 2) Full-width orange underline across the whole row (left edge to right edge) */
.gg-tri-panel.is-active .gg-menu-link{
  background-image:none !important;
  background-repeat:no-repeat;
  background-position: 0 100%;
  background-size: 0% 4px;
  transition: background-size 420ms cubic-bezier(.22,.61,.36,1);
}
.gg-tri-panel.is-active .gg-menu-item.is-hover-intent > .gg-menu-link,
.gg-tri-panel.is-active .gg-menu-item.is-selected > .gg-menu-link,
.gg-tri-panel.is-active .gg-menu-link:hover,
.gg-tri-panel.is-active .gg-menu-link:focus{
  background-size: 100% 4px;
}

/* remove any title-based underline that may fight this */
.gg-tri-panel.is-active .gg-menu-title{
  background-image:none !important;
}

/* 3) Row layout: icon -> text -> popup icon at far right */
.gg-tri-panel.is-active .gg-menu-link{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:14px !important;
  white-space:nowrap !important;
}
.gg-tri-panel.is-active .gg-menu-title{
  flex: 1 1 auto !important;
  min-width: 0 !important;
}
.gg-tri-panel.is-active .gg-submenu-toggle,
.gg-tri-panel.is-active .gg-menu-caret{
  margin-left:auto !important;
  flex:0 0 auto !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}

/* Selection bg should stay inside row width */
.gg-tri-panel.is-active .gg-menu-item.is-hover-intent > .gg-menu-link,
.gg-tri-panel.is-active .gg-menu-item.is-selected > .gg-menu-link{
  background-clip: padding-box;
}



/* === v142.68 canonical behavior === */
.gg-row-underline{
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  height:4px !important;
  background: var(--ggpm-orange-underline, #ff7a00) !important;
  border-radius:999px !important;
  transform:scaleX(0) !important;
  transform-origin:left center !important;
  transition:transform 420ms cubic-bezier(.22,.61,.36,1) !important;
  pointer-events:none !important;
}
.gg-menu-item.gg-hover > .gg-parent-row > .gg-menu-link .gg-row-underline,
.gg-menu-item.gg-hover > .gg-menu-link .gg-row-underline,
.gg-menu-item.is-selected > .gg-parent-row > .gg-menu-link .gg-row-underline,
.gg-menu-item.is-selected > .gg-menu-link .gg-row-underline,
.gg-menu-link:hover .gg-row-underline,
.gg-menu-link:focus .gg-row-underline{
  transform:scaleX(1) !important;
}

/* Kill any remaining title underline artifacts */
.gg-menu-title,
.gg-menu-title *{
  background:none !important;
  background-image:none !important;
  box-shadow:none !important;
  border-bottom:0 !important;
  text-decoration:none !important;
}
.gg-menu-title::before,
.gg-menu-title::after{
  content:none !important;
  display:none !important;
}

/* Active rows: proper row layout; caret far right */
.gg-tri-panel.is-active .gg-menu-link{
  position:relative !important;
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  gap:14px !important;
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
  background:none !important;
  background-image:none !important;
  border-bottom:0 !important;
  box-shadow:none !important;
}
.gg-tri-panel.is-active .gg-menu-title{flex:1 1 auto !important; min-width:0 !important;}
.gg-tri-panel.is-active .gg-submenu-toggle{margin-left:auto !important;}

/* Inactive towers: show ONLY icons, keep native link so pseudo-icons render */
.gg-tri-panel:not(.is-active) .gg-parent-row{display:block !important;}
.gg-tri-panel:not(.is-active) .gg-menu-link{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:64px !important;
  padding:0 !important;
  margin:0 !important;
  background:none !important;
  box-shadow:none !important;
  border:0 !important;
}
.gg-tri-panel:not(.is-active) .gg-menu-title{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  clip-path:inset(50%) !important;
  white-space:nowrap !important;
  opacity:0 !important;
}
.gg-tri-panel:not(.is-active) .gg-submenu-toggle{display:none !important;}


/* === v142.68: remove scrollbars + ensure inactive icons visible === */

/* Remove any internal scrolling in mega panels */
.gg-mega .gg-tri-panel,
.gg-mega .gg-tri-panel .gg-panel-inner,
.gg-mega .gg-tri-panel .gg-panel-body,
.gg-mega .gg-tri-panel .gg-menu-list,
.gg-mega .gg-tri-panel ul,
.gg-mega .gg-tri-panel .gg-panel-content{
  max-height:none !important;
  height:auto !important;
  overflow:visible !important;
  overflow-y:visible !important;
}

/* If any custom scroll wrapper exists, disable it */
.gg-mega .gg-scroll,
.gg-mega .gg-scroll-area,
.gg-mega .gg-menu-scroll,
.gg-mega .gg-panel-scroll{
  max-height:none !important;
  height:auto !important;
  overflow:visible !important;
  overflow-y:visible !important;
}
.gg-mega .gg-scrollbar,
.gg-mega .gg-scrollbar-track,
.gg-mega .gg-scrollbar-thumb{
  display:none !important;
  opacity:0 !important;
  visibility:hidden !important;
}

/* Inactive towers: force icon visibility */
.gg-tri-panel:not(.is-active) .gg-menu-icon,
.gg-tri-panel:not(.is-active) .bb-icon,
.gg-tri-panel:not(.is-active) .menu-item-icon,
.gg-tri-panel:not(.is-active) .gg-menu-link i,
.gg-tri-panel:not(.is-active) .gg-menu-link svg,
.gg-tri-panel:not(.is-active) .gg-menu-link img{
  display:flex !important;
  visibility:visible !important;
  opacity:1 !important;
  align-items:center !important;
  justify-content:center !important;
}

/* Some themes hide icon glyphs with color; ensure inherits foreground */
.gg-tri-panel:not(.is-active) .gg-menu-icon *,
.gg-tri-panel:not(.is-active) .bb-icon *,
.gg-tri-panel:not(.is-active) .menu-item-icon *{
  opacity:1 !important;
  visibility:visible !important;
}

/* Keep titles visually hidden (but not removing DOM) */
.gg-tri-panel:not(.is-active) .gg-menu-title{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  clip-path:inset(50%) !important;
  white-space:nowrap !important;
  opacity:0 !important;
}


/* === v142.68: fix misplaced/duplicate icons by removing legacy layers and constraining inactive DOM === */

/* 1) NEVER show any legacy inactive icon layers (from older builds) */
.gg-inactive-icons-layer,
.gg-icon-row,
.gg-inactive-icon-only{
  display:none !important;
}

/* 2) In inactive towers, keep ONLY the real icon wrapper inside the link; hide all other direct children */
.gg-tri-panel:not(.is-active) .gg-menu-link{
  position:relative !important;
}
.gg-tri-panel:not(.is-active) .gg-menu-link > *{
  display:none !important;
}
.gg-tri-panel:not(.is-active) .gg-menu-link > .gg-menu-icon,
.gg-tri-panel:not(.is-active) .gg-menu-link > .bb-icon,
.gg-tri-panel:not(.is-active) .gg-menu-link > .menu-item-icon{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}

/* 3) Ensure the icon wrapper is centered and the ONLY visible thing */
.gg-tri-panel:not(.is-active) .gg-menu-link > .gg-menu-icon,
.gg-tri-panel:not(.is-active) .gg-menu-link > .bb-icon,
.gg-tri-panel:not(.is-active) .gg-menu-link > .menu-item-icon{
  margin:0 !important;
  padding:0 !important;
}

/* 4) Prevent any absolutely-positioned icon clones from leaking into the active area */
.gg-tri-panel .gg-menu-list,
.gg-tri-panel ul{
  position:relative !important;
}


/* === v142.68 (v64 base): restore open behavior (JS untouched) + text-only underline + inactive icons === */

/* Disable any full-row underline systems */
.gg-row-underline{ display:none !important; }
.gg-menu-link::after{ display:none !important; }

/* Keep ONLY text underline on title (applies to top menu + popup items) */
.gg-menu-title{
  background-image: linear-gradient(#ff7a00,#ff7a00) !important;
  background-repeat: no-repeat !important;
  background-size: 0% 4px !important;
  background-position: left calc(100% - 2px) !important;
  padding-bottom: 8px !important;
  transition: background-size 420ms cubic-bezier(.22,.61,.36,1) !important;
}
.gg-menu-link:hover .gg-menu-title,
.gg-menu-item.gg-hover .gg-menu-title,
.gg-menu-item.is-selected .gg-menu-title,
.gg-menu-item.current-menu-item .gg-menu-title,
.gg-menu-item.current-menu-ancestor .gg-menu-title{
  background-size: 100% 4px !important;
}

/* Inactive towers: icons visible (no empty spaces), text hidden */
.gg-tri-panel:not(.is-active) .gg-menu-link{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:64px !important;
  padding:0 !important;
  margin:0 !important;
}
.gg-tri-panel:not(.is-active) .gg-menu-icon,
.gg-tri-panel:not(.is-active) .bb-icon,
.gg-tri-panel:not(.is-active) .menu-item-icon,
.gg-tri-panel:not(.is-active) .gg-menu-link svg,
.gg-tri-panel:not(.is-active) .gg-menu-link img,
.gg-tri-panel:not(.is-active) .gg-menu-link i{
  display:flex !important;
  opacity:1 !important;
  visibility:visible !important;
  align-items:center !important;
  justify-content:center !important;
}
.gg-tri-panel:not(.is-active) .gg-menu-title{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  clip-path:inset(50%) !important;
  white-space:nowrap !important;
  opacity:0 !important;
}
.gg-tri-panel:not(.is-active) .gg-menu-caret,
.gg-tri-panel:not(.is-active) .gg-submenu-toggle,
.gg-tri-panel:not(.is-active) .sub-menu-toggle{
  display:none !important;
}


/* =============================
   v1.42.77 PERMANENT ICON RAIL
============================= */

.gg-tri-panel{
  display:flex;
  flex-direction:row;
}

.gg-tower-rail{
  width:56px;
  flex:0 0 56px;
  display:flex;
  flex-direction:column;
  align-items:center;
  padding-top:16px;
  gap:18px;
}

.gg-tower-rail i{
  font-size:18px;
  color:#666;
  opacity:.95;
}

.gg-tri-panel.is-active .gg-tower-rail i{
  color:#aaa;
}

/* ensure content area uses remaining space */
.gg-tri-panel > .gg-panel-inner{
  flex:1 1 auto;
}

/* === FIX: panel slide-in + tower alignment === */

.bb-panels {
  display: flex;
  position: relative;
  overflow: hidden;
}

.bb-panel {
  min-width: 280px;
  transform: translateX(100%);
  opacity: 0;
  transition: transform 220ms ease, opacity 180ms ease;
  will-change: transform;
}

.bb-panel-active {
  transform: translateX(0);
  opacity: 1;
}

.bb-tower {
  display: grid;
  grid-auto-rows: 48px;
  justify-items: center;
  padding-top: 8px;
}

.bb-tower i {
  font-size: 18px;
  color: rgba(255,255,255,0.65);
}

@media (max-width: 768px) {
  .bb-tower {
    display: none;
  }

  .bb-panel {
    min-width: 100vw;
  }
}

/* === FIX v142.79: tower icon visibility & alignment === */

/* Match panel row height exactly */
:root {
  --bb-row-height: 48px;
}

.bb-panel .bb-menu-item {
  min-height: var(--bb-row-height);
}

/* Towers mirror panel rows */
.bb-tower {
  display: grid;
  grid-auto-rows: var(--bb-row-height);
  align-content: start;
  padding-top: var(--bb-panel-padding-top, 12px);
}

/* Ensure icons are centered and visible */
.bb-tower i {
  align-self: center;
  justify-self: center;
  opacity: 0.85;
}

/* Prevent clipping */
.bb-tower,
.bb-tower * {
  overflow: visible;
}

/* === FIX v1.42.80: absolute-calculated tower icon placement === */

/*
Strategy:
- Towers are independent of panel height
- Icons are positioned absolutely based on row index
- No JS, no observers
- Requires data-row-index="0..n" on tower icons
*/

:root {
  --bb-row-height: 48px;
  --bb-panel-top-offset: 72px; /* header + padding, safe static */
}

.bb-tower {
  position: relative;
}

.bb-tower i {
  position: absolute;
  left: 50%;
  transform: translateX(-50%)
             translateY(
               calc(
                 var(--bb-panel-top-offset)
                 + (var(--bb-row-height) * var(--bb-row-index))
                 + (var(--bb-row-height) / 2)
               )
             );
  opacity: 0.9;
  pointer-events: none;
}

/* === v1.42.81 Icon Rail Replacement (tower-safe) === */
:root {
  --bb-row-height: 48px;
  --bb-panel-top: 72px;
  --bb-rail-offset: 10px;
}

.bb-icon-rail {
  position: absolute;
  top: var(--bb-panel-top);
  right: var(--bb-rail-offset);
  z-index: 50;
  pointer-events: none;
}

.bb-icon-rail i {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  font-size: 18px;
  opacity: .9;
  color: #fff;
}

.bb-icon-rail i[data-row] {
  top: calc(var(--bb-row-height) * attr(data-row number));
}

.bb-tower i {
  display: none !important;
}

/* === v1.42.82: tower + rail responsibility split === */

/* Towers show icons ONLY when active */
.bb-tower {
  display: flex;
  align-items: center;
  justify-content: center;
}

.bb-tower i {
  display: block;
  font-size: 18px;
  color: rgba(255,255,255,.9);
}

/* When menu is collapsed, hide tower icons */
.bb-menu-collapsed .bb-tower i {
  display: none;
}

/* Icon rail fills the visual gap when collapsed */
.bb-menu-collapsed .bb-icon-rail {
  display: block;
}

/* Hide rail when expanded */
.bb-icon-rail {
  display: none;
}

/* Rail positioning */
.bb-menu-collapsed .bb-icon-rail {
  position: absolute;
  top: var(--bb-panel-top);
  right: var(--bb-rail-offset);
  z-index: 60;
}

/* === v1.42.83 secondary context for inactive towers === */

/* tower becomes container only */
.bb-tower {
  position: relative;
  overflow: hidden;
}

/* primary content hidden when inactive */
.bb-menu-collapsed .bb-tower-primary {
  opacity: 0;
  pointer-events: none;
}

/* secondary icon context */
.bb-tower-secondary {
  position: absolute;
  inset: 0;
  display: grid;
  grid-auto-rows: 48px;
  justify-items: center;
  align-content: start;
  opacity: 0;
  pointer-events: none;
}

/* activate secondary context */
.bb-menu-collapsed .bb-tower-secondary {
  opacity: 1;
  pointer-events: auto;
}

/* icons always visible */
.bb-tower-secondary i {
  font-size: 18px;
  color: rgba(255,255,255,.9);
}

/* === v1.42.84 FINALIZED inactive tower FA6 logic === */

/* tower never collapses layout-wise */
.bb-tower {
  position: relative;
  width: 56px;
}

/* primary hidden when inactive */
.bb-menu-collapsed .bb-tower-primary {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

/* secondary FA6 context */
.bb-tower-secondary {
  position: absolute;
  inset: 0;
  display: grid;
  grid-auto-rows: 48px;
  justify-items: center;
  align-content: start;
  opacity: 0;
  visibility: hidden;
}

/* activate icons */
.bb-menu-collapsed .bb-tower-secondary {
  opacity: 1;
  visibility: visible;
}

/* FA6 icon styling */
.bb-tower-secondary i {
  font-size: 18px;
  line-height: 48px;
  color: rgba(255,255,255,0.9);
  pointer-events: none;
}

/* === v1.42.85 FIX: panels visible + FA6 icons everywhere === */

/* Panels must always be visible */
.bb-panel,
.bb-panel * {
  visibility: visible !important;
  opacity: 1 !important;
}

/* Ensure panel menu items show FA6 icons */
.bb-menu-item i.fa-solid {
  display: inline-flex;
  width: 32px;
  justify-content: center;
  align-items: center;
  font-size: 16px;
}

/* Ensure text is not hidden */
.bb-menu-item span {
  opacity: 1;
  visibility: visible;
}

/* Secondary tower context ONLY affects towers */
.bb-menu-collapsed .bb-panel {
  pointer-events: auto;
}

/* === v1.42.87 FA6 SVG MASK ICON SYSTEM === */

.bb-icon {
  width: 18px;
  height: 18px;
  display: inline-block;
  background-color: currentColor;
  flex-shrink: 0;
}

/* FA6 SOLID SVG MASKS */
.bb-icon-view {
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'><path d='M572.52 241.4C518.86 135.49 407.44 64 288 64S57.14 135.49 3.48 241.4a48.07 48.07 0 0 0 0 29.2C57.14 376.51 168.56 448 288 448s230.86-71.49 284.52-177.4a48.07 48.07 0 0 0 0-29.2zM288 400c-61.86 0-112-50.14-112-112s50.14-112 112-112 112 50.14 112 112-50.14 112-112 112z'/></svg>') no-repeat center;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'><path d='M572.52 241.4C518.86 135.49 407.44 64 288 64S57.14 135.49 3.48 241.4a48.07 48.07 0 0 0 0 29.2C57.14 376.51 168.56 448 288 448s230.86-71.49 284.52-177.4a48.07 48.07 0 0 0 0-29.2zM288 400c-61.86 0-112-50.14-112-112s50.14-112 112-112 112 50.14 112 112-50.14 112-112 112z'/></svg>') no-repeat center;
}

.bb-icon-edit {
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M362.7 19.3c25-25 65.5-25 90.5 0l39.6 39.6c25 25 25 65.5 0 90.5L100.3 542.7c-10.5 10.5-24.8 16.4-39.6 16.4H16c-8.8 0-16-7.2-16-16v-44.7c0-14.8 5.9-29.1 16.4-39.6L362.7 19.3z'/></svg>') no-repeat center;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M362.7 19.3c25-25 65.5-25 90.5 0l39.6 39.6c25 25 25 65.5 0 90.5L100.3 542.7c-10.5 10.5-24.8 16.4-39.6 16.4H16c-8.8 0-16-7.2-16-16v-44.7c0-14.8 5.9-29.1 16.4-39.6L362.7 19.3z'/></svg>') no-repeat center;
}


/* === GG_VIRTUAL_ICON_CSS v1.43.9 === */
.gg-submenu-panel .gg-tri-panel.is-active a.gg-menu-link {
  display: flex;
  align-items: center;
}
.gg-submenu-panel .gg-tri-panel.is-active a.gg-menu-link .gg-link-text {
  flex: 1 1 auto;
  min-width: 0;
}
.gg-submenu-panel .gg-tri-panel.is-active a.gg-menu-link .gg-submenu-toggle,
.gg-submenu-panel .gg-tri-panel.is-active a.gg-menu-link .gg-inline-caret {
  margin-left: auto;
  flex: 0 0 auto;
}

.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item.gg-has-virtual-icon > a.gg-menu-link {
  display: none !important;
}
.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item > .gg-virtual-icon {
  display: flex !important;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  width: 100%;
}
.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item > .gg-virtual-icon .gg-submenu-icon {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 1.6em;
}
/* === END GG_VIRTUAL_ICON_CSS === */


/* === GG_VIRTUAL_ICON_VISIBILITY v1.44.0 === */
.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item > .gg-virtual-icon .gg-submenu-icon.dashicons {
  font-size: 18px;
  line-height: 1;
  width: 1.6em;
  height: 1.6em;
  color: currentColor;
}
/* === END GG_VIRTUAL_ICON_VISIBILITY === */


/* === GG_DASHICONS_FORCE_VISIBLE v1.44.2 === */
/* In some BuddyBoss/Bootstrap contexts, towers may inherit font-size:0/opacity/visibility. Force visibility for virtual icons. */
.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item > .gg-virtual-icon,
.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item > .gg-virtual-icon * {
  visibility: visible !important;
  opacity: 1 !important;
}

.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item > .gg-virtual-icon {
  overflow: visible !important;
}

.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item > .gg-virtual-icon .gg-submenu-icon.dashicons {
  font-size: 18px !important;
  line-height: 1 !important;
  width: 1.6em !important;
  height: 1.6em !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: currentColor !important;
}

.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item > .gg-virtual-icon .gg-submenu-icon.dashicons::before {
  display: inline-block !important;
  font-size: inherit !important;
  line-height: inherit !important;
  width: auto !important;
  height: auto !important;
}
/* === END GG_DASHICONS_FORCE_VISIBLE === */


/* === GG_FORCE_ICON_DISPLAY v1.44.4 === */
/* BuddyBoss sometimes hides .gg-submenu-icon in collapsed panels; force our virtual icon span to render */
.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item > .gg-virtual-icon .gg-submenu-icon {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
}
.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item > .gg-virtual-icon .gg-submenu-icon::before {
  display: inline-block !important;
  visibility: visible !important;
}
/* === END GG_FORCE_ICON_DISPLAY === */


/* === GG_VIRTUAL_SUBMENU_ICON_CLASS v1.44.7 === */
/* Avoid theme rules that hide .gg-submenu-icon in inactive towers: use a dedicated class for virtual icons */
.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item > .gg-virtual-icon .gg-virtual-submenu-icon.dashicons {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  font-size: 20px !important;
  line-height: 1 !important;
  width: 1.8em !important;
  height: 1.8em !important;
  color: currentColor !important;
}
.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item > .gg-virtual-icon .gg-virtual-submenu-icon.dashicons::before {
  display: inline-block !important;
  visibility: visible !important;
}
/* === END GG_VIRTUAL_SUBMENU_ICON_CLASS === */


/* === GG_VIRTUAL_ICON_LEGACY_SPAN v1.44.8 === */
/* Defensive: if any legacy span remains, force it visible inside virtual icon wrapper */
.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item > .gg-virtual-icon .gg-submenu-icon.dashicons {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
}
/* === END GG_VIRTUAL_ICON_LEGACY_SPAN === */


/* === GG_CENTER_INACTIVE_TOWER_ICONS v1.44.9 === */
/* Center virtual icons perfectly inside inactive (collapsed) towers */
.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item > .gg-virtual-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 48px !important;
}

.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item > .gg-virtual-icon .gg-virtual-submenu-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
}
/* === END GG_CENTER_INACTIVE_TOWER_ICONS === */


/* === GG_HORIZONTAL_CENTER_INACTIVE_TOWERS v1.45.0 === */
/* Ensure icons are horizontally centered within inactive tower cards */
.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item {
  display: flex !important;
  justify-content: center !important;
}

.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item > .gg-virtual-icon {
  margin-left: auto !important;
  margin-right: auto !important;
}
/* === END GG_HORIZONTAL_CENTER_INACTIVE_TOWERS === */


/* === GG_ABSOLUTE_CENTER_INACTIVE_ICONS v1.45.1 === */
/* Robust centering: some themes force left alignment/padding on li; absolute-center the virtual icon inside the collapsed card */
.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item {
  position: relative !important;
}

.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item > .gg-virtual-icon {
  position: absolute !important;
  inset: 0 !important;            /* top/right/bottom/left: 0 */
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 0 !important;
  width: auto !important;
  height: auto !important;
  pointer-events: auto !important;
}
/* === END GG_ABSOLUTE_CENTER_INACTIVE_ICONS === */


/* === GG_CENTER_INACTIVE_TABS_FIX2 v1.45.2 === */
/* In collapsed (inactive) towers, BuddyBoss keeps left padding/indent for list rows.
   Remove that indent and hard-center the virtual icon overlay. */
.gg-submenu-panel .gg-tri-panel:not(.is-active) .gg-submenu.list-unstyled {
  padding-left: 0 !important;
  margin-left: 0 !important;
}

.gg-submenu-panel .gg-tri-panel:not(.is-active) .gg-submenu.list-unstyled > li.gg-menu-item {
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  text-align: center !important;
  position: relative !important;
}

.gg-submenu-panel .gg-tri-panel:not(.is-active) .gg-submenu.list-unstyled > li.gg-menu-item > .gg-virtual-icon {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  inset: auto !important; /* override previous inset rule if present */
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  pointer-events: auto !important;
}

.gg-submenu-panel .gg-tri-panel:not(.is-active) .gg-submenu.list-unstyled > li.gg-menu-item > .gg-virtual-icon .gg-virtual-submenu-icon {
  margin: 0 !important;
}
/* === END GG_CENTER_INACTIVE_TABS_FIX2 === */


/* === GG_CENTER_INACTIVE_VIRTUAL_ICONS_FINAL v1.45.5 === */
/* 1) In inactive (collapsed) towers: hide the original submenu icon inside the row (prevents "double icons") */
.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item .gg-submenu-icon {
  display: none !important;
  visibility: hidden !important;
}

/* 2) Hard-center the virtual icon overlay inside the entire collapsed card */
.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item {
  position: relative !important;
}

.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item > .gg-virtual-icon {
  position: absolute !important;
  inset: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 0 !important;
  pointer-events: none !important; /* overlay is purely visual */
}

.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item > .gg-virtual-icon .gg-virtual-submenu-icon {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
}
/* === END GG_CENTER_INACTIVE_VIRTUAL_ICONS_FINAL === */


/* === GG_HCENTER_INACTIVE_TOWERS v1.45.7 === */
/* BuddyBoss keeps a left "gutter" padding on collapsed rows; remove it ONLY for inactive towers */
.gg-submenu-panel .gg-tri-panel:not(.is-active) ul,
.gg-submenu-panel .gg-tri-panel:not(.is-active) ul.gg-submenu,
.gg-submenu-panel .gg-tri-panel:not(.is-active) ul.gg-submenu.list-unstyled,
.gg-submenu-panel .gg-tri-panel:not(.is-active) ul.gg-submenu.list-unstyled.m-0 {
  padding-left: 0 !important;
  margin-left: 0 !important;
}

.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item {
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Hard-center the visual icon itself (independent of any padding/gutters) */
.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item > .gg-virtual-icon {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  width: 100% !important;
  height: 100% !important;
  inset: auto !important; /* override inset:0 if present */
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* === END GG_HCENTER_INACTIVE_TOWERS === */


/* === GG_FORCE_PANEL_CENTER_INACTIVE v1.45.8 === */
/* Some BuddyBoss layouts add left gutters on the PANEL itself; neutralize them for inactive towers only */
.gg-submenu-panel .gg-tri-panel:not(.is-active),
.gg-submenu-panel .gg-tri-panel:not(.is-active) .gg-submenu,
.gg-submenu-panel .gg-tri-panel:not(.is-active) .gg-submenu.list-unstyled {
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Make the inactive tower list a centered column */
.gg-submenu-panel .gg-tri-panel:not(.is-active) ul.gg-submenu {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
}

/* Ensure each row spans full panel width */
.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item {
  width: 100% !important;
}



/* Remove anchor padding that creates the “shifted inner column” — inactive towers only */
.gg-submenu-panel.gg-mega .gg-tri-panel:not(.is-active) li.gg-has-virtual-icon > a.gg-menu-link,
.gg-submenu-panel.gg-mega .gg-tri-panel:not(.is-active) li.gg-has-virtual-icon > a {
  padding-left: 0 !important;
  padding-right: 0 !important;
  text-indent: 0 !important;
  width: 100% !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

/* Center virtual icon relative to the FULL row box */
.gg-submenu-panel .gg-tri-panel:not(.is-active) li.gg-menu-item > .gg-virtual-icon {
  position: absolute !important;
  inset: 0 !important;
  left: 0 !important;
  top: 0 !important;
  transform: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
/* === END GG_FORCE_PANEL_CENTER_INACTIVE === */


/* =========================================================
   GGPM v1.46.6: Font Awesome 6 for virtual (inactive) icons
   - Uses FA6 if loaded; keeps dashicons as fallback.
========================================================= */
.gg-virtual-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
}

.gg-virtual-icon .ggpm-fa6-icon{
  font-size: 20px;
  line-height: 1;
}

/* Keep fallback visually similar */
.gg-virtual-icon .ggpm-dashicon-fallback{
  font-size: 20px;
  line-height: 1;
}


/* =========================================================
   GGPM v1.46.7: Inactive panel overlay icons (plugin-drawn)
   Does not touch BuddyBoss hover/underline rows.
========================================================= */
.gg-submenu-panel.gg-mega .gg-tri-panel:not(.is-active){
  position: relative;
}
.gg-submenu-panel.gg-mega .gg-tri-panel:not(.is-active) .ggpm-inactive-overlay{
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 22px;
  pointer-events: auto;
  z-index: 5;
}
.gg-submenu-panel.gg-mega .gg-tri-panel:not(.is-active) .ggpm-inactive-icon-btn{
  all: unset;
  cursor: pointer;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  opacity: 0.95;
}
.gg-submenu-panel.gg-mega .gg-tri-panel:not(.is-active) .ggpm-inactive-icon-btn:hover{
  opacity: 1;
}
.gg-submenu-panel.gg-mega .gg-tri-panel:not(.is-active) .ggpm-inactive-icon-btn .ggpm-icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
}
.gg-submenu-panel.gg-mega .gg-tri-panel:not(.is-active) .ggpm-inactive-icon-btn svg{
  display: block;
}

/* Hide the original list in inactive panels, because overlay is the UI */
.gg-submenu-panel.gg-mega .gg-tri-panel:not(.is-active) > ul.gg-submenu{
  visibility: hidden !important;
}


/* =========================================================
   GGPM v1.46.8: Inline FA6-style SVG icons for first panel items
========================================================= */
.gg-submenu-panel.gg-mega .gg-tri-panels .gg-tri-panel:first-child a.gg-menu-link{
  gap: 12px;
}
.gg-submenu-panel.gg-mega .ggpm-inline-fa6{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  opacity: 0.95;
}
.gg-submenu-panel.gg-mega .ggpm-inline-fa6 svg{
  display: block;
}


/* =========================================================
   GGPM v1.46.9: Make inline SVG icons visible in active panel too
========================================================= */
.gg-submenu-panel.gg-mega .ggpm-inline-fa6{
  color: currentColor;
  opacity: 1;
}
.gg-submenu-panel.gg-mega .ggpm-inline-fa6 svg path{
  fill: currentColor;
}


/* =========================================================
   GGPM v1.47.0: Replace placeholder circles in first panel with inline FA6 SVG
========================================================= */
.gg-submenu-panel.gg-mega .gg-tri-panels .gg-tri-panel:first-child a.gg-menu-link > .gg-menu-icon,
.gg-submenu-panel.gg-mega .gg-tri-panels .gg-tri-panel:first-child a.gg-menu-link > .dashicons{
  display: none !important;
}
.gg-submenu-panel.gg-mega .gg-tri-panels .gg-tri-panel:first-child a.gg-menu-link{
  display: flex;
  align-items: center;
  gap: 14px;
}


/* =========================================================
   GGPM v1.47.2: Font Awesome 6 display helpers (active panel)
========================================================= */
.gg-submenu-panel.gg-mega .ggpm-inline-fa6{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  flex:0 0 24px;
  color: currentColor;
}
.gg-submenu-panel.gg-mega .ggpm-inline-fa6 .ggpm-fa6-i{
  font-size: 20px;
  line-height: 1;
  display:inline-block;
}
.gg-submenu-panel.gg-mega .ggpm-inline-fa6 .ggpm-svg-fallback svg{
  width:24px;
  height:24px;
}


/* =========================================================
   GGPM v1.47.3: Hide placeholder circles in ACTIVE first panel too
========================================================= */
.gg-submenu-panel.gg-mega .gg-tri-panel.is-active a.gg-menu-link > .gg-menu-icon,
.gg-submenu-panel.gg-mega .gg-tri-panel.is-active a.gg-menu-link > .dashicons{
  display: none !important;
}


/* =========================================================
   GGPM v1.47.4: Strong display rules for injected FA6 icons
========================================================= */
.gg-submenu-panel.gg-mega .ggpm-inline-fa6{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:24px !important;
  height:24px !important;
  flex:0 0 24px !important;
  margin-right:12px !important;
  color: currentColor !important;
}
.gg-submenu-panel.gg-mega .ggpm-inline-fa6 .ggpm-fa6-i{
  display:inline-block !important;
  font-size:20px !important;
  line-height:1 !important;
  color: currentColor !important;
}

/* GGPM v1.48.8: ensure inserted icon span doesn't get reset by theme */
.gg-submenu-panel.gg-mega.ggpm-icon-override a.gg-menu-link .ggpm-icon-span{
  pointer-events:none !important;
}

/* GGPM v1.49.0 tower icon span positioning (only for inactive panels) */
.gg-submenu-panel.gg-mega .gg-tri-panel:not(.is-active) > .ggpm-tower-icon-span{
  display:block !important;
}
.gg-submenu-panel.gg-mega .gg-tri-panel.is-active > .ggpm-tower-icon-span{
  display:none !important;
}


/* =========================================================
   GGPM v1.49.2
   1) Force highlight on first item (ggpm-first-forced) to match the orange/brown intent style
   2) Better horizontal centering for inactive towers (panel-level gutter removal + center)
========================================================= */

/* 1) First item forced highlight */
.gg-submenu-panel.gg-mega .gg-tri-panel.is-active ul.gg-submenu > li.ggpm-first-forced > a.gg-menu-link{
  /* Use a wide background so it "covers the whole row" immediately */
  display:flex !important;
  align-items:center !important;
  width:100% !important;
  box-sizing:border-box !important;

  /* Visual style close to your existing hover intent */
  background: rgba(186, 105, 18, 0.18) !important; /* warm brown/orange tint */
  border: 1px solid rgba(255, 152, 0, 0.22) !important;
  border-radius: 14px !important;

  /* Orange underline */
  box-shadow: inset 0 -4px 0 rgba(255, 140, 0, 0.95) !important;
}

/* Make sure the LI doesn't clip the anchor background */
.gg-submenu-panel.gg-mega .gg-tri-panel.is-active ul.gg-submenu > li.ggpm-first-forced{
  overflow: visible !important;
}

/* 2) Inactive tower horizontal centering across full panel width */
.gg-submenu-panel.gg-mega .gg-tri-panel:not(.is-active){
  padding-left: 0 !important;
  padding-right: 0 !important;
  display: flex !important;
  justify-content: center !important; /* center the inner UL as a block */
}

.gg-submenu-panel.gg-mega .gg-tri-panel:not(.is-active) > ul.gg-submenu{
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important; /* center each row */
}

.gg-submenu-panel.gg-mega .gg-tri-panel:not(.is-active) > ul.gg-submenu > li{
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  justify-content: center !important; /* center the icon wrapper inside the full width */
}

.gg-submenu-panel.gg-mega .gg-tri-panel:not(.is-active) > ul.gg-submenu > li > a.gg-menu-link{
  width: 100% !important;
  display: flex !important;
  justify-content: center !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}


/* =========================================================
   GGPM v1.50.0 overlay highlight (covers FULL active panel area)
========================================================= */
.gg-submenu-panel.gg-mega .gg-tri-panel.ggpm-has-overlay{
  position: relative !important;
  overflow: hidden !important;
}

.gg-submenu-panel.gg-mega .gg-tri-panel.ggpm-has-overlay > .ggpm-panel-highlight{
  position: absolute !important;
  inset: 0 !important;
  border-radius: inherit !important;
  background: rgba(186, 105, 18, 0.14) !important; /* warm tint */
  box-shadow: inset 0 -4px 0 rgba(255, 140, 0, 0.95) !important; /* orange underline */
  pointer-events: none !important;
  z-index: 0 !important;
}

/* keep all panel contents above overlay */
.gg-submenu-panel.gg-mega .gg-tri-panel.ggpm-has-overlay > *:not(.ggpm-panel-highlight){
  position: relative !important;
  z-index: 1 !important;
}


/* =========================================================
   GGPM v1.50.1 per-item virtual icon sizing (inactive towers)
========================================================= */
.gg-submenu-panel.gg-mega .gg-tri-panel:not(.is-active) .gg-virtual-submenu-icon{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 28px !important;
  height: 28px !important;
  margin: 0 !important;
}

/* =====================================================================
   v1.50.14: Initial highlight full-width + stable hover
   ---------------------------------------------------------------------
   Some browsers render the background-size highlight "short" on first
   open (panel is transitioning from hidden). Using pseudo-elements avoids
   that first-paint glitch and still looks the same.
   ===================================================================== */

/* Disable the old background-size based fill (keep the title underline rules above) */
.gg-tri-panel.is-active .gg-menu-item-link{
  background-image: none !important;
  background-size: initial !important;
}

.gg-tri-panel.is-active .gg-menu-item-link{
  position: relative;
  overflow: hidden;
}

/* Full-row brown/orange fill */
.gg-tri-panel.is-active .gg-menu-item-link::before{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 14px;
  background: rgba(255, 122, 0, 0.12);
  border: 1px solid rgba(255, 150, 30, 0.22);
  opacity: 0;
  transition: opacity 120ms ease;
  pointer-events: none;
}

/* Bottom orange bar */
.gg-tri-panel.is-active .gg-menu-item-link::after{
  content: "";
  position: absolute;
  left: 1.25rem;
  right: 1.25rem;
  bottom: 0.55rem;
  height: 4px;
  border-radius: 999px;
  background: rgba(255, 122, 0, 0.85);
  opacity: 0;
  transition: opacity 120ms ease;
  pointer-events: none;
}

/* Ensure text/icons are above the pseudo elements */
.gg-tri-panel.is-active .gg-menu-item-link > *{
  position: relative;
  z-index: 1;
}

.gg-tri-panel.is-active li.is-selected > .gg-menu-item-link::before,
.gg-tri-panel.is-active li:hover > .gg-menu-item-link::before{
  opacity: 1;
}

.gg-tri-panel.is-active li.is-selected > .gg-menu-item-link::after,
.gg-tri-panel.is-active li:hover > .gg-menu-item-link::after{
  opacity: 1;
}


/* === GGPM 1.50.36: spectrum base === */
.gg-tri-panel a.gg-menu-link, .gg-submenu-panel a.gg-menu-link{ color:#dbe9ff; }
.gg-tri-panel a.gg-menu-link, .gg-submenu-panel a.gg-menu-link{ transition: background-color .25s ease, color .25s ease; }


/* === GGPM 1.50.38: zoom glow === */
.gg-tri-panel a.gg-menu-link, .gg-submenu-panel a.gg-menu-link{ will-change: transform, box-shadow, filter; transform-origin: center; }


/* === GGPM 1.50.42: inactive sweep (FORCED visible) === */

/* ensure panels clip */
.gg-tri-panel, .gg-submenu-panel{ position:relative; overflow:hidden; }

/* sweep overlay always on top (pointer-events none) */
.ggpm-sweep{
  position:absolute !important;
  inset:-2px !important;
  pointer-events:none !important;
  z-index: 9999 !important;
}
.ggpm-sweep i{
  position:absolute;
  left:-90%;
  width:280%;
  height:28%;
  background: linear-gradient(110deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.34) 18%, rgba(255,255,255,0) 36%);
  transform: skewX(-18deg);
  animation: ggpm_sweep 2.4s linear infinite;
  opacity: 0.9;
}
.ggpm-sweep i:last-child{
  top:-42%;
  height:22%;
  background: linear-gradient(110deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.22) 18%, rgba(255,255,255,0) 36%);
  animation-delay: 1.1s;
}
.ggpm-sweep i:first-child{ top:-65%; }

@keyframes ggpm_sweep{
  0%   { transform: translate3d(0,0,0) skewX(-18deg); opacity:0; }
  10%  { opacity:1; }
  70%  { opacity:1; }
  100% { transform: translate3d(0,260%,0) skewX(-18deg); opacity:0; }
}


/* === GGPM 1.50.42: sweep overrides === */
/* Hard-force visibility even if theme hides unknown children */
.ggpm-sweep{ display:block !important; opacity:1 !important; visibility:visible !important; }
.ggpm-sweep *{ display:block !important; opacity:1 !important; visibility:visible !important; }

/* Make the bands stronger and always render */
.ggpm-sweep i{
  will-change: transform, opacity;
  mix-blend-mode: screen !important;
  opacity: 1 !important;
}

/* If panel has an inner full-cover background layer, ensure sweep is above it */
.gg-tri-panel, .gg-submenu-panel{ position:relative !important; }


/* === GGPM 1.50.43: sweep hard z-index and geometry === */
/* Ensure panel creates stacking context and clips sweep */
.gg-submenu-panel, .gg-tri-panel, .gg-tri-col, .gg-tower{
  position: relative;
  overflow: hidden;
  isolation: isolate; /* keep blend inside */
}

/* Sweep container MUST be absolute + on top */
.ggpm-sweep{
  position:absolute !important;
  inset:0 !important;
  z-index: 999999 !important;
  pointer-events:none !important;
  display:block !important;
  opacity:1 !important;
  visibility:visible !important;
}

/* Bands: make them real visible blocks (your previous <i> tags had no size) */
.ggpm-sweep > i,
.ggpm-sweep > span,
.ggpm-sweep > div{
  position:absolute !important;
  left:-70% !important;
  width:240% !important;
  height:22% !important;
  top:-35% !important;
  transform: skewX(-18deg) !important;
  background: rgba(255,255,255,0.22) !important;
  mix-blend-mode: screen !important;
  animation: ggpm_sweep_down 2.4s linear infinite !important;
  display:block !important;
  opacity:1 !important;
  border-radius: 10px;
}

.ggpm-sweep > i:nth-child(2),
.ggpm-sweep > span:nth-child(2),
.ggpm-sweep > div:nth-child(2){
  height:18% !important;
  background: rgba(255,255,255,0.16) !important;
  animation-delay: 1.2s !important;
}

@keyframes ggpm_sweep_down{
  0%   { transform: translate3d(0,0,0) skewX(-18deg); opacity: 0; }
  8%   { opacity: 1; }
  65%  { opacity: 1; }
  100% { transform: translate3d(0,240%,0) skewX(-18deg); opacity: 0; }
}

/* -------------------------------------------------------------------------
   Inactive sweep FX (stable overlay layer)
   ------------------------------------------------------------------------- */

.ggpm-sweepfx-layer{
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 999999;
}

.ggpm-sweepfx-host{
  position: absolute;
  left: 0;
  top: 0;
  overflow: hidden;
  pointer-events: none;
}

.ggpm-sweepfx-band{
  position: absolute;
  left: -25%;
  width: 150%;
  height: 22%;
  top: -40%;
  transform: skewX(-18deg);
  opacity: 0;
  background: linear-gradient(
    90deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,0.12) 34%,
    rgba(255,255,255,0.65) 50%,
    rgba(255,255,255,0.12) 66%,
    rgba(255,255,255,0) 100%
  );
  filter: blur(0.4px);
}

@keyframes ggpmSweepFX{
  0%   { transform: translateY(-55%) skewX(-18deg); opacity: 0; }
  18%  { opacity: 0.30; }
  45%  { opacity: 0.85; } /* reaches around the middle */
  55%  { opacity: 0.55; } /* start fading after ~50% */
  80%  { opacity: 0; }
  100% { transform: translateY(160%) skewX(-18deg); opacity: 0; }
}

.ggpm-sweepfx-band1{ animation: ggpmSweepFX 2.6s linear infinite; }
.ggpm-sweepfx-band2{ animation: ggpmSweepFX 2.6s linear infinite; animation-delay: 0.35s; }
