/* =========================================================================
   书架 — content: generic pages, lists, WooCommerce cart / checkout / account,
   search, 404. Depends on base.css. WooCommerce's own layout CSS stays on these
   pages; this file only re-dresses it in the house tokens.
   ========================================================================= */

/* ---------- page frame ---------- */
.dj-page { padding-top: 28px; padding-bottom: 96px; }
.dj-page__head { margin: 0 0 40px; max-width: 46em; }
.dj-page__head .dj-crumbs { padding-top: 0; margin-bottom: 16px; }
.dj-page__title {
	font: 600 clamp(28px, 3.2vw, 40px)/1.3 var(--serif);
	letter-spacing: .02em; margin: 0 0 12px;
}
.dj-page__lead { font: 400 18px/1.7 var(--serif); color: var(--muted); margin: 0 0 24px; }
.dj-page--prose .dj-page__head { max-width: 38em; }
.dj-page--prose .dj-page__content { max-width: 38em; }
.dj-page--wide .dj-page__content { max-width: none; }
.dj-page--home .dj-page__content { padding-top: 24px; }

/* prose inside generic pages */
.dj-page__content h2, .dj-page__content h3, .dj-page__content h4 { font-family: var(--serif); font-weight: 600; line-height: 1.4; margin: 2em 0 .8em; }
.dj-page__content h2 { font-size: 1.5em; }
.dj-page__content h3 { font-size: 1.25em; }
.dj-page__content ul, .dj-page__content ol { padding-left: 1.4em; margin: 0 0 1.5em; }
.dj-page__content li { margin: 0 0 .4em; }
.dj-page__content img { margin: 1.5em 0; }
.dj-page__content figure { margin: 1.5em 0; }
.dj-page__content hr { border: 0; border-top: 1px solid var(--line); margin: 3em 0; }

/* ---------- buttons & forms (house dress for WP + WooCommerce controls) ---------- */
.dj-btn, .dj-shelf .button, .dj-shelf button.button, .dj-shelf input[type="submit"], .dj-shelf .wc-block-components-button {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 46px; padding: 0 24px;
	border: 1px solid var(--ink); border-radius: 2px;
	background: var(--ink); color: var(--paper);
	font: 500 14px/1 var(--sans); letter-spacing: .12em;
	cursor: pointer; text-decoration: none;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.dj-btn:hover, .dj-shelf .button:hover, .dj-shelf button.button:hover, .dj-shelf input[type="submit"]:hover { background: var(--walnut); border-color: var(--walnut); color: var(--paper); }
.dj-shelf .button.alt { background: var(--ink); }
.dj-shelf .button:disabled, .dj-shelf button:disabled { opacity: .5; cursor: default; }
.dj-btn--ghost, .dj-shelf .button--ghost { background: var(--paper); color: var(--ink); }
.dj-btn--ghost:hover { background: var(--beige); color: var(--ink); }

.dj-shelf input[type="text"], .dj-shelf input[type="email"], .dj-shelf input[type="tel"], .dj-shelf input[type="password"],
.dj-shelf input[type="search"], .dj-shelf input[type="number"], .dj-shelf input[type="url"], .dj-shelf textarea, .dj-shelf select,
.dj-shelf .select2-container--default .select2-selection--single {
	width: 100%; min-height: 46px; padding: 10px 14px;
	border: 1px solid var(--line); border-radius: 2px;
	background: var(--paper); color: var(--ink);
	font: 400 15px/1.5 var(--sans);
	transition: border-color .15s ease;
}
.dj-shelf textarea { min-height: 120px; }
.dj-shelf input:focus, .dj-shelf textarea:focus, .dj-shelf select:focus { outline: none; border-color: var(--ink); }
.dj-shelf .select2-container--default .select2-selection--single { display: flex; align-items: center; }
.dj-shelf .select2-container--default .select2-selection--single .select2-selection__arrow { height: 44px; }
.dj-shelf label { font-size: 13px; letter-spacing: .04em; color: var(--muted); }
.dj-shelf .form-row { margin-bottom: 16px; }
.dj-shelf .form-row label { display: block; margin-bottom: 6px; }
.dj-shelf .required { color: var(--danger); text-decoration: none; }
.dj-shelf input[type="checkbox"], .dj-shelf input[type="radio"] { accent-color: var(--ink); width: auto; min-height: 0; margin-right: 8px; }

.dj-searchbar { display: flex; gap: 10px; max-width: 32em; }
.dj-searchbar input[type="search"] { flex: 1; }

/* ---------- tables ---------- */
.dj-shelf table, .dj-shelf table.shop_table {
	width: 100%; border-collapse: collapse; border: 0; border-radius: 0;
	font-size: 14px; font-variant-numeric: tabular-nums;
}
.dj-shelf table th, .dj-shelf table td, .dj-shelf table.shop_table th, .dj-shelf table.shop_table td {
	text-align: left; padding: 14px 10px; border: 0; border-top: 1px solid var(--line); vertical-align: middle;
}
.dj-shelf table th, .dj-shelf table.shop_table th { font-size: 12px; letter-spacing: .14em; color: var(--muted); font-weight: 500; border-top: 0; padding-top: 0; }
.dj-shelf table tr:last-child td { border-bottom: 1px solid var(--line); }
.dj-shelf table.shop_table tfoot th, .dj-shelf table.shop_table tfoot td { border-top: 1px solid var(--line); font-size: 14px; letter-spacing: 0; color: var(--ink); padding-top: 14px; }
.dj-shelf table.shop_table tfoot .order-total td, .dj-shelf table.shop_table tfoot .order-total th { font: 500 18px/1.3 var(--serif); }
.dj-shelf .woocommerce-Price-amount { font-family: var(--serif); }

/* ---------- WooCommerce: cart ---------- */
.dj-shelf .woocommerce-cart-form .product-thumbnail img { width: 56px; height: auto; box-shadow: 0 10px 16px -12px rgba(30, 27, 24, .55); }
.dj-shelf .woocommerce-cart-form .product-name a { font-family: var(--serif); font-weight: 500; }
.dj-shelf .woocommerce-cart-form .product-remove a { display: inline-flex; width: 28px; height: 28px; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 50%; color: var(--muted) !important; text-decoration: none; }
.dj-shelf .woocommerce-cart-form .product-remove a:hover { border-color: var(--danger); color: var(--danger) !important; background: transparent; }
.dj-shelf .woocommerce-cart-form .quantity { display: inline-flex; border: 1px solid var(--line); border-radius: 2px; background: var(--paper); }
.dj-shelf .woocommerce-cart-form .quantity input { border: 0; width: 56px; min-height: 40px; text-align: center; }
.dj-shelf .coupon { display: flex; gap: 10px; align-items: stretch; }
.dj-shelf .coupon input[type="text"] { min-width: 180px; }
.dj-shelf .cart-collaterals { margin-top: 40px; }
.dj-shelf .cart_totals { background: var(--paper); border: 1px solid var(--beige); border-left: 3px solid var(--oak); padding: 24px; }
.dj-shelf .cart_totals h2 { font: 600 17px/1.3 var(--serif); letter-spacing: .08em; margin: 0 0 12px; }
.dj-shelf .cart_totals table { font-size: 15px; }
.dj-shelf .wc-proceed-to-checkout .button { width: 100%; margin-top: 16px; }
.dj-shelf .return-to-shop .button { background: var(--paper); color: var(--ink); }
.dj-shelf .cart-empty, .dj-shelf .woocommerce-mini-cart__empty-message { font: 400 18px/1.7 var(--serif); color: var(--muted); }

/* ---------- WooCommerce: checkout ---------- */
.dj-shelf .woocommerce-checkout .col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.dj-shelf .woocommerce-checkout .col2-set .col-1, .dj-shelf .woocommerce-checkout .col2-set .col-2 { width: auto; float: none; }
.dj-shelf .woocommerce-checkout h3, .dj-shelf #order_review_heading { font: 600 20px/1.3 var(--serif); margin: 0 0 20px; }
.dj-shelf #order_review { background: var(--paper); border: 1px solid var(--beige); border-left: 3px solid var(--oak); padding: 24px; margin-top: 12px; }
.dj-shelf .woocommerce-checkout-payment, .dj-shelf #payment { background: transparent; border-radius: 0; }
.dj-shelf #payment ul.payment_methods { padding: 0; border: 0; }
.dj-shelf #payment ul.payment_methods li { padding: 12px 0; border-top: 1px solid var(--line); }
.dj-shelf #payment div.payment_box { background: var(--beige); color: var(--ink); border-radius: 0; font-size: 14px; }
.dj-shelf #payment div.payment_box::before { border-bottom-color: var(--beige); }
.dj-shelf #payment .place-order { padding: 20px 0 0; }
.dj-shelf #place_order { width: 100%; min-height: 50px; }
.dj-shelf .woocommerce-form-coupon-toggle .woocommerce-info { margin-top: 0; }
.dj-shelf .woocommerce-order { font-size: 15px; }
.dj-shelf .woocommerce-thankyou-order-received { font: 400 22px/1.5 var(--serif); margin: 0 0 24px; }
.dj-shelf .woocommerce-order-overview { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); margin: 0 0 32px; padding: 0; }
.dj-shelf .woocommerce-order-overview li { background: var(--paper); padding: 12px 14px; font-size: 13px; color: var(--muted); border: 0; margin: 0; float: none; }
.dj-shelf .woocommerce-order-overview li strong { display: block; font: 500 16px/1.3 var(--serif); color: var(--ink); margin-top: 4px; }

/* ---------- WooCommerce: My Account ---------- */
.dj-shelf .woocommerce-account .woocommerce { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 56px; align-items: start; }
.dj-shelf .woocommerce-MyAccount-navigation { width: auto; float: none; }
.dj-shelf .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.dj-shelf .woocommerce-MyAccount-navigation li { margin: 0; border-bottom: 1px solid var(--line); }
.dj-shelf .woocommerce-MyAccount-navigation a { display: block; padding: 12px 0 12px 14px; font-size: 14px; letter-spacing: .04em; border-left: 3px solid transparent; }
.dj-shelf .woocommerce-MyAccount-navigation li.is-active a { border-left-color: var(--oak); color: var(--ink); font-weight: 500; background: var(--paper); }
.dj-shelf .woocommerce-MyAccount-content { width: auto; float: none; font-size: 15px; }
.dj-shelf .woocommerce-MyAccount-content h2, .dj-shelf .woocommerce-MyAccount-content h3 { font: 600 20px/1.3 var(--serif); margin: 0 0 16px; }
.dj-shelf .woocommerce-MyAccount-content .woocommerce-orders-table .button { min-height: 36px; padding: 0 14px; font-size: 12px; margin-right: 6px; }
.dj-shelf .woocommerce-Address { background: var(--paper); border: 1px solid var(--beige); padding: 20px; }
.dj-shelf .woocommerce-Address-title h3 { font-size: 16px; }
.dj-shelf .woocommerce-form-login, .dj-shelf .woocommerce-form-register, .dj-shelf .woocommerce-ResetPassword {
	max-width: 420px; margin: 0; padding: 28px; background: var(--paper); border: 1px solid var(--beige); border-radius: 0;
}
.dj-shelf .u-columns.col2-set#customer_login { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.dj-shelf .u-columns.col2-set#customer_login .col-1, .dj-shelf .u-columns.col2-set#customer_login .col-2 { width: auto; float: none; }
.dj-shelf .u-columns h2 { font: 600 22px/1.3 var(--serif); margin: 0 0 16px; }
.dj-shelf .woocommerce-form-login .button, .dj-shelf .woocommerce-form-register .button { width: 100%; }
.dj-shelf .woocommerce-LostPassword { font-size: 13px; }
.dj-shelf .woocommerce-LostPassword a { border-bottom: 1px solid var(--oak); }

/* ---------- author page ---------- */
.dj-author-page__profile { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 36px; align-items: start; max-width: 50em; margin: 8px 0 24px; }
.dj-author-page__avatar img { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; box-shadow: 0 10px 18px -14px rgba(30, 27, 24, .5); }
.dj-author-page__body .dj-eyebrow { margin-bottom: 8px; }
.dj-author-page__name { font: 600 28px/1.3 var(--serif); letter-spacing: .02em; margin: 0 0 14px; }
.dj-page--author .dj-section:first-of-type { border-top: 1px solid var(--line); }
.dj-widgets .widget { margin: 0 0 32px; font-size: 15px; }
.dj-widgets .widget-title { display: flex; align-items: center; gap: 16px; font: 600 15px/1 var(--serif); letter-spacing: .32em; color: var(--muted); margin: 0 0 16px; }
.dj-widgets .widget-title::before { content: ""; width: 28px; height: 1px; background: var(--oak); flex: none; }
.dj-widgets ul { list-style: none; margin: 0; padding: 0; }
.dj-widgets li { padding: 8px 0; border-top: 1px solid var(--line); }

/* ---------- lists: posts, toolbar, pagination ---------- */
.dj-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin: 0 0 28px; padding-bottom: 16px; border-bottom: 1px solid var(--line); font-size: 13px; color: var(--muted); }
.dj-toolbar .woocommerce-result-count { margin: 0; }
.dj-toolbar .woocommerce-ordering { margin: 0; }
.dj-toolbar .woocommerce-ordering select { min-height: 38px; padding: 6px 32px 6px 12px; width: auto; font-size: 13px; }
.dj-toolbar--after { border-bottom: 0; border-top: 1px solid var(--line); margin: 40px 0 0; padding: 20px 0 0; justify-content: center; }
.dj-books--grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.dj-books--one { display: block; }
.dj-books--one .dj-book { max-width: 180px; }

.dj-posts { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; max-width: 54em; }
.dj-posts__item { border-top: 1px solid var(--line); padding: 32px 0; }
.dj-posts__item:last-child { border-bottom: 1px solid var(--line); }
.dj-post-card { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px 32px; }
.dj-post-card:has(.dj-post-card__media) { grid-template-columns: 220px minmax(0, 1fr); }
.dj-post-card__media img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.dj-post-card__title { font: 600 22px/1.4 var(--serif); margin: 6px 0 10px; }
.dj-post-card__title a:hover { color: var(--walnut); }
.dj-post-card__excerpt { font-size: 15px; line-height: 1.8; color: var(--muted); margin: 0 0 8px; }
.dj-empty { font: 400 18px/1.7 var(--serif); color: var(--muted); }

.dj-shelf .woocommerce-pagination ul.page-numbers, .dj-shelf .pagination .nav-links {
	display: flex; justify-content: center; gap: 6px; list-style: none; margin: 0; padding: 0; border: 0;
}
.dj-shelf .woocommerce-pagination ul.page-numbers li { border: 0; margin: 0; }
.dj-shelf .page-numbers:not(ul) {
	display: inline-flex; min-width: 40px; height: 40px; padding: 0 12px; align-items: center; justify-content: center;
	border: 1px solid var(--line); border-radius: 2px; font-size: 14px; font-variant-numeric: tabular-nums; color: var(--ink); background: transparent;
}
.dj-shelf .page-numbers:not(ul):hover { border-color: var(--ink); background: var(--paper); color: var(--ink); }
.dj-shelf .page-numbers.current { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.dj-shelf .pagination { margin-top: 40px; }

/* ---------- Gon loop markup inside shelf pages ----------
   WPBakery product shortcodes (home, promo pages) still print the parent theme's product loop:
   .product-wrapper with wishlist / quick-view / tooltips / carousels, whose CSS and JS shelf mode
   drops. Until M2 replaces those pages, dress the loop as cubbies and hide controls the shelf
   design does not have. Scoped to loop markup only — the single-product summary is untouched. */
.dj-shelf ul.products {
	list-style: none; margin: 0 0 24px; padding: 0;
	display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 36px 32px;
}
.dj-shelf ul.products li.product, .dj-shelf ul.products li.product-category { margin: 0; padding: 0; width: auto; float: none; min-width: 0; }
.dj-shelf ul.products::before, .dj-shelf ul.products::after { display: none; }
.dj-shelf .product-wrapper { position: static; }
.dj-shelf .product-wrapper .thumbnail-wrapper { position: static; }
.dj-shelf .product-wrapper .thumbnail-wrapper figure {
	margin: 0; height: 260px; padding: 0 10px;
	display: flex; align-items: flex-end; justify-content: center;
	border-bottom: 3px solid var(--oak);
	background: linear-gradient(to top, rgba(194, 153, 106, .10), rgba(194, 153, 106, 0) 45%);
}
.dj-shelf .product-wrapper .thumbnail-wrapper img {
	max-height: 100%; width: auto; max-width: 100%; height: auto; object-fit: contain;
	box-shadow: 0 14px 22px -16px rgba(30, 27, 24, .55); transition: transform .2s ease;
}
.dj-shelf .product-wrapper:hover .thumbnail-wrapper img { transform: translateY(-3px); }
.dj-shelf .product-wrapper .product-image-back { display: none !important; }
.dj-shelf .product-wrapper .meta-wrapper { padding: 0; text-align: left; }
.dj-shelf .product-wrapper .product-name, .dj-shelf .product-wrapper .heading-title {
	font: 500 15px/1.55 var(--serif); margin: 16px 0 4px; text-transform: none; letter-spacing: 0;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.dj-shelf .product-wrapper .product-name a:hover { color: var(--walnut); }
.dj-shelf .product-wrapper .price { display: block; font: 400 14px/1.5 var(--serif); font-variant-numeric: tabular-nums; color: var(--ink); margin: 0; }
.dj-shelf .product-wrapper .price del { color: var(--muted); margin-right: 6px; }
.dj-shelf .product-wrapper .price ins { text-decoration: none; }
.dj-shelf .product-wrapper .audiobook-price-login-wrapper { display: block; }
.dj-shelf .product-wrapper .audiobook-login-required-notice,
.dj-shelf .product-wrapper .audiobook-already-purchased-notice { font: 400 12px/1.5 var(--sans); color: var(--muted); margin-top: 2px; }
.dj-shelf .product-wrapper .audiobook-login-link { border-bottom: 1px solid var(--oak); }

/* controls the shelf design does not have, and tooltip spans that would print as text */
.dj-shelf .product-group-button, .dj-shelf .button-in, .dj-shelf .yith-wcwl-add-to-wishlist,
.dj-shelf .ts-tooltip, .dj-shelf .loop-add-to-cart, .dj-shelf .product-sku,
.dj-shelf .star-rating, .dj-shelf .ts-product-brand, .dj-shelf .product-label, .dj-shelf .onsale { display: none !important; }
.dj-shelf a.add_to_wishlist, .dj-shelf a.quickshop { display: none !important; }

/* 作者阵容 — [dj_display_authors] (functions/woocommerce.php); its styles live in the dropped child style.css */
.dj-shelf .wig_title {
	display: flex; align-items: center; gap: 16px;
	font: 600 15px/1 var(--serif); letter-spacing: .32em; color: var(--muted);
	margin: 0 0 32px;
}
.dj-shelf .wig_title::before { content: ""; width: 28px; height: 1px; background: var(--oak); flex: none; }
.dj-shelf .dj_authors_list { display: grid; gap: 32px 20px; margin: 0 0 24px; }
.dj-shelf .dj_author_item { min-width: 0; text-align: center; }
.dj-shelf .dj_author_item > a { display: block; }
.dj-shelf .author_avatar {
	width: 100%; max-width: 120px; aspect-ratio: 1 / 1; margin: 0 auto;
	border-radius: 50%; background-size: cover; background-position: center top; background-color: var(--beige);
	box-shadow: 0 10px 18px -14px rgba(30, 27, 24, .5);
	transition: transform .2s ease;
}
.dj-shelf .dj_author_item:hover .author_avatar { transform: translateY(-3px); }
.dj-shelf .dj_author_item h4 { font: 500 14px/1.5 var(--serif); margin: 12px 0 0; letter-spacing: .02em; }
.dj-shelf .dj_author_item h4 a:hover { color: var(--walnut); }

/* 畅销书 — [best_selling_products30days] (functions/woocommerce.php): covers are background-image boxes,
   so they stand on the shelf line with contain-fit instead of an <img> shadow */
.dj-shelf .dj_best_selling_products { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 36px 32px; margin: 0 0 24px; }
.dj-shelf .dj_bs_product_item { min-width: 0; }
.dj-shelf .dj_bs_product_item > a { display: block; }
.dj-shelf .dj_bs_product_img {
	height: 260px; margin: 0 10px;
	background-size: contain; background-position: center bottom; background-repeat: no-repeat;
	border-bottom: 3px solid var(--oak);
	background-color: transparent;
	background-image: linear-gradient(to top, rgba(194, 153, 106, .10), rgba(194, 153, 106, 0) 45%);
	transition: transform .2s ease;
}
/* the cover sits in an inline style on the same element; stack it above the gradient */
.dj-shelf .dj_bs_product_img[style*="background-image"] { background-size: contain, 100% 100%; background-position: center bottom, center; }
.dj-shelf .dj_bs_product_item:hover .dj_bs_product_img { transform: translateY(-3px); }
.dj-shelf .dj_bs_product_item h3 {
	font: 500 15px/1.55 var(--serif); margin: 16px 0 4px; text-transform: none; letter-spacing: 0;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.dj-shelf .dj_bs_product_item h3 a:hover { color: var(--walnut); }
.dj-shelf .dj_bs_product_brand { font-size: 13px; color: var(--muted); margin: 0 0 2px; }
.dj-shelf .dj_bs_product_price { font: 400 14px/1.5 var(--serif); font-variant-numeric: tabular-nums; margin: 0; }
.dj-shelf .dj_bs_product_price del { color: var(--muted); margin-right: 6px; }
.dj-shelf .dj_bs_product_price ins { text-decoration: none; }

/* Gon product sliders: the owl markup nests stage › item › product-group › 2 stacked products,
   plus cloned items at both ends. Flatten every wrapper with display:contents so each
   section.product is one grid cell, hide the clones, and lay the lot out as a shelf. */
.dj-shelf .owl-carousel, .dj-shelf .ts-product .products {
	display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 36px 32px;
	width: auto !important; transform: none !important;
}
.dj-shelf .owl-carousel .owl-stage-outer, .dj-shelf .owl-carousel .owl-stage,
.dj-shelf .owl-carousel .owl-item, .dj-shelf .product-group { display: contents; }
.dj-shelf .owl-carousel .owl-item.cloned { display: none; }
.dj-shelf .owl-carousel section.product, .dj-shelf .ts-product section.product { min-width: 0; margin: 0; width: auto; float: none; }
.dj-shelf .owl-nav, .dj-shelf .owl-dots, .dj-shelf .owl-controls { display: none !important; }
/* VC tab panels carry an inline min-height measured on the old stacked layout */
.dj-shelf .vc_tta-panel { min-height: 0 !important; }
/* the shelf design shows an author line, not a category list, under a cover */
.dj-shelf .product-wrapper .product-categories { display: none !important; }

/* ---------- responsive ---------- */
@media (max-width: 1100px) {
	.dj-books--grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.dj-shelf ul.products, .dj-shelf .owl-carousel, .dj-shelf .ts-product .products, .dj-shelf .dj_best_selling_products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	.dj-shelf ul.products, .dj-shelf .owl-carousel, .dj-shelf .ts-product .products, .dj-shelf .dj_best_selling_products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 20px; }
	.dj-shelf .product-wrapper .thumbnail-wrapper figure, .dj-shelf .dj_bs_product_img { height: 210px; }
	/* the shortcode writes its column count inline, so these must win */
	.dj-shelf .dj_authors_list { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 24px 14px; }
	.dj-shelf .author_avatar { max-width: 96px; }
}
@media (max-width: 700px) {
	.dj-shelf ul.products, .dj-shelf .owl-carousel, .dj-shelf .ts-product .products, .dj-shelf .dj_best_selling_products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dj-shelf .dj_authors_list { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
	.dj-shelf .dj_author_item h4 { font-size: 13px; }
}
@media (max-width: 900px) {
	.dj-page { padding-top: 16px; padding-bottom: 64px; }
	.dj-page__head { margin-bottom: 28px; }
	.dj-books--grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.dj-shelf .woocommerce-checkout .col2-set { grid-template-columns: 1fr; gap: 24px; }
	.dj-shelf .woocommerce-account .woocommerce { grid-template-columns: 1fr; gap: 28px; }
	.dj-shelf .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 0 6px; border-top: 0; }
	.dj-shelf .woocommerce-MyAccount-navigation li { border-bottom: 0; }
	.dj-shelf .woocommerce-MyAccount-navigation a { padding: 8px 12px; border-left: 0; border-bottom: 2px solid transparent; }
	.dj-shelf .woocommerce-MyAccount-navigation li.is-active a { border-left: 0; border-bottom-color: var(--oak); background: transparent; }
	.dj-shelf .u-columns.col2-set#customer_login { grid-template-columns: 1fr; }
	.dj-post-card:has(.dj-post-card__media) { grid-template-columns: 1fr; }
	.dj-author-page__profile { grid-template-columns: 88px 1fr; gap: 20px; }
	.dj-author-page__avatar img { width: 88px; height: 88px; }
	.dj-author-page__name { font-size: 24px; }
}
@media (max-width: 700px) {
	.dj-books--grid { display: grid; overflow: visible; margin: 0; padding: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; }
	.dj-books--grid .dj-book { flex: none; }
	.dj-shelf table.shop_table_responsive tr td::before { color: var(--muted); font-size: 12px; letter-spacing: .1em; }
	.dj-searchbar { flex-direction: column; }
}
