/**
 * BooksToolboxPro front-end — modern, polished design system.
 * All rules scoped under .btb-gallery / .btb-single / .btb-archive / .btb-modal.
 * No external fonts or CDN assets; icons are inline data-URI SVGs.
 */

.btb-gallery,
.btb-single,
.btb-archive,
.btb-related {
	--btb-ink: #14161c;
	--btb-muted: #6b7280;
	--btb-faint: #9aa1ac;
	--btb-border: #e8eaef;
	--btb-line: #eef0f4;
	--btb-bg: #ffffff;
	--btb-soft: #f6f7f9;
	--btb-accent: #4f46e5;
	--btb-accent-2: #6d28d9;
	--btb-accent-ink: #4338ca;
	--btb-buy: #111827;
	--btb-buy-hover: #000000;
	--btb-radius: 16px;
	--btb-radius-sm: 10px;
	--btb-shadow: 0 1px 2px rgba(16,24,40,.04), 0 8px 24px rgba(16,24,40,.06);
	--btb-shadow-lg: 0 12px 40px rgba(16,24,40,.16);
	color: var(--btb-ink);
}
.btb-gallery *, .btb-single *, .btb-modal * { box-sizing: border-box; }

/* ---------- Featured slider ---------- */
.btb-featured { margin: 0 0 36px; }
.btb-featured.is-hidden { display: none; }
.btb-featured__head { display: flex; align-items: center; justify-content: space-between; margin: 0 0 18px; }
.btb-featured .btb-featured__title { margin: 0; font-size: 22px; font-weight: 800; line-height: 1.2; letter-spacing: -0.01em; }
.btb-featured__nav { display: flex; gap: 8px; }
.btb-featured__arrow { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--btb-border); background: var(--btb-bg); font-size: 22px; line-height: 1; color: var(--btb-ink); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: border-color .15s, color .15s, background .15s; }
.btb-featured__arrow:hover { border-color: var(--btb-accent); color: var(--btb-accent-ink); background: var(--btb-soft); }
.btb-featured__track { display: flex; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: 4px; margin: -4px; scrollbar-width: none; }
.btb-featured__track::-webkit-scrollbar { display: none; }
.btb-feat { flex: 0 0 calc(50% - 11px); scroll-snap-align: start; display: grid; grid-template-columns: 200px 1fr; gap: 0; min-height: 340px; background: var(--btb-bg); border: 1px solid var(--btb-border); border-radius: var(--btb-radius); overflow: hidden; box-shadow: var(--btb-shadow); }
.btb-feat__cover { height: 100%; background: linear-gradient(135deg,#eef0f4,#e3e6ec); padding: 18px; }
.btb-feat__cover a { display: block; height: 100%; }
.btb-feat__cover img { width: 100%; height: 100%; object-fit: contain; display: block; filter: drop-shadow(0 6px 14px rgba(16,24,40,.22)); }
.btb-feat__body { padding: 28px; display: flex; flex-direction: column; }
.btb-feat__eyebrow { display: inline-block; align-self: flex-start; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--btb-accent-ink); background: rgba(79,70,229,.10); padding: 4px 10px; border-radius: 999px; margin-bottom: 10px; }
.btb-feat .btb-feat__name { margin: 0 0 4px; font-size: 20px; font-weight: 800; line-height: 1.2; letter-spacing: -0.01em; }
.btb-feat .btb-feat__name a { color: var(--btb-ink); text-decoration: none; }
.btb-feat .btb-feat__name a:hover { color: var(--btb-accent-ink); }
.btb-feat__cat { display: inline-block; align-self: flex-start; font-size: 10.5px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--btb-accent-ink); margin: 0 0 6px; }
.btb-feat__author { margin: 0 0 10px; color: var(--btb-muted); font-size: 14px; }
.btb-feat__author a { color: var(--btb-accent-ink); text-decoration: none; font-weight: 600; }
.btb-feat__author a:hover { text-decoration: underline; }
.btb-feat__desc { margin: 0 0 18px; color: #4b5563; font-size: 14px; line-height: 1.55; }
.btb-feat__actions { margin-top: auto; display: flex; gap: 10px; flex-wrap: wrap; }
@media (max-width: 860px) {
	.btb-feat { flex-basis: 86%; grid-template-columns: 160px 1fr; min-height: 280px; }
}
@media (max-width: 480px) {
	.btb-feat { flex-basis: 92%; grid-template-columns: 120px 1fr; min-height: 220px; }
	.btb-feat__body { padding: 18px; }
	.btb-feat .btb-feat__name { font-size: 17px; }
	.btb-feat__desc { display: none; }
}

/* ---------- Intro (enclosed shortcode content, under the featured slider) ---------- */
.btb-intro { margin: 0 0 22px; font-size: 16px; line-height: 1.6; color: var(--btb-ink); }
.btb-intro p:last-child { margin-bottom: 0; }

/* ---------- Toolbar ---------- */
.btb-toolbar { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin: 0 0 24px; }
.btb-search { position: relative; flex: 1 1 320px; }
.btb-search__input {
	width: 100%; padding: 13px 16px 13px 44px; border: 1px solid var(--btb-border); border-radius: 999px;
	font-size: 15px; background: var(--btb-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%239aa1ac' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") no-repeat 16px center;
	transition: border-color .15s, box-shadow .15s;
}
.btb-search__input:focus { outline: none; border-color: var(--btb-accent); box-shadow: 0 0 0 4px rgba(79,70,229,.12); }
.btb-sort { flex: none; }
.btb-sort__select, .btb-language {
	appearance: none; -webkit-appearance: none; padding: 12px 42px 12px 16px; border: 1px solid var(--btb-border);
	border-radius: 999px; font-size: 14px; background: var(--btb-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 14px center;
	cursor: pointer; color: var(--btb-ink); min-width: 190px; width: auto; max-width: 100%; white-space: nowrap; text-overflow: ellipsis;
}
.btb-language { width: 100%; }
.btb-sort__select:focus, .btb-language:focus { outline: none; border-color: var(--btb-accent); }
.btb-filters-toggle {
	display: none; padding: 12px 18px; border: 1px solid var(--btb-border); border-radius: 999px; background: var(--btb-bg);
	cursor: pointer; font-size: 14px; font-weight: 600;
}

/* ---------- Layout (filters on the right) ---------- */
.btb-gallery__body { display: grid; grid-template-columns: 1fr 260px; gap: 32px; align-items: start; }
.btb-results { order: 1; min-width: 0; }
.btb-facets { order: 2; }

/* ---------- Filters (modern) ---------- */
.btb-facets {
	position: sticky; top: 24px; display: flex; flex-direction: column; gap: 4px;
	background: var(--btb-bg); border: 1px solid var(--btb-border); border-radius: var(--btb-radius);
	padding: 8px 20px 20px; box-shadow: var(--btb-shadow);
}
.btb-facet-group { padding: 16px 0; border-bottom: 1px solid var(--btb-line); }
.btb-facet-group:last-of-type { border-bottom: none; }
.btb-facets .btb-facet-group__title { margin: 0 0 12px; font-size: 12px; font-weight: 700; line-height: 1.3; text-transform: uppercase; letter-spacing: .06em; color: var(--btb-faint); }
.btb-facet-group__options { max-height: 240px; overflow-y: auto; margin: -4px -8px; padding: 4px 8px; }
.btb-facet-group__options::-webkit-scrollbar { width: 6px; }
.btb-facet-group__options::-webkit-scrollbar-thumb { background: #dcdfe5; border-radius: 3px; }
.btb-facet {
	display: flex; align-items: center; gap: 10px; padding: 7px 8px; margin: 0 -8px; border-radius: 8px;
	font-size: 14px; color: var(--btb-ink); cursor: pointer; transition: background .12s;
}
.btb-facet:hover { background: var(--btb-soft); }
.btb-facet input[type="checkbox"], .btb-facet input[type="radio"] { width: 17px; height: 17px; accent-color: var(--btb-accent); cursor: pointer; margin: 0; flex: none; }
.btb-facet__name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.btb-facet__count { color: var(--btb-faint); font-size: 12px; font-variant-numeric: tabular-nums; background: var(--btb-soft); padding: 1px 8px; border-radius: 999px; }
.btb-facets__actions { display: flex; gap: 10px; padding-top: 18px; }

/* ---------- Buttons ---------- */
.btb-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 11px 20px; border-radius: var(--btb-radius-sm);
	font-size: 14px; font-weight: 600; text-decoration: none; cursor: pointer; border: 1px solid transparent; line-height: 1;
	transition: transform .08s ease, background .15s, box-shadow .15s, border-color .15s; white-space: nowrap;
}
.btb-btn:active { transform: translateY(1px); }
.btb-btn--apply { flex: 1; background: var(--btb-accent); color: #fff; box-shadow: 0 4px 12px rgba(79,70,229,.30); }
.btb-btn--apply:hover { background: var(--btb-accent-ink); }
.btb-btn--reset { background: var(--btb-bg); color: var(--btb-muted); border-color: var(--btb-border); }
.btb-btn--reset:hover { background: var(--btb-soft); color: var(--btb-ink); }
.btb-btn--buy { background: var(--btb-buy); color: #fff; }
.btb-btn--buy:hover { background: var(--btb-buy-hover); color: #fff; box-shadow: 0 6px 18px rgba(17,24,39,.28); }
.btb-btn--buy::before { content: ""; width: 16px; height: 16px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'/%3E%3C/svg%3E") no-repeat center / contain; }
.btb-btn--download { background: #0f766e; color: #fff; }
.btb-btn--download:hover { background: #0b5c56; }
.btb-btn--ghost { background: var(--btb-bg); color: var(--btb-ink); border-color: var(--btb-border); }
.btb-btn--ghost:hover { border-color: var(--btb-accent); color: var(--btb-accent-ink); }

/* ---------- Results + grid ---------- */
.btb-results__count { margin: 4px 0 18px; color: var(--btb-muted); font-size: 14px; font-weight: 500; }
.btb-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.btb-grid.is-loading { opacity: .45; pointer-events: none; transition: opacity .15s; }

.btb-card { display: flex; flex-direction: column; background: var(--btb-bg); border: 1px solid var(--btb-border); border-radius: var(--btb-radius); overflow: hidden; box-shadow: var(--btb-shadow); transition: box-shadow .18s, transform .18s; }
.btb-card:hover { box-shadow: var(--btb-shadow-lg); transform: translateY(-4px); }
.btb-card--featured { border-color: var(--btb-accent); box-shadow: 0 0 0 2px rgba(79,70,229,.35), var(--btb-shadow); }
.btb-card--featured:hover { box-shadow: 0 0 0 2px rgba(79,70,229,.45), var(--btb-shadow-lg); }
.btb-card__cover { position: relative; aspect-ratio: 3 / 4; background: linear-gradient(135deg,#eef0f4,#e3e6ec); overflow: hidden; }
.btb-card__cover-link { display: block; width: 100%; height: 100%; }
.btb-card__cover img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.btb-card:hover .btb-card__cover img { transform: scale(1.04); }
.btb-badge { position: absolute; top: 10px; left: 10px; background: rgba(17,24,39,.86); color: #fff; font-size: 11px; font-weight: 600; letter-spacing: .02em; padding: 4px 10px; border-radius: 999px; backdrop-filter: blur(4px); }
.btb-badge--featured { background: var(--btb-accent); }
.btb-badge--pin { background: #b7791f; }
.btb-card .btb-card__cat { margin: 13px 16px 0; font-size: 10.5px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--btb-accent-ink); }
.btb-card .btb-card__title { font-size: 15px; font-weight: 700; line-height: 1.3; margin: 14px 16px 4px; letter-spacing: -0.01em; }
.btb-card .btb-card__cat + .btb-card__title { margin-top: 2px; }
.btb-card .btb-card__title a { text-decoration: none; color: var(--btb-ink); }
.btb-card .btb-card__title a:hover { color: var(--btb-accent-ink); }
.btb-card__author { margin: 0 16px; color: var(--btb-muted); font-size: 13.5px; }
.btb-card__author a { color: var(--btb-accent-ink); text-decoration: none; }

/* Author identity chip (avatar circle + name), shared by cards / featured / single */
.btb-author { display: inline-flex; align-items: center; gap: 8px; max-width: 100%; text-decoration: none; color: var(--btb-accent-ink); vertical-align: middle; }
.btb-author span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.btb-author:hover span { text-decoration: underline; }
.btb-author__img { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; background: var(--btb-soft); border: 1px solid var(--btb-border); flex: none; }
.btb-feat__author .btb-author__img { width: 30px; height: 30px; }
.btb-author--lg { gap: 12px; font-size: 16px; }
.btb-author--lg .btb-author__img { width: 44px; height: 44px; }
.btb-card__rating { margin: 8px 16px 0; }
.btb-card__actions { margin-top: auto; display: flex; align-items: stretch; gap: 8px; padding: 16px; }
.btb-card__actions .btb-btn { flex: 1; padding: 10px 12px; font-size: 13px; }

/* Stars */
.btb-stars { letter-spacing: 1px; font-size: 14px; }
.btb-star.full, .btb-star.half { color: #f5a623; }
.btb-star.half { opacity: .55; }
.btb-star.empty { color: #d6d9df; }
.btb-rating-count { color: var(--btb-faint); font-size: 12px; }

.btb-quickview {
	background: var(--btb-bg); border: 1px solid var(--btb-border); border-radius: var(--btb-radius-sm);
	padding: 11px 16px; font-size: 14px; font-weight: 600; color: var(--btb-muted); cursor: pointer; transition: border-color .15s, color .15s;
}
.btb-quickview:hover { border-color: var(--btb-accent); color: var(--btb-accent-ink); }

/* Pagination */
.btb-pagination { margin-top: 36px; display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.btb-pagination .page-numbers { min-width: 42px; text-align: center; padding: 10px 14px; border: 1px solid var(--btb-border); border-radius: var(--btb-radius-sm); text-decoration: none; color: var(--btb-ink); font-size: 14px; font-weight: 600; background: var(--btb-bg); transition: border-color .15s, background .15s; }
.btb-pagination .page-numbers:hover { border-color: var(--btb-accent); color: var(--btb-accent-ink); }
.btb-pagination .page-numbers.current { background: var(--btb-accent); color: #fff; border-color: var(--btb-accent); }
.btb-pagination .page-numbers.dots { border: none; background: none; }
.btb-empty { grid-column: 1 / -1; color: var(--btb-muted); padding: 60px 0; text-align: center; font-size: 15px; }

/* ---------- Archive header ---------- */
.btb-archive__header { margin: 0 0 28px; }
.btb-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; font-size: 13.5px; color: var(--btb-faint); }
.btb-breadcrumb a { color: var(--btb-muted); text-decoration: none; font-weight: 600; }
.btb-breadcrumb a:hover { color: var(--btb-accent-ink); }
.btb-breadcrumb .sep { color: var(--btb-faint); }
.btb-breadcrumb .current { color: var(--btb-ink); font-weight: 600; }
.btb-archive .btb-archive__title { margin: 0 0 6px; font-size: 32px; font-weight: 800; line-height: 1.15; letter-spacing: -0.02em; }
.btb-archive__desc { color: var(--btb-muted); }

/* ---------- Single book ---------- */
.btb-single { margin: 0 0 48px; }
.btb-single__back { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 22px; color: var(--btb-muted); text-decoration: none; font-size: 14px; font-weight: 600; padding: 7px 14px 7px 10px; border: 1px solid var(--btb-border); border-radius: 999px; transition: border-color .15s, color .15s; }
.btb-single__back:hover { border-color: var(--btb-accent); color: var(--btb-accent-ink); }
.btb-single__back::before { content: "←"; font-size: 16px; }
.btb-single__inner { display: grid; grid-template-columns: 300px 1fr; gap: 44px; align-items: start; }
.btb-single__cover { position: sticky; top: 24px; }
.btb-single__cover img { width: 100%; border-radius: var(--btb-radius); box-shadow: var(--btb-shadow-lg); }
.btb-single__title { margin: 0 0 8px; font-size: 34px; font-weight: 800; line-height: 1.12; letter-spacing: -0.02em; }
.btb-single__subtitle { color: var(--btb-muted); margin: 0 0 14px; font-size: 19px; }
.btb-single__byline { color: var(--btb-ink); font-size: 16px; margin: 0 0 14px; }
.btb-single__byline strong { font-weight: 700; }
.btb-single__byline a { color: var(--btb-accent-ink); text-decoration: none; }
.btb-single__byline a:hover { text-decoration: underline; }
.btb-single__cats { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 18px; }
.btb-chip { display: inline-block; padding: 5px 13px; border: 1px solid var(--btb-border); border-radius: 999px; font-size: 12.5px; font-weight: 600; color: var(--btb-muted); text-decoration: none; transition: border-color .15s, color .15s; }
.btb-chip:hover { border-color: var(--btb-accent); color: var(--btb-accent-ink); }
.btb-single__rating { margin: 0 0 18px; }
.btb-single__actions { display: flex; gap: 12px; margin: 22px 0; flex-wrap: wrap; }
.btb-single__actions .btb-btn { padding: 14px 26px; font-size: 15px; }
.btb-single__details { width: 100%; border-collapse: collapse; margin: 26px 0; }
.btb-single__details th, .btb-single__details td { text-align: left; padding: 12px 12px; border-bottom: 1px solid var(--btb-line); font-size: 14.5px; vertical-align: top; }
.btb-single__details th { width: 150px; color: var(--btb-muted); font-weight: 600; }
.btb-single__sources { margin: 26px 0; }
.btb-single__sources h3 { font-size: 15px; margin: 0 0 12px; }
.btb-single__sources ul { list-style: none; padding: 0; margin: 0; display: flex; gap: 10px; flex-wrap: wrap; }
.btb-single__sources a { padding: 9px 16px; border: 1px solid var(--btb-border); border-radius: 999px; text-decoration: none; font-size: 13.5px; font-weight: 600; color: var(--btb-ink); transition: border-color .15s, color .15s; }
.btb-single__sources a:hover { border-color: var(--btb-accent); color: var(--btb-accent-ink); }
.btb-single__description { margin: 36px 0; font-size: 16px; line-height: 1.7; }

/* ---------- Our Review (on the book page) ---------- */
.btb-book-reviews { margin: 40px 0 0; }
.btb-book-reviews .btb-book-reviews__title {
	margin: 0 0 18px; font-size: 20px; font-weight: 800; line-height: 1.2; letter-spacing: -0.01em;
	display: flex; align-items: center; gap: 10px;
}
.btb-book-reviews .btb-book-reviews__title::before {
	content: ""; width: 20px; height: 20px; flex: none;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%234338ca' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19.5A2.5 2.5 0 0 1 6.5 17H20'/%3E%3Cpath d='M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z'/%3E%3C/svg%3E") no-repeat center / contain;
}
.btb-book-reviews__list { display: flex; flex-direction: column; gap: 16px; }

/* Each review = a card */
.btb-book-review {
	position: relative; background: var(--btb-bg); border: 1px solid var(--btb-border);
	border-radius: var(--btb-radius); padding: 22px 24px; box-shadow: var(--btb-shadow);
	transition: box-shadow .18s, transform .18s, border-color .18s;
}
.btb-book-review:hover { box-shadow: var(--btb-shadow-lg); transform: translateY(-2px); border-color: #d9dbe3; }

/* Byline: avatar + name/date, rating pushed right */
.btb-book-review__head { display: flex; align-items: center; gap: 12px; margin: 0 0 14px; }
.btb-book-review__avatar { flex: none; display: block; }
.btb-book-review__avatar img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; display: block; border: 1px solid var(--btb-border); background: var(--btb-soft); }
.btb-book-review__byline { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.btb-book-review .btb-book-review__author { font-size: 14.5px; font-weight: 700; color: var(--btb-ink); text-decoration: none; line-height: 1.2; }
.btb-book-review .btb-book-review__author:hover { color: var(--btb-accent-ink); }
.btb-book-review__date { font-size: 12.5px; color: var(--btb-faint); font-weight: 500; letter-spacing: .01em; }
.btb-book-review__rating { margin-left: auto; display: inline-flex; align-items: center; gap: 7px; background: var(--btb-soft); border-radius: 999px; padding: 5px 12px; white-space: nowrap; }
.btb-book-review__rating b { font-size: 13px; font-weight: 700; color: var(--btb-ink); }

.btb-book-review .btb-book-review__title { margin: 0 0 8px; font-size: 18px; font-weight: 700; line-height: 1.32; letter-spacing: -0.01em; }
.btb-book-review .btb-book-review__title a { color: var(--btb-ink); text-decoration: none; }
.btb-book-review .btb-book-review__title a:hover { color: var(--btb-accent-ink); }
.btb-book-review__excerpt { margin: 0 0 16px; font-size: 15px; line-height: 1.65; color: #4b5563; }
.btb-book-review__cta { padding: 9px 18px; font-size: 13.5px; }

@media (max-width: 600px) {
	.btb-book-review { padding: 18px; }
	.btb-book-review__rating { margin-left: 0; }
	.btb-book-review__head { flex-wrap: wrap; gap: 10px; }
	.btb-book-review .btb-book-review__title { font-size: 16px; }
}

/* ---------- Reviewed-book card (on the review article) ---------- */
.btb-reviewed-book {
	--btb-ink:#14161c; --btb-muted:#6b7280; --btb-faint:#9aa1ac; --btb-border:#e8eaef; --btb-soft:#f6f7f9;
	--btb-bg:#fff; --btb-accent:#4f46e5; --btb-accent-ink:#4338ca; --btb-buy:#111827; --btb-buy-hover:#000;
	--btb-radius:16px; --btb-radius-sm:10px; --btb-shadow:0 1px 2px rgba(16,24,40,.04),0 8px 24px rgba(16,24,40,.06);
	display: grid; grid-template-columns: 130px 1fr; gap: 20px; align-items: center;
	margin: 36px 0; padding: 20px; border: 1px solid var(--btb-border); border-radius: var(--btb-radius);
	background: var(--btb-bg); box-shadow: var(--btb-shadow);
}
.btb-reviewed-book * { box-sizing: border-box; }
.btb-reviewed-book__cover img { width: 100%; border-radius: var(--btb-radius-sm); display: block; box-shadow: 0 6px 18px rgba(16,24,40,.16); }
.btb-reviewed-book__eyebrow { display: inline-block; font-size: 10.5px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--btb-accent-ink); margin-bottom: 6px; }
.btb-reviewed-book .btb-reviewed-book__title { margin: 0 0 4px; font-size: 19px; font-weight: 800; line-height: 1.25; }
.btb-reviewed-book .btb-reviewed-book__title a { color: var(--btb-ink); text-decoration: none; }
.btb-reviewed-book .btb-reviewed-book__title a:hover { color: var(--btb-accent-ink); }
.btb-reviewed-book__author { margin: 0 0 14px; color: var(--btb-muted); font-size: 14px; }
.btb-reviewed-book__actions { display: flex; gap: 10px; flex-wrap: wrap; }
@media (max-width: 600px) {
	.btb-reviewed-book { grid-template-columns: 100px 1fr; gap: 14px; padding: 16px; }
	.btb-reviewed-book .btb-reviewed-book__title { font-size: 16px; }
}

/* Related / more books */
.btb-related { margin: 44px 0 0; padding-top: 40px; border-top: 1px solid var(--btb-line); }
.btb-related .btb-related__title { font-size: 22px; font-weight: 800; line-height: 1.2; letter-spacing: -0.01em; margin: 0 0 24px; }
.btb-related .btb-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; }
.btb-related .btb-card .btb-card__title { font-size: 14px; }

/* ---------- Modal ---------- */
.btb-modal { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; }
.btb-modal[hidden] { display: none; }
.btb-modal__overlay { position: absolute; inset: 0; background: rgba(16,20,30,.6); backdrop-filter: blur(3px); }
.btb-modal__dialog { position: relative; background: var(--btb-bg); border-radius: 20px; max-width: 680px; width: calc(100% - 40px); max-height: 88vh; overflow-y: auto; padding: 32px; box-shadow: var(--btb-shadow-lg); animation: btb-pop .18s ease; }
@keyframes btb-pop { from { transform: scale(.96); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.btb-modal__close { position: absolute; top: 14px; right: 18px; background: var(--btb-soft); border: none; width: 34px; height: 34px; border-radius: 50%; font-size: 22px; line-height: 1; cursor: pointer; color: var(--btb-muted); transition: background .15s, color .15s; }
.btb-modal__close:hover { background: #ececf0; color: var(--btb-ink); }
.btb-modal__mv { display: grid; grid-template-columns: 170px 1fr; gap: 24px; }
.btb-modal__mv img { width: 100%; border-radius: var(--btb-radius-sm); box-shadow: var(--btb-shadow); }
.btb-modal__mv h2 { margin: 0 0 8px; font-size: 24px; font-weight: 800; line-height: 1.2; }
.btb-modal__loading { padding: 60px; text-align: center; color: var(--btb-muted); }

/* ---------- Responsive ---------- */
@media (max-width: 1200px) {
	.btb-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.btb-related .btb-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
	.btb-gallery__body { grid-template-columns: 1fr; }
	.btb-facets { position: static; display: none; order: 0; }
	.btb-facets.is-open { display: flex; }
	.btb-filters-toggle { display: inline-flex; }
	.btb-grid, .btb-related .btb-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.btb-single__inner { grid-template-columns: 1fr; }
	.btb-single__cover { position: static; max-width: 240px; }
	.btb-single__title { font-size: 27px; }
	.btb-modal__mv { grid-template-columns: 1fr; }
	.btb-modal__mv img { max-width: 160px; }
}
@media (max-width: 600px) {
	.btb-grid, .btb-related .btb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
	.btb-card .btb-card__title { font-size: 14px; margin: 12px 12px 4px; }
	.btb-card__actions { padding: 12px; flex-direction: column; }
}
