/* E2 taxonomy: B19 hubs, the full public index, and native detail/filter links.
   These rules are limited to taxonomy pages; shared discovery owns detail results. */
html .p23-e2-taxonomy-eyebrow { margin: 0 0 10px; color: var(--p23-muted); font-size: 11px; line-height: 1.5; letter-spacing: .08em; text-transform: uppercase; }
html .p23-main.p23-e2-taxonomy-hub { min-width: 0; padding-bottom: 28px; }
html .p23-e2-taxonomy-hub { --p23-hub-field-border: #707070; --p23-hub-hover-border: #9d5555; }
html[data-p23-theme='light'] .p23-e2-taxonomy-hub { --p23-hub-field-border: #858585; }
html .p23-e2-taxonomy-hub :is(h1,h2) { text-transform: uppercase; }
html .p23-e2-taxonomy-hub [id] { scroll-margin-top: 24px; }
html .p23-e2-hub-heading { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin: 0 0 34px; }
html .p23-e2-hub-heading > div { max-width: 720px; min-width: 0; }
html .p23-e2-hub-eyebrow { font-size: 11px; font-weight: 500; letter-spacing: .08em; line-height: 1.5; text-transform: uppercase; color: var(--p23-muted); }
html .p23-e2-hub-heading h1 { font-size: clamp(32px,4.3vw,48px); margin: 10px 0 16px; }
html .p23-e2-hub-heading p { color: var(--p23-ink-soft); max-width: 65ch; margin: 0; font-size: 16px; line-height: 1.7; }
html .p23-e2-hub-heading > .p23-button { flex-shrink: 0; }
html .p23-e2-taxonomy-hub .p23-button { min-height: 46px; padding: 10px 16px; font-size: 14px; line-height: 1.5; }
html .p23-e2-hub-modes { display: flex; flex-wrap: wrap; gap: 8px; border-bottom: 1px solid var(--p23-line); margin-top: 36px; }
html .p23-e2-hub-modes a { display: inline-flex; align-items: center; min-height: 48px; max-width: 100%; padding: 13px 20px; border-bottom: 3px solid transparent; color: var(--p23-text); font-size: 16px; line-height: 1.5; text-decoration: none; overflow-wrap: anywhere; }
html .p23-e2-hub-modes a[aria-current='page'] { border-bottom-color: #d00000; font-weight: 700; }
html .p23-e2-hub-modes a:hover { background: var(--p23-bg-alt); color: var(--p23-text); }
html .p23-e2-hub-mode-title { font-size: 22px; margin: 26px 0 10px; }
html .p23-e2-hub-help { font-size: 14px; color: var(--p23-muted); line-height: 1.7; margin: 0 0 22px; }
html .p23-e2-hub-search { display: grid; grid-template-columns: minmax(0,540px) auto; align-items: end; justify-content: start; gap: 14px; margin: 0; }
html .p23-e2-hub-search label { display: grid; gap: 8px; min-width: 0; font-size: 13px; line-height: 1.5; }
html .p23-e2-hub-search input { width: 100%; min-width: 0; min-height: 46px; border: 1px solid var(--p23-hub-field-border); border-radius: 4px; background: var(--p23-field); color: var(--p23-text); padding: 10px 12px; font: inherit; font-size: 16px; line-height: 1.5; }
html .p23-e2-hub-search input::placeholder { color: var(--p23-muted); opacity: 1; }
html .p23-e2-hub-result-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 24px 0 18px; }
html .p23-e2-hub-status { color: var(--p23-muted); font-size: 13px; line-height: 1.6; margin: 0; }
html .p23-e2-hub-reset { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; max-width: 100%; padding: 8px 12px; border: 1px solid var(--p23-border); border-radius: 4px; background: var(--p23-bg-alt); color: var(--p23-text); font-size: 14px; line-height: 1.5; text-decoration: none; }
html .p23-e2-hub-reset:is(:hover,:focus-visible) { border-color: var(--p23-text); color: var(--p23-text); }
html .p23-e2-taxonomy-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
html .p23-e2-taxonomy-list > li { min-width: 0; display: flex; margin: 0; padding: 0; }
html .p23-e2-taxonomy-link { width: 100%; display: grid; grid-template-columns: minmax(0,1fr); grid-template-rows: 1fr auto auto; gap: 8px 14px; min-height: 156px; padding: 24px; border: 1px solid var(--p23-line); border-radius: 6px; background: var(--p23-panel); color: var(--p23-text); line-height: 1.45; text-align: left; text-decoration: none; box-shadow: none; }
html .p23-e2-taxonomy-link:is(:hover,:focus-visible) { border-color: var(--p23-hub-hover-border); background: var(--p23-bg-alt); color: var(--p23-text); filter: none; }
html .p23-e2-taxonomy-name { grid-column: 1; align-self: start; font-size: 21px; font-weight: 700; line-height: 1.25; overflow-wrap: anywhere; }
html .p23-e2-taxonomy-count { grid-column: 1; font-size: 13px; color: var(--p23-muted); margin-top: 8px; }
html .p23-e2-taxonomy-types { grid-column: 1; font-size: 12px; color: var(--p23-muted); }
/* Keep the existing column count while aligning names, counts and type rows
   within each visible pair/trio, including longer wrapping labels. */
@supports(grid-template-rows:subgrid){
    @media(min-width:481px){
        html .p23-e2-taxonomy-list > li{display:grid;grid-template-rows:subgrid;grid-row:span 3;row-gap:8px}
        html .p23-e2-taxonomy-list > li > .p23-e2-taxonomy-link{grid-template-rows:subgrid;grid-row:1 / span 3;row-gap:8px}
        html .p23-e2-taxonomy-link > .p23-e2-taxonomy-name{grid-row:1;align-self:start}
        html .p23-e2-taxonomy-link > .p23-e2-taxonomy-count{grid-row:2;align-self:start}
        html .p23-e2-taxonomy-link > .p23-e2-taxonomy-types{grid-row:3;align-self:start}
    }
}
html .p23-e2-hub-empty { padding: 42px 0; border-block: 1px solid var(--p23-line); }
html .p23-e2-hub-empty h2 { font-size: 26px; max-width: 30ch; margin: 0 0 16px; }
html .p23-e2-hub-empty p { color: var(--p23-muted); max-width: 65ch; margin: 0 0 20px; font-size: 14px; line-height: 1.7; }
html .p23-e2-hub-note { font-size: 12px; line-height: 1.75; color: var(--p23-muted); max-width: 85ch; margin: 24px 0; }
html .p23-e2-hub-onward { display: flex; align-items: center; justify-content: space-between; gap: 24px; border-top: 1px solid var(--p23-line); padding-top: 30px; margin-top: 40px; }
html .p23-e2-hub-onward h2 { font-size: 25px; margin: 0 0 10px; }
html .p23-e2-hub-onward p { font-size: 14px; line-height: 1.7; color: var(--p23-muted); margin: 0; }
html .p23-e2-hub-onward > .p23-button { flex-shrink: 0; }
@media (max-width: 1000px) {
    html .p23-e2-hub-heading { gap: 24px; }
    html .p23-e2-hub-heading > div { max-width: 640px; }
    html .p23-e2-hub-heading > .p23-button { max-width: 190px; white-space: normal; }
    html .p23-e2-taxonomy-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 700px) {
    html .p23-e2-hub-heading { display: block; margin: 0 0 28px; }
    html .p23-e2-hub-heading > .p23-button { margin-top: 22px; max-width: none; }
    html .p23-e2-hub-heading h1 { font-size: 36px; }
    html .p23-e2-hub-modes { margin-top: 28px; }
    html .p23-e2-hub-modes a { padding: 11px 15px; font-size: 15px; }
    html .p23-e2-hub-search { grid-template-columns: minmax(0,1fr) auto; width: 100%; }
    html .p23-e2-taxonomy-link { padding: 20px; min-height: 160px; }
    html .p23-e2-taxonomy-name { font-size: 20px; }
    html .p23-e2-hub-onward { display: block; }
    html .p23-e2-hub-onward > .p23-button { margin-top: 20px; }
}
@media (max-width: 600px) {
    html .p23-main.p23-e2-taxonomy-hub { width: calc(100% - 32px); }
}
@media (max-width: 480px) {
    html .p23-e2-hub-heading h1 { font-size: 33px; }
    html .p23-e2-hub-heading p { font-size: 15px; }
    html .p23-e2-hub-help { min-height: 44px; margin-bottom: 16px; }
    html .p23-e2-hub-modes { gap: 0; }
    html .p23-e2-hub-modes a { padding-inline: 12px; font-size: 14px; }
    html .p23-e2-taxonomy-list { grid-template-columns: minmax(0,1fr); gap: 13px; }
    html .p23-e2-taxonomy-link { min-height: 134px; padding: 21px; gap: 6px 16px; }
    html .p23-e2-taxonomy-name { font-size: 23px; }
    html .p23-e2-taxonomy-count { margin-top: 7px; }
    html .p23-e2-hub-search { gap: 10px; }
    html .p23-e2-hub-search .p23-button { padding-inline: 12px; }
    html .p23-e2-hub-result-head { align-items: center; gap: 12px; }
    html .p23-e2-hub-reset { font-size: 13px; text-align: center; }
    html .p23-e2-hub-status { padding-top: 0; }
    html .p23-e2-hub-empty { padding: 30px 0; }
    html .p23-e2-hub-empty h2 { font-size: 25px; }
}
@media (max-width: 360px) {
    html .p23-e2-hub-modes a { padding-inline: 9px; font-size: 13px; }
    html .p23-e2-hub-search { grid-template-columns: minmax(0,1fr); }
    html .p23-e2-hub-search > .p23-button { justify-self: start; }
    html .p23-e2-taxonomy-name { font-size: 22px; }
}
@media (prefers-color-scheme: light) {
    html:not([data-p23-theme]) .p23-e2-taxonomy-hub { --p23-hub-field-border: #858585; }
}
