/* =========================================================================
   书架 — single product: hero (cover on its shelf), summary, pricing, member tiers, facts,
   电子书 CTA, author block. Depends on base.css.
   ========================================================================= */

/* ---------- hero ---------- */
.dj-hero {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: 72px;
	align-items: start;
	max-width: var(--wrap);
	margin: 0 auto;
	padding: 28px var(--gutter) 96px;
}

/* the wall + shelf the book rests on */
.dj-cover__stage {
	margin: 0;
	position: relative;
	display: flex; align-items: flex-end; justify-content: center;
	min-height: 480px;
	padding: 64px 48px 0;
	background: var(--paper);
	border-bottom: 6px solid var(--oak);
}
.dj-cover__stage::after {          /* warm light falling on the shelf */
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 120px;
	background: linear-gradient(to top, rgba(194, 153, 106, .12), rgba(194, 153, 106, 0));
	pointer-events: none;
}
.dj-cover__img {
	position: relative; z-index: 1;
	height: min(72vh, 680px); width: auto; max-width: 100%;
	object-fit: contain; object-position: center bottom;   /* keeps the ratio if max-width caps the box */
	filter: drop-shadow(0 22px 18px rgba(30, 27, 24, .26)) drop-shadow(0 2px 2px rgba(30, 27, 24, .10));
}

/* wraps into rows: a long gallery must never widen the page */
.dj-thumbs { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; max-width: 100%; }
.dj-thumbs li { margin: 0; flex: none; }
.dj-thumbs a { display: block; width: 56px; border: 1px solid var(--line); background: var(--paper); padding: 3px; }
.dj-thumbs a:hover { border-color: var(--oak); }
.dj-thumbs a[aria-current="true"] { border-color: var(--ink); }
.dj-thumbs img { width: 100%; height: 72px; object-fit: contain; }

/* audiobook trial player, printed under the cover for audiobook products */
.dj-cover__extra { margin-top: 28px; }
/* ebook button under the cover (duplicate of the summary one) */
.dj-cover__cta { margin-top: 24px; }
.dj-cover__cta .dj-ebook { margin-top: 0; }

/* summary column */
.dj-summary { position: sticky; top: 100px; }


.dj-title {
	font: 600 clamp(32px, 3.6vw, 46px)/1.28 var(--serif);
	letter-spacing: .02em;
	margin: 0 0 12px;
}
.dj-byline { font-size: 16px; color: var(--muted); margin: 0; }
.dj-byline b { font-weight: 500; color: var(--ink); }
.dj-byline a:hover b { color: var(--walnut); }

.dj-lead { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); }
.dj-lead p { margin: 0; font: 400 21px/1.7 var(--serif); }
.dj-lead p + p { margin-top: .2em; }
.dj-lead p:nth-child(n+3) { font: 400 15px/1.8 var(--sans); color: var(--muted); }
.dj-lead p:nth-child(3) { margin-top: 18px; }

/* price / member / purchase */
.dj-buy { margin-top: 32px; }
.dj-buy .price {
	font: 500 28px/1.1 var(--serif);
	font-variant-numeric: tabular-nums;
	margin: 0 0 12px;
	display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px;
}
.dj-buy .price del { color: var(--muted); font-size: .65em; text-decoration: line-through; opacity: .8; }
.dj-buy .price ins { text-decoration: none; }
.dj-buy .woocommerce-Price-currencySymbol { font-size: .62em; margin-right: .12em; }

/* member pricing — the one framed element in the summary, part of the pricing unit */
.dj-member {
	margin: 16px 0 0; padding: 18px 20px 6px;
	background: var(--paper);
	border: 1px solid var(--beige); border-left: 3px solid var(--oak);
	font-size: 14px; color: var(--muted);
}
.dj-member h4 { font: 600 17px/1.3 var(--serif); letter-spacing: .08em; color: var(--ink); margin: 0 0 8px; }
.dj-member p { margin: 0 0 12px; line-height: 1.6; }
.dj-member p:not(.dj_user_discount_notice) { color: var(--ink); font-weight: 500; }   /* 当前会员等级: … */
.dj-member a { border-bottom: 1px solid var(--oak); color: var(--ink); }
.dj-member a:hover { color: var(--walnut); border-bottom-color: var(--walnut); }
.dj-member table { border-collapse: collapse; width: 100%; margin: 0 0 12px; }
.dj-member th, .dj-member td { text-align: left; font-weight: 400; padding: 11px 8px; border-top: 1px solid var(--line); font-variant-numeric: tabular-nums; vertical-align: baseline; }
.dj-member th { font-size: 12px; letter-spacing: .14em; color: var(--muted); border-top: 0; padding-top: 0; padding-bottom: 6px; }
.dj-member th:first-child, .dj-member td:first-child { padding-left: 0; width: 34%; }
.dj-member th:last-child, .dj-member td:last-child { padding-right: 0; }
.dj-member td:first-child { font-size: 15px; font-weight: 500; color: var(--ink); }
.dj-member td .amount { font: 500 20px/1 var(--serif); color: var(--ink); margin-left: 4px; }
.dj-member td .woocommerce-Price-currencySymbol { font-size: .62em; margin-right: .1em; }
.dj-member tr:last-child td { border-bottom: 1px solid var(--line); }
/* logged-in member: their own tier row is filled and marked */
.dj-member td.tb_currenttier { background: var(--beige); color: var(--ink); }
.dj-member td.tb_currenttier:first-child { box-shadow: inset 3px 0 0 var(--oak); padding-left: 12px; }
.dj-member td.tb_currenttier:last-child { padding-right: 12px; }
/* variable products: a spec row precedes each pair of tier rows */
.dj-member td[colspan] { font-size: 13px; color: var(--muted); text-align: center; padding-top: 16px !important; }
.dj-member td[colspan] em { font-style: normal; letter-spacing: .06em; }

.dj-buy .stock { font-size: 13px; color: var(--muted); margin: 22px 0 10px; }
.dj-buy .stock.out-of-stock { color: var(--danger); }

.dj-buy form.cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; margin: 0; }
.dj-buy .quantity {
	display: inline-flex; align-items: stretch;
	height: 50px; border: 1px solid var(--ink); border-radius: 2px; background: var(--paper);
}
.dj-buy .quantity input { border: 0; background: transparent; text-align: center; height: 100%; margin: 0; }
.dj-buy .quantity .minus, .dj-buy .quantity .plus { width: 44px; cursor: pointer; font-size: 18px; color: var(--ink); }
.dj-buy .quantity .minus:hover, .dj-buy .quantity .plus:hover { background: var(--beige); }
.dj-buy .quantity .qty { width: 52px; font-size: 15px; -moz-appearance: textfield; appearance: textfield; }
.dj-buy .quantity .qty::-webkit-outer-spin-button,
.dj-buy .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.dj-buy .quantity .qty:focus { outline: none; }

.dj-buy .single_add_to_cart_button {
	flex: 1 1 200px; height: 50px; padding: 0 28px;
	border: 1px solid var(--ink); border-radius: 2px;
	background: var(--ink); color: var(--paper);
	font: 500 14px/1 var(--sans); letter-spacing: .14em;
	cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease;
}
.dj-buy .single_add_to_cart_button:hover { background: var(--walnut); border-color: var(--walnut); }
.dj-buy .single_add_to_cart_button:disabled { opacity: .5; cursor: default; }

/* WooCommerce "back in stock" / other after-form blocks, quietly */
.dj-buy .wc-block-components-notice-banner, .dj-buy .woocommerce-info { margin-top: 12px; }

/* book facts */
.dj-info {
	display: grid; grid-template-columns: 5.5em minmax(0, 1fr);
	margin: 40px 0 0; font-size: 14px;
}
.dj-info dt, .dj-info dd { margin: 0; padding: 10px 0; border-top: 1px solid var(--line); }
.dj-info dt { color: var(--muted); letter-spacing: .06em; }
.dj-info dd { font-variant-numeric: tabular-nums; }
.dj-info dt:nth-last-of-type(1), .dj-info dd:last-of-type { border-bottom: 1px solid var(--line); }
.dj-info a { border-bottom: 1px solid transparent; }
.dj-info a:hover { border-bottom-color: var(--oak); }

/* ---------- 电子书 CTA (printed by dj_epub_shelf_cta under the cart form) ---------- */
.dj-ebook { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; }
.dj-ebook__read, .dj-ebook__trial {
	flex: 1 1 200px; height: 50px; padding: 0 28px;
	display: inline-flex; align-items: center; justify-content: center;
	border: 1px solid var(--ink); border-radius: 2px;
	font: 500 14px/1 var(--sans); letter-spacing: .14em;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.dj-ebook__read { background: var(--ink); color: var(--paper); }
.dj-ebook__read:hover { background: var(--walnut); border-color: var(--walnut); color: var(--paper); }
.dj-ebook__trial { background: var(--paper); color: var(--ink); }
.dj-ebook__trial:hover { background: var(--beige); color: var(--ink); }
.dj-ebook__note { flex-basis: 100%; margin: 0; font-size: 13px; color: var(--muted); }

/* ---------- responsive ---------- */
@media (max-width: 1100px) {	.dj-hero { gap: 48px; }
}

@media (max-width: 900px) {	.dj-hero { grid-template-columns: 1fr; gap: 36px; padding: 16px var(--gutter) 64px; }	.dj-cover__stage { min-height: 0; padding: 36px 28px 0; }	.dj-cover__img { height: min(60vh, 520px); }	.dj-summary { position: static; }	.dj-title { font-size: clamp(28px, 8vw, 36px); }	.dj-lead p { font-size: 19px; }	.dj-buy .single_add_to_cart_button { flex-basis: 100%; }	.dj-ebook__read, .dj-ebook__trial { flex-basis: 100%; }	.dj-author__grid { grid-template-columns: 88px 1fr; gap: 20px; }	.dj-author__avatar img { width: 88px; height: 88px; }
}

/* ---------- print ---------- */
@media print {	.dj-header, .dj-footer, .dj-crumbs, .dj-buy form.cart, .dj-member, .dj-related, .dj-thumbs, .dj-skip, .dj-ebook { display: none !important; }	.dj-hero { grid-template-columns: 1fr 1fr; gap: 24px; padding: 0; }	.dj-cover__stage { background: none; border: 0; padding: 0; min-height: 0; }	.dj-cover__img { filter: none; height: auto; max-height: 60vh; }
}

@media (max-width: 900px) {
	.dj-cover__extra { margin-top: 20px; }
}
