/* GreenAir theme: shop styles (loaded after theme.css). Shop, product category and product search pages. Mobile first. */

/* ---------- header band ---------- */
.ga-cat-hero .wp-block-woocommerce-breadcrumbs { margin: 0; }
.ga-cat-hero .woocommerce-breadcrumb { margin: 0; line-height: 1.5; }
.ga-cat-hero .woocommerce-breadcrumb a:hover { color: var(--ga-green); }
.ga-cat-hero .wp-block-columns.ga-cat-hero-grid { gap: 22px; margin: 12px 0 0; }
.ga-cat-hero-text > * { margin-block: 0; }
.ga-cat-hero .ga-cat-count { margin-bottom: 6px; }
.ga-cat-hero h1 { margin: 0; overflow-wrap: break-word; hyphens: auto; }
/* two lines at most: the header is half the first screen, the ranges and products the other half */
.ga-cat-hero .ga-cat-intro { margin-top: 10px; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }
.ga-cat-hero .ga-cat-intro p { margin: 0; }
.ga-cat-hero-img p { margin: 0; }
.ga-cat-hero-img .ga-cat-photo { display: block; box-shadow: var(--ga-shadow); }

/* search page head */
.ga-search-head h1 { margin: 6px 0 0; font-size: var(--wp--preset--font-size--xx-large); }
.ga-search-head .ga-cat-count { margin: 18px 0 0; }
.ga-product-search { margin-top: 18px; max-width: 560px; }
.ga-product-search .wp-block-search__inside-wrapper { border: 1px solid var(--ga-line); border-radius: 999px; background: #fff; padding: 4px; }
.ga-product-search .wp-block-search__input { border: 0; min-height: 44px; padding: 0 16px; background: transparent; font: inherit; border-radius: 999px; }
.ga-product-search .wp-block-search__input:focus { outline: none; }
.ga-product-search .wp-block-search__inside-wrapper:focus-within { border-color: var(--ga-green); box-shadow: 0 0 0 3px rgba(31,115,34,.15); }
.ga-product-search .wp-block-search__button { margin: 0; min-height: 44px; padding: 0 20px; border-radius: 999px; }

/* ---------- body ---------- */
.ga-catalogue-body { margin-top: 0 !important; padding-top: 16px; padding-bottom: 0; }

/* sub-category pills: one swipeable row on phones, edge to edge, faded at the right */
.ga-catalogue nav.ga-subcats {
	margin: 0 calc(var(--wp--style--root--padding-right, 16px) * -1) 0 calc(var(--wp--style--root--padding-left, 16px) * -1);
	padding: 2px var(--wp--style--root--padding-right, 16px) 18px var(--wp--style--root--padding-left, 16px);
	scroll-padding-inline: var(--wp--style--root--padding-left, 16px);
	-webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 40px), transparent);
	mask-image: linear-gradient(90deg, #000 calc(100% - 40px), transparent);
}
.ga-catalogue .ga-subcats p { flex: none; }
.ga-catalogue .ga-subcats a { align-items: center; min-height: 44px; padding: 0 16px; line-height: 1.2; }
.ga-catalogue .ga-subcats a:focus-visible { outline: 3px solid var(--ga-lime); outline-offset: 2px; }

/* category slider on the all-products page (inc/shop.php): photo cards that slide, arrows on desktop */
.ga-cs { margin: 0 0 14px; }
.ga-cs-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.ga-cs-head p { margin: 0; }
.ga-cs-title { font-weight: 700; font-size: 1.1rem; color: var(--ga-ink); }
.ga-cs-nav { display: flex; gap: 8px; } /* arrows on every width; phones can also swipe */
.ga-cs-nav button { width: 42px; height: 42px; padding: 0; border: 1px solid var(--ga-line); border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--ga-ink); cursor: pointer; transition: border-color .15s, color .15s, opacity .15s; }
.ga-cs-nav button::before { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--ga-i-arrow) center / contain no-repeat; mask: var(--ga-i-arrow) center / contain no-repeat; }
.ga-cs-prev::before { transform: rotate(180deg); }
.ga-cs-nav button:hover:not(:disabled) { border-color: var(--ga-green); color: var(--ga-green); }
.ga-cs-nav button:disabled { opacity: .35; cursor: default; }
.ga-cs-nav button:focus-visible { outline: 3px solid var(--ga-lime); outline-offset: 2px; }
.ga-cs-track {
	display: flex; gap: 12px; margin: 0 calc(var(--wp--style--root--padding-right, 16px) * -1) 0 calc(var(--wp--style--root--padding-left, 16px) * -1);
	padding: 2px var(--wp--style--root--padding-right, 16px) 10px var(--wp--style--root--padding-left, 16px); list-style: none;
	overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--wp--style--root--padding-left, 16px); scroll-behavior: smooth; scrollbar-width: none; overscroll-behavior-x: contain;
}
.ga-cs-track::-webkit-scrollbar { display: none; }
.ga-cs-item { flex: none; width: 42%; max-width: 260px; margin: 0; scroll-snap-align: start; }
.ga-cs-card { position: relative; isolation: isolate; display: block; aspect-ratio: 4 / 3; border-radius: 16px; overflow: hidden; background: var(--ga-forest); color: #fff; text-decoration: none; box-shadow: 0 6px 16px rgba(18,38,26,.12); }
.ga-cs-card img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform .5s ease; }
.ga-cs-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, rgba(5,16,10,.85) 0%, rgba(5,16,10,.35) 50%, rgba(5,16,10,0) 75%); }
.ga-cs-text { position: absolute; left: 12px; right: 12px; bottom: 10px; display: flex; flex-direction: column; gap: 2px; }
.ga-cs-text strong { font-size: .98rem; line-height: 1.2; }
.ga-cs-text span { font-size: .78rem; color: #cfe8d1; }
.ga-cs-card:hover img { transform: scale(1.05); }
/* the range being viewed (category pages): a lime ring and a "Viewing" tag */
.ga-cs-card.is-current::before { content: ""; position: absolute; inset: 0; z-index: 1; border: 3px solid var(--ga-lime); border-radius: inherit; pointer-events: none; }
.ga-cs-here { position: absolute; top: 10px; left: 10px; z-index: 1; padding: 4px 10px; border-radius: 999px; background: var(--ga-lime); color: var(--ga-forest); font-size: .72rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
/* the sub-category pills under the slider */
.ga-cs + .ga-subcats { margin-top: -6px; }
.ga-cs-card:focus-visible { outline: 3px solid var(--ga-lime); outline-offset: 2px; }
@media (min-width: 640px) { .ga-cs-item { width: 31%; } }
@media (min-width: 960px) {
	.ga-cs { margin-bottom: 16px; }
	.ga-cs-track { margin-inline: 0; padding-inline: 0; scroll-padding-inline: 0; gap: 16px; }
	.ga-cs-item { width: calc((100% - 64px) / 5); max-width: none; } /* five at a time, the arrows show the rest */
	.ga-cs-card { aspect-ratio: 16 / 9; } /* low cards, so the products start on the first screen */
}

/* result count + sorting */
.ga-toolbar { gap: 8px 12px !important; margin: 0 0 16px !important; font-size: .92rem; color: var(--ga-muted); }
.ga-toolbar > * { margin: 0 !important; }
.ga-toolbar .woocommerce-result-count { margin: 0; }
.ga-toolbar .woocommerce-ordering { margin: 0; }
.ga-toolbar select.orderby {
	min-height: 44px; padding: 0 38px 0 14px; border: 1px solid var(--ga-line); border-radius: 10px; color: var(--ga-ink); font: inherit; cursor: pointer;
	-webkit-appearance: none; appearance: none;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235a6b60' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") right 12px center / 16px no-repeat;
}
.ga-toolbar select.orderby:hover { border-color: var(--ga-green); }
.ga-toolbar select.orderby:focus-visible { outline: 3px solid var(--ga-lime); outline-offset: 2px; }
.ga-toolbar > .wc-block-product-results-count { margin-right: auto !important; }

/* cards or list switch (inc/shop.php, theme.js) */
.ga-view { display: flex; gap: 2px; padding: 3px; border: 1px solid var(--ga-line); border-radius: 12px; background: #fff; }
.ga-view-btn { width: 36px; height: 36px; padding: 0; border: 0; border-radius: 9px; display: grid; place-items: center; background: transparent; color: var(--ga-muted); cursor: pointer; transition: background .15s, color .15s; }
.ga-view-btn::before { content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: var(--ga-view-ic) center / contain no-repeat; mask: var(--ga-view-ic) center / contain no-repeat; }
.ga-view-btn--grid { --ga-view-ic: 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' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7.5' height='7.5' rx='1.5'/%3E%3Crect x='13.5' y='3' width='7.5' height='7.5' rx='1.5'/%3E%3Crect x='3' y='13.5' width='7.5' height='7.5' rx='1.5'/%3E%3Crect x='13.5' y='13.5' width='7.5' height='7.5' rx='1.5'/%3E%3C/svg%3E"); }
.ga-view-btn--list { --ga-view-ic: 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' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='6' height='6' rx='1.2'/%3E%3Crect x='3' y='14' width='6' height='6' rx='1.2'/%3E%3Cline x1='12.5' y1='6' x2='21' y2='6'/%3E%3Cline x1='12.5' y1='9' x2='18' y2='9'/%3E%3Cline x1='12.5' y1='16' x2='21' y2='16'/%3E%3Cline x1='12.5' y1='19' x2='18' y2='19'/%3E%3C/svg%3E"); }
.ga-view-btn:hover { color: var(--ga-green); }
.ga-view-btn[aria-pressed="true"] { background: var(--ga-green); color: #fff; }
.ga-view-btn:focus-visible { outline: 3px solid var(--ga-lime); outline-offset: 2px; }
/* phones: the header already shows how many products there are; sorting and the switch share one row */
@media (max-width: 639px) {
	.ga-toolbar { margin-bottom: 12px !important; }
	.ga-toolbar > .wc-block-product-results-count { display: none; }
	.ga-toolbar > .wc-block-catalog-sorting { flex: 1; min-width: 0; }
	.ga-toolbar .woocommerce-ordering, .ga-toolbar select.orderby { width: 100%; }
}

/* ---------- product grid: 2 columns, 3 on tablets, 4 on desktops ---------- */
.ga-product-grid.wp-block-woocommerce-product-collection { margin-top: 0; margin-bottom: 0; } /* the toolbar's margin is the gap */
.ga-product-grid .wc-block-product-template {
	display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important;
	margin: 0 !important; padding: 0 !important; list-style: none;
}
.ga-product-grid .wc-block-product-template > li { width: auto !important; max-width: none !important; margin: 0 !important; }

/* card */
.ga-product-grid .wc-block-product { height: 100%; }
.ga-product-grid .wc-block-product:hover { transform: translateY(-2px); }
.ga-product-grid .wc-block-components-product-image { display: block !important; aspect-ratio: auto !important; padding: 10px; }
.ga-product-grid .wc-block-components-product-image a { display: block; aspect-ratio: 1 / 1; }
.ga-product-grid .wc-block-components-product-image img { display: block; aspect-ratio: 1 / 1 !important; }
.ga-product-grid .wp-block-post-title {
	margin: 0 !important; padding: 12px 12px 0; border-top: 1px solid var(--ga-line);
	font-size: .95rem !important; line-height: 1.3; letter-spacing: -.01em; overflow-wrap: break-word;
}
.ga-product-grid .ga-card-tag { margin: 0; padding: 12px 12px 0; border-top: 1px solid var(--ga-line); font-size: .72rem; font-weight: 700; line-height: 1.3; letter-spacing: .05em; text-transform: uppercase; color: var(--ga-green); }
.ga-product-grid .ga-card-tag + .wp-block-post-title { padding-top: 3px; border-top: 0; }
.ga-product-grid .wp-block-post-title a:hover { color: var(--ga-green); }
.ga-product-grid .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; } /* whole card opens the product */
.ga-product-grid .wp-block-post-title a:focus-visible { outline: none; }
.ga-product-grid .wc-block-product:has(.wp-block-post-title a:focus-visible) { outline: 3px solid var(--ga-lime); outline-offset: 2px; }
.ga-product-grid .ga-card-actions { position: relative; z-index: 1; margin: auto 12px 12px !important; padding-top: 12px; }

/* quote button (rendered by the quote plugin, see inc/shop.php) */
.ga-card-actions .ga-quote-btn {
	display: flex !important; align-items: center; justify-content: center; gap: 7px; width: 100%; min-height: 44px; margin: 0;
	padding: 0 10px !important; font: 700 .9rem/1.15 var(--wp--preset--font-family--dm-sans) !important; text-align: center; text-decoration: none;
	border-radius: 10px !important; box-shadow: none; transition: background .15s ease, color .15s ease;
}
.ga-card-actions .ga-quote-btn:not(.wpb-gqf-btn-loading)::before {
	content: ""; flex: none; width: 1.05em; height: 1.05em; background: currentColor;
	-webkit-mask: var(--ga-i-quote) center / contain no-repeat; mask: var(--ga-i-quote) center / contain no-repeat;
}
.ga-card-actions .ga-quote-btn.wpb-gqf-btn-loading::before { margin: 0; border-color: rgba(31,115,34,.25); border-top-color: currentColor; }
.ga-card-actions .ga-quote-btn:focus-visible { outline: 3px solid var(--ga-lime); outline-offset: 2px; }
.ga-card-actions .ga-quote-btn { cursor: pointer; }
/* in the visitor's quote list: filled green with a tick; a click opens the list */
.ga-card-actions .ga-quote-btn.is-added { background: var(--ga-green) !important; color: #fff !important; }
.ga-card-actions .ga-quote-btn.is-added::before { -webkit-mask-image: var(--ga-i-check); mask-image: var(--ga-i-check); }

/* ---------- quote popup (the plugin's SweetAlert2 window with the WPForms form), opened from the cards ---------- */
.wpb-gqf-popup.swal2-container { padding: 12px; }
.wpb-gqf-popup .swal2-popup { width: min(520px, 100%) !important; padding: 26px 20px 22px !important; border-radius: 20px !important; font-family: var(--wp--preset--font-family--dm-sans); color: var(--ga-ink); text-align: left; }
.wpb-gqf-popup .swal2-html-container { margin: 0 !important; padding: 0 !important; overflow: visible; font-size: 1rem; line-height: 1.5; }
.wpb-gqf-popup .wpb-gqb-product-title { margin: 0 44px 0 0; font-size: 1.35rem; line-height: 1.2; letter-spacing: -.01em; color: var(--ga-ink); text-align: left; }
.wpb-gqf-popup .wpb-gqb-product-title::before { content: "Free, itemised quote"; display: block; margin-bottom: 6px; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ga-green); }
.wpb-gqf-popup .swal2-close { top: 10px; right: 10px; width: 44px; height: 44px; border-radius: 12px; color: var(--ga-ink); font-size: 1.9rem; box-shadow: none; }
.wpb-gqf-popup .swal2-close:hover { background: var(--ga-mist); color: var(--ga-green); }
.wpb-gqf-popup .swal2-close:focus-visible { outline: 3px solid var(--ga-lime); }
.wpb-gqf-popup .wpforms-container { margin: 16px 0 0 !important; padding: 0 !important; }
.wpb-gqf-popup .wpforms-container .wpforms-form .wpforms-field { padding: 0 0 14px !important; clear: both; }
.wpb-gqf-popup .wpforms-container .wpforms-form .wpforms-field-label { display: block; margin: 0 0 6px; font-weight: 700; font-size: .92rem; color: var(--ga-ink); }
.wpb-gqf-popup .wpforms-container .wpforms-form .wpforms-required-label { color: #b3261e; }
.wpb-gqf-popup .wpforms-container .wpforms-form :is(input[type=text], input[type=email], input[type=tel], input[type=number], select, textarea) {
	display: block; width: 100%; max-width: 100% !important; min-height: 48px; padding: 10px 14px; border: 1.5px solid var(--ga-line); border-radius: 12px;
	background: #fff; color: var(--ga-ink); font: inherit; font-size: 1rem; box-shadow: none;
}
.wpb-gqf-popup .wpforms-container .wpforms-form textarea { min-height: 110px; height: auto; resize: vertical; }
.wpb-gqf-popup .wpforms-container .wpforms-form :is(input, select, textarea):focus { border-color: var(--ga-green); outline: 3px solid rgba(163,209,71,.45); outline-offset: 0; }
.wpb-gqf-popup .wpforms-container .wpforms-form .wpforms-submit-container { padding: 4px 0 0 !important; }
.wpb-gqf-popup .wpforms-container .wpforms-form button[type=submit] {
	display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 52px; padding: 0 26px; border: 0; border-radius: 999px;
	background: var(--ga-green) !important; color: #fff !important; font: 700 1rem/1 var(--wp--preset--font-family--dm-sans); cursor: pointer; box-shadow: 0 6px 16px rgba(31,115,34,.28);
}
.wpb-gqf-popup .wpforms-container .wpforms-form button[type=submit]:is(:hover, :focus) { background: var(--ga-green-dark) !important; }
.wpb-gqf-popup .wpforms-container .wpforms-form button[type=submit]:focus-visible { outline: 3px solid var(--ga-lime); outline-offset: 3px; }
.wpb-gqf-popup .wpforms-container .wpforms-form :is(label.wpforms-error, em.wpforms-error) { color: #b3261e; font-size: .88rem; }
.wpb-gqf-popup .wpforms-confirmation-container-full { margin: 16px 0 0; padding: 16px 18px; border: 1px solid var(--ga-line); border-radius: 12px; background: var(--ga-mist); color: var(--ga-ink); }

/* quote banner inside the grid (inserted after the 8th card by inc/shop.php) */
.ga-product-grid .wc-block-product-template > li.ga-grid-banner {
	grid-column: 1 / -1; grid-row: 5; display: grid !important; gap: 14px; align-items: center; justify-items: start; margin: 0 !important;
	padding: 22px; border: 0; border-radius: var(--ga-radius); background: var(--wp--preset--gradient--forest); color: #fff; text-align: left; list-style: none;
}
.ga-grid-banner p { margin: 0; color: #c9e0cd; font-size: .95rem; }
.ga-grid-banner .ga-grid-banner__title { margin-bottom: 6px; color: #fff; font-size: var(--wp--preset--font-size--large); font-weight: 700; line-height: 1.2; letter-spacing: -.01em; }
.ga-grid-banner .wp-block-buttons { margin: 0; }

/* pagination */
.ga-catalogue .ga-pagination { flex-wrap: wrap; gap: 8px; margin-top: 28px; }
.ga-pagination .wp-block-query-pagination-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.ga-pagination .wp-block-query-pagination-numbers .page-numbers { margin: 0; }
.ga-pagination .wp-block-query-pagination-numbers a.page-numbers:hover,
.ga-pagination .wp-block-query-pagination-previous:hover,
.ga-pagination .wp-block-query-pagination-next:hover { border-color: var(--ga-green); color: var(--ga-green); }
.ga-pagination .wp-block-query-pagination-numbers .dots { border-color: transparent; }
.ga-pagination .wp-block-query-pagination-previous,
.ga-pagination .wp-block-query-pagination-next {
	display: inline-grid; place-items: center; width: 44px; height: 44px; margin: 0; border: 1px solid var(--ga-line); border-radius: 12px;
	color: var(--ga-ink); text-decoration: none; font-size: 0;
}
.ga-pagination .wp-block-query-pagination-previous::before,
.ga-pagination .wp-block-query-pagination-next::before {
	content: ""; width: 20px; height: 20px; background: currentColor;
	-webkit-mask: var(--ga-i-arrow) center / contain no-repeat; mask: var(--ga-i-arrow) center / contain no-repeat;
}
.ga-pagination .wp-block-query-pagination-previous::before { transform: scaleX(-1); }
.ga-pagination .wp-block-query-pagination-previous > *,
.ga-pagination .wp-block-query-pagination-next > * { display: none; }

/* no results */
.ga-no-results { position: relative; max-width: 640px; margin: 0; padding: 16px 18px 16px 48px; border-radius: 12px; background: var(--ga-mist); }
.ga-no-results::before {
	content: ""; position: absolute; left: 18px; top: 20px; width: 18px; height: 18px; background: var(--ga-green);
	-webkit-mask: var(--ga-i-file) center / contain no-repeat; mask: var(--ga-i-file) center / contain no-repeat;
}

/* ---------- tablet ---------- */
@media (min-width: 640px) {
	.ga-product-grid .wc-block-product-template { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 16px !important; }
	.ga-product-grid .wc-block-product-template > li.ga-grid-banner { grid-row: 4; grid-template-columns: 1fr auto; gap: 24px; padding: 26px 28px; }
	.ga-product-grid .wc-block-components-product-image { padding: 12px; }
	.ga-product-grid .wp-block-post-title { padding: 12px 14px 0; font-size: .98rem !important; }
	.ga-product-grid .ga-card-tag { padding: 12px 14px 0; font-size: .74rem; }
	.ga-product-grid .ga-card-actions { margin: auto 14px 14px !important; }
}

/* ---------- desktop ---------- */
@media (min-width: 960px) {
	.ga-cat-hero .wp-block-columns.ga-cat-hero-grid { gap: 48px; margin-top: 14px; }
	.ga-catalogue nav.ga-subcats {
		flex-wrap: wrap !important; overflow: visible; margin: 0; padding: 0 0 16px;
		-webkit-mask-image: none; mask-image: none;
	}
	/* category pages: the sub-category pills and the sorting share one row (the count is in the header) */
	.ga-catalogue-body > .alignwide:has(> nav.ga-subcats) { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 24px; align-items: start; }
	.ga-catalogue-body > .alignwide:has(> nav.ga-subcats) > * { grid-column: 1 / -1; }
	.ga-catalogue-body > .alignwide:has(> nav.ga-subcats) > .wc-block-store-notices { order: -1; }
	.ga-catalogue-body > .alignwide:has(> nav.ga-subcats) > nav.ga-subcats { grid-column: 1; }
	.ga-catalogue-body > .alignwide:has(> nav.ga-subcats) > .ga-toolbar { grid-column: 2; }
	.ga-catalogue-body > .alignwide:has(> nav.ga-subcats) .wc-block-product-results-count { display: none; }
	.ga-catalogue-body { padding-top: 20px; }
	.ga-product-grid .wc-block-product-template { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 20px !important; }
	.ga-product-grid .wc-block-product-template > li.ga-grid-banner { grid-row: 3; padding: 30px 36px; }
}

/* ---------- list view (html.ga-view-list, from the cards/list switch): one product per row ---------- */
.ga-product-grid .ga-card-excerpt { display: none; } /* cards: no description */
html.ga-view-list .ga-product-grid .wc-block-product-template { grid-template-columns: minmax(0, 1fr) !important; gap: 10px !important; }
html.ga-view-list .ga-product-grid .wc-block-product {
	/* the empty first and last rows take the spare height, so the text stays centred next to the photo */
	display: grid !important; grid-template-columns: 88px minmax(0, 1fr); grid-template-rows: 1fr auto auto auto 1fr;
	grid-template-areas: "img ." "img tag" "img title" "img act" "img ."; column-gap: 14px; height: auto; padding: 8px 12px 8px 8px;
}
html.ga-view-list .ga-product-grid .wc-block-product:hover { transform: none; }
html.ga-view-list .ga-product-grid .wc-block-components-product-image { grid-area: img; align-self: center; width: 88px; padding: 4px; }
html.ga-view-list .ga-product-grid .ga-card-tag { grid-area: tag; padding: 0; border: 0; }
html.ga-view-list .ga-product-grid .wp-block-post-title { grid-area: title; margin: 0 !important; padding: 2px 0 0; border: 0; }
html.ga-view-list .ga-product-grid .ga-card-actions { grid-area: act; justify-self: start; margin: 8px 0 0 !important; padding: 0; }
html.ga-view-list .ga-card-actions .ga-quote-btn { width: auto; min-height: 40px; padding: 0 16px !important; }
html.ga-view-list .ga-product-grid .wc-block-product-template > li.ga-grid-banner { grid-row: auto; } /* after the 8th row */
@media (min-width: 640px) {
	html.ga-view-list .ga-product-grid .wc-block-product {
		grid-template-columns: 112px minmax(0, 1fr) auto; grid-template-areas: "img . act" "img tag act" "img title act" "img text act" "img . act";
		column-gap: 20px; padding: 10px 20px 10px 10px;
	}
	html.ga-view-list .ga-product-grid .wc-block-components-product-image { width: 112px; }
	html.ga-view-list .ga-product-grid .ga-card-excerpt { grid-area: text; display: block; margin: 4px 0 0; max-width: 72ch; color: var(--ga-muted); font-size: .9rem; line-height: 1.45; }
	html.ga-view-list .ga-product-grid .ga-card-excerpt p { margin: 0; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }
	html.ga-view-list .ga-product-grid .ga-card-actions { align-self: center; margin: 0 !important; }
	html.ga-view-list .ga-card-actions .ga-quote-btn { min-width: 170px; min-height: 44px; }
}

/* ---------- category header: photo fills the whole band, white text on a dark overlay ---------- */
.ga-cat-hero { position: relative; overflow: hidden; background: var(--ga-forest) !important; color: #fff; min-height: 290px; min-height: clamp(260px, 34svh, 340px); display: flex; flex-direction: column; justify-content: flex-end; padding-block: 16px 24px !important; }
.ga-cat-hero > .alignwide, .ga-cat-hero .ga-cat-hero-grid, .ga-cat-hero .wp-block-column { position: static; }
.ga-cat-hero .ga-cat-hero-img, .ga-cat-hero .ga-cat-hero-img > p { position: static !important; margin: 0 !important; padding: 0 !important; flex: 0 0 0 !important; width: 0 !important; height: 0 !important; min-width: 0 !important; overflow: visible; }
.ga-cat-hero .ga-cat-hero-grid { gap: 0 !important; }
.ga-cat-hero .ga-cat-hero-img .ga-cat-photo { position: absolute; inset: 0; z-index: 0; width: 100% !important; height: 100% !important; max-width: none; aspect-ratio: auto !important; object-fit: cover; border-radius: 0 !important; box-shadow: none !important; }
.ga-cat-hero::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, rgba(6,24,14,.55) 0%, rgba(6,24,14,.35) 35%, rgba(6,24,14,.82) 100%); }
.ga-cat-hero > .alignwide { width: 100%; position: static !important; }
.ga-cat-hero .wp-block-woocommerce-breadcrumbs, .ga-cat-hero .woocommerce-breadcrumb, .ga-cat-hero .ga-cat-hero-text { position: relative; z-index: 2; }
.ga-cat-hero .ga-cat-hero-text { flex-basis: 100% !important; max-width: 680px; }
.ga-cat-hero .woocommerce-breadcrumb, .ga-cat-hero .woocommerce-breadcrumb a { color: rgba(255,255,255,.82) !important; }
.ga-cat-hero .woocommerce-breadcrumb a:hover { color: #fff !important; }
.ga-cat-hero .ga-cat-count, .ga-cat-hero .is-style-eyebrow { color: var(--ga-lime) !important; }
.ga-cat-hero h1 { color: #fff !important; text-shadow: 0 2px 20px rgba(0,0,0,.35); }
.ga-cat-hero .ga-cat-intro, .ga-cat-hero .ga-cat-intro p, .ga-cat-hero .ga-lead { color: #e9f3eb !important; text-shadow: 0 1px 10px rgba(0,0,0,.35); }
@media (min-width: 960px) {
	.ga-cat-hero { min-height: 330px; min-height: clamp(300px, 36svh, 440px); padding-block: 22px 36px !important; }
	.ga-cat-hero::before { background: linear-gradient(90deg, rgba(6,24,14,.85) 0%, rgba(6,24,14,.55) 45%, rgba(6,24,14,.15) 80%), linear-gradient(180deg, rgba(6,24,14,.35) 0%, transparent 30%); }
}