/*
Theme Name:     LLM Groundcare Child
Theme URI:      https://lawnmowersforsale.co.uk/
Description:    Child theme of Blocksy for LLM Groundcare — UK specialist commercial / professional / estate-grade mower retailer. Trading name of Leicester Lawn Mower Service Ltd (Companies House 15987717).
Author:         Leicester Lawn Mower Service Ltd
Author URI:     https://lawnmowersforsale.co.uk/
Template:       blocksy
Version:        0.1.0
Requires at least: 6.4
Tested up to:   6.7
Requires PHP:   8.0
License:        GPL-2.0-or-later
License URI:    https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:    llm-mowers-child
Tags:           ecommerce, woocommerce, blocksy-child, premium
*/

/*
 * Phase E styles — minimum viable for archive + PDP layouts.
 * Token references (var(--wp--preset--color--*) etc.) come from theme.json.
 * Heavier visual treatment lands progressively as we wire patterns in.
 */

/* ── Brand palette overrides ────────────────────────────────── */
:root {
	--llm-green-deep:   #111D17;
	--llm-green-primary:#1C3A2E;
	--llm-green-mid:    #2D5A45;
	--llm-amber:        #C8922A;
	--llm-amber-light:  #E8B84B;
	--llm-parchment:    #F7F5F0;
	--llm-stone:        #DDD8CF;
	--llm-sage:         #6B7565;
	--llm-body:         #2C3527;

	/* Override Blocksy + WooCommerce primary colour tokens so ALL
	 * framework-generated buttons inherit our amber automatically. */
	--theme-palette-color-1: #C8922A;
	--theme-palette-color-2: #1C3A2E;
	--wc-color-primary:      #C8922A;
	--wp--custom--button--background: #C8922A;
}

/* Navigation — green primary bar */
.ct-header,
#site-header,
.site-header,
[data-id="header"] {
	background: var(--llm-green-primary) !important;
	background-color: var(--llm-green-primary) !important;
}
.ct-header a,
.ct-header .ct-menu > li > a,
.ct-header .site-title a,
.ct-header .site-title,
#site-header a,
#site-header .ct-menu > li > a {
	color: #fff !important;
}
.ct-header .ct-menu > li > a:hover,
#site-header .ct-menu > li > a:hover { color: var(--llm-amber-light) !important; }
.ct-header .ct-menu > li.current-menu-item > a { color: var(--llm-amber) !important; }

/* ── Buttons — amber CTA ────────────────────────────────────────
 * Nuclear coverage: WP blocks, WC classic, WC Blocks, Blocksy.
 * --theme-palette-color-1 is already overridden in :root above,
 * but we keep explicit selectors for hosts that cache variables. */
.wp-element-button,
.wc-block-components-button,
.wc-block-components-button:not(.is-link),
button.button,
.button,
a.button,
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce .single_add_to_cart_button,
.woocommerce .add_to_cart_button,
.wc-block-grid__product-add-to-cart a,
.wc-block-components-product-button__button,
.wc-block-add-to-cart-button,
.wc-block-add-to-cart-button a,
.wp-block-add-to-cart-form .wp-block-button__link,
.wc-block-grid__product .wp-block-button__link,
.ct-button,
[data-id="button"] .ct-button,
body .woocommerce a.button,
body .woocommerce button.button,
body .woocommerce .button,
body .add_to_cart_button,
body button[name="add-to-cart"],
body input[name="add-to-cart"],
.site .woocommerce a.button,
.site .woocommerce button.button {
	background: #C8922A !important;
	background-color: #C8922A !important;
	color: #fff !important;
	border-color: #C8922A !important;
	border: none !important;
	transition: background 0.2s ease, transform 0.15s ease !important;
}
.wp-element-button:hover,
.wc-block-components-button:hover,
.wc-block-components-product-button__button:hover,
button.button:hover,
.button:hover,
a.button:hover,
input[type="submit"]:hover,
body .woocommerce a.button:hover,
body .woocommerce button.button:hover,
body .add_to_cart_button:hover,
.ct-button:hover {
	background: #E8B84B !important;
	background-color: #E8B84B !important;
	transform: translateY(-1px) !important;
}

/* Primary/outline buttons keep green */
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent !important;
	color: var(--llm-green-primary) !important;
	border: 1.5px solid var(--llm-green-primary) !important;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--llm-green-primary) !important;
	color: #fff !important;
	transform: translateY(-1px) !important;
}

/* Page background — parchment */
body { background: var(--llm-parchment) !important; }

/* Headings — deep green */
h1, h2, h3 { color: var(--llm-green-primary) !important; }

/* Links */
a { color: var(--llm-green-primary); }
a:hover { color: var(--llm-amber); }

/* Cards — premium shadow with green tint */
.llm-app-card,
.woocommerce ul.products li.product,
.llm-archive__main ul.products li.product {
	background: #fff !important;
	border: 1px solid var(--llm-stone) !important;
	border-radius: 6px !important;
	box-shadow: 0 2px 8px rgba(28,58,46,0.06) !important;
	transition: box-shadow 0.2s ease, transform 0.2s ease !important;
}
.llm-app-card:hover,
.woocommerce ul.products li.product:hover,
.llm-archive__main ul.products li.product:hover {
	box-shadow: 0 8px 24px rgba(28,58,46,0.14) !important;
	transform: translateY(-3px) !important;
	border-color: var(--llm-amber) !important;
}

/* Footer */
.ct-footer { background: var(--llm-green-deep) !important; color: #fff !important; }
.ct-footer a { color: var(--llm-stone) !important; }
.ct-footer a:hover { color: var(--llm-amber) !important; }

/* Section dividers */
.wp-block-separator { border-color: var(--llm-stone) !important; }

/* ── Archive (category + brand) layout ─────────────────────── */
.llm-archive {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 clamp(1rem, 4vw, 2.5rem);
}

.llm-archive__header {
	padding: var(--wp--preset--spacing--70) 0 var(--wp--preset--spacing--60);
	border-bottom: 1px solid var(--wp--preset--color--mist);
	margin-bottom: var(--wp--preset--spacing--60);
}

.llm-archive__eyebrow {
	font-family: 'Space Grotesk', sans-serif;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
	margin: 0 0 var(--wp--preset--spacing--20);
}

.llm-archive__title {
	font-size: clamp(1.875rem, 4vw, 2.5rem);
	margin: 0 0 var(--wp--preset--spacing--40);
}

.llm-archive__intro {
	max-width: 64ch;
	color: var(--wp--preset--color--slate);
	font-size: 1.0625rem;
	line-height: 1.55;
}

.llm-archive__intro.llm-pending-content {
	color: var(--wp--preset--color--steel);
}

.llm-archive__body {
	display: grid !important;
	grid-template-columns: 260px 1fr !important;
	gap: 2rem !important;
	align-items: start !important;
}
/* Sidebar: fixed width, never collapses */
.llm-archive__filters {
	width: 260px !important;
	min-width: 260px !important;
	flex-shrink: 0;
}
/* Main content: always fills remaining space */
.llm-archive__main {
	min-width: 0 !important;
	width: 100% !important;
}
@media (max-width: 860px) {
	.llm-archive__body {
		grid-template-columns: 1fr !important;
	}
	.llm-archive__filters {
		width: 100% !important;
		min-width: 0 !important;
	}
}

/* Product loop inside archive — give cards breathing room and ensure the
 * WooCommerce default ul.products grid doesn't bleed against the sidebar
 * gutter. Min-content + auto-fill keeps cards a comfortable 240–280px. */
.llm-archive__main {
	min-width: 0;  /* lets the grid item shrink instead of pushing the layout */
}

.llm-archive__main ul.products {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: var(--wp--preset--spacing--50);
	margin: 0 0 var(--wp--preset--spacing--60);
	padding: 0;
	list-style: none;
}

.llm-archive__main ul.products li.product,
.woocommerce ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	padding: 0 0 1rem !important;
	background: #fff !important;
	border: 1px solid var(--llm-stone, #DDD8CF) !important;
	border-radius: 6px !important;
	overflow: hidden !important;
	transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease !important;
	display: flex !important;
	flex-direction: column !important;
}
.llm-archive__main ul.products li.product:hover,
.woocommerce ul.products li.product:hover {
	border-color: var(--llm-amber, #C8922A) !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 6px 20px rgba(28,58,46,0.10) !important;
}

/* ── Product card image — boxed and confined ──────────────────
 * Force a fixed 4:3 image container so every card image is the
 * same height regardless of original image dimensions. */
.llm-archive__main ul.products li.product a.woocommerce-loop-product__link,
.woocommerce ul.products li.product a.woocommerce-loop-product__link {
	display: block !important;
}
.llm-archive__main ul.products li.product a img,
.woocommerce ul.products li.product a.woocommerce-loop-product__link img,
.llm-archive__main ul.products li.product img.wp-post-image,
.woocommerce ul.products li.product img.wp-post-image {
	width: 100% !important;
	height: 200px !important;
	object-fit: cover !important;
	object-position: center center !important;
	display: block !important;
	border-radius: 0 !important;
	margin: 0 !important;
}

/* Card text body — add padding back under the image */
.llm-archive__main ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 0 1rem !important;
}
.llm-archive__main ul.products li.product .price,
.woocommerce ul.products li.product .price {
	padding: 0 1rem !important;
	display: block !important;
}
.llm-archive__main ul.products li.product .button,
.woocommerce ul.products li.product .button,
.llm-archive__main ul.products li.product .add_to_cart_button,
.woocommerce ul.products li.product .add_to_cart_button {
	margin: 0.5rem 1rem 0 !important;
	display: block !important;
	width: calc(100% - 2rem) !important;
	text-align: center !important;
}

.llm-archive__main ul.products li.product .woocommerce-loop-product__title {
	font-size: 1rem;
	line-height: 1.35;
	font-weight: 600;
	margin: var(--wp--preset--spacing--30) 0 var(--wp--preset--spacing--20);
	color: var(--wp--preset--color--ink);
}

.llm-archive__main ul.products li.product .price {
	color: var(--wp--preset--color--graphite);
	font-weight: 600;
}

/* ── WhatsApp click-to-chat button ─────────────────────────────
 * Three context variants:
 *   .llm-wa-btn--card     — small pill on shop loop cards
 *   .llm-wa-btn--pdp      — full-width secondary CTA on PDP
 *   .llm-wa-btn--homepage — same compact pill on homepage tiles
 *
 * Brand colour: WhatsApp #25D366 on hover/focus — close enough to
 * official to read as a WhatsApp affordance without being aggressive
 * against our accent-orange. Idle state stays graphite outline so the
 * primary "Add to basket" CTA keeps visual priority.
 * ──────────────────────────────────────────────────────────────── */
.llm-wa-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 600;
	font-size: 0.8125rem;
	line-height: 1;
	padding: 0.5rem 0.875rem;
	border: 1px solid var(--wp--preset--color--mist);
	border-radius: 999px;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--graphite);
	text-decoration: none;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease, transform .1s ease;
}

.llm-wa-btn:hover,
.llm-wa-btn:focus-visible {
	background: #25D366;             /* WhatsApp brand green */
	border-color: #25D366;
	color: #fff;
	transform: translateY(-1px);
}

.llm-wa-btn__icon {
	flex-shrink: 0;
}

.llm-wa-btn__label {
	white-space: nowrap;
}

/* Card variant — sits below the price on shop loop cards.
 * margin-top pulls it tight against the price; full row width by
 * default so it lines up cleanly with the "Add to basket" button. */
.llm-wa-btn--card,
.llm-wa-btn--homepage {
	margin-top: var(--wp--preset--spacing--30);
	font-size: 0.75rem;
	padding: 0.4rem 0.75rem;
}

/* PDP variant — bigger, full-width, sits directly below the WC
 * Add-to-Cart form. Reads as a proper secondary CTA. */
.llm-wa-btn--pdp {
	display: flex;
	justify-content: center;
	width: 100%;
	max-width: 28rem;
	margin: var(--wp--preset--spacing--40) 0 var(--wp--preset--spacing--30);
	padding: 0.875rem 1.25rem;
	font-size: 0.9375rem;
	border-width: 2px;
}

.llm-wa-btn--pdp:hover,
.llm-wa-btn--pdp:focus-visible {
	box-shadow: 0 4px 12px rgba(37, 211, 102, 0.25);
}

.llm-archive__editorial {
	max-width: 64ch;
	margin: var(--wp--preset--spacing--80) auto;
	font-size: 1.0625rem;
	line-height: 1.7;
	color: var(--wp--preset--color--ink);
}

.llm-archive__faq {
	margin: var(--wp--preset--spacing--60) 0;
}

.llm-archive__crosslinks {
	margin: var(--wp--preset--spacing--60) 0 var(--wp--preset--spacing--80);
	padding-top: var(--wp--preset--spacing--60);
	border-top: 1px solid var(--wp--preset--color--mist);
}

.llm-archive__crosslinks h2 {
	font-size: 1.25rem;
	margin: 0 0 var(--wp--preset--spacing--40);
}

.llm-crosslinks__list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: var(--wp--preset--spacing--30);
}

.llm-crosslinks__list a {
	display: block;
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
	border: 1px solid var(--wp--preset--color--mist);
	border-radius: 4px;
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 600;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	transition: border-color .15s ease;
}
.llm-crosslinks__list a:hover {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
}

/* ── Filter sidebar ────────────────────────────────────────── */
.llm-filters {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
	font-size: 0.95rem;
}

.llm-filters__group {
	border-top: 1px solid var(--wp--preset--color--mist);
	padding-top: var(--wp--preset--spacing--30);
}

.llm-filters__group summary {
	cursor: pointer;
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 600;
	font-size: 0.875rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--graphite);
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.llm-filters__group summary::after {
	content: '+';
	color: var(--wp--preset--color--steel);
}
.llm-filters__group[open] summary::after {
	content: '−';
}

.llm-filters__list {
	list-style: none;
	padding: var(--wp--preset--spacing--30) 0 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
}
.llm-filters__list a {
	color: var(--wp--preset--color--slate);
	text-decoration: none;
	font-size: 0.9375rem;
}
.llm-filters__list a:hover {
	color: var(--wp--preset--color--accent);
}

/* ── PDP shared layout ─────────────────────────────────────── */
.llm-pdp__price-band {
	font-family: 'Space Grotesk', sans-serif;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
	margin: 0 0 var(--wp--preset--spacing--20);
}

.llm-pdp__title {
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	line-height: 1.2;
	margin: 0 0 var(--wp--preset--spacing--40);
}

.llm-pdp__key-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: var(--wp--preset--spacing--40);
	padding: var(--wp--preset--spacing--40) 0;
	border-top: 1px solid var(--wp--preset--color--mist);
	border-bottom: 1px solid var(--wp--preset--color--mist);
	margin: var(--wp--preset--spacing--40) 0;
}

.llm-pdp__key-fact-label {
	font-family: 'Space Grotesk', sans-serif;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--steel);
	margin: 0 0 0.25rem;
}
.llm-pdp__key-fact-value {
	font-size: 1rem;
	font-weight: 600;
	color: var(--wp--preset--color--ink);
	margin: 0;
}

/* ── Pending-content placeholders ──────────────────────────── */
.llm-pending-content {
	color: var(--wp--preset--color--steel);
	font-style: italic;
}

/* ── Brand hub layout ──────────────────────────────────────── */
.llm-brand-hub {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 var(--wp--preset--spacing--50);
}

.llm-brand-hub__header {
	padding: var(--wp--preset--spacing--80) 0;
	border-bottom: 1px solid var(--wp--preset--color--mist);
	margin-bottom: var(--wp--preset--spacing--70);
}

.llm-brand-hub__eyebrow {
	font-family: 'Space Grotesk', sans-serif;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
	margin: 0 0 var(--wp--preset--spacing--20);
}

.llm-brand-hub__title {
	font-size: clamp(2.25rem, 5vw, 3.5rem);
	margin: 0 0 var(--wp--preset--spacing--50);
}

.llm-brand-hub__story {
	max-width: 64ch;
	font-size: 1.125rem;
	line-height: 1.6;
	color: var(--wp--preset--color--graphite);
}

.llm-brand-hub__range,
.llm-brand-hub__featured,
.llm-brand-hub__notes,
.llm-brand-hub__faq,
.llm-brand-hub__crosslinks {
	margin: var(--wp--preset--spacing--80) 0;
}

.llm-brand-hub__range h2,
.llm-brand-hub__featured h2,
.llm-brand-hub__notes h2,
.llm-brand-hub__crosslinks h2 {
	font-size: 1.75rem;
	margin: 0 0 var(--wp--preset--spacing--50);
}

.llm-brand-range-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: var(--wp--preset--spacing--30);
}

.llm-brand-range-tile {
	display: flex;
	flex-direction: column;
	padding: var(--wp--preset--spacing--50);
	border: 1px solid var(--wp--preset--color--mist);
	border-radius: 4px;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	transition: border-color .15s ease, transform .15s ease;
}
.llm-brand-range-tile:hover {
	border-color: var(--wp--preset--color--accent);
	transform: translateY(-2px);
}

.llm-brand-range-tile--empty {
	opacity: 0.55;
}
.llm-brand-range-tile--empty:hover {
	transform: none;
	border-color: var(--wp--preset--color--mist);
}

.llm-brand-range-tile__name {
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 600;
	font-size: 1rem;
	margin-bottom: 0.25rem;
}

.llm-brand-range-tile__count {
	font-size: 0.875rem;
	color: var(--wp--preset--color--slate);
}

/* ── PDP CTA stack ─────────────────────────────────────────── */
.llm-pdp__cta-stack {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
	margin: var(--wp--preset--spacing--50) 0;
}

.llm-btn {
	display: inline-block;
	padding: 0.875rem 1.5rem;
	border-radius: 0.25rem;
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 600;
	text-decoration: none;
	text-align: center;
	transition: background .15s ease, color .15s ease;
}

.llm-btn--enquire {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
}
.llm-btn--enquire:hover {
	background: var(--wp--preset--color--accent-dark);
	color: var(--wp--preset--color--white);
}

.llm-btn--ghost {
	background: transparent;
	color: var(--wp--preset--color--graphite);
	border: 1px solid var(--wp--preset--color--mist);
}
.llm-btn--ghost:hover {
	border-color: var(--wp--preset--color--graphite);
}

/* ── PDP outer wrapper ──────────────────────────────────────── */
.llm-pdp {
	max-width: 1280px !important;
	margin: 0 auto !important;
	padding: 0 clamp(1rem, 3vw, 2rem) !important;
}

/* ── PDP two-column layout: gallery left, summary right ────── */
.llm-pdp__layout {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
	gap: 2.5rem !important;
	padding: 2rem 0 !important;
	align-items: start !important;
}

/* ── Gallery column — cap image size so it doesn't fill viewport */
.llm-pdp__gallery {
	position: sticky;
	top: 1rem;
}
.llm-pdp__gallery .woocommerce-product-gallery {
	max-width: 100% !important;
	width: 100% !important;
}
.llm-pdp__gallery .woocommerce-product-gallery__image img,
.llm-pdp__gallery .woocommerce-product-gallery img,
.llm-pdp__gallery img {
	max-height: 480px !important;
	width: 100% !important;
	height: auto !important;
	object-fit: contain !important;
	object-position: center !important;
	border-radius: 6px !important;
}
/* WooCommerce Flexslider thumbnail strip */
.llm-pdp__gallery .flex-control-thumbs {
	margin-top: 0.75rem !important;
}
.llm-pdp__gallery .flex-control-thumbs li {
	width: 22% !important;
	margin-right: 2% !important;
}
.llm-pdp__gallery .flex-control-thumbs img {
	max-height: 80px !important;
	object-fit: cover !important;
	border-radius: 4px !important;
	opacity: 0.75;
	transition: opacity .15s ease;
}
.llm-pdp__gallery .flex-control-thumbs .flex-active img {
	opacity: 1;
	outline: 2px solid var(--llm-amber, #C8922A);
}

@media (max-width: 900px) {
	.llm-pdp__layout {
		grid-template-columns: 1fr !important;
	}
	.llm-pdp__gallery {
		position: static;
	}
	.llm-pdp__gallery .woocommerce-product-gallery__image img,
	.llm-pdp__gallery img {
		max-height: 320px !important;
	}
}

.llm-pdp__expert-take {
	max-width: 1280px;
	margin: var(--wp--preset--spacing--70) auto;
	padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--paper);
	border-radius: 6px;
}

.llm-pdp__expert-eyebrow {
	font-family: 'Space Grotesk', sans-serif;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
	margin: 0 0 var(--wp--preset--spacing--30);
}

.llm-pdp__expert-quote {
	font-family: 'Space Grotesk', sans-serif;
	font-size: 1.25rem;
	font-weight: 500;
	line-height: 1.5;
	color: var(--wp--preset--color--ink);
	border-left: 3px solid var(--wp--preset--color--accent);
	margin: 0;
	padding-left: var(--wp--preset--spacing--40);
}

.llm-pdp__stock-badge {
	display: inline-block;
	font-family: 'Space Grotesk', sans-serif;
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	padding: 0.25rem 0.625rem;
	border-radius: 4px;
}
.llm-pdp__stock-badge--instock {
	background: rgba( 63, 127, 74, .1 );
	color: var(--wp--preset--color--success);
}
.llm-pdp__stock-badge--onbackorder {
	background: rgba( 194, 138, 44, .1 );
	color: var(--wp--preset--color--warning);
}
.llm-pdp__stock-badge--outofstock {
	background: rgba( 160, 58, 44, .1 );
	color: var(--wp--preset--color--danger);
}

/* ── WhatsApp click-to-chat button (homepage product cards) ─────── */
.llm-wa-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin-top: 0.5rem;
	padding: 0.4rem 0.75rem;
	border-radius: 999px;
	background: #25D366;        /* WhatsApp brand green */
	color: #ffffff;
	font-family: 'Space Grotesk', sans-serif;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-decoration: none;
	line-height: 1;
	transition: background-color .15s ease, transform .15s ease;
	white-space: nowrap;
}
.llm-wa-btn:hover,
.llm-wa-btn:focus-visible {
	background: #1ebe57;
	color: #ffffff;
	text-decoration: none;
	transform: translateY(-1px);
}
.llm-wa-btn:focus-visible {
	outline: 2px solid #ffffff;
	outline-offset: 2px;
	box-shadow: 0 0 0 4px #25D366;
}
.llm-wa-btn__icon {
	flex-shrink: 0;
}
.llm-wa-btn__label {
	display: inline-block;
}
@media (max-width: 480px) {
	/* Tighter on small grids — keep the icon prominent, shrink the label. */
	.llm-wa-btn {
		padding: 0.4rem 0.5rem;
	}
	.llm-wa-btn__label {
		font-size: 0.72rem;
	}
}

/* ── Premium header polish (Blocksy parent + curated primary menu) ── */

/* Site title — used as the brand wordmark when no logo is uploaded.
   Tighter tracking + caps for a wordmark feel rather than a sentence. */
.ct-header [data-row="middle"] .site-title,
.ct-header .site-title {
	font-family: 'Space Grotesk', sans-serif;
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.1;
}
.ct-header .site-title a {
	color: var(--wp--preset--color--ink, #0F1417);
	text-decoration: none;
}

/* Primary nav — slightly tighter caps, more confident weight, hairline
   space-grotesk vibe consistent with the rest of the site. */
#main-navigation .menu > li > a,
header .menu > li > a {
	font-family: 'Space Grotesk', sans-serif;
	font-size: 0.92rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: none;
}
#main-navigation .menu > li > a:hover,
#main-navigation .menu > li.current-menu-item > a {
	color: var(--wp--preset--color--accent, #D2691E);
}

/* Cart icon (Blocksy header element [data-id="cart"]).
   Small badge with item count overlaid. */
.ct-header [data-id="cart"] {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}
.ct-header [data-id="cart"] .ct-cart-icon {
	width: 22px;
	height: 22px;
}
.ct-header [data-id="cart"] .ct-cart-items-count {
	min-width: 1.25rem;
	height: 1.25rem;
	padding: 0 0.35rem;
	border-radius: 999px;
	background: var(--wp--preset--color--accent, #D2691E);
	color: #ffffff;
	font-family: 'Space Grotesk', sans-serif;
	font-size: 0.7rem;
	font-weight: 700;
	line-height: 1.25rem;
	text-align: center;
}

/* Hide Blocksy's hero/title bar on the front page only.
   Blocksy free renders the page-title hero either as a stand-alone
   section (.ct-hero-section, [data-id="hero"]) or inline via the
   header builder (data-row="hero"). Cover every variant + use
   the static-front-page body classes Blocksy adds. */
body.home .ct-hero-section,
body.home [data-id="hero"],
body.home [data-row="hero"],
body.home .page-title,
body.home .entry-header,
body.home .ct-page-title,
body.home header.page-header,
body.home .ct-default-hero,
body.home [class*="ct-hero"],
body.page-id-34 .ct-hero-section,
body.page-id-34 [data-id="hero"],
body.page-id-34 [data-row="hero"],
body.page-id-34 .page-title,
body.page-id-34 .entry-header,
body.page-id-34 .ct-page-title,
body.page-id-34 [class*="ct-hero"],
.home .ct-hero-section,
.home [data-id="hero"],
.home [data-row="hero"],
.home > .ct-page-title,
.home > .entry-header,
.home main > .ct-hero-section,
.home main > .entry-header,
.home main > .page-title,
.home main > article > .entry-header {
	display: none !important;
}

/* Suppress entry title + meta on the homepage so the assembled
   patterns are the only thing visible inside the article wrapper. */
body.home article .entry-title,
body.home article .entry-header,
body.home article .post-meta,
body.home article .entry-meta,
body.home article .post-title,
body.home .ct-archive-card,
body.home .ct-meta-element-author,
body.home .ct-meta-element-date,
body.home .ct-meta-element-comments,
body.page-id-34 .entry-title,
body.page-id-34 .entry-header,
body.page-id-34 .entry-meta,
body.page-id-34 .post-meta {
	display: none !important;
}

/* And nuke any leftover .has-page-title element specifically on
   the homepage. Blocksy occasionally wraps the title in a
   .has-page-title container that survives the above selectors. */
body.home .has-page-title,
body.page-id-34 .has-page-title {
	display: none !important;
}

/* Remove the date / author meta on every static page by default.
   Keep them on single posts (we want bylines on blog/guides). */
body.page .entry-meta,
body.page .ct-meta-element-author,
body.page .ct-meta-element-date {
	display: none;
}

/* Footer — subtle separator + brand-aligned typography.
   Inherits Blocksy's footer rows but tightens the spacing. */
.ct-footer {
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--ink, #0F1417) 8%, transparent);
}
.ct-footer .copyright,
.ct-footer .credits {
	font-family: 'Space Grotesk', sans-serif;
	font-size: 0.78rem;
	letter-spacing: 0.01em;
	color: var(--wp--preset--color--slate, #4B5563);
}

/* ── Homepage polish pass — Apr 29 ──────────────────────────────── */

/* Override Gutenberg / Blocksy default link blue across the homepage
   block content. Brand uses dark navy ink for body links, orange for
   accent CTAs and hover. */
.home .entry-content a,
.home .wp-block-group a,
.home .wp-block-column a,
body.page-id-34 .entry-content a {
	color: var(--wp--preset--color--ink, #0F1417);
	text-decoration: none;
	transition: color .15s ease;
}
.home .entry-content a:hover,
.home .wp-block-group a:hover,
.home .wp-block-column a:hover,
body.page-id-34 .entry-content a:hover {
	color: var(--wp--preset--color--accent, #D2691E);
	text-decoration: none;
}
/* Buttons keep their explicit colors (we already set those inline). */
.home .wp-block-button .wp-block-button__link {
	color: inherit;
}

/* Category grid — force 4-column layout, even card heights, premium
   feel. The pattern uses Gutenberg's grid layout which on free
   Blocksy cramps to 9 columns by default. Override so it wraps. */
.home .wp-block-group.is-layout-grid,
body.page-id-34 .wp-block-group.is-layout-grid {
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 1.25rem;
}
@media (max-width: 960px) {
	.home .wp-block-group.is-layout-grid,
	body.page-id-34 .wp-block-group.is-layout-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}
@media (max-width: 540px) {
	.home .wp-block-group.is-layout-grid,
	body.page-id-34 .wp-block-group.is-layout-grid {
		grid-template-columns: 1fr !important;
	}
}

/* Category cards — give them a more confident shape, equal heights,
   and a subtle hover lift. */
.home .wp-block-group.is-layout-grid > .wp-block-group {
	min-height: 11rem;
	padding: 1.5rem !important;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--ink, #0F1417) 8%, transparent);
	border-radius: 8px;
	transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	gap: 0.6rem;
}
.home .wp-block-group.is-layout-grid > .wp-block-group:hover {
	border-color: var(--wp--preset--color--accent, #D2691E);
	transform: translateY(-2px);
	box-shadow: 0 6px 20px -10px color-mix(in srgb, var(--wp--preset--color--ink, #0F1417) 40%, transparent);
}
/* Category card heading — keep it tight + premium */
.home .wp-block-group.is-layout-grid > .wp-block-group h3,
.home .wp-block-group.is-layout-grid > .wp-block-group .wp-block-heading {
	font-family: 'Space Grotesk', sans-serif;
	font-size: 1.05rem;
	font-weight: 700;
	margin: 0;
	color: var(--wp--preset--color--ink, #0F1417);
	letter-spacing: -0.01em;
}
.home .wp-block-group.is-layout-grid > .wp-block-group p {
	font-size: 0.9rem;
	line-height: 1.5;
	color: var(--wp--preset--color--slate, #4B5563);
	margin: 0;
}

/* Hide the placeholder testimonial card on the homepage until we
   have a real customer quote. The pattern stays in the template
   for future use; we just don't surface placeholder content. */
.home .wp-block-group:has(> p > em:first-child),
.home .wp-block-group:has(> .wp-block-paragraph em:first-child) {
	/* Targets the testimonial pattern's "Replace with real customer..." em block. */
}
/* More reliable: hide any block group that contains the literal
   placeholder marker text. Falls back to a class-based hide once
   we add it to the testimonial pattern. */
.home .llm-testimonial-placeholder,
.home [data-llm-placeholder="testimonial"] {
	display: none !important;
}

/* Hide the Featured Used Inventory section on the homepage when no
   featured products exist. The pattern's italic fallback note ("If
   no products show above...") is for the operator, not buyers.
   We can't easily hide it conditionally on render, so we mute the
   note's visual weight and add some breathing room. */
.home .llm-featured-fallback {
	max-width: 60ch;
	font-size: 0.85rem;
	font-style: normal !important;
	color: var(--wp--preset--color--slate, #4B5563);
	opacity: 0.7;
}

/* H2 section headings on homepage — premium typography hierarchy.
   Tighter tracking, slightly larger, bolder. */
.home .wp-block-heading,
body.page-id-34 .wp-block-heading {
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 700;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--ink, #0F1417);
}
.home h2.wp-block-heading,
body.page-id-34 h2.wp-block-heading {
	font-size: clamp(1.625rem, 3vw, 2.125rem);
	margin-bottom: 1.25rem;
}

/* Section spacing — increase the breathing room between major
   sections so the page reads as distinct chapters not a wall. */
.home .entry-content > .wp-block-group.alignfull,
body.page-id-34 .entry-content > .wp-block-group.alignfull {
	padding-top: clamp(3rem, 6vw, 5rem) !important;
	padding-bottom: clamp(3rem, 6vw, 5rem) !important;
}

/* Hero pattern — image-side fallback for when no hero image is set.
   Renders a soft brand-coloured panel instead of empty white space. */
.home .wp-block-image figure:has(img[src=""]),
.home .wp-block-image figure:not(:has(img[src])),
.home figure.wp-block-image:empty {
	background: linear-gradient(135deg,
		color-mix(in srgb, var(--wp--preset--color--accent, #D2691E) 12%, var(--wp--preset--color--paper, #F7F6F3)),
		color-mix(in srgb, var(--wp--preset--color--graphite, #1F2933) 6%, var(--wp--preset--color--paper, #F7F6F3)));
	min-height: 360px;
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.home .wp-block-image figure img[src=""] {
	display: none;
}
/* Empty product collection on homepage — give it a brand-aligned
   empty state instead of the default WC "no products" treatment. */
.home .wp-block-woocommerce-product-collection:empty,
.home .wp-block-woocommerce-product-collection .wp-block-query-no-results {
	background: var(--wp--preset--color--paper, #F7F6F3);
	border: 1px dashed color-mix(in srgb, var(--wp--preset--color--ink, #0F1417) 15%, transparent);
	border-radius: 8px;
	padding: 2rem;
	color: var(--wp--preset--color--slate, #4B5563);
	font-size: 0.95rem;
	text-align: center;
}

/* Bring the search-icon header alignment back into line with the
   rest of the icon buttons. Matches Blocksy's icon-button visual
   weight to ours. */
.ct-header [data-id="search"] svg,
.ct-header [data-id="cart"] svg {
	width: 22px;
	height: 22px;
}

/* Brand tiles — make the link feel like a confident button. */
.home .wp-block-group.has-white-background-color a,
.home [class*="brand-grid"] a {
	font-weight: 600;
	color: var(--wp--preset--color--ink, #0F1417);
	display: block;
	padding: 0.4rem 0;
}
.home .wp-block-group.has-white-background-color a:hover,
.home [class*="brand-grid"] a:hover {
	color: var(--wp--preset--color--accent, #D2691E);
}

/* Brand tile cards themselves — taller cards, hover lift,
   border instead of flat-on-grey. */
.home .wp-block-group.has-white-background-color {
	min-height: 4rem;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--ink, #0F1417) 6%, transparent);
	transition: transform .15s ease, border-color .15s ease;
}
.home .wp-block-group.has-white-background-color:hover {
	transform: translateY(-1px);
	border-color: var(--wp--preset--color--accent, #D2691E);
}

/* ── Markdown-rendered tables in policy + blog content ─────────── */
.llm-md-table,
.entry-content table,
.wp-block-post-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.5rem 0 2rem;
	font-size: 0.95rem;
	line-height: 1.5;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--ink, #0F1417) 12%, transparent);
	border-radius: 6px;
	overflow: hidden;
}
.llm-md-table th,
.entry-content th {
	background: color-mix(in srgb, var(--wp--preset--color--ink, #0F1417) 4%, var(--wp--preset--color--paper, #F7F6F3));
	color: var(--wp--preset--color--ink, #0F1417);
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 600;
	font-size: 0.85rem;
	letter-spacing: 0.02em;
	text-align: left;
	padding: 0.75rem 1rem;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--ink, #0F1417) 12%, transparent);
}
.llm-md-table td,
.entry-content td {
	padding: 0.75rem 1rem;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--ink, #0F1417) 6%, transparent);
	vertical-align: top;
}
.llm-md-table tbody tr:last-child td,
.entry-content tbody tr:last-child td {
	border-bottom: none;
}

/* Inline code in policy/blog body. */
.entry-content code,
.wp-block-post-content code {
	background: color-mix(in srgb, var(--wp--preset--color--ink, #0F1417) 5%, var(--wp--preset--color--paper, #F7F6F3));
	color: var(--wp--preset--color--ink, #0F1417);
	font-family: 'SF Mono', 'Menlo', 'Consolas', monospace;
	font-size: 0.85em;
	padding: 0.15em 0.4em;
	border-radius: 3px;
}
.entry-content code a {
	color: inherit;
	text-decoration: none;
}

/* Body links inside policy + blog content. */
.entry-content a:not(.wp-block-button__link),
.wp-block-post-content a:not(.wp-block-button__link) {
	color: var(--wp--preset--color--ink, #0F1417);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
	text-decoration-color: color-mix(in srgb, var(--wp--preset--color--ink, #0F1417) 30%, transparent);
	transition: color .15s ease, text-decoration-color .15s ease;
}
.entry-content a:hover,
.wp-block-post-content a:hover {
	color: var(--wp--preset--color--accent, #D2691E);
	text-decoration-color: var(--wp--preset--color--accent, #D2691E);
}

/* ── Brand hub polish (taxonomy-mower_brand template) ─────────── */

/* Brand hub now sits inside Blocksy's <main class="ct-container">
   wrapper which provides the standard site-wide max-width + horizontal
   padding (typically 1280px from theme.json). Drop our own max-width
   so we inherit consistent chrome with every other page. */
.llm-brand-hub {
	max-width: none !important;
	padding: 1rem 0 !important;
	margin: 0 !important;
}
/* Defensive: if Blocksy's container is missing for any reason, fall
   back to a sensible reading width. */
main.ct-container > .llm-brand-hub,
.site-main > .ct-container > .llm-brand-hub {
	max-width: none !important;
}

/* Brand tier badge — sits between H1 and the story paragraph, gives
   the page a position-statement feel and reinforces CLAUDE.md §5. */
.llm-brand-hub__tier {
	display: inline-block;
	font-family: 'Space Grotesk', sans-serif;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 0.35rem 0.75rem;
	border-radius: 999px;
	margin: 0 0 var(--wp--preset--spacing--50, 1.5rem) !important;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--ink, #0F1417) 15%, transparent);
	color: var(--wp--preset--color--ink, #0F1417);
	background: color-mix(in srgb, var(--wp--preset--color--paper, #F7F6F3) 60%, transparent);
}
.llm-brand-hub__tier--1 {
	background: color-mix(in srgb, var(--wp--preset--color--accent, #D2691E) 14%, transparent);
	border-color: var(--wp--preset--color--accent, #D2691E);
	color: var(--wp--preset--color--accent, #D2691E);
}
.llm-brand-hub__tier--2 {
	background: color-mix(in srgb, var(--wp--preset--color--ink, #0F1417) 6%, transparent);
}
.llm-brand-hub__tier--3 {
	background: color-mix(in srgb, var(--wp--preset--color--graphite, #1F2933) 8%, transparent);
	color: var(--wp--preset--color--graphite, #1F2933);
}

/* Section H2 — softer eyebrow accent above each section heading. */
.llm-brand-hub__range h2,
.llm-brand-hub__featured h2,
.llm-brand-hub__notes h2,
.llm-brand-hub__crosslinks h2 {
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--wp--preset--color--ink, #0F1417);
	font-size: clamp(1.5rem, 2.5vw, 1.875rem) !important;
	margin: 0 0 1.5rem !important;
	padding-top: 1.25rem;
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--ink, #0F1417) 8%, transparent);
}

/* Range tiles — premium card feel, even heights, hover lift,
   defensive inline-block fallback so even with CSS race conditions
   the tiles don't smoosh together. */
.llm-brand-range-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
	gap: 0.875rem !important;
}
.llm-brand-range-tile {
	display: flex !important;
	flex-direction: column !important;
	justify-content: space-between;
	gap: 0.5rem;
	min-height: 5rem;
	padding: 1rem 1.25rem !important;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--ink, #0F1417) 10%, transparent) !important;
	border-radius: 6px;
	background: var(--wp--preset--color--white, #ffffff);
	color: var(--wp--preset--color--ink, #0F1417);
	text-decoration: none !important;
	transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.llm-brand-range-tile:hover {
	border-color: var(--wp--preset--color--accent, #D2691E) !important;
	transform: translateY(-2px);
	box-shadow: 0 6px 18px -10px color-mix(in srgb, var(--wp--preset--color--ink, #0F1417) 30%, transparent);
}
.llm-brand-range-tile__name {
	display: block;
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 600;
	font-size: 0.95rem;
	letter-spacing: -0.005em;
	color: var(--wp--preset--color--ink, #0F1417);
}
.llm-brand-range-tile__count {
	display: block;
	font-size: 0.78rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	color: var(--wp--preset--color--slate, #4B5563);
}
.llm-brand-range-tile--empty .llm-brand-range-tile__count {
	font-style: italic;
}
.llm-brand-range-tile--empty:not(:hover) {
	background: color-mix(in srgb, var(--wp--preset--color--paper, #F7F6F3) 70%, transparent);
}

/* Brand-hub story paragraph — better readability, breathing room. */
.llm-brand-hub__story {
	max-width: 64ch;
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--wp--preset--color--graphite, #1F2933);
}
.llm-brand-hub__story p {
	margin: 0 0 1.1em;
}
.llm-brand-hub__story p:last-child {
	margin-bottom: 0;
}

/* Application notes section — same treatment as story for legibility. */
.llm-brand-hub__notes-body {
	max-width: 64ch;
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--wp--preset--color--graphite, #1F2933);
}

/* Comparison cross-links — clean list, hover lift on each item. */
.llm-brand-hub__crosslinks-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 0.75rem;
}
.llm-brand-hub__crosslinks-list li {
	margin: 0;
}
.llm-brand-hub__crosslinks-list a {
	display: block;
	padding: 1rem 1.25rem;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--ink, #0F1417) 10%, transparent);
	border-radius: 6px;
	background: var(--wp--preset--color--white, #ffffff);
	color: var(--wp--preset--color--ink, #0F1417);
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 600;
	font-size: 0.95rem;
	text-decoration: none;
	transition: border-color .15s ease, color .15s ease, transform .15s ease;
}
.llm-brand-hub__crosslinks-list a:hover {
	border-color: var(--wp--preset--color--accent, #D2691E);
	color: var(--wp--preset--color--accent, #D2691E);
	transform: translateY(-1px);
}

/* Brand-hub header — tighten the H1 size on smaller screens, give
   the eyebrow a confident accent. */
.llm-brand-hub__header {
	padding: 3rem 0 2.5rem !important;
	margin-bottom: 2.5rem !important;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--ink, #0F1417) 8%, transparent) !important;
}
.llm-brand-hub__title {
	font-size: clamp(2.5rem, 5vw, 3.75rem) !important;
	font-weight: 700;
	letter-spacing: -0.02em;
	margin: 0.5rem 0 1rem !important;
	line-height: 1.05;
}

/* ── Used Mowers product grid ────────────────────────────────────
 * Appears via the_content filter on the /used-mowers/ page below
 * the editorial copy. Keeps the page hierarchy clean: the editorial
 * answer sits above the fold, the live product grid lands beneath
 * for buyers who've finished reading. */
.llm-used-mowers-grid {
	margin-top: 3rem;
	padding-top: 2rem;
	border-top: 1px solid var(--wp--preset--color--mist, #E5E7EB);
}
.llm-used-mowers-grid h2 {
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	margin-bottom: 0.5rem;
}
.llm-used-mowers-grid__intro {
	max-width: 60ch;
	margin: 0 0 2rem;
	color: var(--wp--preset--color--steel, #6B7280);
}
.llm-used-mowers-grid ul.products {
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax(240px, 1fr) );
	gap: 1.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.llm-used-mowers-grid ul.products li.product {
	margin: 0;
	width: auto;
	float: none;
}

/* ── PDP enquiry form ──────────────────────────────────────────
 * Renders below the WC product summary on every PDP via
 * woocommerce_after_single_product_summary at priority 35. Capture
 * mid-funnel intent without forcing a checkout commitment. */
.llm-pdp-enquiry {
	margin: 3rem 0;
	padding: 2rem;
	background: var(--wp--preset--color--mist, #F4F5F7);
	border: 1px solid var(--wp--preset--color--mist-dark, #E5E7EB);
	border-radius: 12px;
}
.llm-pdp-enquiry__inner {
	max-width: 720px;
}
.llm-pdp-enquiry__heading {
	margin: 0 0 0.75rem;
	font-size: clamp(1.4rem, 2.4vw, 1.75rem);
	font-weight: 700;
	color: var(--wp--preset--color--ink, #111827);
}
.llm-pdp-enquiry__intro {
	margin: 0 0 1.5rem;
	color: var(--wp--preset--color--steel, #4B5563);
	line-height: 1.6;
}
.llm-pdp-enquiry__form {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.llm-pdp-enquiry__row {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}
.llm-pdp-enquiry__row--two {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}
@media (max-width: 600px) {
	.llm-pdp-enquiry__row--two { grid-template-columns: 1fr; }
}
.llm-pdp-enquiry__row label {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--wp--preset--color--ink, #111827);
}
.llm-pdp-enquiry__form input[type="text"],
.llm-pdp-enquiry__form input[type="email"],
.llm-pdp-enquiry__form input[type="tel"],
.llm-pdp-enquiry__form textarea {
	width: 100%;
	padding: 0.75rem 0.875rem;
	font-size: 1rem;
	font-family: inherit;
	color: var(--wp--preset--color--ink, #111827);
	background: #fff;
	border: 1px solid var(--wp--preset--color--mist-dark, #D1D5DB);
	border-radius: 6px;
	box-sizing: border-box;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.llm-pdp-enquiry__form input:focus,
.llm-pdp-enquiry__form textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--accent, #2563EB);
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}
.llm-pdp-enquiry__form textarea {
	min-height: 120px;
	resize: vertical;
}
.llm-pdp-enquiry__honey {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}
.llm-pdp-enquiry__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
	margin-top: 0.5rem;
}
.llm-pdp-enquiry__submit {
	padding: 0.75rem 1.5rem;
	font-size: 1rem;
	font-weight: 600;
	color: #fff;
	background: var(--wp--preset--color--ink, #111827);
	border: none;
	border-radius: 6px;
	cursor: pointer;
	transition: background-color 0.15s ease;
}
.llm-pdp-enquiry__submit:hover:not(:disabled) {
	background: var(--wp--preset--color--accent, #2563EB);
}
.llm-pdp-enquiry__submit:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}
.llm-pdp-enquiry__privacy {
	margin: 0;
	font-size: 0.8125rem;
	color: var(--wp--preset--color--steel, #6B7280);
}
.llm-pdp-enquiry__privacy a { color: inherit; text-decoration: underline; }
.llm-pdp-enquiry__result {
	margin-top: 1rem;
	padding: 0;
	font-size: 0.95rem;
}
.llm-pdp-enquiry__result--ok {
	padding: 1rem;
	background: #ECFDF5;
	border: 1px solid #6EE7B7;
	border-radius: 6px;
	color: #065F46;
}
.llm-pdp-enquiry__result--error {
	padding: 1rem;
	background: #FEF2F2;
	border: 1px solid #FCA5A5;
	border-radius: 6px;
	color: #991B1B;
}

/* ── Homepage trust strip ─────────────────────────────────────
 * Appears under the hero block. 3-4 single-line trust signals
 * (warranty / dealer pipeline / UK delivery) — no testimonials,
 * no invented claims, just the facts that exist. */
.llm-trust-strip {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 1.5rem;
	max-width: 1200px;
	margin: 2rem auto;
	padding: 1.5rem;
	background: #fff;
	border: 1px solid var(--wp--preset--color--mist-dark, #E5E7EB);
	border-radius: 12px;
}
.llm-trust-strip__item {
	display: flex;
	align-items: flex-start;
	gap: 0.875rem;
}
.llm-trust-strip__icon {
	flex: 0 0 28px;
	width: 28px;
	height: 28px;
	color: var(--wp--preset--color--accent, #2563EB);
}
.llm-trust-strip__text {
	flex: 1;
}
.llm-trust-strip__title {
	margin: 0 0 0.25rem;
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--wp--preset--color--ink, #111827);
	line-height: 1.3;
}
.llm-trust-strip__sub {
	margin: 0;
	font-size: 0.8125rem;
	color: var(--wp--preset--color--steel, #6B7280);
	line-height: 1.5;
}

/* ── Companies Act §1202 trading-line disclosure ─────────────────
 * Renders at the very end of <body> via wp_footer hook in
 * functions.php. Styled as fine print so it doesn't compete with
 * anything else, but is always present and readable. */
.llm-trading-line {
	max-width: 1280px;
	margin: 0 auto;
	padding: 1rem var(--wp--preset--spacing--50, 1.5rem) 1.5rem;
	font-size: 0.6rem;
	line-height: 1.5;
	color: var(--wp--preset--color--steel, #9CA3AF);
	text-align: center;
	border-top: 1px solid var(--wp--preset--color--mist, #E5E7EB);
	opacity: 0.75;
}

/* ── WooCommerce product tabs ──────────────────────────────────
 * WC's default markup is a <ul class="tabs"> with <li> children;
 * without explicit horizontal layout the browser stacks them
 * (UL default is block flow). Make them a horizontal strip with
 * an active-state underline in our accent orange.
 *
 * Also restyles the panel content below to align with our typography
 * (Inter body, mist border, comfortable line-height). */
.woocommerce-tabs {
	margin: var(--wp--preset--spacing--70, 3rem) 0;
}

.woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	margin: 0 0 var(--wp--preset--spacing--50, 1.5rem);
	padding: 0;
	border-bottom: 1px solid var(--wp--preset--color--mist, #E5E7EB);
	gap: 0;
}

.woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	border-radius: 0;
}

.woocommerce-tabs ul.tabs li::before,
.woocommerce-tabs ul.tabs li::after {
	display: none;
}

.woocommerce-tabs ul.tabs li a {
	display: inline-block;
	padding: 0.875rem 1.25rem;
	font-family: 'Space Grotesk', sans-serif;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--steel, #6B7280);
	text-decoration: none;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	transition: color .15s ease, border-color .15s ease;
}

.woocommerce-tabs ul.tabs li a:hover {
	color: var(--wp--preset--color--ink, #0F1417);
}

.woocommerce-tabs ul.tabs li.active a,
.woocommerce-tabs ul.tabs li a:focus-visible {
	color: var(--wp--preset--color--ink, #0F1417);
	border-bottom-color: var(--wp--preset--color--accent, #D2691E);
}

/* Tab panel body styling — inherits theme.json tokens. */
.woocommerce-tabs .panel,
.woocommerce-tabs .wc-tab {
	font-size: 1rem;
	line-height: 1.65;
	color: var(--wp--preset--color--ink, #0F1417);
	max-width: 64ch;
}

.woocommerce-tabs .panel h2,
.woocommerce-tabs .wc-tab h2 {
	font-size: 1.5rem;
	margin: 1.5rem 0 0.75rem;
	color: var(--wp--preset--color--ink, #0F1417);
}

.woocommerce-tabs .panel h3,
.woocommerce-tabs .wc-tab h3 {
	font-size: 1.125rem;
	margin: 1.25rem 0 0.5rem;
	color: var(--wp--preset--color--graphite, #374151);
}

.woocommerce-tabs .panel table,
.woocommerce-tabs .wc-tab table {
	width: 100%;
	max-width: 28rem;
	border-collapse: collapse;
	margin: 1rem 0 1.5rem;
	font-size: 0.9375rem;
}

.woocommerce-tabs .panel table th,
.woocommerce-tabs .panel table td,
.woocommerce-tabs .wc-tab table th,
.woocommerce-tabs .wc-tab table td {
	padding: 0.5rem 0.75rem;
	border-bottom: 1px solid var(--wp--preset--color--mist, #E5E7EB);
	text-align: left;
}

.woocommerce-tabs .panel table th,
.woocommerce-tabs .wc-tab table th {
	font-weight: 600;
	color: var(--wp--preset--color--graphite, #374151);
	background: var(--wp--preset--color--paper, #F7F6F3);
}

/* ── Category + brand cards with thumbnails ────────────────────
 * Used by patterns/category-grid.php and patterns/brand-grid.php.
 * Thumbnail attachment IDs come from term meta populated via the
 * `wp llm-mowers populate-term-thumbnails` CLI.
 *
 * Cat cards: full-width image at the top, body padding under it.
 * Brand tiles: smaller square thumbnail centred above the brand name,
 * keeps the grid feel without making logos dominant. */
/* ── Category cards — fully clickable <a> wrapper ──────────────
 * The entire card is a single <a class="llm-cat-card"> so every
 * pixel is a click target. No nested anchors needed. */
a.llm-cat-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border: 1px solid #E5E7EB;
	border-radius: 6px;
	text-decoration: none !important;
	color: inherit !important;
	background: #fff;
	transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
a.llm-cat-card:hover {
	border-color: var(--llm-amber, #C8922A) !important;
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(15, 20, 23, 0.08);
	color: inherit !important;
	text-decoration: none !important;
}
.llm-cat-card__img {
	display: block;
	aspect-ratio: 16 / 9;
	max-height: 160px;
	overflow: hidden;
	background: #fff;
	flex-shrink: 0;
}
.llm-cat-card__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
	transition: transform .3s ease;
}
a.llm-cat-card:hover .llm-cat-card__img img {
	transform: scale(1.04);
}
/* Card body: title + description */
.llm-cat-card__body {
	padding: 0.875rem 1rem 1rem;
	flex: 1;
	display: flex;
	flex-direction: column;
}
.llm-cat-card__title {
	display: block;
	font-size: 1rem;
	font-weight: 700;
	margin: 0 0 0.375rem;
	line-height: 1.3;
	color: var(--llm-green-primary, #1C3A2E);
	transition: color .15s ease;
}
a.llm-cat-card:hover .llm-cat-card__title {
	color: var(--llm-amber, #C8922A);
}
.llm-cat-card__desc {
	display: block;
	font-size: 0.8125rem;
	color: var(--llm-sage, #6B7565);
	margin: 0;
	line-height: 1.5;
	flex: 1;
}
/* Row gap between the 3 rows of category cards */
.llm-cat-row--gap {
	margin-top: 1.25rem !important;
}
/* Each column in the category grid: sensible min-width so text never
 * crunches on mid-range tablets before the flex-wrap kicks in. */
.llm-cat-row .wp-block-column {
	min-width: 220px;
	flex: 1 1 220px;
}

.llm-brand-tile {
	transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
	border: 1px solid transparent;
	/* Min-height keeps every brand tile the same vertical size in the
	 * grid, even when one brand has a thumbnail and another doesn't.
	 * Without this, tiles with images stretch tall and text-only tiles
	 * sit short, and the row reads broken. */
	min-height: 200px;
	display: flex !important;
	flex-direction: column;
	justify-content: center;
}
.llm-brand-tile:hover {
	border-color: var(--wp--preset--color--accent, #D2691E);
	transform: translateY(-2px);
	box-shadow: 0 6px 18px rgba(15, 20, 23, 0.06);
}
.llm-brand-tile__img {
	display: block;
	width: 100%;
	max-width: 180px;
	margin: 0 auto var(--wp--preset--spacing--20, 0.5rem);
	/* Wider aspect ratio because brand logos are mostly wordmarks, not
	 * square symbols — 1:1 was cropping them visually. 16:9 gives a
	 * generous landscape canvas; object-fit:contain preserves the
	 * aspect ratio of the actual logo file so wide marks stay wide
	 * and tall marks stay tall. */
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: 4px;
	background: var(--wp--preset--color--paper, #F7F6F3);
}
.llm-brand-tile__img img {
	width: 100%;
	height: 100%;
	/* contain (not cover) so brand logos display at their natural
	 * aspect ratio — letterboxed inside the 16:9 frame rather than
	 * cropped. Important for wordmarks. */
	object-fit: contain;
	padding: 0.5rem;
	display: block;
}

/* ── Application card icons ─────────────────────────────────────
 * Used by patterns/application-card.php. Each card carries a
 * simple geometric SVG icon coloured in the brand accent. */
.llm-app-card {
	transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.llm-app-card:hover {
	border-color: var(--wp--preset--color--accent, #D2691E) !important;
	transform: translateY(-2px);
	box-shadow: 0 6px 18px rgba(15, 20, 23, 0.06);
}
.llm-app-card__icon {
	width: 24px;
	height: 24px;
	margin-bottom: var(--wp--preset--spacing--30, 0.75rem);
	display: flex;
	align-items: center;
	justify-content: flex-start;
	filter: drop-shadow(0 2px 4px rgba(0,0,0,0.15));
}
.llm-app-card__icon svg {
	width: 100%;
	height: 100%;
	display: block;
}

/* ── In-house finance application form (class-finance.php) ─────── */
.llm-pdp-finance {
	margin: 3rem 0;
	padding: 2rem;
	border: 2px solid var(--wp--preset--color--accent, #D2691E);
	border-radius: 4px;
	background: var(--wp--preset--color--surface, #1a1f23);
}
.llm-pdp-finance__heading {
	font-size: 1.25rem;
	font-weight: 600;
	margin-bottom: 0.75rem;
	color: var(--wp--preset--color--accent, #D2691E);
}
.llm-pdp-finance__intro {
	margin-bottom: 1.5rem;
	line-height: 1.65;
	opacity: 0.9;
}
.llm-pdp-finance__section-label {
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	opacity: 0.55;
	margin: 1.5rem 0 0.5rem;
}
.llm-pdp-finance__row { margin-bottom: 1rem; }
.llm-pdp-finance__row label {
	display: block;
	font-size: 0.85rem;
	font-weight: 500;
	margin-bottom: 0.3rem;
	opacity: 0.8;
}
.llm-pdp-finance__row input,
.llm-pdp-finance__row textarea,
.llm-pdp-finance__row select {
	width: 100%;
	padding: 0.55rem 0.75rem;
	border: 1px solid rgba(255,255,255,0.15);
	border-radius: 3px;
	background: rgba(255,255,255,0.05);
	color: inherit;
	font-size: 0.9rem;
	font-family: inherit;
}
.llm-pdp-finance__row input:focus,
.llm-pdp-finance__row textarea:focus,
.llm-pdp-finance__row select:focus {
	outline: 2px solid var(--wp--preset--color--accent, #D2691E);
	outline-offset: 1px;
}
.llm-pdp-finance__row--two {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}
@media (max-width: 640px) {
	.llm-pdp-finance__row--two { grid-template-columns: 1fr; }
}
.llm-pdp-finance__actions { margin-top: 1.5rem; }
.llm-pdp-finance__submit {
	display: inline-block;
	padding: 0.7rem 1.6rem;
	background: var(--wp--preset--color--accent, #D2691E);
	color: #fff;
	border: none;
	border-radius: 3px;
	font-size: 0.95rem;
	font-weight: 600;
	cursor: pointer;
	font-family: inherit;
}
.llm-pdp-finance__submit:hover { opacity: 0.88; }
.llm-pdp-finance__submit:disabled { opacity: 0.5; cursor: not-allowed; }
.llm-pdp-finance__note {
	margin-top: 0.75rem;
	font-size: 0.78rem;
	opacity: 0.55;
	line-height: 1.5;
}
.llm-pdp-finance__honey { display: none !important; }
.llm-pdp-finance__result { margin-top: 1rem; font-size: 0.9rem; padding: 0.5rem 0; }
.llm-pdp-finance__result--ok { color: #4caf50; font-weight: 500; }
.llm-pdp-finance__result--error { color: #f44336; font-weight: 500; }

/* ══════════════════════════════════════════════════════════════
   MOBILE OPTIMISATION — full site responsive pass
   Breakpoints: 1024px tablet-landscape, 768px tablet, 480px mobile
   ══════════════════════════════════════════════════════════════ */

/* ── Global mobile base ─────────────────────────────────────── */
@media (max-width: 768px) {
	body { font-size: 0.9375rem; }

	h1 { font-size: clamp(1.75rem, 6vw, 2.25rem) !important; }
	h2 { font-size: clamp(1.375rem, 5vw, 1.875rem) !important; }
	h3 { font-size: clamp(1.125rem, 4vw, 1.375rem) !important; }

	.wp-block-group[style*="padding"] {
		padding-left: 1rem !important;
		padding-right: 1rem !important;
	}
}

/* ── Navigation ─────────────────────────────────────────────── */
@media (max-width: 768px) {
	.ct-header { padding: 0.75rem 1rem !important; }
	.ct-header .site-title { font-size: 1.1rem !important; }
}

/* ── Hero section ───────────────────────────────────────────── */
@media (max-width: 768px) {
	.wp-block-group.alignfull .wp-block-heading,
	.wp-block-group.alignfull h1 {
		font-size: clamp(1.75rem, 6vw, 2.5rem) !important;
		line-height: 1.1 !important;
	}
	.wp-block-group.alignfull .wp-block-paragraph {
		font-size: 1rem !important;
	}
	.wp-block-buttons {
		flex-direction: column !important;
		align-items: center !important;
	}
	.wp-block-button { width: 100% !important; text-align: center !important; }
	.wp-block-button__link { width: 100% !important; justify-content: center !important; }
}

/* ── Trust strip — 2 cols on tablet, 1 on mobile ───────────── */
@media (max-width: 768px) {
	.wp-block-group .wp-block-columns {
		flex-wrap: wrap !important;
	}
	.wp-block-group .wp-block-column {
		flex-basis: calc(50% - 1rem) !important;
		min-width: calc(50% - 1rem) !important;
	}
}
@media (max-width: 480px) {
	.wp-block-group .wp-block-column {
		flex-basis: 100% !important;
		min-width: 100% !important;
	}
}

/* ── Category grid — Browse by category ────────────────────── */
/* Tablet: 2 columns per row */
@media (max-width: 768px) {
	.llm-cat-row {
		flex-wrap: wrap !important;
	}
	.llm-cat-row .wp-block-column {
		flex-basis: calc(50% - 0.625rem) !important;
		min-width: calc(50% - 0.625rem) !important;
	}
	.llm-cat-row--gap {
		margin-top: 1rem !important;
	}
	.llm-cat-card__title {
		font-size: 0.9375rem !important;
	}
	/* Legacy grid layout (if used elsewhere) */
	.home .wp-block-group.is-layout-grid,
	body.page-id-34 .wp-block-group.is-layout-grid {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 0.75rem !important;
	}
}
/* Mobile: 1 column per row */
@media (max-width: 440px) {
	.llm-cat-row .wp-block-column {
		flex-basis: 100% !important;
		min-width: 100% !important;
	}
	.llm-cat-card__body {
		padding: 0.75rem !important;
	}
	.llm-cat-card__desc {
		font-size: 0.8125rem !important;
	}
	.home .wp-block-group.is-layout-grid,
	body.page-id-34 .wp-block-group.is-layout-grid {
		grid-template-columns: 1fr !important;
	}
}

/* ── Application cards — Find your mower by who you are ────── */
@media (max-width: 900px) {
	.llm-app-card { padding: 1rem !important; }
}
@media (max-width: 600px) {
	/* Force 2-col on mobile */
	.wp-block-group .wp-block-group[class*="llm-app"],
	.wp-block-group:has(.llm-app-card) {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 0.75rem !important;
	}
}

/* ── Brand grid — Brands we specialise in ──────────────────── */
@media (max-width: 768px) {
	.llm-brand-tile { min-height: 140px !important; }
	.llm-brand-tile__logo { max-height: 48px !important; }
}
@media (max-width: 600px) {
	/* 2-col brand grid on mobile */
	.wp-block-group:has(.llm-brand-tile) {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 0.5rem !important;
	}
	.llm-brand-tile { min-height: 100px !important; }
}

/* ── Product grid ───────────────────────────────────────────── */
@media (max-width: 600px) {
	.llm-archive__main ul.products,
	.woocommerce ul.products {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 0.75rem !important;
	}
	.llm-archive__main ul.products li.product .woocommerce-loop-product__title,
	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: 0.875rem !important;
	}
}
@media (max-width: 380px) {
	.llm-archive__main ul.products,
	.woocommerce ul.products {
		grid-template-columns: 1fr !important;
	}
}

/* ── Archive filter sidebar — stack on mobile ───────────────── */
@media (max-width: 900px) {
	.llm-archive__filters {
		border-bottom: 1px solid var(--llm-stone, #DDD8CF);
		padding-bottom: 1.5rem;
		margin-bottom: 1.5rem;
	}
	.llm-filters {
		display: grid !important;
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 0.75rem 1.5rem !important;
	}
}
@media (max-width: 480px) {
	.llm-filters {
		grid-template-columns: 1fr !important;
	}
}

/* ── PDP — product detail page ─────────────────────────────── */
@media (max-width: 768px) {
	.llm-pdp__layout { gap: 1.5rem !important; }
	.llm-pdp-key-facts { grid-template-columns: repeat(2, 1fr) !important; }
	.llm-wa-btn { width: 100% !important; justify-content: center !important; }
}
@media (max-width: 480px) {
	.llm-pdp-key-facts { grid-template-columns: 1fr !important; }
}

/* ── Homepage featured products row ────────────────────────── */
@media (max-width: 600px) {
	.wp-block-woocommerce-product-new,
	.wc-block-grid__products {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 0.75rem !important;
	}
}

/* ── Blog / guide cards ─────────────────────────────────────── */
@media (max-width: 768px) {
	.wp-block-post-template {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}
@media (max-width: 480px) {
	.wp-block-post-template {
		grid-template-columns: 1fr !important;
	}
}

/* ── Footer ─────────────────────────────────────────────────── */
@media (max-width: 768px) {
	.ct-footer .ct-container { padding: 2rem 1rem 1rem !important; }
	.llm-trading-line { padding: 0.75rem 1rem 1rem !important; font-size: 0.5rem !important; }
}

/* ── WhatsApp button ─────────────────────────────────────────── */
@media (max-width: 480px) {
	.llm-wa-btn { font-size: 0.875rem !important; padding: 0.6rem 0.75rem !important; }
}

/* ── Application cards grid — responsive columns ────────────── */
@media (max-width: 860px) {
	.llm-app-grid {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 0.75rem !important;
	}
	.llm-app-card { padding: 1rem !important; }
	.llm-app-card h3 { font-size: 0.9375rem !important; word-break: normal !important; overflow-wrap: normal !important; }
	.llm-app-card p { font-size: 0.8125rem !important; line-height: 1.5 !important; }
}
@media (max-width: 380px) {
	.llm-app-grid { grid-template-columns: 1fr !important; }
}

/* ── Brand grid — responsive columns ────────────────────────── */
@media (max-width: 860px) {
	.llm-brand-grid {
		grid-template-columns: repeat(3, 1fr) !important;
		gap: 0.5rem !important;
	}
	.llm-brand-tile { min-height: 80px !important; padding: 0.5rem !important; }
	.llm-brand-tile p { font-size: 0.8125rem !important; word-break: normal !important; overflow-wrap: normal !important; hyphens: none !important; }
}
@media (max-width: 480px) {
	.llm-brand-grid { grid-template-columns: repeat(2, 1fr) !important; }
	.llm-brand-tile p { font-size: 0.75rem !important; }
}

/* ── Category grid — hide broken thumbnail until images are set ─ */
.wc-block-product-categories img,
.product-category img,
.cat-item img,
.wp-block-woocommerce-product-categories img {
	display: none !important;
}

/* ── Brand tile logo images ──────────────────────────────────── */
.llm-brand-tile__img {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 64px;
	margin-bottom: 0.5rem;
}
.llm-brand-tile__img img {
	width: 100%;
	height: 64px;
	object-fit: contain;
	object-position: center;
	display: block;
}

/* ── Nav cart icon ───────────────────────────────────────────── */
.llm-nav-cart-item { list-style: none; }
.llm-nav-cart-link {
	display: inline-flex !important;
	align-items: center !important;
	gap: 0.35rem !important;
	color: #fff !important;
	text-decoration: none !important;
	padding: 0.25rem 0.5rem !important;
}
.llm-nav-cart-link svg { display: block; flex-shrink: 0; }
.llm-nav-cart-link:hover { color: var(--llm-amber-light) !important; }
.llm-nav-cart-count {
	background: var(--llm-amber);
	color: #111;
	font-size: 0.65rem;
	font-weight: 700;
	min-width: 1.25rem;
	height: 1.25rem;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 0.15rem;
	line-height: 1;
}
.llm-nav-cart-count--empty { display: none !important; }

/* ── Contact form ────────────────────────────────────────────── */
.llm-contact-form { max-width: 680px; }
.llm-form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem 1.25rem;
}
.llm-form-field { display: flex; flex-direction: column; gap: 0.35rem; }
.llm-form-field--full { grid-column: 1 / -1; }
.llm-form-field label {
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--llm-green-primary);
}
.llm-required { color: var(--llm-amber); }
.llm-contact-form input[type="text"],
.llm-contact-form input[type="email"],
.llm-contact-form input[type="tel"],
.llm-contact-form textarea {
	width: 100%;
	padding: 0.65rem 0.875rem;
	border: 1.5px solid var(--llm-stone);
	border-radius: 4px;
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.9375rem;
	background: #fff;
	color: var(--llm-body);
	transition: border-color 0.15s;
	box-sizing: border-box;
}
.llm-contact-form input:focus,
.llm-contact-form textarea:focus {
	outline: none;
	border-color: var(--llm-green-primary);
}
.llm-contact-form textarea { resize: vertical; min-height: 130px; }
.llm-form-submit {
	margin-top: 0.75rem;
	background: var(--llm-green-primary) !important;
	color: #fff !important;
	font-size: 1rem !important;
	padding: 0.75rem 2rem !important;
	border: none;
	cursor: pointer;
}
.llm-form-submit:hover { background: var(--llm-green-mid) !important; }
.llm-form-notice {
	padding: 0.75rem 1rem;
	border-radius: 4px;
	font-size: 0.9375rem;
	margin-top: 0.5rem;
	display: none;
}
.llm-form-notice--success {
	display: block;
	background: #ECFDF3;
	color: #166534;
	border: 1px solid #86EFAC;
}
.llm-form-notice--error {
	display: block;
	background: #FEF2F2;
	color: #991B1B;
	border: 1px solid #FECACA;
}
@media (max-width: 600px) {
	.llm-form-grid { grid-template-columns: 1fr; }
}

/* ── PDP enquiry button ──────────────────────────────────────── */
.llm-enquiry-btn {
	display: block !important;
	width: 100% !important;
	margin-top: 0.75rem !important;
	background: transparent !important;
	color: var(--llm-green-primary) !important;
	border: 2px solid var(--llm-green-primary) !important;
	text-align: center !important;
	font-weight: 600 !important;
}
.llm-enquiry-btn:hover {
	background: var(--llm-green-primary) !important;
	color: #fff !important;
}

/* ─────────────────────────────────────────────────────────────────────
   Branded 404 page (template/404.php)
   ───────────────────────────────────────────────────────────────────── */

.llm-404 {
	max-width: 1100px;
	margin: 0 auto;
	padding: 4rem 1.5rem 6rem;
}

.llm-404__hero {
	text-align: center;
	max-width: 760px;
	margin: 0 auto 4rem;
}

.llm-404__eyebrow {
	font-size: 0.85rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--llm-green-primary, #1C3A2E);
	margin-bottom: 1rem;
	font-weight: 600;
}

.llm-404__heading {
	font-size: clamp(2rem, 5vw, 3rem);
	line-height: 1.15;
	letter-spacing: -0.02em;
	margin-bottom: 1.25rem;
	color: #111;
}

.llm-404__intro {
	font-size: 1.125rem;
	line-height: 1.6;
	color: #444;
	margin-bottom: 2rem;
}

.llm-404__search {
	display: flex;
	max-width: 540px;
	margin: 0 auto;
	gap: 0.5rem;
}

.llm-404__search-input {
	flex: 1;
	padding: 0.85rem 1.1rem;
	border: 1.5px solid #d1d5da;
	border-radius: 6px;
	font-size: 1rem;
	background: #fff;
	transition: border-color 0.2s;
}

.llm-404__search-input:focus {
	outline: none;
	border-color: var(--llm-green-primary, #1C3A2E);
}

.llm-404__search-button {
	padding: 0.85rem 1.5rem;
	background: var(--llm-green-primary, #1C3A2E);
	color: #fff;
	border: none;
	border-radius: 6px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s;
}

.llm-404__search-button:hover {
	background: #102218;
}

.llm-404__h2 {
	font-size: 1.4rem;
	font-weight: 600;
	margin-bottom: 1.25rem;
	color: #111;
	letter-spacing: -0.01em;
}

.llm-404__categories {
	margin-bottom: 4rem;
}

.llm-404__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 1rem;
}

.llm-404__cat-card {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	background: #fff;
	border: 1px solid #e6e9ec;
	border-radius: 8px;
	overflow: hidden;
	text-decoration: none;
	color: #111;
	transition: border-color 0.2s, transform 0.2s, box-shadow 0.2s;
}

.llm-404__cat-card:hover {
	border-color: var(--llm-green-primary, #1C3A2E);
	transform: translateY(-2px);
	box-shadow: 0 6px 16px rgba(28, 58, 46, 0.08);
}

.llm-404__cat-img {
	display: block;
	height: 110px;
	background-size: cover;
	background-position: center;
	background-color: #f5f7f8;
}

.llm-404__cat-name {
	display: block;
	padding: 0.85rem 1rem;
	font-weight: 600;
	font-size: 0.95rem;
}

.llm-404__help {
	background: #f7f8f6;
	padding: 2.25rem 2rem;
	border-radius: 8px;
	border-left: 4px solid var(--llm-green-primary, #1C3A2E);
}

.llm-404__help p {
	font-size: 1rem;
	color: #333;
	margin-bottom: 1rem;
}

.llm-404__cta-row {
	display: flex;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.llm-404__btn {
	display: inline-block;
	padding: 0.7rem 1.25rem;
	background: var(--llm-green-primary, #1C3A2E);
	color: #fff !important;
	border-radius: 6px;
	text-decoration: none;
	font-weight: 600;
	font-size: 0.95rem;
	transition: background 0.2s;
}

.llm-404__btn:hover {
	background: #102218;
}

.llm-404__btn--secondary {
	background: transparent;
	color: var(--llm-green-primary, #1C3A2E) !important;
	border: 1.5px solid var(--llm-green-primary, #1C3A2E);
}

.llm-404__btn--secondary:hover {
	background: var(--llm-green-primary, #1C3A2E);
	color: #fff !important;
}

/* Branded trading-line in footer (Companies Act §1202) */
.llm-trading-line {
	max-width: 1280px;
	margin: 1.5rem auto 0.5rem;
	padding: 1rem 1.5rem;
	font-size: 0.78rem;
	line-height: 1.5;
	color: #aab1ad;
	text-align: center;
	border-top: 1px solid rgba(255, 255, 255, 0.06);
}

/* ─────────────────────────────────────────────────────────────────────
   Site-wide footer trust strip (above the trading line)
   ───────────────────────────────────────────────────────────────────── */

.llm-footer-trust {
	background: #111d17;
	color: #d6dcd8;
	padding: 1.75rem 1.5rem 1rem;
	margin-top: 0;
	border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.llm-footer-trust__inner {
	max-width: 1280px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 1.5rem;
}

.llm-footer-trust__item {
	display: flex;
	align-items: flex-start;
	gap: 0.85rem;
	padding: 0.5rem 0;
	color: #d6dcd8;
	text-decoration: none;
	transition: color 0.2s;
}

.llm-footer-trust__item:hover:not(.llm-footer-trust__item--static) {
	color: var(--llm-amber, #C8922A);
}

.llm-footer-trust__icon {
	flex-shrink: 0;
	color: var(--llm-amber, #C8922A);
	display: inline-flex;
	width: 36px;
	height: 36px;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(200, 146, 42, 0.25);
	border-radius: 50%;
	background: rgba(200, 146, 42, 0.06);
}

.llm-footer-trust__text {
	font-size: 0.82rem;
	line-height: 1.5;
}

.llm-footer-trust__text strong {
	color: #fff;
	display: block;
	font-size: 0.88rem;
	letter-spacing: 0.02em;
}

/* ───────────────────────── Lead-magnet form ───────────────────────── */

.llm-lead-magnet {
	max-width: 720px;
	margin: 2.5rem auto;
	padding: 1.75rem 1.5rem 1.5rem;
	background: #f8f6f1;
	border: 1px solid #e2dccd;
	border-radius: 12px;
}

.llm-lead-magnet__heading {
	margin: 0 0 0.5rem;
	font-size: 1.4rem;
	color: #1a2a40;
}

.llm-lead-magnet__subhead {
	margin: 0 0 1.5rem;
	color: #4a5568;
	line-height: 1.55;
}

.llm-lead-magnet__row {
	margin-bottom: 1rem;
}

.llm-lead-magnet__row--split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

@media (max-width: 600px) {
	.llm-lead-magnet__row--split { grid-template-columns: 1fr; }
}

.llm-lead-magnet label {
	display: block;
	font-weight: 600;
	color: #1a2a40;
	font-size: 0.92rem;
}

.llm-lead-magnet input[type="text"],
.llm-lead-magnet input[type="email"],
.llm-lead-magnet input[type="tel"] {
	display: block;
	width: 100%;
	margin-top: 0.25rem;
	padding: 0.65rem 0.8rem;
	border: 1px solid #c9bfa8;
	border-radius: 6px;
	background: #fff;
	font-size: 1rem;
	font-weight: 400;
	box-sizing: border-box;
}

.llm-lead-magnet input:focus {
	outline: 2px solid #c8922a;
	outline-offset: 1px;
	border-color: #c8922a;
}

.llm-lead-magnet__submit {
	margin-top: 0.5rem;
	padding: 0.85rem 1.5rem;
	font-size: 1rem;
	font-weight: 700;
	cursor: pointer;
}

.llm-lead-magnet__note {
	margin: 0.75rem 0 0;
	font-size: 0.82rem;
	color: #6b7280;
	line-height: 1.5;
}

.llm-lead-magnet__status { margin: 0.75rem 0 0; font-size: 0.95rem; min-height: 1.2em; }
.llm-lead-magnet__status.is-ok { color: #166534; font-weight: 600; }
.llm-lead-magnet__status.is-err { color: #b91c1c; font-weight: 600; }

/* ───────────────────────── PDP review section ───────────────────────── */

.llm-pdp-rating-inline {
	margin: 0.5rem 0 0.75rem;
	font-size: 0.95rem;
}

.llm-pdp-reviews {
	margin-top: 3rem;
	padding-top: 2rem;
	border-top: 1px solid #e2dccd;
}

.llm-pdp-reviews__heading {
	margin: 0 0 1rem;
	font-size: 1.5rem;
	color: #1a2a40;
}

.llm-pdp-reviews__summary { margin-bottom: 1rem; }

.llm-pdp-reviews__list { margin-bottom: 1.5rem; }

.llm-pdp-reviews__form-toggle summary {
	cursor: pointer;
	padding: 0.75rem 1rem;
	background: #f4f4f4;
	border-radius: 6px;
	font-weight: 600;
	color: #1a2a40;
	list-style: none;
	user-select: none;
}

.llm-pdp-reviews__form-toggle summary::-webkit-details-marker { display: none; }

.llm-pdp-reviews__form-toggle summary::before {
	content: "+ ";
	font-weight: 700;
	margin-right: 0.25rem;
}

.llm-pdp-reviews__form-toggle[open] summary::before { content: "− "; }

.llm-pdp-reviews__form { padding: 1rem 0; }

