/* Library header only; no global typography/reset or catalog-page selectors. */
.bn-header { --bn-plum: #2f2646; --bn-mint: #5ed3b3; --bn-border: #e5e7ef; font-family: "Segoe UI", Arial, sans-serif; color: var(--bn-plum); background: #fff; position: relative; z-index: 100; box-shadow: 0 2px 12px rgb(15 23 42 / 5%); }
.bn-header *, .bn-header *::before, .bn-header *::after { box-sizing: border-box; }
.bn-header svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.bn-header [hidden] { display: none !important; }
.bn-header .asp-container { max-width: 1400px; margin: 0 auto; padding: 0 28px; }
.bn-header .bn-topbar { display: flex; align-items: center; justify-content: space-between; gap: 28px; min-height: 88px; height: auto; }
.bn-header .bn-logo { flex: 0 0 auto; display: block; }
.bn-header .bn-logo img { display: block; width: 108px; height: auto; }
.bn-header .bn-primary-nav { display: flex; flex: 1; align-items: center; justify-content: center; gap: 36px; }
.bn-header .bn-primary-nav > a, .bn-header .bn-account > summary { color: var(--bn-plum); text-decoration: none; font: 700 15px/1.5 "Segoe UI", Arial, sans-serif; }
.bn-header .bn-primary-nav > a:hover { color: #3d8d76; }
.bn-header .bn-account { position: relative; padding: 0; margin: 0; border: 0; background: transparent; }
.bn-header summary { cursor: pointer; list-style: none; }
.bn-header summary::-webkit-details-marker { display: none; }
.bn-header .bn-account > summary { display: flex; align-items: center; gap: 7px; }
.bn-header .bn-account > summary::after { content: ''; width: 6px; height: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); }
.bn-header .asp-account-menu-links { position: absolute; top: calc(100% + 12px); right: 0; z-index: 5; min-width: 220px; padding: 8px; background: #fff; border: 1px solid var(--bn-border); border-radius: 10px; box-shadow: 0 12px 30px rgb(47 38 70 / 12%); }
.bn-header .asp-account-menu-links a { display: block; padding: 10px 12px; color: var(--bn-plum); font-size: 13px; text-decoration: none; border-radius: 6px; }
.bn-header .asp-account-menu-links a:hover { background: #eaf8f3; }
.bn-header .bn-cart { display: flex; align-items: center; height: 50px; min-width: 146px; border: 1px solid var(--bn-border); border-radius: 12px; overflow: hidden; text-decoration: none; }
.bn-header .bn-cart .asp-cart-icon { display: flex; align-items: center; justify-content: center; width: 50px; height: 50px; background: var(--bn-plum); color: #fff; }
.bn-header .bn-cart .asp-cart-text { padding: 0 18px; color: var(--bn-plum); font-size: 14px; font-weight: 700; }
.bn-header .bn-toolbar { padding: 16px 0; background: var(--bn-plum); }
.bn-header .bn-search-row { position: relative; display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 18px; align-items: start; }
.bn-header .bn-categories { margin: 0; padding: 0; border: 0; background: transparent; }
.bn-header .bn-toggle { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 46px; height: auto; width: 100%; padding: 11px 20px; border: 2px solid transparent; border-radius: 12px; background: #fff; color: var(--bn-plum); font-size: 15px; font-weight: 800; line-height: 1.3; text-transform: uppercase; }
.bn-header .bn-categories[open] > .bn-toggle { border-color: var(--bn-mint); }
.bn-header .bn-categories[open] > .bn-toggle svg { color: #36a88a; }
.bn-header .bn-header-search { display: flex; align-items: center; min-width: 0; height: 46px; padding-left: 16px; border-radius: 12px; background: #fff; overflow: hidden; }
.bn-header .bn-header-search > svg { color: #6d7186; width: 19px; height: 19px; }
.bn-header .bn-header-search input { flex: 1; min-width: 0; width: auto; border: 0; padding: 0 14px; height: 100%; outline: none; color: var(--bn-plum); background: transparent; font: 14px "Segoe UI", Arial, sans-serif; }
.bn-header .bn-header-search button { display: flex; align-items: center; justify-content: center; width: 64px; height: 46px; padding: 0; border: 0; color: var(--bn-plum); background: var(--bn-mint); cursor: pointer; }
.bn-header .bn-header-search:focus-within { outline: 3px solid var(--bn-mint); outline-offset: 3px; }
.bn-header .bn-mega { position: absolute; z-index: 10; left: 28px; right: 28px; top: calc(100% + 14px); max-height: var(--bn-menu-height, calc(100dvh - 190px)); display: flex; flex-direction: column; background: #fff; border: 1px solid var(--bn-border); border-radius: 16px; box-shadow: 0 24px 50px rgb(28 22 45 / 20%); overflow: hidden; }
.bn-header .bn-menu-top { display: flex; align-items: center; gap: 22px; padding: 24px 26px 20px; flex-shrink: 0; }
.bn-header .bn-menu-top h2 { margin: 0; color: var(--bn-plum); font-family: inherit; font-size: 21px; font-weight: 750; line-height: 1.4; }
.bn-header .bn-filter { display: flex; align-items: center; gap: 10px; flex: 1; max-width: 420px; min-width: 0; margin-left: auto; border: 1px solid #dcddea; border-radius: 8px; padding: 0 12px; height: 40px; }
.bn-header .bn-filter > svg { width: 18px; height: 18px; color: #6b7084; }
.bn-header .bn-filter input { border: 0; outline: 0; min-width: 0; width: 100%; height: 100%; font: 13px "Segoe UI", Arial, sans-serif; color: var(--bn-plum); background: transparent; }
.bn-header .bn-filter:focus-within { outline: 2px solid #31856d; outline-offset: 2px; }
.bn-header .bn-all-products { display: inline-flex; align-items: center; gap: 10px; color: #21806d; font-size: 13px; font-weight: 650; text-decoration: none; white-space: nowrap; }
.bn-header .bn-all-products svg { width: 18px; height: 18px; }
.bn-header .bn-close { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 0; border-left: 1px solid var(--bn-border); background: transparent; color: var(--bn-plum); cursor: pointer; flex-shrink: 0; }
.bn-header .bn-menu-body { display: block; min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.bn-header.bn-enhanced .bn-menu-body { display: grid; grid-template-columns: 226px minmax(0, 1fr); }
.bn-header .bn-section-tabs { display: flex; flex-direction: column; gap: 10px; padding: 16px 14px 28px; background: linear-gradient(#f9f7fc, #fcfcff); border-right: 1px solid var(--bn-border); }
.bn-header .bn-section-button { position: relative; display: flex; align-items: center; gap: 12px; padding: 17px 12px; min-height: 64px; width: 100%; border: 0; border-radius: 8px; text-align: left; color: var(--bn-plum); background: transparent; font: 500 13px/1.55 "Segoe UI", Arial, sans-serif; cursor: pointer; }
.bn-header .bn-section-button span { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.bn-header .bn-section-button > svg:last-child { width: 16px; height: 16px; }
.bn-header .bn-section-button.is-active { background: #efebfa; font-weight: 750; }
.bn-header .bn-section-button.is-active::before { position: absolute; content: ''; top: 8px; bottom: 8px; left: -5px; width: 4px; border-radius: 4px; background: #35bd9a; }
.bn-header .bn-section-button:hover { background: #f0edf8; }
.bn-header .bn-panels { min-width: 0; }
.bn-header .bn-section-panel { margin: 0; }
.bn-header .bn-section-disclosure, .bn-header .bn-column { margin: 0; padding: 0; border: 0; background: transparent; min-width: 0; }
.bn-header .bn-section-mobile, .bn-header .bn-column-toggle { display: flex; align-items: center; gap: 12px; padding: 16px; color: var(--bn-plum); font-size: 14px; font-weight: 700; }
.bn-header .bn-section-mobile span, .bn-header .bn-column-toggle span { flex: 1; }
.bn-header .bn-section-mobile > svg:last-child, .bn-header .bn-column-toggle > svg:last-child { width: 17px; height: 17px; transform: rotate(90deg); }
.bn-header details[open] > .bn-section-mobile > svg:last-child, .bn-header details[open] > .bn-column-toggle > svg:last-child { transform: rotate(-90deg); }
.bn-header .bn-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 16px 22px 26px; }
.bn-header .bn-column { padding: 0 18px; }
.bn-header .bn-column + .bn-column { border-left: 1px solid var(--bn-border); }
.bn-header .bn-column-heading { margin: 0; font-family: inherit; font-size: 14px; font-weight: 750; line-height: 1.55; }
.bn-header .bn-column-heading a { display: flex; align-items: flex-start; gap: 10px; color: var(--bn-plum); text-decoration: none; overflow-wrap: anywhere; }
.bn-header .bn-column-heading svg { width: 23px; height: 23px; }
.bn-header .bn-overview { display: inline-flex; align-items: center; gap: 8px; color: #21806d; font-size: 12px; text-decoration: none; margin: 9px 0 17px 33px; }
.bn-header .bn-overview svg { width: 15px; height: 15px; }
.bn-header .bn-links { margin: 0; padding: 0; list-style: none; }
.bn-header .bn-column-content > .bn-links { border-top: 1px solid var(--bn-border); padding-top: 13px; }
.bn-header .bn-link-item { margin: 0; }
.bn-header .bn-link-item > a { display: flex; align-items: center; gap: 8px; min-height: 42px; padding: 9px 9px; border-radius: 7px; text-decoration: none; color: var(--bn-plum); font-size: 12px; line-height: 1.55; }
.bn-header .bn-link-item > a > span:not(.bn-link-icon):not(.bn-link-arrow) { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.bn-header .bn-link-arrow { font-size: 22px; color: #7b8296; line-height: 1; }
.bn-header .bn-link-item > a:hover, .bn-header .bn-link-item > a[aria-current="page"] { background: #e8f7f1; }
.bn-header .bn-link-item > a[aria-current="page"] { font-weight: 700; }
.bn-header .bn-link-item > a:hover .bn-link-arrow { color: #21806d; }
.bn-header .bn-link-item--consumable { margin-top: 12px; border-top: 1px solid var(--bn-border); padding-top: 12px; }
.bn-header .bn-link-item--consumable > a { color: #21806d; }
.bn-header .bn-link-icon { display: inline-flex; }
.bn-header .bn-link-icon svg { width: 20px; height: 20px; }
.bn-header .bn-link-item > .bn-links { margin-left: 14px; padding-left: 7px; border-left: 1px solid var(--bn-border); }
.bn-header .bn-group-label { display: block; padding: 10px; font-size: 13px; font-weight: 700; }
.bn-header .bn-resource-content { padding: 24px 30px 32px; }
.bn-header .bn-resource-content h3 { margin: 0 0 20px; font-family: inherit; font-size: 22px; color: var(--bn-plum); }
.bn-header .bn-resource-content > .bn-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 28px; }
.bn-header .bn-empty { padding: 16px 28px; color: #697185; font-size: 13px; margin: 0; }
.bn-header .bn-filter-status { margin: 0; padding: 0 28px 12px; color: #697185; font-size: 12px; }
.bn-header .bn-filter-status:empty { display: none; }
.bn-header a:focus-visible, .bn-header button:focus-visible, .bn-header summary:focus-visible { outline: 3px solid #31856d; outline-offset: 3px; }
.bn-header .visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
@media (min-width: 901px) {
  .bn-header.bn-enhanced .bn-section-mobile, .bn-header .bn-column-toggle { display: none; }
}
@media (max-width: 1100px) and (min-width: 901px) {
  .bn-header .bn-menu-top { gap: 14px; padding: 18px; }
  .bn-header .bn-menu-top h2 { font-size: 18px; }
  .bn-header.bn-enhanced .bn-menu-body { grid-template-columns: 180px minmax(0, 1fr); }
  .bn-header .bn-section-button { gap: 8px; padding: 14px 8px; font-size: 12px; }
  .bn-header .bn-columns { padding-left: 10px; padding-right: 10px; }
  .bn-header .bn-column { padding-left: 12px; padding-right: 12px; }
  .bn-header .bn-column-heading a { gap: 7px; }
  .bn-header .bn-column-heading svg { width: 19px; height: 19px; }
  .bn-header .bn-overview { margin-left: 26px; }
}
@media (max-width: 900px) {
  .bn-header .bn-mega { position: static; margin-top: 14px; max-height: none; }
  .bn-header.bn-enhanced .bn-mega { position: fixed; top: 12px; bottom: 12px; left: 12px; right: 12px; z-index: 1001; max-height: none; }
  .bn-header.bn-enhanced .bn-backdrop:not([hidden]) { display: block; position: fixed; inset: 0; z-index: 1000; background: rgb(25 20 40 / 48%); }
  body.bn-menu-open { overflow: hidden; }
  .bn-header.bn-modal { z-index: 10000; }
  .bn-header.bn-enhanced .bn-menu-body { display: block; }
  .bn-header .bn-menu-top { display: grid; grid-template-columns: minmax(0, 1fr) 44px; gap: 14px; padding: 18px; }
  .bn-header .bn-menu-top h2 { font-size: 21px; grid-column: 1; grid-row: 1; }
  .bn-header .bn-close { grid-column: 2; grid-row: 1; border-left: 0; }
  .bn-header .bn-filter { grid-column: 1 / -1; grid-row: 2; max-width: none; width: 100%; height: 44px; margin: 0; }
  .bn-header .bn-all-products { grid-column: 1 / -1; grid-row: 3; }
  .bn-header .bn-panels { padding: 0 16px 20px; }
  .bn-header .bn-section-disclosure { margin-bottom: 10px; border-bottom: 1px solid var(--bn-border); }
  .bn-header .bn-section-mobile { border-radius: 8px; padding: 16px 12px; }
  .bn-header .bn-section-disclosure[open] > .bn-section-mobile { background: #efebfa; }
  .bn-header .bn-columns { display: block; padding: 6px 2px 12px; }
  .bn-header .bn-column { padding: 0; border: 1px solid var(--bn-border); border-radius: 9px; margin: 8px 0; }
  .bn-header .bn-column + .bn-column { border-left: 1px solid var(--bn-border); }
  .bn-header .bn-column-toggle { padding: 14px 12px; min-height: 50px; }
  .bn-header .bn-column-heading { display: none; }
  .bn-header .bn-column-content { padding: 0 12px 12px; }
  .bn-header .bn-overview { margin: 0 0 9px 10px; min-height: 30px; }
  .bn-header .bn-link-item > a { min-height: 46px; font-size: 13px; }
  .bn-header .bn-resource-content { padding: 12px 4px 20px; }
  .bn-header .bn-resource-content h3 { display: none; }
  .bn-header .bn-resource-content > .bn-links { display: block; }
  .bn-header .bn-primary-nav { gap: 24px; }
}
@media (max-width: 600px) {
  .bn-header .asp-container { padding-left: 16px; padding-right: 16px; }
  .bn-header .bn-topbar { flex-wrap: wrap; gap: 14px; padding-top: 14px; padding-bottom: 14px; }
  .bn-header .bn-primary-nav { flex: 0 0 100%; order: 3; gap: 16px 22px; flex-wrap: wrap; justify-content: flex-start; }
  .bn-header .bn-primary-nav > a, .bn-header .bn-account > summary { font-size: 13px; }
  .bn-header .bn-cart { height: 44px; min-width: 128px; }
  .bn-header .bn-cart .asp-cart-icon { width: 42px; height: 44px; }
  .bn-header .bn-search-row { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .bn-header .bn-mega { width: 100%; }
  .bn-header.bn-enhanced .bn-mega { width: auto; top: 8px; bottom: 8px; left: 8px; right: 8px; }
}
@media (prefers-reduced-motion: no-preference) {
  .bn-header .bn-section-button, .bn-header .bn-link-item > a { transition: background-color .15s ease; }
}

/* Taxonomy section panels: columns for the configured Products branch, cards elsewhere. */
.bn-header .bn-search-section-heading { display: none; margin: 0; padding: 18px 28px 0; font: 700 17px/1.5 "Segoe UI", Arial, sans-serif; }
.bn-header .bn-search-section-heading a { display: flex; align-items: center; gap: 12px; color: var(--bn-plum); text-decoration: none; }
.bn-header.bn-filtering .bn-search-section-heading { display: block; }
.bn-header .bn-columns--cards { gap: 16px; padding: 22px 26px 28px; }
.bn-header .bn-columns--cards > .bn-column { padding: 18px; border: 1px solid var(--bn-border); border-radius: 10px; background: #fff; }
.bn-header .bn-columns--cards > .bn-column:has([aria-current="page"]) { border-color: #42bca0; background: #f5fcfa; }
.bn-header .bn-columns--cards .bn-overview { margin-bottom: 10px; }
.bn-header .bn-columns--cards .bn-column-content > .bn-links { padding-top: 6px; }
.bn-header .bn-section-button { font-family: inherit; text-transform: none; box-shadow: none; text-decoration: none; }
.bn-header .bn-section-mobile-link { flex: 1; min-width: 0; color: inherit; text-decoration: none; }
.bn-header .bn-close { box-shadow: none; }
.bn-header .bn-empty a { display: inline-flex; align-items: center; gap: 10px; color: #21806d; }
@media (max-width: 900px) {
  .bn-header .bn-columns--cards { padding: 6px 2px 12px; }
  .bn-header .bn-columns--cards > .bn-column { padding: 0; }
  .bn-header.bn-filtering .bn-search-section-heading { display: none; }
}
