/*
Theme Name: BLOOMZ New Zealand
Theme URI: https://bloomz.co.nz
Author: webaddress
Author URI: https://webaddress.host
Description: One-page services site for BLOOMZ New Zealand Ltd — a facilitated gateway for plant genetics: plant import, post-entry quarantine, tissue culture, plant export and plant variety rights. Block theme, navy and orange, type-led (no photographic hero tier exists in the asset library). Two surfaces: the one-page Home and a standalone Contact/enquiry page.
Requires at least: 6.6
Tested up to: 6.9
Requires PHP: 8.1
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: bloomz
Tags: block-theme, business, one-column, full-width-template, custom-colors

Plus Jakarta Sans and DM Sans are bundled under the SIL Open Font License 1.1 —
see assets/fonts/LICENCES.md. Only palette colours come from theme.json presets;
incidental dark-navy and grey shades are literal here as in the approved concept.
*/

/* There is no separate header bar — client correction, 2026-09-15. The logo,
   nav and CTA sit directly on whatever section opens the page (the hero on
   Home; the blue pagehead/pathway gradient everywhere else), with no
   background of their own: .bz-header pulls the section below it up
   underneath via negative margin, so the two occupy the same space, and a
   z-index keeps the nav readable on top. --bz-header-h is the one number
   every affected section's top padding is built from, so the overlap and
   the compensating space always match, at both header heights. */
:root {
	--bz-header-h: 85px;
}

/* ------------------------------------------------------------------ Fonts */
@font-face {
	font-family: "Plus Jakarta Sans";
	src: url("assets/fonts/plus-jakarta-sans-latin.woff2") format("woff2");
	font-weight: 700 800;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "DM Sans";
	src: url("assets/fonts/dm-sans-latin.woff2") format("woff2");
	font-weight: 400 700;
	font-style: normal;
	font-display: swap;
}

/* ------------------------------------------------------------------ Base */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

body {
	margin: 0;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--body);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	
}

a {
	color: inherit;
	text-decoration: none;
}

img {
	max-width: 100%;
}

/* display:contents keeps every template-part wrapper (header, footer) out of
   layout entirely, so it never adds a box of its own around the block it
   wraps. */
.wp-block-template-part {
	display: contents;
}

h1,
h2,
h3 {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.03;
}

:focus-visible {
	outline: 2px solid var(--wp--preset--color--orange);
	outline-offset: 2px;
}

.bz-shell {
	width: min(var(--wp--style--global--content-size, 1200px), calc(100% - 52px));
	margin-inline: auto;
}

.bz-pic {
	display: block;
}

.bz-pic img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.bz-img-missing {
	display: block;
	padding: 1rem;
	border: 1px dashed currentColor;
	font: 700 0.75rem var(--wp--preset--font-family--mono);
	color: var(--wp--preset--color--orange-deep);
}

.bz-reveal {
	opacity:1;
	transform:none;
	transition:none;
}

.bz-reveal.is-visible {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
	.bz-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

/* Grid children must shrink when browser text is enlarged. */
.bz-home *, .bz-footer__grid > * { min-width: 0; }
.bz-home h1, .bz-home h2, .bz-home h3, .bz-hero__proof, .bz-specimen__status, .bz-faq__summary { overflow-wrap: anywhere; }
.bz-faq__summary::-webkit-details-marker { display: none; }
.bz-hero .bz-eyebrow { flex-wrap: wrap; }
.bz-hero :focus-visible, .bz-pathway :focus-visible, .bz-footer :focus-visible { outline-color: var(--wp--preset--color--orange); }

/* ---------------------------------------------------------------- Buttons */
.bz-btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:8px;
	border-radius:8px;
	font-weight:800;
	white-space:normal;
	min-height:52px;
	padding:0 24px;
	border:2px solid transparent;
	font-size:0.94rem;
	transition:background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
	text-align:center;
}

.bz-btn--primary {
	background:linear-gradient(115deg,var(--wp--preset--color--orange-lit),var(--wp--preset--color--orange));
	color:var(--wp--preset--color--navy);
	box-shadow:none;
}

.bz-btn--primary:hover,
.bz-btn--primary:focus-visible {
	background:var(--wp--custom--legacy--colour-1);
	transform:translateY(-1px);
	box-shadow:none;
}

.bz-btn--nav {
	min-height:0;
	padding:13px 21px;
	background:linear-gradient(115deg,var(--wp--preset--color--orange-lit),var(--wp--preset--color--orange));
	color:var(--wp--preset--color--navy);
	box-shadow:none;
}

.bz-btn--nav:hover,
.bz-btn--nav:focus-visible {
	background: var(--wp--custom--legacy--colour-1);
	transform: translateY(-1px);
}

/* ----------------------------------------------------------------- Header */
/* Static, not sticky — client correction, 2026-09-15, reversing the sticky
   + transparent-over-hero treatment from earlier the same day. That
   approach kept producing overlap at various widths as the hero/header
   geometry had to stay in lockstep; the enquiry CTA appears repeatedly down
   every page anyway, so there's no real cost to the header just scrolling
   away normally. One solid background always, no scroll-linked state.
   `position:relative` (not the literal `static` keyword) only so
   .bz-nav__links — the mobile dropdown, `position:absolute` — still anchors
   to this bar instead of the page; it does not move the header itself. */
.bz-header {
	position:relative;
	z-index:10;
	margin-bottom:calc(-1 * var(--bz-header-h));
	border-bottom:0;
}

.bz-topstripe {
	height: 3px;
	display: flex;
}
.bz-topstripe span:nth-child(1) {
	flex:2;
	background:var(--wp--preset--color--blue);
}
.bz-topstripe span:nth-child(2) {
	flex: 1;
	background: var(--wp--preset--color--orange-deep);
}
.bz-topstripe span:nth-child(3) {
	flex: 1;
	background: var(--wp--preset--color--orange-lit);
}

.bz-nav {
	height: 82px;
	display: flex;
	align-items: center;
	gap: 34px;
}

.bz-brand {
	display: flex;
	align-items: center;
	min-width: 0;
}
.bz-brand img {
	width:185px;
	height:auto;
	display:block;
	position:relative;
	top:-1px;
}

.bz-nav__links {
	margin-left:auto;
	display:flex;
	align-items:center;
	gap:20px;
	color:var(--wp--preset--color--white);
	font-size:.88rem;
	font-weight:650;
}

.bz-nav__links a:not(.bz-btn) {
	position: relative;
	padding: 8px 0;
	white-space: nowrap;
}
.bz-nav__links a[aria-current="page"]:not(.bz-btn) {
	color:var(--wp--preset--color--white);
}
.bz-nav__links a[aria-current="page"]:not(.bz-btn)::after {
	right: 0;
}
.bz-nav__links a:not(.bz-btn)::after {
	content: "";
	position: absolute;
	left: 0;
	right: 100%;
	bottom: 2px;
	height: 2px;
	background: var(--wp--preset--color--orange);
	transition: right 0.22s ease;
}
.bz-nav__links a:not(.bz-btn):hover::after {
	right: 0;
}

.bz-nav__toggle {
	display:none;
	margin-left:auto;
	width:44px;
	height:44px;
	border:0;
	border-radius:8px;
	background:color-mix(in srgb, var(--wp--preset--color--white) 10%, transparent);
	color:var(--wp--preset--color--white);
	font-size:1.35rem;
	cursor:pointer;
}

/* ------------------------------------------------------------ Section rhythm */
.bz-section {
	padding: 76px 0;
}
.bz-section--soft {
	background: var(--wp--custom--legacy--colour-2);
}
.bz-section--band {
	background: var(--wp--preset--color--band);
}

.bz-sectionhead {
	display: grid;
	grid-template-columns: 1fr 0.78fr;
	gap: 56px;
	align-items: end;
	margin-bottom: 34px;
}
.bz-sectionhead h2 {
	font-size:clamp(2.15rem,3.6vw,3.35rem);
	line-height:1.1;
	letter-spacing:-.035em;
	margin:0;
	color:var(--wp--preset--color--navy);
	text-wrap:balance;
}
.bz-sectionhead p {
	margin: 0;
	color: var(--wp--preset--color--muted);
	font-size: 1.06rem;
	line-height: 1.62;
}

/* "All the colours of life" mark — hero, footer and the Import & Export page
   opening all share this size and treatment (client correction, 2026-09-16,
   third pass on this mark's size: decisive this time, no more incremental
   bumps). No rule/line before it on any of the three. Sized against the hero
   sub-headline (.bz-hero__specialist + .bz-hero__lead) it now sits above: at
   this height the mark reads with roughly the same visual weight as that
   two-line block, clearly larger than the previous 46px eyebrow treatment. */
.bz-tagline-mark {
	display: block;
	height: clamp(52px, 6vw, 76px);
	width: auto;
}
.bz-hero__tagline {
	margin: 0 0 4px;
}

.bz-accent {
	color: var(--wp--preset--color--orange);
}
.bz-accent-ink {
	color:var(--wp--preset--color--orange-deep);
}
.bz-mt {
	margin-top: 18px;
}

/* -------------------------------------------------------------------- Hero */
.bz-hero {
	padding:0;
	background:radial-gradient(ellipse at 88% 15%,var(--wp--preset--color--blue),transparent 68%),linear-gradient(135deg,var(--wp--preset--color--navy),var(--wp--custom--concept--tone-3));
	color:var(--wp--preset--color--white);
	isolation:isolate;
	position:relative;
	overflow:hidden;
}
.bz-hero__grid {
	display:grid;
	grid-template-columns:.95fr 1.05fr;
	gap:48px;
	align-items:center;
	padding-top:calc(64px + var(--bz-header-h));
	padding-bottom:64px;
}
.bz-hero h1 {
	color:var(--wp--preset--color--white);
	font-size:clamp(3.1rem,4.5vw,4.3rem);
	line-height:1.06;
	letter-spacing:-.04em;
	max-width:15ch;
	margin:15px 0 20px;
	text-wrap:balance;
}
.bz-hero h1 sup {
	font-size: 0.28em;
	color: var(--wp--custom--legacy--colour-5);
	vertical-align: super;
	margin-left: 2px;
}
.bz-hero__specialist {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.12rem;
	line-height: 1.45;
	font-weight: 650;
	color: var(--wp--custom--legacy--colour-6);
	max-width: 54ch;
	margin: 0 0 14px;
	text-wrap: pretty;
}
.bz-hero__lead {
	font-size: 1rem;
	line-height: 1.62;
	color: var(--wp--custom--legacy--colour-7);
	max-width: 54ch;
	margin: 0;
	text-wrap: pretty;
}
.bz-hero__actions {
	margin: 22px 0 0;
}
.bz-hero__proof {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
	margin: 24px 0 0;
	padding-top: 20px;
	border-top: 1px solid var(--wp--custom--legacy--colour-8);
}
.bz-hero__proof span {
	font-family: var(--wp--preset--font-family--mono);
	color: var(--wp--custom--legacy--colour-9);
	font-size: 0.72rem;
	letter-spacing: 0.045em;
}
.bz-hero__proof span::before {
	content: "+";
	color: var(--wp--preset--color--orange);
	margin-right: 6px;
	font-weight: 900;
}

/* Specimen board */
.bz-specimen {
	color:var(--wp--preset--color--white);
	min-width:0;
}
.bz-specimen__head {
	min-height:62px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:20px;
	padding:14px 0 18px;
	border-top:1px solid var(--wp--custom--concept--tone-6);
	border-bottom:1px solid var(--wp--custom--concept--tone-9);
}
.bz-specimen__head div {
	display: grid;
	gap: 2px;
}
.bz-specimen__head span,
.bz-specimen__label,
.bz-specimen__status span {
	font:700 .72rem/1.3 var(--wp--preset--font-family--mono);
	letter-spacing:0.14em;
	color:var(--wp--custom--concept--tone-8);
}
.bz-specimen__head b {
	font-size:.88rem;
	color:var(--wp--preset--color--white);
}
.bz-specimen__head > strong {
	font:800 .72rem/1 var(--wp--preset--font-family--mono);
	color:var(--wp--custom--concept--tone-6);
	letter-spacing:.1em;
	white-space:nowrap;
}
.bz-specimen__main {
	display:grid;
	grid-template-columns:1.02fr .98fr;
	min-height:300px;
	padding:20px 0;
	gap:22px;
}
.bz-specimen__photo {
	margin:0;
	overflow:hidden;
	background:var(--wp--custom--concept--tone-13);
	min-width:0;
	border-radius:4px;
}
.bz-specimen__photo .bz-pic,
.bz-specimen__photo .bz-pic img {
	width: 100%;
	height: 100%;
}
.bz-specimen__photo figcaption {
	display: none;
}
.bz-specimen__photo img {
	object-position:39% center;
}
/* Hero specimen photo — rotates through colourful TC frames rather than
   sitting on one static shot (client feedback, 2026-09-15). */
.bz-specimen__photo--rotate {
	position: relative;
	/* The rotating pictures are position:absolute (stacked for the
	   crossfade), so — unlike the single static picture this replaces —
	   none of them contribute height to this figure. At the ≤1020px
	   breakpoint, where .bz-specimen__main drops to one column and the
	   figure can no longer borrow height from a grid-stretched sibling,
	   that collapsed the figure to ~0px and overflow:hidden clipped every
	   frame to a sliver. Giving the figure itself a real aspect ratio
	   fixes it at every width; the desktop 2-column grid happened to mask
	   this because stretch alignment gave the figure a height anyway. */
	aspect-ratio: 4 / 3;
}
.bz-specimen__photo--rotate .bz-pic {
	position: absolute;
	inset: 0;
}
/* Photo carousels (.bz-rotate) — the stacked <picture> frames inside a
   carousel wrapper, one showing at a time. Photos and their order come from
   Site Photos → Carousels (inc/admin-photos.php); the wrapper carries
   bz-rotate--nN for the count, which picks the cycle length and keyframes.

   Every photo gets 6s: ~1s cross-fade in, a genuine 4s hold at full
   opacity, ~1s cross-fade out — a calm occasional transition, not constant
   motion (client correction, 2026-09-15: the first version dimmed for
   almost its whole time on screen and read as "too busy"). A 1-photo
   carousel just holds still. Keyframes go up to BLOOMZ_CAROUSEL_MAX. */
.bz-rotate > .bz-pic {
	opacity: 0;
	animation: var(--bz-fade) calc(var(--bz-n) * 6s) ease-in-out calc(var(--bz-i, 0) * 6s) infinite;
}
.bz-rotate > .bz-pic:nth-of-type(2) { --bz-i: 1; }
.bz-rotate > .bz-pic:nth-of-type(3) { --bz-i: 2; }
.bz-rotate > .bz-pic:nth-of-type(4) { --bz-i: 3; }
.bz-rotate > .bz-pic:nth-of-type(5) { --bz-i: 4; }
.bz-rotate > .bz-pic:nth-of-type(6) { --bz-i: 5; }
.bz-rotate > .bz-pic:nth-of-type(7) { --bz-i: 6; }
.bz-rotate > .bz-pic:nth-of-type(8) { --bz-i: 7; }
.bz-rotate--n1 > .bz-pic { animation: none; opacity: 1; }
.bz-rotate--n2 { --bz-n: 2; --bz-fade: bz-fade-2; }
.bz-rotate--n3 { --bz-n: 3; --bz-fade: bz-fade-3; }
.bz-rotate--n4 { --bz-n: 4; --bz-fade: bz-fade-4; }
.bz-rotate--n5 { --bz-n: 5; --bz-fade: bz-fade-5; }
.bz-rotate--n6 { --bz-n: 6; --bz-fade: bz-fade-6; }
.bz-rotate--n7 { --bz-n: 7; --bz-fade: bz-fade-7; }
.bz-rotate--n8 { --bz-n: 8; --bz-fade: bz-fade-8; }
@keyframes bz-fade-2 {
	0%     { opacity: 0; }
	8.33%  { opacity: 1; }
	41.67% { opacity: 1; }
	50%    { opacity: 0; }
	100%   { opacity: 0; }
}
@keyframes bz-fade-3 {
	0%     { opacity: 0; }
	5.56%  { opacity: 1; }
	27.78% { opacity: 1; }
	33.33% { opacity: 0; }
	100%   { opacity: 0; }
}
@keyframes bz-fade-4 {
	0%     { opacity: 0; }
	4.17%  { opacity: 1; }
	20.83% { opacity: 1; }
	25%    { opacity: 0; }
	100%   { opacity: 0; }
}
@keyframes bz-fade-5 {
	0%     { opacity: 0; }
	3.33%  { opacity: 1; }
	16.67% { opacity: 1; }
	20%    { opacity: 0; }
	100%   { opacity: 0; }
}
@keyframes bz-fade-6 {
	0%     { opacity: 0; }
	2.78%  { opacity: 1; }
	13.89% { opacity: 1; }
	16.67% { opacity: 0; }
	100%   { opacity: 0; }
}
@keyframes bz-fade-7 {
	0%     { opacity: 0; }
	2.38%  { opacity: 1; }
	11.9%  { opacity: 1; }
	14.29% { opacity: 0; }
	100%   { opacity: 0; }
}
@keyframes bz-fade-8 {
	0%     { opacity: 0; }
	2.08%  { opacity: 1; }
	10.42% { opacity: 1; }
	12.5%  { opacity: 0; }
	100%   { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.bz-rotate > .bz-pic {
		animation: none;
	}
	.bz-rotate > .bz-pic:first-of-type {
		opacity: 1;
	}
}
.bz-specimen__data {
	padding:4px 0 0;
	min-width:0;
}
.bz-specimen__label {
	margin-bottom:12px;
	color:var(--wp--custom--concept--tone-8);
}
.bz-specimen__blurb {
	margin:0;
	padding-top:12px;
	border-top:1px solid var(--wp--custom--concept--tone-9);
	color:var(--wp--preset--color--white);
	font-size:0.92rem;
	line-height:1.55;
}
.bz-specimen__more .bz-textlink{color:var(--wp--custom--concept--tone-6);text-decoration:underline;text-underline-offset:4px}
.bz-specimen__more {
	margin: 14px 0 0;
}
.bz-genus {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--wp--custom--legacy--colour-10);
}
.bz-genus li {
	display: flex;
	align-items: center;
	gap: 13px;
	padding: 9px 0;
	border-bottom: 1px solid var(--wp--custom--legacy--colour-10);
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.92rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
}
.bz-genus b {
	font: 800 .72rem var(--wp--preset--font-family--mono);
	color: var(--wp--preset--color--orange-deep);
	width: 20px;
}
.bz-specimen__strip {
	display:grid;
	grid-template-columns:1.35fr .95fr;
	gap:22px;
	border-top:1px solid var(--wp--custom--concept--tone-9);
}
.bz-specimen__note {
	padding:18px 0 0;
	font-size:.82rem;
	line-height:1.55;
	color:var(--wp--custom--concept--tone-8);
	margin:0;
}
.bz-specimen__note b {
	color:var(--wp--preset--color--white);
}
.bz-specimen__status {
	padding:18px 0 0;
	display:grid;
	align-content:start;
	gap:6px;
	margin:0;
}
.bz-specimen__status b {
	font-family:var(--wp--preset--font-family--display);
	font-size:.9rem;
	color:var(--wp--preset--color--white);
}

/* ---------------------------------------------------------------- Gateway */
.bz-gateway {
	background: var(--wp--preset--color--cream);
	border-block: 1px solid var(--wp--custom--legacy--colour-11);
}
.bz-gateway__inner {
	padding: 34px 0;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 30px;
	align-items: center;
}
.bz-gateway__big {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2.4rem, 4vw, 3.2rem);
	font-weight: 800;
	letter-spacing: -0.04em;
	color: var(--wp--preset--color--orange-deep);
	line-height: 1;
	white-space: nowrap;
}
.bz-gateway p:not(.bz-gateway__big) {
	margin: 0;
	color: var(--wp--custom--legacy--colour-12);
	font-size: 1.04rem;
	line-height: 1.6;
	max-width: 62ch;
}

/* --------------------------------------------------------- Lead services */
.bz-services {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}
.bz-service {
	position: relative;
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 14px;
	background: var(--wp--custom--legacy--colour-13);
	display: grid;
	grid-template-columns: 200px 1fr;
	min-height: 250px;
	box-shadow: 0 10px 32px -30px var(--wp--custom--legacy--colour-14);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.bz-service:hover {
	transform: translateY(-3px);
	box-shadow: 0 24px 48px -30px var(--wp--custom--legacy--colour-15);
}
.bz-service > .bz-pic {
	width: 200px;
	height: 100%;
}
.bz-service__body {
	padding: 26px 28px;
	display: flex;
	flex-direction: column;
}
.bz-service__no {
	margin: 0;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 0.72rem;
	font-weight: 900;
	letter-spacing: 0.13em;
	color: var(--wp--preset--color--orange-deep);
}
.bz-service h3 {
	margin: 8px 0 10px;
	color: var(--wp--preset--color--navy);
	font-size: 1.32rem;
	letter-spacing: -0.02em;
}
.bz-service p {
	margin: 0 0 18px;
	color: var(--wp--preset--color--slate);
	font-size: 0.95rem;
	line-height: 1.55;
}
.bz-service .bz-btn {
	align-self: flex-start;
	margin-top: auto;
	min-height: 44px;
}

.bz-subservices {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	margin-top: 14px;
}
.bz-subservices__lead {
	grid-column: 1 / -1;
	margin: 0 0 4px;
	font: 800 .72rem var(--wp--preset--font-family--mono);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}
.bz-subservice {
	border-top:1px solid var(--wp--preset--color--line);padding:18px 0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:start;
}
.bz-tag {
	font: 900 .72rem var(--wp--preset--font-family--mono);
	letter-spacing: 0.1em;
	color: var(--wp--custom--legacy--colour-13);
	background: var(--wp--preset--color--blue);
	border-radius: 6px;
	padding: 6px 8px;
	white-space: nowrap;
}
.bz-subservice h3 {
	margin: 0 0 5px;
	font-size: 1.04rem;
	color: var(--wp--preset--color--navy);
}
.bz-subservice p {
	margin: 0;
	font-size: 0.86rem;
	color: var(--wp--preset--color--slate);
	line-height: 1.5;
}

/* ------------------------------------------------ Law-firm comparison */
.bz-compare {
	background:linear-gradient(115deg,var(--wp--preset--color--white),var(--wp--preset--color--cream));
	color:var(--wp--preset--color--ink);
	position:relative;
	overflow:hidden;
}
.bz-compare::after {
	content:none;
	position:absolute;
	width:460px;
	height:460px;
	border-radius:50%;
	right:-200px;
	top:-190px;
	background:radial-gradient(circle, var(--wp--custom--legacy--colour-16), transparent 70%);
	pointer-events:none;
}
.bz-compare__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1.15fr 0.85fr;
	gap: 52px;
	align-items: center;
}
.bz-compare h2 {
	font-size:clamp(2.3rem,3.8vw,3.4rem);
	letter-spacing:-.04em;
	line-height:1.08;
	margin:0 0 20px;
	color:var(--wp--preset--color--navy);
}
.bz-compare p {
	margin:0 0 14px;
	color:var(--wp--preset--color--muted);
	font-size:1.04rem;
	line-height:1.62;
	max-width:60ch;
}
.bz-compare .bz-textlink--lit,.bz-compare .bz-eyebrow--lit{color:var(--wp--preset--color--orange-ink)}
.bz-compare .bz-textlink--lit:hover{color:var(--wp--preset--color--navy)}
.bz-compare__side {
	display: grid;
	gap: 12px;
}
.bz-compare__side .bz-pic {
	border-radius: 10px;
	overflow: hidden;
	width: 100%;
	height: 100%;
}
.bz-compare__stat {
	border-bottom:1px solid var(--wp--custom--concept--tone-19);
	padding:0 0 24px;
}
.bz-compare__stat b {
	display:block;
	font-family:var(--wp--preset--font-family--display);
	font-size:3rem;
	line-height:1;
	letter-spacing:-.04em;
	color:var(--wp--preset--color--orange-ink);
}
.bz-compare__stat span {
	display:block;
	margin-top:10px;
	color:var(--wp--preset--color--muted);
	font-size:.9rem;
	line-height:1.45;
}
.bz-compare__split {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
}
.bz-compare__split li {
	border-bottom:1px solid var(--wp--custom--concept--tone-19);
	padding:12px 0;
	font-size:.94rem;
	line-height:1.5;
	color:var(--wp--preset--color--ink);
}
.bz-compare__split li.is-ours {
	border-color:var(--wp--custom--concept--tone-6);
	background:transparent;
}
.bz-who {
	display:block;
	font:700 .72rem var(--wp--preset--font-family--body);
	letter-spacing:.08em;
	text-transform:uppercase;
	color:var(--wp--preset--color--muted);
	margin-bottom:5px;
}
.bz-compare__split li.is-ours .bz-who {
	color:var(--wp--preset--color--orange-ink);
}

/* --------------------------------------------------------------- Pathway */
.bz-pathway,
.bz-pagehead {
	background:linear-gradient(135deg,var(--wp--preset--color--blue),var(--wp--preset--color--navy) 85%);
	color:var(--wp--preset--color--white);
	position:relative;
	overflow:hidden;
}
.bz-pathway .bz-shell,
.bz-pagehead .bz-shell {
	position: relative;
	z-index: 1;
}
.bz-pathway {
	/* .bz-section's own 76px top padding, plus room for the header now
	   overlapping this (the page's own opening section). */
	padding-top: calc(76px + var(--bz-header-h));
}
.bz-pathway .bz-sectionhead {
	margin-bottom: 26px;
}
.bz-pathway .bz-sectionhead h2 {
	color: var(--wp--custom--legacy--colour-13);
}
.bz-pathway .bz-sectionhead p {
	color: var(--wp--custom--legacy--colour-18);
}
.bz-pathway__brand {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	margin: 0 0 18px;
}
.bz-import-opening h1 {
	font-size: clamp(2.6rem, 5vw, 4rem);
	line-height: 1.06;
	letter-spacing: -0.04em;
	color: var(--wp--preset--color--white);
	margin: 0;
	max-width: 21ch;
}
.bz-import-opening h1 span { color: var(--wp--preset--color--orange-lit); }
.bz-import-opening .bz-sectionnav { padding: 0 0 30px; }
.bz-import-opening .bz-sectionnav a { color: var(--wp--preset--color--orange-lit); }
.bz-import-opening__process-title {
	font-size: clamp(1.15rem, 2vw, 1.4rem);
	color: var(--wp--preset--color--white);
	line-height: 1.4;
	margin: 0 0 18px;
}
.bz-pathway__grid {
	display:grid;
	grid-template-columns:.72fr 1.28fr;
	gap:14px;
}
.bz-pathway__image {
	position:relative;
	min-height:480px;
	overflow:hidden;
	border-radius:8px;
	background:var(--wp--custom--concept--tone-30);
}
.bz-pathway__image .bz-pic,
.bz-pathway__image .bz-pic img {
	width:100%;
	height:100%;
	object-position:45% center;
}
.bz-pathway__image .bz-pic img {
	filter: saturate(0.85) contrast(1.04);
	opacity: 0.86;
}
.bz-pathway__image::after {
	content:"";
	position:absolute;
	inset:0;
	background:linear-gradient(180deg,transparent 55%,var(--wp--custom--concept--tone-31) 100%);
	z-index: 1;
}
/* Revolving treatment for the Import & Export opening image — the same
   .bz-rotate crossfade as the home hero's specimen photo, client request
   2026-09-16. */
.bz-pathway__image--rotate .bz-pic {
	position: absolute;
	inset: 0;
}
.bz-pathway__caption {
	position: absolute;
	z-index: 2;
	left: 22px;
	right: 22px;
	bottom: 22px;
}
.bz-pathway__caption span {
	display: block;
	color: var(--wp--preset--color--orange-lit);
	font: 800 .72rem var(--wp--preset--font-family--mono);
	letter-spacing: 0.12em;
	margin-bottom: 8px;
}
.bz-pathway__caption strong {
	font-size: 0.94rem;
	line-height: 1.5;
	color: var(--wp--custom--legacy--colour-13);
	font-weight: 650;
}
.bz-labpath {
	border:1px solid var(--wp--custom--concept--tone-25);
	border-radius:8px;
	overflow:hidden;
	background:var(--wp--custom--concept--tone-32);
}
.bz-labpath__head {
	min-height: 52px;
	padding: 12px 18px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-bottom: 1px solid var(--wp--custom--legacy--colour-19);
	background: var(--wp--custom--legacy--colour-20);
	font: 800 .72rem var(--wp--preset--font-family--mono);
	letter-spacing: 0.12em;
	color: var(--wp--custom--legacy--colour-21);
}
.bz-labpath__head b {
	color: var(--wp--preset--color--orange-lit);
}
.bz-labrow {
	position:relative;
	min-height:88px;
	display:grid;
	grid-template-columns:42px 1fr 74px;
	gap:13px;
	align-items:center;
	padding:15px 17px;
	border-bottom:1px solid var(--wp--custom--concept--tone-33);
}
.bz-labrow:not(:last-child)::before{content:"";position:absolute;left:32px;top:50%;bottom:-50%;width:1px;background:var(--wp--custom--concept--tone-6);opacity:.55}
.bz-labrow:last-child {
	border-bottom: 0;
}
.bz-labrow i {
	position:relative;
	z-index:1;
	display:grid;
	place-items:center;
	width:30px;
	height:30px;
	border:1px solid var(--wp--custom--concept--tone-6);
	border-radius:50%;
	background:var(--wp--custom--concept--tone-32);
	font:700 .72rem var(--wp--preset--font-family--mono);
	color:var(--wp--custom--concept--tone-6);
	font-style:normal;
}
.bz-labrow b {
	font-family: var(--wp--preset--font-family--display);
	color: var(--wp--custom--legacy--colour-13);
	font-size: 0.93rem;
}
.bz-labrow p {
	margin:5px 0 0;
	color:var(--wp--custom--concept--tone-24);
	font-size:.85rem;
	line-height:1.5;
}
.bz-labrow em {
	justify-self:end;
	font:900 .72rem var(--wp--preset--font-family--mono);
	letter-spacing:.09em;
	font-style:normal;
	color:var(--wp--custom--concept--tone-36);
	border:1px solid var(--wp--custom--concept--tone-37);
	padding:5px 6px;
	border-radius:5px;
	background:var(--wp--custom--concept--tone-38);
	text-align:center;
}
.bz-labrow.is-lead {
	background: var(--wp--custom--legacy--colour-22);
}
.bz-labrow.is-lead em {
	color: var(--wp--preset--color--orange-lit);
	border-color: var(--wp--custom--legacy--colour-23);
	background: var(--wp--custom--legacy--colour-24);
}
.bz-tbc {
	margin-top: 14px;
	border: 1px dashed var(--wp--custom--legacy--colour-25);
	border-radius: 13px;
	background: repeating-linear-gradient(135deg, var(--wp--custom--legacy--colour-26) 0 12px, transparent 12px 24px);
	padding: 20px 22px;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 16px;
	align-items: center;
}
.bz-tbc__label {
	font: 900 0.6rem var(--wp--preset--font-family--mono);
	letter-spacing: 0.14em;
	color: var(--wp--preset--color--orange-lit);
	border: 1px solid var(--wp--custom--legacy--colour-23);
	border-radius: 6px;
	padding: 6px 8px;
	white-space: nowrap;
}
.bz-tbc p {
	margin: 0;
	color: var(--wp--custom--legacy--colour-18);
	font-size: 0.83rem;
	line-height: 1.5;
}

/* -------------------------------------------------------- Tissue culture */
.bz-tcstrip {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
}
.bz-tcstep {
	overflow:hidden;
	background:var(--wp--preset--color--white);
	margin:0;
}
.bz-tcstep .bz-pic {
	width: 100%;
	height: 220px;
}
.bz-tcstep figcaption {
	padding:17px 0;
	border-bottom:1px solid var(--wp--preset--color--line);
}
.bz-tcstep figcaption b {
	display:block;
	font-family:var(--wp--preset--font-family--mono);
	font-size:.72rem;
	letter-spacing:.1em;
	color:var(--wp--preset--color--orange-ink);
	font-weight:700;
}
.bz-tcstep figcaption span {
	display: block;
	margin-top: 4px;
	color: var(--wp--preset--color--navy);
	font-size: 0.95rem;
	font-weight: 700;
}
.bz-tcfoot {
	margin: 16px 0 0;
	font-size: 0.82rem;
	color: var(--wp--preset--color--muted);
	display: flex;
	gap: 10px;
	align-items: center;
}
.bz-tcfoot::before {
	content: "";
	width: 28px;
	height: 1px;
	background: var(--wp--preset--color--orange);
}

/* The programme preview links the two lead services into one narrative. */
.bz-process { position:relative; background:linear-gradient(125deg,var(--wp--preset--color--blue),var(--wp--preset--color--navy)); color:var(--wp--preset--color--white); }
.bz-process .bz-sectionhead h2 { color:var(--wp--preset--color--white); }
.bz-process .bz-sectionhead p { color:var(--wp--custom--concept--tone-8); }
.bz-process__steps { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:24px; list-style:none; padding:0; margin:36px 0 30px; }
.bz-process__steps li { position:relative; }
.bz-process__steps li:not(:last-child)::before { content:""; position:absolute; top:18px; left:36px; right:-24px; height:1px; background:color-mix(in srgb,var(--wp--preset--color--orange-lit) 55%,transparent); }
.bz-process__number { position:relative; display:grid; place-items:center; width:36px; height:36px; border:1px solid var(--wp--preset--color--orange-lit); border-radius:50%; color:var(--wp--preset--color--orange-lit); font:700 .75rem var(--wp--preset--font-family--mono); }
.bz-process__steps h3 { color:var(--wp--preset--color--white); font-size:1.05rem; line-height:1.3; margin:18px 0 8px; }
.bz-process__steps p { font-size:.9rem; line-height:1.55; color:var(--wp--custom--concept--tone-8); margin:0; }
.bz-ip-summary { border-left:1px solid var(--wp--preset--color--orange-lit); padding:12px 0 12px 28px; }
.bz-ip-summary h3 { color:var(--wp--preset--color--navy); font-size:clamp(1.3rem,2.2vw,1.8rem); line-height:1.3; margin:0 0 16px; }
.bz-ip-summary p { margin:0; }
.bz-first-contact { display:grid; grid-template-columns:72px minmax(0,1fr) auto; gap:24px; align-items:center; padding-top:30px; }
.bz-first-contact__initials { display:grid; place-items:center; width:72px; height:80px; border-radius:6px; background:linear-gradient(135deg,var(--wp--preset--color--line),var(--wp--preset--color--white)); color:var(--wp--preset--color--blue); font:800 1.6rem var(--wp--preset--font-family--display); }
.bz-first-contact .bz-pic { width:72px; height:80px; border-radius:6px; overflow:hidden; }
.bz-first-contact .bz-pic img { object-position:50% 20%; }
.bz-first-contact h3 { font-size:1.25rem; color:var(--wp--preset--color--navy); margin:0 0 6px; }
.bz-first-contact p { margin:0 0 12px; max-width:60ch; color:var(--wp--preset--color--muted); }
.bz-first-contact a[href^="mailto:"],.bz-first-contact a[href^="tel:"] { text-decoration:underline; text-underline-offset:4px; font-size:.9rem; }
.bz-sectionnav { display:flex; flex-wrap:wrap; gap:12px 28px; padding:12px 0 30px; }
.bz-sectionnav a { color:var(--wp--preset--color--orange-ink); text-decoration:underline; text-underline-offset:5px; font-weight:700; font-size:.9rem; }
.bz-form-status { grid-column:1/-1; margin:0; color:var(--wp--preset--color--muted); font-size:.85rem; line-height:1.6; }
.bz-form-status.is-sent { color: var(--wp--preset--color--navy); font-weight: 700; }
.bz-form-status.is-error,
.bz-form-status.is-captcha,
.bz-form-status.is-invalid,
.bz-form-status.is-retry { color: var(--wp--preset--color--orange-deep); font-weight: 700; }
.bz-btn:disabled { cursor:not-allowed; opacity:.65; transform:none; }
/* Honeypot — off-screen, not display:none (some bots skip hidden fields but
   still fill in ones merely moved out of the viewport). Real visitors never
   see or tab to it. */
.bz-hp-field {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.bz-field--captcha input {
	max-width: 140px;
}

/* --------------------------------------------------------------- Stakes */
.bz-stakes {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:28px;
	margin-top:30px;
	border-top:1px solid var(--wp--preset--color--line);
	border-bottom:1px solid var(--wp--preset--color--line);
	padding:28px 0;
}
.bz-stake {
	padding:0;
	background:transparent;
}
/* bz-stake__label/__title/__body (not bare strong/b/span): editable-content
   bindings only work on real block output (core/paragraph → <p>, never
   <strong>/<b>/<span>), so these are classed paragraphs — same visual rules
   as before, just selected by class instead of tag. */
.bz-stake strong, .bz-stake__label {
	display:block;
	font-family:var(--wp--preset--font-family--display);
	font-size:clamp(1.45rem,2.2vw,1.9rem);
	line-height:1.2;
	color:var(--wp--preset--color--navy);
	letter-spacing:-.03em;
}
.bz-stake b, .bz-stake__title {
	display: block;
	margin-top: 9px;
	color: var(--wp--preset--color--navy);
	font-size: 0.9rem;
}
.bz-stake span, .bz-stake__body {
	display:block;
	margin-top:5px;
	color:var(--wp--preset--color--muted);
	font-size:.82rem;
	line-height:1.45;
}
.bz-stakes__copy {
	margin: 26px 0 0;
	max-width: 70ch;
	color: var(--wp--custom--legacy--colour-27);
	font-size: 1.06rem;
	line-height: 1.62;
}

/* -------------------------------------------------------------- Partners */
.bz-partners {
	padding: 54px 0;
	border-top: 1px solid var(--wp--preset--color--line);
}
.bz-partners__head {
	max-width: 64ch;
}
.bz-partners__lead {
	margin: 14px 0 0;
	color: var(--wp--preset--color--muted);
	font-size: 1.02rem;
	line-height: 1.6;
}
.bz-partners__textrow {
	margin: 22px 0 0;
	padding-top: 22px;
	border-top: 1px solid var(--wp--preset--color--line);
	color: var(--wp--preset--color--navy);
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.1rem;
	font-weight: 700;
	line-height: 1.5;
	max-width: 62ch;
}
.bz-partners__group {
	margin-top: 30px;
}
.bz-partners__group + .bz-partners__group {
	margin-top: 34px;
	padding-top: 30px;
	border-top: 1px solid var(--wp--preset--color--line);
}
.bz-partners__grouplabel {
	margin: 0 0 18px;
	color: var(--wp--preset--color--muted);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.bz-partners__row {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	gap: 28px 40px;
}
.bz-partners__item {
	display: flex;
	align-items: center;
	min-height: 44px;
}
/* Fixed box per logo (client correction, 2026-09-17): a plain height:44px/
   width:auto let each mark's natural aspect ratio decide its width, so
   Lincoln's wide/short crop rendered nearly 3x as wide as the squarer marks
   beside it — visibly disproportionate and the reason the row wrapped.
   object-fit:contain inside an equal-size box makes every logo occupy the
   same footprint without distorting it. */
.bz-partners__item img {
	height: 44px;
	width: 96px;
	object-fit: contain;
	object-position: left center;
	opacity: 0.72;
	filter: grayscale(1);
	mix-blend-mode: multiply;
	transition: opacity 0.25s ease, filter 0.25s ease;
}
.bz-partners__item img:hover {
	opacity: 1;
	filter: grayscale(0);
}
/* Bioeconomy's mark is a pale mint green — measured against a live render,
   its darkest pixel lands at luminance 232/255, versus 107-131 for every
   other logo in this row. Grayscale+multiply washes a light source colour
   out to near-invisible against the white section background; darkening
   it before the grayscale conversion brings it into the same visible range
   as its neighbours. Same specificity as the shared rule above (one class +
   one element) so it must stay after it in source order to win. */
.bz-partners__item--bioeconomy img {
	filter: grayscale(1) brightness(0.4);
}

/* ----------------------------------------------------------------- Team */
.bz-team {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:24px;
}
@media (min-width: 861px) {
	.bz-tcard--andrew {
		grid-column: 1;
		grid-row: 1;
	}
	.bz-tcard--louisa {
		grid-column: 2;
		grid-row: 1;
	}
	/* Second client correction, 2026-09-16: Carol to top right, Maria to bottom
	   left. */
	.bz-tcard--carol {
		grid-column: 3;
		grid-row: 1;
	}
	.bz-tcard--maria {
		grid-column: 1;
		grid-row: 2;
	}
	/* Client correction, 2026-09-17: Alice was at bottom-right, which left the
	   references card (no photo, the grid's 6th item) auto-filling the only
	   remaining cell — bottom-middle, wedged between two photos, reading as a
	   layout mistake. Alice now takes that middle slot instead, so every photo
	   sits contiguous across the two rows and the non-photo card is pushed to
	   the true end (bottom-right) where an outlier card reads as deliberate. */
	.bz-tcard--alice {
		grid-column: 2;
		grid-row: 2;
	}
	.bz-tcard--refs {
		grid-column: 3;
		grid-row: 2;
	}
}
.bz-tcard {
	border-top:1px solid var(--wp--preset--color--line);
	padding-top:22px;
	background:transparent;
	display:flex;
	flex-direction:column;
	min-width:0;
}
.bz-tcard .bz-pic {
	width:110px;
	aspect-ratio:auto;
	height:120px;
	border-radius:6px;
	overflow:hidden;
}
.bz-tcard .bz-pic img {
	object-position:50% 25%;
	background:var(--wp--custom--legacy--colour-28);
	height:100%;
}
.bz-tcard__body {
	padding:18px 0 0;
	display:flex;
	flex-direction:column;
	flex:1;
}
/* Editable-fields prototype (2026-09-17): the name/role/credentials group
   inc/team-fields.php reads from the About page's own content is a real DOM
   node (its id is what connects the two), but should have zero layout
   presence of its own — display:contents un-boxes it so h3/p/p stack in
   .bz-tcard__body exactly as they did as literal siblings before. Kept as
   its own name for the About page's already-seeded content; .bz-fields-wrap
   below is the same rule, generic, for every editable field group added
   after the team prototype (site-wide editability project, 2026-09-18). */
.bz-tcard__fields {
	display: contents;
}
.bz-fields-wrap {
	display: contents;
}
.bz-tcard--lead {
	border-color:var(--wp--preset--color--orange);
	box-shadow:none;
}
/* Client correction, 2026-09-17, second pass: an absolute overlay on the
   photo (first attempt at this same fix) covered part of Louisa's face —
   "plastered on top of her photo". Back in normal flow, above the name as
   originally, but now every other team card renders an identical badge
   (inc/sections.php, class bz-lead-flag--spacer) with the visible text
   swapped for hidden — visibility:hidden still occupies its box, so every
   card reserves the exact same height above <h3> whether or not it has a
   real badge, without hand-measuring or duplicating padding/font values. */
.bz-lead-flag {
	display:inline-flex;
	align-self:flex-start;
	margin-bottom:8px;
	font:700 .72rem var(--wp--preset--font-family--body);
	letter-spacing:.08em;
	color:var(--wp--preset--color--navy);
	background:var(--wp--preset--color--orange);
	border-radius:4px;
	padding:5px 9px;
}
.bz-lead-flag--spacer {
	visibility:hidden;
}
.bz-tcard__body h3 {
	margin: 0;
	font-size: 1.1rem;
	color: var(--wp--preset--color--navy);
}
.bz-tcard__role {
	margin: 4px 0 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.83rem;
	line-height: 1.4;
}
.bz-tcard__credentials {
	margin: 6px 0 0;
	color: var(--wp--preset--color--slate);
	font-size: 0.76rem;
	line-height: 1.4;
}
/* Client correction, 2026-09-17: Carol has no credentials line, so her
   divider (the border-top on .bz-tcard__contact below) sat higher than
   Andrew's and Louisa's, who both have one. Same reserved-space approach as
   the lead-flag spacer — an identical, hidden .bz-tcard__credentials keeps
   every top-row divider at the same height without inventing wording for
   a credential Carol doesn't have. */
.bz-tcard__credentials--spacer {
	visibility: hidden;
}
.bz-tcard__contact a{text-decoration:underline;text-underline-offset:4px}
.bz-tcard__contact {
	list-style:none;
	margin:14px 0 0;
	padding:14px 0 0;
	border-top:1px solid var(--wp--preset--color--line);
	display:grid;
	gap:10px;
}
.bz-tcard__contact li {
	display:grid;
	grid-template-columns:62px minmax(0,1fr);
	gap:8px;
	font-size:.86rem;
	color:var(--wp--preset--color--navy);
	overflow-wrap:anywhere;
}
.bz-k {
	font:600 .75rem/1.6 var(--wp--preset--font-family--body);
	color:var(--wp--preset--color--muted);
}
.bz-tbc-text {
	color: var(--wp--custom--legacy--colour-30);
}
.bz-tcard--refs {
	grid-column:auto;
	padding:22px 0;
	display:flex;
	flex-direction:column;
	justify-content:center;
}
.bz-tcard--refs b {
	font-family: var(--wp--preset--font-family--display);
	color: var(--wp--preset--color--navy);
	font-size: 1.02rem;
}
.bz-tcard--refs p {
	margin: 8px 0 0;
	color: var(--wp--preset--color--slate);
	font-size: 0.86rem;
	line-height: 1.5;
}

/* ------------------------------------------------------- Accreditations */
.bz-accred {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
	margin-top: 8px;
}
.bz-accred__card {
	border: 1px dashed var(--wp--custom--legacy--colour-31);
	border-radius: 14px;
	background: var(--wp--custom--legacy--colour-32);
	padding: 22px 20px;
	min-height: 160px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.bz-accred__label {
	font: 900 .72rem var(--wp--preset--font-family--mono);
	letter-spacing: 0.13em;
	color: var(--wp--preset--color--orange-deep);
}
.bz-accred__card b {
	font-family: var(--wp--preset--font-family--display);
	color: var(--wp--preset--color--navy);
	font-size: 1rem;
}
.bz-accred__card span {
	color: var(--wp--custom--legacy--colour-33);
	font-size: 0.82rem;
	line-height: 1.45;
}
.bz-accred__refs {
	margin:24px 0 0;
	padding:24px;
	border-radius:8px;
	background:linear-gradient(120deg,var(--wp--preset--color--navy),var(--wp--preset--color--blue));
	color:var(--wp--preset--color--white);
	font-size:1rem;
	line-height:1.55;
}
.bz-acronyms {
	margin-top: 22px;
	border-top: 1px solid var(--wp--preset--color--line);
	padding-top: 18px;
}
.bz-acronyms__label {
	margin: 0;
	font: 800 .72rem var(--wp--preset--font-family--mono);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}
.bz-acronyms dl {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 6px 34px;
	margin: 12px 0 0;
}
.bz-acronyms dl > div {
	display: grid;
	grid-template-columns: 64px 1fr;
	gap: 12px;
	font-size: 0.85rem;
	padding: 4px 0;
	border-bottom: 1px solid var(--wp--custom--legacy--colour-34);
}
.bz-acronyms dt {
	font-weight: 800;
	color: var(--wp--preset--color--navy);
	font-family: var(--wp--preset--font-family--mono);
}
.bz-acronyms dd {
	margin: 0;
	color: var(--wp--preset--color--slate);
}
.bz-acronyms__note {
	margin: 12px 0 0;
	font-size: 0.78rem;
	color: var(--wp--preset--color--muted);
}

/* ----------------------------------------------------------------- About */
.bz-about {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	align-items: stretch;
}
.bz-about > div:first-child {
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.bz-about h2 {
	font-size: clamp(2.1rem, 4vw, 3.7rem);
	line-height: 1.02;
	letter-spacing: -0.045em;
	margin: 12px 0 0;
	color: var(--wp--preset--color--navy);
}
.bz-about > div:first-child > p {
	margin: 14px 0 0;
	color: var(--wp--preset--color--slate);
	font-size: 1.02rem;
	line-height: 1.62;
	max-width: 58ch;
}
.bz-about__points {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
	margin-top: clamp(28px, 4vw, 44px);
}
.bz-about__points > div {
	padding:16px 0;background:transparent;border-top:1px solid var(--wp--preset--color--line);
}
.bz-about__points strong {
	display: block;
	color: var(--wp--preset--color--navy);
	font-size: 0.95rem;
}
.bz-about__points span {
	display: block;
	margin-top: 4px;
	color: var(--wp--custom--legacy--colour-35);
	font-size: 0.8rem;
	line-height: 1.4;
}
.bz-about__mark {
	border-radius:8px;background:linear-gradient(125deg,var(--wp--preset--color--navy),var(--wp--preset--color--blue));color:var(--wp--preset--color--white);padding:36px;display:flex;flex-direction:column;justify-content:center;gap:16px;position:relative;overflow:hidden;
}
.bz-about__markline {
	display: block;
	width: clamp(220px, 26vw, 300px);
	height: auto;
	position: relative;
	z-index: 1;
}
.bz-about__marksub {
	color: var(--wp--custom--legacy--colour-38);
	font-size: 0.98rem;
	line-height: 1.55;
	max-width: 44ch;
	position: relative;
	z-index: 1;
}

/* ---------------------------------------------------------------- Export */
/* Client correction, 2026-09-17: .bz-sectionhead's shared `align-items: end`
   bottom-aligns the heading against the paragraph beside it — fine where the
   two columns run similar heights, but it reads as centred/low here. Scoped
   to this section only, not the shared rule, so every other section keeps
   its existing bottom-aligned opening. */
.bz-exportband .bz-sectionhead {
	align-items: start;
}
.bz-export__media {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}
.bz-export__media .bz-pic {
	border-radius: 6px;
	overflow: hidden;
}
@media (max-width: 660px) {
	.bz-export__media {
		grid-template-columns: 1fr 1fr;
	}
}

/* ------------------------------------------------------------------- FAQ */
.bz-faqgrid {
	display: grid;
	grid-template-columns: 0.76fr 1.24fr;
	gap: 64px;
	align-items: start;
}
.bz-faqgrid > div:first-child h2 {
	font-size: clamp(2rem, 3.6vw, 3.2rem);
	color: var(--wp--preset--color--navy);
	margin: 12px 0 0;
	letter-spacing: -0.04em;
}
.bz-faqgrid > div:first-child p {
	margin: 12px 0 0;
	color: var(--wp--preset--color--muted);
	font-size: 1.02rem;
}
.bz-faq {
	border-top: 1px solid var(--wp--preset--color--line);
}
.bz-faq__item {
	border-bottom: 1px solid var(--wp--preset--color--line);
}
.bz-faq__summary {
	width:100%;
	border:0;
	background:none;
	display:flex;
	justify-content:space-between;
	align-items:center;
	gap:18px;
	text-align:left;
	padding:21px 0;
	color:var(--wp--preset--color--navy);
	font-family:inherit;
	font-weight:800;
	font-size:1.05rem;
	cursor:pointer;
	list-style:none;
}
.bz-faq__summary span:last-child {
	font-size: 1.45rem;
	color: var(--wp--preset--color--orange);
	transition: transform 0.2s ease;
}
.bz-faq__a {
	display:block;
	grid-template-rows:0fr;
	transition:grid-template-rows 0.25s ease;
}
.bz-faq__a > div {
	overflow: hidden;
}
.bz-faq__a p {
	margin: 0;
	padding: 0 36px 20px 0;
	color: var(--wp--custom--legacy--colour-40);
	font-size: 0.93rem;
	line-height: 1.6;
}

.bz-faq__item[open] .bz-faq__summary span:last-child {
	transform: rotate(45deg);
}

/* --------------------------------------------------------------- Enquiry */
.bz-enquiry {
	padding: 40px 0 84px;
}
.bz-enquiry__card {
	overflow:hidden;
	border-radius:10px;
	background:var(--wp--preset--color--white);
	border:1px solid var(--wp--preset--color--line);
}
.bz-enquiry__stripe {
	height: 6px;
	display: flex;
}
.bz-enquiry__stripe span:nth-child(1) {
	flex: 2;
	background: var(--wp--preset--color--blue);
}
.bz-enquiry__stripe span:nth-child(2) {
	flex: 1;
	background: var(--wp--preset--color--orange);
}
.bz-enquiry__stripe span:nth-child(3) {
	flex: 1;
	background: var(--wp--preset--color--orange-deep);
}
.bz-enquiry__grid {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
}
.bz-enquiry__form {
	padding: 42px 44px;
	border-right: 1px solid var(--wp--preset--color--line);
}
.bz-enquiry__form h2 {
	font-size: clamp(1.9rem, 3.4vw, 2.9rem);
	letter-spacing: -0.04em;
	color: var(--wp--preset--color--navy);
	margin: 10px 0 0;
}
.bz-enquiry__form form {
	margin-top:22px;
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:18px;
}
.bz-field:has(#bz-biz),.bz-field:has(textarea),.bz-field--captcha,.bz-enquiry__form form>.bz-btn{grid-column:1/-1}
.bz-field {
	display: grid;
	gap: 6px;
	margin: 0;
}
.bz-field label {
	font:650 .82rem/1.5 var(--wp--preset--font-family--body);color:var(--wp--preset--color--ink);
}
.bz-field input,
.bz-field textarea {
	font:inherit;font-size:1rem;color:var(--wp--preset--color--navy);background:var(--wp--preset--color--soft);border:1px solid var(--wp--preset--color--muted);border-radius:6px;padding:12px 13px;width:100%;
}
.bz-field textarea {
	min-height: 82px;
	resize: vertical;
}
.bz-field input:focus-visible,
.bz-field textarea:focus-visible {
	outline: 2px solid var(--wp--preset--color--orange);
	outline-offset: 1px;
	background: var(--wp--custom--legacy--colour-13);
}
.bz-enquiry__form .bz-btn {
	margin-top: 4px;
	width: 100%;
}
.bz-enquiry__aside {
	padding: 42px 40px;
	background: linear-gradient(180deg, var(--wp--custom--legacy--colour-42), var(--wp--custom--legacy--colour-43));
}
.bz-why {
	margin: 0 0 16px;
	color: var(--wp--custom--legacy--colour-27);
	font-size: 1rem;
	line-height: 1.62;
}
.bz-callback {
	margin: 0 0 16px;
	padding: 16px 18px;
	border-radius: 12px;
	background: var(--wp--preset--color--navy);
	color: var(--wp--custom--legacy--colour-13);
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.4;
}
.bz-enquiry__lines {
	display: grid;
	gap: 8px;
	margin-top: 8px;
}
.bz-enquiry__lines p {
	margin: 0;
	display: grid;
	grid-template-columns: 64px 1fr;
	gap: 12px;
	align-items: center;
	padding: 11px 13px;
	border-radius: 10px;
	background: var(--wp--custom--legacy--colour-13);
	border: 1px solid var(--wp--preset--color--line);
}
.bz-enquiry__lines span {
	font: 900 .72rem var(--wp--preset--font-family--mono);
	letter-spacing: 0.1em;
	color: var(--wp--custom--legacy--colour-41);
}
.bz-enquiry__lines strong {
	color: var(--wp--preset--color--navy);
	font-size: 0.92rem;
}
.bz-directions {
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid var(--wp--preset--color--line);
}
.bz-directions__head {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 10px;
}
.bz-directions__label {
	margin: 0;
	font: 800 0.72rem var(--wp--preset--font-family--mono);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}
.bz-compass {
	width: 40px;
	height: 40px;
	flex-shrink: 0;
}
.bz-compass__ring {
	fill: var(--wp--preset--color--white);
	stroke: var(--wp--preset--color--line);
	stroke-width: 2;
}
.bz-compass__star {
	fill: var(--wp--preset--color--genus-gold);
}
.bz-compass__inner {
	fill: none;
	stroke: var(--wp--preset--color--genus-gold);
	stroke-width: 1.5;
}
.bz-directions__map {
	display: block;
	width: 100%;
	max-width: 611px;
	height: auto;
	border-radius: 8px;
	border: 1px solid var(--wp--preset--color--line);
}
.bz-directions__link {
	display: block;
	border-radius: 8px;
}
.bz-directions__link:focus-visible {
	outline: 2px solid var(--wp--preset--color--orange);
	outline-offset: 2px;
}
/* Client correction, 2026-09-16: was a white badge overlaid on the map image
   itself ("messy"); now a plain bordered chip sitting below the clear map. */
.bz-directions__cta {
	display: inline-block;
	margin-top: 10px;
	padding: 6px 12px;
	border-radius: 6px;
	border: 1px solid var(--wp--preset--color--line);
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--navy);
	font-size: 0.78rem;
	font-weight: 800;
}

/* ---------------------------------------------------------------- Footer */
.bz-footer {
	background:var(--wp--preset--color--navy-deep);
	color:var(--wp--custom--legacy--colour-44);
	padding:36px 0 0;
}
.bz-footer__grid {
	display:grid;
	grid-template-columns:1.3fr 1fr 1fr;
	gap:32px;
	padding-bottom:24px;
}
.bz-footer__wordmark {
	width: 190px;
	height: auto;
	filter: brightness(0) invert(1);
	opacity: 0.96;
	display: block;
}
.bz-footer__tagline {
	margin-top: 16px;
	opacity: 0.95;
}
.bz-footer__brand p {
	max-width:34ch;
	color:var(--wp--custom--legacy--colour-45);
	font-size:0.86rem;
	margin:16px 0 0;
	line-height:1.55;
}
.bz-footer__grid h2 {
	margin: 2px 0 14px;
	color: var(--wp--custom--legacy--colour-13);
	font-size: 0.72rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-weight: 700;
}
.bz-footer__grid ul {
	list-style:none;
	margin:0;
	padding:0;
	display:grid;
	gap:6px;
}
.bz-footer__grid ul a,
.bz-footer__grid ul span {
	color: var(--wp--custom--legacy--colour-46);
	font-size: 0.86rem;
}
.bz-footer__grid ul a:hover {
	color: var(--wp--preset--color--orange-lit);
}
.bz-footer__tm {
	border-top: 1px solid var(--wp--custom--legacy--colour-47);
	padding: 16px 0;
}
.bz-footer__tm p {
	margin: 0;
	font-size: 0.78rem;
	color: var(--wp--custom--legacy--colour-48);
}
.bz-footer__bottom {
	border-top: 1px solid var(--wp--custom--legacy--colour-47);
	padding: 18px 0;
	font-size: 0.78rem;
	color: var(--wp--custom--legacy--colour-48);
	display: flex;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}
.bz-footer__legal {
	display: flex;
	gap: 18px;
	margin-left: auto;
}
.bz-footer__legal a {
	color: var(--wp--custom--legacy--colour-48);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.bz-footer__legal a:hover {
	color: var(--wp--preset--color--white);
}

/* ------------------------------------------------ Split: new components */

/* Plain in-text link — navigation between pages, never a call to action. */
.bz-textlink {
	font-family:var(--wp--preset--font-family--display);
	font-weight:800;
	font-size:0.9rem;
	color:var(--wp--preset--color--orange-ink);
	letter-spacing:-0.01em;
}
.bz-textlink:hover {
	color: var(--wp--preset--color--navy);
}
.bz-textlink--lit {
	color: var(--wp--preset--color--orange-lit);
}
.bz-textlink--lit:hover {
	color: var(--wp--custom--legacy--colour-13);
}

/* Home — three service routes. Top-image cards, same design language as the
   service cards but three across and navigation rather than CTA. */
.bz-routes {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:20px;
}
.bz-route {
	display:grid;
	flex-direction:column;
	border:0;
	border-radius:8px;
	background:var(--wp--custom--legacy--colour-13);
	overflow:hidden;
	box-shadow:none;
	transition:background .2s ease;
	grid-template-columns:180px minmax(0,1fr);
}
.bz-route:hover {
	transform:none;
	box-shadow:none;
}
.bz-route .bz-pic {
	width:100%;
	aspect-ratio:auto;
	height:100%;
}
.bz-route__body {
	padding: 24px 24px 26px;
	display: flex;
	flex-direction: column;
	flex: 1;
}
.bz-route__no {
	margin:0;
	font-family:var(--wp--preset--font-family--mono);
	font-size:0.72rem;
	font-weight:900;
	letter-spacing:0.13em;
	color:var(--wp--preset--color--orange-ink);
}
.bz-route h3 {
	margin: 8px 0 10px;
	font-size: 1.24rem;
	color: var(--wp--preset--color--navy);
	letter-spacing: -0.02em;
}
.bz-route p {
	margin: 0 0 16px;
	color: var(--wp--preset--color--slate);
	font-size: 0.92rem;
	line-height: 1.55;
}
.bz-route .bz-textlink {
	margin-top: auto;
}

/* Home — condensed law-firm teaser. Reuses the warm .bz-compare treatment; the split list
   is dropped and a read-more link added, so it needs less height. */
.bz-compare--teaser {
	padding: clamp(44px, 5vw, 60px) 0;
}
.bz-compare--teaser .bz-compare__inner {
	align-items: stretch;
}
.bz-compare--teaser .bz-compare__side {
	justify-content: center;
}
.bz-compare--teaser .bz-compare__stat {
	padding:0 0 24px;
	display:flex;
	flex-direction:column;
	justify-content:center;
	gap:8px;
}
.bz-compare--teaser .bz-compare__stat b {
	font-size: 3.6rem;
}

/* Shared blue grid opening for the supporting pages. */
.bz-pagehead {
	padding-top: calc(clamp(48px, 6vw, 64px) + var(--bz-header-h));
	padding-bottom: clamp(48px, 6vw, 64px);
}
.bz-pagehead h1 {
	font-size: clamp(2.6rem, 5vw, 4rem);
	line-height: 1.03;
	letter-spacing: -0.04em;
	color: var(--wp--preset--color--white);
	margin: 0;
	max-width: 20ch;
}
.bz-pagehead__intro {
	margin: 18px 0 0;
	max-width: 64ch;
	color: var(--wp--custom--concept--tone-8);
	font-size: 1.08rem;
	line-height: 1.62;
}

.bz-pagehead .bz-accent-ink { color: var(--wp--preset--color--orange-lit); }

/* About/Contact banner backgrounder download — right-hand side of the
   pagehead, only when $aside is passed (About page). */
.bz-pagehead__grid {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 40px;
	align-items: center;
}
.bz-backgrounder {
	display: flex;
	align-items: center;
	gap: 16px;
	max-width: 340px;
	padding: 20px 22px;
	border-radius: 12px;
	background: color-mix(in srgb, var(--wp--preset--color--white) 8%, transparent);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--white) 20%, transparent);
	text-decoration: none;
	transition: background-color 0.2s ease, transform 0.2s ease;
}
.bz-backgrounder:hover,
.bz-backgrounder:focus-visible {
	background: color-mix(in srgb, var(--wp--preset--color--white) 14%, transparent);
	transform: translateY(-1px);
}
.bz-backgrounder__badge {
	flex-shrink: 0;
	display: grid;
	place-items: center;
	width: 44px;
	height: 54px;
	border-radius: 6px;
	background: var(--wp--preset--color--orange);
	color: var(--wp--preset--color--navy);
	font: 900 0.72rem var(--wp--preset--font-family--mono);
	letter-spacing: 0.03em;
}
.bz-backgrounder__body b {
	display: block;
	color: var(--wp--preset--color--white);
	font-size: 0.96rem;
	line-height: 1.35;
}
.bz-backgrounder__body span {
	display: block;
	margin-top: 5px;
	color: var(--wp--custom--concept--tone-8);
	font-size: 0.8rem;
	line-height: 1.4;
}

/* Cross-link band between the two pages that used to sit together. */
.bz-crosslink {
	background: var(--wp--preset--color--cream);
	border-block: 1px solid var(--wp--custom--legacy--colour-11);
}
.bz-crosslink__inner {
	padding: 22px 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 30px;
}
.bz-crosslink__inner p {
	margin: 0;
	color: var(--wp--custom--legacy--colour-12);
	font-size: 0.98rem;
	line-height: 1.55;
	max-width: 62ch;
}

/* The one call to action on every page except contact. */
.bz-enquiry-cta {
	background:var(--wp--preset--color--white);
	color:var(--wp--custom--legacy--colour-13);
	position:relative;
	overflow:visible;
	padding:40px 0 64px;
}
.bz-enquiry-cta__inner::after {
	content: "";
	position: absolute;
	width: 420px;
	height: 420px;
	border-radius: 50%;
	right: -180px;
	bottom: -220px;
	background: radial-gradient(circle, var(--wp--custom--legacy--colour-16), transparent 70%);
	pointer-events: none;
}
.bz-enquiry-cta__inner {
	position:relative;
	z-index:1;
	padding:44px 48px;
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	justify-content:space-between;
	gap:24px 40px;
	border-radius:8px;
	background:linear-gradient(115deg,var(--wp--preset--color--navy),var(--wp--preset--color--blue));
	overflow:hidden;
}
.bz-enquiry-cta__inner > div {
	max-width:56ch;
	position:relative;
	z-index:1;
}
.bz-enquiry-cta h2 {
	font-size:clamp(1.9rem, 3.4vw, 2.8rem);
	letter-spacing:-0.04em;
	line-height:1.08;
	color:var(--wp--custom--legacy--colour-13);
	margin:0 0 12px;
}
.bz-enquiry-cta p:not(.bz-eyebrow) {
	margin: 0;
	color: var(--wp--custom--legacy--colour-49);
	font-size: 1.02rem;
	line-height: 1.6;
}
.bz-enquiry-cta .bz-btn {
	flex:none;
	position:relative;
	z-index:1;
}

/* Import page — the core genera as a content list. */
.bz-mt-lg {
	margin-top: clamp(34px, 5vw, 52px);
}
.bz-genera {
	background: linear-gradient(115deg, var(--wp--preset--color--navy), var(--wp--preset--color--blue));
	color: var(--wp--preset--color--white);
}
.bz-genera .bz-sectionhead h2 { color: var(--wp--preset--color--white); }
.bz-genera .bz-sectionhead p { color: var(--wp--custom--concept--tone-8); }
.bz-generalist {
	border-collapse: collapse;
	margin: 8px 0 0;
	width: 100%;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
}
.bz-generalist tbody {
	display: contents;
}
.bz-generalist tr {
	--bz-genus-accent: var(--wp--preset--color--orange);
	display: block;
	border: 0;
	border-top: 2px solid var(--bz-genus-accent);
	border-radius: 4px;
	background: var(--wp--preset--color--navy-panel);
	padding: 14px 18px;
	overflow: hidden;
}
.bz-generalist tr:nth-child(2) { --bz-genus-accent: var(--wp--preset--color--genus-gold); }
.bz-generalist tr:nth-child(3) { --bz-genus-accent: var(--wp--preset--color--genus-green); }
.bz-generalist tr:nth-child(4) { --bz-genus-accent: var(--wp--preset--color--genus-red); }
.bz-generalist tr:nth-child(5) { --bz-genus-accent: var(--wp--preset--color--genus-purple); }
.bz-generalist tr:nth-child(6) { --bz-genus-accent: var(--wp--preset--color--genus-cyan); }
.bz-generalist tr:nth-child(7) { --bz-genus-accent: var(--wp--preset--color--genus-amber); }
.bz-generalist tr:nth-child(8) { --bz-genus-accent: var(--wp--preset--color--genus-gold); }
.bz-generalist tr:nth-child(9) { --bz-genus-accent: var(--wp--preset--color--genus-green); }
.bz-generalist th,
.bz-generalist td {
	display: block;
	text-align: left;
	padding: 0;
	border: 0;
	background: transparent;
	font-weight: normal;
}
.bz-generalist th {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-style: italic;
	font-size: 1.08rem;
	color: var(--wp--preset--color--white);
}
.bz-generalist td {
	margin-top: 3px;
	color: var(--wp--preset--color--white);
	font-size: 0.9rem;
}

/* IP page — four instruments in the subservice grid. */
.bz-subservices--four {
	grid-template-columns: repeat(2, 1fr);
}

/* ------------------------------------------------------------ Responsive */
@media (max-width: 1020px) {
	.bz-route { grid-template-columns:140px minmax(0,1fr); }
	.bz-nav__links {
		gap: 14px;
		font-size: 0.84rem;
	}
	.bz-routes {
		grid-template-columns: 1fr 1fr;
	}
	.bz-generalist {
		grid-template-columns: repeat(2, 1fr);
	}
	.bz-hero__grid {
		grid-template-columns: 1fr 0.95fr;
		gap: 34px;
	}
	.bz-specimen__main {
		grid-template-columns: 1fr;
	}
	.bz-pathway__grid {
		grid-template-columns: 0.85fr 1.15fr;
	}
	.bz-service {
		grid-template-columns: 150px 1fr;
	}
	.bz-service > .bz-pic {
		width: 150px;
	}
	.bz-stakes,
	.bz-accred {
		grid-template-columns: 1fr 1fr;
	}
	.bz-footer__grid {
		grid-template-columns: 1.3fr 1fr 1fr;
	}
}

@media (max-width: 860px) {
	:root {
		--bz-header-h: 73px;
	}
	.bz-process__steps { grid-template-columns:1fr; gap:24px; }
	.bz-process__steps li { display:grid; grid-template-columns:36px minmax(0,1fr); gap:4px 18px; }
	.bz-process__number { grid-row:1/3; }
	.bz-process__steps h3 { margin:2px 0 0; }
	.bz-process__steps p { grid-column:2; }
	.bz-process__steps li:not(:last-child)::before { top:36px; bottom:-24px; left:18px; right:auto; width:1px; height:auto; }
	.bz-first-contact { grid-template-columns:72px minmax(0,1fr); }
	.bz-first-contact > .bz-textlink { grid-column:2; }
	.bz-route { grid-template-columns:180px minmax(0,1fr); }

	/* Mobile team order (client request, 2026-09-17): Louisa, Andy, Carol,
	   Maria, Alice — overrides the desktop grid-column/row placement above,
	   which only applies from 861px up. */
	.bz-tcard--louisa { order: 1; }
	.bz-tcard--andrew { order: 2; }
	.bz-tcard--carol  { order: 3; }
	.bz-tcard--maria  { order: 4; }
	.bz-tcard--alice  { order: 5; }
	.bz-tcard--refs   { order: 6; }

	.bz-shell {
		width: min(1220px, calc(100% - 34px));
	}
	.bz-nav {
		height: 70px;
	}
	.bz-brand img {
		width: 174px;
	}
	.bz-nav__toggle {
		display: block;
	}
	.bz-nav__links {
		display: none;
		position: absolute;
		top: 70px;
		left: 0;
		right: 0;
		background: var(--wp--preset--color--navy);
		border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--white) 14%, transparent);
		padding: 16px 22px;
		flex-direction: column;
		align-items: stretch;
		box-shadow: none;
	}
	.bz-nav__links.is-open {
		display: flex;
	}
	.bz-nav__links a {
		padding: 10px 4px;
	}
	.bz-btn--nav {
		text-align: center;
	}
	.bz-hero__grid,
	.bz-sectionhead,
	.bz-about,
	.bz-faqgrid,
	.bz-enquiry__grid,
	.bz-pagehead__grid,
	.bz-compare__inner {
		grid-template-columns: 1fr;
		gap: 24px;
	}
	.bz-backgrounder {
		max-width: none;
	}
	.bz-routes {
		grid-template-columns: 1fr;
	}
	.bz-subservices--four {
		grid-template-columns: 1fr;
	}
	.bz-generalist,
	.bz-about__points {
		grid-template-columns: 1fr 1fr;
	}
	.bz-enquiry-cta__inner {
		padding: 36px 28px;
	}
	.bz-crosslink__inner,
	.bz-enquiry-cta__inner {
		justify-content: flex-start;
	}
	.bz-hero__grid {
		padding-top: calc(46px + var(--bz-header-h));
		padding-bottom: 46px;
		gap: 32px;
	}
	.bz-hero h1 {
		max-width: 18ch;
	}
	.bz-gateway__inner {
		grid-template-columns: 1fr;
		gap: 14px;
	}
	.bz-gateway__big {
		white-space: normal;
	}
	.bz-services,
	.bz-subservices {
		grid-template-columns: 1fr;
	}
	.bz-service {
		grid-template-columns: 120px 1fr;
		min-height: 0;
	}
	.bz-service > .bz-pic {
		width: 120px;
	}
	.bz-pathway__grid {
		grid-template-columns: 1fr;
	}
	.bz-pathway__image {
		min-height: 360px;
	}
	.bz-tcstrip {
		grid-template-columns: 1fr 1fr;
	}
	.bz-stakes,
	.bz-team,
	.bz-accred {
		grid-template-columns: 1fr 1fr;
	}
	.bz-acronyms dl {
		grid-template-columns: 1fr;
	}
	.bz-enquiry__form {
		border-right: 0;
		border-bottom: 1px solid var(--wp--preset--color--line);
	}
	.bz-footer__grid {
		grid-template-columns: 1fr 1fr;
	}
	.bz-footer__brand {
		grid-column: 1 / -1;
	}
}

/* ------------------------------------------------------------------ Legal */
.bz-legal__body {
	max-width: 74ch;
}
.bz-legal__body h2 {
	margin: 32px 0 8px;
	font-size: 1.15rem;
	color: var(--wp--preset--color--navy);
}
.bz-legal__body h2:first-child {
	margin-top: 0;
}
.bz-legal__body p,
.bz-legal__body ul {
	margin: 0;
	color: var(--wp--preset--color--slate);
	font-size: 0.96rem;
	line-height: 1.65;
}
.bz-legal__body p + p,
.bz-legal__body p + ul,
.bz-legal__body ul + p {
	margin-top: 14px;
}
.bz-legal__body ul {
	padding-left: 22px;
}
.bz-legal__body li {
	margin-bottom: 6px;
}
.bz-legal__body a {
	color: var(--wp--preset--color--navy);
}

@media (max-width: 540px) {
	.bz-route { grid-template-columns:1fr; }
	.bz-route .bz-pic { height:180px; }
	.bz-first-contact { gap:16px; }
	.bz-first-contact a { overflow-wrap:anywhere; }
	.bz-enquiry-cta { padding:28px 0 40px; }
	.bz-enquiry-cta__inner { padding:30px 24px; }
	.bz-contacthead { padding:32px 0 24px; }
	.bz-contacthead h1 { font-size:2.35rem; }

	.bz-enquiry__form form, .bz-specimen__strip { grid-template-columns: 1fr; }
	.bz-specimen__strip { gap: 0; }
	.bz-specimen__head { gap: 12px; flex-wrap: wrap; }
	.bz-pathway__image { min-height: 300px; }
	.bz-shell {
		width: min(1220px, calc(100% - 26px));
	}
	.bz-section {
		padding: 60px 0;
	}
	.bz-hero__grid {
		padding-top: calc(36px + var(--bz-header-h));
		padding-bottom: 36px;
	}
	.bz-hero h1 {
		font-size: 2.9rem;
	}
	.bz-service {
		grid-template-columns: 1fr;
	}
	.bz-service > .bz-pic {
		width: 100%;
		height: 180px;
	}
	.bz-tcstrip,
	.bz-stakes,
	.bz-team,
	.bz-accred,
	.bz-generalist,
	.bz-about__points {
		grid-template-columns: 1fr;
	}
	.bz-partners__row {
		gap: 20px 32px;
		justify-content: flex-start;
	}
	.bz-partners__item img {
		height: 34px;
		width: 74px;
	}
	.bz-tcard__contact li {
		grid-template-columns: 1fr;
		gap: 2px;
	}
	.bz-k {
		font-size: .72rem;
	}
	.bz-labrow {
		grid-template-columns: 34px 1fr;
		row-gap: 4px;
	}
	.bz-labrow em {
		grid-column: 2;
		justify-self: start;
	}
	.bz-enquiry__lines p {
		grid-template-columns: 1fr;
		gap: 3px;
	}
	.bz-enquiry__form,
	.bz-enquiry__aside {
		padding: 28px 22px;
	}
	.bz-footer__grid {
		grid-template-columns: 1fr;
	}
	.bz-footer__bottom {
		flex-direction: column;
	}
}
