:root {
  --cbl-navy: #03162f;
  --cbl-navy-2: #0a2444;
  --cbl-paper: #f8f5f1;
  --cbl-parchment: #e8e1d7;
  --cbl-parchment-2: #f1ece4;
  --cbl-gold: #ad8d67;
  --cbl-gold-light: #d2b56b;
  --cbl-oxblood: #6c231d;
  --cbl-green: #5a7a65;
  --cbl-blue: #365c78;
  --cbl-gray: #76736e;
  --cbl-ink: #10223a;
  --cbl-rule: #d7cdc0;
  --cbl-serif: Georgia, "Times New Roman", Times, serif;
  --cbl-sans: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.cbl-library,
.cbl-record {
  color: var(--cbl-ink);
  font-family: var(--cbl-serif);
  font-size: 17px;
  line-height: 1.55;
}

.cbl-library *,
.cbl-record *,
.cbl-citation * {
  box-sizing: border-box;
}

.cbl-library a,
.cbl-record a {
  color: var(--cbl-navy-2);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.cbl-library h1,
.cbl-library h2,
.cbl-library h3,
.cbl-record h1,
.cbl-record h2,
.cbl-record h3 {
  color: var(--cbl-navy);
  font-family: var(--cbl-serif);
  font-weight: 500;
  letter-spacing: -.015em;
  line-height: 1.15;
  margin-top: 0;
}

.cbl-kicker,
.cbl-section-rule h2,
.cbl-result-card__type,
.cbl-badge,
.cbl-button,
.cbl-search-form label > span,
.cbl-record-context,
.cbl-record-footer,
.cbl-score-tile span,
.cbl-score-tile small {
  font-family: var(--cbl-sans);
}

.cbl-kicker {
  color: #7a603f;
  font-size: .72rem;
  font-weight: 750;
  letter-spacing: .14em;
  margin: 0 0 .45rem;
  text-transform: uppercase;
}

.cbl-library-hero {
  align-items: stretch;
  background:
    linear-gradient(90deg, rgba(248,245,241,.99) 0%, rgba(248,245,241,.94) 48%, rgba(3,22,47,.12) 68%, rgba(3,22,47,.48) 100%),
    var(--cbl-hero-image, radial-gradient(circle at 82% 30%, #9a7145 0, #50341f 18%, #1b1a19 54%, #071526 100%));
  background-position: center;
  background-size: cover;
  border-bottom: 1px solid var(--cbl-gold);
  display: grid;
  grid-template-columns: minmax(0, 58%) minmax(260px, 42%);
  min-height: 255px;
  overflow: hidden;
  position: relative;
}

.cbl-library-hero::before {
  background: linear-gradient(90deg, var(--cbl-gold), transparent 32%);
  content: "";
  height: 3px;
  inset: 0 0 auto;
  position: absolute;
}

.cbl-library-hero__copy {
  align-self: center;
  max-width: 650px;
  padding: clamp(2.2rem, 6vw, 4.8rem);
}

.cbl-library-hero__copy h1 {
  font-size: clamp(2.4rem, 5vw, 4.4rem);
  margin-bottom: .35rem;
}

.cbl-library-hero__copy > p:last-child {
  font-size: clamp(1rem, 1.8vw, 1.28rem);
  margin: 0;
  max-width: 580px;
}

.cbl-library-hero__still-life {
  align-items: end;
  display: flex;
  gap: 7px;
  justify-content: center;
  min-height: 225px;
  padding: 3.2rem 2rem 1.1rem;
  perspective: 800px;
  position: relative;
}

.cbl-library-hero__still-life::after {
  background: radial-gradient(ellipse, rgba(0,0,0,.48), transparent 68%);
  bottom: .45rem;
  content: "";
  height: 30px;
  left: 7%;
  position: absolute;
  right: 7%;
}

.cbl-book-spine {
  background: linear-gradient(90deg, #1b2635, #485468 24%, #152438 55%, #081524);
  border: 1px solid rgba(210,181,107,.5);
  border-radius: 3px 3px 1px 1px;
  box-shadow: inset 0 8px 0 rgba(173,141,103,.18), inset 0 -8px 0 rgba(173,141,103,.18), 6px 9px 18px rgba(0,0,0,.4);
  display: block;
  height: 146px;
  position: relative;
  width: 38px;
  z-index: 1;
}

.cbl-book-spine::before {
  border-bottom: 1px solid var(--cbl-gold);
  border-top: 1px solid var(--cbl-gold);
  content: "";
  inset: 28px 5px auto;
  height: 65px;
  opacity: .72;
  position: absolute;
}

.cbl-book-spine--two { background: linear-gradient(90deg, #3d1b18, #7a4035 30%, #35120f 65%, #200c0b); height: 164px; width: 43px; }
.cbl-book-spine--three { background: linear-gradient(90deg, #273425, #53624a 30%, #1f2f25 70%, #111d17); height: 132px; }

.cbl-open-book {
  background: linear-gradient(100deg, #cbbfae 0 3%, #f1e8d8 4% 47%, #a98f70 48% 50%, #f3eadb 51% 96%, #b4a38b 97%);
  border: 1px solid #9b856a;
  border-radius: 5px 11px 7px 5px;
  box-shadow: 0 12px 20px rgba(0,0,0,.45);
  display: block;
  height: 92px;
  margin: 0 0 2px 5px;
  position: relative;
  transform: rotateX(58deg) rotateZ(1deg);
  width: 205px;
  z-index: 2;
}

.cbl-open-book::before,
.cbl-open-book::after {
  background: repeating-linear-gradient(#7e715e 0 1px, transparent 1px 6px);
  content: "";
  height: 58px;
  opacity: .36;
  position: absolute;
  top: 15px;
  width: 77px;
}
.cbl-open-book::before { left: 17px; transform: skewY(2deg); }
.cbl-open-book::after { right: 16px; transform: skewY(-2deg); }

.cbl-search-panel {
  background: linear-gradient(180deg, var(--cbl-paper), #fff);
  border-bottom: 1px solid var(--cbl-rule);
  padding: 1.1rem clamp(1rem, 4vw, 3rem) .9rem;
}

.cbl-section-rule {
  align-items: center;
  display: flex;
  gap: 1rem;
  margin-bottom: .75rem;
}

.cbl-section-rule::after {
  background: linear-gradient(90deg, var(--cbl-gold), transparent);
  content: "";
  flex: 1;
  height: 1px;
}

.cbl-section-rule h2 {
  font-family: var(--cbl-serif);
  font-size: 1rem;
  font-variant: small-caps;
  font-weight: 600;
  letter-spacing: .035em;
  margin: 0;
}

.cbl-search-form {
  display: grid;
  gap: .65rem;
  grid-template-columns: minmax(170px, .8fr) minmax(190px, .95fr) minmax(330px, 2.8fr) auto;
}

.cbl-search-form label > span {
  color: #5e5448;
  display: block;
  font-size: .7rem;
  font-weight: 750;
  letter-spacing: .08em;
  margin-bottom: .25rem;
  text-transform: uppercase;
}

.cbl-search-form input,
.cbl-search-form select,
.cbl-request-form input,
.cbl-request-form select,
.cbl-request-form textarea,
.cbl-fulltext__tools input {
  background: #fff;
  border: 1px solid #c8bdaf;
  border-radius: 0;
  color: var(--cbl-ink);
  font: inherit;
  min-height: 46px;
  padding: .65rem .75rem;
  width: 100%;
}

.cbl-search-input {
  align-self: end;
  display: grid;
  grid-template-columns: 1fr auto;
}

.cbl-search-input input { border-right: 0; }

.cbl-search-input button {
  align-items: center;
  background: var(--cbl-navy);
  border: 1px solid var(--cbl-navy);
  color: #fff;
  cursor: pointer;
  display: flex;
  font: 700 .78rem var(--cbl-sans);
  gap: .35rem;
  justify-content: center;
  min-height: 46px;
  padding: 0 1.1rem;
  text-transform: uppercase;
}

.cbl-search-input button span:first-child { font: 1.55rem var(--cbl-serif); transform: rotate(-20deg); }

.cbl-filter-toggle {
  align-self: end;
  background: transparent;
  border: 1px solid var(--cbl-gold);
  color: var(--cbl-navy);
  cursor: pointer;
  display: none;
  font: 700 .78rem var(--cbl-sans);
  min-height: 46px;
  padding: .65rem .8rem;
  text-transform: uppercase;
}

.cbl-advanced-filters {
  align-items: end;
  background: var(--cbl-parchment-2);
  border: 1px solid var(--cbl-rule);
  display: grid;
  gap: .75rem;
  grid-column: 1 / -1;
  grid-template-columns: repeat(4, minmax(145px, 1fr));
  padding: .8rem;
}

.cbl-filter-actions {
  align-items: center;
  display: flex;
  gap: .8rem;
  grid-column: 1 / -1;
  justify-content: end;
}

.cbl-current-collection {
  align-items: center;
  background: #f4efe7;
  border-left: 3px solid var(--cbl-gold);
  display: flex;
  font: .74rem var(--cbl-sans);
  gap: .75rem;
  justify-content: space-between;
  margin-top: .65rem;
  padding: .45rem .65rem;
}

.cbl-popular {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  font: .72rem var(--cbl-sans);
  gap: .35rem;
  margin-top: .65rem;
}

.cbl-popular > span { color: #675b4d; font-weight: 700; margin-right: .25rem; }
.cbl-popular a { background: var(--cbl-parchment-2); border: 1px solid #ded6ca; padding: .17rem .45rem; text-decoration: none; }

.cbl-button {
  align-items: center;
  border: 0;
  border-radius: 0;
  cursor: pointer;
  display: inline-flex;
  font-size: .76rem;
  font-weight: 750;
  gap: .45rem;
  justify-content: center;
  letter-spacing: .035em;
  min-height: 42px;
  padding: .65rem 1rem;
  text-decoration: none !important;
  text-transform: uppercase;
}
.cbl-button--navy { background: var(--cbl-navy); color: #fff !important; }
.cbl-button--gold { background: #a67c3d; color: #fff !important; }
.cbl-button:focus-visible,
.cbl-search-form :focus-visible,
.cbl-citation :focus-visible,
.cbl-evaluation-tabs :focus-visible {
  outline: 3px solid var(--cbl-gold-light);
  outline-offset: 2px;
}

.cbl-results,
.cbl-shelves,
.cbl-features,
.cbl-topics {
  margin-inline: auto;
  max-width: 1440px;
  padding-inline: clamp(1rem, 3vw, 2.6rem);
}

.cbl-results { padding-block: 2rem 3rem; }
.cbl-results__header { align-items: end; border-bottom: 2px solid var(--cbl-navy); display: flex; justify-content: space-between; margin-bottom: 1rem; padding-bottom: .7rem; }
.cbl-results__header h2 { font-size: clamp(1.7rem, 3vw, 2.35rem); margin: 0; }
.cbl-results__header p { margin: .25rem 0 0; }
.cbl-active-count { background: var(--cbl-parchment); border: 1px solid var(--cbl-rule); font: 700 .75rem var(--cbl-sans); padding: .42rem .65rem; }

.cbl-result-list { display: grid; gap: .8rem; }
.cbl-result-card { background: #fff; border: 1px solid var(--cbl-rule); border-left: 4px solid var(--cbl-navy); display: grid; gap: 1rem; grid-template-columns: 55px minmax(0,1fr) auto; padding: 1rem; position: relative; }
.cbl-result-card__mark { align-items: center; background: var(--cbl-parchment-2); border: 1px solid var(--cbl-rule); color: var(--cbl-navy); display: flex; font-size: 1.65rem; height: 52px; justify-content: center; width: 52px; }
.cbl-result-card__type { color: #745b3e; font-size: .69rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.cbl-result-card h3 { font-size: clamp(1.25rem, 2.5vw, 1.65rem); margin: .15rem 0 .35rem; }
.cbl-result-card p { margin: .25rem 0; }
.cbl-result-card__action { align-self: center; font: 700 .75rem var(--cbl-sans); padding: .4rem; text-decoration: none; text-transform: uppercase; white-space: nowrap; }
.cbl-alt-title { color: #625c55; font-style: italic; }
.cbl-byline { font-weight: 700; }
.cbl-publication { color: #615a52; font-size: .93rem; }
.cbl-why { background: #f4efe7; border-left: 2px solid var(--cbl-gold); color: #52493f; font-size: .88rem; margin-top: .6rem !important; padding: .45rem .6rem; }
.cbl-match-excerpt { background: #fbf8f1; border-left: 3px solid var(--cbl-green); color: #4d463d; font-size: .86rem; font-style: italic; margin: .5rem 0 0; padding: .45rem .7rem; }

.cbl-badges { align-items: center; display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .65rem; }
.cbl-badge { align-items: center; border: 1px solid currentColor; display: inline-flex; font-size: .66rem; font-weight: 750; gap: .22rem; letter-spacing: .025em; line-height: 1.2; padding: .25rem .42rem; text-transform: uppercase; }
.cbl-method--ministerial { color: #315c43; }
.cbl-method--magisterial { color: var(--cbl-oxblood); }
.cbl-method--mixed { color: #8a6829; }
.cbl-method--descriptive { color: var(--cbl-blue); }
.cbl-method--unassessed { color: var(--cbl-gray); }
.cbl-badge--access { color: var(--cbl-blue); }
.cbl-badge--gold { color: #7d5d24; }
.cbl-badge--status { color: #60574c; }
.cbl-badge--content { color: var(--cbl-green); }

.cbl-empty { background: var(--cbl-parchment-2); border: 1px solid var(--cbl-rule); padding: 2rem; text-align: center; }
.cbl-empty--shelves { grid-column: 1 / -1; margin: 1.5rem 0; }

.cbl-pagination { display: flex; flex-wrap: wrap; gap: .35rem; justify-content: center; margin-top: 1.5rem; }
.cbl-pagination a { align-items: center; border: 1px solid var(--cbl-rule); display: flex; height: 38px; justify-content: center; min-width: 38px; text-decoration: none; }
.cbl-pagination a[aria-current="page"] { background: var(--cbl-navy); color: #fff; }

.cbl-shelves { display: grid; gap: 0 1.8rem; grid-template-columns: repeat(2, minmax(0,1fr)); padding-block: 1.7rem; }
.cbl-shelf { border-bottom: 1px solid var(--cbl-rule); padding-block: .8rem 1.2rem; }
.cbl-shelf > header { align-items: center; border-bottom: 1px solid var(--cbl-gold); display: flex; justify-content: space-between; margin-bottom: .9rem; padding-bottom: .38rem; }
.cbl-shelf > header h2 { font-size: 1.05rem; font-variant: small-caps; letter-spacing: .025em; margin: 0; }
.cbl-shelf > header a { font-size: .72rem; text-decoration: none; }
.cbl-shelf__books { display: grid; gap: .9rem; grid-template-columns: repeat(2, minmax(0,1fr)); }
.cbl-shelf__empty { color: #6b6258; font-size: .86rem; font-style: italic; margin: .45rem 0; }
.cbl-book-tile { display: grid; gap: .65rem; grid-template-columns: 72px minmax(0,1fr); min-height: 118px; }
.cbl-book-tile__cover { display: block; text-decoration: none; }
.cbl-book-tile__info h3 { font-size: .9rem; line-height: 1.23; margin: .1rem 0 .2rem; }
.cbl-book-tile__info p { color: #655c52; font-size: .75rem; margin: 0 0 .35rem; }
.cbl-book-tile .cbl-badge { font-size: .55rem; }

.cbl-house-cover,
.cbl-cover-image {
  aspect-ratio: 2 / 3;
  box-shadow: 2px 4px 10px rgba(0,0,0,.28);
  display: flex;
  height: auto;
  max-width: 100%;
  object-fit: cover;
  overflow: hidden;
}
.cbl-remote-cover { display: block; max-width: 100%; }
.cbl-remote-cover .cbl-cover-image { width: 100%; }
.cbl-remote-cover [hidden] { display: none !important; }
.cbl-house-cover { align-items: center; background: #14243a; border: 1px solid rgba(210,181,107,.7); color: #e8d7af; flex-direction: column; justify-content: center; padding: 10%; position: relative; text-align: center; }
.cbl-house-cover::before,
.cbl-house-cover::after { border-bottom: 1px solid rgba(210,181,107,.7); border-top: 1px solid rgba(210,181,107,.7); content: ""; height: 5px; left: 8%; position: absolute; right: 8%; }
.cbl-house-cover::before { top: 7%; }
.cbl-house-cover::after { bottom: 7%; }
.cbl-house-cover i { color: var(--cbl-gold-light); font-style: normal; margin-bottom: .5rem; }
.cbl-house-cover strong { color: inherit; font-size: clamp(.55rem, 1.1vw, .84rem); line-height: 1.18; }
.cbl-house-cover small { bottom: 10%; color: rgba(255,255,255,.68); font: .37rem var(--cbl-sans); left: 8%; letter-spacing: .06em; position: absolute; right: 8%; text-transform: uppercase; }
.cbl-house-cover--small { min-height: 108px; width: 72px; }
.cbl-house-cover--large { min-height: 330px; width: min(260px,100%); }
.cbl-house-cover--large strong { font-size: 1.08rem; }
.cbl-house-cover--large small { font-size: .52rem; }
.cbl-house-cover--tiny { min-height: 84px; width: 56px; }
.cbl-house-cover--tiny strong { font-size: .43rem; }
.cbl-house-cover--tiny small { display: none; }
.cbl-remote-cover--small { width: 72px; }
.cbl-remote-cover--large { width: min(260px,100%); }
.cbl-remote-cover--tiny { width: 56px; }
.cbl-source-references { display: grid; gap: .65rem; list-style: none; margin: .75rem 0 1rem; padding: 0; }
.cbl-source-references li { border-left: 2px solid #d2b56b; display: grid; gap: .15rem; padding-left: .7rem; }
.cbl-source-references small,
.cbl-source-references a { display: block; }
.cbl-house-cover--tone-1 { background: linear-gradient(100deg,#101c2e,#213b59 65%,#0a1422); }
.cbl-house-cover--tone-2 { background: linear-gradient(100deg,#331412,#69342f 65%,#210d0c); }
.cbl-house-cover--tone-3 { background: linear-gradient(100deg,#1a2b22,#48604d 65%,#101b15); }
.cbl-house-cover--tone-4 { background: linear-gradient(100deg,#352719,#725a3f 65%,#24190f); }
.cbl-house-cover--tone-5 { background: linear-gradient(100deg,#171717,#43413d 65%,#080808); }
.cbl-house-cover--tone-6 { background: linear-gradient(100deg,#2a222d,#5c465f 65%,#1a141c); }

.cbl-features { display: grid; gap: .7rem; grid-template-columns: 1.45fr .85fr .85fr; padding-block: 1rem 1.4rem; }
.cbl-feature { background: linear-gradient(140deg,#fff,var(--cbl-parchment-2)); border: 1px solid var(--cbl-rule); min-height: 250px; overflow: hidden; padding: 1.5rem; position: relative; }
.cbl-feature h2 { font-size: 1.45rem; margin-bottom: .55rem; }
.cbl-feature p { margin: .4rem 0 .7rem; }
.cbl-feature ul { font-size: .88rem; list-style: "✓  "; padding-left: 1.2rem; }
.cbl-feature--dark { background: linear-gradient(120deg,var(--cbl-navy),#0d3157); color: #f7f0e5; }
.cbl-feature--dark h2 { color: #fff; }
.cbl-feature--dark .cbl-kicker { color: var(--cbl-gold-light); }
.cbl-feature--dark > div { max-width: 66%; position: relative; z-index: 2; }
.cbl-feature__books { background: linear-gradient(90deg,#55271e 0 16%,#162b48 17% 38%,#5c4930 39% 55%,#263d2c 56% 73%,#2c1d16 74%); border-bottom: 5px solid var(--cbl-gold); bottom: 22px; box-shadow: 0 10px 13px rgba(0,0,0,.5); height: 145px; position: absolute; right: 6%; transform: perspective(400px) rotateY(-7deg); width: 27%; }
.cbl-feature__books::before { border-bottom: 1px solid var(--cbl-gold); border-top: 1px solid var(--cbl-gold); content: ""; inset: 17px 0; opacity: .65; position: absolute; }

.cbl-topics { padding-bottom: 2rem; }
.cbl-topics__row { display: grid; gap: .6rem; grid-template-columns: repeat(9,minmax(0,1fr)); }
.cbl-topics__row a { align-items: center; display: flex; flex-direction: column; font-size: .78rem; gap: .35rem; text-align: center; text-decoration: none; }
.cbl-topics__row a > span { align-items: center; background: var(--cbl-navy); border: 2px solid var(--cbl-gold); border-radius: 50%; color: #fff; display: flex; height: 36px; justify-content: center; width: 36px; }
.cbl-topics__row small { color: #6a6258; }

/* Catalog record */
.cbl-record { background: var(--cbl-paper); margin-inline: auto; max-width: 1440px; }

/*
 * Divi's general single-post template may print a second title and byline
 * before the plugin-owned catalog record. Catalog screens supply their own
 * complete semantic heading, so suppress only those theme-level wrappers.
 */
.cbl-library-screen .et_pb_module.et_pb_post_title,
.cbl-library-screen .entry-header:not(.cbl-record-hero),
.cbl-library-screen article.type-cbl_book > .entry-title,
.cbl-library-screen article.type-cbl_book > .post-meta,
.cbl-library-screen article.type-cbl_resource > .entry-title,
.cbl-library-screen article.type-cbl_resource > .post-meta {
  display: none !important;
}

.cbl-record-context { align-items: center; background: var(--cbl-navy); color: #fff; display: flex; font-size: .78rem; justify-content: space-between; min-height: 48px; padding: .7rem clamp(1rem,3vw,2.5rem); }
.cbl-record-context a { color: #fff; text-decoration: none; }
.cbl-record-context > div { display: flex; gap: 1rem; }
.cbl-library-result-context .cbl-record-context { margin-bottom: 1.25rem; }
.cbl-record-hero { background: linear-gradient(105deg,#f8f5f1,#ece4d8); border-bottom: 1px solid var(--cbl-gold); display: grid; gap: clamp(1rem,3vw,2.4rem); grid-template-columns: minmax(150px,230px) minmax(0,1fr) minmax(175px,230px); padding: clamp(1.5rem,4vw,3.2rem); }
.cbl-record-cover .cbl-cover-image { width: 100%; }
.cbl-record-heading { align-self: center; }
.cbl-record-heading h1 { font-size: clamp(2rem,4vw,3.75rem); margin-bottom: .6rem; }
.cbl-record-creator { font-size: 1.15rem; font-weight: 700; margin: .2rem 0; }
.cbl-record-publication { color: #5e574f; margin: .35rem 0; }
.cbl-score-tile { align-self: center; background: var(--cbl-gray); border: 4px double rgba(255,255,255,.58); color: #fff; display: flex; flex-direction: column; justify-content: center; min-height: 210px; padding: 1rem; text-align: center; }
.cbl-score-tile.cbl-method--ministerial { background: var(--cbl-green); color: #fff; }
.cbl-score-tile.cbl-method--magisterial { background: var(--cbl-oxblood); color: #fff; }
.cbl-score-tile.cbl-method--mixed { background: #8a6829; color: #fff; }
.cbl-score-tile.cbl-method--descriptive { background: var(--cbl-blue); color: #fff; }
.cbl-score-tile strong { font-size: 3.8rem; font-weight: 500; line-height: 1; margin: .4rem 0; }
.cbl-score-tile span { font-size: .72rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.cbl-score-tile small { font-size: .74rem; }
.cbl-score-tile em { border-top: 1px solid rgba(255,255,255,.5); font-size: .65rem; margin-top: .75rem; padding-top: .55rem; }
.cbl-record-actions { background: #fff; border-bottom: 1px solid var(--cbl-rule); display: flex; flex-wrap: wrap; gap: .45rem; padding: .85rem clamp(1rem,3vw,2.5rem); }
.cbl-record-grid { display: grid; gap: 1.4rem; grid-template-columns: minmax(0,2.15fr) minmax(270px,.85fr); padding: 1.5rem clamp(1rem,3vw,2.5rem) 2rem; }

.cbl-evaluation { background: #fff; border: 1px solid var(--cbl-rule); display: grid; grid-template-columns: minmax(235px,.72fr) minmax(0,1.55fr); min-height: 620px; }
.cbl-evaluation-tabs { background: var(--cbl-parchment-2); border-right: 1px solid var(--cbl-rule); }
.cbl-evaluation-tabs button { align-items: center; background: transparent; border: 0; border-bottom: 1px solid var(--cbl-rule); color: var(--cbl-ink); cursor: pointer; display: grid; font: 700 .76rem var(--cbl-sans); gap: .5rem; grid-template-columns: minmax(0,1fr) 58px 28px; min-height: 53px; padding: .55rem .7rem; text-align: left; width: 100%; }
.cbl-evaluation-tabs button:first-child { display: block; font-family: var(--cbl-serif); font-size: 1.05rem; font-variant: small-caps; letter-spacing: .04em; }
.cbl-evaluation-tabs button[aria-selected="true"] { background: var(--cbl-navy); color: #fff; }
.cbl-evaluation-tabs button i { background: #d3cec6; display: block; height: 7px; overflow: hidden; }
.cbl-evaluation-tabs button i b { background: var(--cbl-green); display: block; height: 100%; }
.cbl-evaluation-tabs button strong { font-size: .7rem; text-align: right; }
.cbl-evaluation-panel { outline: none; padding: clamp(1.25rem,3vw,2.5rem); }
.cbl-evaluation-panel h2 { font-size: 2rem; }
.cbl-category-definition { border-left: 3px solid var(--cbl-gold); color: #61584e; font-style: italic; padding-left: .8rem; }
.cbl-category-score { align-items: baseline; background: var(--cbl-parchment-2); border: 1px solid var(--cbl-rule); display: flex; gap: 1rem; margin: 1rem 0; padding: .8rem; }
.cbl-category-score strong { font-size: 1.4rem; }

.cbl-record-section { margin-top: 1.5rem; }
.cbl-record-section > .cbl-section-rule h2 { font-size: 1.25rem; }
.cbl-passage-list { display: grid; gap: .65rem; grid-template-columns: repeat(2,minmax(0,1fr)); }
.cbl-passage-list article { background: #fff; border: 1px solid var(--cbl-rule); border-top: 3px solid var(--cbl-gold); padding: .9rem; }
.cbl-passage-list h3 { margin: 0 0 .35rem; }
.cbl-passage-list p { margin: .3rem 0; }
.cbl-stance { display: inline-block; font: 750 .66rem var(--cbl-sans); letter-spacing: .035em; margin: .2rem 0; padding: .22rem .38rem; text-transform: uppercase; }
.cbl-stance--defends { background: #dfeadf; color: #315c43; }
.cbl-stance--rejects { background: #f1deda; color: var(--cbl-oxblood); }
.cbl-stance--qualified { background: #eee4cc; color: #735821; }
.cbl-stance--discusses { background: #dde7ed; color: var(--cbl-blue); }
.cbl-stance--unassessed { background: #e5e3df; color: #5e5c58; }
.cbl-related-list { display: grid; gap: .5rem; }
.cbl-related-list a { align-items: center; background: #fff; border: 1px solid var(--cbl-rule); display: grid; gap: .3rem 1rem; grid-template-columns: minmax(120px,.45fr) minmax(0,1fr) auto; padding: .8rem; text-decoration: none; }
.cbl-related-list a span { color: #775b35; font: 750 .68rem var(--cbl-sans); text-transform: uppercase; }
.cbl-related-list a i { font-style: normal; }
.cbl-editorial-notes { background: #fff; border: 1px solid var(--cbl-rule); padding: 1rem; }

.cbl-record-sidebar { display: flex; flex-direction: column; gap: 1rem; }
.cbl-metadata-panel,
.cbl-request-panel,
.cbl-more-like { background: #fff; border: 1px solid var(--cbl-rule); padding: 1rem; }
.cbl-metadata-panel h2,
.cbl-request-panel h2,
.cbl-more-like h2 { border-bottom: 1px solid var(--cbl-gold); font-size: 1.25rem; padding-bottom: .45rem; }
.cbl-metadata-panel dl { margin: 0; }
.cbl-metadata-panel dt { color: #6b5d4b; font: 750 .66rem var(--cbl-sans); letter-spacing: .055em; margin-top: .6rem; text-transform: uppercase; }
.cbl-metadata-panel dd { margin: .05rem 0; }
.cbl-metadata-panel h3 { font-size: 1rem; margin: 1rem 0 .35rem; }
.cbl-goodreads-snapshot { background: var(--cbl-parchment-2); border-left: 3px solid var(--cbl-gold); margin-top: 1rem; padding: .6rem; }
.cbl-goodreads-snapshot h3,.cbl-goodreads-snapshot p { margin: .2rem 0; }
.cbl-goodreads-snapshot small,.cbl-goodreads-snapshot a { display: block; font-size: .72rem; }
.cbl-goodreads-snapshot em { color: #68625b; font-size: .7rem; }
.cbl-term-list { display: flex; flex-wrap: wrap; gap: .3rem; }
.cbl-term-list span { background: var(--cbl-parchment-2); border: 1px solid var(--cbl-rule); font-size: .72rem; padding: .2rem .35rem; }
.cbl-request-panel { border-top: 4px solid var(--cbl-gold); }
.cbl-request-form { display: grid; gap: .65rem; }
.cbl-request-form > label,
.cbl-request-form legend { font: 700 .76rem var(--cbl-sans); }
.cbl-request-form fieldset { border: 1px solid var(--cbl-rule); display: grid; gap: .5rem; padding: .7rem; }
.cbl-request-form fieldset label { align-items: start; display: grid; font-size: .77rem; gap: .4rem; grid-template-columns: auto 1fr; }
.cbl-request-form fieldset input,
.cbl-request-form .cbl-checkbox input { min-height: auto; width: auto; }
.cbl-checkbox { align-items: start; display: grid; gap: .45rem; grid-template-columns: auto 1fr; }
.cbl-privacy { color: #68625b; font-size: .7rem; }
.cbl-honeypot { height: 0; left: -9999px; overflow: hidden; position: absolute; width: 0; }
.cbl-form-message { border-left: 3px solid; font-size: .83rem; padding: .55rem; }
.cbl-form-message--success { background: #e4eee7; border-color: var(--cbl-green); }
.cbl-form-message--error { background: #f1e2df; border-color: var(--cbl-oxblood); }
.cbl-more-like { display: grid; gap: .4rem; }
.cbl-more-like h2 { margin-bottom: .25rem; }
.cbl-more-like a { border-bottom: 1px solid var(--cbl-rule); display: grid; padding: .4rem 0; text-decoration: none; }
.cbl-more-like a span { color: #6b655e; font-size: .75rem; }

.cbl-record-footer { align-items: center; background: var(--cbl-navy); color: #fff; display: flex; font-size: .72rem; justify-content: space-between; padding: .8rem clamp(1rem,3vw,2.5rem); }
.cbl-record-footer p { margin: 0; }
.cbl-copy-link { background: transparent; border: 1px solid var(--cbl-gold); color: inherit; cursor: pointer; font: 700 .7rem var(--cbl-sans); padding: .45rem .65rem; text-transform: uppercase; }

.cbl-fulltext { background: #fff; border: 1px solid var(--cbl-rule); margin-top: 1.5rem; }
.cbl-fulltext > header { align-items: center; background: var(--cbl-parchment-2); border-bottom: 1px solid var(--cbl-rule); display: flex; flex-wrap: wrap; gap: .5rem 1rem; padding: 1rem; }
.cbl-fulltext > header h2 { margin: 0; }
.cbl-fulltext > header .cbl-kicker { flex-basis: 100%; }
.cbl-text-status { border: 1px solid currentColor; font: 750 .65rem var(--cbl-sans); padding: .25rem .4rem; text-transform: uppercase; }
.cbl-text-warning { background: #f4e6d0; border-left: 4px solid #a66d2d; padding: .7rem 1rem; }
.cbl-fulltext__tools { align-items: end; border-bottom: 1px solid var(--cbl-rule); display: flex; gap: .7rem; justify-content: space-between; padding: .8rem 1rem; }
.cbl-fulltext__tools label { flex: 1; font: 700 .72rem var(--cbl-sans); }
.cbl-fulltext__tools input { margin-top: .2rem; }
.cbl-reading-text { font-size: 1.08rem; line-height: 1.78; margin: auto; max-width: 820px; padding: clamp(1.2rem,4vw,3.2rem); }
.cbl-reading-text mark { background: #f2d98d; }

/* Citation tagger */
.cbl-citation { display: inline; position: relative; }
.cbl-citation__trigger { background: transparent; border: 0; border-bottom: 1px dotted var(--cbl-gold); color: inherit; cursor: pointer; font: inherit; font-style: italic; padding: 0 .05em; }
.cbl-citation__popup { background: var(--cbl-paper); border: 5px solid var(--cbl-navy); box-shadow: 0 12px 28px rgba(0,0,0,.35); display: none; left: 0; min-width: 320px; padding: 0 0 .8rem; position: absolute; top: calc(100% + 7px); width: min(390px,90vw); z-index: 9999; }
.cbl-citation.is-open .cbl-citation__popup { display: block; }
.cbl-citation__top { align-items: center; background: var(--cbl-navy); color: #fff; display: flex; font: 750 .7rem var(--cbl-sans); justify-content: space-between; letter-spacing: .055em; padding: .45rem .6rem; text-transform: uppercase; }
.cbl-citation__top button { background: transparent; border: 0; color: #fff; cursor: pointer; font-size: 1.2rem; }
.cbl-citation__body { display: grid; gap: .7rem; grid-template-columns: 58px 1fr; padding: .8rem; }
.cbl-citation__body > span:last-child { display: flex; flex-direction: column; gap: .3rem; }
.cbl-citation__body small { display: block; }
.cbl-citation__popup > .cbl-button { margin-inline: .8rem; }

@media (max-width: 1100px) {
  .cbl-search-form { grid-template-columns: minmax(150px,.7fr) minmax(170px,.8fr) minmax(280px,2.3fr) auto; }
  .cbl-filter-toggle { display: block; }
  .cbl-advanced-filters { display: none; grid-template-columns: repeat(2,minmax(180px,1fr)); }
  .cbl-advanced-filters.is-open { display: grid; }
  .cbl-features { grid-template-columns: 1fr 1fr; }
  .cbl-feature--dark { grid-column: 1 / -1; }
  .cbl-topics__row { grid-template-columns: repeat(5,minmax(0,1fr)); }
  .cbl-record-hero { grid-template-columns: 180px minmax(0,1fr); }
  .cbl-score-tile { grid-column: 1 / -1; min-height: auto; }
  .cbl-score-tile strong { font-size: 2.8rem; }
}

@media (max-width: 860px) {
  .cbl-library-hero { grid-template-columns: 1fr; }
  .cbl-library-hero__copy { padding-bottom: 1rem; }
  .cbl-library-hero__still-life { min-height: 130px; padding-top: 0; }
  .cbl-book-spine { height: 95px; }
  .cbl-book-spine--two { height: 108px; }
  .cbl-book-spine--three { height: 84px; }
  .cbl-open-book { height: 70px; width: 155px; }
  .cbl-open-book::before,.cbl-open-book::after { height: 42px; width: 57px; }
  .cbl-search-form { grid-template-columns: 1fr 1fr auto; }
  .cbl-search-input { grid-column: 1 / 3; }
  .cbl-filter-toggle { grid-column: 3; }
  .cbl-shelves { grid-template-columns: 1fr; }
  .cbl-record-grid { grid-template-columns: 1fr; }
  .cbl-record-sidebar { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .cbl-request-panel { grid-column: 1 / -1; }
}

@media (max-width: 680px) {
  .cbl-library,.cbl-record { font-size: 16px; }
  .cbl-search-form { display: block; }
  .cbl-search-form > * { margin-bottom: .55rem; }
  .cbl-search-input { display: grid; }
  .cbl-filter-toggle { width: 100%; }
  .cbl-advanced-filters,
  .cbl-advanced-filters.is-open { grid-template-columns: 1fr; }
  .cbl-result-card { grid-template-columns: 42px minmax(0,1fr); }
  .cbl-result-card__mark { height: 40px; width: 40px; }
  .cbl-result-card__action { grid-column: 2; justify-self: start; padding-left: 0; }
  .cbl-shelf__books { grid-template-columns: 1fr; }
  .cbl-features { grid-template-columns: 1fr; }
  .cbl-feature--dark { grid-column: auto; }
  .cbl-feature--dark > div { max-width: 100%; }
  .cbl-feature__books { display: none; }
  .cbl-topics__row { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .cbl-record-context { align-items: start; flex-direction: column; gap: .45rem; }
  .cbl-record-hero { grid-template-columns: 105px minmax(0,1fr); padding: 1rem; }
  .cbl-record-heading h1 { font-size: 1.7rem; }
  .cbl-record-creator { font-size: .95rem; }
  .cbl-record-hero .cbl-badge { font-size: .55rem; }
  .cbl-score-tile { grid-column: 1 / -1; }
  .cbl-evaluation { display: block; min-height: 0; }
  .cbl-evaluation-tabs { border-right: 0; }
  .cbl-evaluation-tabs button { grid-template-columns: minmax(0,1fr) 70px 28px; }
  .cbl-passage-list { grid-template-columns: 1fr; }
  .cbl-related-list a { grid-template-columns: 1fr auto; }
  .cbl-related-list a span { grid-column: 1 / -1; }
  .cbl-record-sidebar { display: flex; }
  .cbl-record-footer { align-items: start; flex-direction: column; gap: .7rem; }
  .cbl-fulltext__tools { align-items: stretch; flex-direction: column; }
  .cbl-citation__popup { left: 50%; position: fixed; top: 50%; transform: translate(-50%,-50%); }
}

@media (prefers-reduced-motion: reduce) {
  .cbl-library *, .cbl-record *, .cbl-citation * { scroll-behavior: auto !important; transition: none !important; }
}

@media print {
  .cbl-record-context,.cbl-record-actions,.cbl-request-panel,.cbl-copy-link,.cbl-fulltext__tools { display: none !important; }
  .cbl-record { background: #fff; }
  .cbl-record-grid { display: block; }
  .cbl-record-sidebar { margin-top: 1rem; }
}
