/* Scoped to this component; no dependency on Aspro's menu JS. */
.custom-catalog-menu {
    --catalog-panel-height: 65vh;
    position: relative;
    width: 100%;
    min-width: 0;
    background: #fff;
    color: #222;
    z-index: 98;
    font-family: inherit;
    container-type: inline-size;
    container-name: top-catalog;
}
.custom-catalog-menu *,
.custom-catalog-menu *::before,
.custom-catalog-menu *::after { box-sizing: border-box; }
.custom-catalog-menu [hidden] { display: none !important; }
.custom-catalog-menu ul { list-style: none; padding: 0; margin: 0; }
.custom-catalog-menu li { list-style: none; margin: 0; padding: 0; }
.custom-catalog-menu li::before { content: none !important; }
.custom-catalog-menu .menu-level-1 {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100%;
    min-height: 63px;
    gap: 4px;
    /* Without JS all category links remain reachable. */
    overflow-x: auto;
}
.custom-catalog-menu.is-ready > .menu-level-1 { overflow: visible; }
.custom-catalog-menu .menu-item.level-1,
.custom-catalog-menu .catalog-more {
    display: flex;
    position: static;
    align-items: stretch;
    flex: 0 0 auto;
}
.custom-catalog-menu .level-1-link,
.custom-catalog-menu .catalog-toggle,
.custom-catalog-menu .catalog-more-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    font-family: inherit;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.3;
    text-decoration: none;
    white-space: nowrap;
    margin: 0;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}
.custom-catalog-menu .level-1-link { padding: 10px; }
.custom-catalog-menu .has-children > .level-1-link { padding-right: 4px; }
.custom-catalog-menu .catalog-toggle { padding: 0 9px; min-width: 30px; }
.custom-catalog-menu .catalog-more-toggle { gap: 10px; padding: 10px 12px; }
.custom-catalog-menu .menu-arrow { flex-shrink: 0; }
.custom-catalog-menu button[aria-expanded="true"] .menu-arrow { transform: rotate(180deg); }
.custom-catalog-menu .level-1-link:hover,
.custom-catalog-menu button:hover,
.custom-catalog-menu .is-open > .level-1-link,
.custom-catalog-menu .is-open > .catalog-toggle,
.custom-catalog-menu .is-open > .catalog-more-toggle { background: #f3f5f1; }
.custom-catalog-menu .active > .level-1-link { box-shadow: inset 0 -2px #83b94a; }
.custom-catalog-menu a:focus-visible,
.custom-catalog-menu button:focus-visible { outline: 2px solid #4b791d; outline-offset: -3px; }
.custom-catalog-menu .menu-level-2,
.custom-catalog-menu .catalog-more-list {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 999;
    max-height: var(--catalog-panel-height);
    overflow-y: auto;
    overscroll-behavior: contain;
    background: #fff;
    border: 1px solid #ededed;
    box-shadow: 0 12px 32px rgb(0 0 0 / 12%);
    padding: 20px;
    /* No transform or margin: a continuous pointer path to the panel. */
}
.custom-catalog-menu .menu-level-2 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr));
    gap: 8px 16px;
}
.custom-catalog-menu .level-2-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    min-height: 44px;
    height: 100%;
    color: #333;
    font-size: 14px;
    line-height: 1.4;
    text-decoration: none;
    border-radius: 8px;
    overflow-wrap: anywhere;
}
.custom-catalog-menu .level-2-link:hover,
.custom-catalog-menu .level-2.active > .level-2-link { background: #f3f5f1; }
.custom-catalog-menu .level-2-img {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    object-fit: contain;
    border-radius: 6px;
    margin: 0;
}
/* Overflow categories use accordions, not a sideways third hover level. */
.custom-catalog-menu .catalog-more-list { left: auto; width: min(100%, 560px); padding: 8px; }
.custom-catalog-menu .catalog-more-list > .menu-item.level-1 {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    border-bottom: 1px solid #eee;
}
.custom-catalog-menu .catalog-more-list > .menu-item.level-1:last-child { border-bottom: 0; }
.custom-catalog-menu .catalog-more-list .level-1-link {
    flex: 1 1 0;
    min-width: 0;
    justify-content: flex-start;
    white-space: normal;
    overflow-wrap: anywhere;
    padding: 14px 12px;
}
.custom-catalog-menu .catalog-more-list .catalog-toggle { min-width: 44px; }
.custom-catalog-menu .catalog-more-list .menu-level-2 {
    position: static;
    flex: 0 0 100%;
    max-height: none;
    overflow: visible;
    padding: 4px 0 12px;
    border: 0;
    box-shadow: none;
    gap: 4px;
}
/* Inert, shallow samples measure labels without moving focused links. */
.custom-catalog-menu .catalog-measure {
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 0;
    min-height: 0;
    visibility: hidden;
    pointer-events: none;
    overflow: hidden;
    contain: layout;
}
@container top-catalog (max-width: 1000px) {
    .custom-catalog-menu .menu-level-1 { gap: 2px; }
    .custom-catalog-menu .level-1-link { padding-left: 8px; padding-right: 8px; }
    .custom-catalog-menu .has-children > .level-1-link { padding-right: 2px; }
    .custom-catalog-menu .catalog-more-list .level-1-link { padding: 14px 12px; }
}
@media (max-width: 1024px) {
    .custom-catalog-menu .menu-level-1 { min-height: 56px; }
    .custom-catalog-menu .menu-level-2 { padding: 12px; gap: 4px; }
    .custom-catalog-menu .catalog-more-list { width: 100%; }
}
@media (hover: none), (pointer: coarse) {
    .custom-catalog-menu .catalog-toggle { min-width: 44px; }
}
