/* NFI Main Menu basic styles */
.nfimainmenu { width: 100%;
  /* CSS custom properties allow BO-configurable colors; theme-friendly fallbacks */
  --nfimm-main-bg: transparent;
  --nfimm-main-text: inherit;
  --nfimm-sub-bg: #fff;
  --nfimm-sub-text: inherit;
  --nfimm-main-icon: var(--nfimm-main-text, inherit);
  --nfimm-sub-icon: var(--nfimm-sub-text, inherit);
}

/* Top-level (main categories) laid out horizontally */
.nfimainmenu .nfimainmenu-tree { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: nowrap; align-items: center; gap: 1rem; }
.nfimainmenu .nfimm-item { list-style: none; position: relative; }
.nfimainmenu .nfimm-row { display: flex; align-items: center; gap: .5rem; }
.nfimainmenu .nfimm-toggle { border: 0; background: transparent; cursor: pointer; padding: .25rem; line-height: 1; }
.nfimainmenu .nfimm-toggle-icon { display: inline-block; width: .75rem; height: .75rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); transition: transform .2s ease; margin-right: .25rem; }
.nfimainmenu .is-expanded > .nfimm-row .nfimm-toggle-icon { transform: rotate(45deg); }
.nfimainmenu .nfimm-link { display: inline-flex; align-items: center; gap: .5rem; text-decoration: none; white-space: nowrap; padding: .5rem .75rem; border-radius: .25rem; }
.nfimainmenu .nfimm-icon { width: 24px; height: 24px; object-fit: cover; border-radius: 4px; }

/* Color application */
/* Top-level (level-1) items */
.nfimainmenu .level-1 > .nfimm-row > .nfimm-link { background: var(--nfimm-main-bg, transparent); color: var(--nfimm-main-text, inherit); }
/* Dropdown container */
.nfimainmenu .nfimm-group { list-style: none; margin: 0; padding: .5rem 0; position: absolute; left: 0; top: 100%; min-width: 220px; background: var(--nfimm-sub-bg, #fff); border: 1px solid rgba(0,0,0,.1); box-shadow: 0 8px 24px rgba(0,0,0,.12); display: none; z-index: 50; }
/* Submenu links */
.nfimainmenu .nfimm-group .nfimm-link { display: block; color: var(--nfimm-sub-text, inherit); padding: .4rem .75rem; border-radius: 0; }

/* Open on hover or when expanded */
.nfimainmenu .nfimm-item:hover > .nfimm-group,
.nfimainmenu .nfimm-item.is-expanded > .nfimm-group { display: block; }

/* Nested submenus fly out to the right */
.nfimainmenu .nfimm-group .nfimm-item { position: relative; }
.nfimainmenu .nfimm-group .nfimm-group { top: 0; left: 100%; }

/* Levels (optional emphasis) */
.nfimainmenu .level-1 > .nfimm-row { font-weight: 600; }
.nfimainmenu .level-2 > .nfimm-row { font-weight: 500; }

/* Text spans inherit link color */
.nfimainmenu .nfimm-title { color: inherit; }

/* Ensure main level link colors apply in all states */
.nfimainmenu .level-1 > .nfimm-row > .nfimm-link,
.nfimainmenu .level-1 > .nfimm-row > .nfimm-link:visited,
.nfimainmenu .level-1 > .nfimm-row > .nfimm-link:hover,
.nfimainmenu .level-1 > .nfimm-row > .nfimm-link:focus,
.nfimainmenu .level-1 > .nfimm-row > .nfimm-link:active { color: var(--nfimm-main-text, inherit) !important; }

/* Ensure submenu link colors apply in all states */
.nfimainmenu .nfimm-group .nfimm-link,
.nfimainmenu .nfimm-group .nfimm-link:visited,
.nfimainmenu .nfimm-group .nfimm-link:hover,
.nfimainmenu .nfimm-group .nfimm-link:focus,
.nfimainmenu .nfimm-group .nfimm-link:active { color: var(--nfimm-sub-text, inherit) !important; }

/* Toggle (chevron) icon colors per level via currentColor */
.nfimainmenu .level-1 > .nfimm-row > .nfimm-toggle { color: var(--nfimm-main-icon, var(--nfimm-main-text, inherit)); }
.nfimainmenu .nfimm-group .nfimm-toggle { color: var(--nfimm-sub-icon, var(--nfimm-sub-text, inherit)); }