/* Author Books — styles. Colours come from the theme's palette when it has
   matching names (teal, ink, soft, line, gold, sage, paper-2), otherwise the
   fallbacks below are used. */
:root {
	--ab-accent: var(--wp--preset--color--teal, #1F6F86);
	--ab-accent-dark: var(--wp--preset--color--teal-dark, #17596C);
	--ab-ink: var(--wp--preset--color--ink, #2F3A3D);
	--ab-soft: var(--wp--preset--color--soft, #5F665A);
	--ab-sage: var(--wp--preset--color--sage, #8A9A7E);
	--ab-line: var(--wp--preset--color--line, #D8CDB8);
	--ab-gold: var(--wp--preset--color--gold, #C9A96E);
	--ab-band: var(--wp--preset--color--paper-2, #EDE5D6);
	--ab-head-font: var(--wp--preset--font-family--josefin, inherit);
}

.ab-hint { font-size: 13px; font-style: italic; color: var(--ab-soft); border: 1px dashed var(--ab-line); padding: 10px 14px; }

/* Buttons */
.ab-btn {
	display: inline-block; background: var(--ab-accent); color: #fff !important; border: 1px solid var(--ab-accent);
	font-family: inherit; font-weight: 500; font-size: 13px; line-height: 1.4; letter-spacing: 2px; text-transform: uppercase;
	padding: 11px 26px; cursor: pointer; text-decoration: none !important;
}
.ab-btn:hover { background: var(--ab-accent-dark); border-color: var(--ab-accent-dark); }
.ab-btn--outline { background: none; color: var(--ab-accent) !important; }
.ab-btn--outline:hover { background: var(--ab-accent); color: #fff !important; }
.ab-btn--small { padding: 7px 14px; font-size: 13px; letter-spacing: 1px; text-transform: none; }

/* ---------- Cards (shelf + catalogue) ---------- */
.ab-card { margin: 0; }
.ab-card__cover { display: block; }
.ab-card__cover img { display: block; width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: cover; box-shadow: 0 10px 24px rgba(47,58,61,.18); transition: transform .3s, box-shadow .3s; }
.ab-card:hover .ab-card__cover img { transform: translateY(-6px); box-shadow: 0 18px 30px rgba(47,58,61,.25); }
.ab-card.is-soon:hover .ab-card__cover img { transform: none; box-shadow: 0 10px 24px rgba(47,58,61,.18); }
.ab-card__nocover { display: flex; align-items: center; justify-content: center; aspect-ratio: 2 / 3; background: var(--ab-band); color: var(--ab-soft); padding: 12px; text-align: center; }
.ab-card figcaption { border-top: 2px solid var(--ab-accent); margin: 14px 0 22px; padding-top: 10px; text-align: left; }
.ab-card__title { display: block; font-size: 16px; color: var(--ab-ink); }
.ab-card__title a { color: inherit; text-decoration: none; }
.ab-card__title a:hover { color: var(--ab-accent); }
.ab-card__tropes { display: block; font-size: 13px; font-style: italic; color: var(--ab-soft); margin-top: 2px; }
.ab-heat { display: flex; gap: 2px; margin-top: 4px; }
.ab-chili.is-off { opacity: .18; filter: grayscale(1); }
.ab-card__ro { display: none; font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; color: #8A6A2E; margin-bottom: 2px; }
.is-reading-order .ab-card__ro { display: block; }
.ab-card__length { display: block; font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--ab-soft); margin-top: 6px; }
.ab-card__buy { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-top: 10px; }
.ab-card__other { font-size: 14px; }
.ab-card[hidden] { display: none; }

/* ---------- Shelf ---------- */
.ab-shelf__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; padding-top: 30px; }
.ab-shelf .ab-card.is-more { display: none; }
.ab-shelf.is-open .ab-card.is-more { display: block; }
.ab-shelf__more { display: block; margin: 6px auto 0; }
.ab-shelf__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 6px; }
.ab-shelf__actions .ab-shelf__more { margin: 0; }

/* ---------- Catalogue ---------- */
.ab-filters { display: flex; flex-direction: column; gap: 10px; align-items: center; margin-bottom: 26px; }
.ab-filter { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; justify-content: center; }
.ab-filter__label { font-size: 12px; letter-spacing: 2px; text-transform: uppercase; color: var(--ab-soft); margin-right: 6px; min-width: 60px; text-align: right; }
.ab-chip { border: 1px solid var(--ab-line); background: #fff; padding: 5px 12px; font: inherit; font-size: 14px; cursor: pointer; border-radius: 20px; color: var(--ab-ink); }
.ab-chip:hover { border-color: var(--ab-accent); }
.ab-chip.is-on { background: var(--ab-accent); border-color: var(--ab-accent); color: #fff; }
.ab-sortbar { text-align: center; margin: 0 0 26px; font-size: 14px; color: var(--ab-soft); }
.ab-sortbar select { font: inherit; padding: 5px 10px; border: 1px solid var(--ab-line); background: #fff; margin-left: 6px; }
.ab-catalogue__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; max-width: 900px; margin: 0 auto; }
.ab-none { text-align: center; color: var(--ab-soft); }

/* ---------- Single book ---------- */
.ab-crumb { font-size: 14px; color: var(--ab-soft); margin: 30px 0 20px; }
.ab-book__grid { display: grid; grid-template-columns: 340px 1fr; gap: 48px; align-items: start; }
.ab-book__cover img { display: block; width: 100%; height: auto; box-shadow: 0 14px 34px rgba(47,58,61,.25); }
.ab-book__series { font-size: 13px; letter-spacing: 3px; text-transform: uppercase; color: var(--ab-soft); margin: 0; }
.ab-book__title { font-family: var(--ab-head-font); font-weight: 300; font-size: var(--wp--preset--font-size--book-title, 46px); line-height: 1.1; margin: 6px 0 8px; }
.ab-book__tropes { font-size: 16px; font-style: italic; color: var(--ab-soft); margin: 0; }
.ab-book .ab-heat { margin: 6px 0 20px; }
.ab-book__blurb p { margin: 0 0 14px; }
.ab-extract-toggle { margin: 6px 0 18px; }
.ab-direct { display: flex; align-items: center; justify-content: space-between; gap: 16px; background: #fff; border: 1px solid var(--ab-line); border-left: 4px solid var(--ab-gold); padding: 14px 18px; margin: 4px 0 14px; }
.ab-direct span { display: block; font-size: 13px; color: var(--ab-soft); }
.ab-stores, .ab-review-links { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 14px; }
.ab-stores span, .ab-review-links span { font-size: 13px; letter-spacing: 2px; text-transform: uppercase; color: var(--ab-soft); margin-right: 4px; }
/* 0.6.0 buy area: label column + buttons */
.ab-buy { margin: 18px 0 6px; border-top: 1px solid var(--ab-line); padding-top: 16px; }
.ab-buyrow { display: grid; grid-template-columns: 110px 1fr; gap: 6px 14px; align-items: center; margin-bottom: 14px; }
.ab-buyrow__btns { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.ab-buyrow > .ab-buyrow__label { margin: 0; }
.ab-buyrow__note { grid-column: 2; font-size: 13px; color: var(--ab-soft); }
.ab-buyrow a.ab-buyrow__direct { padding: 7px 16px; font-size: 13px; }
@media (max-width: 600px) { .ab-buyrow { grid-template-columns: 1fr; } .ab-buyrow__note { grid-column: 1; } }
.ab-stores a:not(.ab-btn) { border: 1px solid var(--ab-accent); padding: 6px 14px; font-size: 14px; color: var(--ab-accent); text-decoration: none; }
.ab-stores a:not(.ab-btn):hover { background: var(--ab-accent); color: #fff; }
.ab-review-links a { border: 1px solid var(--ab-gold); border-radius: 20px; padding: 5px 14px 5px 12px; font-size: 14px; color: #7A5C22; background: #FBF6EA; text-decoration: none; }
.ab-review-links a::before { content: "★ "; color: var(--ab-gold); }
.ab-review-links a:hover { background: var(--ab-gold); color: #fff; }
.ab-review-links a:hover::before { color: #fff; }
.ab-book__extras { font-size: 15px; }
.ab-extract { max-width: 680px; margin: 40px auto 0; background: #fff; padding: 36px 40px; border: 1px solid var(--ab-line); }
.ab-extract[hidden] { display: none; }
.ab-extract h2 { text-align: center; margin: 0 0 14px; }
.ab-extract__buy { margin-top: 20px; font-weight: 500; }

.ab-section-title { text-align: center; }
.ab-section-sub { text-align: center; font-style: italic; color: var(--ab-soft); margin: 6px 0 34px; }
.ab-reviews__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ab-review { background: #fff; border: 1px solid var(--ab-line); padding: 24px; margin: 0; font-style: italic; }
.ab-review p { margin: 0; }
.ab-stars { display: block; color: var(--ab-gold); font-style: normal; letter-spacing: 2px; margin-bottom: 8px; }
.ab-review cite { display: block; margin-top: 10px; font-size: 14px; color: var(--ab-soft); font-style: normal; }
.ab-reviews__more { text-align: center; margin-top: 20px; font-size: 15px; }
.ab-notes__list { max-width: 860px; margin: 0 auto; }
.ab-note.has-img { display: grid; grid-template-columns: 260px 1fr; gap: 30px; align-items: center; }
.ab-note__img { display: block; overflow: hidden; aspect-ratio: 4 / 3; }
.ab-note__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.ab-note:hover .ab-note__img img { transform: scale(1.03); }
@media (max-width: 700px) { .ab-note.has-img { grid-template-columns: 1fr; gap: 14px; } }
.ab-note { border-top: 1px solid var(--ab-line); padding: 26px 0; }
.ab-note:last-child { border-bottom: 1px solid var(--ab-line); }
.ab-note small { letter-spacing: 2px; text-transform: uppercase; font-size: 12px; color: var(--ab-soft); }
.ab-note h3 { font-size: 22px; line-height: 1.3; margin: 6px 0; }
.ab-note h3 a { color: var(--ab-ink); text-decoration: none; }
.ab-note p { font-size: 16px; margin: 0 0 6px; }

/* ---------- Bonus scene band ---------- */
.ab-bonus { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; background: var(--ab-band); padding: 40px; margin-top: 60px; }
.ab-bonus h2 { text-align: left; margin: 4px 0 8px; }
.ab-bonus__text p { margin: 0 0 8px; }
.ab-bonus .ss-wrap { text-align: left; }
.ab-bonus .ss-fields { flex-direction: column; align-items: stretch; margin: 0; max-width: none; }
.ab-bonus .ss-fields input[type=text], .ab-bonus .ss-fields input[type=email] { max-width: none; min-width: 0; flex: none; }
.ab-bonus .ss-fine { text-align: left; }
@media (max-width: 800px) { .ab-bonus { grid-template-columns: 1fr; padding: 28px 20px; gap: 20px; } }

/* ---------- Leave a review list ---------- */
.ab-revlist { max-width: 820px; margin: 0 auto; }
.ab-revrow { display: grid; grid-template-columns: 90px 1fr; gap: 24px; align-items: center; padding: 22px 0; border-bottom: 1px solid var(--ab-line); }
.ab-revrow__cover img { display: block; width: 90px; height: auto; box-shadow: 0 6px 14px rgba(47,58,61,.2); }
.ab-revrow h2 { font-family: var(--ab-head-font); font-weight: 300; font-size: 24px; margin: 0 0 10px; }
.ab-revrow h2 a { color: var(--ab-ink); text-decoration: none; }
.ab-revrow .ab-review-links { margin: 0; }

/* ---------- Article page book card ---------- */
.ab-postbook { display: grid; grid-template-columns: 90px 1fr; gap: 20px; align-items: center; border-top: 1px solid var(--ab-line); border-bottom: 1px solid var(--ab-line); padding: 22px 0; margin: 40px 0 30px; }
.ab-postbook img { display: block; width: 90px; height: auto; box-shadow: 0 6px 14px rgba(47,58,61,.2); }
.ab-postbook h3 { font-family: var(--ab-head-font); font-weight: 300; font-size: 24px; margin: 0; }
.ab-postbook h3 a { color: var(--ab-ink); text-decoration: none; }
.ab-postbook p { margin: 0; }

/* ---------- Tablet / phone ---------- */
@media (max-width: 900px) {
	.ab-catalogue__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 800px) {
	.ab-shelf__grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
	.ab-book__grid { grid-template-columns: 1fr; gap: 28px; }
	.ab-book__cover { max-width: 280px; margin: 0 auto; }
	.ab-direct { flex-direction: column; align-items: flex-start; }
	.ab-reviews__grid { grid-template-columns: 1fr; }
	.ab-extract { padding: 24px 20px; }
	.ab-filter__label { min-width: 0; flex-basis: 100%; text-align: center; margin: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.ab-card__cover img { transition: none; }
}
