/**
 * Niche Practices Menu - Frontend Styles
 * Version: 2.1.0
 *
 * All selectors scoped to .npm-menu or .npm-overlay to avoid theme conflicts.
 * CSS variables defined on .npm-menu scope (not :root) to avoid overriding theme vars.
 */

/* =============================================
   Scoped CSS Variables
   ============================================= */
.npm-menu,
.npm-overlay-backdrop,
.npm-trigger-wrap {
    --npm-primary:        #00AEEF;
    --npm-primary-dark:   #0090c5;
    --npm-text:           #333333;
    --npm-text-light:     #555555;
    --npm-link:           #00AEEF;
    --npm-bg:             #ffffff;
    --npm-bg-light:       #f7f7f7;
    --npm-border:         #e5e5e5;
    --npm-transition:     0.2s ease;
    --npm-readmore-color: #00AEEF;
    --npm-radius:         4px;
}

/* =============================================
   Reset inside plugin — prevent theme bleed
   ============================================= */
.npm-menu *,
.npm-overlay-backdrop * {
    box-sizing: border-box;
}

.npm-menu a::before,
.npm-menu a::after,
.npm-overlay-backdrop a::before,
.npm-overlay-backdrop a::after {
    display: none !important;
    content: none !important;
    width:   0 !important;
    height:  0 !important;
    opacity: 0 !important;
}

/* =============================================
   Notice
   ============================================= */
.npm-menu .npm-notice {
    padding:    20px;
    background: var(--npm-bg-light);
    border:     1px dashed var(--npm-border);
    text-align: center;
    font-size:  14px;
    color:      var(--npm-text);
}
.npm-menu .npm-notice a {
    color: var(--npm-primary);
    font-weight: 600;
    text-decoration: none;
}

/* =============================================
   Shared: items list
   ============================================= */
.npm-menu ul.npm-items-list,
.npm-overlay-backdrop ul.npm-items-list {
    list-style: none !important;
    margin:     0 !important;
    padding:    0 !important;
}

.npm-menu li.npm-item,
.npm-overlay-backdrop li.npm-item {
    margin:  0 !important;
    padding: 0 !important;
}

.npm-item-link,
.npm-subitems-list a{
    font-size:14px!important;
    font-weight:400!important;
    font-family: Open Sans !important;
}

.npm-level-2 .npm-item-link{
    font-weight:700!important
}

.npm-menu li.npm-item.npm-level-3 > a{
    color: #333 !important;
    width: 100%;
}

/* Level 2 - standalone link */
.npm-menu li.npm-item.npm-level-2 > a.npm-item-link,
.npm-overlay-backdrop li.npm-item.npm-level-2 > a.npm-item-link {
    display:         block;
    padding:         10px 20px !important;
    width:           100% !important;
    color:           var(--npm-text-light);
    text-decoration: none;
    font-size:       14px!important;
    line-height:     1.4;
    border-bottom:   1px solid var(--npm-border);
    background:      transparent;
    transition:      background var(--npm-transition), color var(--npm-transition);
}

.npm-style-columns .npm-category-icon{
    display:none !important;
}

.npm-menu li.npm-item.npm-level-2:last-child > a.npm-item-link,
.npm-overlay-backdrop li.npm-item.npm-level-2:last-child > a.npm-item-link {
    border-bottom: none;
}

.npm-menu li.npm-item.npm-level-2 > a.npm-item-link:hover,
.npm-overlay-backdrop li.npm-item.npm-level-2 > a.npm-item-link:hover {
    background: var(--npm-bg-light);
    color:      var(--npm-link);
}

/* Item row (link + chevron) */
.npm-menu .npm-item-row,
.npm-overlay-backdrop .npm-item-row {
    display:       flex;
    align-items:   center;
    border-bottom: 1px solid var(--npm-border);
}

.npm-menu li.npm-item.npm-level-2:last-child .npm-item-row,
.npm-overlay-backdrop li.npm-item.npm-level-2:last-child .npm-item-row {
    border-bottom: none;
}

.npm-menu .npm-item-row a.npm-item-link,
.npm-overlay-backdrop .npm-item-row a.npm-item-link {
    flex:            1;
    display:         block;
    padding:         10px 20px !important;
    width:           100% !important;
    color:           var(--npm-text-light);
    text-decoration: none;
    font-size:       14px!important;
    line-height:     1.4;
    border-bottom:   none !important;
    background:      transparent;
    transition:      color var(--npm-transition);
}

.npm-menu .npm-item-row a.npm-item-link:hover,
.npm-overlay-backdrop .npm-item-row a.npm-item-link:hover {
    color: var(--npm-link);
}

/* Expand button */
.npm-menu button.npm-expand-btn,
.npm-overlay-backdrop button.npm-expand-btn {
    all:         unset;
    cursor:      pointer;
    display:     flex;
    align-items: center;
    padding:     7px 10px;
    color:       var(--npm-text-light);
    flex-shrink: 0;
    transition:  color var(--npm-transition);
    box-sizing:  border-box;
}

.npm-menu button.npm-expand-btn:hover,
.npm-overlay-backdrop button.npm-expand-btn:hover,
.npm-menu button.npm-expand-btn.is-open,
.npm-overlay-backdrop button.npm-expand-btn.is-open {
    color: var(--npm-primary);
}

.npm-menu button.npm-expand-btn svg,
.npm-overlay-backdrop button.npm-expand-btn svg {
    width:      16px;
    height:     16px;
    stroke:     currentColor;
    fill:       none;
    display:    block;
    transition: transform 0.25s ease;
}

.npm-menu button.npm-expand-btn.is-open svg,
.npm-overlay-backdrop button.npm-expand-btn.is-open svg {
    transform: rotate(180deg);
}

/* Subitems wrapper */
.npm-menu .npm-subitems-wrapper,
.npm-overlay-backdrop .npm-subitems-wrapper {
    max-height: 0;
    overflow:   hidden;
    transition: max-height 0.3s ease;
}

.npm-menu .npm-subitems-wrapper.is-open,
.npm-overlay-backdrop .npm-subitems-wrapper.is-open {
    max-height: 1000px;
}

/* Level 3 subitems */
.npm-menu ul.npm-subitems-list,
.npm-overlay-backdrop ul.npm-subitems-list {
    list-style: none !important;
    margin:     0 !important;
    padding:    0 !important;
    background: var(--npm-bg-light);
}

.npm-menu li.npm-item.npm-level-3 > a,
.npm-overlay-backdrop li.npm-item.npm-level-3 > a {
    display:         flex;
    align-items:     center;
    gap:             6px;
    padding:         5px 14px 5px 22px;
    color:           var(--npm-text-light);
    text-decoration: none;
    font-size:       13px;
    font-weight:     400;
    line-height:     1.4;
    border-bottom:   1px solid rgba(0,0,0,.05);
    background:      transparent;
    transition:      background var(--npm-transition), color var(--npm-transition);
}

.npm-menu li.npm-item.npm-level-3:last-child > a,
.npm-overlay-backdrop li.npm-item.npm-level-3:last-child > a {
    border-bottom: none;
}

.npm-menu li.npm-item.npm-level-3 > a:hover,
.npm-overlay-backdrop li.npm-item.npm-level-3 > a:hover {
    background: #ebebeb;
    color:      var(--npm-link);
}

.npm-menu .npm-subitem-bullet,
.npm-overlay-backdrop .npm-subitem-bullet {
    display:       inline-block;
    width:         5px;
    height:        5px;
    border-radius: 50%;
    background:    var(--npm-primary);
    flex-shrink:   0;
	top: -3px;
	position: relative;
}

/* Read more/less */
.npm-menu li.npm-item.npm-hidden,
.npm-overlay-backdrop li.npm-item.npm-hidden {
    display: none;
}

.npm-menu li.npm-item.npm-hidden.npm-revealed,
.npm-overlay-backdrop li.npm-item.npm-hidden.npm-revealed {
    display: block;
}

.npm-menu .npm-readmore-wrap,
.npm-overlay-backdrop .npm-readmore-wrap {
    padding: 8px 14px;
}

.npm-menu button.npm-readmore-link,
.npm-overlay-backdrop button.npm-readmore-link {
    all:             unset;
    cursor:          pointer;
    display:         inline-block;
    color:           var(--npm-readmore-color);
    font-size:       14px;
    font-family:     inherit;
    line-height:     1.4;
    box-sizing:      border-box;
}

.npm-menu button.npm-readmore-link:hover,
.npm-overlay-backdrop button.npm-readmore-link:hover {
    text-decoration: underline;
}

/* =============================================
   Shared category header base
   ============================================= */
.npm-menu .npm-category-header,
.npm-overlay-backdrop .npm-category-header {
    display:     flex;
    align-items: center;
    gap:         10px;
    padding:     14px 16px;
    background:  transparent;
    color:       var(--npm-text);
    font-size:   17px;
    font-weight: 700;
    line-height: 1.3;
    margin:      0;
    border:      none;
}

.npm-menu .npm-category-title,
.npm-overlay-backdrop .npm-category-title {
    color:       var(--npm-text) !important;
    font-size:   17px !important;
    font-weight: 700;
    line-height: 1.3;
    text-align: left;
}

/* Blue header only for styles that use it */
.npm-menu.npm-style-columns .npm-category-header,
.npm-menu.npm-style-single  .npm-category-header {
    background: var(--npm-primary);
    color:      #fff;
}

.npm-style-columns .npm-item.npm-level-3,
.npm-style-list .npm-item.npm-level-3{
    padding-left: 10px !important;
}

.npm-menu.npm-style-columns .npm-category-title,
.npm-menu.npm-style-single  .npm-category-title {
    color: #fff !important;
}

.npm-menu .npm-category-icon,
.npm-overlay-backdrop .npm-category-icon {
    display:         flex;
    align-items:     center;
    justify-content: center;
    width:           28px;
    height:          28px;
    flex-shrink:     0;
}

.npm-menu .npm-category-icon svg,
.npm-overlay-backdrop .npm-category-icon svg {
    width:   22px;
    height:  22px;
    stroke:  currentColor;
    fill:    none;
    display: block;
}

/* White icons when header is blue */
.npm-menu.npm-style-columns .npm-category-icon svg,
.npm-menu.npm-style-single  .npm-category-icon svg {
    stroke: #fff;
}

/* =============================================
   STYLE: COLUMNS
   ============================================= */
.npm-menu.npm-style-columns {
    display:     flex;
    flex-wrap:   wrap;
    gap:         20px;
    align-items: flex-start;
}

.npm-menu.npm-style-columns .npm-category {
    flex:          0 0 auto;
    width:         calc(25% - 15px);
    background:    var(--npm-bg);
    border:        1px solid var(--npm-border);
    border-radius: var(--npm-radius);
    overflow:      hidden;
}

.npm-menu.npm-style-columns.npm-cols-2 .npm-category { width: calc(50%   - 10px); }
.npm-menu.npm-style-columns.npm-cols-3 .npm-category { width: calc(33.333% - 14px); }
.npm-menu.npm-style-columns.npm-cols-4 .npm-category { width: calc(25%   - 15px); }

@media (max-width: 1200px) {
    .npm-menu.npm-style-columns.npm-cols-3 .npm-category,
    .npm-menu.npm-style-columns.npm-cols-4 .npm-category {
        width: calc(50% - 10px);
    }
}
@media (max-width: 768px) {
    .npm-menu.npm-style-columns .npm-category,
    .npm-menu.npm-style-columns.npm-cols-2 .npm-category,
    .npm-menu.npm-style-columns.npm-cols-3 .npm-category,
    .npm-menu.npm-style-columns.npm-cols-4 .npm-category {
        width: 100%;
    }
}

.npm-menu.npm-style-columns .npm-category-header {
    width:           100%;
    cursor:          pointer;
    justify-content: space-between;
    transition:      background var(--npm-transition);
}

.npm-menu.npm-style-columns .npm-category-header:hover { background: var(--npm-primary-dark); }

.npm-menu.npm-style-columns .npm-toggle-icon {
    width:           20px;
    height:          20px;
    flex-shrink:     0;
    display:         flex;
    align-items:     center;
    justify-content: center;
    transition:      transform 0.25s ease;
}

.npm-menu.npm-style-columns .npm-toggle-icon svg {
    width:   16px;
    height:  16px;
    stroke:  #fff;
    fill:    none;
    display: block;
}

.npm-menu.npm-style-columns .npm-category-header.is-active .npm-toggle-icon {
    transform: rotate(180deg);
}

.npm-menu.npm-style-columns .npm-category-content {
    padding:    0;
    max-height: 0;
    overflow:   hidden;
    transition: max-height 0.3s ease;
}

.npm-menu.npm-style-columns .npm-category-content.is-open { max-height: 2000px; }

/* =============================================
   STYLE: SINGLE (vertical collapsible)
   ============================================= */
.npm-menu.npm-style-single {
    display:   block;
    max-width: 480px;
}

.npm-menu.npm-style-single .npm-category {
    background:    var(--npm-bg);
    border:        1px solid var(--npm-border);
    border-radius: var(--npm-radius);
    overflow:      hidden;
    margin-bottom: 6px;
}

.npm-menu.npm-style-single .npm-category-header {
    width:           100%;
    cursor:          pointer;
    justify-content: space-between;
    font-size:       16px;
    transition:      background var(--npm-transition);
}

.npm-menu.npm-style-single .npm-category-header:hover { background: var(--npm-primary-dark); }

.npm-menu.npm-style-single .npm-category-title {
    flex:      1;
    font-size: 16px !important;
}

.npm-menu.npm-style-single .npm-toggle-icon {
    width:           20px;
    height:          20px;
    flex-shrink:     0;
    display:         flex;
    align-items:     center;
    justify-content: center;
    transition:      transform 0.25s ease;
}

.npm-menu.npm-style-single .npm-toggle-icon svg {
    width:   18px;
    height:  18px;
    stroke:  #fff;
    fill:    none;
    display: block;
}

.npm-menu.npm-style-single .npm-category-header.is-active .npm-toggle-icon {
    transform: rotate(180deg);
}

.npm-menu.npm-style-single .npm-category-content {
    max-height: 0;
    overflow:   hidden;
    transition: max-height 0.3s ease;
}

.npm-menu.npm-style-single .npm-category-content.is-open { max-height: 2000px; }

/* =============================================
   STYLE: ACCORDION
   ============================================= */
.npm-menu.npm-style-accordion {
    display:        flex;
    flex-direction: column;
    gap:            10px;
}

.npm-menu.npm-style-accordion .npm-category {
    background:    var(--npm-bg);
    border:        1px solid var(--npm-border);
    border-radius: var(--npm-radius);
    overflow:      hidden;
}

.npm-menu.npm-style-accordion .npm-category-header {
    width:           100%;
    cursor:          pointer;
    justify-content: space-between;
    background:      var(--npm-bg-light);
    border-bottom:   1px solid var(--npm-border);
    color:           var(--npm-text);
    transition:      background var(--npm-transition), color var(--npm-transition);
}

.npm-menu.npm-style-accordion .npm-category-header:hover { background: #eeeeee; }

.npm-menu.npm-style-accordion .npm-category-header.is-active {
    background:   var(--npm-primary);
    color:        #fff;
    border-color: var(--npm-primary);
}

.npm-menu.npm-style-accordion .npm-category-icon { display: none; }

.npm-menu.npm-style-accordion .npm-category-title {
    flex:  1;
    color: var(--npm-text) !important;
}

.npm-menu.npm-style-accordion .npm-category-header.is-active .npm-category-title {
    color: #fff !important;
}

.npm-menu.npm-style-accordion .npm-toggle-icon {
    width:       20px;
    height:      20px;
    flex-shrink: 0;
    display:     flex;
    align-items: center;
}

.npm-menu.npm-style-accordion .npm-toggle-icon svg {
    width:      18px;
    height:     18px;
    stroke:     currentColor;
    fill:       none;
    display:    block;
    transition: transform 0.25s ease;
}

.npm-menu.npm-style-accordion .npm-category-header.is-active .npm-toggle-icon svg {
    transform: rotate(180deg);
}

.npm-menu.npm-style-accordion .npm-category-content {
    max-height: 0;
    overflow:   hidden;
    transition: max-height 0.3s ease;
}

/* =============================================
   STYLE: LIST
   ============================================= */
.npm-menu.npm-style-list { display: table;width: 100%;padding: 15px;}
.npm-menu.npm-style-list .npm-category { margin-bottom: 25px; }

.npm-menu.npm-style-list .npm-category-header {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    width:           100%;
    padding:         0 0 10px;
    margin-bottom:   10px;
    border-bottom:   2px solid var(--npm-primary);
    background:      transparent;
    color:           var(--npm-text);
    cursor:          pointer;
    transition:      color var(--npm-transition);
}

.npm-menu.npm-style-list .npm-category-header:hover { color: var(--npm-primary); }

.npm-menu.npm-style-list .npm-category-icon { display: none; }

.npm-menu.npm-style-list .npm-toggle-icon {
    width:           20px;
    height:          20px;
    flex-shrink:     0;
    display:         flex;
    align-items:     center;
    justify-content: center;
    transition:      transform 0.25s ease;
}

.npm-menu.npm-style-list .npm-toggle-icon svg {
    width:   16px;
    height:  16px;
    stroke:  currentColor;
    fill:    none;
    display: block;
}

.npm-menu.npm-style-list .npm-category-header.is-active .npm-toggle-icon {
    transform: rotate(180deg);
}

.npm-menu.npm-style-list .npm-category-content {
    max-height: 0;
    overflow:   hidden;
    transition: max-height 0.3s ease;
}

.npm-menu.npm-style-list .npm-category-content.is-open { max-height: 2000px; }

.npm-menu.npm-style-list .npm-category-title {
    color:     var(--npm-text) !important;
    font-size: 17px !important;
}

.npm-menu.npm-style-list ul.npm-subitems-list {
    background:   transparent;
    padding-left: 15px !important;
}

/* =============================================
   STYLE: BUTTON-TRIGGER
   ============================================= */

/* Wrapper — block so panel below takes full width */
.npm-trigger-wrap {
    display: block;
}

/* Trigger button */
button.npm-trigger-btn {
    all:         unset;
    cursor:      pointer;
    display:     inline-flex;
    align-items: center;
    gap:         8px;
    padding:     10px 20px;
    background:  var(--npm-primary);
    color:       #fff;
    font-size:   15px;
    font-weight: 700;
    font-family: inherit;
    line-height: 1.4;
    border-radius: var(--npm-radius);
    border:      none;
    box-sizing:  border-box;
    transition:  background 0.2s ease, box-shadow 0.2s ease;
    user-select: none;
    border-bottom-left-radius: 0px;
    border-bottom-right-radius: 0px;
    width: 400px;
    border-left: 1px solid #fff;
    border-right: 1px solid #fff;
}

button.npm-trigger-btn:hover {
    background: var(--npm-primary-dark);
    box-shadow: 0 2px 8px rgba(0,174,239,.35);
}

button.npm-trigger-btn svg {
    width:       18px;
    height:      18px;
    stroke:      #fff;
    fill:        none;
    display:     block;
    flex-shrink: 0;
    transition:  transform 0.25s ease;
}

button.npm-trigger-btn svg:last-child {
    margin-left: auto;
}

button.npm-trigger-btn.is-open svg {
    transform: rotate(180deg);
}

/* Overlay panel — in-flow, expands naturally below the button */
.npm-overlay-panel {
    display:       none;
    position:      relative;
    z-index:       1;
    background:    var(--npm-bg);
    border:        1px solid var(--npm-border);
    border-radius: var(--npm-radius);
    width:         400px;
    margin-top:    0px;
    overflow:      hidden;
    border-top: 0px;
    border-top-left-radius: 0px !important;
    border-top-right-radius: 0px !important;
}

.npm-menu li.npm-item.npm-level-3 > a:hover, .npm-overlay-backdrop li.npm-item.npm-level-3 > a:hover {
    background: transparent;
}

.npm-overlay-panel .npm-category-icon svg{
    stroke:#000 !important;
}

.npm-overlay-panel.is-open {
    display: block;
}

/* Panel header */
.npm-overlay-panel-header {
    display:         none;
    align-items:     center;
    justify-content: space-between;
    padding:         14px 18px;
    background:      var(--npm-primary);
    border-radius:   var(--npm-radius) var(--npm-radius) 0 0;
    gap:             10px;
    position:        sticky;
    top:             0;
    z-index:         1;
    border-top-left-radius: 0px;
    border-top-right-radius: 0px;
}

.npm-overlay-panel-title {
    color:       #fff !important;
    font-size:   16px;
    font-weight: 700;
    font-family: inherit;
    line-height: 1.3;
    margin:      0;
}

button.npm-overlay-close {
    all:             unset;
    cursor:          pointer;
    display:         flex;
    align-items:     center;
    justify-content: center;
    width:           28px;
    height:          28px;
    border-radius:   50%;
    color:           rgba(255,255,255,.8);
    flex-shrink:     0;
    box-sizing:      border-box;
    transition:      background 0.15s ease, color 0.15s ease;
}

button.npm-overlay-close:hover {
    background: rgba(255,255,255,.2);
    color:      #fff;
}

button.npm-overlay-close svg {
    width:   16px;
    height:  16px;
    stroke:  currentColor;
    fill:    none;
    display: block;
}

/* Inside overlay: stack columns vertically, make them accordion-like */
.npm-overlay-panel-body .npm-menu.npm-style-columns {
    flex-direction: column;
    gap:            0;
}

.npm-overlay-panel-body .npm-menu.npm-style-columns .npm-category {
    width:         100% !important;
    border-radius: 0;
    border-left:   none;
    border-right:  none;
    border-top:    none;
    border-bottom: 1px solid var(--npm-border);
}

.npm-overlay-panel-body .npm-menu.npm-style-columns .npm-category:last-child {
    border-bottom: none;
}

.npm-overlay-panel-body .npm-menu.npm-style-columns .npm-category-header {
    cursor:           pointer;
    justify-content:  space-between;
    background:       transparent;
    color:            var(--npm-text);
    border-bottom:    1px solid var(--npm-border);
    font-size:        14px;
    font-weight:      700;
    padding:          10px 14px;
    display:          flex;
    align-items:      center;
}

.npm-overlay-panel-body .npm-menu.npm-style-columns .npm-category-header:hover {
    background: var(--npm-bg-light);
}

.npm-overlay-panel-body .npm-menu.npm-style-columns .npm-category-title {
    color:      var(--npm-text) !important;
    font-size:  14px !important;
    flex:       1;
    text-align: left;
}

.npm-overlay-panel-body .npm-menu.npm-style-columns .npm-category-header.is-active {
    background: var(--npm-bg-light);
    color:      var(--npm-primary);
}

.npm-overlay-panel-body .npm-menu.npm-style-columns .npm-category-header.is-active .npm-category-title {
    color: var(--npm-primary) !important;
}

.npm-overlay-panel-body .npm-menu.npm-style-columns .npm-toggle-icon {
    display:         flex !important;
    align-items:     center;
    justify-content: center;
    width:           20px;
    height:          20px;
    flex-shrink:     0;
}

.npm-overlay-panel-body .npm-menu.npm-style-columns .npm-toggle-icon svg {
    width:      18px;
    height:     18px;
    stroke:     var(--npm-text-light);
    fill:       none;
    display:    block;
    transition: transform 0.25s ease;
}

.npm-overlay-panel-body .npm-menu.npm-style-columns .npm-category-header.is-active .npm-toggle-icon svg {
    stroke:    var(--npm-primary);
    transform: rotate(180deg);
}

.npm-overlay-panel-body .npm-menu.npm-style-columns .npm-category-content {
    max-height: 0;
    overflow:   hidden;
    transition: max-height 0.3s ease;
}

/* Scrollbar in panel */
.npm-overlay-panel::-webkit-scrollbar { width: 6px; }
.npm-overlay-panel::-webkit-scrollbar-track { background: #f1f1f1; }
.npm-overlay-panel::-webkit-scrollbar-thumb { background: #ccc; border-radius: 3px; }
.npm-overlay-panel::-webkit-scrollbar-thumb:hover { background: #aaa; }

/* =============================================
   Accessibility
   ============================================= */
.npm-menu .npm-category-header:focus-visible,
.npm-menu li.npm-item a:focus-visible,
button.npm-trigger-btn:focus-visible,
button.npm-overlay-close:focus-visible,
button.npm-expand-btn:focus-visible,
button.npm-readmore-link:focus-visible {
    outline:        2px solid var(--npm-primary);
    outline-offset: 2px;
}

/* =============================================
   STYLE: LEGACY (flat div.level-2 / div.level-3, CSS columns)
   Each category = one column, max 3 per row
   ============================================= */
.npm-legacy-wrap {
    --npm-primary: #00AEEF;
    --npm-border:  #e5e5e5;

    display:         flex;
    flex-wrap:       wrap;
    justify-content: flex-start;
    gap:             0;
    box-sizing:      border-box;
}

.npm-legacy-wrap * {
    box-sizing: border-box;
}

.npm-legacy-column {
    flex:          0 0 33.333%;
    max-width:     33.333%;
    min-width:     0;
    padding:       0 40px 40px 0;
    border-right:  1px solid var(--npm-border);
    margin-bottom: 30px;
}

/* Remove right border on every 3rd column */
.npm-legacy-column:nth-child(3n) {
    border-right:  none;
    padding-right: 0;
}

/* Last column if not 3rd */
.npm-legacy-column:last-child {
    border-right:  none;
    padding-right: 0;
}

.npm-legacy-column .content {
    display: block;
}

/* Category heading — large, dark, no background */
.npm-legacy-column .content h3 {
    margin:      0 0 20px !important;
    padding:     0 !important;
    background:  transparent !important;
    color:       #333 !important;
    font-size:   clamp(20px, 2.2vw, 30px) !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    border:      none !important;
}

/* Level-2 links — bold, blue */
.npm-legacy-column .content .level-2 {
    margin:  0 !important;
    padding: 0 !important;
}

.npm-legacy-column .content .level-2 p {
    margin:     0 0 12px !important;
    padding:    0 !important;
    border:     none !important;
    background: transparent !important;
}

.npm-legacy-column .content .level-2 p a {
    display:         inline !important;
    padding:         0 !important;
    color:           var(--npm-primary) !important;
    text-decoration: none !important;
    font-size:       15px !important;
    font-weight:     700 !important;
    line-height:     1.4 !important;
    background:      transparent !important;
    border:          none !important;
    transition:      opacity 0.15s ease;
}

.npm-legacy-column .content .level-2 p a:hover {
    opacity:    0.75 !important;
    background: transparent !important;
}

/* Level-3 links — smaller, blue, with > prefix */
.npm-legacy-column .content .level-3 {
    margin:  0 !important;
    padding: 0 !important;
}

.npm-legacy-column .content .level-3 p {
    margin:     0 0 10px !important;
    padding:    0 !important;
    border:     none !important;
    background: transparent !important;
}

.npm-legacy-column .content .level-3 p a {
    display:         inline !important;
    padding:         0 !important;
    color:           var(--npm-primary) !important;
    text-decoration: none !important;
    font-size:       14px !important;
    font-weight:     700 !important;
    line-height:     1.4 !important;
    background:      transparent !important;
    border:          none !important;
    transition:      opacity 0.15s ease;
}

.npm-legacy-column .content .level-3 p a:hover {
    opacity:    0.75 !important;
    background: transparent !important;
}

@media (max-width: 768px) {
    .npm-legacy-column {
        flex:      0 0 50%;
        max-width: 50%;
    }
    .npm-legacy-column:nth-child(3n) {
        border-right:  1px solid var(--npm-border);
        padding-right: 40px;
    }
    .npm-legacy-column:nth-child(2n) {
        border-right:  none;
        padding-right: 0;
    }
    .npm-legacy-column:last-child {
        border-right:  none;
        padding-right: 0;
    }
    .npm-trigger-btn,
    .npm-overlay-panel{
        width:100%!important;
    }
}

@media (max-width: 480px) {
    .npm-legacy-column {
        flex:          0 0 100%;
        max-width:     100%;
        border-right:  none !important;
        padding-right: 0 !important;
    }
}

/* =============================================
   Print
   ============================================= */
@media print {
    .npm-trigger-wrap,
    .npm-overlay-panel { display: none !important; }

    .npm-menu.npm-style-accordion .npm-category-content,
    .npm-menu.npm-style-single    .npm-category-content,
    .npm-menu.npm-style-list      .npm-category-content,
    .npm-menu.npm-style-columns   .npm-category-content { max-height: none !important; }

    .npm-menu .npm-toggle-icon,
    .npm-menu button.npm-expand-btn,
    .npm-menu .npm-readmore-wrap   { display: none !important; }

    .npm-menu li.npm-item.npm-hidden { display: block !important; }
    .npm-menu .npm-subitems-wrapper  { max-height: none !important; }
}