/* child-style */
/*
Theme Name:     Bukids B2 Child
Theme URI:      https://www.bukids.com/
Description:    Bukids custom child theme for B2 PRO 5.9.42
Author:         Bukids
Author URI:     https://www.bukids.com/
Template:       b2
Version:        2.0.339
Text Domain:    bukids-b2-child
*/

/* 2.0.242: shared right rail. Preserve each page's visibility/breakpoints;
   no nested scrollbar and no second CSS-sticky mechanism. The native B2
   wrapper handles both short/tall rails and the article/footer boundary. */
#secondary.widget-area > .sidebar.bk-sidebar-managed {
    position: relative;
    top: auto;
}
#secondary.widget-area > .sidebar.bk-sidebar-managed .sidebar-innter {
    box-sizing: border-box;
    max-height: none;
    overflow: visible;
}
#secondary.widget-area > .sidebar.bk-sidebar-managed .sidebar-innter > .widget:last-child {
    margin-bottom: 0;
}

/* 2.0.239: remove DPlayer's whole speed / loop settings control. Keeping its
   internal nodes lets the parent player initialise normally. This also applies
   to recreated players and fullscreen, without JS observers or extra requests.
   Subtitle, auto-next, volume and fullscreen controls are separate siblings. */
.dplayer .dplayer-setting {
    display: none !important;
}

/* 2.0.214: scale B2's existing watermark by the actual player, not the viewport.
   Keep its configured image, opacity and position; no JS or extra requests.
   B2's global/mobile pixel caps are important, so override only this player. */
#post-style-5-player.dplayer .dplayer-logo {
    width: 12%;
    min-width: 40px;
    max-width: 180px !important;
    height: auto;
    max-height: none !important;
    pointer-events: none;
}
#post-style-5-player.dplayer .dplayer-logo img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
    max-height: none;
}

/* Global overrides belong here. Collection styles are conditionally loaded
   from assets/css/collection.css to keep unrelated pages lightweight. */

/* Mobile footer: remove the publishing shortcut and share space per link,
   not per left/right group (their configured item counts may differ).
   Keep B2's visibility, scroll behavior, click handlers and safe-area padding. */
@media screen and (max-width:1180px) {
    #mobile-footer-menu > .mobile-footer-center { display:none; }
    #mobile-footer-menu > .mobile-footer-left,
    #mobile-footer-menu > .mobile-footer-right { display:contents; }
    #mobile-footer-menu > .mobile-footer-left > a,
    #mobile-footer-menu > .mobile-footer-right > a {
        flex:1 1 0; width:auto; min-width:0; min-height:44px;
        box-sizing:border-box; display:flex; flex-direction:column;
        align-items:center; justify-content:center; text-align:center;
    }
}

/* Search uses the existing topic grid, without article metadata. */
/* Header search: slightly wider, with the icon participating in layout. */
.site-header .top-search .mobile-search-input[role="search"] {
    display:flex; align-items:center; width:clamp(180px,15vw,220px); max-width:100%; height:36px;
    box-sizing:border-box; padding:0; margin:0; border-radius:4px;
    border:1px solid transparent; background:#f5f6f7;
}
.site-header .top-search .mobile-search-input[role="search"] input {
    flex:1 1 auto; width:0; min-width:0; height:100%; box-sizing:border-box;
    padding:0 0 0 12px; margin:0; font:inherit; font-size:14px; line-height:normal; text-align:left;
    background:transparent; border:0; box-shadow:none; color:#30343b;
}
.site-header .top-search .mobile-search-input[role="search"] .search-button-action {
    position:static; display:flex; align-items:center; justify-content:center;
    flex:0 0 36px; width:36px; height:100%; min-height:0; padding:0; margin:0;
    line-height:1; border:0; background:transparent;
}
.site-header .top-search .mobile-search-input[role="search"] .search-button-action i { line-height:1; }
.site-header .top-search .mobile-search-input[role="search"]:focus-within { outline:0; border-color:#98a3af; background:#f5f6f7; box-shadow:none; }
.site-header .top-search .mobile-search-input[role="search"]:has(:focus-visible) { outline:2px solid #687385; outline-offset:2px; }
.site-header .top-search .mobile-search-input[role="search"] input:focus { background:transparent; box-shadow:none; outline:0; color:#30343b; }
.site-header .top-search .mobile-search-input[role="search"] input:-webkit-autofill,
.site-header .top-search .mobile-search-input[role="search"] input:-webkit-autofill:hover,
.site-header .top-search .mobile-search-input[role="search"] input:-webkit-autofill:focus {
    -webkit-box-shadow:0 0 0 1000px #f5f6f7 inset !important; box-shadow:0 0 0 1000px #f5f6f7 inset !important;
    -webkit-text-fill-color:#30343b; caret-color:#30343b; animation:none;
}
.site-header .top-search .mobile-search-input[role="search"] input:autofill { box-shadow:0 0 0 1000px #f5f6f7 inset !important; background:#f5f6f7; color:#30343b; }
.site-header .top-search .mobile-search-input[role="search"] .search-button-action svg { display:block; width:18px; height:18px; }
@media (max-width:1180px) {
    .site-header .top-search .mobile-search-input[role="search"] { width:180px; }
    .search-box-content .search-input { font-size:16px; }
}
.search .bk2-search-card-meta { margin-top:auto; padding-top:12px; font-size:12px; line-height:1.65; color:#687385; white-space:normal; overflow-wrap:anywhere; }
.search .bk2-search-card-meta span { white-space:normal; }
.search .bk2-search-container { padding-top:24px; }
.search .bk2-topic-search {
    background:transparent; color:inherit;
    --bk-primary:var(--b2color,#fd4c4c);
    --bk-primary-dark:var(--b2color,#fd4c4c);
    --bk-ink:#222; --bk-muted:#666; --bk-light:#888;
    --bk-line:#e6e9ef;
}
.search .bk2-topic-search .bukids-library-form { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; margin-bottom:12px; }
.search .bk2-topic-search .bukids-search-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:stretch; }
.search .bk2-topic-search .bukids-search-field { position:relative; grid-column:auto; min-width:0; height:44px; min-height:44px; box-sizing:border-box; padding:0; margin:0; background:#fff; border:1px solid #d9dee5; border-radius:4px; }
.search .bk2-topic-search .bukids-search-field input { width:100%; min-width:0; height:100%; min-height:0; box-sizing:border-box; padding:0 14px; margin:0; border:0; border-radius:3px; background:transparent; font-size:14px; line-height:22px; appearance:none; -webkit-appearance:none; }
.search .bk2-topic-search .bukids-primary-button { min-height:44px; padding:0 22px; border-radius:4px; box-shadow:none; background:var(--b2color,#fd4c4c); border-color:var(--b2color,#fd4c4c); }
.search .bk2-topic-search .bukids-search-row > .bukids-primary-button { height:44px; min-height:44px; box-sizing:border-box; margin:0; border-width:1px; border-style:solid; font-size:14px; line-height:22px; appearance:none; -webkit-appearance:none; }
.search .bk2-topic-search .bukids-results-toolbar { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:16px; padding:0 0 12px; margin-bottom:20px; border-bottom:1px solid #e6e9ef; }
.search .bk2-topic-search .bukids-results-toolbar > div { min-width:0; }
.search .bk2-topic-search .bk2-search-query { display:flex; flex-wrap:wrap; align-items:center; gap:2px 12px; overflow-wrap:anywhere; margin:0; padding:8px 0; min-height:44px; font-size:13px; line-height:22px; color:var(--bk-muted); }
.search .bk2-topic-search .bk2-search-query-term { min-width:0; max-width:100%; color:var(--bk-ink); }
.search .bk2-topic-search .bk2-search-summary-item { white-space:nowrap; }
.search .bk2-search-reset { display:inline-flex; align-items:center; min-height:44px; flex-shrink:0; font-size:13px; color:#687385; text-decoration:underline; text-underline-offset:3px; }
.search .bk2-topic-search .bukids-card { border-radius:var(--bk-radius,6px); box-shadow:none; transform:none; }
.search .bk2-topic-search .bukids-card:hover { border-color:var(--bk-line); background:#fcfcfd; }
.search .bk2-topic-search .bk2-search-card-meta,
.search .bk2-topic-search .bk2-search-reset { color:var(--bk-muted); }
.search .bk2-topic-search .bukids-card-media { background:#f5f6f7; }
.search .bk2-topic-search .bukids-search-field:focus-within {
    border-color:var(--b2color,#fd4c4c); outline:none; box-shadow:none;
}
/* The mobile library clips overflow-x, including the field's left outline.
   Paint over its existing border, above autofill, without extending outwards.
   Absolute insets start at the padding box: -1px includes the 1px border. */
.search .bk2-topic-search .bukids-search-field:focus-within::after {
    content:""; position:absolute; inset:-1px; z-index:1; pointer-events:none;
    border:2px solid var(--b2color,#fd4c4c); border-radius:inherit;
}
.search .bk2-topic-search .bukids-search-field input:focus,
.search .bk2-topic-search .bukids-search-field input:focus-visible { outline:none; box-shadow:none; background:transparent; }
.search .bk2-topic-search .bukids-search-field input::-webkit-search-decoration { -webkit-appearance:none; }
.search .bk2-topic-search .bukids-card:hover img { transform:none; }
.search .bk2-search-cover-fallback { position:absolute; inset:0; }
.search .bk2-topic-search .bukids-card-media [hidden] { display:none; }
.search .bk2-topic-search .bukids-card-link:focus-visible,
.search .bk2-topic-search input:focus-visible,
.search .bk2-search-reset:focus-visible { outline:2px solid var(--b2color,#fd4c4c); outline-offset:-2px; }
.search .bk2-topic-search .bukids-empty-state { padding:40px 16px; border:1px solid #e6e9ef; border-radius:4px; box-shadow:none; background:#fff; }
@media (max-width:1180px) {
    .search .bk2-search-container { max-width:calc(100% - 32px); }
}
@media (max-width:480px) {
    .search .bk2-search-container { max-width:calc(100% - 24px); padding-top:16px; }
    .search .bk2-topic-search .bukids-search-field input { font-size:16px; padding:0 10px; }
    .search .bk2-topic-search .bukids-search-row > .bukids-primary-button { font-size:16px; }
    .search .bk2-topic-search .bukids-primary-button { padding:0 16px; }
    .search .bk2-topic-search .bukids-results-toolbar { gap:8px; margin-bottom:16px; }
    .search .bk2-topic-search .bukids-card-grid { gap:12px; }
}
@media (max-width:768px) {
    /* The query remains in the editable field; do not repeat it above cards. */
    .search .bk2-topic-search .bk2-search-query-term { display:none; }
    .search .bk2-topic-search .bk2-search-query { gap:2px 10px; font-size:12px; }
    .search .bk2-topic-search .bukids-results-toolbar { padding-bottom:8px; }
}
.search .bukids-library .bukids-card { border:1px solid #e6e9ef; }
.search .bukids-library .bukids-primary-button {
    background:var(--b2color,#fd4c4c); border-color:var(--b2color,#fd4c4c); color:#fff;
}
.search .bukids-library .bukids-primary-button:hover { filter:brightness(.94); }

/* Keep search usable through B2's tablet bottom-navigation breakpoint. */
@media (max-width:1180px) {
    /* 2.0.316: the footer already leaves room for B2's bottom bar. */
    .search .bk2-topic-search { padding-bottom:16px; }
    .search .bk2-topic-search .bukids-search-field input,
    .search .bk2-topic-search .bukids-search-row > .bukids-primary-button { font-size:16px; }
}
@media (max-width:359px) {
    .search .bk2-topic-search .bukids-card-grid { grid-template-columns:minmax(0,1fr); }
}
@media (pointer:coarse) {
    .search .bk2-topic-search .bukids-search-field input { font-size:16px; }
}

/* B2 header membership entry: theme colour, no floating overlay or extra JS. */
.site-header .bk2-member-actions { align-items:center; gap:10px; }
.site-header.social-top .bk2-member-header { width:auto; flex-shrink:0; align-items:center; }
.site-header .bk2-member-cta {
    display:block; flex:0 0 auto;
    box-sizing:border-box; min-height:0; padding:8px 15px; margin:0;
    border:0; border-radius:8px;
    background:var(--b2color,#227c73); color:#fff; font:inherit;
    font-size:12px; font-weight:400; line-height:normal; white-space:nowrap;
    text-decoration:none; transition:filter .15s ease; cursor:pointer; touch-action:manipulation;
}
/* One typography/geometry contract for the two four-character actions.
   Links otherwise inherit ligatures/optimizelegibility unlike B2 buttons. */
.site-header .bk2-member-actions .header-login-button > button:not(.empty),
.site-header .bk2-member-cta {
    box-sizing:border-box; width:78px; height:32px; min-width:78px; min-height:32px;
    padding:8px 15px; border:0; border-radius:8px;
    font-family:inherit; font-size:12px; font-weight:400; font-style:normal;
    line-height:16px; letter-spacing:normal; text-align:center;
    font-feature-settings:normal; font-variant:normal; text-rendering:auto;
}
.site-header .bk2-member-cta:hover { color:#fff; }
@media (hover:hover) and (pointer:fine) {
    .site-header .bk2-member-cta:hover { filter:brightness(.93); }
}
.site-header .bk2-member-cta:active { filter:brightness(.84); }
@media (prefers-reduced-motion:reduce) {
    .site-header .bk2-member-cta { transition:none; }
}
.site-header .bk2-member-cta:focus-visible { outline:2px solid currentColor; outline-offset:3px; box-shadow:0 0 0 4px var(--b2color,#227c73); }
/* Keep the loading cloak stronger than polish.css's desktop button display. */
.site-header .bk2-member-cta[v-cloak] { display:none!important; }
/* Match Bukids' deployed B2 mobile.css breakpoint (1180px). */
@media (max-width:1180px) {
    /* B2's absolute 100%-wide logo box intercepted taps over the right tools. */
    .site-header.bk2-membership-enabled.social-top .header-banner-left > .header-logo,
    .site-header.bk2-membership-enabled.social-top .header-banner-left > .header-logo .logo { width:auto; }
    /* Closed off-canvas menus must not retain a transparent hit layer after resize. */
    .site-header.bk2-membership-enabled .mobile-box:not(.show-menu-box) { visibility:hidden; pointer-events:none; }
    .site-header.bk2-membership-enabled .mobile-box:not(.show-menu-box) * { pointer-events:none; }
    .site-header.bk2-membership-enabled.social-top .top-style .header-banner-right { height:43px; flex-shrink:0; margin-bottom:0; }
    .site-header .bk2-member-actions { gap:6px; position:relative; z-index:3; }
    .site-header .bk2-member-actions .top-user-box { position:static; }
    .site-header .bk2-member-actions .top-user-box-drop {
        right:0; top:calc(100% + 8px); width:308px; max-width:calc(100vw - 24px);
        max-height:calc(100vh - 64px); max-height:calc(100dvh - 64px); overflow-y:auto;
        transform-origin:right top;
    }
    .site-header .bk2-member-actions .top-user-box-drop.jt::before,
    .site-header .bk2-member-actions .top-user-box-drop.jt::after { display:none; }
}
@media (max-width:360px) {
    .site-header.bk2-membership-enabled.social-top .header-logo img { max-width:112px; object-fit:contain; object-position:left center; }
}

/* bukids-collection */
/* Bukids collection library ------------------------------------------------ */

/* Library index: the same quiet card hierarchy as topic search. */
.bukids-library.bk2-library-index {
    --bk-primary:var(--bk-ui-brand,#fd4c4c); --bk-primary-dark:var(--bk-ui-brand-dark,#e8403f);
    --bk-ink:var(--bk-ui-ink,#1d2433); --bk-muted:var(--bk-ui-muted,#667085); --bk-light:var(--bk-ui-faint,#98a2b3);
    background:transparent; color:inherit;
}
.bk2-library-index .bukids-card-media { background:#fff; }
.bk2-library-index .bukids-card-content h3 { font-size:14px; font-weight:400; }
.bk2-library-index .bukids-filter-actions > a { white-space:nowrap; flex-shrink:0; }
.bk2-library-index .bukids-card-stats {
    margin-top:auto; padding-top:12px; color:var(--bk-muted); font-size:12px; line-height:1.65;
}
.bk2-library-index .bukids-card-stats span { white-space:normal; }
.bk2-library-index .bukids-results-toolbar { align-items:center; gap:12px; }
.bk2-library-index .bukids-results-toolbar > div { min-width:0; }
.bk2-library-index .bukids-clear-link { flex-shrink:0; min-height:44px; display:inline-flex; align-items:center; }
.bk2-library-index .bukids-card-media [hidden] { display:none; }
.bk2-library-cover-fallback { position:absolute; inset:0; }
@media(max-width:480px) { .bk2-library-index .bukids-card-grid { gap:12px; } }
@media(max-width:359px) { .bk2-library-index .bukids-card-grid { grid-template-columns:minmax(0,1fr); } }

.bukids-library,
.bukids-series-page {
    --bk-primary: var(--bk-ui-brand, #fd4c4c);
    --bk-primary-dark: var(--bk-ui-brand-dark, #e8403f);
    --bk-primary-soft: var(--bk-ui-brand-soft, #fff1f1);
    --bk-ink: var(--bk-ui-ink, #1d2433);
    --bk-muted: var(--bk-ui-muted, #667085);
    --bk-light: var(--bk-ui-faint, #98a2b3);
    --bk-line: var(--bk-ui-line, #e6e9ef);
    --bk-surface: #fff;
    --bk-background: #fff;
    --bk-radius: 6px;
    font-family: inherit;
    font-size: 14px;
}

.bukids-library,
.bukids-library *,
.bukids-series-page,
.bukids-series-page * {
    box-sizing: border-box;
}

.bukids-library a,
.bukids-series-page a {
    text-decoration: none;
}

.bukids-library button,
.bukids-library input,
.bukids-library select,
.bukids-series-page button,
.bukids-series-page input,
.bukids-series-page select {
    font: inherit;
}

.bukids-visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.bukids-library-container {
    /* Width comes from B2's configured .wrapper; never change global width. */
    max-width: calc(100% - 32px);
    margin-inline: auto;
}

.bukids-library {
    min-height: 70vh;
    padding-bottom: 56px;
    color: var(--bk-ink);
    background: var(--bk-background);
}

/* The B2 header normally reserves a card gap below the navigation. The
   collection landing hero is a full-width band, so it should meet the nav. */
body.bukids-collection-landing .site-header {
    margin-bottom: 0;
}

body.bukids-collection-landing #content {
    padding-top: 0;
    margin-top: 0;
}

.bukids-library-main {
    padding-top: 24px;
}

.bukids-library-form {
    margin: 0 0 18px;
    padding: 18px;
    background: var(--bk-surface);
    border: 1px solid var(--bk-line);
    border-radius: var(--bk-radius);
}

.bukids-search-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 12px;
    align-items: stretch;
}

.bukids-search-field {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 10px;
    min-height: 42px;
    padding: 0 15px;
    color: var(--bk-light);
    background: #fff;
    border: 1px solid var(--bk-line);
    border-radius: 5px;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.bukids-search-field:focus-within {
    color: var(--bk-ink);
    background: #fff;
    border-color: var(--bk-ui-faint, #98a2b3);
    box-shadow: 0 0 0 2px var(--bk-ui-line, #e6e9ef);
}

.bukids-search-field svg {
    flex: 0 0 auto;
}

.bukids-search-field input {
    width: 100%;
    min-width: 0;
    height: 40px;
    padding: 0;
    color: var(--bk-ink);
    background: transparent;
    border: 0;
    outline: 0;
}

.bukids-search-field input::placeholder {
    color: #9ba4b4;
}

.bukids-sort-field {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 0 12px;
    color: var(--bk-muted);
    background: #fff;
    border: 1px solid var(--bk-line);
    border-radius: 9px;
}

.bukids-sort-field > span {
    font-size: 13px;
    white-space: nowrap;
}

.bukids-sort-field select,
.bukids-filter-field select,
.bukids-series-search select {
    color: var(--bk-ink);
    background: transparent;
    border: 0;
    outline: 0;
}

.bukids-primary-button,
.bukids-secondary-button,
.bukids-series-search button[type="submit"] {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 0 20px;
    color: #fff !important;
    font-weight: 650;
    line-height: 1;
    background: var(--bk-primary);
    border: 1px solid var(--bk-primary);
    border-radius: 5px;
    cursor: pointer;
    transition: transform 0.18s ease, background 0.18s ease, border-color 0.18s ease;
}

.bukids-primary-button:hover,
.bukids-secondary-button:hover,
.bukids-series-search button[type="submit"]:hover {
    color: #fff !important;
    background: var(--bk-primary-dark);
    border-color: var(--bk-primary-dark);
    transform: none;
}

.bukids-primary-button:focus-visible,
.bukids-secondary-button:focus-visible,
.bukids-library a:focus-visible,
.bukids-series-page a:focus-visible {
    outline: 2px solid var(--bk-ui-muted, #667085);
    outline-offset: 3px;
}

.bukids-filter-details {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--bk-line);
}

.bukids-filter-details > summary {
    display: none;
    color: var(--bk-ink);
    font-weight: 650;
    cursor: pointer;
}

.bukids-filter-details > summary span {
    display: inline-flex;
    min-width: 20px;
    height: 20px;
    align-items: center;
    justify-content: center;
    margin-left: 6px;
    color: #fff;
    font-size: 12px;
    background: var(--bk-primary);
    border-radius: 999px;
}

.bukids-filter-body {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    align-items: end;
}

.bukids-filter-field {
    display: grid;
    flex: 1 1 180px;
    min-width: 0;
    gap: 7px;
}

.bukids-filter-field > span {
    color: var(--bk-muted);
    font-size: 12px;
    font-weight: 650;
}

.bukids-filter-field select {
    width: 100%;
    min-width: 0;
    height: 42px;
    padding: 0 11px;
    background: #fff;
    border: 1px solid var(--bk-line);
    border-radius: 8px;
}

.bukids-filter-actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    min-height: 42px;
    gap: 14px;
}

.bukids-filter-actions .bukids-secondary-button {
    min-height: 42px;
    padding-inline: 16px;
    color: var(--bk-ink) !important;
    background: #fff;
    border-color: var(--bk-line);
}

.bukids-filter-actions a,
.bukids-clear-link {
    color: var(--bk-muted);
    font-size: 13px;
}

.bukids-filter-actions a:hover,
.bukids-clear-link:hover {
    color: var(--bk-primary);
}

.bukids-alphabet {
    display: flex;
    width: 100%;
    min-width: 0;
    align-items: center;
    gap: 3px;
    padding: 8px;
    overflow-x: auto;
    background: #fff;
    border: 1px solid var(--bk-line);
    border-radius: var(--bk-radius);
    scrollbar-width: thin;
}

.bukids-alphabet a {
    display: inline-flex;
    flex: 0 0 auto;
    min-width: 32px;
    height: 32px;
    align-items: center;
    justify-content: center;
    padding: 0 8px;
    color: var(--bk-muted);
    font-size: 13px;
    border-radius: 7px;
}

.bukids-alphabet a:first-child {
    min-width: 48px;
}

.bukids-alphabet a:hover {
    color: var(--bk-primary);
    background: var(--bk-primary-soft);
}

.bukids-alphabet a.is-active {
    color: #fff;
    font-weight: 700;
    background: var(--bk-primary);
}

.bukids-results-toolbar,
.bukids-series-toolbar {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    padding: 28px 0 16px;
}

.bukids-results-toolbar h2,
.bukids-series-toolbar h2 {
    margin: 0;
    color: var(--bk-ink);
    font-size: 18px;
    line-height: 1.3;
}

.bukids-series-toolbar h2 {
    font-size: 16px;
}

.bukids-results-toolbar p,
.bukids-series-toolbar p {
    margin: 5px 0 0;
    color: var(--bk-light);
    font-size: 13px;
}

.bukids-card-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: stretch;
    gap: 18px;
}

.bukids-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    background: var(--bk-surface);
    border: 1px solid var(--bk-line);
    border-radius: var(--bk-radius);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.bukids-card:hover {
    border-color: var(--bk-line);
    box-shadow: none;
    transform: none;
    background: #fcfcfd;
}

.bukids-card-link {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 100%;
    height: 100%;
    color: inherit;
}

.bukids-card-media {
    position: relative;
    flex-shrink: 0;
    aspect-ratio: var(--bk-topic-cover-ratio, 16 / 9);
    overflow: hidden;
    background: #edf0f3;
}

@media (max-width: 768px) {
    .bukids-card-media {
        aspect-ratio: var(--bk-topic-cover-ratio-mobile, var(--bk-topic-cover-ratio, 16 / 9));
    }
}

.bukids-card-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.bukids-card:hover .bukids-card-media img {
    transform: none;
}

.bukids-card-placeholder {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    color: var(--bk-ui-faint, #98a2b3);
    font-size: 40px;
    font-weight: 800;
}

.bukids-card-content {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-width: 0;
    padding: 14px 14px 16px;
}

.bukids-card-content h3 {
    display: block;
    min-height: 0;
    margin: 0;
    overflow: visible;
    color: var(--bk-ink);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
    white-space: normal;
    overflow-wrap: anywhere;
}

.bukids-card-cn {
    display: block;
    margin: 4px 0 0;
    overflow: visible;
    color: var(--bk-muted);
    font-size: 13px;
    line-height: 1.5;
    white-space: normal;
    overflow-wrap: anywhere;
}

.bukids-card-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 5px 12px;
    margin-top: auto;
    margin-bottom: 0;
    padding-top: 7px;
    color: var(--bk-light);
    font-size: 12px;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.bukids-card-stats span + span::before {
    content: "·";
    margin-right: 10px;
}

.bukids-series-facts{
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 11px 0 0;
    padding: 0;
    list-style: none;
}

.bukids-empty-state {
    display: flex;
    min-height: 300px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 48px 20px;
    text-align: center;
    background: #fff;
    border: 1px solid var(--bk-line);
    border-radius: var(--bk-radius);
}

.bukids-empty-state > div {
    margin-bottom: 10px;
    color: #c0c6d0;
    font-size: 48px;
}

.bukids-empty-state h2 {
    margin: 0;
    color: var(--bk-ink);
    font-size: 20px;
}

.bukids-empty-state p {
    margin: 8px 0 20px;
    color: var(--bk-muted);
}

/* Collection taxonomy / series page --------------------------------------- */

.collection.b2-single-content {
    align-items: flex-start;
}

.collection .content-area,
.collection .site-main,
.bukids-series-page {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.bukids-series-page {
    color: var(--bk-ink);
}

.bukids-breadcrumbs {
    margin: 0 0 12px;
    padding: 11px 16px;
    background: #fff;
    color: #8590a6;
    font-size: 13px;
    line-height: 1.5;
    min-width: 0;
}

.bukids-breadcrumbs ol {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.bukids-breadcrumbs li { flex: 0 0 auto; }

.bukids-breadcrumbs a {
    color: inherit;
    text-decoration: none;
}

.bukids-breadcrumbs a:hover {
    color: var(--b2color, #ff3355);
}

.bukids-breadcrumbs-separator { color: #bfc5ce; user-select: none; }

.bukids-breadcrumbs .bukids-breadcrumbs-current {
    flex: 1 1 auto;
    min-width: 0;
    color: var(--bk-ui-ink, #1d2433);
    font-weight: 500; /* 2.0.262: same as the Blog and article breadcrumbs */
}

.bukids-breadcrumbs-current span {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bukids-series-hero {
    display: grid;
    grid-template-columns: minmax(0, 44%) minmax(0, 1fr);
    gap: 22px;
    align-items: start;
    padding: 20px;
    background: #fff;
    border: 1px solid var(--bk-line);
    border-radius: 8px;
}

.bukids-series-cover-wrap {
    display: flex;
    width: 100%;
    aspect-ratio: 16 / 9;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #fff;
    border-radius: 6px;
}

.bukids-series-cover {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.bukids-series-cover-placeholder {
    color: var(--bk-ui-faint, #98a2b3);
    font-size: 46px;
    font-weight: 800;
}

/* Keep the fixed cover canvas while swapping a failed image and its fallback. */
.bukids-series-cover[hidden],
.bukids-series-cover-placeholder[hidden] {
    display: none !important;
}
.bukids-series-layout .bukids-series-cover-wrap.bk2-cover-fallback {
    position: relative;
}
.bukids-series-layout .bukids-series-cover-wrap.bk2-cover-fallback > .bukids-series-cover,
.bukids-series-layout .bukids-series-cover-wrap.bk2-cover-fallback > .bukids-series-cover-placeholder {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}
.bukids-series-layout .bukids-series-cover-wrap.bk2-cover-fallback > .bukids-series-cover-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* 2.0.288: resource thumbnails can have a different ratio from the hero.
   Fill landscape fallback frames without changing their responsive size. */
.bukids-series-layout .bukids-series-hero:not(.bk2-textbook-hero) > .bukids-series-cover-wrap.bk2-cover-fallback > .bukids-series-cover {
    object-fit: cover;
    object-position: center;
}

.bukids-series-hero-content {
    min-width: 0;
    padding: 2px 6px 2px 0;
}

.bukids-series-kicker {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
}

.bukids-series-kicker > span {
    color: var(--bk-light);
    font-size: 12px;
    min-width: 0;
    max-width: 100%;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.bukids-series-hero h1 {
    margin: 8px 0 0;
    overflow-wrap: anywhere;
    color: var(--bk-ink);
    font-size: clamp(23px, 2.2vw, 28px);
    line-height: 1.22;
    letter-spacing: -0.018em;
}

.bukids-series-cn-name {
    margin: 5px 0 0;
    overflow-wrap: anywhere;
    color: var(--bk-muted);
    font-size: 15px;
    font-weight: 650;
}

.bukids-series-description {
    display: -webkit-box;
    /* 2.0.246: fill the text column, including stacked tablet layouts. */
    max-width: none;
    margin: 13px 0 0;
    overflow: hidden;
    color: var(--bk-muted);
    font-size: 14px;
    line-height: 1.7;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.bukids-series-facts {
    margin-top: 14px;
}

.bukids-series-facts li {
    padding: 5px 8px;
    color: #586273;
    font-size: 12px;
    line-height: 1;
    background: #fff;
    border: 1px solid #e6e9ef;
    border-radius: var(--bk-ui-r-sm, 6px);
}

.bukids-series-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-top: 18px;
}

.bukids-hero-secondary {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    padding: 0 16px;
    color: var(--bk-ink) !important;
    font-weight: 650;
    background: #fff;
    border: 1px solid var(--bk-line);
    border-radius: 6px;
}

.bukids-series-actions .bukids-primary-button {
    min-height: 42px;
    padding-inline: 16px;
    border-radius: 6px;
}

.bukids-hero-secondary:hover {
    color: var(--bk-primary) !important;
    border-color: rgba(253, 76, 76, 0.45);
}

.bukids-series-resources {
    margin-top: 16px;
    padding: 0 20px 20px;
    background: #fff;
    border: 1px solid var(--bk-line);
    border-radius: 8px;
}

.bukids-series-search {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) auto auto;
    gap: 8px;
    font-size: 13px;
}

.bukids-series-search input,
.bukids-series-search select {
    width: 100%;
    min-width: 0;
    height: 42px;
    padding: 0 12px;
    color: var(--bk-ink);
    background: #fff;
    border: 1px solid var(--bk-line);
    border-radius: 8px;
    outline: 0;
}

.bukids-series-search input:focus,
.bukids-series-search select:focus {
    border-color: var(--bk-ui-faint, #98a2b3);
    box-shadow: 0 0 0 2px var(--bk-ui-line, #e6e9ef);
}

.bukids-series-search button[type="submit"] {
    min-height: 42px;
}

/* Responsive --------------------------------------------------------------- */

.bukids-active-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0 0 16px;
    color: var(--bk-muted);
    font-size: 12px;
}

.bukids-active-filters a {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    min-height: 34px;
    padding: 5px 10px;
    color: var(--bk-ink);
    background: #fff;
    border: 1px solid var(--bk-line);
    border-radius: var(--bk-ui-r-sm, 6px);
    overflow-wrap: anywhere;
}

.bukids-library select:focus-visible,
.bukids-filter-details summary:focus-visible {
    outline: 2px solid var(--bk-ui-muted, #667085);
    outline-offset: 2px;
}

.bukids-card-link:focus-visible {
    outline-offset: -3px;
}

.bukids-series-facts:empty { display: none; }
.bukids-series-resources { scroll-margin-top: 100px; }
.bukids-series-native-resources { scroll-margin-top: 100px; }
.bukids-series-controls { padding: 16px; margin: 0 0 16px; background: #fff; border: 1px solid var(--bk-line); border-radius: 6px; }

@media (max-width: 1024px) {
    .bukids-card-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .bukids-filter-body {
        display: flex;
    }

    .bukids-series-hero {
        grid-template-columns: minmax(0, 42%) minmax(0, 1fr);
        gap: 20px;
    }
}

@media (min-width: 721px) {
    .bukids-filter-details:not([open]) > .bukids-filter-body {
        display: grid;
    }
}

@media (max-width: 720px) {
    .bukids-library-container {
        max-width: calc(100% - 24px);
    }

    .bukids-library {
        width: 100%;
        max-width: 100%;
        padding-bottom: 82px;
        overflow-x: clip;
    }

    .bukids-series-page {
        width: 100%;
        max-width: 100%;
        margin: 0;
        overflow: visible;
    }

    .bukids-library-main {
        padding-top: 14px;
    }

    .bukids-library-form {
        padding: 12px;
    }

    .bukids-search-row {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 8px;
    }

    .bukids-search-field {
        grid-column: 1 / -1;
    }

    .bukids-sort-field {
        min-width: 0;
    }

    .bukids-sort-field select {
        min-width: 0;
        max-width: 128px;
    }

    .bukids-filter-details {
        margin-top: 12px;
        padding-top: 11px;
    }

    .bukids-filter-details > summary {
        display: list-item;
    }

    .bukids-filter-body {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        padding-top: 12px;
    }

    .bukids-filter-actions {
        grid-column: 1 / -1;
    }

    .bukids-alphabet {
        margin-inline: 0;
        padding: 8px;
    }

    .bukids-results-toolbar,
    .bukids-series-toolbar {
        align-items: flex-start;
        padding: 22px 0 13px;
    }

    .bukids-results-toolbar h2,
    .bukids-series-toolbar h2 {
        font-size: 19px;
    }

    .bukids-series-toolbar h2 {
        font-size: 16px;
    }

    .bukids-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .bukids-card {
        min-width: 0;
        border-radius: 6px;
    }

    .bukids-card-content {
        min-width: 0;
        padding: 11px 10px 13px;
    }

    .bukids-card-content h3 {
        font-size: 14px;
    }

    .bukids-card-cn {
        font-size: 12px;
    }

    .bukids-card-stats {
        display: grid;
        gap: 3px;
        margin-top: auto;
        padding-top: 7px;
        font-size: 11px;
    }

    .bukids-card-stats span + span::before {
        content: none;
    }

    .bukids-breadcrumbs {
        margin-inline: 0;
    }

    .bukids-series-hero {
        display: block;
        padding: 16px;
        border-radius: 6px;
    }

    .bukids-series-cover-wrap {
        display: flex;
        max-width: 480px;
        margin: 0 auto 16px;
    }

    .bukids-series-hero-content {
        padding: 0;
    }

    .bukids-series-hero h1 {
        margin-top: 7px;
        font-size: 23px;
    }

    .bukids-series-cn-name {
        font-size: 14px;
    }

    .bukids-series-description {
        margin-top: 11px;
        font-size: 13px;
        -webkit-line-clamp: 3;
    }

    .bukids-series-facts {
        margin-top: 12px;
    }

    .bukids-series-actions {
        margin-top: 15px;
    }

    .bukids-series-resources {
        margin-top: 12px;
        padding: 0 12px 14px;
        border-radius: 6px;
    }

    .bukids-series-toolbar {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        justify-content: stretch;
    }

    .bukids-series-search {
        width: 100%;
        grid-template-columns: minmax(0, 1fr) auto;
    }

}

@media (max-width: 370px) {
    .bukids-card-grid {
        gap: 9px;
    }

    .bukids-card-content {
        padding-inline: 8px;
    }

    .bukids-filter-body {
        display: grid;
        grid-template-columns: 1fr;
    }

    .bukids-filter-actions {
        grid-column: auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    .bukids-card,
    .bukids-card-media img,
    .bukids-primary-button,
    .bukids-secondary-button{
        transition: none;
    }
}

/* bukids-catalog */
/* Deliberately scoped. Never override body, .wrapper, h1 or B2 article fonts. */
/* Native resource cards share the topic cards' quiet frame, not a new layout. */
.bk2-category .post-list .post-list-item > .item-in,
.bukids-series-native-resources .post-list .post-list-item > .item-in {
    box-sizing:border-box;
    border:1px solid var(--bk-line, #e6e9ef);
    border-radius:var(--bk-radius, 6px);
    background:#fff;
    box-shadow:none;
    min-width:0;
    padding:0;
}
.bk2-category .post-1.post-list ul.b2_gap,
.bukids-series-native-resources .post-1.post-list ul.b2_gap { row-gap:0; margin-right:-18px; }
.bk2-category .post-1.post-list .post-list-item > .item-in,
.bukids-series-native-resources .post-1.post-list .post-list-item > .item-in {
    margin-right:18px!important; margin-bottom:18px!important;
}
.bk2-category .post-list .post-module-thumb,
.bukids-series-native-resources .post-list .post-module-thumb { border-radius:5px 5px 0 0; background:#fff; }
.post-module-thumb.bk2-native-cover-error::after {
    content:'封面暂不可用'; position:absolute; inset:0; display:flex; align-items:center;
    justify-content:center; color:var(--bk-ui-muted, #667085); font-size:12px; pointer-events:none;
}
@media (max-width:768px) {
    .bk2-category .post-1.post-list ul.b2_gap,
    .bukids-series-native-resources .post-1.post-list ul.b2_gap { margin-right:-12px; }
    .bk2-category .post-1.post-list .post-list-item > .item-in,
    .bukids-series-native-resources .post-1.post-list .post-list-item > .item-in {
        margin-right:12px!important; margin-bottom:12px!important;
    }
}
.bk2-category .post-1.post-list .post-list-item,
.bukids-series-native-resources .post-1.post-list .post-list-item {
    display:flex;
    flex-direction:column;
    min-width:0;
}
.bk2-category .post-1.post-list .post-list-item > .item-in,
.bukids-series-native-resources .post-1.post-list .post-list-item > .item-in {
    /* B2 puts its gutters on item-in margins. 100% height consumes the bottom
       gutter; flex stretch includes margins in the row's available space. */
    height:auto;
    flex:1 1 auto;
}
.bk2-category .post-list .post-list-item > .item-in:has(:focus-visible),
.bukids-series-native-resources .post-list .post-list-item > .item-in:has(:focus-visible) {
    outline:2px solid var(--bk-ui-muted, #667085);
    outline-offset:2px;
}
@media (hover:hover) and (pointer:fine) {
    .bk2-category .post-list .post-list-item:hover > .item-in,
    .bukids-series-native-resources .post-list .post-list-item:hover > .item-in {
        border-color:var(--bk-line, #e6e9ef);
        background:#fcfcfd;
        box-shadow:none;
    }
}
/* Touch tablets may exceed mobile breakpoints: prevent input zoom and keep
   filter controls comfortably tappable without changing desktop typography. */
@media (pointer:coarse) and (min-width:769px) {
    body .bukids-library, body .bukids-series-layout, body .bk2-category { --bk-control-height:44px; }
    body .bukids-library input, body .bukids-library select,
    body .bukids-series-layout .bukids-series-controls input,
    body .bukids-series-layout .bukids-series-controls select,
    body .bk2-category .bk2-filter select, body .bk2-category .bk2-search-row input { font-size:16px; min-height:44px; }
}
.bukids-library, .bukids-series-layout, .bk2-category { --bk-control-height: 40px; --bk-section-gap: 20px; --bk-block-gap: 16px; }
.bukids-series-layout .bukids-subtitle-line { margin: 8px 0; color: #475467; font-size: 13px; line-height: 1.6; white-space: normal; overflow-wrap: anywhere; }
.bk2-mobile-filters { min-width: 0; }
.bk2-mobile-filters > summary, .bk2-mobile-filters > .bk2-mobile-apply { display: none; }
.bk2-filter-count { color: #667085; font-weight: 400; }
/* Shared controls and compact layouts for the library and topic detail only. */
.bukids-library input, .bukids-library select, .bukids-series-controls input, .bukids-series-controls select { box-shadow: none; border: 1px solid #d0d5dd; border-radius: var(--bk-ui-r-sm, 6px); font-family: inherit; font-size: 13px; height: 40px; min-width: 0; max-width: 100%; box-sizing: border-box; }
.bukids-library button, .bukids-series-controls button { font-family: inherit; font-size: 13px; border-radius: var(--bk-ui-r-sm, 6px); min-height: 40px; box-shadow: none; }
.bukids-library .bukids-search-field, .bukids-library .bukids-sort-field { border-radius: var(--bk-ui-r-sm, 6px); height: var(--bk-control-height); min-height: var(--bk-control-height); box-shadow: none; }
.bukids-library .bukids-search-field input, .bukids-library .bukids-sort-field select { height: 100%; min-height: 0; border: 0; background-color: transparent; box-shadow: none; }
.bukids-library .bukids-search-row > button, .bukids-library .bukids-filter-actions > button { height: var(--bk-control-height); min-height: var(--bk-control-height); }
.bukids-library .bukids-filter-actions > a { display: inline-flex; align-items: center; min-height: var(--bk-control-height); }
.bukids-library .bukids-search-field:focus-within, .bukids-library .bukids-sort-field:focus-within { outline: 2px solid #667085; outline-offset: 2px; }
.bukids-library select, .bukids-series-layout .bukids-series-controls select { appearance: none; padding-right: 30px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='m3 4.5 3 3 3-3' fill='none' stroke='%23667085' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-position: right 10px center; background-size: 12px 12px; background-repeat: no-repeat; }
.bukids-library .bukids-library-main { padding-top: 12px; }
.bukids-library .bukids-library-form { padding: 12px; margin-bottom: 10px; }
.bukids-library .bukids-results-toolbar { margin-top: 16px; margin-bottom: 14px; padding: 0; }
.bukids-series-layout { min-width: 0; padding-bottom: 20px; }
.bukids-series-layout .bukids-series-controls { padding: 16px; margin-bottom: 12px; }
.bukids-series-layout .bukids-series-hero { padding: 16px; }
.bukids-series-layout .bukids-series-hero-content { padding: 0; }
/* Keep the established desktop/portrait flex children unchanged. The wrappers
   become real layout groups only for the short touch-landscape composition. */
.bukids-series-layout .bukids-series-hero-copy,
.bukids-series-layout .bukids-series-hero-footer { display:contents; }
.bukids-series-layout .bk2-series-heading { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; min-width: 0; }
.bukids-series-layout .bk2-series-heading > h1,
.bukids-series-layout .bk2-series-heading > .bukids-series-kicker { flex: 0 1 auto; min-width: 0; }
.bukids-series-layout .bk2-series-heading > h1 { margin-top: 0; }
.bukids-series-layout .bk2-series-heading .bukids-series-kicker > span { display: block; }
.bukids-series-layout .bukids-series-actions > a, .bukids-series-layout .bukids-series-actions > button {
    display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box;
    height: var(--bk-control-height); min-height: var(--bk-control-height); margin: 0;
    padding-block: 0; font-size: 13px; line-height: 20px; border-radius: 6px;
}
@media (min-width: 1041px) {
    /* Keep ordinary landscape covers and the compact heading visually balanced. */
    .bukids-series-layout .bukids-series-hero:not(.bk2-textbook-hero) { grid-template-columns: minmax(0, 49%) minmax(0, 1fr); }
    /* Let both columns share a bottom edge without cropping or stretching art. */
    .bukids-series-layout .bukids-series-hero > .bukids-series-cover-wrap { align-self: end; }
    .bukids-series-layout .bukids-series-cover { object-position: center bottom; }
    .bukids-series-layout .bukids-series-hero-content { display: flex; flex-direction: column; align-self: stretch; }
    .bukids-series-layout .bukids-series-actions { margin-top: auto; padding-top: 18px; }
    /* Expanded copy grows independently from the cover's collapsed position. */
    .bukids-series-layout .bukids-series-hero[data-bk-intro-expanded="true"] > .bukids-series-cover-wrap { align-self: start; margin-top: var(--bk-intro-cover-offset, 0px); }
}
@media (min-width: 769px) and (max-width: 1024px) {
    /* At tablet / narrow-laptop widths the side-by-side columns become too
       short for a three-line introduction. Stack them instead of allowing
       the heading or actions to protrude above or below the cover. */
    .bukids-series-layout .bukids-series-hero { display: block; }
    .bukids-series-layout .bukids-series-cover-wrap { width: min(100%, 480px); max-width: 480px; margin: 0 auto 16px; align-self: auto; }
    .bukids-series-layout .bukids-series-hero-content { display: block; align-self: auto; }
    .bukids-series-layout .bukids-series-actions { margin-top: 15px; padding-top: 0; }
    .bukids-series-layout .bk2-textbook-hero .bukids-series-cover-wrap { width: min(100%, 220px); max-width: 220px; }
}
.bukids-series-layout .bukids-series-toolbar { margin: 0 0 10px; padding: 0; }
.bukids-series-layout .bukids-series-toolbar h2 { font-size: 16px; }
.bukids-series-layout .bukids-series-search { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin: 0; padding: 0; border: 0; }
.bukids-series-layout .bukids-series-search .bk2-search-row label { flex: 1; min-width: 0; }
.bukids-series-layout .bukids-series-search input { width: 100%; }
.bukids-series-layout .bukids-series-search .bk2-filter { min-width: 0; flex: 1 1 130px; }
.bukids-series-layout .bukids-series-search select { width: 100%; }
.bk2-reset-actions { display: flex; flex-wrap: wrap; gap: 10px 16px; font-size: 12px; }
.bk2-reset-actions:empty { display: none; }
/* 2.0.248: detail facets stay visible; category/library disclosures are separate.
   Retain the no-script submit; the existing head marker hides it with JS on. */
.bukids-series-layout .bk2-topic-filters { min-width: 0; }
.bukids-series-layout .bk2-topic-filters > .bk2-mobile-apply { display: inline-flex; margin-top: 10px; }
/* PHP's conditional links leave whitespace text nodes, so :empty is not enough. */
.bukids-series-layout .bk2-reset-actions:not(:has(a)) { display: none; }
.bk2-current-audio { margin: 8px 0; color: #475467; font-size: 13px; }
/* A single quiet information row; narrow screens wrap whole groups naturally. */
.bukids-series-layout .bukids-series-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; min-width: 0; margin-top: 12px; color: #667085; font-size: 13px; line-height: 1.65; }
.bukids-series-layout .bukids-series-meta > .bukids-series-facts { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; min-width: 0; max-width: 100%; margin: 0; padding: 0; list-style: none; }
.bukids-series-layout .bukids-series-meta .bukids-series-facts li { max-width: 100%; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: inherit; font-size: inherit; line-height: inherit; list-style: none; overflow-wrap: anywhere; }
.bukids-series-layout .bukids-series-meta > p { min-width: 0; max-width: 100%; margin: 0; padding: 0; color: inherit; font-size: inherit; line-height: inherit; overflow-wrap: anywhere; }
.bukids-series-layout .bukids-series-native-resources { scroll-margin-top: var(--bk-anchor-offset, 140px); min-width: 0; }
.bukids-series-layout .bukids-series-native-resources .post-list .item-in .post-info :is(h2, h3) { display: block; height: auto; max-height: none; overflow: visible; -webkit-line-clamp: unset; white-space: normal; overflow-wrap: anywhere; }
.bukids-series-native-resources .post-list-meta-box { display: none; }
.bk2-alphabet-wrap { display: flex; align-items: center; gap: 4px; margin-bottom: 14px; min-width: 0; }
.bk2-alphabet-wrap .bukids-alphabet { flex: 1; min-width: 0; margin: 0; scrollbar-width: none; }
.bk2-alphabet-wrap .bukids-alphabet::-webkit-scrollbar { display: none; }
.bk2-alphabet-wrap > button { display: inline-flex; align-items: center; justify-content: center; align-self: stretch; box-sizing: border-box; flex: 0 0 28px; height: auto; min-height: 40px; margin: 0; padding: 0; font-family: inherit; font-size: 20px; line-height: 1; border: 1px solid var(--bk-ui-line, #e6e9ef); background: #fff; color: #475467; border-radius: var(--bk-ui-r-sm, 6px); cursor: pointer; }
.bk2-alphabet-wrap > button[hidden] { display: none; }
.bk2-alphabet-wrap > button:disabled { opacity: .35; cursor: default; }
.bukids-series-layout :focus-visible, .bukids-library .bk2-alphabet-wrap :focus-visible { outline: 2px solid #667085; outline-offset: 3px; }
/* The jump target is a whole section, not a control. Keep its focus for keyboard
   navigation without drawing a frame around every resource after an anchor jump. */
.bukids-series-layout #bukids-series-resources:focus,
.bukids-series-layout .bk2-version-section:focus { outline: none; }
/* Language sections retain B2's native card grid, outside our typography box. */
.bukids-series-layout .bk2-version-section {
    min-width: 0; margin-top: 22px;
    scroll-margin-top: var(--bk-anchor-offset, 140px);
}
.bukids-series-layout .bk2-version-section + .bk2-version-section { margin-top: 32px; }
.bukids-series-layout .bk2-version-heading {
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px; min-width: 0; padding: 10px 0; border-top: 1px solid var(--bk-line, #e6e9ef);
}
.bukids-series-layout .bk2-version-heading > div { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; min-width: 0; }
.bukids-series-layout .bk2-version-heading h2 { margin: 0; font-size: 16px; line-height: 1.5; font-weight: 600; }
.bukids-series-layout .bk2-version-heading > div > span { color: var(--bk-ui-muted, #667085); font-size: 12px; line-height: 1.6; }
.bukids-series-layout .bk2-version-heading > a {
    display: inline-flex; align-items: center; justify-content: flex-end; gap: 4px;
    flex-shrink: 0; min-height: 40px; font-size: 13px; line-height: 1.5; color: var(--b2color, #fd4c4c);
}
.bukids-series-layout .bk2-version-empty { margin: 0; padding: 18px 14px; border: 1px solid var(--bk-line, #e6e9ef); border-radius: 6px; background: #fff; color: var(--bk-ui-muted, #667085); font-size: 13px; line-height: 1.7; }
@media (max-width: 768px) {
    .bukids-series-layout .bk2-version-section { margin-top: 16px; }
    .bukids-series-layout .bk2-version-section + .bk2-version-section { margin-top: 24px; }
    .bukids-series-layout .bk2-version-heading { padding-block: 6px; }
    .bukids-series-layout .bk2-version-heading > a { min-height: 44px; }
}
@media (min-width: 769px) and (max-width: 1024px) {
    .bukids-series-layout .bukids-series-native-resources .post-list ul.b2_gap > li { width: 33.333333%; }
}
@media (max-width: 768px) {
    .bukids-series-layout .bukids-series-native-resources .post-list ul.b2_gap > li { width: 50%; }
    .bukids-series-layout .bukids-series-search .bk2-filter { flex-basis: calc(50% - 16px); }
    .bukids-series-layout .bukids-series-hero { gap: 14px; padding: 14px; }
    .bukids-series-layout .bukids-series-cover-wrap { max-width: 360px; }
    .bukids-series-layout .bukids-series-description { margin-top: 10px; margin-bottom: 10px; }
}
@media (max-width: 359px) {
    /* B2 mobile.css uses !important for its two-column rule. */
    .bukids-series-layout .bukids-series-native-resources .post-list ul.b2_gap > li { width: 100% !important; }
}

/* Mixed library results keep one 16:9 canvas, while textbook-only category
   pages use their configured portrait ratio (for example 4:5). */
.bukids-library .bukids-card.bk2-textbook-card .bukids-card-media { aspect-ratio: 16 / 9; }
.bukids-card.bk2-textbook-card .bukids-card-media { background: #fff; }
.bk2-category .bukids-card.bk2-textbook-card .bukids-card-media { aspect-ratio: var(--bk-topic-cover-ratio, 4 / 5); }
@media (max-width: 768px) {
    .bk2-category .bukids-card.bk2-textbook-card .bukids-card-media { aspect-ratio: var(--bk-topic-cover-ratio-mobile, var(--bk-topic-cover-ratio, 4 / 5)); }
}
.bukids-card.bk2-textbook-card .bukids-card-media img { object-fit: contain; }
.bukids-card.bk2-textbook-card:hover .bukids-card-media img { transform: none; }

/* Channel covers mix landscape artwork and portrait posters. Keep both whole,
   without changing native resource cards or textbook proportions elsewhere. */
.bk2-category.bk2-channel-category .bukids-card .bukids-card-media {
    aspect-ratio: 16 / 9;
    background: #fff;
}
.bk2-category.bk2-channel-category .bukids-card .bukids-card-media img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    transform: none;
}
/* Keep a failed remote cover quiet and preserve its original canvas ratio. */
.bukids-card-placeholder.bk2-cover-unavailable {
    display: flex; align-items: center; justify-content: center;
    box-sizing: border-box; width: 100%; height: 100%; padding: 12px;
    font-size: 13px; font-weight: 400; line-height: 1.6; letter-spacing: normal;
    color: var(--bk-ui-muted, #667085); text-align: center; overflow-wrap: anywhere;
}
.bk2-textbook-native .post-list .post-module-thumb .post-thumb { object-fit: contain; }
.bk2-textbook-native .post-list .post-list-item:hover .post-thumb { transform: none; }
.bukids-series-layout .bk2-textbook-hero { grid-template-columns: minmax(0, 240px) minmax(0, 1fr); }
.bukids-series-layout .bk2-textbook-hero .bukids-series-cover-wrap { aspect-ratio: var(--bk-topic-cover-ratio, 2 / 3); }
@media (max-width: 768px) {
    .bukids-series-layout .bk2-textbook-hero .bukids-series-cover-wrap { width: min(100%, 220px); aspect-ratio: var(--bk-topic-cover-ratio-mobile, var(--bk-topic-cover-ratio, 2 / 3)); }
}
.bk2-category { min-width: 0; }
body.bukids-category-archive .site-header { margin-bottom: 0; }
body.bukids-category-archive #content { padding-top: 0; margin-top: 0; }
 .bk2-tabs{ display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin: 14px 0; }
 .bk2-tabs a{ border: 1px solid var(--bk-ui-line, #e6e9ef); border-radius: 5px; padding: 9px 13px; background: #fff; font-size: 13px; color: #475467; }
 .bk2-tabs a[aria-current]{ background: var(--bk-ui-subtle, #f5f6f8); border-color: #98a2b3; color: #101828; }
/* Ancestor labels must not push a deep channel breadcrumb outside a phone. */
.bk2-category .bukids-breadcrumbs { margin: 12px 0 0; padding: 10px 0; background: transparent; }
.bk2-category .bukids-breadcrumbs ol, .bukids-series-layout .bukids-breadcrumbs ol { flex-wrap: wrap; gap: 4px 8px; }
.bk2-category .bukids-breadcrumbs li, .bukids-series-layout .bukids-breadcrumbs li { min-width: 0; max-width: 100%; }
.bk2-category .bukids-breadcrumbs a, .bukids-series-layout .bukids-breadcrumbs a { overflow-wrap: anywhere; }
.bk2-category .bukids-breadcrumbs-current span, .bukids-series-layout .bukids-breadcrumbs-current span { white-space: normal; overflow: visible; overflow-wrap: anywhere; }
.bk2-category .bk2-tabs { margin: 0 0 16px; gap: 8px 24px; border-bottom: 1px solid var(--bk-ui-line, #e6e9ef); align-items: center; }
.bk2-category .bk2-tabs a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; box-sizing: border-box; line-height: 22px; white-space: nowrap; padding: 10px 0; margin-bottom: -1px; border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: transparent; font-size: 14px; color: #667085; }
.bk2-category .bk2-tabs a[aria-current] { border-bottom-color: var(--b2color, #fd4c4c); color: var(--bk-ui-ink, #1d2433); font-weight: 600; }
.bk2-category .bk2-tabs a:hover { color: var(--bk-ui-ink, #1d2433); }
.bk2-tabs span { margin-left: auto; color: #667085; font-size: 13px; line-height: 22px; white-space: nowrap; }
.bk2-search { display: flex; flex-wrap: wrap; gap: 14px 12px; padding: 18px; background: #fff; border: 1px solid var(--bk-ui-line, #e6e9ef); border-radius: 6px; align-items: flex-end; }
.bk2-search input, .bk2-search select { box-sizing: border-box; max-width: 100%; min-width: 0; width: 100%; height: var(--bk-control-height); padding: 8px 10px; border: 1px solid #d0d5dd; border-radius: var(--bk-ui-r-sm, 6px); font: inherit; font-size: 13px; background: #fff; }
.bk2-search-input { flex: 1 1 100%; }
.bk2-filter { display: grid; gap: 7px; min-width: 100px; flex: 1 1 130px; font-size: 12px; color: #475467; }
.bk2-search > a { padding: 10px 0; font-size: 13px; }
.bk2-category .bk2-search { display: grid; padding: 14px; gap: 12px; border: 1px solid #e6e9ef; background: #fff; border-radius: 6px; }
    .bk2-category .bk2-search:has(.bk2-filter-row > .bk2-filter:only-child > select[name="bk_order"]) { grid-template-columns: minmax(0, 1fr) auto; }
.bk2-search-row { display: flex; gap: 10px; align-items: center; }
.bk2-search-row .bk2-search-input { flex: 1; min-width: 0; }
.bk2-category .bk2-search input, .bk2-category .bk2-search select, .bk2-category .bk2-search-row button, .bk2-category .bk2-reset { box-sizing: border-box; height: var(--bk-control-height); min-height: var(--bk-control-height); margin: 0; border-radius: var(--bk-ui-r-sm, 6px); font-family: inherit; font-size: 13px; font-weight: 400; line-height: 20px; box-shadow: none; }
.bukids-series-layout .bk2-search-row button { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; height: var(--bk-control-height); min-height: var(--bk-control-height); margin: 0; line-height: 20px; }
.bk2-category .bk2-search-row button { flex-shrink: 0; padding: 9px 16px; border: 1px solid transparent; }
.bk2-category .bk2-reset { display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; padding: 9px 14px; border: 1px solid #d0d5dd; background: #fff; color: #475467; white-space: nowrap; text-decoration: none; }
.bk2-category .bk2-reset:hover { background: var(--bk-ui-subtle, #f5f6f8); border-color: #98a2b3; color: var(--bk-ui-ink, #1d2433); }
.bk2-filter-row { display: flex; flex-wrap: wrap; gap: 10px 16px; }
.bk2-filter-row:not(:has(.bk2-filter)) { display: none; }
.bk2-category .bk2-filter-row, .bukids-series-layout .bk2-filter-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: end; }
.bk2-category .bk2-filter { display: grid; min-width: 0; gap: 7px; }
.bk2-category .bk2-filter > span { white-space: nowrap; }
.bk2-category .bk2-filter select { -webkit-appearance: none; -moz-appearance: none; appearance: none; width: 100%; max-width: 100%; padding: 9px 32px 9px 10px; border: 1px solid #d0d5dd; color: #475467; cursor: pointer; background-color: #fff; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='m3 4.5 3 3 3-3' fill='none' stroke='%23667085' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-position: right 10px center; background-size: 12px 12px; background-repeat: no-repeat; }
.bk2-category .bk2-search input[type="search"] { -webkit-appearance: none; appearance: none; color: var(--bk-ui-ink, #1d2433); }
.bk2-category .bk2-search select:hover { border-color: #98a2b3; }
.bk2-category > .post-1.post-list,
.bk2-category > .bk2-textbook-native { margin-top: 14px; }
.bk2-auto-selects .bk2-mobile-apply,
.bukids-library-form.bk2-auto-selects .bukids-filter-actions button[type="submit"] { display: none !important; }
/* Before JS the nav owns the gap; after enhancement only the wrapper does. */
.bk2-category > .bukids-alphabet, .bk2-category > .bk2-alphabet-wrap { margin: 0 0 16px; }
.bk2-category > .bukids-series-page > .bukids-alphabet,
.bk2-category > .bukids-series-page > .bk2-alphabet-wrap { margin: 14px 0; }
.bk2-category .bukids-empty-state { min-height: 210px; padding: 36px 20px; }
.bk2-category .bukids-empty-state h2 { font-size: 18px; }
.bk2-category .bukids-empty-state .bukids-primary-button { margin-top: 16px; color: #fff; font-size: 13px; }
.bk2-empty-reset { display: block; margin-top: 12px; font-size: 12px; }
.bk2-category > .bukids-series-page :focus-visible { outline: 2px solid #667085; outline-offset: 3px; }
.bukids-series-page .bukids-series-description { display: block; overflow: visible; -webkit-line-clamp: unset; overflow-wrap: anywhere; }
/* With JavaScript disabled the same public introduction remains fully readable. */
.bukids-series-page .bukids-series-description[data-bk-collapsed="true"] { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.bukids-series-layout .bk2-intro-toggle { display: inline-flex; align-items: center; justify-content: flex-start; min-height: 40px; margin: 0; padding: 0; border: 0; border-radius: var(--bk-ui-r-sm, 6px); background: transparent; box-shadow: none; color: var(--b2color, #fd4c4c); font: inherit; font-size: 13px; line-height: 20px; cursor: pointer; }
.bukids-series-layout .bk2-intro-toggle:hover { text-decoration: underline; }
.bukids-series-layout .bk2-intro-toggle[hidden] { display: none; }
/* Reserve the toggle row while footer JS loads; never reveal the full paragraph
   or hide the whole hero just to conceal an initialization flash. */
.bukids-series-layout .bk2-intro-toggle[data-bk-intro-pending][hidden] { display:inline-flex; visibility:hidden; }
/* 2.0.249: touch targets must not shrink when a phone rotates past 768px.
   Keep hidden/pending toggle states intact, and avoid a desktop font change. */
@media (pointer:coarse) {
    body .bukids-series-layout .bk2-intro-toggle { min-height:44px; }
    body .bukids-series-layout .bk2-reset-actions a {
        display:inline-flex; align-items:center; min-height:44px; padding-inline:0;
    }
    body .bukids-series-layout .bukids-series-intro > .bukids-series-description { margin-bottom:0; }
    body .bukids-series-layout .bukids-series-intro:has(> .bk2-intro-toggle:not([hidden]), > .bk2-intro-toggle[data-bk-intro-pending]) + .bukids-series-meta,
    body .bukids-series-layout .bukids-series-hero-copy:has(:where(.bukids-series-intro > .bk2-intro-toggle:not([hidden]), .bukids-series-intro > .bk2-intro-toggle[data-bk-intro-pending])) + .bukids-series-hero-footer > .bukids-series-meta { margin-top:4px; }
}
@media (max-width: 600px) {
    .bk2-search { padding: 12px; gap: 12px 8px; } .bk2-filter { flex-basis: calc(50% - 8px); }
    .bk2-category .bk2-search, .bk2-category .bk2-search:has(.bk2-filter-row > .bk2-filter:only-child > select[name="bk_order"]) { padding: 10px; gap: 10px; grid-template-columns: minmax(0, 1fr); }
    .bk2-filter-row { gap: 8px; }
    .bk2-category .bk2-filter { flex: 1 1 calc(50% - 8px); display: grid; gap: 5px; }
    .bk2-category .bk2-filter select { width: 100%; max-width: none; }
    .bk2-category .bk2-filter:only-child { display: flex; flex: 0 1 auto; }
    .bk2-category .bk2-filter:only-child select { width: auto; min-width: 120px; }
    .bk2-category .bk2-tabs { gap: 22px; margin-bottom: 12px; }
    .bk2-category .bk2-tabs a { font-size: 13px; }
    .bk2-category .bk2-tabs span { font-size: 12px; }
}

/* 2.0.20: mobile-only usability; parent B2 still owns native card markup. */
@media (min-width: 769px) and (max-width: 1024px) {
    .bk2-category .bk2-filter-row, .bukids-series-layout .bk2-filter-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* The desktop floating rail has no outside gutter on narrow catalogue pages.
   Keep an explicitly opened account drawer and B2's mobile footer untouched. */
@media (min-width: 769px) and (max-width: 1279px) {
    body.bukids-collection-landing .aside-container:not(.aside-show) > .aside-bar,
    body.tax-collection .aside-container:not(.aside-show) > .aside-bar,
    body.bukids-category-archive .aside-container:not(.aside-show) > .aside-bar { display: none; }
}
@media (max-width: 768px) {
    .bukids-library, .bukids-series-layout, .bk2-category { --bk-control-height: 44px; }
    .bukids-library input[type="search"], .bukids-library select,
    .bk2-category .bk2-search input[type="search"], .bk2-category .bk2-search select,
    .bukids-series-layout .bukids-series-controls input[type="search"],
    .bukids-series-layout .bukids-series-controls select {
        font-size: 16px;
        height: 44px;
        min-height: 44px;
    }
    .bukids-library .bukids-search-field, .bukids-library .bukids-sort-field { min-height: 44px; }
    .bukids-library .bukids-search-field input, .bukids-library .bukids-sort-field select { height: 100%; min-height: 0; }
    .bukids-library .bukids-primary-button, .bukids-library .bukids-secondary-button,
    .bk2-category .bk2-search-row button, .bk2-category .bk2-reset,
    .bukids-series-layout .bukids-primary-button, .bukids-series-layout .bukids-secondary-button,
    .bukids-library .bukids-sort-field select { max-width: none; width: 100%; }
    .bukids-library .bukids-search-row { grid-template-columns: minmax(0, 1fr) auto; }
    .bukids-library .bukids-search-field { grid-column: 1 / -1; }
    .bukids-library .bukids-filter-body { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bukids-library .bukids-filter-actions { grid-column: 1 / -1; }
    .bukids-library .bukids-card-grid, .bk2-category .bukids-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bukids-library .bukids-results-toolbar h2 { font-size: 17px; }
    .bukids-library .bukids-results-toolbar p { line-height: 1.6; }
    .bk2-category .bk2-search,
    .bk2-category .bk2-search:has(.bk2-filter-row > .bk2-filter:only-child > select[name="bk_order"]) {
        grid-template-columns: minmax(0, 1fr);
        padding: 10px;
        gap: 6px;
    }
    .bk2-category .bk2-search-row, .bukids-series-layout .bk2-search-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 8px;
    }
    .bk2-category .bk2-search-row:has(.bk2-reset) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bk2-category .bk2-search-row:has(.bk2-reset) > label { grid-column: 1 / -1; }
    .bukids-series-layout .bk2-search-row > label { grid-column: auto; }
    .bk2-mobile-filters > summary {
        display: list-item;
        min-height: 44px;
        box-sizing: border-box;
        padding: 12px 0;
        font-size: 13px;
        line-height: 20px;
        cursor: pointer;
    }
    .bk2-mobile-filters .bk2-filter-row {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        padding: 2px 0 10px;
    }
    .bk2-mobile-filters .bk2-filter-row > .bk2-filter,
    .bk2-category .bk2-mobile-filters .bk2-filter:only-child { display: grid; min-width: 0; gap: 5px; }
    .bk2-category .bk2-mobile-filters select,
    .bk2-category .bk2-mobile-filters .bk2-filter:only-child select { width: 100%; max-width: 100%; min-width: 0; }
    .bk2-mobile-filters > .bk2-mobile-apply { display: flex; width: 100%; min-height: 44px; margin: 0 0 4px; }
    .bukids-library .bukids-filter-details > summary { display: list-item; min-height: 44px; box-sizing: border-box; padding: 10px 0; }
    .bukids-library .bukids-filter-details { margin-top: 8px; padding-top: 4px; }
    .bukids-library .bukids-filter-actions a, .bk2-reset-actions a {
        display: inline-flex; align-items: center; min-height: 44px; padding: 0 4px;
    }
    .bk2-reset-actions { gap: 0 12px; }
    .bk2-category .bk2-tabs { gap: 20px; }
    .bk2-category .bk2-tabs a { display: inline-flex; align-items: center; min-height: 44px; box-sizing: border-box; padding: 8px 0; }
    .bk2-category .bk2-tabs > span { line-height: 1.5; }
        .bk2-alphabet-wrap .bukids-alphabet { padding: 4px; overscroll-behavior-x: contain; }
    .bk2-alphabet-wrap > button { flex-basis: 44px; min-height: 44px; }
    .bukids-alphabet a { min-width: 44px; height: 44px; box-sizing: border-box; }
    .bukids-series-layout .bukids-series-cover-wrap { width: min(100%, 280px); margin-bottom: 12px; }
    .bukids-series-layout .bukids-series-hero { display: block; padding: 12px; }
    .bukids-series-layout .bukids-series-cover-wrap { margin-inline: auto; }
    .bukids-series-layout .bukids-series-controls { padding: 12px; }
    .bukids-series-layout .bukids-breadcrumbs,     .bukids-series-layout .bukids-series-description { line-height: 1.7; }
    .bukids-series-layout .bukids-series-meta { column-gap: 12px; font-size: 12px; }
    .bukids-series-layout .bukids-series-actions { gap: 8px; margin-top: 12px; }
    .bukids-series-layout .bukids-series-actions a { flex: 1 1 auto; min-width: 0; padding-inline: 12px; }
    .bukids-library .bukids-card-stats, .bk2-category .bukids-card-stats { font-size: 12px; line-height: 1.6; }
    /* Remove inherited paragraph/baseline space, not the touch target. */
    .bukids-series-layout .bukids-series-intro > .bukids-series-description { margin-bottom: 0; }
    .bukids-series-layout .bk2-intro-toggle { display: flex; width: fit-content; min-height: 44px; }
    .bukids-series-layout .bukids-series-intro:has(> .bk2-intro-toggle:not([hidden]), > .bk2-intro-toggle[data-bk-intro-pending]) + .bukids-series-meta,
    .bukids-series-layout .bukids-series-hero-copy:has(:where(.bukids-series-intro > .bk2-intro-toggle:not([hidden]), .bukids-series-intro > .bk2-intro-toggle[data-bk-intro-pending])) + .bukids-series-hero-footer > .bukids-series-meta { margin-top: 4px; }
    .bukids-series-layout .bukids-series-search { gap: 8px; }
    .bukids-series-layout .bk2-topic-filters .bk2-filter-row {
        display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 0;
    }
    .bukids-series-layout .bk2-topic-filters .bk2-filter-row > .bk2-filter { display: grid; min-width: 0; }
    .bukids-series-layout .bk2-topic-filters > .bk2-mobile-apply { width: 100%; min-height: 44px; }
    .bukids-series-layout .bk2-reset-actions a { padding-inline: 0; }
    /* Match B2's 8px mobile card margin; do not touch other native layouts. */
    .bukids-series-layout .bukids-series-native-resources .post-1.post-list ul.b2_gap,
    .bk2-category .post-1.post-list ul.b2_gap { margin-right: -12px; }
    .bk2-category .post-list .post-info h2 {
        display: block; height: auto; max-height: none; overflow: visible;
        -webkit-line-clamp: unset; white-space: normal; overflow-wrap: anywhere;
    }
}
@media (max-width: 359px) {
    .bukids-library .bukids-card-grid, .bk2-category .bukids-card-grid { grid-template-columns: minmax(0, 1fr); }
    .bk2-category .post-list ul.b2_gap > li { width: 100% !important; }
    .bukids-library .bukids-filter-body, .bk2-mobile-filters .bk2-filter-row { grid-template-columns: minmax(0, 1fr); }
    .bukids-series-layout .bk2-topic-filters .bk2-filter-row { grid-template-columns: minmax(0, 1fr); }
}

/* 2.0.232: B2's footer already reserves the fixed bottom bar's height on
   phones and tablets; these sections no longer add another 76–80px. */

/* Keep every child-theme filter select quiet on pointer hover. B2 and browser
   defaults can otherwise draw a dark outline around the native control. */
.bukids-library select:hover,
.bukids-series-layout select:hover,
.bk2-category select:hover {
    outline: 0 !important;
    box-shadow: none !important;
}
.bk2-category .bk2-search select:hover,
.bukids-library .bukids-filter-field select:hover,
.bukids-series-layout .bukids-series-controls select:hover {
    border-color: #d0d5dd !important;
}
.bukids-library .bukids-sort-field:hover {
    border-color: var(--bk-line, var(--bk-ui-line, #e6e9ef));
}

/* 2.0.253: match the search field's white surface and inset brand border. */
.bk2-category .bk2-search select:focus,
.bk2-category .bk2-search select:focus-visible,
.bukids-library .bukids-filter-field select:focus,
.bukids-library .bukids-filter-field select:focus-visible,
.bukids-series-layout .bukids-series-controls select:focus,
.bukids-series-layout .bukids-series-controls select:focus-visible {
    outline: 0 !important;
    border-color: var(--bk-ui-brand, var(--b2color, #fd4c4c)) !important;
    box-shadow: inset 0 0 0 1px var(--bk-ui-brand, var(--b2color, #fd4c4c)) !important;
    background-color: #fff !important;
}
.bukids-library .bukids-sort-field:focus-within {
    outline: 0 !important;
    border-color: var(--bk-ui-brand, var(--b2color, #fd4c4c));
    box-shadow: inset 0 0 0 1px var(--bk-ui-brand, var(--b2color, #fd4c4c));
    background-color: #fff;
}

/* Submission feedback without changing control widths, disabling form values
   or introducing animation. pageshow/cancel resets aria-busy in the script. */
.bukids-library-form[aria-busy="true"],
.bk2-search[aria-busy="true"],
.bukids-series-search[aria-busy="true"] { cursor: progress; }
.bukids-library-form[aria-busy="true"] button[type="submit"],
.bk2-search[aria-busy="true"] button[type="submit"],
.bukids-series-search[aria-busy="true"] button[type="submit"] {
    cursor: progress; opacity: .72;
}
.bukids-library .bukids-sort-field select:focus,
.bukids-library .bukids-sort-field select:focus-visible {
    outline: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* One label rhythm and control surface across category, detail and library. */
.bk2-category .bk2-filter,
.bukids-series-layout .bk2-filter,
.bukids-library .bukids-filter-field { gap: 6px; margin: 0; }
.bk2-category .bk2-filter > span,
.bukids-series-layout .bk2-filter > span,
.bukids-library .bukids-filter-field > span {
    min-height: 18px; margin: 0; line-height: 18px; font-size: 12px; font-weight: 400; color: #475467;
    white-space: normal; overflow-wrap: anywhere;
}
.bk2-category .bk2-filter select,
.bukids-series-layout .bk2-filter select,
.bukids-library .bukids-filter-field select {
    margin: 0; padding: 0 32px 0 10px; border-radius: var(--bk-ui-r-sm, 6px); background-color: #fff;
}
.bk2-category .bk2-search-row > button,
.bk2-category .bk2-search-row > .bk2-reset,
.bukids-series-layout .bk2-search-row > button { min-width: 72px; }
.bk2-category .bk2-tabs > span { align-self: center; }

/* Long labels may wrap, but selects in the same row keep a shared bottom edge.
   Align wrapped breadcrumb text to its first line rather than its centre. */
.bk2-category .bk2-filter-row,
.bukids-series-layout .bk2-filter-row,
.bukids-library .bukids-filter-body { align-items: end; }
.bk2-category .bukids-breadcrumbs ol,
.bukids-series-layout .bukids-breadcrumbs ol { align-items: baseline; }

/* Fill every desktop/tablet row, including the last wrapped row. */
@media (min-width: 769px) {
    .bk2-category .bk2-filter-row,
    .bukids-series-layout .bk2-filter-row {
        display: flex; flex-wrap: wrap;
        column-gap: 12px; row-gap: 12px;
    }
    .bk2-category .bk2-filter-row > .bk2-filter,
    .bukids-series-layout .bk2-filter-row > .bk2-filter { flex: 1 1 160px; min-width: 0; }
}

/* Separate modules without adding gaps under the site's main navigation. */
.bukids-series-layout > .bukids-series-native-resources { margin-top: var(--bk-section-gap); }
.bukids-series-layout .bukids-series-controls { margin-bottom: var(--bk-block-gap); }
.bukids-series-layout .bk2-version-section { margin-top: var(--bk-block-gap); }
.bk2-category > .post-1.post-list,
.bk2-category > .bk2-textbook-native { margin-top: var(--bk-block-gap); }
.bk2-category > .bukids-series-page > .bukids-alphabet,
.bk2-category > .bukids-series-page > .bk2-alphabet-wrap { margin-block: var(--bk-block-gap); }
.bk2-category > .bukids-series-page:has(> .bukids-empty-state) { margin-top: var(--bk-block-gap); }
.bukids-library .bukids-library-form { margin-bottom: var(--bk-block-gap); }
.bukids-library .bukids-results-toolbar { margin-top: var(--bk-section-gap); margin-bottom: var(--bk-block-gap); }
@media (max-width: 768px) {
    .bukids-library, .bukids-series-layout, .bk2-category { --bk-section-gap: 14px; --bk-block-gap: 12px; }
}
/* An odd final facet fills its mobile row instead of leaving an orphaned half. */
@media (min-width: 360px) and (max-width: 768px) {
    .bk2-category .bk2-filter-row > .bk2-filter:last-child:nth-child(odd),
    .bukids-series-layout .bk2-filter-row > .bk2-filter:last-child:nth-child(odd),
    .bukids-library .bukids-filter-body > .bukids-filter-field:nth-last-child(2):nth-child(odd) {
        grid-column: 1 / -1;
    }
}

/* 2.0.252: quiet, always-visible category/topic controls. Keep real selects,
   focus states and the site's search input; remove only the enclosing chrome.
   Two touch columns = (available width - 10px gap) / 2, with an odd final
   control spanning both. Desktop selects keep a useful reading width. */
body .bukids-series-layout .bukids-series-controls.bk2-flat-panel,
body .bk2-category .bukids-series-page > form.bk2-search.bk2-flat-controls,
body .bukids-series-layout form.bukids-series-search.bk2-flat-controls {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
body .bk2-flat-controls .bk2-inline-filters,
body .bk2-flat-controls .bk2-topic-filters { min-width: 0; }
body .bk2-flat-controls .bk2-filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    margin: 0;
    padding: 0;
}
body .bk2-flat-controls .bk2-filter-row > .bk2-filter {
    display: block;
    flex: 0 1 200px;
    min-width: 0;
    margin: 0;
}
body .bk2-flat-controls .bk2-filter-row > .bk2-filter select {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    height: 44px;
    min-height: 44px;
    cursor: pointer;
}
body .bk2-flat-controls .bk2-mobile-apply {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 10px 0 0;
    min-height: var(--bk-control-height);
}
@media (max-width: 768px) {
    body .bk2-category .bukids-series-page > form.bk2-flat-controls,
    body .bukids-series-layout form.bk2-flat-controls { gap: 10px; }
    body .bk2-flat-controls .bk2-filter-row {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    body .bk2-flat-controls .bk2-filter-row > .bk2-filter:last-child:nth-child(odd) { grid-column: 1 / -1; }
    body .bk2-flat-controls .bk2-mobile-apply { width: 100%; }
}
@media (max-width: 359px) {
    body .bk2-flat-controls .bk2-filter-row { grid-template-columns: minmax(0, 1fr); }
}
@media (pointer: coarse) {
    /* Large iPads can exceed the site's width-only search-font breakpoint. */
    body .bk2-category form.bk2-flat-controls .bk2-search-row input[type="search"],
    body .bukids-series-layout form.bk2-flat-controls .bk2-search-row input[type="search"] { font-size: 16px; }
}

/* 2.0.170: topic-page card titles are <h3>; same metrics B2 gives .post-info h2. */
.bukids-series-native-resources .post-info h3 {
    margin: 12px;
    color: #222;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
}
.bukids-series-native-resources .post-info h3 a { color: inherit; }

/* 2.0.174: textbook topic = a bookshelf. Smaller, even grid; level name
   centred under each cover; no "下载 1个资源" badge (every book has one). */
.bk-shelf-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 32px 0 16px; }
.bk-shelf-head h2 { margin: 0; color: #1d2433; font-size: 18px; font-weight: 600; line-height: 1.4; }
.bk-shelf-head span { color: #667085; font-size: 13px; }
.bukids-series-native-resources .bk2-textbook-native .b2_gap {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 20px;
    margin: 0 !important;
    padding: 0 !important;
}
.bukids-series-native-resources .bk2-textbook-native .b2_gap > li { flex: none !important; width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
.bukids-series-native-resources .bk2-textbook-native .item-in { overflow: hidden; background: #fff; border: 1px solid #e6e9ef; border-radius: var(--bk-ui-r-md, 8px); transition: border-color .15s ease; }
.bukids-series-native-resources .bk2-textbook-native .item-in:hover { border-color: var(--b2color, #fd4c4c); }
.bukids-series-native-resources .bk2-textbook-native .post-module-thumb { background: #fff; }
.bukids-series-native-resources .bk2-textbook-native .post-pay-type,
.bukids-series-native-resources .bk2-textbook-native .post-list-meta-box { display: none !important; }
.bukids-series-native-resources .bk2-textbook-native .item-in { display: flex; flex-direction: column; height: 100%; }
.bukids-series-native-resources .bk2-textbook-native .post-info { display: flex; flex: 1 1 auto; flex-direction: column; justify-content: center; padding: 12px 10px 14px; border-top: 1px solid var(--bk-ui-line-soft, #f0f2f5); }
body #content .bukids-series-native-resources .bk2-textbook-native .post-info h3 {
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
    margin: 0; padding: 0; font-size: 15px; font-weight: 600; line-height: 1.4; text-align: center;
}
/* Level under the book; CEFR band as a quiet second line (2.0.175). */
.bukids-series-native-resources .bk2-textbook-native .bk-book-cefr { margin: 4px 0 0; color: #667085; font-size: 12px; line-height: 1.4; text-align: center; font-variant-numeric: tabular-nums; }
.bukids-series-native-resources .bk2-textbook-native .post-info h3 a { color: #1d2433; }
.bukids-series-native-resources .bk2-textbook-native .item-in:hover .post-info h3 a { color: var(--b2color, #fd4c4c); }
@media (max-width: 1180px) { .bukids-series-native-resources .bk2-textbook-native .b2_gap { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 768px) {
    .bukids-series-native-resources .bk2-textbook-native .b2_gap { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
    .bk-shelf-head { margin: 22px 0 12px; }
    .bk-shelf-head h2 { font-size: 16px; }
}
@media (max-width: 480px) { .bukids-series-native-resources .bk2-textbook-native .b2_gap { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* 2.0.175: textbook publisher as a small tag above the series title. */
.bukids-series-hero .bk-pub-tag {
    display: block; align-self: flex-start; max-width: 100%; margin: 0 0 10px; padding: 0;
    color: #667085; font-size: 13px; font-weight: 400; line-height: 1.6; overflow-wrap: anywhere;
    background: transparent; border: 0; border-radius: 0;
}
@media (max-width: 768px) { .bukids-series-hero .bk-pub-tag { margin-bottom: 8px; } }

/* 2.0.176: textbook hero, flat and aligned on every width.
   ≥601px: cover frame (fixed 4:5) left, text right; the frame's top and bottom
   line up with the publisher tag and the action buttons; artwork is centred
   in the frame (was pinned to the bottom, leaving a band above landscape
   scans). ≤600px: stacked, cover at its own proportions, centred. */
.bukids-series-layout .bk2-textbook-hero {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 24px;
    align-items: stretch;
}
.bukids-series-layout .bk2-textbook-hero .bukids-series-cover-wrap {
    width: 100%;
    max-width: none;
    /* Stretch to the text column so both columns share top and bottom edges;
       never shorter than a 4:5 book at this width. */
    min-height: 275px;
    margin: 0;
    align-self: stretch;
    aspect-ratio: auto;
    overflow: hidden;
    background: #fff;
    border: 1px solid #e6e9ef;
    border-radius: 8px;
}
.bukids-series-layout .bk2-textbook-hero .bukids-series-cover {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    border-radius: 0;
}
.bukids-series-layout .bk2-textbook-hero .bukids-series-hero-content {
    display: flex;
    flex-direction: column;
    align-self: stretch;
    min-width: 0;
}
.bukids-series-layout .bk2-textbook-hero .bukids-series-actions { margin-top: auto; padding-top: 18px; }
.bukids-series-native-resources .bk2-textbook-native .post-module-thumb .post-thumb { object-position: center; }
@media (max-width: 1024px) {
    .bukids-series-layout .bk2-textbook-hero { grid-template-columns: 180px minmax(0, 1fr); gap: 20px; }
    .bukids-series-layout .bk2-textbook-hero .bukids-series-cover-wrap { min-height: 225px; }
}
@media (max-width: 600px) {
    .bukids-series-layout .bk2-textbook-hero { grid-template-columns: minmax(0, 1fr); gap: 16px; }
    .bukids-series-layout .bk2-textbook-hero .bukids-series-cover-wrap { justify-self: center; align-self: start; width: min(56%, 200px); min-height: 0; }
    .bukids-series-layout .bk2-textbook-hero .bukids-series-cover { height: auto; }
    .bukids-series-layout .bk2-textbook-hero .bukids-series-actions { padding-top: 12px; }
}
/* The landscape-art "expanded intro" offset does not apply to book covers. */
.bukids-series-layout .bk2-textbook-hero[data-bk-intro-expanded="true"] > .bukids-series-cover-wrap { margin-top: 0; }

/* 2.0.250: balance artwork with the title/intro, then give metadata/actions
   a shared footer. Do not leave a tiny cover beside one tall control column.
   Whole images stay top-aligned while expanded copy grows independently. */
@media (pointer:coarse) and (orientation:landscape) and (max-height:500px) and (min-width:480px) {
    .bukids-series-layout .bukids-series-hero:not(.bk2-textbook-hero) {
        display:grid; grid-template-columns:minmax(0, min(38%, 300px)) minmax(0, 1fr);
        align-items:start; gap:8px 16px; padding:12px;
    }
    .bukids-series-layout .bukids-series-hero:not(.bk2-textbook-hero) > .bukids-series-cover-wrap {
        grid-column:1; grid-row:1; width:100%; max-width:none; align-self:start; margin:0;
    }
    .bukids-series-layout .bukids-series-hero:not(.bk2-textbook-hero) .bukids-series-cover { object-fit:contain; object-position:center; }
    .bukids-series-layout .bukids-series-hero:not(.bk2-textbook-hero) .bukids-series-hero-content { display:contents; }
    .bukids-series-layout .bukids-series-hero:not(.bk2-textbook-hero) .bukids-series-hero-copy { display:block; grid-column:2; grid-row:1; min-width:0; }
    .bukids-series-layout .bukids-series-hero:not(.bk2-textbook-hero) .bukids-series-hero-footer {
        display:flex; grid-column:1 / -1; grid-row:2; flex-wrap:wrap;
        align-items:center; justify-content:space-between; gap:8px 16px; min-width:0;
    }
    body .bukids-series-layout .bukids-series-hero:not(.bk2-textbook-hero) .bukids-series-meta { flex:1 1 280px; margin:0; }
    .bukids-series-layout .bukids-series-hero:not(.bk2-textbook-hero) .bukids-series-actions { flex:0 0 auto; flex-direction:row; flex-wrap:wrap; max-width:100%; gap:8px; margin:0; padding:0; }
    .bukids-series-layout .bukids-series-hero:not(.bk2-textbook-hero) .bukids-series-actions > a { flex:0 1 auto; width:auto; min-height:44px; padding-inline:16px; }
}
/* An empty information row (no age / CEFR tags) must not leave a gap. */
.bukids-series-layout .bukids-series-meta:not(:has(*)) { display: none; }

/* 2.0.177: series cards — "Season 1" over "第1季 · 全6集". */
.bukids-series-native-resources .post-info .bk-card-main { color: #1d2433; font-size: 15px; font-weight: 600; line-height: 1.4; }
.bukids-series-native-resources .post-info .bk-card-sub {
    margin: -8px 12px 12px;
    overflow: hidden;
    color: #667085;
    font-size: 12px;
    line-height: 1.5;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.bukids-series-native-resources .item-in:hover .post-info .bk-card-main { color: var(--b2color, #fd4c4c); }

/* 2.0.178: a work inside a list ("方块数字乐园 · 2 季", "Bebefinn Compilation · 3 辑"). */
.bukids-series-native-resources .bk-sub-series {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 10px;
    margin: 24px 0 12px;
}
.bukids-series-native-resources .bk-sub-series-name { color: #1d2433; font-size: 15px; font-weight: 600; line-height: 1.4; }
.bukids-series-native-resources .bk-sub-series-count { color: #667085; font-size: 12px; }
@media (max-width: 768px) { .bukids-series-native-resources .bk-sub-series { margin: 18px 0 10px; } }

/* 2.0.183: topic card grid (资源合辑 and category topic lists), by device.
   ≥1025px desktop / landscape tablet: 4 · 600–1024px portrait tablet: 3 ·
   360–599px phone: 2 · <360px: 1. Same edges as the filters above. */
.bukids-library .bukids-card-grid, .bk2-category .bukids-card-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
@media (max-width: 1024px) {
    /* 2.0.272: 18px like the resource cards of the same page (was 16px:
       columns 2 and 3 moved 1–2px when switching 专题 ⇄ 资源). */
    .bukids-library .bukids-card-grid, .bk2-category .bukids-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
}
@media (max-width: 599px) {
    .bukids-library .bukids-card-grid, .bk2-category .bukids-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
}
@media (max-width: 359px) {
    .bukids-library .bukids-card-grid, .bk2-category .bukids-card-grid { grid-template-columns: minmax(0, 1fr); }
}

/* 2.0.189: resource cards on topic pages and on category "资源列表" use the
   same columns as the topic grids (2.0.183). B2's mobile.css forces every
   b2_gap list to 50% with !important up to 1180px, which left tablets (and
   1025–1180px) on 2 columns. Textbook shelves keep their own grid. */
@media (min-width: 1025px) and (max-width: 1180px) {
    .bukids-series-native-resources .post-1.post-list ul.b2_gap > li,
    .bk2-category .post-1.post-list ul.b2_gap > li { width: 25% !important; }
}
@media (min-width: 600px) and (max-width: 1024px) {
    .bukids-series-native-resources .post-1.post-list ul.b2_gap > li,
    .bk2-category .post-1.post-list ul.b2_gap > li { width: 33.333333% !important; }
}
@media (min-width: 360px) and (max-width: 599px) {
    .bukids-series-native-resources .post-1.post-list ul.b2_gap > li,
    .bk2-category .post-1.post-list ul.b2_gap > li { width: 50% !important; }
}
.bukids-series-native-resources .bk2-textbook-native .post-1.post-list ul.b2_gap > li { width: auto !important; }
/* 2.0.263/2.0.264: small bilingual sets (1–2 resources per version). Cards
   are always the site's standard card size:
   - computers: 英文版 | 中文版 side by side, two cards each = the 4-column grid
     (271.5px cards, 18px gaps);
   - tablets (600–1180): the versions stack, each in the standard 3-column
     grid (side by side would make the cards larger or smaller than elsewhere);
   - phones 360–599: side by side, one card each = the standard 2-column grid;
   - phones under 360: stacked, one card per row, like every other topic. */
@media (min-width: 1181px) {
    .bukids-series-layout .bukids-series-native-resources.bk2-compact-versions {
        --bk-cv-gap: 18px; --bk-cv-cols: 2;
        display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: var(--bk-cv-gap); row-gap: 0; align-items: start; margin-top: 20px;
    }
    .bukids-series-layout .bk2-compact-versions > .bk2-version-section { margin-top: 0; min-width: 0; }
    .bukids-series-layout .bk2-compact-versions .bk2-version-heading { margin: 0 0 12px; min-height: 45px; box-sizing: border-box; }
    .bukids-series-layout .bk2-compact-versions .post-1.post-list ul.b2_gap {
        display: grid; grid-template-columns: repeat(var(--bk-cv-cols), minmax(0, 1fr)); gap: var(--bk-cv-gap); margin: 0; width: 100%;
    }
    .bukids-series-layout .bk2-compact-versions .post-1.post-list ul.b2_gap > li { width: 100% !important; margin: 0; padding: 0; }
    .bukids-series-layout .bk2-compact-versions .post-1.post-list .post-list-item > .item-in { margin: 0 !important; width: 100%; box-sizing: border-box; }
}
/* 2.0.291: phones put the versions side by side only for one resource each
   (7 Bears). When a version has two (Addison 2 + 1, Adventure Time: Side
   Quests), phones stack them like Pinky Malinky: 英文版 row, then 中文版 row,
   in the standard 2-column grid. Computers keep both side by side. */
@media (min-width: 360px) and (max-width: 599px) {
    .bukids-series-layout .bukids-series-native-resources.bk2-compact-versions:not(.bk2-compact-multi) {
        --bk-cv-gap: 18px; --bk-cv-cols: 2;
        display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: var(--bk-cv-gap); row-gap: 0; align-items: start; margin-top: 20px;
    }
    .bukids-series-layout .bk2-compact-versions:not(.bk2-compact-multi) > .bk2-version-section { margin-top: 0; min-width: 0; }
    .bukids-series-layout .bk2-compact-versions:not(.bk2-compact-multi) .bk2-version-heading { margin: 0 0 12px; min-height: 45px; box-sizing: border-box; }
    .bukids-series-layout .bk2-compact-versions:not(.bk2-compact-multi) .post-1.post-list ul.b2_gap {
        display: grid; grid-template-columns: repeat(var(--bk-cv-cols), minmax(0, 1fr)); gap: var(--bk-cv-gap); margin: 0; width: 100%;
    }
    .bukids-series-layout .bk2-compact-versions:not(.bk2-compact-multi) .post-1.post-list ul.b2_gap > li { width: 100% !important; margin: 0; padding: 0; }
    .bukids-series-layout .bk2-compact-versions:not(.bk2-compact-multi) .post-1.post-list .post-list-item > .item-in { margin: 0 !important; width: 100%; box-sizing: border-box; }
}
@media (min-width: 360px) and (max-width: 599px) {
    .bukids-series-layout .bukids-series-native-resources.bk2-compact-versions:not(.bk2-compact-multi) { --bk-cv-gap: 12px; --bk-cv-cols: 1; margin-top: 16px; }
    .bukids-series-layout .bk2-compact-versions:not(.bk2-compact-multi) .bk2-version-heading { min-height: 52px; margin-bottom: 10px; padding: 6px 0; }
    .bukids-series-layout .bk2-compact-versions:not(.bk2-compact-multi) .bk2-version-heading > div { flex-direction: column; align-items: flex-start; gap: 2px; }
    .bukids-series-layout .bk2-compact-versions:not(.bk2-compact-multi) .bk2-version-heading h2 { font-size: 14px; line-height: 20px; }
    .bukids-series-layout .bk2-compact-versions:not(.bk2-compact-multi) .bk2-version-heading span { font-size: 12px; line-height: 18px; }
    .bukids-series-layout .bk2-compact-versions:not(.bk2-compact-multi) .post-list .post-info { padding: 10px; }
}

/* 2.0.254: roomy touch tablets show equal action buttons alongside one another.
   Keep the existing phone-short-landscape layout and other topics untouched. */
@media (any-pointer: coarse) and (min-width: 768px) and (max-width: 1366px) and (min-height: 600px) {
    .bukids-series-layout:has(.bk2-compact-versions) .bukids-series-actions {
        display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px;
    }
    .bukids-series-layout:has(.bk2-compact-versions) .bukids-series-actions > a {
        display: inline-flex; align-items: center; justify-content: center;
        width: 100%; min-width: 0; min-height: 44px; height: auto; box-sizing: border-box;
        margin: 0; padding: 10px 12px; line-height: 22px;
    }
}

/* Desktop-only enhancement; native selects remain available without JS and
   on touch devices. Popup is positioned inside the existing filter column. */
body .bk2-flat-controls .bk2-select { position: relative; }
body .bk2-flat-controls .bk2-select-native { display: none !important; }
body .bk2-flat-controls .bk2-select-button {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    width: 100%; min-width: 0; height: 44px; min-height: 44px; margin: 0; padding: 0 12px;
    box-sizing: border-box; border: 1px solid var(--bk-ui-line-strong, #d0d5dd); border-radius: var(--bk-ui-r-sm, 6px);
    background: #fff; color: var(--bk-ui-ink, #1d2433); font: inherit; font-size: 14px;
    font-weight: 400; line-height: 1.4; text-align: left; cursor: pointer; box-shadow: none;
}
.bk2-select-button > span:first-child { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.bk2-select-arrow { flex: 0 0 7px; width: 7px; height: 7px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: translateY(-2px) rotate(45deg); }
body .bk2-flat-controls .bk2-select-button:hover { border-color: var(--bk-ui-faint, #98a2b3); background: #fff; color: var(--bk-ui-ink, #1d2433); }
body .bk2-flat-controls .bk2-select-button:focus-visible,
body .bk2-flat-controls .bk2-select-button[aria-expanded="true"] {
    outline: 0; border-color: var(--bk-ui-brand, var(--b2color, #fd4c4c));
    box-shadow: inset 0 0 0 1px var(--bk-ui-brand, var(--b2color, #fd4c4c));
}
body .bk2-flat-controls .bk2-select-button:disabled { opacity: .55; cursor: not-allowed; }
body .bk2-flat-controls .bk2-select-button[hidden] { display: none !important; }
body .bk2-flat-controls .bk2-select-menu {
    position: absolute; left: 0; top: calc(100% + 6px); z-index: 30;
    width: 100%; min-width: 0; max-height: 280px; margin: 0; padding: 4px; box-sizing: border-box;
    overflow-y: auto; overscroll-behavior: contain; border: 1px solid var(--bk-ui-line-strong, #d0d5dd); border-radius: var(--bk-ui-r-sm, 6px);
    background: #fff; color: var(--bk-ui-ink, #1d2433); box-shadow: 0 4px 14px rgba(24,32,51,.09);
}
body .bk2-flat-controls .bk2-select-menu[hidden] { display: none !important; }
body .bk2-flat-controls .bk2-select-menu[data-up] { top: auto; bottom: calc(100% + 6px); }
body .bk2-flat-controls .bk2-select-option {
    display: flex; align-items: center; justify-content: space-between; gap: 8px;
    min-height: 40px; margin: 0; padding: 8px; box-sizing: border-box;
    font: inherit; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; cursor: pointer;
}
.bk2-select-option[aria-selected="true"] { background: var(--bk-ui-brand-soft, #fff1f1); }
.bk2-select-option[aria-selected="true"]::after {
    content: ''; flex: 0 0 5px; width: 5px; height: 9px; margin-right: 3px;
    border: solid var(--bk-ui-brand, var(--b2color, #fd4c4c)); border-width: 0 1.5px 1.5px 0; transform: rotate(45deg);
}
.bk2-select-option:not([aria-selected="true"]):hover,
.bk2-select-option:not([aria-selected="true"])[data-active] { background: var(--bk-ui-subtle, #f5f6f8); }
.bk2-select-option[data-active] { box-shadow: inset 2px 0 var(--bk-ui-brand, var(--b2color, #fd4c4c)); }
.bk2-select-option[aria-disabled="true"] { opacity: .5; cursor: not-allowed; }
@media (min-width: 1181px) {
    /* A lone category filter sits alongside search instead of consuming a row. */
    body .bk2-category form.bk2-flat-controls:has(.bk2-filter-row > .bk2-filter:only-child) {
        display: grid; grid-template-columns: minmax(0, 1fr) 200px; align-items: start; column-gap: 12px;
    }
    body .bk2-category form.bk2-flat-controls:has(.bk2-filter-row > .bk2-filter:only-child) > .bk2-search-row { margin: 0; }
    body .bk2-category form.bk2-flat-controls:has(.bk2-filter-row > .bk2-filter:only-child) > .bk2-inline-filters { margin: 0; }
    body .bk2-category form.bk2-flat-controls:has(.bk2-filter-row > .bk2-filter:only-child) > .bk2-reset-actions { grid-column: 1 / -1; }
}
/* The card lists pull 12–18px past the right edge to absorb their gutters;
   on phones and tablets that made the page a few pixels wider than the
   screen (it could be nudged sideways). Clip it without a scroll box. */
.bukids-series-native-resources,
.bk2-category .post-list { overflow-x: clip; }

/* 2.0.230: with scripts on (html.bk-js, set in <head>), show the scripted state
   from the first paint: selects apply on change, so no "应用筛选" button, and
   phone filters start folded (catalog.js opens them when a filter is active). */
.bk-js form:has(:is(.bk2-filter, .bukids-filter-field, .bukids-sort-field) select) :is(.bk2-mobile-apply, .bukids-filter-actions button[type="submit"]) { display: none !important; }
@media (max-width: 768px) {
    .bk-js .bk2-mobile-filters:not(.bk-ready) > :not(summary),
    .bk-js .bukids-filter-details:not(.bk-ready):not([data-active-filters="true"]) > :not(summary) { display: none !important; }
}

/* 2.0.236 search: recognised conditions and note */
.bk2-search-intent { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:10px; }
.bk2-search-intent-name { font-size:14px; font-weight:500; color:var(--bk-ui-ink, #1d2433); margin-right:2px; }
.bk2-search-chip { display:inline-flex; align-items:center; gap:6px; height:28px; padding:0 10px; border:1px solid var(--bk-ui-line-strong, #d0d5dd); border-radius:var(--bk-ui-r-sm, 6px); background:#fff; color:var(--bk-ui-text, #475467); font-size:13px; line-height:1; text-decoration:none; transition:border-color .15s, color .15s; }
.bk2-search-chip > span[aria-hidden] { font-size:15px; color:var(--bk-ui-faint, #98a2b3); }
.bk2-search-chip:hover { border-color:var(--bk-ui-brand, #fd4c4c); color:var(--bk-ui-brand, #fd4c4c); }
.bk2-search-chip:hover > span[aria-hidden] { color:inherit; }
.bk2-search-note { margin:10px 0 0; font-size:13px; line-height:1.6; color:var(--bk-ui-muted, #667085); }
@media (max-width:768px) {
    .bk2-search-intent { gap:6px; }
    }

/* 2.0.255: detail toolbar B — versions left, meaningful sorting right.
   Same 44px target and shared outer edges; no extra panel or filled tabs. */
body .bukids-series-layout .bk2-version-controls .bk2-filter-row {
    display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px;
}
body .bukids-series-layout .bk2-version-controls .bk2-version-tabs {
    display: flex; flex: 0 1 auto; flex-wrap: wrap; align-items: center;
    gap: 4px 8px; min-width: 0; max-width: 100%; margin: 0; padding: 0; order: -1;
}
body .bukids-series-layout .bk2-version-tabs > a {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 44px; box-sizing: border-box; margin: 0; padding: 9px 12px;
    border: 0; border-bottom: 2px solid transparent; border-radius: 0;
    background: transparent; color: var(--bk-ui-ink, #1d2433);
    font: inherit; font-size: 14px; font-weight: 400; line-height: 24px;
    text-decoration: none; white-space: nowrap; box-shadow: none;
}
/* 2.0.257: the site's own red for the current tab; hover changes text only. */
body .bukids-series-layout .bk2-version-tabs > a[aria-current="page"] {
    color: var(--bk-ui-brand, var(--b2color, #fd4c4c));
    border-bottom-color: var(--bk-ui-brand, var(--b2color, #fd4c4c));
}
body .bukids-series-layout .bk2-version-tabs > a:hover { background: transparent; color: var(--bk-ui-brand, var(--b2color, #fd4c4c)); }
body .bukids-series-layout .bk2-version-tabs > a:focus-visible {
    outline: 2px solid var(--bk-ui-brand, var(--b2color, #fd4c4c)); outline-offset: -2px;
}
@media (max-width: 599px) {
    body .bukids-series-layout .bk2-version-controls .bk2-filter-row { gap: 8px 12px; }
    body .bukids-series-layout .bk2-version-controls .bk2-version-tabs { flex-basis: 100%; }
    body .bukids-series-layout .bk2-version-controls .bk2-filter-row > .bk2-filter { flex: 1 1 calc(50% - 6px); }
    body .bukids-series-layout .bk2-version-tabs > a { padding-inline: 10px; }
}
@media (max-width: 359px) {
    body .bukids-series-layout .bk2-version-controls .bk2-filter-row > .bk2-filter { flex-basis: 100%; }
}
/* 2.0.256: without sorting, the library search has two columns on every device.
   No leftover grid track, full-width input row or orphan submit button. */
body .bukids-library .bukids-search-row { grid-template-columns: minmax(0, 1fr) auto; }
body .bukids-library .bukids-search-field { grid-column: auto; }
/* 2.0.298: the 2×2 tablet layout for four resources is gone — its cards were
   half again as large as the next version's (Twirlywoos: 英文版 399px beside
   中文版 266px). Every version uses the standard 3-column tablet grid. */
@media (any-pointer: coarse) and (min-width: 600px) and (max-width: 1366px) and (min-height: 600px) {
    .bukids-series-layout .bukids-series-actions {
        display: flex; flex-direction: row; flex-wrap: wrap; gap: 12px;
    }
    .bukids-series-layout .bukids-series-actions > a {
        display: inline-flex; align-items: center; justify-content: center;
        flex: 0 1 auto; width: auto; min-width: 112px; min-height: 44px;
        box-sizing: border-box; margin: 0; padding: 10px 16px; line-height: 22px;
    }
}


/* 2.0.257: the facts line under the names uses the same grey as the English
   name above it (was the parent's #666 beside the site's #667085). */
body .bukids-card .bukids-card-stats,
body .bukids-card .bukids-card-stats > span { color: var(--bk-ui-muted, #667085); }

/* 2.0.301: film topics list their resources with the search page's card
   (.bukids-card, inc/catalog.php bukids_catalog_film_cards). Same columns as
   the other topic cards: 4 / 3 (600–1024) / 2 (phones) / 1 (<360); small
   bilingual films keep 英文版 | 中文版 side by side as before. */
.bukids-series-native-resources .bk2-film-cards { margin: 0 0 18px; }
@media (min-width: 600px) and (max-width: 1024px) {
    .bukids-series-native-resources .bk2-film-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
}
@media (max-width: 599px) {
    .bukids-series-native-resources .bk2-film-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 12px; }
}
@media (max-width: 359px) {
    .bukids-series-native-resources .bk2-film-cards { grid-template-columns: minmax(0, 1fr); }
}
@media (min-width: 1181px) {
    .bukids-series-layout .bk2-compact-versions .bk2-film-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
}
@media (min-width: 360px) and (max-width: 599px) {
    .bukids-series-layout .bk2-compact-versions:not(.bk2-compact-multi) .bk2-film-cards { grid-template-columns: minmax(0, 1fr); }
}
/* The letter placeholder only shows when there is no cover (2.0.302: it was
   drawn over every film cover, because [hidden] lost to display:flex). */
.bukids-series-native-resources .bk2-film-cards .bukids-card-placeholder[hidden],
.bukids-series-native-resources .bk2-film-cards .bukids-card-media img[hidden] { display: none !important; }
/* 2.0.305: "你是不是要找" links on a fuzzy search. */
.bk2-search-fuzzy a { color: var(--b2color, #fd4c4c); font-weight: 600; text-decoration: none; }
.bk2-search-fuzzy a:hover { text-decoration: underline; }
/* 2.0.330: computers (≥1181px) too: resource lists use the 4-column topic
   grid (B2's per-category list setting gave some categories 3 columns). */
@media (min-width: 1181px) {
    .bukids-series-native-resources .post-1.post-list ul.b2_gap > li,
    .bk2-category .post-1.post-list ul.b2_gap > li { width: 25% !important; }
}
/* 2.0.339: computers — the title, intro and buttons beside the cover sit
   together as one block, centred top-to-bottom against the cover (buttons
   were pinned to the bottom edge, leaving a gap under the intro). */
@media (min-width: 1041px) {
    .bukids-series-layout .bukids-series-hero .bukids-series-hero-content { justify-content: center; }
    .bukids-series-layout .bukids-series-hero .bukids-series-actions { margin-top: 0; padding-top: 20px; }
}

