/* plantbaes shop: WordPress / Kadence / WooCommerce layer on top of the generated
   mockup styles (shop-mockup.css). Everything here is scoped to body.pbs-on.
   Rule of thumb: the mockup is the source of truth, so anything Kadence or Woo
   adds that the mockup does not have (hover shadows, transforms, background swaps,
   square corners, uppercase) is neutralised explicitly for every state. */

/* ---------- page frame ---------- */
body.pbs-on,
body.pbs-on #wrapper,
body.pbs-on #inner-wrap,
body.pbs-on .site { background: var(--pbs-cream); }
body.pbs-on #inner-wrap { padding: 0; }
/* short pages (empty cart): stretch the content so the footer sits on the bottom edge */
body.pbs-on #inner-wrap { flex: 1 0 auto; display: flex; flex-direction: column; }
body.pbs-on #inner-wrap > .pbs-main { flex: 1 0 auto; }
body.pbs-on .pbs-main { display: block; }
body.pbs-on .pbs-anchor { display: block; position: relative; top: -20px; }
body.pbs-on [hidden] { display: none !important; }
body.pbs-on .pbs-section,
body.pbs-on #ebooks,
body.pbs-on #reviews { scroll-margin-top: 24px; }
body.pbs-on .pbs-notices .woocommerce-notices-wrapper:not(:empty) { padding-top: 24px; }

/* Kadence's customizer capitalises headings; the mockup is sentence case */
body.pbs-on h1, body.pbs-on h2, body.pbs-on h3, body.pbs-on h4 { text-transform: none; }

/* ---------- buttons: identical in every state except where the mockup says so ---------- */
body.pbs-on .pbs-btn,
body.pbs-on .pbs-btn:hover,
body.pbs-on .pbs-btn:focus,
body.pbs-on .pbs-btn:active,
body.pbs-on .pbs-btn:visited {
	text-decoration: none;
	text-transform: none;
	letter-spacing: normal;
	transform: none;
	filter: none;
	min-height: 0;
	transition: background-color .15s ease;
}
body.pbs-on .pbs-btn:focus:not(:focus-visible) { outline: none; }
body.pbs-on .pbs-btn-primary,
body.pbs-on .pbs-btn-primary:visited,
body.pbs-on .pbs-btn-primary:focus,
body.pbs-on .pbs-btn-primary:active { background: var(--pbs-plum); color: #fff; border-color: transparent; box-shadow: 0 8px 18px -10px rgba(74,47,61,.55); }
body.pbs-on .pbs-btn-primary:hover { background: var(--pbs-plum-deep); color: #fff; border-color: transparent; box-shadow: 0 8px 18px -10px rgba(74,47,61,.55); }
body.pbs-on .pbs-btn-outline,
body.pbs-on .pbs-btn-outline:visited,
body.pbs-on .pbs-btn-outline:hover,
body.pbs-on .pbs-btn-outline:focus,
body.pbs-on .pbs-btn-outline:active { background: transparent; color: var(--pbs-plum); border-color: var(--pbs-plum); box-shadow: none; }
body.pbs-on .pbs-btn-soft,
body.pbs-on .pbs-btn-soft:visited,
body.pbs-on .pbs-btn-soft:hover,
body.pbs-on .pbs-btn-soft:focus,
body.pbs-on .pbs-btn-soft:active { background: var(--pbs-plum-tint); color: var(--pbs-plum-deep); border-color: transparent; box-shadow: none; }
body.pbs-on button.pbs-btn { font-family: var(--pbs-sans); }

/* text links inside cards (mockup: no underline, colour inherited) */
body.pbs-on .pbs-book h3 a,
body.pbs-on .pbs-pantry h3 a,
body.pbs-on .pbs-pcard h3 a,
body.pbs-on .pbs-line .pbs-t a,
body.pbs-on .pbs-item .pbs-name { text-decoration: none; color: inherit; }
body.pbs-on .pbs-line .pbs-t a:hover,
body.pbs-on .pbs-item .pbs-name:hover,
body.pbs-on .pbs-book h3 a:hover { color: inherit; }

/* ---------- header ---------- */
body.pbs-on .pbs-site-header { position: relative; z-index: 50; }
body.pbs-on .pbs-site-header a,
body.pbs-on .pbs-site-header a:hover,
body.pbs-on .pbs-site-header a:focus { color: #fff; }
body.pbs-on .pbs-nav-item { position: relative; }
body.pbs-on .pbs-sub {
	position: absolute; top: 100%; left: -18px; min-width: 230px; padding: 10px 0;
	background: #fff; border-radius: var(--pbs-r-sm); box-shadow: var(--pbs-shadow-lift);
	opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .15s, transform .15s, visibility .15s;
}
body.pbs-on .pbs-has-sub:hover .pbs-sub,
body.pbs-on .pbs-has-sub:focus-within .pbs-sub { opacity: 1; visibility: visible; transform: none; }
body.pbs-on .pbs-site-header nav .pbs-sub a {
	display: block; padding: 9px 18px; color: var(--pbs-ink); opacity: 1;
	font: 500 14px/1.3 var(--pbs-sans); letter-spacing: 0; text-transform: none;
}
body.pbs-on .pbs-site-header nav .pbs-sub a:hover,
body.pbs-on .pbs-site-header nav .pbs-sub a:focus { color: var(--pbs-plum); background: var(--pbs-plum-tint); }
/* active nav underline is white (the mockup's tan read as brown on plum) */
body.pbs-on .pbs-site-header nav a.pbs-active::after { background: #fff; }
body.pbs-on .pbs-cart-count[hidden] { display: none !important; }
body.pbs-on .pbs-menu-toggle,
body.pbs-on .pbs-menu-close {
	background: none; border: 0; padding: 0; margin: 0; color: #fff; cursor: pointer; display: flex;
	box-shadow: none; min-height: 0; line-height: 1;
}
body.pbs-on .pbs-menu-toggle:hover,
body.pbs-on .pbs-menu-toggle:focus,
body.pbs-on .pbs-menu-close:hover,
body.pbs-on .pbs-menu-close:focus { background: none; color: #fff; box-shadow: none; }
body.pbs-on .pbs-site-header .pbs-m-only button svg { width: 24px; height: 24px; }

/* mobile drawer */
body.pbs-on .pbs-drawer {
	position: fixed; inset: 0; z-index: 9999; background: var(--pbs-plum); color: #fff;
	overflow-y: auto; padding: 0 24px 40px;
}
body.pbs-on .pbs-drawer-head { height: 76px; display: flex; align-items: center; justify-content: space-between; }
body.pbs-on .pbs-drawer-head svg { width: 26px; height: 26px; }
body.pbs-on .pbs-drawer-group { border-top: 1px solid rgba(255,255,255,.2); padding: 14px 0; }
body.pbs-on .pbs-drawer a { color: #fff; text-decoration: none; display: block; }
body.pbs-on .pbs-drawer-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
body.pbs-on .pbs-drawer-top { font: 600 13px/1.4 var(--pbs-sans); letter-spacing: .17em; text-transform: uppercase; padding: 6px 0; flex: 1; }
body.pbs-on .pbs-drawer-toggle,
body.pbs-on .pbs-drawer-toggle:hover,
body.pbs-on .pbs-drawer-toggle:focus {
	background: none; border: 0; box-shadow: none; min-height: 0; margin: 0; padding: 8px; color: #fff; cursor: pointer; display: flex;
}
body.pbs-on .pbs-drawer-toggle svg { width: 14px; height: 14px; transition: transform .15s; }
body.pbs-on .pbs-drawer-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
body.pbs-on .pbs-drawer-sub { padding-top: 4px; }
body.pbs-on .pbs-drawer-top.pbs-active { color: var(--pbs-tan); }
body.pbs-on .pbs-drawer-sub a { font: 400 15.5px/1.4 var(--pbs-sans); padding: 7px 0 7px 12px; opacity: .9; }
body.pbs-on.pbs-drawer-open { overflow: hidden; }

/* ---------- cards ---------- */
body.pbs-on .pbs-book .pbs-cover img { max-height: 100%; }
body.pbs-on .pbs-item .pbs-ph img,
body.pbs-on .pbs-pcard .pbs-ph img { width: auto; height: auto; max-width: 100%; max-height: 100%; }
body.pbs-on .pbs-adp .pbs-photo img { width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; }
body.pbs-on .pbs-why p + p { margin-top: 12px; }

/* ebook gallery thumbnails are buttons (the mockup shows bare images) */
body.pbs-on .pbs-thumb,
body.pbs-on .pbs-thumb:hover,
body.pbs-on .pbs-thumb:focus,
body.pbs-on .pbs-thumb:active { background: none; border: 0; padding: 0; margin: 0; cursor: pointer; box-shadow: none; display: block; min-height: 0; }
body.pbs-on .pbs-gallery .pbs-main img { width: 100%; height: auto; }

/* reviews */
body.pbs-on .pbs-review-form { margin-top: 28px; background: #fff; border-radius: var(--pbs-r-md); box-shadow: var(--pbs-shadow); padding: 26px; }
body.pbs-on .pbs-review-form #comments,
body.pbs-on .pbs-review-form .woocommerce-noreviews { display: none; }
body.pbs-on .pbs-review-form .comment-reply-title { font: 500 22px/1.2 var(--pbs-serif); display: block; margin-bottom: 12px; }
body.pbs-on .pbs-review-form textarea,
body.pbs-on .pbs-review-form input[type="text"],
body.pbs-on .pbs-review-form input[type="email"] { width: 100%; border: 1px solid #ddd5cc; border-radius: 12px; padding: 12px 16px; font: 400 15.5px/1.5 var(--pbs-sans); background: #fff; box-shadow: none; }
body.pbs-on .pbs-review-form .stars a { color: var(--pbs-tan); }
body.pbs-on .pbs-review-form p { margin-bottom: 14px; }
body.pbs-on .pbs-review-form .form-submit input[type="submit"],
body.pbs-on .pbs-review-form .form-submit input[type="submit"]:hover,
body.pbs-on .pbs-review-form .form-submit input[type="submit"]:focus {
	background: var(--pbs-plum); color: #fff; border: 0; border-radius: var(--pbs-pill); padding: 13px 24px;
	font: 600 15px/1 var(--pbs-sans); box-shadow: none; transform: none; text-transform: none; letter-spacing: normal; cursor: pointer;
}
body.pbs-on .pbs-review-form .form-submit input[type="submit"]:hover { background: var(--pbs-plum-deep); }

/* ---------- cart ---------- */
body.pbs-on .pbs-line + .pbs-line,
body.pbs-on .pbs-line-next { border-top: 1px solid var(--pbs-rule); padding-top: 20px; margin-top: 20px; }
body.pbs-on .pbs-line img { width: 96px; height: 96px; object-fit: contain; background: var(--pbs-plum-tint); border-radius: var(--pbs-r-sm); padding: 8px; }
body.pbs-on .pbs-line .pbs-rm,
body.pbs-on .pbs-line .pbs-rm:hover,
body.pbs-on .pbs-line .pbs-rm:active,
body.pbs-on .pbs-line .pbs-rm:focus { color: var(--pbs-plum); text-decoration: underline; }
body.pbs-on .pbs-upsell + .pbs-upsell { margin-top: 14px; }
body.pbs-on .pbs-fx { text-align: right; margin-top: 2px; }
body.pbs-on .pbs-fx-est { font: 600 14px/1.4 var(--pbs-sans); color: var(--pbs-ink); }
body.pbs-on .pbs-fx-note { font-size: 12.5px; line-height: 1.45; color: var(--pbs-muted); margin-top: 2px; }
body.pbs-on .pbs-fx { text-align: right; margin-top: 2px; }
body.pbs-on .pbs-fx-est { font: 600 14px/1.4 var(--pbs-sans); color: var(--pbs-ink); }
body.pbs-on .pbs-fx-note { font-size: 12.5px; line-height: 1.45; color: var(--pbs-muted); margin-top: 2px; }
body.pbs-on .pbs-sum .pbs-rm { font-size: 13px; color: var(--pbs-plum); margin-left: 6px; }
body.pbs-on .pbs-coupon,
body.pbs-on .pbs-coupon:hover,
body.pbs-on .pbs-coupon:focus {
	background: none; border: 0; padding: 0; box-shadow: none; min-height: 0; cursor: pointer;
	font: 400 14px/1.6 var(--pbs-sans); color: var(--pbs-plum); text-decoration: underline; margin-top: 14px; display: inline-block; text-transform: none; letter-spacing: normal;
}
body.pbs-on .pbs-coupon-form { display: flex; gap: 10px; margin-top: 12px; }
body.pbs-on .pbs-coupon-form input[type="text"] { flex: 1; height: 44px; border: 1px solid #ddd5cc; border-radius: 12px; padding: 0 14px; font: 400 15px/1 var(--pbs-sans); background: #fff; box-shadow: none; min-width: 0; }
body.pbs-on .pbs-empty { text-align: center; padding: 48px 28px; font-size: 17px; }
body.pbs-on .pbs-express-wrap .pbs-or { display: none; }
body.pbs-on .pbs-express-wrap.pbs-has-express .pbs-or { display: flex; }
body.pbs-on #wc-stripe-express-checkout-element { margin-top: 0 !important; }

/* checkout: Stripe's express separator restyled as the mockup's "or pay with card" rule */
body.pbs-on #wc-stripe-express-checkout-button-separator {
	margin: 18px 0 !important; font-size: 0; text-align: center; position: relative; height: 22px;
	background: linear-gradient(var(--pbs-rule), var(--pbs-rule)) center / 100% 1px no-repeat;
}
body.pbs-on #wc-stripe-express-checkout-button-separator::before {
	content: "or pay with card"; font: 400 13.5px/22px var(--pbs-sans); color: var(--pbs-muted); background: #fff; padding: 0 14px;
}

/* ---------- checkout fields ---------- */
body.pbs-on .woocommerce-billing-fields h3 { display: none; }
body.pbs-on .woocommerce-billing-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
body.pbs-on .woocommerce form .form-row { padding: 0; margin: 0 0 16px; width: auto; float: none; display: flex; flex-direction: column; gap: 7px; }
body.pbs-on .woocommerce form .form-row-wide { grid-column: 1 / -1; }
body.pbs-on .woocommerce form .form-row label { font: 600 14px/1.4 var(--pbs-sans); color: var(--pbs-ink); margin: 0; text-transform: none; letter-spacing: normal; }
body.pbs-on .woocommerce form .form-row .required { color: var(--pbs-plum); text-decoration: none; }
body.pbs-on .woocommerce form .form-row input.input-text,
body.pbs-on .woocommerce form .form-row select {
	height: auto; min-height: 50px; border: 1px solid #ddd5cc; border-radius: 12px; background: #fff; padding: 14px 16px;
	font: 400 15.5px/20px var(--pbs-sans); color: var(--pbs-ink); box-shadow: none; width: 100%; max-width: none;
}
body.pbs-on .woocommerce form .form-row select { appearance: auto; padding-right: 12px; }
body.pbs-on .woocommerce form .form-row input.input-text::placeholder { color: #a59ca7; opacity: 1; }
body.pbs-on .woocommerce form .form-row input.input-text:focus,
body.pbs-on .woocommerce form .form-row select:focus { border-color: var(--pbs-plum); outline: 2px solid var(--pbs-plum-tint); outline-offset: 0; box-shadow: none; }
body.pbs-on .woocommerce form .form-row .description { font-size: 13px; color: var(--pbs-muted); background: none; padding: 0; position: static; display: block !important; box-shadow: none; }
body.pbs-on .woocommerce form .form-row .description::before { display: none; }
body.pbs-on .woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: #b3261e; }

/* ---------- checkout payment ---------- */
body.pbs-on #payment,
body.pbs-on .woocommerce-checkout #payment { background: none; border-radius: 0; padding: 0; }
body.pbs-on #payment .pbs-stripe { border: 1px solid var(--pbs-rule); border-radius: var(--pbs-r-sm); padding: 18px; background: #fdfcfb; }
body.pbs-on #payment ul.payment_methods { padding: 0; margin: 0; border: 0; list-style: none; }
body.pbs-on #payment ul.payment_methods li { margin: 0; padding: 0; list-style: none; }
body.pbs-on #payment ul.payment_methods li + li { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--pbs-rule); }
body.pbs-on #payment ul.payment_methods li > label { font: 600 15px/1.4 var(--pbs-sans); }
body.pbs-on #payment .pbs-single-gateway li > input.input-radio,
body.pbs-on #payment .pbs-single-gateway li > label { display: none; }
/* Stripe's Payment Element copies its look from #billing_first_name (padding, border,
   radius) and its background from the first opaque ancestor starting at .payment_box,
   so the box gets an explicit white background and the inputs use padding, not height. */
body.pbs-on #payment div.payment_box { background: #fff; padding: 0; margin: 0; color: var(--pbs-ink); font-size: 14px; }
body.pbs-on #payment div.payment_box fieldset { border: 0; padding: 0; margin: 0; background: none; }
body.pbs-on #payment .pbs-stripe { background: #fff; }
body.pbs-on #payment .pbs-single-gateway div.payment_box { margin: 0; }
body.pbs-on #payment ul.payment_methods li:not(:only-child) div.payment_box { margin-top: 12px; }
body.pbs-on #payment div.payment_box::before { display: none; }
body.pbs-on #payment div.payment_box p:first-child:empty { display: none; }
body.pbs-on #payment .place-order { padding: 0; margin: 24px 0 0; }
body.pbs-on #payment .pbs-place-order svg { width: 17px; height: 17px; }
body.pbs-on .pbs-terms a { color: var(--pbs-plum); }
body.pbs-on .woocommerce-checkout-review-order-table .pbs-mini:last-of-type { margin-bottom: 16px; }
body.pbs-on .pbs-mini img,
body.pbs-on .pbs-line img { display: block; }
body.pbs-on .blockUI.blockOverlay { border-radius: var(--pbs-r-lg); }

/* summary panel: undo Woo/Kadence two-column checkout widths and table styling */
body.pbs-on.woocommerce-checkout #order_review,
body.pbs-on #order_review { width: auto; float: none; padding: 0; margin: 0; border: 0; background: none; position: static; }
body.pbs-on .woocommerce-checkout-review-order-table { border: 0; margin: 0; border-radius: 0; width: auto; }
body.pbs-on form.checkout .pbs-two > * { min-width: 0; }
body.pbs-on .woocommerce form .form-row .required { display: none; }
body.pbs-on .woocommerce form .form-row select { height: 50px; }

/* Place order: Woo's checkout.js rewrites the button's text on every refresh, so the
   lock icon is drawn with CSS rather than inline SVG. ID-level selectors because
   Kadence/Woo style #place_order by ID. */
body.pbs-on #payment #place_order,
body.pbs-on #payment #place_order:hover,
body.pbs-on #payment #place_order:focus,
body.pbs-on #payment #place_order:active {
	display: inline-flex; align-items: center; justify-content: center; gap: 9px; width: 100%; float: none;
	border-radius: var(--pbs-pill); font: 600 16px/1 var(--pbs-sans); padding: 18px 30px; margin: 0;
	border: 1.5px solid transparent; background: var(--pbs-plum); color: #fff;
	box-shadow: 0 8px 18px -10px rgba(74,47,61,.55); transform: none; text-transform: none; letter-spacing: normal; min-height: 0; cursor: pointer;
}
body.pbs-on #payment #place_order:hover { background: var(--pbs-plum-deep); }
body.pbs-on #payment #place_order::before {
	content: ""; width: 17px; height: 17px; flex: none; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='5' y='10.5' width='14' height='10' rx='2.5'/%3E%3Cpath d='M8 10.5V8a4 4 0 0 1 8 0v2.5'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='5' y='10.5' width='14' height='10' rx='2.5'/%3E%3Cpath d='M8 10.5V8a4 4 0 0 1 8 0v2.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- notices ---------- */
body.pbs-on .woocommerce-error,
body.pbs-on .woocommerce-message,
body.pbs-on .woocommerce-info,
body.pbs-on .woocommerce-notices-wrapper .wc-block-components-notice-banner {
	background: var(--pbs-plum-tint); color: var(--pbs-plum-deep); border: 0; border-radius: 12px;
	padding: 14px 18px; margin: 0 0 20px; font-size: 14.5px; list-style: none;
}
body.pbs-on .woocommerce-error { background: #fbeceb; color: #8a1c14; }
body.pbs-on .woocommerce-error::before,
body.pbs-on .woocommerce-message::before,
body.pbs-on .woocommerce-info::before { display: none; }
body.pbs-on .woocommerce-message .button,
body.pbs-on .woocommerce-info .button { float: none; margin-left: 10px; background: none; color: var(--pbs-plum); padding: 0; box-shadow: none; text-decoration: underline; }

/* ---------- order received ---------- */
body.pbs-on .pbs-dl .pbs-cv img { width: 100%; height: auto; }
body.pbs-on .pbs-dl-pending { margin-top: 36px; }
body.pbs-on .pbs-done .pbs-panel + .pbs-panel { margin-top: 20px; }

/* ---------- email opt-in (Kadence advanced form 170, restyled to the mockup) ---------- */
body.pbs-on .pbs-optin-form { max-width: 480px; margin-top: 4px; }
body.pbs-on .pbs-optin-form form { display: block; margin: 0; }
body.pbs-on .pbs-optin-form .kb-row-layout-wrap,
body.pbs-on .pbs-optin-form .kt-inside-inner-col,
body.pbs-on .pbs-optin-form .wp-block-kadence-column { padding: 0; margin: 0; background: none; }
body.pbs-on .pbs-optin-form .kt-row-column-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 0; }
body.pbs-on .pbs-optin-form .kb-adv-form-field { margin: 0; padding: 0; width: auto; flex: none; }
body.pbs-on .pbs-optin-form .kb-adv-form-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
body.pbs-on .pbs-optin-form input[type="text"],
body.pbs-on .pbs-optin-form input[type="email"] {
	height: 48px; border-radius: 12px; background: #fff; border: 1px solid #e4dbe0; padding: 0 16px;
	font: 400 15px/1 var(--pbs-sans); color: var(--pbs-ink); box-shadow: none; width: 100%; text-align: left;
}
body.pbs-on .pbs-optin-form input::placeholder { color: #958b97; opacity: 1; text-align: left; }
body.pbs-on .pbs-optin-form .kb-submit-field { margin: 14px 0 0; padding: 0; display: block; width: auto; }
body.pbs-on .pbs-optin-form .kb-submit-field button.kb-adv-form-submit-button { width: auto; }
body.pbs-on .pbs-optin-form button[type="submit"],
body.pbs-on .pbs-optin-form button[type="submit"]:hover,
body.pbs-on .pbs-optin-form button[type="submit"]:focus,
body.pbs-on .pbs-optin-form button[type="submit"]:active {
	display: inline-flex; align-items: center; justify-content: center; border-radius: var(--pbs-pill);
	font: 600 15px/1 var(--pbs-sans); padding: 15px 26px; border: 1.5px solid transparent; width: auto;
	background: var(--pbs-plum); color: #fff; box-shadow: 0 8px 18px -10px rgba(74,47,61,.55);
	transform: none; text-transform: none; letter-spacing: normal; cursor: pointer; min-height: 0;
}
body.pbs-on .pbs-optin-form button[type="submit"]:hover { background: var(--pbs-plum-deep); }
body.pbs-on .pbs-optin-form .kb-adv-form-message { margin-top: 12px; }
body.pbs-on .pbs-optin .pbs-fine { margin-top: 10px; }
body.pbs-on .pbs-staging-note { margin-top: 10px; font-size: 13px; color: var(--pbs-plum-deep); }

/* ---------- footer ---------- */
body.pbs-on .pbs-site-footer a,
body.pbs-on .pbs-site-footer a:hover { color: #fff; }
body.pbs-on .pbs-site-footer .pbs-logo { height: auto; }

/* Kadence scroll-to-top sits on the plum footer; keep it subtle */
body.pbs-on #kt-scroll-up { background: var(--pbs-plum-deep); border-radius: 999px; }

/* pantry: instant search + show more */
body.pbs-on .pbs-psearch { position: relative; max-width: 420px; margin: 26px 0 0; }
body.pbs-on .pbs-psearch svg { position: absolute; left: 16px; top: 50%; width: 18px; height: 18px; transform: translateY(-50%); color: var(--pbs-muted); pointer-events: none; }
body.pbs-on .pbs-psearch input[type="search"] {
	width: 100%; height: 48px; padding: 0 18px 0 44px; border: 1px solid var(--pbs-rule); border-radius: var(--pbs-pill);
	background: #fff; font: 400 16px/1 var(--pbs-sans); color: var(--pbs-ink); box-shadow: none; -webkit-appearance: none; appearance: none;
}
body.pbs-on .pbs-psearch input[type="search"]:focus { outline: 2px solid var(--pbs-plum); outline-offset: 1px; border-color: var(--pbs-plum); }
body.pbs-on .pbs-pgrid > [hidden] { display: none !important; }
body.pbs-on .pbs-pmore { display: flex; justify-content: center; margin-top: 32px; }
body.pbs-on .pbs-pmore [hidden] { display: none !important; }
body.pbs-on .pbs-pempty { margin: 8px 0 0; color: var(--pbs-ink-soft); font-size: 16px; }

/* the one way back to the recipe site: just under the header, above the page title, every width */
body.pbs-on .pbs-back { display: block; padding: 22px 0 0; }
body.pbs-on .pbs-back a,
body.pbs-on .pbs-back a:visited { font: 600 14px/1.4 var(--pbs-sans); color: var(--pbs-plum); text-decoration: none; }
body.pbs-on .pbs-back a:hover,
body.pbs-on .pbs-back a:focus { color: var(--pbs-plum-deep); text-decoration: underline; }
body.pbs-on .pbs-intro { padding-top: 26px; }
body.pbs-on .pbs-page-title { padding-top: 26px; }
body.pbs-on .pbs-crumbs { padding-top: 16px; }

/* header: flat shop-only links, no dropdowns */
body.pbs-on .pbs-site-header .pbs-tools { gap: 0; }

@media (max-width: 760px) {
	body.pbs-on .pbs-back { padding-top: 14px; }
	body.pbs-on .pbs-back a,
	body.pbs-on .pbs-back a:visited { font-size: 13.5px; }
	body.pbs-on .pbs-intro { padding-top: 18px; }
	body.pbs-on .pbs-page-title { padding-top: 18px; }
	body.pbs-on .pbs-crumbs { padding-top: 14px; }
	/* ebook cards: bigger covers, centred in their panel */
	/* ebook cards: the cover art fills ~85% of its panel height. The cover files are
	   square with transparent (or white, multiplied) margins either side of the book,
	   so the image is sized by height and its empty side margins are clipped; the
	   book itself is never cropped or stretched. 134cqw caps it so the book (~67-71% of
	   the square's width) always fits inside the panel width. */
	body.pbs-on .pbs-shelf .pbs-book { grid-template-columns: 50% 1fr; }
	body.pbs-on .pbs-shelf .pbs-book .pbs-cover { padding: 0; align-items: center; justify-content: center; overflow: hidden; container-type: size; min-height: 220px; }
	body.pbs-on .pbs-shelf .pbs-book .pbs-cover img { width: auto; height: 90%; height: min(90cqh, 134cqw); max-width: none; max-height: none; flex: none; }
	body.pbs-on .woocommerce-billing-fields__field-wrapper { grid-template-columns: 1fr 1fr; }
	body.pbs-on .pbs-line img { width: 76px; height: 76px; }
	body.pbs-on .pbs-optin-form .kt-row-column-wrap { grid-template-columns: 1fr; }
	body.pbs-on .pbs-optin-form .kb-submit-field button.kb-adv-form-submit-button { width: 100%; }
}
@media (min-width: 761px) {
	body.pbs-on .pbs-drawer { display: none !important; }
}
