/* ---------------------------------------------------------------------------
   NeucitePress — dynamic catalogue + hybrid book page
   Design system accepted 2026-08-10 (claude/NeucitePress_Book_and_Chapter_
   Page_Mockup.html): neutral off-white, Source Serif 4 + Inter, cardinal
   #8C1515 as a sparse accent only, sharp corners throughout (no
   border-radius anywhere). This file now owns BOTH component systems —
   the catalogue grid (wc- prefix, unchanged) and the book page (bp- prefix,
   replaces the old ncp-book-* classes wcBook.tpl used to borrow from
   ncp-book.css). Everything below shares one :root token set so the two
   pages read as one system.
--------------------------------------------------------------------------- */

:root{
  --cardinal:#8C1515; --cardinal-dk:#8C1515; --cardinal-pale:#F1F1F0;
  --ink:#1A1A1A; --ink-2:#3A3A3A; --ink-3:#565656; --muted:#767676;
  --rule:#E4E4E2; --rule-2:#CBCBC9; --ivory:#F7F7F6; --ivory-2:#EFEFED;
  --green:#1F6B4A;
  --bp-serif:"Source Serif 4","Iowan Old Style",Palatino,"Book Antiqua",Georgia,serif;
  --bp-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
}

/* =============================================================== SHARED == */
.bp-lbl{font-family:var(--bp-sans);font-size:10.5px;font-weight:600;text-transform:uppercase;
  letter-spacing:.14em;color:var(--muted)}
.bp-tnum{font-variant-numeric:tabular-nums}

/* ============================================================ BOOK PAGE == */
.page_book{background:#fff;color:var(--ink);font-family:var(--bp-sans);font-size:16px;line-height:1.65}
.page_book h1,.page_book h2,.page_book h3,.page_book h4{font-family:var(--bp-serif);font-weight:600;line-height:1.22;margin:0;letter-spacing:-.005em}
.page_book a{color:var(--cardinal-dk)}
.page_book a:hover{color:var(--cardinal)}

.bp-wrap{max-width:1180px;margin:0 auto;padding:0 32px}

/* sticky context bar */
.bp-ctx{position:fixed;top:0;left:0;right:0;z-index:60;background:rgba(255,255,255,.97);
  backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--rule);
  transform:translateY(-100%);transition:transform .22s ease;box-shadow:0 1px 12px rgba(26,26,26,.06)}
.bp-ctx.on{transform:translateY(0)}
.bp-ctx-in{display:flex;align-items:center;gap:24px;height:56px;justify-content:space-between;max-width:1180px;margin:0 auto;padding:0 32px}
.bp-ctx-t{font-family:var(--bp-serif);font-size:15px;font-weight:600;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;flex:1}

/* breadcrumb */
.bp-crumbs{font-size:12px;color:var(--muted);letter-spacing:.01em;padding:16px 0 0}
.bp-crumbs a{color:var(--ink-3);border:0}
.bp-crumbs a:hover{color:var(--cardinal)}
.bp-crumbs .sep{margin:0 9px;color:var(--rule-2)}

/* masthead */
.bp-mast{background:var(--ivory);border-bottom:1px solid var(--rule);position:relative}
.bp-mast:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--cardinal)}
.bp-mast-in{padding:22px 0 34px}
.bp-mgrid{display:grid;grid-template-columns:158px 1fr;gap:38px;align-items:start}
.bp-cover{width:158px;display:block;background:var(--ivory-2);
  border:1px solid var(--rule-2);box-shadow:0 1px 3px rgba(26,26,26,.10),0 8px 24px rgba(26,26,26,.07)}
.bp-cover img{width:100%;display:block}
.bp-cover--ph{aspect-ratio:3/4;display:flex;align-items:center;justify-content:center;padding:14px;
  text-align:center;background:linear-gradient(165deg,#7E1414,#4E0C0C)}
.bp-cover--ph span{font-family:var(--bp-serif);font-size:12px;color:#fff;line-height:1.4}

.bp-kicker{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:15px}
.bp-chip{font-family:var(--bp-sans);font-size:10px;font-weight:600;text-transform:uppercase;
  letter-spacing:.13em;padding:4px 9px;border:1px solid currentColor;line-height:1;display:inline-block}
.bp-chip--preorder{color:var(--cardinal-dk)}
.bp-chip--available{color:#fff;background:var(--green);border-color:var(--green)}
.bp-chip--inprogress{color:var(--ink-3)}
.bp-chip--rev{color:var(--ink-3)}
.bp-kicker .when{font-size:12.5px;color:var(--ink-3)}

.bp-title{font-size:36px;font-weight:600;letter-spacing:-.017em;margin:0 0 11px;max-width:640px;line-height:1.16}
.bp-sub{font-family:var(--bp-serif);font-style:italic;font-size:19px;color:var(--ink-3);
  margin:0 0 20px;max-width:600px;line-height:1.45}
.bp-byline{font-size:14.5px;color:var(--ink-2);margin:0 0 4px}
.bp-byline .bp-lbl{margin-right:9px}
.bp-imprint{font-size:12.5px;color:var(--muted);margin:14px 0 0;letter-spacing:.01em}
.bp-imprint .dot{margin:0 8px;color:var(--rule-2)}
.bp-doi{font-size:13px;color:var(--ink-2);margin:10px 0 0}
.bp-doi a{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px}

/* layout */
.bp-cols{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:64px;
  align-items:start;padding:44px 0 90px}
.bp-side{position:sticky;top:78px}

/* sections */
.bp-blk{margin:0 0 46px;scroll-margin-top:80px}
.bp-h2{font-size:20px;font-weight:600;letter-spacing:-.008em;margin:0 0 20px;
  padding-bottom:9px;border-bottom:1px solid var(--rule);position:relative}
.bp-h2:after{content:"";position:absolute;left:0;bottom:-1px;width:44px;height:1px;background:var(--cardinal)}
.bp-h2 .count{font-family:var(--bp-sans);font-size:12px;font-weight:500;color:var(--muted);
  letter-spacing:.02em;margin-left:8px}

.bp-prose{font-family:var(--bp-serif);font-size:17px;line-height:1.72;color:var(--ink-2);max-width:66ch}
.bp-prose p{margin:0 0 17px}
.bp-prose p:last-child{margin:0}

.bp-feat{list-style:none;margin:0;padding:0;max-width:64ch}
.bp-feat li{font-size:14.5px;color:var(--ink-2);padding:9px 0 9px 20px;
  border-bottom:1px solid var(--rule);position:relative;line-height:1.55}
.bp-feat li:last-child{border-bottom:0}
.bp-feat li:before{content:"";position:absolute;left:0;top:17px;width:7px;height:1px;background:var(--cardinal)}

.bp-stats{display:flex;flex-wrap:wrap;gap:0;margin:22px 0 0;border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule)}
.bp-stat{padding:13px 26px 13px 0;margin-right:26px;border-right:1px solid var(--rule)}
.bp-stat:last-child{border-right:0;margin-right:0}
.bp-stat .n{font-family:var(--bp-serif);font-size:19px;font-weight:600;display:block;line-height:1.2}
.bp-stat .k{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}

.bp-note{border-left:2px solid var(--cardinal);background:var(--ivory);
  padding:14px 18px;margin:26px 0 0;font-size:14px;color:var(--ink-2);max-width:66ch;line-height:1.6}

.bp-tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.bp-tags a{display:inline-block;padding:5px 12px;border:1px solid var(--rule-2);
  font-size:12.5px;color:var(--ink-2);background:#fff;letter-spacing:.01em;border-bottom-width:1px !important}
.bp-tags a:hover{border-color:var(--cardinal);color:var(--cardinal);background:var(--cardinal-pale)}

/* chapter search */
.bp-search{border-top:1px solid var(--rule);padding-top:0;margin-bottom:6px}
.bp-search .bp-lbl{display:block;margin-bottom:10px}
.bp-search-row{display:flex;gap:0;max-width:420px;border:1px solid var(--rule-2)}
.bp-search-row input{flex:1;border:0;padding:11px 13px;font-size:14px;font-family:inherit;background:#fff;min-width:0}
.bp-search-row input:focus{outline:0;box-shadow:inset 0 0 0 2px var(--cardinal)}

/* buttons */
.bp-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;
  font-family:var(--bp-sans);font-size:13px;font-weight:600;letter-spacing:.02em;
  padding:10px 20px;border:1px solid var(--cardinal);background:var(--cardinal);color:#fff;
  cursor:pointer;border-radius:0;transition:.13s;white-space:nowrap}
.bp-btn:hover{background:var(--cardinal-dk);border-color:var(--cardinal-dk);color:#fff}
.bp-btn--o{background:transparent;color:var(--cardinal-dk);border-color:var(--rule-2)}
.bp-btn--o:hover{background:var(--cardinal-pale);border-color:var(--cardinal);color:var(--cardinal-dk)}
.bp-btn--w{width:100%}
.bp-btn--sm{padding:8px 15px;font-size:12px}

/* table of contents */
.bp-toc{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.bp-toc li{border-bottom:1px solid var(--rule)}
.bp-toc-row{display:grid;grid-template-columns:34px minmax(0,1fr) 116px;gap:18px;
  align-items:baseline;padding:15px 8px 15px 0}
.bp-toc .n{font-family:var(--bp-serif);font-size:14px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.bp-ct{font-family:var(--bp-serif);font-size:16.5px;font-weight:600;color:var(--ink);
  line-height:1.34;display:block;margin-bottom:5px;letter-spacing:-.004em}
.bp-ca{display:block;font-size:13px;color:var(--ink-2);line-height:1.5}
.bp-caf{display:block;font-size:12.5px;color:var(--muted);font-style:italic;margin-top:2px;line-height:1.45}
.bp-tright{text-align:right;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;line-height:1.7}
.bp-tright .pr{color:var(--ink-2);font-weight:500}
.bp-tright .free{color:var(--green);font-weight:600}
.bp-toc li.tba .bp-ct{color:var(--muted);font-weight:400;font-style:italic}
.bp-oamark{font-family:var(--bp-sans);font-size:9.5px;font-weight:600;text-transform:uppercase;
  letter-spacing:.12em;color:var(--green);border:1px solid var(--green);padding:2px 6px;
  margin-left:8px;vertical-align:2px;white-space:nowrap}
.bp-toc-hidden{display:none}

.bp-bundle{border-top:1px solid var(--rule);margin-top:22px;padding-top:16px;
  font-size:13.5px;color:var(--ink-3);max-width:66ch;line-height:1.6}
.bp-bundle b{display:block;font-family:var(--bp-serif);font-size:15px;color:var(--ink);
  font-weight:600;margin-bottom:3px}

/* people */
.bp-aff{list-style:none;padding:0;margin:0;max-width:64ch}
.bp-aff li{padding:0 0 16px;margin-bottom:16px;border-bottom:1px solid var(--rule)}
.bp-aff li:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.bp-aff .place{font-size:13.5px;color:var(--ink-3);font-style:italic;margin:0 0 4px}
.bp-aff .who{font-size:14.5px;color:var(--ink);margin:0;font-weight:500}
.bp-person{padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--rule);max-width:66ch}
.bp-person:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.bp-person h4{font-size:16px;margin-bottom:3px}
.bp-person .rank{font-size:12.5px;color:var(--muted);margin:0 0 10px;letter-spacing:.01em}
.bp-person .bio{font-family:var(--bp-serif);font-size:15px;line-height:1.68;color:var(--ink-2);margin:0}

/* bibliographic list */
.bp-bib{list-style:none;padding:0;margin:0;max-width:70ch;border-top:1px solid var(--rule)}
.bp-bib li{display:grid;grid-template-columns:170px minmax(0,1fr);gap:20px;
  padding:9px 0;border-bottom:1px solid var(--rule);font-size:14px;align-items:baseline}
.bp-bib .k{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.bp-bib .v{color:var(--ink-2)}
.bp-bib .v.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}
.bp-bib .v.pending{color:var(--muted);font-style:italic}

/* sidebar */
.bp-panel{border:1px solid var(--rule-2);margin-bottom:26px;background:#fff}
.bp-panel > h2{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.14em;
  font-family:var(--bp-sans);padding:13px 16px;margin:0;border-bottom:1px solid var(--rule-2);
  background:var(--ivory);color:var(--ink-2)}
.bp-panel .pad{padding:16px}
.bp-opt{border-bottom:1px solid var(--rule)}
.bp-opt:last-of-type{border-bottom:0}
.bp-opthd{display:flex;align-items:center;gap:11px;width:100%;padding:14px 16px;background:none;
  border:0;font-family:var(--bp-sans);font-size:13.5px;cursor:pointer;text-align:left;color:var(--ink)}
.bp-opthd:hover{background:var(--ivory)}
.bp-opthd:focus-visible{outline:2px solid var(--cardinal);outline-offset:-2px}
.bp-chev{width:7px;height:7px;border-right:1.5px solid var(--cardinal);border-bottom:1.5px solid var(--cardinal);
  transform:rotate(-45deg);transition:transform .16s;flex:0 0 auto}
.bp-opt.open .bp-chev{transform:rotate(45deg)}
.bp-opthd .nm{flex:1;font-weight:600}
.bp-opthd .pr{font-variant-numeric:tabular-nums;color:var(--ink-2);font-weight:600;font-size:13px}
.bp-optbd{display:none;padding:0 16px 16px 34px}
.bp-opt.open .bp-optbd{display:block}
.bp-opt.open{background:var(--ivory)}
.bp-optbd ul{list-style:none;margin:0 0 14px;padding:0}
.bp-optbd li{font-size:12.5px;color:var(--ink-3);padding:3px 0 3px 13px;position:relative;line-height:1.5}
.bp-optbd li:before{content:"";position:absolute;left:0;top:12px;width:5px;height:1px;background:var(--rule-2)}
.bp-pfoot{padding:12px 16px;border-top:1px solid var(--rule);font-size:11.5px;color:var(--muted);text-align:center}
.bp-plinks{border-top:1px solid var(--rule);padding:14px 16px}
.bp-plinks a{display:block;font-size:13px;margin-bottom:9px;color:var(--ink-2);border:0}
.bp-plinks a:last-child{margin-bottom:0}
.bp-plinks a:hover{color:var(--cardinal)}

.bp-secnav .bp-lbl{display:block;padding-bottom:9px;border-bottom:1px solid var(--rule);margin-bottom:6px}
.bp-secnav ul{list-style:none;margin:0;padding:0}
.bp-secnav a{display:block;padding:5px 0 5px 12px;font-size:13px;color:var(--ink-2);
  border:0;border-left:1px solid var(--rule);line-height:1.45}
.bp-secnav a:hover{color:var(--cardinal);border-left-color:var(--rule-2)}
.bp-secnav a.on{border-left:1px solid var(--cardinal);color:var(--cardinal);font-weight:600}

.bp-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:20px}
.bp-related a{display:block;color:inherit;border:0}
.bp-related-cover{aspect-ratio:3/4;background:var(--ivory-2);border:1px solid var(--rule-2);margin-bottom:8px;overflow:hidden}
.bp-related-cover img{width:100%;height:100%;object-fit:cover;display:block}
.bp-related-title{font-family:var(--bp-serif);font-size:13.5px;font-weight:600;line-height:1.3;color:var(--ink)}
.bp-related a:hover .bp-related-title{color:var(--cardinal)}
.bp-related-sub{font-size:12px;color:var(--muted);margin-top:3px}

@media(max-width:1000px){
  .bp-cols{grid-template-columns:1fr;gap:38px;padding-top:34px}
  .bp-side{position:static}
}
@media(max-width:620px){
  .bp-wrap{padding:0 20px}
  .bp-mast-in{padding:18px 0 26px}
  .bp-mgrid{grid-template-columns:100px 1fr;gap:20px}
  .bp-cover{width:100px}
  .bp-title{font-size:26px}
  .bp-sub{font-size:16px}
  .bp-toc-row{grid-template-columns:26px minmax(0,1fr);gap:12px}
  .bp-tright{grid-column:2;text-align:left;padding-top:7px}
  .bp-bib li{grid-template-columns:1fr;gap:3px}
  .bp-stat{padding-right:18px;margin-right:18px}
}

/* ---------------------------------------------------------------------------
   Catalogue grid
--------------------------------------------------------------------------- */

.wc-catalog { max-width: 1180px; margin: 0 auto; padding: 26px 32px 72px; font-family: var(--bp-sans); }

.wc-sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.wc-cat-head { border-bottom: 1px solid var(--rule); padding-bottom: .9rem; margin-bottom: 1.4rem; position: relative; }
.wc-cat-head:before{content:"";position:absolute;left:0;bottom:-1px;width:44px;height:2px;background:var(--cardinal)}
.wc-cat-head h1 {
  font-family: var(--bp-serif); font-size: 30px; font-weight: 600; color: var(--ink); margin: 0 0 .35rem;
  letter-spacing: -.012em;
}
.wc-cat-lede { font-size: .86rem; color: var(--muted); margin: 0; }
.wc-cat-lede strong { color: var(--ink); }

.wc-search { display: flex; gap: 0; margin-bottom: 1.6rem; max-width: 480px; border: 1px solid var(--rule-2); }
.wc-search input[type="search"] {
  flex: 1; border: 0;
  padding: .6rem .75rem; font-size: .85rem; color: var(--ink); background: #fff;
}
.wc-search input[type="search"]:focus {
  outline: 0; box-shadow: inset 0 0 0 2px var(--cardinal);
}
.wc-search button { border: 1px solid var(--cardinal); background: var(--cardinal); color: #fff;
  font-family: var(--bp-sans); font-size: .78rem; font-weight: 600; padding: 0 1.1rem; cursor: pointer; }
.wc-search button:hover { background: var(--cardinal-dk); border-color: var(--cardinal-dk); }

.wc-cat-layout { display: grid; grid-template-columns: 220px 1fr; gap: 2.2rem; align-items: start; }

.wc-facets { position: sticky; top: 1rem; }
.wc-facet-group { margin-bottom: 1.5rem; }
.wc-facet-title {
  font-family: var(--bp-sans); font-size: .68rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: .12em; color: var(--muted);
  margin: 0 0 .5rem; padding-bottom: .35rem; border-bottom: 1px solid var(--rule);
}
.wc-facet-list { list-style: none; margin: 0; padding: 0; }
.wc-facet-link {
  display: flex; justify-content: space-between; align-items: center; gap: .5rem;
  padding: .32rem 0; font-size: .82rem; color: var(--ink-2);
  text-decoration: none; border-left: 2px solid transparent; padding-left: .5rem;
}
.wc-facet-link:hover { color: var(--cardinal); }
.wc-facet-link.is-active {
  border-left-color: var(--cardinal);
  color: var(--cardinal); font-weight: 600;
}
.wc-facet-count { font-size: .72rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.wc-facet-link.is-active .wc-facet-count { color: var(--cardinal); }

.wc-clear {
  display: inline-block; margin-bottom: 1rem; font-size: .76rem;
  color: var(--cardinal-dk);
}

.wc-toolbar {
  display: flex; justify-content: space-between; align-items: center;
  padding-bottom: .7rem; margin-bottom: 1.1rem; border-bottom: 1px solid var(--rule);
}
.wc-count { font-size: .8rem; color: var(--muted); }
.wc-sort { display: flex; align-items: center; gap: .45rem; }
.wc-sort label { font-size: .78rem; color: var(--muted); }
.wc-sort select {
  border: 1px solid var(--rule-2); border-radius: 0; padding: .3rem .5rem;
  font-size: .78rem; color: var(--ink); background: #fff; font-family: var(--bp-sans);
}

.wc-grid {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 2rem 1.4rem;
}
.wc-card { display: flex; }
.wc-card-link {
  display: flex; flex-direction: column; width: 100%;
  text-decoration: none; color: inherit; border: 0;
}
.wc-card-cover { background: var(--ivory-2); aspect-ratio: 3 / 4; overflow: hidden;
  border: 1px solid var(--rule-2); box-shadow: 0 1px 3px rgba(26,26,26,.08); margin-bottom: .8rem; }
.wc-card-cover img { width: 100%; height: 100%; object-fit: contain; display: block; }
.wc-card-cover--placeholder {
  width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
  padding: 1rem; text-align: center;
}
.wc-card-cover--placeholder span {
  font-family: var(--bp-serif); font-size: .8rem; color: var(--muted); line-height: 1.35;
}

.wc-card-body { display: flex; flex-direction: column; gap: .35rem; flex: 1; }

.wc-badge {
  display: inline-block; width: fit-content;
  font-family: var(--bp-sans); font-size: .62rem; font-weight: 600; text-transform: uppercase; letter-spacing: .1em;
  padding: .15rem .5rem; border: 1px solid currentColor;
}
.wc-badge--available   { background: var(--green); color: #fff; border-color: var(--green); }
.wc-badge--preorder    { color: var(--cardinal-dk); }
.wc-badge--in_progress { color: var(--ink-3); }
.wc-badge--unknown     { color: var(--muted); }

.wc-card-title {
  font-family: var(--bp-serif);
  font-size: .95rem; font-weight: 600; line-height: 1.32; color: var(--ink); margin: .3rem 0 0;
}
.wc-card-link:hover .wc-card-title { color: var(--cardinal); }
.wc-card-sub { font-size: .76rem; color: var(--muted); margin: 0; line-height: 1.35; }
.wc-card-editor { font-size: .74rem; color: var(--ink-3); margin: 0; font-style: italic; }
.wc-card-meta { font-size: .72rem; color: var(--muted); margin: 0; }

.wc-card-foot {
  margin: auto 0 0; padding-top: .5rem; display: flex; flex-direction: column; gap: .15rem;
  border-top: 1px solid var(--rule);
}
.wc-card-price { font-family: var(--bp-serif); font-size: .88rem; font-weight: 600; color: var(--ink); }
.wc-card-date { font-size: .7rem; color: var(--cardinal-dk); }

.wc-empty { font-size: .85rem; color: var(--ink-2); padding: 2rem 0; }
.wc-empty a { color: var(--cardinal-dk); }
.wc-synced { margin-top: 2rem; font-size: .7rem; color: var(--muted); text-align: right; }

@media (max-width: 860px) {
  .wc-cat-layout { grid-template-columns: 1fr; }
  .wc-facets { position: static; }
  .wc-facet-list { display: flex; flex-wrap: wrap; gap: .5rem; }
  .wc-facet-link { border-left: 0; border: 1px solid var(--rule-2); padding: .3rem .6rem; }
  .wc-facet-link.is-active { border-color: var(--cardinal); }
}
@media (max-width: 560px) {
  .wc-catalog { padding: 18px 20px 56px; }
  .wc-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 1.4rem .9rem; }
}

/* Standalone-press states (2026-08-26): the catalogue now lists OMP's own
   books, whose lifecycle has more public states than the store mirror had. */
.wc-badge--open_call{background:#fdf6e3;color:#8a6d00;border-color:#e8d9a0}
.wc-badge--editor_invited{background:#f3edf7;color:#6b3f8c;border-color:#ddd0e8}
.wc-badge--pressmanaged{background:#eef0f2;color:#4b5563;border-color:#d7dbe0}
.wc-badge--forthcoming{background:#eaf1f6;color:#1f5673;border-color:#c5d8e5}
.wc-badge--published{background:#e7f4ec;color:#1f7a4d;border-color:#bfe0cd}

/* per-chapter access button on the book page contents list */
.bp-chbtn{display:inline-block;margin-left:.6rem;padding:.28rem .6rem;border:1.5px solid var(--wc-accent,#8C1515);color:var(--wc-accent,#8C1515);font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;text-decoration:none;white-space:nowrap}
.bp-chbtn:hover{background:var(--wc-accent,#8C1515);color:#fff}

/* Public book-page release polish. */
.bp-cover--editorial{aspect-ratio:3/4;box-sizing:border-box;background:#17283d;color:#fff;padding:13px 13px 11px;display:flex;flex-direction:column;text-align:left;border:4px solid #fff;outline:1px solid #17283d}
.bp-cover-mark,.bp-cover-foot{font:600 7px/1.2 var(--bp-sans);letter-spacing:.16em}
.bp-cover-rule{width:30px;height:2px;background:#bda96e;margin:23px 0 12px}
.bp-cover-title{font:600 14px/1.13 var(--bp-serif);letter-spacing:-.02em}
.bp-cover-credit{font:400 8px/1.4 var(--bp-sans);margin-top:auto;padding-top:12px}
.bp-cover-foot{border-top:1px solid #607082;padding-top:8px;margin-top:8px}
.bp-toc-row{grid-template-columns:34px minmax(0,1fr) 205px}
.bp-cmeta{display:block;font:400 12px/1.5 var(--bp-sans);color:var(--muted);margin-top:3px}
.bp-chabs{font-size:13px;margin-top:8px;color:var(--ink-2);text-align:left}
.bp-chabs summary{cursor:pointer;color:var(--cardinal);font-weight:600}
.bp-chabs div{margin-top:7px;line-height:1.65}
.bp-chactions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap;margin-top:8px}
.bp-chactions .bp-chbtn{margin:0;padding:4px 7px;font-size:10px;letter-spacing:.02em}
.bp-panel #bpCiteTxt{padding:13px 16px;margin:0!important}
.bp-panel details:has(> summary + pre){padding:0 16px 12px}
.bp-tright .bp-oamark{display:inline-block;color:var(--green);border:1px solid var(--green);font-size:10px;line-height:1.4;padding:2px 5px}
.bp-forthcoming{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-top:16px}
.bp-forthcoming summary{cursor:pointer;padding:14px 8px;font:600 14px/1.4 var(--bp-sans);color:var(--ink-2)}
.bp-forthcoming-list{list-style:none;margin:0;padding:0 0 12px}
.bp-forthcoming-list li{display:grid;grid-template-columns:34px 1fr;gap:18px;padding:7px 8px 7px 0;font:400 14px/1.45 var(--bp-serif)}
.bp-forthcoming-list .n{font-family:var(--bp-sans);font-size:12px;color:var(--muted);text-align:right}
@media(max-width:700px){.bp-toc-row{grid-template-columns:26px minmax(0,1fr)}.bp-tright{grid-column:2;text-align:left}.bp-chactions{justify-content:flex-start}.bp-forthcoming-list li{grid-template-columns:26px 1fr;gap:12px}.bp-cover--editorial{padding:7px}.bp-cover-title{font-size:10px}.bp-cover-mark,.bp-cover-foot{font-size:5px}}
/* Shared 2:3 cover and tidy catalogue cards. */
.bp-cover--editorial{aspect-ratio:2/3}
.wc-grid{gap:22px 18px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.wc-card-link{border:1px solid var(--rule);background:#fff;height:100%;transition:transform .18s,box-shadow .18s}
.wc-card-link:hover{transform:translateY(-3px);box-shadow:0 5px 20px rgba(26,26,26,.10)}
.wc-card-link:focus-visible{outline:3px solid var(--cardinal);outline-offset:3px}
.wc-card-cover{aspect-ratio:2/3;position:relative;flex:none;margin:0;border:0;box-shadow:none;background:#17283d}
.wc-card-cover .bp-cover{width:100%;height:100%;aspect-ratio:auto;border:0;outline:0;box-shadow:none}
.wc-editorial-cover{padding:15px 15px 12px}
.wc-editorial-cover .bp-cover-mark,.wc-editorial-cover .bp-cover-foot{font-size:8px}
.wc-editorial-cover .bp-cover-rule{margin:33px 0 17px;width:38px}
.wc-editorial-cover .bp-cover-title{font-size:clamp(15px,1.55vw,21px);line-height:1.16;overflow-wrap:break-word;display:-webkit-box;-webkit-line-clamp:8;-webkit-box-orient:vertical;overflow:hidden}
.wc-editorial-cover .bp-cover-credit{font-size:9px}
.wc-cover-ribbon{position:absolute;top:12px;right:0;background:var(--cardinal);color:#fff;font:600 10px/1.2 var(--bp-sans);letter-spacing:.06em;text-transform:uppercase;padding:6px 9px}
.wc-card-body{padding:14px 14px 16px;gap:.4rem}
.wc-card-title{margin:0;font-size:1rem}
.wc-card-sub,.wc-card-editor,.wc-card-meta{line-height:1.5}
.wc-card-meta{margin-top:7px;color:var(--ink-3)}
.wc-card-foot{margin:10px 0 0}
@media(max-width:650px){.wc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.wc-editorial-cover .bp-cover-title{font-size:15px}.wc-card-body{padding:10px}}
/* Public book and catalogue shell. Other OMP workspace routes retain their own navigation. */
.ncp-public-links,.ncp-header-search{display:none}
@media(min-width:920px){
 body.pkp_page_library .pkp_structure_head{position:sticky;top:0;z-index:80;display:flex;align-items:center;background:#fff!important;min-height:72px;border-bottom:1px solid #E4E4E2;box-shadow:0 1px 8px rgba(26,26,26,.06)}
 body.pkp_page_library .pkp_head_wrapper{flex:none;width:auto;min-height:72px;height:72px;padding:6px 14px 6px max(18px,calc((100vw - 1180px)/2));background:#fff!important;align-items:center}
 body.pkp_page_library .pkp_site_name_wrapper{height:auto;width:70px}
 body.pkp_page_library .pkp_site_name img{display:block;width:65px!important;height:58px!important;max-width:none;object-fit:contain;object-position:left center}
 body.pkp_page_library .pkp_site_nav_menu{position:static!important;display:flex!important;align-items:center!important;flex:1!important;width:auto!important;min-width:0;max-width:none;height:72px!important;margin:0!important;padding:6px max(18px,calc((100vw - 1180px)/2)) 6px 0!important;background:#fff!important;box-shadow:none!important}
 body.pkp_page_library .pkp_navigation_primary_row{display:flex;align-items:center;flex:1;min-width:0;height:auto!important;width:auto!important}
 body.pkp_page_library .pkp_navigation_primary_wrapper{display:flex;align-items:center;gap:20px;width:100%;min-width:0}
 body.pkp_page_library .ncp-public-links{display:flex;align-items:center;gap:20px;white-space:nowrap}
 body.pkp_page_library .ncp-public-links a{font:600 13px/1.3 var(--bp-sans);color:#3a3a3a;text-decoration:none;border:0}
 body.pkp_page_library .ncp-public-links a:hover{color:var(--cardinal)}
 body.pkp_page_library .ncp-header-search{display:flex;align-items:center;margin-left:auto;max-width:190px;flex:1;min-width:105px}
 body.pkp_page_library .ncp-header-search label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
 body.pkp_page_library .ncp-header-search input{width:100%;height:33px;padding:5px 9px;border:1px solid #CBCBC9;border-radius:0;background:#fff;font:12px var(--bp-sans)}
 body.pkp_page_library .pkp_navigation_user_wrapper{display:flex;align-items:center;width:auto!important;flex:none;margin-left:18px;padding:0!important;background:#fff!important}
 body.pkp_page_library .ncp_nav_auth{display:flex;align-items:center;gap:9px}
 body.pkp_page_library .ncp_nav_link,body.pkp_page_library .ncp_nav_btn{color:#3a3a3a!important;font-size:12px!important}
 body.pkp_page_library .ncp_nav_btn{border-color:#CBCBC9!important;background:#fff!important}
 body.pkp_page_library .ncp_nav_btn:hover{border-color:var(--cardinal)!important;color:var(--cardinal)!important}
}
@media(min-width:920px) and (max-width:1120px){body.pkp_page_library .ncp-public-links{gap:11px}body.pkp_page_library .pkp_navigation_primary_wrapper{gap:10px}body.pkp_page_library .ncp-header-search{max-width:125px}body.pkp_page_library .pkp_navigation_user_wrapper{margin-left:8px}}
body.pkp_page_library .ncp-public-links a:focus-visible,body.pkp_page_library .ncp-header-search input:focus-visible{outline:3px solid var(--cardinal);outline-offset:2px}
/* Override the older full-width two-row OMP header rules on public library routes. */
@media(min-width:920px){
 body.pkp_page_library .pkp_head_wrapper{width:auto!important;max-width:none!important;flex:0 0 auto!important;padding:6px 14px 6px max(18px,calc((100vw - 1180px)/2))!important}
 body.pkp_page_library nav.pkp_site_nav_menu{width:auto!important;max-width:none!important;flex:1!important;padding:6px max(18px,calc((100vw - 1180px)/2)) 6px 0!important}
 body.pkp_page_library .pkp_navigation_primary_wrapper{display:flex!important}
 body.pkp_page_library .pkp_site_name img{max-height:62px!important;max-width:none!important}
}
/* Text beside the existing logo makes the press identity legible at header size. */
@media(min-width:1250px){
 body.pkp_page_library .pkp_site_name_wrapper{width:218px!important}
 body.pkp_page_library .pkp_site_name a.is_img{display:flex!important;align-items:center;gap:8px;width:218px!important;height:62px!important}
}
@media(min-width:920px) and (max-width:1249px){
 body.pkp_page_library .pkp_site_name img{width:73px!important;height:65px!important}
 body.pkp_page_library .pkp_site_name_wrapper{width:78px!important}
}
/* Tight card metadata rhythm despite OMP's default heading and paragraph margins. */
body.pkp_page_library .wc-card-body{gap:8px!important}
body.pkp_page_library .wc-card-body > *{margin:0!important}
body.pkp_page_library .wc-card-meta{padding-top:5px}
body.pkp_page_library .pkp_site_name a.is_img{text-decoration:none!important}
@media(min-width:920px){
 body.pkp_page_library .pkp_structure_head{position:fixed!important;top:0;left:0;right:0;width:100%;z-index:80}
 body.pkp_page_library .pkp_structure_content{padding-top:72px!important}
}
/* Each catalogue subject has its own visual identity; the same art is used on its book page. */
body.pkp_page_library .wc-editorial-cover{--cover-bg:#192e43;--cover-ink:#d1dbe0;background:var(--cover-bg)!important;color:var(--cover-ink)!important;display:flex;flex-direction:column;position:relative;overflow:hidden;padding:14px!important;outline:0!important;border:0!important;box-shadow:none!important}
body.pkp_page_library .wc-editorial-cover--4{--cover-bg:#29344d;--cover-ink:#d7bdce}
body.pkp_page_library .wc-editorial-cover--16{--cover-bg:#14546b;--cover-ink:#b9e2da}
body.pkp_page_library .wc-editorial-cover--30{--cover-bg:#386e67;--cover-ink:#e7dfc4}
body.pkp_page_library .wc-editorial-cover--26{--cover-bg:#8d594b;--cover-ink:#f0d7b8}
body.pkp_page_library .wc-editorial-cover--34{--cover-bg:#1b2e42;--cover-ink:#d6c8a2}
body.pkp_page_library .wc-editorial-cover--37{--cover-bg:#56354a;--cover-ink:#e4bcb4}
body.pkp_page_library .wc-editorial-cover .bp-cover-mark{font:700 9px/1.3 var(--bp-sans)!important;letter-spacing:.1em;color:#fff!important;opacity:.9;display:block;white-space:nowrap;z-index:1}
body.pkp_page_library .wc-editorial-cover .bp-cover-foot{font:700 9px/1.3 var(--bp-sans)!important;letter-spacing:.12em;color:#fff!important;border-top:1px solid currentColor!important;opacity:.85;margin:0!important;padding-top:8px!important;z-index:1}
body.pkp_page_library .wc-cover-art{display:block;flex:1;min-height:0;width:100%;max-height:76%;margin:auto;fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round;stroke-linecap:round;opacity:.94}
body.pkp_page_library .wc-art-fill{fill:currentColor;stroke:none}
body.pkp_page_library .wc-cover-ribbon{top:8px;right:8px;padding:4px 6px;font-size:8px;letter-spacing:.02em;z-index:2}
body.pkp_page_library .wc-card-title{font-family:var(--bp-serif)!important;font-weight:600!important;font-size:18px!important;line-height:1.25!important}
body.pkp_page_library .wc-cat-layout--no-facets{display:block}
body.pkp_page_library .wc-cat-layout--no-facets .wc-grid{grid-template-columns:repeat(auto-fit,minmax(194px,1fr))}
body.pkp_page_library .bp-chactions{display:grid;grid-template-columns:1fr;gap:7px}
body.pkp_page_library .bp-chactions .bp-chbtn{display:block;text-align:center;padding:8px 10px!important;font:600 11px/1.35 var(--bp-sans)!important;letter-spacing:0!important;background:var(--cardinal)!important;border:1px solid var(--cardinal)!important;color:#fff!important;transition:background .18s,color .18s}
body.pkp_page_library .bp-chactions .bp-chbtn:hover{background:var(--cardinal-dk)!important;color:#fff!important}
body.pkp_page_library .bp-chactions .bp-chbtn:nth-child(2){background:#fff!important;color:var(--cardinal)!important}
body.pkp_page_library .bp-chactions .bp-chbtn:nth-child(2):hover{background:#f9f0f0!important}
body.pkp_page_library .bp-chactions .bp-chbtn:focus-visible{outline:3px solid var(--cardinal)!important;outline-offset:2px}
@media(max-width:650px){body.pkp_page_library .wc-card-title{font-size:16px!important}body.pkp_page_library .wc-editorial-cover{padding:9px!important}body.pkp_page_library .wc-cover-ribbon{top:5px;right:5px;font-size:7px;padding:3px 4px}}
/* The site-wide link colour loads later; keep the solid chapter action legible. */
body.pkp_page_library .pkp_structure_content .bp-chactions a.bp-chbtn{color:#fff!important}
body.pkp_page_library .pkp_structure_content .bp-chactions a.bp-chbtn:nth-child(2){color:var(--cardinal)!important}
body.pkp_page_library .pkp_structure_content .bp-chactions a.bp-chbtn:hover{color:#fff!important}
body.pkp_page_library .pkp_structure_content .bp-chactions a.bp-chbtn:nth-child(2):hover{color:var(--cardinal)!important}
/* Keep the 2:3 catalogue art in a compact two-column mobile grid. */
@media(max-width:650px){
 body.pkp_page_library .wc-cat-layout--no-facets .wc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}
 body.pkp_page_library .wc-editorial-cover .bp-cover-mark{font-size:8px!important;letter-spacing:.02em}
 body.pkp_page_library .wc-editorial-cover .bp-cover-foot{font-size:7px!important;letter-spacing:.04em}
 body.pkp_page_library .wc-cover-ribbon{top:28px;right:5px}
}
/* 2026-09-27 audit G5-06: the catalogue/book header is white, so primary nav links must be dark there. */
body.pkp_page_library .pkp_navigation_primary>li>a{color:#1f2d44!important}
body.pkp_page_library .pkp_navigation_primary>li>a:hover,body.pkp_page_library .pkp_navigation_primary>li>a:focus-visible{color:#8C1515!important;text-decoration:underline}
/* Public catalogue and book shell at phone and small tablet widths. */
@media (max-width:919px) {
 body.pkp_page_library .pkp_structure_head {
   position:sticky!important;top:0;z-index:80;display:block!important;
   min-height:0!important;background:#fff!important;
   border-bottom:1px solid #e4e4e2;box-shadow:0 1px 8px rgba(26,26,26,.06);
 }
 body.pkp_page_library .pkp_head_wrapper,
 body.pkp_page_library.has_site_logo .pkp_head_wrapper {
   display:block!important;width:100%!important;min-height:0!important;
   height:auto!important;padding:0!important;background:#fff!important;
 }
 body.pkp_page_library .pkp_site_name_wrapper,
 body.pkp_page_library.has_site_logo .pkp_site_name_wrapper {
   display:flex!important;align-items:center!important;width:100%!important;
   height:59px!important;min-height:59px!important;padding:0 16px!important;
   box-sizing:border-box!important;
 }
 body.pkp_page_library .pkp_site_name,
 body.pkp_page_library.has_site_logo .pkp_site_name {
   display:block!important;width:auto!important;height:auto!important;
 }
 body.pkp_page_library .pkp_site_name a.is_img {
   display:flex!important;align-items:center;gap:6px;height:54px;
   text-decoration:none!important;
 }
 body.pkp_page_library .pkp_site_name img {
   display:block!important;width:46px!important;height:46px!important;
   max-width:46px!important;max-height:46px!important;object-fit:contain;
 }
 body.pkp_page_library .ncp-brand-wordmark {
   display:block;font:700 13px/1.1 var(--bp-sans,Arial,sans-serif);
   color:#481717;max-width:112px;
 }
 body.pkp_page_library .ncp-brand-wordmark span{display:block}
 body.pkp_page_library .pkp_site_nav_toggle{display:none!important}
 body.pkp_page_library nav.pkp_site_nav_menu {
   display:flex!important;align-items:center!important;width:100%!important;
   min-height:43px!important;height:43px!important;padding:0 16px!important;
   margin:0!important;background:#fff!important;
   border-top:1px solid #e4e4e2;box-shadow:none!important;
 }
 body.pkp_page_library .pkp_navigation_primary_row {
   display:flex!important;align-items:center!important;flex:1!important;
   width:100%!important;min-width:0!important;padding:0!important;min-height:43px!important;
   height:43px!important;padding:0!important;
 }
 body.pkp_page_library .pkp_navigation_primary_wrapper {
   display:flex!important;align-items:center!important;gap:8px;
   width:100%!important;min-width:0!important;padding:0!important;
 }
 body.pkp_page_library .pkp_navigation_primary{display:none!important}
 body.pkp_page_library .ncp-public-links {
   display:flex!important;align-items:center;gap:9px;white-space:nowrap;
   flex:none;
 }
 body.pkp_page_library .ncp-public-links a {
   color:#303030;font:600 11px/1.3 var(--bp-sans,Arial,sans-serif);
   text-decoration:none;border:0;
 }
 body.pkp_page_library .ncp-header-search {
   display:flex!important;align-items:center;flex:1;min-width:0;
   max-width:none;margin:0;
 }
 body.pkp_page_library .ncp-header-search label {
   position:absolute;width:1px;height:1px;overflow:hidden;
   clip:rect(0,0,0,0);white-space:nowrap;
 }
 body.pkp_page_library .ncp-header-search input {
   display:block;width:100%;min-width:0;height:29px;box-sizing:border-box;
   padding:4px 6px;border:1px solid #b8b8b5;border-radius:0;background:#fff;
   font:11px var(--bp-sans,Arial,sans-serif);
 }
 body.pkp_page_library .pkp_navigation_user_wrapper {
   position:absolute!important;top:15px!important;right:16px!important;left:auto!important;
   display:flex!important;width:auto!important;height:auto!important;
   padding:0!important;margin:0!important;background:transparent!important;
 }
 body.pkp_page_library .ncp_nav_auth{display:flex!important;gap:3px!important}
 body.pkp_page_library .ncp_nav_btn {
   padding:5px 7px!important;background:#fff!important;color:#5e1515!important;
   border:1px solid #b8b8b5!important;font-size:11px!important;
 }
 body.pkp_page_library .ncp_nav_link {
   color:#5e1515!important;font-size:11px!important;padding:5px 3px!important;
 }
 body.pkp_page_library .ncp_nav_btn:focus-visible,
 body.pkp_page_library .ncp_nav_link:focus-visible,
 body.pkp_page_library .ncp-public-links a:focus-visible,
 body.pkp_page_library .ncp-header-search input:focus-visible,
 body.pkp_page_library .pkp_site_name a:focus-visible {
   outline:3px solid #8c1515!important;outline-offset:2px;
 }
 body.pkp_page_library .pkp_structure_content{padding-top:0!important}
}
@media (min-width:1250px) {
 body.pkp_page_library .ncp-brand-wordmark {
   display:block;font:700 17px/1.12 var(--bp-sans,Arial,sans-serif);
   color:#481717;max-width:132px;
 }
 body.pkp_page_library .ncp-brand-wordmark span{display:block}
}
