/* Base reset for our custom menu */
#bootscore-navbar.menu-custom { position: relative; }
#bootscore-navbar.menu-custom li { list-style: none; }
#bootscore-navbar.menu-custom a { text-decoration: none; }

/* Submenu common: default visible; specific contexts control visibility */

/* Toggle button common */
#bootscore-navbar.menu-custom li.has-children { position: relative; }
#bootscore-navbar.menu-custom li.has-children .submenu-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 2rem; height: 2rem;
  border: 0; border-radius: .375rem;
  background: transparent; cursor: pointer; padding: 0;
  line-height: 1; color: inherit;
}
#bootscore-navbar.menu-custom li.has-children .submenu-toggle:hover { background: rgba(0,0,0,.05); }
#bootscore-navbar.menu-custom li.has-children .submenu-toggle .fa-chevron-down { transition: transform .2s ease; }
#bootscore-navbar.menu-custom li.has-children .submenu-toggle[aria-expanded="true"] .fa-chevron-down { transform: rotate(180deg); }
#bootscore-navbar.menu-custom .accordion-button.submenu-toggle:not(.collapsed) .fa-chevron-down { transform: rotate(180deg); }

#bootscore-navbar.menu-custom .sub-menu a.dropdown-item
   { padding: .45rem 1rem;}
/* Desktop dropdown (>= xl) - width-based only */
@media (min-width: 1200px) {
  /* Visual cue on top-level items with children */
  #bootscore-navbar.menu-custom > li.has-children > a.nav-link {
    position: relative;
    padding-right: 1.1rem;
  }
  #bootscore-navbar.menu-custom > li.has-children > a.nav-link::after {
    content: "";
    position: absolute;
    right: .35rem;
    top: 50%;
    width: 0;
    height: 0;
    border-left: .22rem solid transparent;
    border-right: .22rem solid transparent;
    border-top: .3rem solid currentColor;
    transform: translateY(-30%);
    opacity: .75;
    transition: transform .2s ease, opacity .2s ease;
    pointer-events: none;
  }
  #bootscore-navbar.menu-custom > li.has-children.open > a.nav-link::after {
    transform: translateY(-30%) rotate(180deg);
    opacity: 1;
  }

  #bootscore-navbar.menu-custom > li { position: relative; }
  #bootscore-navbar.menu-custom > li > .sub-menu {
    position: absolute; top: 100%; left: 0; min-width: 280px; z-index: 1050;
    display: none; margin: 0 0 0; padding: .5rem 0;
    background: #fff; border: 1px solid rgba(0,0,0,.1); border-radius: .375rem;
    box-shadow: 0 10px 26px rgba(0,0,0,.12);
    transform-origin: top; transform: translateY(6px); opacity: 0; transition: transform .16s ease, opacity .16s ease;
  }
  #bootscore-navbar.menu-custom > li.open > .sub-menu { display: block !important; }
  #bootscore-navbar.menu-custom > li.open > .sub-menu { transform: translateY(0); opacity: 1; }

  /* Nested levels inside dropdown become accordion stacks */
  #bootscore-navbar.menu-custom > li > .sub-menu .accordion-header { display: flex; align-items: center; gap: .25rem; padding: 0; }
  #bootscore-navbar.menu-custom > li > .sub-menu .accordion-header > a.dropdown-item { flex: 1 1 auto; margin: 0; padding: .45rem 1rem; }
  #bootscore-navbar.menu-custom > li > .sub-menu .accordion-header > .accordion-button.submenu-toggle { margin-right: .75rem; }
  #bootscore-navbar.menu-custom > li > .sub-menu .accordion-button.submenu-toggle { flex: 0 0 auto; width: 1.75rem; height: 1.75rem; padding: 0; justify-content: center; }
  #bootscore-navbar.menu-custom > li > .sub-menu .accordion-button.submenu-toggle::after { display: none; }
  #bootscore-navbar.menu-custom > li > .sub-menu .accordion-body { padding: .25rem .75rem .25rem 1rem; }
  #bootscore-navbar.menu-custom > li > .sub-menu > li > a { display: block; padding: .45rem 1rem; }
  #bootscore-navbar.menu-custom > li > .sub-menu > li > a:hover { background: rgba(0,0,0,.04); }

  /* Hide toggle only for top-level on desktop (we open on hover) */
  #bootscore-navbar.menu-custom > li.has-children > .submenu-toggle { display: none; }
}

/* Boutique mega menu */
@media (min-width: 1200px) {
  #bootscore-navbar.menu-custom > li.menu-item-boutique > .sub-menu.mega-menu {
    padding: 0;
    min-width: 0;
    max-width: none;
    width: 100%;
    border-radius: 0;
    position: fixed;
    left: 0;
    right: 0;
    top: var(--mega-top, 100%);
  }
  #bootscore-navbar.menu-custom .mega-menu .mega-wrap { list-style: none; }
  #bootscore-navbar.menu-custom .mega-menu .mega-inner { padding: 1rem 0; }
  #bootscore-navbar.menu-custom .mega-menu .mega-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: .75rem 1.25rem;
    margin: 0;
    padding: 0;
  }
  #bootscore-navbar.menu-custom .mega-menu .mega-column { min-width: 160px; }
  #bootscore-navbar.menu-custom .mega-menu .mega-title {
    display: block;
    font-weight: 600;
    font-size: .95rem;
    color: #111;
    padding: .15rem 0 .35rem;
  }
  #bootscore-navbar.menu-custom .mega-menu .mega-title:hover { color: #000; }
  #bootscore-navbar.menu-custom .mega-menu .mega-sub-menu { margin: 0; padding: 0; }
  #bootscore-navbar.menu-custom .mega-menu .mega-sub-menu li { list-style: none; }
  #bootscore-navbar.menu-custom .mega-menu .mega-sub-menu a {
    display: block;
    padding: .15rem 0;
    font-size: .85rem;
    color: #555;
  }
  #bootscore-navbar.menu-custom .mega-menu .mega-sub-menu a:hover { color: #111; }
}

/* Categories only in offcanvas (mobile) */
#bootscore-navbar.menu-custom > li.menu-item-boutique-mobile { display: none !important; }
@media (max-width: 1199.98px) {
  #offcanvas-navbar #bootscore-navbar.menu-custom > li.menu-item-boutique-mobile { display: block !important; }
  #offcanvas-navbar #bootscore-navbar.menu-custom > li.menu-item-boutique { display: none !important; }
}

/* Offcanvas stack with Bootstrap Accordion */
#offcanvas-navbar.offcanvas.show #bootscore-navbar.menu-custom { width: 100%; }
#offcanvas-navbar.offcanvas.show #bootscore-navbar.menu-custom .accordion-header a.nav-link { flex: 1 1 auto; }
#offcanvas-navbar.offcanvas.show #bootscore-navbar.menu-custom .accordion-header { display: flex; align-items: center; gap: .5rem; }
#offcanvas-navbar.offcanvas.show #bootscore-navbar.menu-custom .accordion-button.submenu-toggle { flex: 0 0 auto; width: 2rem; height: 2rem; padding: 0; justify-content: center; }
#offcanvas-navbar.offcanvas.show #bootscore-navbar.menu-custom .accordion-button.submenu-toggle::after { display: none; }
#offcanvas-navbar.offcanvas.show #bootscore-navbar.menu-custom .accordion-body { padding: .25rem 0 .25rem .75rem; }
/* Prevent flash but allow smooth opening: show content during 'collapsing' and 'show' */
#offcanvas-navbar.offcanvas.show #bootscore-navbar.menu-custom .accordion-collapse > .sub-menu { display: block; }
#offcanvas-navbar.offcanvas.show #bootscore-navbar.menu-custom .accordion-collapse:not(.show):not(.collapsing) > .sub-menu { display: none; }
#offcanvas-navbar #bootscore-navbar.menu-custom .accordion-collapse:not(.show):not(.collapsing) > .sub-menu { display: none; }

/* Loader overlay during menu initialization to avoid CLS */
#offcanvas-navbar.menu-building .offcanvas-body { position: relative; }
#offcanvas-navbar .offcanvas-menu-loader {
  display: none;
  position: absolute; inset: 0;
  align-items: center; justify-content: center;
  background: var(--bs-offcanvas-bg);
  z-index: 1;
}
#offcanvas-navbar.menu-building .offcanvas-menu-loader { display: flex; }
#offcanvas-navbar.menu-building .offcanvas-body > *:not(.offcanvas-menu-loader) {
  visibility: hidden;
}

