/* ==========================================================================
   Build to Sustain Corporate — theme.css
   --------------------------------------------------------------------------
   Design tokens (colour, type, spacing, layout) live in theme.json.
   This file covers what theme.json can't: states, motion, the petal motif,
   header and mega-menu behaviour, and composed components.

   Contents
     1. Tokens & context
     2. Base
     3. Header, navigation, mega menus
     4. Footer
     5. Buttons
     6. Block style variations
     7. Components
     8. Templates
     9. Motion
   ========================================================================== */


/* 1. Tokens & context
   ========================================================================== */

:root {
	--bts-ink: var(--wp--preset--color--ink, #1a1a1a);
	--bts-coral: var(--wp--preset--color--coral, #ee6749);
	--bts-coral-deep: var(--wp--preset--color--coral-deep, #c2462a);
	--bts-coral-soft: var(--wp--preset--color--coral-soft, #fcebe5);
	--bts-sand: var(--wp--preset--color--sand, #f7f4ef);
	--bts-slate: var(--wp--preset--color--slate, #526275);
	--bts-stone: var(--wp--preset--color--stone, #6b6b6b);
	--bts-petal: var(--wp--custom--radius--petal, clamp(28px, 5.5vw, 88px));
	--bts-petal-sm: var(--wp--custom--radius--petal-sm, clamp(18px, 2.5vw, 32px));
	--bts-ease: var(--wp--custom--ease, cubic-bezier(0.2, 0.7, 0.2, 1));
	--bts-gutter: var(--wp--style--root--padding-right, clamp(1.25rem, 4vw, 3rem));
	--bts-wide: var(--wp--style--global--wide-size, 1280px);

	--bts-utility-h: 38px;
	--bts-masthead-h: 84px;
	--bts-header-total: calc(var(--bts-utility-h) + var(--bts-masthead-h));

	/* Context-aware tokens: flipped inside dark surfaces below. */
	--bts-rule: var(--wp--preset--color--line, #e7e3dd);
	--bts-muted: var(--bts-slate);
	--bts-surface: #fff;
}

@media (max-width: 781px) {
	:root {
		--bts-utility-h: 0px;
		--bts-masthead-h: 68px;
	}
}

.has-ink-background-color,
.has-charcoal-background-color,
.has-neel-background-color,
.has-night-background-color,
.is-style-card-dark,
.bts-dark {
	--bts-rule: rgba(255, 255, 255, 0.14);
	--bts-muted: rgba(255, 255, 255, 0.7);
	--bts-surface: var(--bts-ink);
}

.has-coral-background-color {
	--bts-rule: rgba(26, 26, 26, 0.18);
	--bts-muted: rgba(26, 26, 26, 0.78);
}


/* 2. Base
   ========================================================================== */

html {
	scroll-padding-top: calc(var(--bts-masthead-h) + 1.5rem);
}

@media (prefers-reduced-motion: no-preference) {
	html {
		scroll-behavior: smooth;
	}
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	font-kerning: normal;
}

/* Header, main and footer sit flush; sections own their spacing. */
.wp-site-blocks > * + * {
	margin-block-start: 0;
}

h1, h2, h3, h4,
.wp-block-post-title {
	text-wrap: balance;
}

p, li, figcaption {
	text-wrap: pretty;
}

::selection {
	background: var(--bts-coral);
	color: var(--bts-ink);
}

:focus-visible {
	outline: 2px solid var(--bts-coral-deep);
	outline-offset: 3px;
}

.has-ink-background-color :focus-visible,
.bts-dark :focus-visible {
	outline-color: var(--bts-coral);
}

a {
	text-underline-offset: 0.2em;
	text-decoration-thickness: 1px;
	transition: color 0.2s var(--bts-ease), text-decoration-color 0.2s var(--bts-ease);
}

/* Links inside dark surfaces read as white with a coral hover. */
:is(.has-ink-background-color, .has-charcoal-background-color, .has-neel-background-color, .has-night-background-color, .bts-dark) a:where(:not(.wp-element-button)) {
	color: inherit;
}
:is(.has-ink-background-color, .has-charcoal-background-color, .has-neel-background-color, .has-night-background-color, .bts-dark) a:where(:not(.wp-element-button)):hover {
	color: var(--bts-coral);
}

/*
 * Emphasis inside large type takes the heading's own colour and style: no
 * highlighted words (a template tell). Editors can still mark emphasis.
 */
:is(h1, h2, h3, .is-style-statement, .is-style-display) em {
	font-style: normal;
	color: inherit;
}

/* Muted supporting copy, readable on light and dark. */
.bts-muted,
.has-text-color.bts-muted {
	color: var(--bts-muted) !important;
}

hr.wp-block-separator {
	border: 0;
	border-top: 1px solid var(--bts-rule);
	opacity: 1;
}

/* Hide empty bound fields (e.g. a case study without a SIM score yet). */
.bts-field:empty,
.wp-block-paragraph:empty {
	display: none;
}

.screen-reader-text:focus {
	clip-path: none;
}


/* 3. Header, navigation, mega menus
   ========================================================================== */

/* The header part sticks with its utility bar tucked above the viewport:
   only the masthead stays on screen, with no layout shift. */
header.wp-block-template-part {
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) - var(--bts-utility-h));
	z-index: 60;
}

/* Overlay variant: floats over a dark hero, turns solid once scrolled. */
header.wp-block-template-part.is-overlay {
	margin-bottom: calc(-1 * var(--bts-header-total));
}

.bts-utility {
	font-size: 0.8125rem;
	letter-spacing: 0.01em;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.bts-utility > .alignwide {
	min-height: var(--bts-utility-h);
	align-items: center;
}

.bts-utility p {
	margin: 0;
	color: rgba(255, 255, 255, 0.72);
}

.bts-utility a {
	color: #fff;
	text-decoration: none;
}

.bts-utility a:hover {
	color: var(--bts-coral);
}

.bts-utility .bts-sep {
	display: inline-block;
	margin-inline: 0.85em;
	opacity: 0.35;
}

@media (max-width: 781px) {
	.bts-utility {
		display: none;
	}
}

.bts-masthead {
	position: relative;
	background: #fff;
	color: var(--bts-ink);
	box-shadow: 0 1px 0 var(--wp--preset--color--line);
	transition: background-color 0.35s var(--bts-ease), color 0.35s var(--bts-ease), box-shadow 0.35s var(--bts-ease);
}

.bts-masthead__bar {
	min-height: var(--bts-masthead-h);
	gap: 2rem;
}

header.is-overlay:not(.is-scrolled) .bts-masthead {
	background: linear-gradient(180deg, rgba(20, 18, 58, 0.42) 0%, rgba(20, 18, 58, 0) 100%);
	color: #fff;
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.12);
}

header.is-scrolled .bts-masthead {
	box-shadow: 0 1px 0 var(--wp--preset--color--line), 0 10px 30px rgba(20, 20, 20, 0.06);
}

.bts-logo img {
	display: block;
	height: auto;
	transition: opacity 0.2s;
}

.bts-logo a:hover img {
	opacity: 0.85;
}

/* -- Primary navigation ---------------------------------------------------- */

.bts-nav {
	flex: 1 1 auto;
	justify-content: flex-end;
}

.bts-nav .wp-block-navigation-item__content {
	text-decoration: none;
	color: inherit;
}

.bts-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	position: relative;
	padding-block: 0.6rem;
	font-weight: 500;
}

/* Animated coral underline on top-level items. */
.bts-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.15rem;
	height: 2px;
	background: var(--bts-coral);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.35s var(--bts-ease);
}

.bts-nav .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after,
.bts-nav .wp-block-navigation__container > .wp-block-navigation-item:focus-within > .wp-block-navigation-item__content::after,
.bts-nav .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content::after,
.bts-nav .wp-block-navigation__container > .current-menu-ancestor > .wp-block-navigation-item__content::after {
	transform: scaleX(1);
}

.bts-nav .wp-block-navigation__submenu-icon {
	width: 0.7em;
	height: 0.7em;
	margin-left: 0.3em;
	opacity: 0.6;
}

.bts-nav .wp-block-navigation__submenu-icon svg {
	stroke-width: 2px;
}

/* Simple dropdowns (Client stories) and the overlay-only items. */
@media (min-width: 1100px) {
	.bts-nav .bts-nav-mobile-only {
		display: none !important;
	}
}

/* -- Mega menus (desktop, v3): paper-white panels on the wide grid ------------
   Plain core Navigation. A mega submenu (class bts-mega) holds, in order:
     bts-mega__intro    title + one line (a link with a description)
     bts-mega__more     one or two "more" links under the intro
     bts-mega__col      link columns (submenus; their label is the column heading)
     bts-mega__item     plain links with a description (Industries)
     bts-mega__feature  at most one image card, in the last column
   Every positioned ancestor is flattened so the panel spans the whole masthead. */

@media (min-width: 1100px) {
	.bts-nav.wp-block-navigation,
	.bts-nav .wp-block-navigation__responsive-container,
	.bts-nav.wp-block-navigation .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open),
	.bts-nav .wp-block-navigation__responsive-close,
	.bts-nav .wp-block-navigation__responsive-dialog,
	.bts-nav .wp-block-navigation__responsive-container-content,
	.bts-nav .wp-block-navigation__container,
	.bts-nav .wp-block-navigation-item.bts-mega {
		position: static;
	}

	/* Panels are night with porcelain text. The navigation's overlay colours are printed on every
	   submenu as !important preset classes, so these need !important too. */
	.bts-nav .has-child > .wp-block-navigation__submenu-container {
		background-color: var(--wp--preset--color--night) !important;
		color: var(--wp--preset--color--porcelain) !important;
	}

	.bts-nav .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container {
		background-color: transparent !important;
		color: inherit !important;
	}

	.bts-nav .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		color: var(--wp--preset--color--porcelain);
	}

	/* -- Simple dropdown ------------------------------------------------------ */
	.bts-nav.wp-block-navigation .wp-block-navigation__container > .has-child:not(.bts-mega) > .wp-block-navigation__submenu-container {
		min-width: 15rem;
		padding: 0.5rem;
		border: 1px solid rgba(246, 244, 240, 0.14);
		border-radius: 4px;
		box-shadow: 0 18px 40px rgba(6, 5, 20, 0.45);
	}

	.bts-nav.wp-block-navigation .wp-block-navigation__container > .has-child:not(.bts-mega) > .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		padding: 0.65rem 0.85rem;
		border-radius: 3px;
		font-size: 0.9375rem;
		font-weight: 500;
	}

	.bts-nav.wp-block-navigation .wp-block-navigation__container > .has-child:not(.bts-mega) > .wp-block-navigation__submenu-container .wp-block-navigation-item__content:is(:hover, :focus-visible) {
		background: rgba(246, 244, 240, 0.08);
	}

	/* -- The panel ------------------------------------------------------------ */
	/* left/right need !important: core right-aligns submenus of a right-justified nav
	   (left:auto; right:0 at higher specificity), which would shrink narrow panels. */
	.bts-nav.wp-block-navigation .bts-mega > .wp-block-navigation__submenu-container {
		position: absolute;
		top: 100%;
		left: 0 !important;
		right: 0 !important;
		width: auto;
		min-width: 0;
		display: grid;
		grid-template-columns: minmax(15rem, 1.3fr) repeat(4, minmax(0, 1fr));
		grid-template-rows: auto auto auto 1fr;
		column-gap: clamp(2rem, 3vw, 3.5rem);
		row-gap: 0;
		align-items: start;
		padding: 2.75rem max(var(--bts-gutter), calc((100% - var(--bts-wide)) / 2)) 3.25rem;
		border: 0;
		border-top: 1px solid rgba(246, 244, 240, 0.14);
		border-radius: 0;
		box-shadow: 0 28px 56px rgba(6, 5, 20, 0.5);
		transform: translateY(-4px);
		transition: opacity 0.2s var(--bts-ease), transform 0.25s var(--bts-ease), visibility 0s linear 0.2s;
	}

	.bts-nav.wp-block-navigation .bts-mega:hover > .wp-block-navigation__submenu-container,
	.bts-nav.wp-block-navigation .bts-mega:focus-within > .wp-block-navigation__submenu-container,
	.bts-nav.wp-block-navigation .bts-mega > [aria-expanded="true"] ~ .wp-block-navigation__submenu-container {
		transform: none;
		transition: opacity 0.2s var(--bts-ease), transform 0.25s var(--bts-ease), visibility 0s;
	}

	/* Hover bridge: the pointer can travel from the label down into the panel. */
	.bts-nav.wp-block-navigation .bts-mega > .wp-block-navigation__submenu-container::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 100%;
		height: calc(var(--bts-masthead-h) / 2);
	}

	.bts-nav.wp-block-navigation .bts-mega .wp-block-navigation-item {
		display: block;
		margin: 0;
	}

	.bts-nav.wp-block-navigation .bts-mega .wp-block-navigation-item__content {
		text-decoration: none;
	}

	/* -- Intro column: title, one line, "more" links --------------------------- */
	.bts-nav.wp-block-navigation .bts-mega .bts-mega__intro {
		grid-column: 1;
		grid-row: 1;
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__intro + .bts-mega__more {
		grid-column: 1;
		grid-row: 2;
		margin-top: 1.5rem;
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__intro + .bts-mega__more + .bts-mega__more {
		grid-column: 1;
		grid-row: 3;
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__intro > .wp-block-navigation-item__content {
		display: block;
		padding: 0;
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__intro .wp-block-navigation-item__label {
		display: block;
		font-family: var(--wp--preset--font-family--sans);
		font-size: 1.75rem;
		font-weight: 400;
		line-height: 1.15;
		letter-spacing: -0.01em;
		color: var(--wp--preset--color--porcelain);
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__intro .wp-block-navigation-item__description {
		display: block;
		max-width: 21rem;
		margin-top: 0.75rem;
		font-size: 0.9375rem;
		font-weight: 400;
		line-height: 1.55;
		color: var(--wp--preset--color--lede);
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__more > .wp-block-navigation-item__content {
		display: inline-flex;
		align-items: center;
		gap: 0.45em;
		padding: 0.35rem 0;
		font-size: 0.9375rem;
		font-weight: 600;
		color: var(--wp--preset--color--porcelain);
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__more > .wp-block-navigation-item__content::after {
		content: "\2192";
		content: "\2192" / "";
		color: var(--bts-coral);
		transition: transform 0.2s var(--bts-ease);
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__more > .wp-block-navigation-item__content:is(:hover, :focus-visible)::after {
		transform: translateX(3px);
	}

	/* -- Link columns ------------------------------------------------------------ */
	.bts-nav.wp-block-navigation .bts-mega .bts-mega__col {
		grid-row: 1 / -1;
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__col > .wp-block-navigation__submenu-icon {
		display: none;
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__col > .wp-block-navigation-item__content {
		display: block;
		margin: 0 0 0.5rem;
		padding: 0.55rem 0 0.75rem;
		border-bottom: 1px solid rgba(246, 244, 240, 0.14);
		font-size: 0.8125rem;
		font-weight: 600;
		letter-spacing: 0.02em;
		line-height: 1.3;
		white-space: nowrap;
		color: var(--wp--preset--color--lede);
		pointer-events: none;
		cursor: default;
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__col > .wp-block-navigation__submenu-container {
		position: static;
		display: block;
		visibility: inherit;
		opacity: 1;
		width: auto;
		height: auto;
		min-width: 0;
		overflow: visible;
		padding: 0;
		border: 0;
		box-shadow: none;
		transform: none;
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__col .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		display: block;
		padding: 0.5rem 0;
		font-size: 0.9375rem;
		font-weight: 500;
		line-height: 1.35;
	}

	/* -- Hover and focus for every panel link ---------------------------------- */
	.bts-nav.wp-block-navigation .bts-mega :is(.bts-mega__col .wp-block-navigation__submenu-container, .bts-mega__item, .bts-mega__intro, .bts-mega__more) .wp-block-navigation-item__content:is(:hover, :focus-visible) .wp-block-navigation-item__label,
	.bts-nav.wp-block-navigation .bts-mega .bts-mega__col .wp-block-navigation__submenu-container .wp-block-navigation-item__content:is(:hover, :focus-visible) {
		color: var(--bts-coral);
	}

	.bts-nav.wp-block-navigation .bts-mega .wp-block-navigation-item__content:focus-visible {
		outline: 2px solid var(--bts-coral);
		outline-offset: 3px;
		border-radius: 2px;
	}

	/* -- Industries: one "Sectors" column across three tracks, links in a 3-column grid -- */
	.bts-nav.wp-block-navigation .bts-mega.bts-mega--industries > .wp-block-navigation__submenu-container {
		grid-template-columns: minmax(15rem, 1.3fr) repeat(3, minmax(0, 1fr));
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__col--sectors {
		grid-column: 2 / -1;
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__col--sectors > .wp-block-navigation__submenu-container {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		column-gap: clamp(2rem, 3vw, 3.5rem);
		row-gap: 0.25rem;
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__col--sectors .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		padding: 0.55rem 0 0.7rem;
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__col--sectors .wp-block-navigation-item__label {
		display: block;
		font-weight: 600;
		line-height: 1.35;
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__col--sectors .wp-block-navigation-item__description {
		display: block;
		margin-top: 0.2rem;
		font-size: 0.8125rem;
		font-weight: 400;
		line-height: 1.45;
		color: var(--wp--preset--color--lede);
	}

	/* -- Insights and About: columns plus one image card --------------------------- */
	.bts-nav.wp-block-navigation .bts-mega.bts-mega--insights > .wp-block-navigation__submenu-container {
		grid-template-columns: minmax(15rem, 1.3fr) repeat(2, minmax(0, 1fr)) minmax(17rem, 1.45fr);
	}

	.bts-nav.wp-block-navigation .bts-mega.bts-mega--about > .wp-block-navigation__submenu-container {
		grid-template-columns: minmax(15rem, 1.3fr) repeat(3, minmax(0, 1fr)) minmax(17rem, 1.45fr);
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__feature {
		grid-column: -2;
		grid-row: 1 / -1;
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__feature > .wp-block-navigation-item__content {
		display: flex;
		flex-direction: column;
		padding: 0;
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__feature > .wp-block-navigation-item__content::before {
		content: "";
		display: block;
		aspect-ratio: 16 / 10;
		margin-bottom: 1rem;
		background: rgba(246, 244, 240, 0.06) center / cover no-repeat;
		transition: opacity 0.25s var(--bts-ease);
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__feature--insights > .wp-block-navigation-item__content::before {
		background-image: url("../images/nav/card-insights.jpg");
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__feature--careers > .wp-block-navigation-item__content::before {
		background-image: url("../images/nav/card-careers.jpg");
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__feature .wp-block-navigation-item__description {
		display: block;
		order: 1;
		margin: 0 0 0.35rem;
		font-size: 0.8125rem;
		font-weight: 600;
		letter-spacing: 0.02em;
		color: var(--wp--preset--color--lede);
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__feature .wp-block-navigation-item__label {
		order: 2;
		font-family: var(--wp--preset--font-family--sans);
		font-size: 1.25rem;
		font-weight: 400;
		line-height: 1.3;
		color: var(--wp--preset--color--porcelain);
		text-wrap: balance;
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__feature > .wp-block-navigation-item__content:is(:hover, :focus-visible)::before {
		opacity: 0.88;
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__feature > .wp-block-navigation-item__content:is(:hover, :focus-visible) .wp-block-navigation-item__label {
		text-decoration: underline;
		text-decoration-thickness: 1px;
		text-underline-offset: 4px;
	}

	/* -- The masthead turns solid while a panel is open over a dark hero -------- */
	header.is-overlay:not(.is-scrolled) .bts-masthead:has(.bts-nav .has-child:is(:hover, :focus-within)) {
		background: var(--wp--preset--color--night);
		box-shadow: none;
	}
}

/* -- Below 1100px: always the overlay menu ---------------------------------- */

@media (max-width: 1099px) {
	.bts-nav.wp-block-navigation .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.bts-nav.wp-block-navigation .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}

	.bts-header-cta {
		display: none;
	}
}

.bts-nav .wp-block-navigation__responsive-container-open,
.bts-nav .wp-block-navigation__responsive-container-close {
	color: inherit;
}

.bts-nav .wp-block-navigation__responsive-container-open svg,
.bts-nav .wp-block-navigation__responsive-container-close svg {
	width: 28px;
	height: 28px;
}

.bts-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: calc(var(--wp-admin--admin-bar--height, 0px) + 1.25rem) var(--bts-gutter) 3rem;
	background: var(--bts-ink);
	color: #fff;
}

.bts-nav .is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 3.5rem;
	align-items: stretch;
	gap: 0;
}

.bts-nav .is-menu-open .wp-block-navigation__container {
	gap: 0;
	width: 100%;
	align-items: stretch;
}

.bts-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
	width: 100%;
	padding-block: 0.9rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
	align-items: flex-start;
}

.bts-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	font-size: clamp(1.4rem, 5vw, 1.9rem);
	font-weight: 500;
	letter-spacing: -0.02em;
	padding: 0;
}

.bts-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	display: none;
}

.bts-nav .is-menu-open .wp-block-navigation__submenu-container {
	padding: 0.5rem 0 0 !important;
	gap: 0;
	background: transparent !important;
	border: 0 !important;
}

.bts-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.35rem 0;
	font-size: 1rem;
	color: rgba(255, 255, 255, 0.78);
}

.bts-nav .is-menu-open .bts-mega__col > .wp-block-navigation-item__content {
	margin-top: 0.85rem;
	font-size: 0.8125rem !important;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: rgba(255, 255, 255, 0.6) !important;
}

.bts-nav .is-menu-open .wp-block-navigation-item__description,
.bts-nav .is-menu-open .bts-mega__promo {
	display: none;
}

.bts-nav .is-menu-open .wp-block-navigation__submenu-icon {
	display: none;
}

.bts-header-cta .wp-block-button__link {
	padding: 0.8rem 1.25rem;
	white-space: nowrap;
}


/* 4. Footer
   ========================================================================== */

.bts-footer {
	position: relative;
	overflow: hidden;
}

/* Oversized petal mark, cropped off the corner. */
.bts-footer::before {
	content: "";
	position: absolute;
	right: -9rem;
	top: -9rem;
	width: 30rem;
	height: 30rem;
	background: url("../images/petal-mark-outline.svg") center / contain no-repeat;
	opacity: 0.5;
	pointer-events: none;
}

.bts-footer > * {
	position: relative;
}

.bts-footer__statement {
	max-width: 14ch;
}

.bts-footer__heading {
	margin-bottom: 1.1rem !important;
	color: rgba(255, 255, 255, 0.5);
}

.bts-footer-links {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: var(--wp--preset--font-size--small);
}

.bts-footer-links li {
	margin: 0 0 0.6rem;
}

.bts-footer a {
	color: rgba(255, 255, 255, 0.78);
	text-decoration: none;
}

.bts-footer a:hover {
	color: var(--bts-coral);
}

.bts-footer__legal {
	font-size: var(--wp--preset--font-size--x-small);
	color: rgba(255, 255, 255, 0.55);
}

.bts-footer__legal p {
	margin: 0;
}

.bts-footer .wp-block-social-links {
	gap: 0.5rem;
}

.bts-footer .wp-block-social-links .wp-social-link {
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 50%;
	transition: border-color 0.2s, background-color 0.2s;
}

.bts-footer .wp-block-social-links .wp-social-link a {
	padding: 0.55rem;
}

.bts-footer .wp-block-social-links .wp-social-link:hover {
	border-color: var(--bts-coral);
	background: var(--bts-coral);
}

.bts-footer .wp-block-social-links .wp-social-link:hover svg {
	fill: var(--bts-ink);
}

.bts-footer .bts-logo img {
	width: 150px;
}


/* 5. Buttons
   ========================================================================== */

.wp-element-button,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 0.6em;
	transition: background-color 0.25s var(--bts-ease), color 0.25s var(--bts-ease), border-color 0.25s var(--bts-ease), box-shadow 0.25s var(--bts-ease);
}

/* Default (coral) button: on dark grounds the hover goes to white, not ink. */
:is(.has-ink-background-color, .has-charcoal-background-color, .bts-dark) .wp-block-button:not(.is-style-ink):not(.is-style-light):not(.is-style-outline):not(.is-style-arrow) .wp-block-button__link:hover {
	background: #fff;
	color: var(--bts-ink);
}

.wp-block-button.is-style-ink .wp-block-button__link {
	background: var(--bts-ink);
	color: #fff;
}

.wp-block-button.is-style-ink .wp-block-button__link:hover {
	background: var(--bts-coral);
	color: var(--bts-ink);
}

.wp-block-button.is-style-light .wp-block-button__link {
	background: #fff;
	color: var(--bts-ink);
}

.wp-block-button.is-style-light .wp-block-button__link:hover {
	background: var(--bts-coral);
	color: var(--bts-ink);
}

.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	color: inherit;
	border: 1px solid currentColor;
	padding: calc(1.05rem - 1px) calc(1.75rem - 1px);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--bts-ink);
	border-color: var(--bts-ink);
	color: #fff;
}

:is(.has-ink-background-color, .has-charcoal-background-color, .bts-dark) .wp-block-button.is-style-outline .wp-block-button__link {
	border-color: rgba(255, 255, 255, 0.45);
}

:is(.has-ink-background-color, .has-charcoal-background-color, .bts-dark) .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: #fff;
	border-color: #fff;
	color: var(--bts-ink);
}

.wp-block-button.is-style-arrow .wp-block-button__link {
	padding: 0 0 0.35em;
	background: none;
	color: inherit;
	border-radius: 0;
	border-bottom: 1px solid currentColor;
	font-weight: 600;
}

.wp-block-button.is-style-arrow .wp-block-button__link::after,
.bts-arrow::after {
	content: "→";
	content: "→" / "";
	display: inline-block;
	transition: transform 0.3s var(--bts-ease);
}

.wp-block-button.is-style-arrow .wp-block-button__link:hover {
	background: none;
	color: var(--bts-coral-deep);
}

:is(.has-ink-background-color, .bts-dark) .wp-block-button.is-style-arrow .wp-block-button__link:hover {
	color: var(--bts-coral);
}

.wp-block-button.is-style-arrow .wp-block-button__link:hover::after,
a:hover .bts-arrow::after,
.bts-arrow:hover::after {
	transform: translateX(4px);
}


/* 6. Block style variations
   ========================================================================== */

/* -- Paragraph ----------------------------------------------------------- */

p.is-style-eyebrow {
	display: flex;
	align-items: center;
	gap: 0.7em;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.15em;
	line-height: 1.4;
	text-transform: uppercase;
}

/* A single petal, drawn like the first leaf of the logo. */
p.is-style-eyebrow::before {
	content: "";
	flex: none;
	width: 0.72em;
	height: 0.72em;
	background: var(--bts-coral);
	border-radius: 50% 50% 50% 0;
}

p.is-style-eyebrow.has-text-align-center {
	justify-content: center;
}

p.is-style-lede {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.55;
	color: var(--bts-muted);
	max-width: 46ch;
}

p.is-style-lede.has-text-align-center {
	margin-inline: auto;
}

p.is-style-statement {
	font-size: clamp(1.5rem, 1.05rem + 1.9vw, 2.6rem);
	line-height: 1.24;
	letter-spacing: -0.022em;
	font-weight: 400;
}

p.is-style-stat {
	margin: 0;
	font-family: var(--wp--preset--font-family--sans);
	font-size: clamp(2.75rem, 2rem + 3.2vw, 4.75rem);
	font-weight: 300;
	line-height: 1;
	letter-spacing: -0.02em;
	font-variant-numeric: lining-nums tabular-nums;
}

/* -- Heading ------------------------------------------------------------- */

.wp-block-heading.is-style-display {
	font-size: var(--wp--preset--font-size--colossal);
	font-weight: 300;
	line-height: 1.02;
	letter-spacing: -0.015em;
}

/* -- Petal images ---------------------------------------------------------
   One sharp corner, three rounded: the leaf from the Build to Sustain mark.
   border-radius order is TL TR BR BL. */

:is(.wp-block-image, .wp-block-post-featured-image, .wp-block-cover)[class*="is-style-petal"] {
	overflow: hidden;
}

:is(.wp-block-image, .wp-block-post-featured-image)[class*="is-style-petal"] img {
	width: 100%;
	transition: transform 0.9s var(--bts-ease);
}

.wp-block-image.is-style-petal,
.wp-block-image.is-style-petal img,
.wp-block-post-featured-image.is-style-petal,
.wp-block-post-featured-image.is-style-petal img,
.wp-block-cover.is-style-petal {
	border-radius: var(--bts-petal) var(--bts-petal) var(--bts-petal) 0;
}

.wp-block-image.is-style-petal-tr,
.wp-block-image.is-style-petal-tr img,
.wp-block-post-featured-image.is-style-petal-tr,
.wp-block-post-featured-image.is-style-petal-tr img,
.wp-block-cover.is-style-petal-tr {
	border-radius: var(--bts-petal) 0 var(--bts-petal) var(--bts-petal);
}

.wp-block-image.is-style-petal-tl,
.wp-block-image.is-style-petal-tl img {
	border-radius: 0 var(--bts-petal) var(--bts-petal) var(--bts-petal);
}

.wp-block-image.is-style-petal-br,
.wp-block-image.is-style-petal-br img {
	border-radius: var(--bts-petal) var(--bts-petal) 0 var(--bts-petal);
}

/* Portraits: one crop, one grade, colour on hover — unifies mixed photography. */
.wp-block-image.is-style-portrait {
	overflow: hidden;
	border-radius: var(--bts-petal-sm) var(--bts-petal-sm) var(--bts-petal-sm) 0;
}

.wp-block-image.is-style-portrait img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: 50% 22%;
	filter: grayscale(1) contrast(1.04) sepia(0.06);
	transition: filter 0.6s var(--bts-ease), transform 0.9s var(--bts-ease);
}

.wp-block-image.is-style-portrait:hover img,
.bts-person:hover .wp-block-image.is-style-portrait img {
	filter: none;
	transform: scale(1.03);
}

/* Client logos: monochrome until hovered. */
.wp-block-image.is-style-logo {
	margin: 0;
}

.wp-block-image.is-style-logo img {
	width: auto;
	max-width: 100%;
	max-height: 46px;
	object-fit: contain;
	filter: grayscale(1);
	opacity: 0.62;
	transition: filter 0.3s, opacity 0.3s;
}

.wp-block-image.is-style-logo:hover img {
	filter: none;
	opacity: 1;
}

/* -- Group ---------------------------------------------------------------- */

.wp-block-group.is-style-card {
	background: #fff;
	color: var(--bts-ink);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 4px;
	padding: clamp(1.5rem, 2.6vw, 2.25rem);
}

.wp-block-group.is-style-card-dark {
	background: var(--bts-ink);
	color: #fff;
	border-radius: 4px;
	padding: clamp(1.5rem, 2.6vw, 2.25rem);
}

/* -- Columns: ledger ------------------------------------------------------ */

.wp-block-columns.is-style-ledger {
	gap: 0;
	border-top: 1px solid var(--bts-rule);
}

.wp-block-columns.is-style-ledger > .wp-block-column {
	padding: clamp(1.5rem, 2.5vw, 2.25rem) clamp(1.25rem, 2.2vw, 2rem) 0;
}

.wp-block-columns.is-style-ledger > .wp-block-column:first-child {
	padding-left: 0;
}

.wp-block-columns.is-style-ledger > .wp-block-column + .wp-block-column {
	border-left: 1px solid var(--bts-rule);
}

@media (max-width: 781px) {
	.wp-block-columns.is-style-ledger > .wp-block-column {
		padding-left: 0;
		padding-bottom: 1.5rem;
	}

	.wp-block-columns.is-style-ledger > .wp-block-column + .wp-block-column {
		border-left: 0;
		border-top: 1px solid var(--bts-rule);
	}
}

/* -- Lists ------------------------------------------------------------------ */

.wp-block-list:is(.is-style-checklist, .is-style-petals, .is-style-ledger) {
	list-style: none;
	padding-left: 0;
}

.wp-block-list.is-style-checklist li,
.wp-block-list.is-style-petals li {
	position: relative;
	padding-left: 1.85em;
	margin-block: 0.6em;
}

.wp-block-list.is-style-checklist li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.28em;
	width: 1.15em;
	height: 1.15em;
	background: var(--bts-coral);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.2 16.6 4.6 12l-1.4 1.4 6 6 12-12-1.4-1.4z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.2 16.6 4.6 12l-1.4 1.4 6 6 12-12-1.4-1.4z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.wp-block-list.is-style-petals li::before {
	content: "";
	position: absolute;
	left: 0.2em;
	top: 0.55em;
	width: 0.6em;
	height: 0.6em;
	background: var(--bts-coral);
	border-radius: 50% 50% 50% 0;
}

.wp-block-list.is-style-ledger {
	counter-reset: bts-ledger;
	border-top: 1px solid var(--bts-rule);
}

.wp-block-list.is-style-ledger li {
	counter-increment: bts-ledger;
	position: relative;
	padding: 1.05rem 0 1.05rem 3.2rem;
	margin: 0;
	border-bottom: 1px solid var(--bts-rule);
}

.wp-block-list.is-style-ledger li::before {
	content: counter(bts-ledger, decimal-leading-zero);
	position: absolute;
	left: 0;
	top: 1.25rem;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	color: var(--bts-coral-deep);
}

:is(.has-ink-background-color, .bts-dark) .wp-block-list.is-style-ledger li::before {
	color: var(--bts-coral);
}

/* -- Separator ---------------------------------------------------------- */

hr.wp-block-separator.is-style-coral {
	width: 3.5rem;
	margin-left: 0;
	border-top: 2px solid var(--bts-coral);
}

/* -- Quote / testimonial -------------------------------------------------- */

.wp-block-quote.is-style-testimonial {
	border: 0;
	padding: 0;
	margin: 0;
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.5;
}

.wp-block-quote.is-style-testimonial::before {
	content: "\201C";
	display: block;
	height: 0.55em;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 4.5rem;
	line-height: 1;
	color: var(--bts-coral);
}

.wp-block-quote.is-style-testimonial cite {
	display: block;
	margin-top: 1.25rem;
	font-family: var(--wp--preset--font-family--sans);
	font-style: normal;
	font-size: var(--wp--preset--font-size--small);
}

/* -- Details (FAQs) --------------------------------------------------------- */

.wp-block-details {
	border-top: 1px solid var(--bts-rule);
	padding-block: 1.35rem;
	margin-block: 0 !important;
}

.wp-block-details:last-child,
.wp-block-details:has(+ :not(.wp-block-details)) {
	border-bottom: 1px solid var(--bts-rule);
}

.wp-block-details summary {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1.5rem;
	list-style: none;
	cursor: pointer;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 500;
	letter-spacing: -0.012em;
	line-height: 1.35;
}

.wp-block-details summary::-webkit-details-marker {
	display: none;
}

.wp-block-details summary::after {
	content: "+";
	flex: none;
	font-size: 1.6em;
	font-weight: 300;
	line-height: 0.7;
	color: var(--bts-coral-deep);
	transition: transform 0.3s var(--bts-ease);
}

:is(.has-ink-background-color, .bts-dark) .wp-block-details summary::after {
	color: var(--bts-coral);
}

.wp-block-details[open] summary::after {
	transform: rotate(45deg);
}

.wp-block-details > :not(summary) {
	max-width: 70ch;
	margin-top: 0.9rem;
	color: var(--bts-muted);
}


/* 7. Components
   ========================================================================== */

/* -- Section head: heading left, intro right ------------------------------- */

.bts-section-head {
	margin-bottom: clamp(2.5rem, 5vw, 4.5rem) !important;
}

.bts-section-head h2 {
	margin: 0;
}

/* -- Hairline grid -----------------------------------------------------------
   A grid whose 1px gaps show the background through: ledger-paper precision. */

.bts-hairline-grid {
	gap: 1px !important;
	background: var(--bts-rule);
	border: 1px solid var(--bts-rule);
}

.bts-hairline-grid > * {
	margin: 0 !important;
	background: var(--bts-surface);
}

/* -- Service tiles ----------------------------------------------------------- */

.bts-tile {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 14rem;
	padding: clamp(1.5rem, 2.4vw, 2.25rem) !important;
	transition: background-color 0.35s var(--bts-ease);
}

.bts-tile > * {
	margin-block: 0 !important;
}

.bts-tile .bts-index {
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	color: var(--bts-coral-deep);
	padding-bottom: 1.75rem;
}

.bts-tile h3 {
	font-size: var(--wp--preset--font-size--large);
	font-weight: 500;
	letter-spacing: -0.015em;
	line-height: 1.25;
	margin-bottom: 0.6rem !important;
}

.bts-tile h3 a {
	color: inherit;
	text-decoration: none;
}

/* The whole tile is the link target. */
.bts-tile h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.bts-tile p:not(.bts-index) {
	font-size: var(--wp--preset--font-size--small);
	color: var(--bts-muted);
	line-height: 1.55;
}

.bts-tile::after {
	content: "→";
	content: "→" / "";
	position: absolute;
	right: clamp(1.5rem, 2.4vw, 2.25rem);
	top: clamp(1.4rem, 2.3vw, 2.15rem);
	font-size: 1.1rem;
	color: var(--bts-coral-deep);
	opacity: 0;
	transform: translateX(-6px);
	transition: opacity 0.3s var(--bts-ease), transform 0.3s var(--bts-ease);
}

.bts-tile:hover {
	background: var(--bts-sand);
}

.bts-tile:hover::after {
	opacity: 1;
	transform: none;
}

.has-ink-background-color .bts-tile:hover,
.bts-dark .bts-tile:hover {
	background: #222;
}

/* -- Home hero: petal mosaic --------------------------------------------------
   The four leaves of the mark, each filled with a photograph. */

.bts-hero {
	position: relative;
	overflow: hidden;
}

.bts-petal-mosaic {
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	gap: clamp(8px, 1.1vw, 16px) !important;
	max-width: 560px;
	margin-left: auto !important;
}

.bts-petal-mosaic > .wp-block-image {
	margin: 0 !important;
	overflow: hidden;
}

.bts-petal-mosaic > .wp-block-image img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
}

/* Exact petal geometry from the logo: half-circle corners. */
.bts-petal-mosaic > .wp-block-image:nth-child(1),
.bts-petal-mosaic > .wp-block-image:nth-child(1) img { border-radius: 50% 50% 50% 0; }
.bts-petal-mosaic > .wp-block-image:nth-child(2),
.bts-petal-mosaic > .wp-block-image:nth-child(2) img { border-radius: 50% 0 50% 50%; }
.bts-petal-mosaic > .wp-block-image:nth-child(3),
.bts-petal-mosaic > .wp-block-image:nth-child(3) img { border-radius: 0 50% 50% 50%; }
.bts-petal-mosaic > .wp-block-image:nth-child(4),
.bts-petal-mosaic > .wp-block-image:nth-child(4) img { border-radius: 50% 50% 50% 0; }

@media (prefers-reduced-motion: no-preference) {
	.bts-js .bts-petal-mosaic > .wp-block-image {
		animation: bts-petal-in 1.1s var(--bts-ease) both;
	}
	.bts-js .bts-petal-mosaic > .wp-block-image:nth-child(2) { animation-delay: 0.12s; }
	.bts-js .bts-petal-mosaic > .wp-block-image:nth-child(3) { animation-delay: 0.24s; }
	.bts-js .bts-petal-mosaic > .wp-block-image:nth-child(4) { animation-delay: 0.36s; }
}

@keyframes bts-petal-in {
	from {
		opacity: 0;
		transform: scale(0.86);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@media (max-width: 781px) {
	.bts-petal-mosaic {
		max-width: 360px;
		margin-inline: auto !important;
	}
}

/* -- Proof bar (stats strip) ------------------------------------------------- */

.bts-proof {
	border-top: 1px solid var(--bts-rule);
}

.bts-proof > .wp-block-column {
	padding-top: clamp(1.5rem, 2.5vw, 2rem);
}

.bts-proof > .wp-block-column + .wp-block-column {
	border-left: 1px solid var(--bts-rule);
	padding-left: clamp(1.25rem, 2.5vw, 2.25rem);
}

.bts-proof .bts-stat-label {
	margin-top: 0.7rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--bts-muted);
	max-width: 22ch;
}

@media (max-width: 781px) {
	.bts-proof > .wp-block-column + .wp-block-column {
		border-left: 0;
		padding-left: 0;
		border-top: 1px solid var(--bts-rule);
	}
}

/* -- Client logo marquee ----------------------------------------------------- */

.bts-marquee {
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

.bts-marquee__track {
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: center;
	gap: clamp(2.5rem, 5vw, 4.5rem) !important;
	width: max-content;
}

.bts-marquee__track > * {
	flex: none;
	margin: 0 !important;
}

.bts-marquee__track.is-animated {
	animation: bts-marquee 48s linear infinite;
}

.bts-marquee:hover .bts-marquee__track.is-animated {
	animation-play-state: paused;
}

@keyframes bts-marquee {
	to {
		transform: translateX(calc(-50% - clamp(1.25rem, 2.5vw, 2.25rem)));
	}
}

/* Without motion (or JS) the logos simply wrap and centre. */
.bts-marquee__track:not(.is-animated) {
	flex-wrap: wrap !important;
	justify-content: center;
	width: auto;
}

/* -- SIM rating scale ----------------------------------------------------- */

.bts-scale {
	counter-reset: bts-scale;
}

.bts-scale > .wp-block-group {
	align-items: center;
	padding-block: 1rem;
	border-bottom: 1px solid var(--bts-rule);
}

.bts-scale > .wp-block-group:first-child {
	border-top: 1px solid var(--bts-rule);
}

.bts-scale .wp-block-image {
	flex: none;
	margin: 0;
}

.bts-scale .wp-block-image img {
	width: 64px;
	height: 64px;
	object-fit: contain;
}

.bts-scale h3,
.bts-scale h4 {
	margin: 0;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 500;
}

.bts-scale p {
	margin: 0.2rem 0 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--bts-muted);
}

/* -- Tier weights (3x / 2x / 1x) ------------------------------------------- */

.bts-weight {
	font-size: clamp(2.5rem, 2rem + 2vw, 3.75rem);
	font-weight: 300;
	letter-spacing: -0.04em;
	line-height: 1;
	color: var(--bts-coral);
	margin: 0 !important;
}

/* -- Industry tiles ----------------------------------------------------------- */

.bts-industry {
	position: relative;
	min-height: 22rem !important;
	transition: transform 0.6s var(--bts-ease);
}

.bts-industry .wp-block-cover__image-background {
	transition: transform 1.2s var(--bts-ease);
}

.bts-industry:hover .wp-block-cover__image-background {
	transform: scale(1.06);
}

.bts-industry h3 {
	font-size: var(--wp--preset--font-size--large);
	font-weight: 500;
	letter-spacing: -0.015em;
	margin: 0;
}

.bts-industry h3 a {
	color: #fff;
	text-decoration: none;
}

.bts-industry h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
}

.bts-industry p {
	margin: 0.4rem 0 0;
	font-size: var(--wp--preset--font-size--small);
	color: rgba(255, 255, 255, 0.78);
	max-width: 30ch;
}

/* -- Cards from Query Loops (posts, case studies, stories) ----------------- */

.bts-card {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
}

.bts-card > * {
	margin-block: 0 !important;
}

.bts-card .wp-block-post-featured-image {
	margin-bottom: 1.4rem !important;
}

.bts-card .wp-block-post-featured-image img {
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.bts-card:hover .wp-block-post-featured-image img {
	transform: scale(1.045);
}

.bts-card .wp-block-post-title {
	margin-top: 0.65rem !important;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 500;
	line-height: 1.28;
	letter-spacing: -0.015em;
}

.bts-card .wp-block-post-title a {
	color: inherit;
	text-decoration: none;
	background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat;
	transition: background-size 0.45s var(--bts-ease);
}

.bts-card:hover .wp-block-post-title a {
	background-size: 100% 1px;
}

/* Whole card clickable via the title link. */
.bts-card .wp-block-post-title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.bts-card .wp-block-post-excerpt {
	margin-top: 0.7rem !important;
	font-size: var(--wp--preset--font-size--small);
	color: var(--bts-muted);
}

.bts-card .wp-block-post-excerpt__more-text {
	display: none;
}

.bts-card .wp-block-post-date,
.bts-card .bts-card__foot {
	margin-top: auto !important;
	padding-top: 1rem;
}

.bts-meta-row {
	gap: 0.4rem 0.9rem !important;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--bts-muted);
}

.bts-meta-row > * {
	margin: 0 !important;
}

.bts-meta-row .wp-block-post-terms a {
	color: inherit;
	text-decoration: none;
	position: relative;
	z-index: 1;
}

.bts-meta-row .wp-block-post-terms a:hover {
	color: var(--bts-coral-deep);
}

.bts-sim-chip {
	display: inline-block;
	padding: 0.28em 0.7em;
	border-radius: 999px;
	background: var(--bts-coral-soft);
	color: var(--bts-coral-deep);
	letter-spacing: 0.06em;
}

.bts-sim-chip:empty {
	display: none;
}

.has-ink-background-color .bts-sim-chip,
.bts-dark .bts-sim-chip {
	background: rgba(238, 103, 73, 0.16);
	color: var(--bts-coral);
}

/* Lead story: first card of a "feature-first" loop spans two columns. */
@media (min-width: 900px) {
	.bts-feature-first .wp-block-post-template > li:first-child {
		grid-column: span 2;
	}

	.bts-feature-first .wp-block-post-template > li:first-child .wp-block-post-featured-image img {
		aspect-ratio: 16 / 9;
	}

	.bts-feature-first .wp-block-post-template > li:first-child .wp-block-post-title {
		font-size: var(--wp--preset--font-size--x-large);
	}
}

/* Responsive card grids regardless of the column count set in the editor. */
@media (max-width: 1023px) {
	.wp-block-post-template.is-layout-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 640px) {
	.wp-block-post-template.is-layout-grid {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	.bts-feature-first .wp-block-post-template > li:first-child {
		grid-column: auto;
	}
}

/* -- Pagination ---------------------------------------------------------------- */

.wp-block-query-pagination {
	gap: 0.4rem;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
}

.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.6rem;
	height: 2.6rem;
	padding: 0 0.8rem;
	border: 1px solid var(--bts-rule);
	border-radius: 2px;
	color: inherit;
	text-decoration: none;
}

.wp-block-query-pagination .page-numbers.current {
	background: var(--bts-ink);
	border-color: var(--bts-ink);
	color: #fff;
}

.wp-block-query-pagination a:hover {
	border-color: var(--bts-ink);
}

/* -- Testimonials scroller ------------------------------------------------- */

.bts-scroller .wp-block-post-template {
	display: grid !important;
	grid-auto-flow: column;
	grid-auto-columns: minmax(19rem, 31%);
	gap: clamp(1rem, 2vw, 1.5rem) !important;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding-bottom: 1.25rem;
	scrollbar-width: thin;
	scrollbar-color: var(--bts-coral) transparent;
}

.bts-scroller .wp-block-post-template > li {
	scroll-snap-align: start;
}

@media (max-width: 781px) {
	.bts-scroller .wp-block-post-template {
		grid-auto-columns: 86%;
	}
}

.bts-quote-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: clamp(1.5rem, 2.6vw, 2.25rem) !important;
	border-radius: var(--bts-petal-sm) var(--bts-petal-sm) var(--bts-petal-sm) 0;
}

.bts-quote-card::before {
	content: "\201C";
	display: block;
	height: 2.4rem;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 4.5rem;
	line-height: 1;
	color: var(--bts-coral);
}

.bts-quote-card .wp-block-post-content {
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.6;
}

.bts-quote-card .wp-block-post-content p {
	margin-block: 0 0.8rem;
}

.bts-quote-card .bts-quote-card__who {
	margin-top: auto !important;
	padding-top: 1.25rem;
	border-top: 1px solid var(--bts-rule);
}

.bts-quote-card .bts-quote-card__who .wp-block-post-title {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	letter-spacing: 0;
	margin: 0;
}

/* -- Jump navigation (industries) ------------------------------------------ */

.bts-jumpnav {
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--bts-masthead-h));
	z-index: 20;
	background: rgba(255, 255, 255, 0.94);
	-webkit-backdrop-filter: saturate(1.4) blur(10px);
	backdrop-filter: saturate(1.4) blur(10px);
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.bts-jumpnav .wp-block-buttons {
	flex-wrap: nowrap;
	overflow-x: auto;
	scrollbar-width: none;
	gap: 0.4rem;
	padding-block: 0.8rem;
}

.bts-jumpnav .wp-block-button__link {
	padding: 0.55rem 1rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: #fff;
	color: var(--bts-ink);
	font-size: 0.8125rem;
	font-weight: 500;
	white-space: nowrap;
}

.bts-jumpnav .wp-block-button__link:hover {
	background: var(--bts-ink);
	border-color: var(--bts-ink);
	color: #fff;
}

/* -- Category pills (blog) -------------------------------------------------- */

.bts-pills.wp-block-categories,
.bts-pills .wp-block-categories {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	list-style: none;
	padding: 0;
	margin: 0;
}

.bts-pills .cat-item a {
	display: inline-block;
	padding: 0.45rem 0.95rem;
	border: 1px solid var(--bts-rule);
	border-radius: 999px;
	font-size: 0.8125rem;
	font-weight: 500;
	color: inherit;
	text-decoration: none;
	transition: background-color 0.2s, border-color 0.2s, color 0.2s;
}

.bts-pills .cat-item a:hover,
.bts-pills .current-cat a {
	background: var(--bts-ink);
	border-color: var(--bts-ink);
	color: #fff;
}

/* -- Process steps ------------------------------------------------------------ */

.bts-steps > .wp-block-column {
	position: relative;
	padding-top: 2rem;
	border-top: 1px solid var(--bts-rule);
}

.bts-steps > .wp-block-column::before {
	content: "";
	position: absolute;
	top: -5px;
	left: 0;
	width: 9px;
	height: 9px;
	background: var(--bts-coral);
	border-radius: 50% 50% 50% 0;
}

.bts-steps .bts-index {
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	color: var(--bts-coral-deep);
	margin-bottom: 1rem;
}

:is(.has-ink-background-color, .bts-dark) .bts-steps .bts-index {
	color: var(--bts-coral);
}

/* -- People ---------------------------------------------------------------------- */

.bts-person h3 {
	margin: 1.1rem 0 0.15rem;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 500;
}

.bts-person .bts-role {
	margin: 0 0 0.6rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--bts-coral-deep);
}

.bts-person p:not(.bts-role) {
	font-size: var(--wp--preset--font-size--small);
	color: var(--bts-muted);
}

/* -- CTA band --------------------------------------------------------------------- */

.bts-cta-band {
	position: relative;
	overflow: hidden;
}

.bts-cta-band::after {
	content: "";
	position: absolute;
	right: max(-6rem, -8vw);
	bottom: -7rem;
	width: clamp(18rem, 34vw, 30rem);
	aspect-ratio: 1;
	background: url("../images/petal-mark-ink.svg") center / contain no-repeat;
	opacity: 0.09;
	pointer-events: none;
}

.bts-cta-band > * {
	position: relative;
	z-index: 1;
}

/* -- Contact ---------------------------------------------------------------------- */

.bts-contact-lines p {
	margin: 0 0 0.4rem;
}

.bts-contact-lines a {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid var(--bts-rule);
}

.bts-contact-lines a:hover {
	color: var(--bts-coral-deep);
	border-color: currentColor;
}

/* Contact Form 7, restyled to the system. */
.bts-form .wpcf7-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.1rem 1.25rem;
}

.bts-form .wpcf7-form > p,
.bts-form .wpcf7-form .bts-form__full {
	grid-column: 1 / -1;
	margin: 0;
}

.bts-form .wpcf7-form > .bts-form__half {
	grid-column: auto;
	margin: 0;
}

.bts-form label {
	display: block;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--bts-muted);
}

.bts-form input:not([type="submit"]):not([type="checkbox"]),
.bts-form select,
.bts-form textarea {
	width: 100%;
	margin-top: 0.45rem;
	padding: 0.9rem 1rem;
	font: inherit;
	font-size: var(--wp--preset--font-size--medium);
	letter-spacing: normal;
	text-transform: none;
	color: var(--bts-ink);
	background: #fff;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 2px;
	transition: border-color 0.2s, box-shadow 0.2s;
}

.bts-form textarea {
	min-height: 9rem;
	resize: vertical;
}

.bts-form input:focus,
.bts-form select:focus,
.bts-form textarea:focus {
	outline: none;
	border-color: var(--bts-ink);
	box-shadow: 0 0 0 3px rgba(238, 103, 73, 0.25);
}

.bts-form input[type="submit"] {
	padding: 1.05rem 2rem;
	font: inherit;
	font-weight: 600;
	font-size: 0.9375rem;
	color: var(--bts-ink);
	background: var(--bts-coral);
	border: 0;
	border-radius: 2px;
	cursor: pointer;
	transition: background-color 0.25s, color 0.25s;
}

.bts-form input[type="submit"]:hover {
	background: var(--bts-ink);
	color: #fff;
}

.bts-form .wpcf7-spinner {
	vertical-align: middle;
}

.bts-form .wpcf7-not-valid-tip {
	margin-top: 0.35rem;
	font-size: 0.8125rem;
	text-transform: none;
	letter-spacing: normal;
	color: var(--bts-coral-deep);
}

.bts-form .wpcf7-response-output {
	grid-column: 1 / -1;
	margin: 0 !important;
	padding: 0.9rem 1rem !important;
	border-radius: 2px;
	font-size: var(--wp--preset--font-size--small);
}

@media (max-width: 640px) {
	.bts-form .wpcf7-form {
		grid-template-columns: 1fr;
	}
}

/* -- Migrated content ---------------------------------------------------------------
   Case studies, stories and services came across from the previous theme with
   its utility classes still attached. Neutralise the ones that would fight
   this layout, and give their tables and figures a consistent finish. */

.wp-block-post-content :is(.container, .mx-auto) {
	max-width: none;
	margin-inline: 0;
	padding-inline: 0;
}

.wp-block-post-content .wp-block-table table {
	border-collapse: collapse;
	width: 100%;
}

.wp-block-post-content .wp-block-table :is(th, td) {
	padding: 0.8rem 1rem;
	border: 0;
	border-bottom: 1px solid var(--bts-rule);
	text-align: left;
	vertical-align: top;
}

.wp-block-post-content .wp-block-table thead th {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--bts-muted);
	border-bottom: 1px solid var(--bts-ink);
}

.wp-block-post-content .wp-block-table figcaption {
	margin-top: 0.8rem;
}

.wp-block-post-content .wp-block-image img {
	border-radius: 4px;
}


/* 8. Templates
   ========================================================================== */

/* Long-form reading: blog posts and narrow pages. */
.bts-article .wp-block-post-content {
	font-size: clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem);
	line-height: 1.75;
}

.bts-article .wp-block-post-content > :is(h2, h3) {
	margin-top: 2.6em;
}

.bts-article .wp-block-post-content > h2 {
	font-size: var(--wp--preset--font-size--x-large);
}

.bts-article .wp-block-post-content > h3 {
	font-size: var(--wp--preset--font-size--large);
}

.bts-article .wp-block-post-content > :is(ul, ol) {
	padding-left: 1.3em;
}

.bts-article .wp-block-post-content li {
	margin-block: 0.4em;
}

.bts-article .wp-block-post-content li::marker {
	color: var(--bts-coral-deep);
}

.bts-article .wp-block-post-content > .wp-block-image,
.bts-article .wp-block-post-content > figure {
	margin-block: 2.5em;
}

.bts-article .wp-block-post-content > p:first-child::first-letter {
	float: left;
	margin: 0.08em 0.12em 0 0;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 3.6em;
	line-height: 0.85;
	color: var(--bts-coral-deep);
}

.bts-article-meta {
	gap: 0.5rem 1.25rem !important;
	font-size: var(--wp--preset--font-size--small);
	color: var(--bts-muted);
}

.bts-article-meta > * {
	margin: 0 !important;
}

.bts-article-meta .wp-block-post-author-name {
	font-weight: 600;
	color: var(--bts-ink);
}

.bts-tags .wp-block-post-terms {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.bts-tags .wp-block-post-terms a {
	display: inline-block;
	padding: 0.35rem 0.8rem;
	border: 1px solid var(--bts-rule);
	border-radius: 999px;
	font-size: 0.75rem;
	text-decoration: none;
	color: inherit;
	letter-spacing: 0.04em;
}

.bts-tags .wp-block-post-terms__separator {
	display: none;
}

/* 404 */
.bts-404-code {
	font-size: clamp(6rem, 22vw, 16rem) !important;
	font-weight: 300 !important;
	line-height: 0.85 !important;
	letter-spacing: -0.06em !important;
	color: var(--bts-coral);
}

/* Search form */
.wp-block-search__inside-wrapper {
	border: 1px solid var(--bts-rule) !important;
	border-radius: 2px;
	padding: 0.3rem !important;
	background: #fff;
}

.wp-block-search__input {
	border: 0 !important;
	padding: 0.75rem 0.9rem !important;
	font: inherit;
}

.wp-block-search__button {
	margin-left: 0.3rem !important;
	border-radius: 2px !important;
}


/* 9. Motion
   ========================================================================== */

@media (prefers-reduced-motion: no-preference) {
	.bts-js .bts-reveal {
		opacity: 0;
		transform: translateY(26px);
		transition: opacity 0.95s var(--bts-ease), transform 0.95s var(--bts-ease);
	}

	.bts-js .bts-reveal.is-revealed {
		opacity: 1;
		transform: none;
	}

	.bts-js .bts-stagger > * {
		opacity: 0;
		transform: translateY(22px);
		transition: opacity 0.8s var(--bts-ease), transform 0.8s var(--bts-ease);
	}

	.bts-js .bts-stagger.is-revealed > * {
		opacity: 1;
		transform: none;
	}

	.bts-js .bts-stagger.is-revealed > :nth-child(2) { transition-delay: 0.07s; }
	.bts-js .bts-stagger.is-revealed > :nth-child(3) { transition-delay: 0.14s; }
	.bts-js .bts-stagger.is-revealed > :nth-child(4) { transition-delay: 0.21s; }
	.bts-js .bts-stagger.is-revealed > :nth-child(5) { transition-delay: 0.28s; }
	.bts-js .bts-stagger.is-revealed > :nth-child(6) { transition-delay: 0.35s; }
	.bts-js .bts-stagger.is-revealed > :nth-child(7) { transition-delay: 0.42s; }
	.bts-js .bts-stagger.is-revealed > :nth-child(8) { transition-delay: 0.49s; }
	.bts-js .bts-stagger.is-revealed > :nth-child(n+9) { transition-delay: 0.55s; }
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}


/* 10. Components added for migrated content
   ========================================================================== */

/* Small uppercase column label (dark lists, case facts, logo strip). */
.bts-col-label {
	margin-bottom: 0.9rem !important;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--bts-coral-deep);
}

:is(.has-ink-background-color, .bts-dark) .bts-col-label {
	color: var(--bts-coral);
}

.bts-logos .bts-col-label {
	color: var(--bts-stone);
	margin-bottom: 2rem !important;
}

/* On coral grounds the petal and accents flip to ink. */
.has-coral-background-color p.is-style-eyebrow::before {
	background: var(--bts-ink);
}

.has-coral-background-color .wp-block-button.is-style-outline .wp-block-button__link {
	border-color: rgba(26, 26, 26, 0.45);
}

/* Sticky left column (FAQ intros). */
@media (min-width: 782px) {
	.bts-sticky {
		position: sticky;
		top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--bts-masthead-h) + 2rem);
		align-self: flex-start;
	}
}

/* Case study facts inside service pages. */
.bts-case-facts > * > p:not(.bts-col-label) {
	margin-top: 0;
	color: var(--bts-muted);
	font-size: var(--wp--preset--font-size--small);
}

/* SIM proof card (bts/sim-proof). */
.bts-proof-card {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 1.25rem 1.75rem;
	align-items: center;
	padding: clamp(1.5rem, 3vw, 2.5rem);
	background: #fff;
	color: var(--bts-ink);
	border-radius: var(--bts-petal-sm) var(--bts-petal-sm) var(--bts-petal-sm) 0;
	box-shadow: 0 30px 60px rgba(0, 0, 0, 0.25);
	max-width: 30rem;
	margin-left: auto;
}

.bts-proof__badge {
	grid-row: span 2;
	width: clamp(96px, 11vw, 150px);
	height: auto;
}

.bts-proof__score {
	display: flex;
	align-items: flex-end;
	gap: 0.75rem;
}

.bts-proof__number {
	font-size: clamp(3rem, 2rem + 3vw, 4.5rem);
	font-weight: 300;
	line-height: 0.9;
	letter-spacing: -0.05em;
	font-variant-numeric: tabular-nums;
}

.bts-proof__label {
	padding-bottom: 0.35rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	line-height: 1.3;
	text-transform: uppercase;
}

.bts-proof__label small {
	font-weight: 400;
	color: var(--bts-stone);
	letter-spacing: 0.08em;
}

.bts-proof__rating {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	color: var(--bts-coral-deep);
}

.bts-proof__logo {
	grid-column: 1 / -1;
	padding-top: 1.25rem;
	border-top: 1px solid var(--wp--preset--color--line);
}

.bts-proof__logo img {
	display: block;
	max-height: 44px;
	max-width: 180px;
	width: auto;
	object-fit: contain;
}

@media (max-width: 781px) {
	.bts-proof-card {
		margin-left: 0;
	}
}

/* Facts list (bts/case-facts). */
.bts-facts {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 2.25rem;
	margin: 1.75rem 0 0;
	padding-top: 1.5rem;
	border-top: 1px solid var(--bts-rule);
}

.bts-facts dt {
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--bts-muted);
}

.bts-facts dd {
	margin: 0.25rem 0 0;
	font-weight: 500;
}

/* Article opener image under a case study hero. */
.bts-article-opener {
	margin-top: 0 !important;
}

/* Callouts preserved from the blog's info cards and highlights. */
.wp-block-group.bts-callout {
	padding: clamp(1.25rem, 2.6vw, 2rem);
	background: var(--bts-sand);
	border-left: 3px solid var(--bts-coral);
	border-radius: 0 4px 4px 0;
}

.wp-block-group.bts-stat-callout {
	padding: clamp(1.25rem, 2.6vw, 2rem);
	background: var(--bts-ink);
	color: #fff;
	border-radius: var(--bts-petal-sm) var(--bts-petal-sm) var(--bts-petal-sm) 0;
	--bts-rule: rgba(255, 255, 255, 0.14);
	--bts-muted: rgba(255, 255, 255, 0.7);
}

.wp-block-group.bts-stat-callout :is(h2, h3, h4) {
	color: var(--bts-coral);
}

.bts-article .wp-block-group.is-style-card,
.bts-article .bts-callout,
.bts-article .bts-stat-callout {
	margin-block: 1.75em;
}

.bts-article .wp-block-group.is-style-card > :first-child,
.bts-callout > :first-child,
.bts-stat-callout > :first-child {
	margin-top: 0;
}

.bts-article .wp-block-group.is-style-card > :last-child,
.bts-callout > :last-child,
.bts-stat-callout > :last-child {
	margin-bottom: 0;
}

.bts-card-row {
	gap: 1rem !important;
	margin-block: 1.75em !important;
}

.bts-card-row .wp-block-group.is-style-card {
	height: 100%;
	margin: 0;
}

/* SIM rating badges grid. */
.bts-badge {
	text-align: center;
}

.bts-badge .wp-block-image {
	display: flex;
	justify-content: center;
	margin: 0 0 1rem;
}

.bts-badge h3 {
	font-size: var(--wp--preset--font-size--large);
	font-weight: 500;
	margin: 0 0 0.4rem;
}

.bts-badge p {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--bts-muted);
}

/* Standards wall. */
.bts-standards > * {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 7.5rem;
}

.bts-standard {
	margin: 0;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	letter-spacing: -0.01em;
	text-align: center;
}

/* Services hub rows. */
.bts-service-group {
	padding-block: clamp(2rem, 4vw, 3rem);
	border-top: 1px solid var(--wp--preset--color--line);
}

.bts-service-group .bts-index {
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	color: var(--bts-coral-deep);
	margin-bottom: 0.75rem;
}

.bts-service-group .bts-tile {
	min-height: 13rem;
}

/* Industry tiles: one consistent, softened shape. */
.wp-block-cover.bts-industry {
	border-radius: var(--bts-petal-sm) var(--bts-petal-sm) var(--bts-petal-sm) 0;
	overflow: hidden;
}

/* Testimonials in post content: drop stray spacing from migrated quotes. */
.bts-quote-card .wp-block-post-content > :last-child {
	margin-bottom: 0;
}

/* Tables inside designed sections. */
.bts-table-section .wp-block-table {
	margin: 0;
	background: #fff;
	border-radius: 4px;
	box-shadow: var(--wp--preset--shadow--soft);
	overflow-x: auto;
}

.bts-table-section.has-sand-background-color .wp-block-table {
	background: #fff;
}

.bts-table-section .wp-block-table :is(th, td) {
	padding: 1rem 1.25rem;
}

.bts-table-section .wp-block-table td:first-child {
	font-weight: 600;
	color: var(--bts-ink);
}

/* Tables anywhere in content get the same base treatment as articles. */
.wp-block-table table {
	border-collapse: collapse;
	width: 100%;
}

.wp-block-table :is(th, td) {
	padding: 0.85rem 1rem;
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
	text-align: left;
	vertical-align: top;
}

.wp-block-table thead th {
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--bts-stone);
	border-bottom: 1px solid var(--bts-ink);
}

/* Dark list sections. */
.bts-lists-section .wp-block-column {
	padding: clamp(1.25rem, 2.5vw, 2rem);
	border: 1px solid var(--bts-rule);
	border-radius: var(--bts-petal-sm) var(--bts-petal-sm) var(--bts-petal-sm) 0;
}



/* ==========================================================================
   11. Global-consultancy layer (v2)
   Cinematic covers, featured strips, capability cards, story features,
   sticky in-page navigation, experts, breadcrumbs and header search.
   ========================================================================== */

/* -- Kicker: the small uppercase label above titles and on cards ---------- */
.bts-kicker {
	margin: 0 0 0.6rem !important;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--bts-coral-deep);
}

:is(.has-ink-background-color, .has-charcoal-background-color, .bts-dark, .wp-block-cover) .bts-kicker {
	color: var(--bts-coral);
}

/* -- Section head: title left, "view all" right ---------------------------- */
.bts-head {
	align-items: flex-end !important;
	margin-bottom: clamp(2rem, 4vw, 3.25rem) !important;
}

.bts-head h2 {
	margin: 0;
	max-width: 22ch;
}

/* -- Cinematic cover hero -------------------------------------------------- */
.wp-block-cover.bts-cover-hero {
	min-height: min(94vh, 920px) !important;
	padding-top: calc(var(--bts-header-total) + 2.5rem);
	padding-bottom: 0;
	align-items: flex-end;
}

.wp-block-cover.bts-cover-hero.bts-cover-hero--medium {
	min-height: min(70vh, 640px) !important;
}

.wp-block-cover.bts-cover-hero .wp-block-cover__inner-container {
	width: 100%;
	color: #fff;
}

.bts-hero__copy {
	max-width: 50rem;
	padding-bottom: clamp(2.5rem, 6vw, 4.5rem);
}

.bts-hero__copy > * {
	margin-block: 0 !important;
}

.bts-hero__copy > * + * {
	margin-top: 1.4rem !important;
}

.bts-hero__copy .wp-block-buttons {
	margin-top: 2.25rem !important;
}

.bts-cover-hero .is-style-lede {
	color: rgba(255, 255, 255, 0.82);
	max-width: 40rem;
}

.bts-cover-hero h1 {
	text-shadow: 0 2px 30px rgba(0, 0, 0, 0.25);
}

/* Slow, subtle push-in on the hero photograph. */
@media (prefers-reduced-motion: no-preference) {
	.bts-js .bts-cover-hero .wp-block-cover__image-background {
		animation: bts-kenburns 18s ease-out both;
	}
}

@keyframes bts-kenburns {
	from { transform: scale(1.08); }
	to { transform: scale(1); }
}

/* -- Featured strip along the bottom of the home hero ---------------------- */
.bts-feature-strip {
	gap: 0 !important;
	margin: 0 !important;
	border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.bts-feature-strip > .wp-block-column {
	position: relative;
	padding: 1.6rem 2rem 1.9rem 0;
}

.bts-feature-strip > .wp-block-column + .wp-block-column {
	padding-left: 2rem;
	border-left: 1px solid rgba(255, 255, 255, 0.2);
}

.bts-feature-strip > .wp-block-column::before {
	content: "";
	position: absolute;
	top: -1px;
	left: 0;
	width: 0;
	height: 3px;
	background: var(--bts-coral);
	transition: width 0.45s var(--bts-ease);
}

.bts-feature-strip > .wp-block-column:hover::before {
	width: 100%;
}

.bts-feature-strip p {
	margin: 0;
}

.bts-feature-strip .bts-feature-strip__title a {
	color: #fff;
	font-size: 1.05rem;
	font-weight: 500;
	line-height: 1.4;
	text-decoration: none;
}

.bts-feature-strip .bts-feature-strip__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

@media (max-width: 781px) {
	.bts-feature-strip > .wp-block-column,
	.bts-feature-strip > .wp-block-column + .wp-block-column {
		padding: 1.2rem 0;
		border-left: 0;
		border-top: 1px solid rgba(255, 255, 255, 0.2);
	}
}

/* -- Capability cards ---------------------------------------------------------- */
.bts-cap-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fff;
	transition: box-shadow 0.35s var(--bts-ease), transform 0.35s var(--bts-ease);
}

.bts-cap-card:hover {
	box-shadow: var(--wp--preset--shadow--lift);
	transform: translateY(-3px);
}

.bts-cap-card > .wp-block-image {
	margin: 0;
	overflow: hidden;
}

.bts-cap-card > .wp-block-image img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	transition: transform 0.9s var(--bts-ease);
}

.bts-cap-card:hover > .wp-block-image img {
	transform: scale(1.05);
}

.bts-cap-card__body {
	flex: 1;
	padding: 1.75rem 1.75rem 2rem !important;
}

.bts-cap-card__body > * {
	margin-block: 0 !important;
}

.bts-cap-card__body h3 {
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 500;
	margin-bottom: 0.6rem !important;
}

.bts-cap-card__body > p:not(.bts-kicker) {
	color: var(--bts-muted);
	font-size: var(--wp--preset--font-size--small);
	margin-bottom: 1.25rem !important;
}

.wp-block-list.bts-link-list {
	list-style: none;
	padding: 0;
	margin: 0;
	border-top: 1px solid var(--wp--preset--color--line);
}

.wp-block-list.bts-link-list li {
	margin: 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.wp-block-list.bts-link-list a {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.8rem 0;
	color: var(--bts-ink);
	font-size: 0.95rem;
	font-weight: 500;
	text-decoration: none;
}

.wp-block-list.bts-link-list a::after {
	content: "→";
	content: "→" / "";
	color: var(--bts-coral-deep);
	transition: transform 0.25s var(--bts-ease);
}

.wp-block-list.bts-link-list a:hover {
	color: var(--bts-coral-deep);
}

.wp-block-list.bts-link-list a:hover::after {
	transform: translateX(4px);
}

/* -- Cards: square-cornered imagery in the global style ------------------------ */
.bts-card .wp-block-post-featured-image,
.bts-card .wp-block-post-featured-image img {
	border-radius: 0;
}

.bts-card .wp-block-post-featured-image img {
	aspect-ratio: 16 / 10;
}

.bts-card:hover .wp-block-post-title a {
	color: var(--bts-coral-deep);
}

:is(.has-ink-background-color, .bts-dark) .bts-card:hover .wp-block-post-title a {
	color: var(--bts-coral);
}

.bts-card .wp-block-post-time-to-read,
.bts-card .wp-block-post-date {
	font-size: 0.8rem;
	color: var(--bts-muted);
}

.bts-card .bts-card__foot {
	gap: 0.4rem 1rem !important;
}

/* -- Story feature: image beside an ink panel ------------------------------------ */
.bts-story {
	gap: 0 !important;
	align-items: stretch !important;
}

.bts-story > .wp-block-column {
	margin: 0 !important;
}

.bts-story > .wp-block-column:first-child .wp-block-image {
	height: 100%;
	margin: 0;
}

.bts-story > .wp-block-column:first-child .wp-block-image img {
	width: 100%;
	height: 100%;
	min-height: 420px;
	object-fit: cover;
}

.bts-story__panel {
	height: 100%;
	padding: clamp(2rem, 4.5vw, 3.75rem) !important;
}

.bts-story__stats {
	gap: 0 !important;
	margin-block: 1.75rem !important;
	border-top: 1px solid var(--bts-rule);
	border-bottom: 1px solid var(--bts-rule);
}

.bts-story__stats > .wp-block-column {
	padding: 1.1rem 1rem 1.1rem 0;
}

.bts-story__stats > .wp-block-column + .wp-block-column {
	padding-left: 1.25rem;
	border-left: 1px solid var(--bts-rule);
}

.bts-story__stats p.is-style-stat {
	font-size: clamp(2rem, 1.5rem + 1.8vw, 2.9rem);
}

.bts-story__stats .bts-stat-label {
	margin-top: 0.35rem;
	font-size: 0.8rem;
	color: var(--bts-muted);
}

/* -- Stats grid (who we are) ---------------------------------------------------- */
.bts-stat-grid {
	gap: 1px !important;
	background: var(--wp--preset--color--line);
	border: 1px solid var(--wp--preset--color--line);
}

.bts-stat-grid > * {
	margin: 0 !important;
	padding: clamp(1.4rem, 3vw, 2.25rem) !important;
	background: #fff;
}

.bts-stat-grid .bts-stat-label {
	margin-top: 0.6rem;
	color: var(--bts-muted);
	font-size: var(--wp--preset--font-size--small);
}

/* -- Client logo grid ------------------------------------------------------------- */
.bts-logo-grid {
	gap: 1px !important;
	background: var(--wp--preset--color--line);
	border: 1px solid var(--wp--preset--color--line);
}

.bts-logo-grid > .wp-block-image {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 7.5rem;
	margin: 0;
	padding: 1.5rem;
	background: #fff;
}

/* Client logos are supplied white (for dark grounds); render them as one
   monochrome ink set on light grounds. */
.bts-logo-grid > .wp-block-image img {
	max-height: 48px;
	max-width: 150px;
	width: auto;
	object-fit: contain;
	filter: brightness(0);
	opacity: 0.5;
	transition: opacity 0.3s;
}

.bts-logo-grid > .wp-block-image:hover img {
	opacity: 0.9;
}

/* -- Sticky in-page navigation (service pages) --------------------------------------- */
.bts-subnav {
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--bts-masthead-h));
	z-index: 30;
	background: rgba(255, 255, 255, 0.96);
	-webkit-backdrop-filter: saturate(1.4) blur(10px);
	backdrop-filter: saturate(1.4) blur(10px);
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.bts-subnav__links {
	gap: clamp(1.25rem, 2.6vw, 2.5rem) !important;
	overflow-x: auto;
	scrollbar-width: none;
	flex-wrap: nowrap !important;
}

.bts-subnav__links p {
	margin: 0;
	white-space: nowrap;
}

.bts-subnav__links a {
	display: block;
	padding: 1.05rem 0 0.95rem;
	border-bottom: 2px solid transparent;
	color: var(--bts-ink);
	font-size: 0.875rem;
	font-weight: 500;
	text-decoration: none;
	transition: border-color 0.25s, color 0.25s;
}

.bts-subnav__links a:hover {
	border-color: var(--bts-coral);
	color: var(--bts-coral-deep);
}

/* -- Experts / talk to our team ------------------------------------------------------- */
.bts-experts__faces {
	gap: 1.25rem !important;
}

.wp-block-image.is-style-avatar {
	margin: 0;
}

.wp-block-image.is-style-avatar img {
	width: 88px;
	height: 88px;
	border-radius: 50%;
	object-fit: cover;
	object-position: 50% 25%;
	box-shadow: 0 0 0 3px #fff, 0 0 0 4px var(--wp--preset--color--line);
}

.bts-face {
	text-align: center;
}

.bts-face p {
	margin: 0.6rem 0 0;
	font-size: 0.8rem;
	font-weight: 600;
	line-height: 1.3;
}

.bts-face p + p {
	margin-top: 0.15rem;
	font-weight: 400;
	color: var(--bts-muted);
}

/* -- Breadcrumbs (core/breadcrumbs, WordPress 7) ----------------------------------- */
.wp-block-breadcrumbs {
	font-size: 0.8rem;
	font-weight: 500;
	letter-spacing: 0.01em;
}

.wp-block-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.6rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.wp-block-breadcrumbs a {
	color: inherit;
	text-decoration: none;
	opacity: 0.78;
}

.wp-block-breadcrumbs a:hover {
	opacity: 1;
	color: var(--bts-coral);
}

.wp-block-cover .wp-block-breadcrumbs,
.bts-dark .wp-block-breadcrumbs {
	color: rgba(255, 255, 255, 0.85);
}

/* -- Header search (core/search, button-only, expandable) --------------------------- */
.bts-header-search.wp-block-search {
	margin: 0;
}

.bts-header-search .wp-block-search__inside-wrapper {
	border: 0 !important;
	padding: 0 !important;
	background: transparent;
}

.bts-header-search .wp-block-search__button {
	margin: 0 !important;
	padding: 0.45rem !important;
	background: transparent !important;
	color: inherit !important;
	border-radius: 50% !important;
}

.bts-header-search .wp-block-search__button svg {
	width: 22px;
	height: 22px;
	fill: currentColor;
}

.bts-header-search .wp-block-search__input {
	min-width: 14rem;
	padding: 0.55rem 0.9rem !important;
	border: 1px solid var(--wp--preset--color--line) !important;
	border-radius: 2px;
	background: #fff;
	color: var(--bts-ink);
	font-size: 0.9rem;
}

/* Phones: the intro repeats the section name and the cards are desktop extras.
   !important: core's overlay rules show every navigation item at higher specificity. */
.bts-nav .is-menu-open .bts-mega__feature,
.bts-nav .is-menu-open .bts-mega__intro {
	display: none !important;
}

/* -- Image bands (careers) -------------------------------------------------------- */
.wp-block-cover.bts-band {
	min-height: 520px !important;
}

/* -- Subscribe band ---------------------------------------------------------------- */
.bts-subscribe .wpcf7-form {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	align-items: flex-start;
}

.bts-subscribe .wpcf7-form > p {
	margin: 0;
}

.bts-subscribe .wpcf7-form > p:first-of-type {
	flex: 1 1 16rem;
}

.bts-subscribe input[type="email"] {
	box-sizing: border-box;
	max-width: 100%;
	width: 100%;
	padding: 0.95rem 1rem;
	font: inherit;
	border: 1px solid var(--bts-rule);
	border-radius: 2px;
	background: #fff;
	color: var(--bts-ink);
}

.bts-subscribe input[type="submit"] {
	padding: 0.95rem 1.6rem;
	font: inherit;
	font-weight: 600;
	color: var(--bts-ink);
	background: var(--bts-coral);
	border: 0;
	border-radius: 2px;
	cursor: pointer;
}

.bts-subscribe input[type="submit"]:hover {
	background: #fff;
}

.bts-subscribe .wpcf7-response-output {
	flex-basis: 100%;
	margin: 0.5rem 0 0 !important;
}

.bts-fineprint {
	font-size: 0.75rem;
	color: var(--bts-muted);
}

/* -- Key facts band (client and impact stories) ------------------------------------- */
.bts-case-band-wrap {
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.bts-case-band {
	gap: 1.5rem clamp(2rem, 4vw, 4rem) !important;
}

.bts-case-band > * {
	margin: 0 !important;
}

.bts-case-band .bts-proof-card {
	display: grid;
	grid-template-columns: auto auto auto;
	grid-template-rows: auto auto;
	align-items: center;
	gap: 0.15rem 1.1rem;
	max-width: none;
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.bts-case-band .bts-proof__badge {
	grid-row: 1 / span 2;
	width: 76px;
}

.bts-case-band .bts-proof__score {
	align-self: end;
}

.bts-case-band .bts-proof__number {
	font-size: clamp(2.4rem, 1.8rem + 1.6vw, 3.2rem);
}

.bts-case-band .bts-proof__rating {
	grid-column: 2;
	align-self: start;
}

.bts-case-band .bts-proof__logo {
	grid-column: 3;
	grid-row: 1 / span 2;
	padding: 0 0 0 1.75rem;
	margin-left: 0.75rem;
	border-top: 0;
	border-left: 1px solid var(--wp--preset--color--line);
}

.bts-case-band .bts-facts {
	gap: 1rem clamp(1.75rem, 3vw, 3rem);
	margin: 0;
	padding: 0;
	border: 0;
}

@media (max-width: 781px) {
	.bts-case-band .bts-proof__logo {
		display: none;
	}
}

/* -- Portraits: rectangular in the corporate style ---------------------------------- */
.wp-block-image.is-style-portrait,
.wp-block-image.is-style-portrait img {
	border-radius: 0;
}

/* -- Mist sections keep white cards ------------------------------------------------ */
.has-mist-background-color {
	--bts-surface: #fff;
}

/* -- Article: featured image straddling the dark hero and the white body ------ */
.bts-overlap {
	margin-top: 0 !important;
	background: linear-gradient(180deg, #141414 0 50%, #fff 50% 100%);
}

.bts-overlap .wp-block-post-featured-image {
	margin: 0;
}

.bts-overlap .wp-block-post-featured-image img {
	box-shadow: 0 30px 60px rgba(0, 0, 0, 0.18);
}

/* Capability grid sits on mist: give the cards room to breathe. */
.bts-caps {
	align-items: stretch;
}


/* -- Positioned covers: core sets the inner container to width:auto with a
      higher-specificity selector; keep it full width so content sits on the grid. */
.wp-block-cover.has-custom-content-position.bts-cover-hero .wp-block-cover__inner-container,
.wp-block-cover.has-custom-content-position.bts-band .wp-block-cover__inner-container {
	width: 100% !important;
	max-width: none;
}


/* ==========================================================================
   12. Refinements
   ========================================================================== */

/* Full-bleed sections stack flush; each section owns its spacing. */
.bts-main > .alignfull,
.wp-block-post-content > .alignfull {
	margin-block: 0;
}

/* Labels on coral read in ink (coral-deep on coral fails contrast). */
.has-coral-background-color .bts-kicker {
	color: var(--bts-ink);
}

/* Card meta: label, terms and chips share one line; date and reading time too. */
.bts-meta-row {
	align-items: center;
}

.bts-meta-row > .bts-kicker {
	margin: 0 !important;
}

.bts-card .bts-card__foot {
	align-items: baseline;
}

.bts-card .bts-card__foot > .wp-block-post-date,
.bts-card .bts-card__foot > .wp-block-post-time-to-read {
	margin: 0 !important;
	padding: 0 !important;
}

/* Footer: contact lines at link size so the address never breaks mid-word. */
.bts-footer .bts-contact-lines {
	font-size: var(--wp--preset--font-size--small);
}

.bts-footer__legal .bts-sep {
	margin: 0 0.6em;
	opacity: 0.45;
}

/* Topic pills (terms query) on dark heroes and light listings. */
.bts-pills {
	margin-top: var(--wp--preset--spacing--60) !important;
}

.bts-pills .wp-block-term-template {
	gap: 0.5rem !important;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bts-pills .wp-block-term,
.bts-pills .wp-block-term-name {
	margin: 0;
}

.bts-pills .wp-block-term-name a {
	display: inline-block;
	padding: 0.5rem 1rem;
	border: 1px solid color-mix(in srgb, currentColor 30%, transparent);
	border-radius: 999px;
	color: inherit;
	font-size: 0.85rem;
	line-height: 1.2;
	text-decoration: none;
	transition: border-color 0.25s, color 0.25s;
}

.bts-pills .wp-block-term-name a:hover {
	border-color: var(--bts-coral);
	color: var(--bts-coral);
}

/* Testimonials: a featured quote beside a two-by-two grid. */
.bts-voices .wp-block-post-template {
	display: grid !important;
	grid-template-columns: 1.3fr 1fr 1fr;
	gap: clamp(1rem, 1.6vw, 1.5rem) !important;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bts-voices .wp-block-post-template > li {
	margin: 0 !important;
}

.bts-voices .wp-block-post-template > li:first-child {
	grid-row: span 2;
}

.bts-voices .wp-block-post-template > li:first-child .bts-quote-card {
	padding: clamp(2rem, 3.2vw, 3rem) !important;
}

.bts-voices .wp-block-post-template > li:not(:first-child) .wp-block-post-content {
	font-size: var(--wp--preset--font-size--small);
}

@media (max-width: 1023px) {
	.bts-voices .wp-block-post-template {
		grid-template-columns: 1fr 1fr;
	}

	.bts-voices .wp-block-post-template > li:first-child {
		grid-row: auto;
		grid-column: 1 / -1;
	}
}

@media (max-width: 781px) {
	.bts-voices .wp-block-post-template {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: 86%;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		padding-bottom: 1rem;
		scrollbar-width: thin;
		scrollbar-color: var(--bts-coral) transparent;
	}

	.bts-voices .wp-block-post-template > li {
		scroll-snap-align: start;
	}

	.bts-voices .wp-block-post-template > li:first-child {
		grid-column: auto;
	}
}

/* "Explore our other services": white tiles on the mist band. */
.bts-tiles .bts-tile {
	height: 100%;
	min-height: 12rem;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
}

.bts-tiles .bts-tile:hover {
	border-color: var(--bts-coral);
	background: var(--wp--preset--color--white);
}

.bts-tiles .wp-block-post-excerpt {
	margin-top: 0.25rem !important;
}

/* Headings in migrated articles sometimes wrap their text in <strong>; the
   heading weight is the design's, not the markup's. */
.wp-block-post-content :is(h1, h2, h3, h4, h5, h6) :is(strong, b) {
	font-weight: inherit;
}

/* Long-form content: card rows break out to the wide grid so cards keep a
   readable measure; section labels get room above and sit tight to their title. */
.wp-block-post-content.is-layout-constrained > .wp-block-columns.bts-card-row {
	max-width: var(--wp--style--global--wide-size);
}

.wp-block-post-content > .bts-kicker {
	margin-top: var(--wp--preset--spacing--70) !important;
}

.wp-block-post-content > .bts-kicker + :is(h2, h3, h4) {
	margin-top: 0.35rem !important;
}

/* Article byline on the dark hero. */
.bts-dark .bts-article-meta {
	color: rgba(255, 255, 255, 0.72);
}

.bts-dark .bts-article-meta .wp-block-post-author-name {
	color: #fff;
}


/* Mobile menu: everything reads left-aligned (the desktop bar is right-justified). */
.bts-nav .wp-block-navigation__responsive-container.is-menu-open {
	--navigation-layout-justification-setting: flex-start;
	--navigation-layout-justify: flex-start;
}

.bts-nav .is-menu-open .wp-block-navigation__submenu-container,
.bts-nav .is-menu-open .wp-block-navigation-item {
	align-items: flex-start !important;
	text-align: left;
}

/* Overlay-menu widths: logo left; search, call to action and menu toggle right. */
@media (max-width: 1099px) {
	.bts-masthead__bar > .bts-header-search {
		order: 2;
		margin-left: auto !important;
	}

	.bts-masthead__bar > .bts-header-cta {
		order: 3;
	}

	.bts-masthead__bar > .bts-nav {
		order: 4;
	}
}


/* ==========================================================================
   13. Home hero ("Neel") and the "Recent work and thinking" band
   From the approved concept (design/hero/concepts/final); its header rules are
   not used: the site keeps the mega-menu header.
   ========================================================================== */
:root{
  /* short aliases of the theme.json presets (see blocks/theme-json-fragment.json) */
  --neel:var(--wp--preset--color--neel);            /* #201e58 indigo ground: header, hero, overlay */
  --night:var(--wp--preset--color--night);          /* #14123a label on coral, footer, submenu panel, duotone shadow */
  --porcelain:var(--wp--preset--color--porcelain);  /* #f6f4f0 headline + nav on neel; warm paper light ground */
  --lede:var(--wp--preset--color--lede);            /* #bab8c5 secondary text on neel and night */
  --mist:var(--wp--preset--color--mist);            /* #ece8e1 proof panel */
  --line:var(--wp--preset--color--line);            /* #ddd8cf hairlines on porcelain (decorative) */
  --slate:var(--wp--preset--color--slate);          /* #4a4870 secondary text on porcelain */
  --coral:var(--wp--preset--color--coral);          /* #ee6749 logo + the one primary action */
  --coral-hover:#f4846b;                            /* coral button hover/focus: night label 7.10:1, 6.02:1 against neel */
  --rule:rgba(246,244,240,.14);                     /* hairlines on neel and night */
  --header-h:var(--wp--custom--header-height, 80px);
  --peek:var(--wp--custom--hero-peek, 128px);       /* the band's heading shows under the hero; its cards start below the fold */
  --icon-search:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Ccircle cx='10.5' cy='10.5' r='6.75'/%3E%3Cpath d='m15.5 15.5 5.25 5.25'/%3E%3C/svg%3E");
}
@font-face{font-family:"Source Serif 4 Fallback";src:local("Georgia");size-adjust:93.3%;ascent-override:111.5%;descent-override:36.4%;line-gap-override:0%}
body{--pad:var(--wp--style--root--padding-left);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}

/* ---------- Hero: core/group (neel) > core/columns ---------- */
.bts-home-hero{--hero-h:clamp(520px, calc(100svh - var(--header-h) - var(--wp-admin--admin-bar--height, 0px) - var(--peek)), 960px)}
/* tall screens: hold the laptop composition (the petal cannot grow past its five columns) and let the band's cards rise into view */
@media (min-height:1040px){.bts-home-hero{--hero-h:clamp(520px, calc(100svh - var(--header-h) - var(--wp-admin--admin-bar--height, 0px) - var(--peek)), 680px)}}
/* petal = its 5 of 12 columns, or the hero height less 150px, whichever is smaller.
   100cqw is the hero's inner width (.bts-home-hero is the container), so a desktop scrollbar cannot skew it. */
.bts-home-hero{--petal:min(calc((min(100cqw, 1280px) - 32px) * .4167), calc(var(--hero-h) - 150px));container-type:inline-size}
.bts-home-hero .bts-home-hero__cols{min-height:var(--hero-h);margin-block:0;gap:32px}
/* the copy starts on the petal's top edge; the column is also the H1's size container */
.bts-home-hero__copy{container-type:inline-size;padding-block:calc(var(--hero-h) - var(--petal)) 48px}
/* line two ("when someone checks.") is 9.06em, so 10.4cqi (column / 9.6) always keeps the H1 on two lines */
.bts-home-hero__copy h1{font-family:var(--wp--preset--font-family--sans);font-optical-sizing:auto;font-weight:300;
  font-size:min(clamp(2.5rem, 1.25rem + 3.5vw, 4.75rem), 10.4cqi);line-height:1.04;letter-spacing:-.015em;
  color:var(--porcelain);margin:0;translate:-0.035em 0}
/* cap height (0.67em) sits exactly on the petal's straight top edge; this beats core's
   :root :where(.is-layout-flow) > :first-child{margin-block-start:0}, specificity (0,2,1) */
.bts-home-hero .bts-home-hero__copy > h1:first-child{margin-block-start:-.2em}
.bts-home-hero__copy .bts-home-hero__lede{margin-block-start:24px;max-width:28em;font-size:clamp(1.0625rem, .98rem + .33vw, 1.25rem);line-height:1.5;
  color:var(--lede);text-wrap:pretty}
.bts-home-hero__copy .bts-home-hero__actions{margin-block-start:36px}
/* the one primary action: coral comes from the block's own colour presets (has-coral-background-color,
   has-night-color), so editors see it too; theme CSS only sets the size and the state */
.bts-home-hero__actions .wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;
  height:52px;padding:0 28px;border:1px solid transparent;border-radius:4px;
  font-size:16px;font-weight:600;letter-spacing:.005em;line-height:1;transition:background-color .2s ease}
.wp-block-button__link.has-coral-background-color:is(:hover,:focus-visible){background-color:var(--coral-hover)!important}

/* The petal: the theme's existing core/image block style `petal-tl` (the logo's lower-left leaf:
   square corner top-left, three round), drawn at the mark's true geometry (radius = half the side,
   as in petal-mark.svg), plus the duotone preset `neel-print`. The straight half of its top edge
   lies on the H1 cap line. Core adds .wp-duotone-neel-print and the filter rule at render. */
.bts-home-hero__media{display:flex;justify-content:flex-end}
.bts-home-hero .wp-block-image.is-style-petal-tl{width:var(--petal);aspect-ratio:1;margin:0;overflow:hidden;background:var(--night)}
.bts-home-hero .wp-block-image.is-style-petal-tl,
.bts-home-hero .wp-block-image.is-style-petal-tl img{border-radius:0 50% 50% 50%}
.bts-home-hero .wp-block-image.is-style-petal-tl img{width:100%;height:100%;object-fit:cover;display:block}

/* ---------- Next section: group (porcelain) > head + 3-column grid + foot ---------- */
.bts-recent{padding-block:48px 88px}
.bts-recent__head{margin-block-end:48px}
.bts-recent__head h2{font-family:var(--wp--preset--font-family--sans);font-weight:300;font-size:clamp(1.625rem, 1.3rem + 1.1vw, 2.5rem);
  line-height:1.15;letter-spacing:-.01em;margin:0;text-wrap:balance}
.bts-recent__cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.bts-recent__cards .bts-recent__card > *{margin-block-start:0}
.bts-recent__card .wp-block-image,.bts-recent__card .bts-recent__media{margin:0 0 20px;aspect-ratio:3/2;overflow:hidden;background:var(--mist)}
.bts-recent__card .wp-block-image img{width:100%;height:100%;object-fit:cover}
.bts-recent__card .bts-recent__kicker{margin:0 0 8px;font-size:13px;font-weight:500;line-height:1.4;color:var(--slate)}
.bts-recent__card h3{margin:0;font-family:var(--wp--preset--font-family--sans);font-weight:400;font-size:22px;line-height:1.3;letter-spacing:-.005em;text-wrap:balance}
.bts-recent__card h3 a{color:var(--neel);text-decoration:none}
.bts-recent__card h3 a:is(:hover,:focus-visible){text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
/* proof panel: the number leads, the label sits at the foot */
.bts-recent__card .bts-recent__media.bts-recent__proof{display:flex;flex-direction:column;justify-content:space-between;padding:24px 28px 24px}
.bts-recent__proof .bts-recent__num{margin:0;font-family:var(--wp--preset--font-family--sans);font-weight:400;font-size:clamp(3.5rem, 2.6rem + 2.4vw, 5.5rem);
  line-height:.9;letter-spacing:-.02em;color:var(--neel);font-variant-numeric:lining-nums}
.bts-recent__proof .bts-recent__label{margin:0;font-size:14px;font-weight:500;line-height:1.4;color:var(--slate)}
.bts-recent__foot{margin-block-start:64px;padding-block-start:24px;border-top:1px solid var(--line);gap:12px 32px}
.bts-recent__foot p{margin:0;font-size:15px;line-height:1.5;color:var(--slate)}
.bts-recent__foot .bts-recent__links{gap:28px}
.bts-recent__foot .bts-recent__links a{display:inline-flex;align-items:center;min-height:44px;margin-block:-12px;color:var(--neel);font-weight:500;
  text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}
.bts-recent__foot .bts-recent__links a:is(:hover,:focus-visible){text-decoration-thickness:2px}


@media (max-width:900px){
  /* the hero stacks: copy, then the petal on the right, standing on the hero's bottom edge */
  .bts-home-hero .bts-home-hero__cols{min-height:0;flex-wrap:wrap!important;gap:0}
  .bts-home-hero .bts-home-hero__cols > .wp-block-column{flex-basis:100%!important}
  .bts-home-hero__copy{padding-block:56px 40px}
  .bts-home-hero .bts-home-hero__copy > h1:first-child{margin-block-start:0}
  .bts-home-hero__copy h1{font-size:min(clamp(2.25rem, 1rem + 4.6vw, 3.25rem), 10.4cqi)}
  .bts-home-hero .wp-block-image.is-style-petal-tl{width:clamp(200px, 44vw, 340px)}
  .bts-recent__cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bts-recent__cards .bts-recent__card:nth-child(3){display:none}
}


/* ---------- Phones ---------- */
@media (max-width:600px){
  .bts-home-hero__copy{padding-block:44px 32px}
  /* the petal stands bottom-right on the hero's edge, under the action, as on tablets */
  .bts-home-hero .wp-block-image.is-style-petal-tl{width:min(60vw, 240px)}
  .bts-home-hero__copy h1{font-size:min(clamp(1.75rem, 8.9vw, 2.25rem), 10.4cqi);line-height:1.08}
  .bts-home-hero__copy .bts-home-hero__lede{margin-block-start:16px}
  .bts-home-hero__copy .bts-home-hero__actions{margin-block-start:28px}
  .bts-recent{padding-block:40px 64px}
  .bts-recent__head{margin-block-end:24px}
  .bts-recent__cards{grid-template-columns:1fr;gap:40px}
  .bts-recent__cards .bts-recent__card:nth-child(3){display:block}
  .bts-recent__card .bts-recent__media.bts-recent__proof{aspect-ratio:auto;gap:24px;padding:24px}
  .bts-recent__foot{flex-direction:column;align-items:flex-start}
}


@media (forced-colors:active){
  .bts-home-hero .wp-block-image.is-style-petal-tl{forced-color-adjust:none}
}


/* ==========================================================================
   14. Home hero video: a core/cover hero (same rules as the service-page heroes)
   whose background is a looping video. theme.js adds the pause control, swaps in
   the "-mobile" file on portrait phones and keeps the poster for reduced motion.
   ========================================================================== */
.wp-block-cover.bts-video-hero {
	background-color: var(--wp--preset--color--night);
}

.bts-video-hero > video.wp-block-cover__video-background {
	object-position: 55% 60%;
}

/* -- Pause / play control (WCAG 2.2.2) ------------------------------------------ */
.bts-video-toggle {
	position: absolute;
	z-index: 3;
	right: max(var(--wp--style--root--padding-right), calc((100% - var(--bts-wide)) / 2));
	bottom: 28px;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 1px solid rgba(246, 244, 240, 0.5);
	border-radius: 50%;
	background: rgba(20, 18, 58, 0.55);
	color: var(--wp--preset--color--porcelain);
	cursor: pointer;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.bts-video-toggle:hover {
	background: rgba(20, 18, 58, 0.85);
	border-color: var(--wp--preset--color--porcelain);
}

.bts-video-toggle:focus-visible {
	outline: 2px solid var(--wp--preset--color--porcelain);
	outline-offset: 3px;
}

.bts-video-toggle svg {
	width: 14px;
	height: 14px;
	fill: currentColor;
}

.bts-video-toggle .bts-video-toggle__play,
.bts-video-hero.is-paused .bts-video-toggle .bts-video-toggle__pause {
	display: none;
}

.bts-video-hero.is-paused .bts-video-toggle .bts-video-toggle__play {
	display: block;
}

@media (max-width: 781px) {
	.bts-video-toggle {
		bottom: 20px;
	}
}

/* ==========================================================================
   Header: restore the full-width mega menu (not hero-specific; belongs in theme.css §3)
   Core's navigation CSS (WP 7.1.2 on staging) sets
     .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { position: relative }
   (specificity 0,3,0) above 600px, which beats the theme's flattening rule
   `.bts-nav .wp-block-navigation__responsive-container { position: static }` (0,2,0).
   The responsive container then becomes the panel's containing block, so every mega
   panel shrinks to the width of the nav links (about 870px at 1440) and its columns
   wrap word by word. Re-flatten it so the panel spans the masthead again.
   ========================================================================== */
@media (min-width: 1100px) {
	.bts-nav.wp-block-navigation .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		position: static;
	}
}

/* ==========================================================================
   15. Phone and tablet header (below the 1100px desktop navigation)
   The header shows the logo, search and the menu button; "Contact us" lives in
   the menu as a coral button. !important: core's buttons layout sets display:flex.
   ========================================================================== */
@media (max-width: 1099px) {
	.bts-masthead__bar > .bts-header-cta.wp-block-buttons {
		display: none !important;
	}

	.bts-masthead__bar > .bts-logo {
		flex-shrink: 0;
	}

	.bts-masthead__bar > .bts-logo img {
		width: 120px !important;
		height: auto;
	}

	.bts-nav .is-menu-open .wp-block-navigation__container > .bts-nav-mobile-only {
		margin-top: 1.25rem;
		border-bottom: 0;
	}

	.bts-nav .is-menu-open .wp-block-navigation__container > .bts-nav-mobile-only > .wp-block-navigation-item__content {
		display: inline-flex;
		align-items: center;
		padding: 0.95rem 1.5rem;
		border-radius: 4px;
		background: var(--bts-coral);
		color: var(--bts-ink) !important;
		font-size: 1rem !important;
		font-weight: 600;
		letter-spacing: 0;
	}
}

@media (max-width: 600px) {
	.bts-masthead__bar > .bts-logo img {
		width: 112px !important;
	}
}

/* Desktop logo: a little smaller than the block's 164px setting. */
@media (min-width: 1100px) {
	.bts-masthead__bar > .bts-logo img {
		width: 136px !important;
		height: auto;
	}
}

/* ==========================================================================
   16. Home hero slider (.bts-slider of core/cover .bts-slide) and Clients
   ========================================================================== */

/* The short name each slide gives the Next card (read by theme.js), never shown in the slide. */
.bts-slider .bts-slide .bts-slide__label {
	display: none;
}

/* Slide copy: the service-page hero (kicker, headline, lede, two buttons); the Next card sits
   below it, so the copy keeps clear of the bottom edge. */
.bts-slide .bts-hero__copy {
	padding-bottom: clamp(3.75rem, 7vw, 5.75rem);
}

/* Stacking: every slide sits in the same grid cell; the active one is shown. */
.bts-js .bts-slider.is-enhanced {
	position: relative;
	display: grid;
	overflow: hidden;
	background: var(--wp--preset--color--night);
}

.bts-js .bts-slider.is-enhanced > .bts-slide {
	grid-area: 1 / 1;
	margin: 0 !important;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.9s var(--bts-ease), visibility 0s linear 0.9s;
}

.bts-js .bts-slider.is-enhanced > .bts-slide.is-active {
	opacity: 1;
	visibility: visible;
	transition: opacity 0.9s var(--bts-ease), visibility 0s;
	z-index: 1;
}

/* Copy rises in with each slide. */
@media (prefers-reduced-motion: no-preference) {
	.bts-js .bts-slider.is-enhanced > .bts-slide .bts-hero__copy > * {
		opacity: 0;
		transform: translateY(18px);
		transition: opacity 0.7s var(--bts-ease), transform 0.9s var(--bts-ease);
	}

	.bts-js .bts-slider.is-enhanced > .bts-slide.is-active .bts-hero__copy > * {
		opacity: 1;
		transform: none;
		transition-delay: 0.25s;
	}

	.bts-js .bts-slider.is-enhanced > .bts-slide.is-active .bts-hero__copy > * + * {
		transition-delay: 0.4s;
	}

	/* the photograph pushes in while its slide is showing */
	.bts-js .bts-slider .bts-slide .wp-block-cover__image-background {
		animation: none;
		transform: scale(1.06);
		transition: transform 9s linear;
	}

	.bts-js .bts-slider .bts-slide.is-active .wp-block-cover__image-background {
		transform: scale(1);
	}
}

/* -- Controls: Next card + progress bars, pause ----------------------------- */
.bts-slider__controls {
	position: absolute;
	z-index: 5;
	right: max(var(--bts-gutter), calc((100% - var(--bts-wide)) / 2));
	bottom: clamp(2.5rem, 6vw, 4.5rem);
	display: flex;
	align-items: flex-end;
	gap: 1rem;
}

.bts-slider__panel {
	width: 21rem;
	background: rgba(20, 18, 58, 0.55);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	border: 1px solid rgba(246, 244, 240, 0.14);
}

.bts-slider__next {
	display: flex;
	align-items: stretch;
	gap: 0.9rem;
	width: 100%;
	padding: 0;
	border: 0;
	background: none;
	color: #fff;
	text-align: left;
	cursor: pointer;
}

.bts-slider__thumb {
	flex: 0 0 6rem;
	height: 6rem;
	background: var(--wp--preset--color--neel) center / cover no-repeat;
}

.bts-slider__text {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 0.3rem;
	padding: 0.75rem 1rem 0.75rem 0;
	min-width: 0;
}

.bts-slider__label {
	font-size: 0.8125rem;
	font-weight: 600;
	color: rgba(246, 244, 240, 0.72);
}

.bts-slider__title {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: 0.9375rem;
	font-weight: 400;
	line-height: 1.35;
}

.bts-slider__next:is(:hover, :focus-visible) .bts-slider__title {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.bts-slider__bars {
	display: flex;
	gap: 0.4rem;
	padding: 0 1rem 0.85rem calc(6rem + 0.9rem);
	margin-top: -0.4rem;
}

.bts-slider__bar {
	flex: 1;
	height: 14px;
	padding: 6px 0;
	border: 0;
	background: none;
	cursor: pointer;
}

.bts-slider__bar > span {
	display: block;
	height: 2px;
	background: rgba(246, 244, 240, 0.3);
	background-image: linear-gradient(#fff, #fff);
	background-repeat: no-repeat;
	background-size: 0% 100%;
}

.bts-slider__bar.is-done > span {
	background-size: 100% 100%;
}

.bts-slider__bar.is-current > span {
	animation: bts-slide-progress var(--bts-slide-ms, 7000ms) linear forwards;
}

.bts-slider.is-paused .bts-slider__bar.is-current > span,
.bts-slider.is-held .bts-slider__bar.is-current > span {
	animation-play-state: paused;
}

.bts-slider.is-paused .bts-slider__bar.is-current > span {
	animation: none;
	background-size: 100% 100%;
}

@keyframes bts-slide-progress {
	from { background-size: 0% 100%; }
	to { background-size: 100% 100%; }
}

.bts-slider__pause {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 1px solid rgba(246, 244, 240, 0.5);
	border-radius: 50%;
	background: rgba(20, 18, 58, 0.55);
	color: #fff;
	cursor: pointer;
}

.bts-slider__pause svg {
	width: 14px;
	height: 14px;
	fill: currentColor;
}

.bts-slider__pause .bts-slider__icon-play,
.bts-slider.is-paused .bts-slider__pause .bts-slider__icon-pause {
	display: none;
}

.bts-slider.is-paused .bts-slider__pause .bts-slider__icon-play {
	display: block;
}

.bts-slider :is(.bts-slider__next, .bts-slider__bar, .bts-slider__pause):focus-visible {
	outline: 2px solid var(--bts-coral);
	outline-offset: 3px;
}

/* Phones and small tablets: progress bars and pause only, under the copy. */
@media (max-width: 781px) {
	.bts-slider__controls {
		left: var(--bts-gutter);
		right: var(--bts-gutter);
		bottom: 1.5rem;
		justify-content: space-between;
		align-items: center;
	}

	.bts-slider__panel {
		width: auto;
		flex: 1;
		max-width: 12rem;
		background: none;
		border: 0;
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}

	.bts-slider__next {
		display: none;
	}

	.bts-slider__bars {
		padding: 0;
		margin: 0;
	}

	.bts-slide .bts-hero__copy {
		padding-bottom: 5.5rem;
	}
}

/* -- Clients: dark section, heading row, then the logos alone (two rows of seven) ---
   Logos are trimmed and sized optically (migration/client_logos.py): each image block carries
   its own width so they read at one visual weight. No boxes: the logos sit on the ground. */
.bts-clients__head {
	margin-bottom: clamp(3rem, 7vw, 5.5rem) !important;
}

.bts-clients .bts-clients__title {
	margin: 0.4rem 0 0;
	font-size: clamp(2.25rem, 1.4rem + 2.6vw, 3.75rem);
	font-weight: 300;
	line-height: 1.08;
	letter-spacing: -0.025em;
	color: #fff;
}

.bts-clients .bts-clients__intro {
	margin: 0;
	max-width: 27rem;
	font-size: clamp(1.0625rem, 0.95rem + 0.35vw, 1.25rem);
	font-weight: 300;
	line-height: 1.55;
	color: rgba(246, 244, 240, 0.72);
}

.bts-clients .bts-clients__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.4rem 1.5rem;
	margin: 1.5rem 0 0 !important;
	font-size: 0.9375rem;
	color: rgba(246, 244, 240, 0.72);
}

.bts-clients .bts-clients__meta strong {
	margin-right: 0.35rem;
	font-size: 1.5rem;
	font-weight: 400;
	color: #fff;
}

.bts-clients .bts-clients__meta a,
.bts-clients .bts-clients__more a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: #fff;
	text-decoration: none;
}

.bts-clients .bts-clients__meta a::after,
.bts-clients .bts-clients__more a::after {
	content: "";
	width: 16px;
	height: 10px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Cpath d='M0 5h14.5M10.5 1l4 4-4 4'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Cpath d='M0 5h14.5M10.5 1l4 4-4 4'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 0.2s var(--bts-ease);
}

.bts-clients .bts-clients__meta a:hover::after,
.bts-clients .bts-clients__more a:hover::after {
	transform: translateX(4px);
}

.bts-clients .bts-clients__meta a:focus-visible,
.bts-clients .bts-clients__more a:focus-visible {
	outline: 2px solid var(--bts-coral);
	outline-offset: 4px;
}

/* The wall: 13 items (12 logos + "And more") in two rows of seven. */
.bts-clients .bts-clients__grid {
	display: grid !important;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	align-items: center;
	justify-items: center;
	row-gap: clamp(2.5rem, 5vw, 4rem);
	column-gap: clamp(1rem, 2vw, 2rem);
	padding-top: clamp(2.5rem, 5vw, 3.5rem);
	border-top: 1px solid rgba(246, 244, 240, 0.12);
}

.bts-clients .bts-clients__grid > * {
	margin: 0 !important;
}

.bts-clients .bts-clients__grid > .wp-block-image.bts-client {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 3.75rem;
}

.bts-clients .bts-clients__grid > .wp-block-image.bts-client img {
	max-width: 100%;
	height: auto !important;
	opacity: 0.78;
	transition: opacity 0.3s var(--bts-ease);
}

.bts-clients .bts-clients__grid > .wp-block-image.bts-client:hover img {
	opacity: 1;
}

.bts-clients .bts-clients__more {
	font-size: 0.9375rem;
}

/* 12 logos + "And more": "And more" takes the last two cells so the second row stays full. */
@media (min-width: 1024px) {
	.bts-clients .bts-clients__grid > .bts-clients__more {
		grid-column: span 2;
	}
}

/* Tablets: four a row (4, 4, 4, 2 centred). Phones: three a row, smaller marks. */
@media (max-width: 1023px) {
	.bts-clients .bts-clients__grid {
		display: flex !important;
		flex-wrap: wrap;
		justify-content: center;
		column-gap: 0;
	}

	.bts-clients .bts-clients__grid > * {
		flex: 0 0 25%;
		display: flex;
		justify-content: center;
	}
}

@media (max-width: 600px) {
	.bts-clients .bts-clients__grid {
		row-gap: 2.25rem;
	}

	.bts-clients .bts-clients__grid > * {
		flex-basis: 33.333%;
	}

	.bts-clients .bts-clients__grid > .wp-block-image.bts-client {
		min-height: 2.75rem;
	}

	.bts-clients .bts-clients__grid > .wp-block-image.bts-client img {
		width: auto !important;
		max-width: 78%;
		max-height: 2.4rem;
	}

	.bts-clients .bts-clients__title br {
		display: none;
	}
}

/* Rotation stopped by the visitor: the current bar shows full. */
.bts-slider.is-stopped .bts-slider__bar.is-current > span {
	animation: none;
	background-size: 100% 100%;
}

/* No utility bar above the masthead any more (client request). */
:root {
	--bts-utility-h: 0px;
}


/* ==========================================================================
   17. Home hero v2: cinematic video slides (append to the end of theme.css)
   Graded clips carry the mood, so the overlay is a neutral near-black only
   where text sits; one transparent header row; light headline; a flat Next
   card that hangs over the hero's bottom edge (client request); no pause
   button (client request). Pairs with the slider changes in theme.js.
   ========================================================================== */

.bts-slider {
	--bts-hero-h: min(76vh, 720px);          /* client: shorter hero, content peeks below */
	--bts-hero-ink: 5, 6, 10;                /* neutral near-black for scrims and the card */
	--bts-hero-fade: 1.2s;
	--bts-hero-curve: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Whole-pixel hero height: with a fractional height (76vh = 641.44px on an 844px phone) Chrome
   scores each slide video's first frame as "larger" than the slide-1 poster and moves LCP to it. */
@supports (height: round(down, 1.5px, 1px)) {
	.bts-slider {
		--bts-hero-h: round(down, min(76vh, 720px), 1px);
	}
}

/* -- Hero frame --------------------------------------------------------------- */
.bts-slider .wp-block-cover.bts-cover-hero.bts-slide {
	min-height: var(--bts-hero-h) !important;
	padding: calc(var(--bts-masthead-h) + 2rem) var(--bts-gutter) 0;   /* copy lines up with the logo */
}

.bts-slider .bts-slide > video.wp-block-cover__video-background {
	object-position: 50% 50%;
}

/* -- Stacking before theme.js runs (no layout shift): .bts-js is set by the inline head script,
      so the slides share one grid cell from the first paint; only the first shows until the
      slider is enhanced. Without JavaScript the slides still stack one under another. ------- */
.bts-js .bts-slider {
	display: grid;
	overflow: hidden;
}

.bts-js .bts-slider > .bts-slide {
	grid-area: 1 / 1;
	margin: 0 !important;
}

.bts-js .bts-slider:not(.is-enhanced) > .bts-slide:not(:first-child) {
	opacity: 0;
	visibility: hidden;
}

/* -- Cross-fade: the incoming slide fades in over the outgoing one (no dip to black) -- */
.bts-js .bts-slider.is-enhanced > .bts-slide {
	transition: opacity 0s linear var(--bts-hero-fade), visibility 0s linear var(--bts-hero-fade);
}

.bts-js .bts-slider.is-enhanced > .bts-slide.is-active {
	z-index: 2;
	transition: opacity var(--bts-hero-fade) var(--bts-hero-curve), visibility 0s;
}

@media (prefers-reduced-motion: no-preference) {
	.bts-js .bts-slider.is-enhanced > .bts-slide .bts-hero__copy > * {
		opacity: 0;
		transform: translateY(16px);
		transition: opacity 0.3s ease, transform 0s linear 0.3s;
	}

	.bts-js .bts-slider.is-enhanced > .bts-slide.is-active .bts-hero__copy > * {
		opacity: 1;
		transform: none;
		transition: opacity 0.8s var(--bts-ease) 0.5s, transform 0.8s var(--bts-ease) 0.5s;
	}

	.bts-js .bts-slider.is-enhanced > .bts-slide.is-active .bts-hero__copy > .bts-slide__actions {
		transition-delay: 0.62s;
	}
}

/* -- Controls ----------------------------------------------------------------- */
.bts-slider button {
	font: inherit;
}

.bts-slider .bts-slider__bar:focus-visible,
.bts-slider .bts-slider__next:focus-visible {
	outline: 2px solid var(--bts-coral);
	outline-offset: 3px;
}

/* Next card (782px and up): flat, 320 x 88, hanging over the hero's bottom edge. */
@media (min-width: 782px) {
	.bts-slider .bts-slider__controls {
		right: max(var(--bts-gutter), calc((100% - var(--bts-wide)) / 2));
		bottom: 0;
		transform: translateY(50%);
	}

	.bts-slider .bts-slider__panel {
		position: relative;
		width: 20rem;
		overflow: hidden;
		border: 0;
		border-radius: 0;
		background: var(--wp--preset--color--night);
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
		box-shadow: none;                    /* flat, as in the reference: no floating-toast shadow */
	}

	.bts-slider .bts-slider__next {
		gap: 0;
		height: 88px;
	}

	.bts-slider .bts-slider__thumb {
		flex: 0 0 88px;
		height: 88px;
		background-color: var(--wp--preset--color--neel);
		background-size: cover;
		background-position: center;
		transition: transform 0.4s var(--bts-hero-curve);
	}

	.bts-slider .bts-slider__next:is(:hover, :focus-visible) .bts-slider__thumb {
		transform: scale(1.04);
	}

	.bts-slider .bts-slider__text {
		justify-content: flex-start;
		gap: 2px;
		padding: 14px 16px 0;
		min-width: 0;
		flex: 1;
	}

	.bts-slider .bts-slider__label {
		font-size: 0.75rem;
		font-weight: 500;
		letter-spacing: 0.02em;
		color: rgba(255, 255, 255, 0.66);
	}

	.bts-slider .bts-slider__title {
		display: block;
		overflow: hidden;
		white-space: nowrap;
		text-overflow: ellipsis;
		font-size: 0.9375rem;
		font-weight: 400;
		line-height: 1.4;
		color: #fff;
	}

	.bts-slider .bts-slider__bars {
		position: absolute;
		left: calc(88px + 16px);
		right: 16px;
		bottom: 10px;
		gap: 6px;
		padding: 0;
		margin: 0;
	}
}

.bts-slider .bts-slider__bar > span {
	background-color: rgba(255, 255, 255, 0.3);
}

/* -- Header below 1100px: logo left; search and the menu button together on the right.
      (theme.css sets margin-left:auto on the search for this, but the nav's flex-grow
      swallowed the space and left the search icon next to the logo.) -------------- */
@media (max-width: 1099px) {
	.bts-masthead__bar > .bts-nav {
		flex: 0 0 auto;
	}

	.bts-masthead__bar.wp-block-group {
		gap: 0.75rem;
	}
}

/* -- Phones and small tablets -------------------------------------------------- */
@media (max-width: 781px) {
	.bts-slider .bts-slide .bts-hero__copy {
		padding-bottom: 4.5rem;
	}

	.bts-slider .bts-slider__controls {
		left: var(--bts-gutter);
		right: var(--bts-gutter);
		bottom: 14px;
	}

	.bts-slider .bts-slider__panel {
		flex: 0 0 auto;
		max-width: none;
	}

	.bts-slider .bts-slider__bars {
		gap: 8px;
	}

	.bts-slider .bts-slider__bar {
		flex: 0 0 24px;
		height: 28px;
		padding: 13px 0;
		transition: flex-basis 0.4s var(--bts-hero-curve);
	}

	.bts-slider .bts-slider__bar.is-current {
		flex-basis: 40px;
	}
}

/* Home slider: the Next card hangs over the hero's bottom edge, so the slider must not clip it
   (core/cover already clips each slide's video). */
@media (min-width: 782px) {
	.bts-js .bts-slider.is-enhanced {
		overflow: visible;
		position: relative;
		z-index: 2;
	}
}

/* ==========================================================================
   18. Home: Industries bento and "Who we are" with the petal image
   ========================================================================== */
.bts-bento {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	grid-auto-rows: clamp(15rem, 21vw, 19.5rem);
	gap: clamp(0.75rem, 1.2vw, 1rem) !important;
}

.bts-bento > .bts-bento__tile {
	position: relative;
	margin: 0 !important;
	min-height: 0 !important;
	border-radius: 16px;
	overflow: hidden;
}

.bts-bento > .bts-bento__tile--wide {
	grid-column: span 2;
}

/* Image tiles: label and title on a soft bottom shade; the whole tile is the link. */
.bts-bento .wp-block-cover.bts-bento__tile--image {
	padding: clamp(1.25rem, 2vw, 1.75rem);
	align-items: flex-end;
}

.bts-bento .wp-block-cover.bts-bento__tile--image > .wp-block-cover__background {
	opacity: 1 !important;
	background: linear-gradient(0deg, rgba(8, 7, 24, 0.78) 0%, rgba(8, 7, 24, 0.35) 38%, rgba(8, 7, 24, 0) 66%) !important;
}

.bts-bento .wp-block-cover.bts-bento__tile--image .wp-block-cover__image-background {
	transition: transform 0.8s var(--bts-ease);
}

.bts-bento .wp-block-cover.bts-bento__tile--image:hover .wp-block-cover__image-background {
	transform: scale(1.04);
}

.bts-bento .bts-bento__tile .wp-block-cover__inner-container {
	width: 100%;
}

.bts-bento .bts-bento__label {
	margin: 0 0 0.45rem !important;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--bts-coral);
}

.bts-bento .bts-bento__title {
	margin: 0 !important;
	font-size: clamp(1.25rem, 1rem + 0.7vw, 1.625rem);
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: -0.015em;
}

.bts-bento .bts-bento__title a {
	color: inherit;
	text-decoration: none;
}

.bts-bento .bts-bento__title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
}

.bts-bento .bts-bento__title a:focus-visible {
	outline: none;
}

.bts-bento .bts-bento__tile:has(a:focus-visible) {
	outline: 2px solid var(--bts-coral);
	outline-offset: 3px;
}

/* Closing text tile (night). */
.bts-bento > .bts-bento__tile--cta {
	display: flex;
	flex-direction: column;
	padding: clamp(1.5rem, 3vw, 2.75rem);
}

.bts-bento .bts-bento__text {
	margin: 0.9rem 0 0 !important;
	max-width: 36rem;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--wp--preset--color--slate);
}

.bts-bento .bts-bento__more {
	margin: 1.25rem 0 0 !important;
	font-size: 0.9375rem;
	font-weight: 600;
}

.bts-bento .bts-bento__more span {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--bts-coral-deep);
}

.bts-bento .bts-bento__more span::after {
	content: "";
	width: 16px;
	height: 10px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Cpath d='M0 5h14.5M10.5 1l4 4-4 4'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Cpath d='M0 5h14.5M10.5 1l4 4-4 4'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 0.2s var(--bts-ease);
}

.bts-bento .bts-bento__tile:hover .bts-bento__more span::after {
	transform: translateX(4px);
}

.bts-bento > .bts-bento__tile--cta {
	background: var(--wp--preset--color--night);
	color: #fff;
	justify-content: flex-end;
}

.bts-bento > .bts-bento__tile--cta .bts-bento__text {
	color: rgba(246, 244, 240, 0.7);
	font-size: 0.875rem;
}

.bts-bento > .bts-bento__tile--cta .bts-bento__more span {
	color: #fff;
}

/* Tablets: two columns; wide tiles take a full row. */
@media (max-width: 1023px) {
	.bts-bento {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		grid-auto-rows: 16rem;
		grid-auto-flow: row dense;           /* single tiles fill the gaps left by wide ones */
	}

}

/* Phones: one column; text tiles size to their text, image tiles are 13rem tall. */
@media (max-width: 600px) {
	.bts-bento {
		grid-template-columns: minmax(0, 1fr) !important;
		grid-auto-rows: auto;
	}

	.bts-bento > .bts-bento__tile--wide {
		grid-column: auto;
	}

	.bts-bento > .bts-bento__tile--image {
		min-height: 13rem !important;
	}

	.bts-bento > .bts-bento__tile--cta {
		grid-row: auto;
		padding: 1.75rem 1.5rem;
	}
}

/* -- Bento hover: the photo tile turns white and shows its description and link ------
   (pointer devices; touch shows the photo, label and title, and a tap opens the sector) */
.bts-bento .wp-block-cover.bts-bento__tile--image > .wp-block-cover__image-background {
	z-index: 0;
}

.bts-bento .wp-block-cover.bts-bento__tile--image > .wp-block-cover__background {
	z-index: 1;
}

.bts-bento .wp-block-cover.bts-bento__tile--image::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	background: #fff;
	opacity: 0;
	transition: opacity 0.4s var(--bts-ease);
	pointer-events: none;
}

.bts-bento .wp-block-cover.bts-bento__tile--image > .wp-block-cover__inner-container {
	position: relative;
	z-index: 3;
}

.bts-bento .bts-bento__tile--image .bts-bento__label,
.bts-bento .bts-bento__tile--image .bts-bento__title {
	transition: color 0.35s var(--bts-ease);
}

.bts-bento .bts-bento__tile--image .bts-bento__text,
.bts-bento .bts-bento__tile--image .bts-bento__more {
	display: none;
}

@media (hover: hover) and (min-width: 601px) {
	.bts-bento .bts-bento__tile--image .bts-bento__text,
	.bts-bento .bts-bento__tile--image .bts-bento__more {
		display: block;
		max-height: 0;
		overflow: hidden;
		opacity: 0;
		margin-top: 0 !important;
		transform: translateY(8px);
		transition: max-height 0.45s var(--bts-ease), opacity 0.3s var(--bts-ease), transform 0.45s var(--bts-ease),
			margin-top 0.45s var(--bts-ease);
	}

	.bts-bento .bts-bento__tile--image .bts-bento__text {
		max-width: 34rem;
		font-size: 0.875rem;
		line-height: 1.55;
		color: var(--wp--preset--color--slate);
	}

	.bts-bento .bts-bento__tile--image:is(:hover, :focus-within)::after {
		opacity: 1;
	}

	.bts-bento .bts-bento__tile--image:is(:hover, :focus-within) .bts-bento__label {
		color: var(--bts-coral-deep);
	}

	.bts-bento .bts-bento__tile--image:is(:hover, :focus-within) .bts-bento__title {
		color: var(--wp--preset--color--night);
	}

	.bts-bento .bts-bento__tile--image:is(:hover, :focus-within) .bts-bento__text {
		max-height: 8rem;
		opacity: 1;
		margin-top: 0.7rem !important;
		transform: none;
		transition-delay: 0.05s;
	}

	.bts-bento .bts-bento__tile--image:is(:hover, :focus-within) .bts-bento__more {
		max-height: 2rem;
		opacity: 1;
		margin-top: 1rem !important;
		transform: none;
		transition-delay: 0.1s;
	}

	/* the photo does not zoom behind the white panel */
	.bts-bento .wp-block-cover.bts-bento__tile--image:hover .wp-block-cover__image-background {
		transform: none;
	}

	.bts-bento .bts-bento__tile--image:is(:hover, :focus-within) {
		box-shadow: 0 18px 40px rgba(20, 18, 58, 0.1);
	}
}

/* -- Who we are: the petal image beside the statement --------------------------- */
.bts-who .bts-who__petals {
	margin: 0;
}

.bts-who .bts-who__petals img {
	display: block;
	width: 100%;
	max-width: 30rem;
	height: auto;
	margin-inline: auto;
}

.bts-who .bts-stat-grid {
	margin-top: clamp(1.75rem, 3vw, 2.5rem) !important;
}

.bts-who .wp-block-buttons {
	margin-top: clamp(1.5rem, 3vw, 2.25rem) !important;
}

@media (max-width: 781px) {
	.bts-who .bts-who__petals img {
		max-width: 20rem;
	}
}

/* ==========================================================================
   19. About page (v3): "We check the evidence before anyone else does"
   ========================================================================== */

/* -- Hero credit: a small caption plate bottom right; under the buttons on phones -- */
.bts-cover-hero .bts-hero__inner {
	position: relative;
}

.bts-cover-hero .bts-hero__credit {
	position: absolute;
	right: 0;
	bottom: clamp(2.5rem, 6vw, 4.5rem);
	max-width: 30ch;
	margin: 0 !important;
	padding: 0.35rem 0.6rem;
	border-radius: 4px;
	background: rgba(20, 18, 58, 0.6);
	font-size: 0.75rem;
	line-height: 1.4;
	color: rgba(255, 255, 255, 0.8);
}

@media (max-width: 781px) {
	.bts-cover-hero .bts-hero__credit {
		position: static;
		margin: 1.25rem 0 0 !important;
		padding: 0 0 1.5rem;
		background: none;
	}
}

/* -- Why: the thesis in large light type, then the body and an at-a-glance ledger -- */
.bts-about__thesis {
	max-width: 22em;
	margin: 0 !important;
	font-weight: 300;
	letter-spacing: -0.02em;
}

.bts-about__why {
	margin-top: var(--wp--preset--spacing--60) !important;
}

.bts-about__body {
	max-width: 34rem;
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.65;
	color: var(--wp--preset--color--slate);
}

.bts-about__minor {
	margin: 0 0 1rem !important;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	letter-spacing: 0;
	color: var(--wp--preset--color--slate);
}

.bts-dark .bts-about__minor {
	color: rgba(246, 244, 240, 0.72);
}

.bts-glance {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--bts-rule);
	font-size: 0.9375rem;
}

.bts-glance li {
	display: grid;
	grid-template-columns: 10rem minmax(0, 1fr);
	gap: 1rem;
	margin: 0;
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--bts-rule);
}

.bts-glance strong {
	font-weight: 400;
	font-size: var(--wp--preset--font-size--small);
	color: var(--bts-muted);
}

.bts-glance a {
	color: inherit;
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: 4px;
	transition: text-decoration-color 0.2s var(--bts-ease);
}

.bts-glance a:is(:hover, :focus-visible) {
	text-decoration-color: var(--bts-coral-deep);
}

@media (max-width: 600px) {
	.bts-glance li {
		grid-template-columns: minmax(0, 1fr);
		gap: 0.15rem;
	}
}

/* -- How we work: a hairline above, the rule in large type, the method as a ledger -- */
.bts-about__how {
	padding-top: var(--wp--preset--spacing--70);
	border-top: 1px solid var(--wp--preset--color--line);
}

.bts-about__rule {
	max-width: 22ch;
	margin-top: 1.25rem !important;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 400;
	line-height: 1.35;
	color: var(--wp--preset--color--night);
}

.bts-about__how .wp-block-list.is-style-ledger li strong {
	font-weight: 600;
	color: var(--wp--preset--color--night);
}

.bts-about__how .wp-block-details {
	margin-top: var(--wp--preset--spacing--50) !important;
}

.bts-about__trail {
	margin-top: var(--wp--preset--spacing--60) !important;
}

/* -- Results (night): one voice, one number, the clients ---------------------------- */
.bts-about__proof {
	margin-top: var(--wp--preset--spacing--60) !important;
}

.bts-about__quote.wp-block-quote {
	margin: 0;
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 300;
	line-height: 1.4;
	color: #fff;
}

.bts-about__quote cite {
	color: rgba(246, 244, 240, 0.72);
}

.bts-about__results .is-style-stat {
	color: #fff;
}

.bts-about__clients {
	margin-top: var(--wp--preset--spacing--80) !important;
	padding-top: var(--wp--preset--spacing--60);
	border-top: 1px solid rgba(246, 244, 240, 0.16);
}

.bts-about__label {
	margin: 0 0 1.75rem !important;
	font-size: var(--wp--preset--font-size--small);
}

.bts-logo-row {
	display: grid !important;
	grid-template-columns: repeat(8, minmax(0, 1fr));
	align-items: center;
	justify-items: center;
	gap: 2rem 1.5rem;
}

.bts-logo-row > .wp-block-image {
	margin: 0 !important;
}

.bts-logo-row > .wp-block-image img {
	max-width: 100%;
	height: auto !important;
	opacity: 0.78;
	transition: opacity 0.3s var(--bts-ease);
}

.bts-logo-row > .wp-block-image a:is(:hover, :focus-visible) img {
	opacity: 1;
}

.bts-about__names {
	max-width: 46rem;
	margin: 2.25rem 0 1.25rem !important;
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.6;
	color: rgba(246, 244, 240, 0.72);
}

.bts-about__names a {
	color: #fff;
	text-decoration: underline;
	text-decoration-color: rgba(246, 244, 240, 0.3);
	text-underline-offset: 4px;
}

.bts-about__names a:is(:hover, :focus-visible) {
	text-decoration-color: var(--bts-coral);
}

@media (max-width: 1023px) {
	.bts-logo-row {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.bts-logo-row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2rem 1rem;
	}
}

/* -- People: one portrait treatment (neel-print duotone), advisors on a smaller tier -- */
.wp-block-image.is-style-portrait img {
	filter: none;
	transition: transform 0.9s var(--bts-ease);
}

.wp-block-image.is-style-portrait:hover img,
.bts-person:hover .wp-block-image.is-style-portrait img {
	filter: none;
	transform: scale(1.03);
}

/* the duotone filter class core adds at render must win over the rules above */
.wp-block-image.is-style-portrait[class*="wp-duotone-"] img,
.bts-person:hover .wp-block-image.is-style-portrait[class*="wp-duotone-"] img {
	filter: var(--wp--preset--duotone--neel-print);
}

.bts-about__teamhead h2 {
	max-width: 18em;
}

.bts-team--founders {
	margin-top: var(--wp--preset--spacing--60) !important;
	gap: 2.5rem 1.5rem !important;
}

.bts-about__advisors {
	margin-top: var(--wp--preset--spacing--80) !important;
	padding-top: var(--wp--preset--spacing--60);
	border-top: 1px solid var(--wp--preset--color--line);
}

/* explicit columns: a custom gap would break core's minimum-width grid maths */
.bts-advisors {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 1.75rem 2rem !important;
}

@media (max-width: 1023px) {
	.bts-advisors {
		grid-template-columns: minmax(0, 1fr) !important;
	}
}

.bts-advisor {
	gap: 1rem !important;
}

.bts-advisor > .wp-block-image.is-style-avatar {
	flex: 0 0 auto;
	margin: 0;
}

.bts-advisor > .wp-block-image.is-style-avatar img {
	width: 88px;
	height: 88px;
	border-radius: 50%;
	object-fit: cover;
}

.bts-advisor__name {
	margin: 0 0 0.3rem !important;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0;
}

.bts-advisor__text p {
	margin: 0 0 0.3rem !important;
	font-size: 0.9375rem;
	line-height: 1.5;
}

.bts-advisor__text .bts-muted {
	font-size: var(--wp--preset--font-size--small);
}

@media (max-width: 600px) {
	.bts-team--founders {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		column-gap: 1rem !important;
	}

	.bts-team--founders h3 {
		font-size: var(--wp--preset--font-size--medium);
	}
}

/* -- Places: offices as type, then the moments bento -------------------------------- */
.bts-about__city {
	margin: 0 0 0.5rem !important;
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 300;
}

.bts-about__moments {
	margin-top: var(--wp--preset--spacing--80) !important;
}

.bts-about__momentshead {
	margin-bottom: var(--wp--preset--spacing--50) !important;
}

.bts-about__subhead {
	margin: 0 !important;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 400;
	letter-spacing: -0.01em;
	color: var(--wp--preset--color--night);
}

@media (min-width: 1024px) {
	.bts-bento.bts-bento--moments {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

.bts-bento--moments .bts-bento__label {
	text-transform: none;
	letter-spacing: 0;
	font-size: 0.8125rem;
}

/* hover deepens the night shade (the photo stays visible) instead of the white wash */
.bts-bento--moments .wp-block-cover.bts-bento__tile--image::after {
	background: linear-gradient(0deg, rgba(20, 18, 58, 0.9) 0%, rgba(20, 18, 58, 0.6) 45%, rgba(20, 18, 58, 0) 80%);
}

@media (hover: hover) and (min-width: 601px) {
	.bts-bento--moments .bts-bento__tile--image:is(:hover, :focus-within) .bts-bento__label {
		color: var(--bts-coral);
	}

	.bts-bento--moments .bts-bento__tile--image:is(:hover, :focus-within) .bts-bento__title {
		color: #fff;
	}

	.bts-bento--moments .bts-bento__tile--image .bts-bento__text {
		color: rgba(246, 244, 240, 0.82);
	}

	.bts-bento--moments .bts-bento__tile--image .bts-bento__more span {
		color: #fff;
	}

	.bts-bento--moments .wp-block-cover.bts-bento__tile--image:hover .wp-block-cover__image-background {
		transform: scale(1.04);
	}
}

@media (hover: none), (max-width: 600px) {
	.bts-bento--moments .bts-bento__tile--image .bts-bento__text {
		display: block;
		margin-top: 0.4rem !important;
		font-size: 0.875rem;
		color: rgba(246, 244, 240, 0.82);
	}
}

/* -- Close: one coral band; careers as a single line ---------------------------------- */
.bts-about__closefoot {
	margin-top: var(--wp--preset--spacing--60) !important;
	padding-top: 1.25rem;
	border-top: 1px solid rgba(20, 18, 58, 0.2);
}

.bts-about__careers {
	margin: 0 !important;
	font-size: var(--wp--preset--font-size--small);
}

.bts-about__careers a {
	color: inherit;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 4px;
}

/* -- About review fixes ------------------------------------------------------------ */

/* Hero photo: mute the LED wall so the headline and header lead; Aparna stays lit. */
.bts-about-hero > .wp-block-cover__image-background {
	filter: saturate(0.45);
}

.bts-about-hero > .wp-block-cover__background.has-scrim-left-gradient-background {
	background:
		linear-gradient(180deg, rgba(20, 18, 58, 0.92) 0%, rgba(20, 18, 58, 0.7) 30%, rgba(20, 18, 58, 0) 50%),
		linear-gradient(90deg, rgba(20, 18, 58, 0.9) 0%, rgba(20, 18, 58, 0.6) 48%, rgba(20, 18, 58, 0.12) 100%) !important;
}

@media (min-width: 782px) {
	.bts-about-hero > .wp-block-cover__background.has-scrim-left-gradient-background {
		background:
			linear-gradient(180deg, rgba(20, 18, 58, 0.92) 0%, rgba(20, 18, 58, 0.7) 30%, rgba(20, 18, 58, 0) 50%),
			radial-gradient(ellipse 26% 24% at 48% 36%, rgba(20, 18, 58, 0.6) 0%, rgba(20, 18, 58, 0.45) 60%, rgba(20, 18, 58, 0) 100%),
			linear-gradient(90deg, rgba(20, 18, 58, 0.9) 0%, rgba(20, 18, 58, 0.6) 48%, rgba(20, 18, 58, 0.12) 100%) !important;
	}
}

@media (max-width: 781px) {
	.bts-about-hero > .wp-block-cover__background.has-scrim-left-gradient-background {
		background: linear-gradient(180deg, rgba(20, 18, 58, 0.9) 0%, rgba(20, 18, 58, 0.78) 55%, rgba(20, 18, 58, 0.62) 100%) !important;
	}
}

/* Page heroes (about, services, listings) sit on the page gutter, like the logo and the sections below. */
.wp-block-cover.bts-cover-hero--medium {
	padding-left: var(--wp--style--root--padding-left);
	padding-right: var(--wp--style--root--padding-right);
}

/* Kickers on photo heroes: a lighter coral that passes AA as small text on the indigo wash. */
.wp-block-cover.bts-cover-hero .bts-kicker {
	color: #f4846b;
}

/* Focus rings legible on photo and coral grounds. */
.wp-block-cover.bts-cover-hero :focus-visible {
	outline-color: #fff;
}

header.is-overlay:not(.is-scrolled) :is(.custom-logo-link, .wp-block-search__button):focus-visible {
	outline-color: #fff;
}

.has-coral-background-color :focus-visible {
	outline-color: var(--bts-ink);
}

.bts-bento .bts-bento__tile:has(a:focus-visible) {
	outline-color: var(--bts-ink);
}

/* Moments: readable labels and titles over the photos at rest, on hover and on phones. */
.bts-bento--moments .bts-bento__label {
	color: rgba(246, 244, 240, 0.8);
}

.bts-bento.bts-bento--moments .wp-block-cover.bts-bento__tile--image > .wp-block-cover__background {
	background: linear-gradient(0deg, rgba(14, 12, 40, 0.92) 0%, rgba(14, 12, 40, 0.72) 38%, rgba(14, 12, 40, 0) 72%) !important;
}

.bts-bento--moments .wp-block-cover.bts-bento__tile--image::after {
	background: linear-gradient(0deg, rgba(20, 18, 58, 0.92) 0%, rgba(20, 18, 58, 0.8) 55%, rgba(20, 18, 58, 0.3) 100%);
}

@media (hover: hover) and (min-width: 601px) {
	.bts-bento--moments .bts-bento__tile--image:is(:hover, :focus-within) .bts-bento__label {
		color: rgba(246, 244, 240, 0.8);
	}
}

@media (max-width: 600px) {
	.bts-bento.bts-bento--moments > .bts-bento__tile--image {
		min-height: 16rem !important;
	}

	.bts-bento.bts-bento--moments .wp-block-cover.bts-bento__tile--image > .wp-block-cover__background {
		background: linear-gradient(0deg, rgba(14, 12, 40, 0.94) 0%, rgba(14, 12, 40, 0.84) 58%, rgba(14, 12, 40, 0.1) 92%) !important;
	}
}

/* Advisors sit on the founders' 4-column grid: the label in column 1, advisors in 2-4. */
@media (min-width: 1024px) {
	.bts-about__advisors > .wp-block-columns {
		display: grid !important;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		column-gap: 1.5rem !important;
	}

	.bts-about__advisors > .wp-block-columns > .wp-block-column:last-child {
		grid-column: 2 / span 3;
	}

	.bts-advisors {
		column-gap: 1.5rem !important;
	}
}

/* Between 1024 and 1279 an advisor column is narrow: avatar above the text. */
@media (min-width: 1024px) and (max-width: 1279px) {
	.bts-advisor {
		flex-direction: column;
		flex-wrap: wrap !important;
	}
}

/* Duotone avatars: draw the ring on the figure, outside the filter. */
.wp-block-image.is-style-avatar[class*="wp-duotone-"] {
	border-radius: 50%;
	box-shadow: 0 0 0 3px #fff, 0 0 0 4px var(--wp--preset--color--line);
}

.wp-block-image.is-style-avatar[class*="wp-duotone-"] img {
	box-shadow: none;
}

/* Founder names stay on one line on tablets. */
@media (max-width: 1023px) {
	.bts-team--founders h3 {
		font-size: var(--wp--preset--font-size--medium);
	}
}

/* Close band on phones: buttons start on the left, under the text. */
@media (max-width: 781px) {
	.bts-cta-band .wp-block-buttons.is-content-justification-right {
		justify-content: flex-start !important;
	}
}

/* Text links on phones: a 44px tap height. */
@media (max-width: 781px) {
	.wp-block-button.is-style-arrow .wp-block-button__link {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}
}



/* ==========================================================================
   20. Legal pages: privacy, terms, cookies, disclaimer, accessibility (migration/legal_blocks.py)
   ========================================================================== */

/* -- Title band: night, under the overlay header ---------------------------------- */
.bts-legal-hero {
	padding-top: calc(var(--bts-header-total) + var(--wp--preset--spacing--70)) !important;
}

.bts-legal-hero .wp-block-breadcrumbs {
	margin-bottom: 1.25rem;
}

.bts-legal__title {
	max-width: 18em;
	margin: 0 !important;
	color: #fff;
}

.bts-legal__lede {
	max-width: 40rem;
	margin-top: 1rem !important;
	color: var(--wp--preset--color--lede);
}

.bts-legal__updated {
	margin-top: 1.75rem !important;
	font-size: var(--wp--preset--font-size--small);
	color: rgba(246, 244, 240, 0.72);
}

/* -- Body: contents on the left, the text on a readable measure -------------------- */
.bts-legal .bts-legal__body {
	max-width: 46rem;
	font-size: 1.0625rem;
	line-height: 1.7;
}

.bts-legal .bts-legal__body > * + * {
	margin-top: 1.1rem;
}

.bts-legal__h2 {
	margin-top: var(--wp--preset--spacing--70) !important;
	padding-top: var(--wp--preset--spacing--50);
	border-top: 1px solid var(--wp--preset--color--line);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 400;
	letter-spacing: -0.01em;
	scroll-margin-top: calc(var(--bts-header-total) + 1.5rem);
}

.bts-legal__h3 {
	margin-top: 1.75rem !important;
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	letter-spacing: 0;
}

.bts-legal .bts-legal__body a {
	color: var(--wp--preset--color--coral-deep);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.bts-legal .bts-legal__body ul,
.bts-legal .bts-legal__body ol {
	padding-left: 1.25rem;
}

.bts-legal .bts-legal__body li + li {
	margin-top: 0.45rem;
}

/* At a glance */
.bts-legal__glance {
	padding: clamp(1.25rem, 3vw, 2rem) !important;
	border-radius: 4px;
}

.bts-legal__glance-title {
	margin: 0 0 0.75rem !important;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 400;
}

.bts-legal__glance ul {
	margin: 0;
}

/* Tables: horizontal scroll on narrow screens instead of squeezed cells */
.bts-legal__table {
	overflow-x: auto;
	margin-block: 1.5rem !important;
}

.bts-legal__table table {
	min-width: 36rem;
	border-collapse: collapse;
	font-size: 0.9375rem;
	line-height: 1.55;
}

.bts-legal__table :is(th, td) {
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
	padding: 0.75rem 0.9rem 0.75rem 0;
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
	text-align: left;
	vertical-align: top;
}

.bts-legal__table td:first-child {
	white-space: nowrap;
}

.bts-legal .bts-legal__table thead th {
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0;
	text-transform: none;
	font-weight: 600;
	color: var(--wp--preset--color--night);
	border-bottom: 1px solid var(--wp--preset--color--night);
}

/* Contents list */
.bts-legal__toc {
	position: sticky;
	top: calc(var(--bts-header-total) + 2rem);
}

.bts-legal__toclabel {
	margin: 0 0 0.75rem !important;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	color: var(--wp--preset--color--night);
}

.bts-legal__toclist {
	margin: 0;
	padding: 0;
	list-style: none;
	border-left: 1px solid var(--wp--preset--color--line);
	font-size: 0.875rem;
	line-height: 1.45;
}

.bts-legal__toclist li {
	margin: 0;
}

.bts-legal__toclist a {
	display: block;
	margin-left: -1px;
	padding: 0.4rem 0 0.4rem 1rem;
	border-left: 2px solid transparent;
	color: var(--wp--preset--color--slate);
	text-decoration: none;
}

.bts-legal__toclist a:is(:hover, :focus-visible) {
	border-left-color: var(--wp--preset--color--coral);
	color: var(--wp--preset--color--night);
}

/* Related legal pages */
.bts-legal__more {
	margin-top: var(--wp--preset--spacing--80) !important;
	padding-top: var(--wp--preset--spacing--50);
	border-top: 1px solid var(--wp--preset--color--line);
}

.bts-legal .bts-legal__related {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.9375rem;
}

.bts-legal .bts-legal__related li + li {
	margin-top: 0;
}

@media (max-width: 781px) {
	.bts-legal__toc {
		position: static;
		padding: 1rem 1.25rem !important;
		border: 1px solid var(--wp--preset--color--line);
		border-radius: 4px;
	}

	.bts-legal__toclist {
		border-left: 0;
	}

	.bts-legal__toclist a {
		min-height: 2.25rem;
		display: flex;
		align-items: center;
		padding: 0.2rem 0;
		border-left: 0;
	}

	.bts-legal .bts-legal__body {
		font-size: 1rem;
	}

	.bts-legal__table table {
		min-width: 46rem;
	}
}

/* -- Footer: company line and legal links; Cookie settings only where the CMP runs -- */
.bts-footer__fine a {
	color: rgba(255, 255, 255, 0.72);
	text-decoration: none;
}

.bts-footer__fine a:is(:hover, :focus-visible) {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.bts-cookie-settings {
	display: none;
}

.has-cmp .bts-cookie-settings {
	display: inline;
}

@media (max-width: 781px) {
	.bts-footer__fine a {
		display: inline-block;
		padding-block: 0.6rem;
	}
}

/* end 20. Legal pages */

/* ==========================================================================
   21. Newsroom (/highlights/): lead highlight, ledger, event notes (migration/highlights_blocks.py)
   ========================================================================== */

/* -- Muted photo hero (shared modifier): calmer image under the night wash ------------- */
.bts-cover-hero--muted > .wp-block-cover__image-background {
	filter: saturate(0.45);
}

.bts-cover-hero--muted > .wp-block-cover__background.has-scrim-left-gradient-background {
	background:
		linear-gradient(180deg, rgba(20, 18, 58, 0.92) 0%, rgba(20, 18, 58, 0.7) 30%, rgba(20, 18, 58, 0) 50%),
		linear-gradient(90deg, rgba(20, 18, 58, 0.9) 0%, rgba(20, 18, 58, 0.6) 48%, rgba(20, 18, 58, 0.12) 100%) !important;
}

@media (max-width: 781px) {
	.bts-cover-hero--muted > .wp-block-cover__background.has-scrim-left-gradient-background {
		background: linear-gradient(180deg, rgba(20, 18, 58, 0.9) 0%, rgba(20, 18, 58, 0.78) 55%, rgba(20, 18, 58, 0.62) 100%) !important;
	}
}

/* -- Shared: story text ---------------------------------------------------------------- */
.bts-dateline {
	margin: 0 !important;
	font-size: 0.875rem;
	line-height: 1.5;
	color: var(--wp--preset--color--slate);
}

.bts-dateline span + span::before {
	content: "\00B7";
	margin-inline: 0.5em;
	opacity: 0.7;
}

.bts-dateline__place {
	font-weight: 600;
	color: var(--wp--preset--color--night);
}

.bts-news .wp-block-post-excerpt p,
.bts-news .wp-block-post-excerpt__excerpt {
	margin: 0;
}

.bts-part {
	display: grid;
	grid-template-columns: 6.5rem minmax(0, 1fr);
	gap: 0.25rem 1rem;
	margin-top: 1.5rem !important;
	padding-top: 0.9rem;
	border-top: 1px solid var(--bts-rule);
}

.bts-part > p {
	margin: 0 !important;
}

.bts-part__label {
	font-size: 0.875rem;
	color: var(--wp--preset--color--slate);
}

.bts-part__value {
	font-size: 0.9375rem;
	line-height: 1.55;
	color: var(--wp--preset--color--night);
}

.bts-part:not(:has(.bts-field:not(:empty))) {
	display: none;
}

.bts-news .wp-block-buttons:not(:has(.wp-block-button)) {
	display: none;
}

/* -- Shared: highlight photos (core/gallery, Enlarge on click) ------------------------- */
.bts-news .bts-gallery.wp-block-gallery.has-nested-images {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 12px;
	margin: 0 !important;
}

.bts-news .bts-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image:not(#individual-image) {
	display: block;
	position: relative;
	width: auto !important;
	max-width: none;
	margin: 0 !important;
	overflow: hidden;
	border-radius: 10px;
	grid-column: span 3;
	aspect-ratio: 1;
}

.bts-news .bts-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image:not(#individual-image) img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover;
	transition: filter 0.4s var(--bts-ease);
}

.bts-news .bts-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image:not(#individual-image)::before {
	content: none !important;
}

/* Hover reveal: a night shade and the caption, only where a caption exists */
.bts-news .bts-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image:not(#individual-image) figcaption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	margin: 0;
	padding: 2.5rem 1rem 0.9rem;
	max-height: none;
	overflow: visible;
	background: none;
	text-shadow: none;
	text-align: left;
	font-size: 0.8125rem;
	line-height: 1.4;
	color: #fff;
	pointer-events: none;
}

.bts-news .bts-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image:not(#individual-image):has(figcaption)::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(0deg, rgba(20, 18, 58, 0.85) 0%, rgba(20, 18, 58, 0) 62%);
	pointer-events: none;
}

@media (min-width: 782px) and (hover: hover) {
	.bts-news .bts-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image:not(#individual-image) figcaption,
	.bts-news .bts-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image:not(#individual-image)::after {
		opacity: 0;
		transition: opacity 0.3s var(--bts-ease), transform 0.3s var(--bts-ease);
	}

	.bts-news .bts-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image:not(#individual-image) figcaption {
		transform: translateY(6px);
	}

	.bts-news .bts-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image:not(#individual-image):is(:hover, :focus-within) figcaption,
	.bts-news .bts-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image:not(#individual-image):is(:hover, :focus-within)::after {
		opacity: 1;
		transform: none;
	}

	.bts-news .bts-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image:not(#individual-image):is(:hover, :focus-within) img {
		filter: brightness(0.94);
	}
}

.bts-news .bts-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image:not(#individual-image):has(.lightbox-trigger:focus-visible) {
	outline: 2px solid var(--wp--preset--color--coral-deep);
	outline-offset: 3px;
}

/* Lightbox on the night ground */
.wp-lightbox-overlay .scrim {
	background-color: #14123a !important;
	opacity: 0.96 !important;
}

.wp-lightbox-overlay :is(.wp-lightbox-close-button, .wp-lightbox-navigation-button-prev, .wp-lightbox-navigation-button-next) {
	color: #f6f4f0 !important;
	fill: #f6f4f0 !important;
}

.wp-lightbox-overlay :is(.wp-lightbox-close-button, .wp-lightbox-navigation-button-prev, .wp-lightbox-navigation-button-next):focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
}

/* -- Lead: photos left (7), text right (5) -------------------------------------------- */
.bts-news-lead .wp-block-post-template,
.bts-news-list .wp-block-post-template {
	margin: 0;
	padding: 0;
	list-style: none;
}

.bts-lead {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	column-gap: clamp(2rem, 5vw, 5rem);
	align-items: start;
}

.bts-lead > *,
.bts-entry > * {
	min-width: 0;
	margin: 0 !important;
}

.bts-lead__photos,
.bts-lead > .bts-lead__fallback {
	grid-column: 1;
	grid-row: 1;
}

.bts-lead__text {
	grid-column: 2;
	grid-row: 1;
}

.bts-lead:has(.wp-block-gallery) > .bts-lead__fallback,
.bts-entry:has(.wp-block-gallery) > .bts-entry__fallback {
	display: none;
}

.bts-lead__fallback img {
	border-radius: 16px;
}

.bts-lead__photos > *,
.bts-entry__photos > * {
	margin-block: 0 !important;
}

.bts-lead__title {
	margin: 0.75rem 0 0 !important;
	max-width: 16em;
	font-size: clamp(1.875rem, 1.35rem + 1.5vw, 2.75rem);
	font-weight: 300;
	line-height: 1.12;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--night);
}

.bts-lead__line {
	margin-top: 1.1rem !important;
	max-width: 36rem;
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--wp--preset--color--slate);
}

.bts-lead__more {
	margin-top: 1.5rem !important;
}

@media (min-width: 782px) {
	.bts-lead .bts-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image:not(#individual-image) {
		grid-column: span 4;
		aspect-ratio: 1;
	}

	.bts-lead .bts-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image:not(#individual-image):first-child {
		grid-column: 1 / -1;
		aspect-ratio: 3 / 2;
		border-radius: 16px;
	}

	.bts-lead .bts-gallery.wp-block-gallery.has-nested-images:has(> figure:nth-child(2):last-child) > figure.wp-block-image:not(#individual-image):nth-child(2) {
		grid-column: 1 / -1;
		aspect-ratio: 3 / 1;
	}

	.bts-lead .bts-gallery.wp-block-gallery.has-nested-images:has(> figure:nth-child(3):last-child) > figure.wp-block-image:not(#individual-image):not(:first-child) {
		grid-column: span 6;
		aspect-ratio: 4 / 3;
	}

	.bts-lead .bts-gallery.wp-block-gallery.has-nested-images:has(> figure:nth-child(5):last-child) > figure.wp-block-image:not(#individual-image):not(:first-child) {
		grid-column: span 3;
	}

	.bts-lead .bts-gallery.wp-block-gallery.has-nested-images:has(> figure:nth-child(6)) > figure.wp-block-image:not(#individual-image):not(:first-child) {
		grid-column: span 4;
		aspect-ratio: 4 / 3;
	}
}

@media (min-width: 1024px) {
	.bts-lead__text,
	.bts-entry__text {
		position: sticky;
		top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--bts-masthead-h) + 2rem);
	}
}

@media (min-width: 782px) and (max-width: 1023px) {
	.bts-lead {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 1.75rem;
	}

	.bts-lead__text {
		grid-column: 1;
		grid-row: 2;
	}
}

/* -- More highlights: hairline ledger, text left (5), photo bento right (7) ----------- */
.bts-news-more__title {
	margin: 0 0 var(--wp--preset--spacing--50) !important;
	font-weight: 300;
}

.bts-news-list .wp-block-post-template > li {
	border-top: 1px solid var(--bts-rule);
}

.bts-news-list .wp-block-post-template > li:last-child {
	border-bottom: 1px solid var(--bts-rule);
}

.bts-news-more:not(:has(.wp-block-post)) {
	display: none;
}

.bts-entry {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	column-gap: clamp(2rem, 5vw, 5rem);
	align-items: start;
	padding-block: clamp(2rem, 4vw, 3.5rem);
}

.bts-entry__text {
	grid-column: 1;
	grid-row: 1;
}

.bts-entry__photos,
.bts-entry > .bts-entry__fallback {
	grid-column: 2;
	grid-row: 1;
}

.bts-entry__title {
	margin: 0.6rem 0 0 !important;
	max-width: 18em;
	font-size: clamp(1.5rem, 1.2rem + 0.9vw, 2rem);
	font-weight: 300;
	line-height: 1.18;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--night);
}

.bts-entry__line {
	margin-top: 0.9rem !important;
	max-width: 34rem;
	font-size: 1rem;
	line-height: 1.65;
	color: var(--wp--preset--color--slate);
}

.bts-entry__more {
	margin-top: 1.25rem !important;
}

@media (min-width: 782px) {
	.bts-entry .bts-gallery.wp-block-gallery.has-nested-images {
		grid-auto-flow: row dense;
	}

	.bts-entry .bts-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image:not(#individual-image) {
		grid-column: span 3;
		aspect-ratio: 1;
	}

	.bts-entry .bts-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image:not(#individual-image):first-child {
		grid-column: span 6;
		grid-row: span 2;
		aspect-ratio: auto;
		border-radius: 14px;
	}

	.bts-entry .bts-gallery.wp-block-gallery.has-nested-images:has(> figure:only-child) > figure.wp-block-image:not(#individual-image) {
		grid-column: 1 / -1;
		grid-row: auto;
		aspect-ratio: 2 / 1;
	}

	.bts-entry .bts-gallery.wp-block-gallery.has-nested-images:has(> figure:nth-child(2):last-child) > figure.wp-block-image:not(#individual-image) {
		grid-column: span 6;
		grid-row: auto;
		aspect-ratio: 1;
	}

	.bts-entry .bts-gallery.wp-block-gallery.has-nested-images:has(> figure:nth-child(3):last-child) > figure.wp-block-image:not(#individual-image):not(:first-child) {
		grid-column: span 6;
		aspect-ratio: 2 / 1;
	}

	.bts-entry .bts-gallery.wp-block-gallery.has-nested-images:has(> figure:nth-child(4):last-child) > figure.wp-block-image:not(#individual-image):nth-child(2) {
		grid-column: span 6;
		aspect-ratio: 2 / 1;
	}
}

@media (min-width: 782px) and (max-width: 1023px) {
	.bts-entry {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 1.5rem;
	}

	.bts-entry__photos,
	.bts-entry > .bts-entry__fallback {
		grid-column: 1;
		grid-row: 2;
	}
}

/* -- Phones: photos become a swipeable strip at their natural shapes ------------------- */
@media (max-width: 781px) {
	.bts-lead,
	.bts-entry {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 1.5rem;
	}

	.bts-lead > .bts-lead__text {
		order: 2;
	}

	.bts-entry > .bts-entry__text {
		order: 0;
	}

	.bts-entry > :is(.bts-entry__photos, .bts-entry__fallback) {
		order: 1;
	}

	.bts-news .bts-gallery.wp-block-gallery.has-nested-images {
		display: flex !important;
		flex-wrap: nowrap;
		gap: 10px;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		margin-inline: calc(-1 * var(--bts-gutter)) !important;
		padding-inline: var(--bts-gutter);
		scroll-padding-inline: var(--bts-gutter);
	}

	.bts-news .bts-gallery.wp-block-gallery.has-nested-images::-webkit-scrollbar {
		display: none;
	}

	.bts-news .bts-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image:not(#individual-image) {
		flex: 0 0 auto;
		width: min-content !important;
		aspect-ratio: auto !important;
		grid-column: auto !important;
		grid-row: auto !important;
		overflow: visible;
		border-radius: 0;
		scroll-snap-align: start;
	}

	.bts-news .bts-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image:not(#individual-image) img {
		position: static;
		height: min(60vw, 320px) !important;
		width: auto !important;
		max-width: 84vw !important;
		border-radius: 10px;
	}

	.bts-news .bts-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image:not(#individual-image) figcaption {
		position: static;
		opacity: 1;
		transform: none;
		padding: 0.5rem 0 0;
		color: var(--wp--preset--color--slate);
	}

	.bts-news .bts-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image:not(#individual-image)::after {
		content: none !important;
	}

	.bts-lead__title {
		font-size: 1.9rem;
	}
}

@media (max-width: 600px) {
	.bts-part {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* -- Event notes (mist): date and title rows, the whole row is the link ---------------- */
.bts-notes .wp-block-post-template {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid rgba(20, 18, 58, 0.14);
}

.bts-note {
	position: relative;
	display: grid;
	grid-template-columns: 9.5rem minmax(0, 1fr);
	gap: 0.25rem 1.5rem;
	padding-block: 1.25rem;
	border-bottom: 1px solid rgba(20, 18, 58, 0.14);
}

.bts-note > * {
	margin: 0 !important;
}

.bts-note__date {
	padding-top: 0.3rem;
	font-size: 0.875rem;
	color: var(--wp--preset--color--slate);
}

.bts-note__title {
	font-size: 1.25rem;
	font-weight: 400;
	line-height: 1.35;
	color: var(--wp--preset--color--night);
}

.bts-note__title a {
	color: inherit;
	text-decoration: none;
}

.bts-note__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.bts-note:hover a {
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--coral-deep);
	text-underline-offset: 0.2em;
}

.bts-note:has(a:focus-visible) {
	outline: 2px solid var(--wp--preset--color--coral-deep);
	outline-offset: 2px;
}

@media (max-width: 781px) {
	.bts-note {
		grid-template-columns: minmax(0, 1fr);
		padding-block: 1.1rem;
	}
}

/* -- Enquiries: the email address is the button label and must wrap on small phones ---- */
.bts-cta-band .wp-block-button__link {
	overflow-wrap: anywhere;
}

@media (prefers-reduced-motion: reduce) {
	.bts-news .bts-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image:not(#individual-image) :is(img, figcaption),
	.bts-news .bts-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image:not(#individual-image)::after {
		transition: none !important;
	}
}

/* end 21. Newsroom */

/* ==========================================================================
   24. Industry and tool links: Tools mega panel, sector and tool lines (sectors_nav_patch.py, tools_nav_patch.py)
   ========================================================================== */

@media (min-width: 1100px) {
	/* Tools panel: intro, then the four tools in a 2 x 2 grid across the remaining tracks. */
	.bts-nav.wp-block-navigation .bts-mega.bts-mega--tools > .wp-block-navigation__submenu-container {
		grid-template-columns: minmax(15rem, 1.3fr) repeat(3, minmax(0, 1fr));
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__col--tools {
		grid-column: 2 / -1;
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__col--tools > .wp-block-navigation__submenu-container {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: clamp(2rem, 3vw, 3.5rem);
		row-gap: 0.25rem;
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__col--tools .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		padding: 0.55rem 0 0.7rem;
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__col--tools .wp-block-navigation-item__label {
		display: block;
		font-weight: 600;
		line-height: 1.35;
	}

	.bts-nav.wp-block-navigation .bts-mega .bts-mega__col--tools .wp-block-navigation-item__description {
		display: block;
		margin-top: 0.2rem;
		font-size: 0.8125rem;
		font-weight: 400;
		line-height: 1.45;
		color: var(--wp--preset--color--lede);
	}
}

/* Service and story pages: "Sectors:" and "Runs on:" lines, linked to the industry and platform pages. */
.bts-terms-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 2.5rem;
}

.bts-terms-row:not(:has(.wp-block-post-terms)) {
	display: none;
}

.bts-terms-wrap:not(:has(.wp-block-post-terms)) {
	display: none;
}

.bts-terms-line {
	margin: 0 !important;
	font-size: 0.9375rem;
	color: var(--wp--preset--color--slate);
}

.bts-terms-line .wp-block-post-terms__prefix {
	font-weight: 600;
	color: var(--wp--preset--color--night);
}

.bts-terms-line a {
	color: inherit;
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--line);
	text-underline-offset: 3px;
}

.bts-terms-line a:is(:hover, :focus-visible) {
	text-decoration-color: var(--wp--preset--color--coral-deep);
}

.bts-case-band-wrap .bts-terms-row {
	margin-top: 1.25rem !important;
}

/* end 24. Industry and platform links */

/* ==========================================================================
   22. Industry pages (migration/industry_blocks.py)
   ========================================================================== */

/* -- Hero: the page's featured image under the indigo wash; the page excerpt is the lede -- */
.bts-cover-hero .wp-block-post-excerpt.is-style-lede {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.55;
}

.bts-cover-hero .wp-block-post-excerpt.is-style-lede .wp-block-post-excerpt__excerpt {
	margin: 0;
}

.bts-cover-hero p.wp-block-post-title.bts-kicker {
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	line-height: 1.4;
}

/* Phones: a taller crop, the wash turned into a bottom scrim, a smaller H1, stacked buttons,
   and a subnav that scrolls sideways under a right-edge fade with 44px targets. */
@media (max-width: 781px) {
	/* four classes: theme.css .bts-cover-hero.bts-cover-hero--medium (also !important) has three */
	.wp-block-cover.bts-cover-hero.bts-cover-hero--medium.bts-cover-hero--sector {
		min-height: 70svh !important;
	}

	.bts-cover-hero--sector > .wp-block-cover__background.has-scrim-left-gradient-background {
		background: linear-gradient(180deg, rgba(20, 18, 58, 0.62) 0%, rgba(20, 18, 58, 0.28) 26%, rgba(20, 18, 58, 0.74) 56%, rgba(20, 18, 58, 0.94) 100%) !important;
	}

	.bts-cover-hero--sector h1.has-huge-font-size {
		font-size: clamp(1.75rem, 1.15rem + 3.2vw, 2.1rem) !important;
		line-height: 1.12;
	}

	.bts-cover-hero--sector .bts-hero__copy .wp-block-buttons {
		flex-direction: column;
		align-items: stretch;
		gap: 12px !important;
	}

	.bts-cover-hero--sector .bts-hero__copy .wp-block-button {
		width: 100%;
		margin: 0;
	}

	.bts-cover-hero--sector .bts-hero__copy .wp-block-button__link {
		display: flex;
		justify-content: center;
		width: 100%;
		box-sizing: border-box;
	}

	.bts-cover-hero--sector + .bts-subnav::after {
		content: "";
		position: absolute;
		top: 0;
		right: 0;
		bottom: 1px;
		width: 2.75rem;
		background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, #fff 85%);
		pointer-events: none;
	}

	.bts-cover-hero--sector + .bts-subnav .bts-subnav__links a {
		display: flex;
		align-items: center;
		min-height: 44px;
		padding-block: 0.5rem;
		box-sizing: border-box;
	}

	.bts-cover-hero--sector + .bts-subnav .bts-subnav__links > p:last-child {
		padding-right: 2.75rem;
	}
}

/* -- Questions: ledger rows (index, asker, question, context | answers) -------------- */
.bts-qhead {
	margin-bottom: var(--wp--preset--spacing--60) !important;
}

.bts-qhead h2 {
	margin: 0;
	max-width: 22ch;
}

.bts-qhead .bts-muted {
	max-width: 36rem;
	margin: 1rem 0 0 !important;
}

.bts-qhead .bts-fineprint {
	margin: 0;
	text-align: right;
}

.bts-qmap {
	border-bottom: 1px solid var(--bts-rule);
}

.bts-qmap > .wp-block-columns.bts-qrow {
	margin: 0 !important;
}

.wp-block-columns.bts-qrow > .wp-block-column {
	min-width: 0;
	padding-bottom: clamp(1.5rem, 2.5vw, 2.25rem);
}

/* the index and the question read as one cell: no rule between them */
.wp-block-columns.bts-qrow > .wp-block-column:nth-child(2) {
	padding-left: 0;
	border-left: 0;
}

.bts-qrow .bts-index {
	margin: 0;
	padding-top: 0.15rem;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	color: var(--bts-muted);
	font-variant-numeric: lining-nums tabular-nums;
}

.bts-asker {
	margin: 0 0 0.55rem !important;
	font-size: var(--wp--preset--font-size--x-small);
	line-height: 1.45;
	color: var(--bts-muted);
}

.bts-qrow h3 {
	margin: 0 !important;
	max-width: 34ch;
	font-weight: 300;
	line-height: 1.3;
	letter-spacing: -0.01em;
}

.bts-qrow h3 + .bts-muted {
	max-width: 40rem;
	margin: 0.9rem 0 0 !important;
	font-size: 0.9375rem;
	line-height: 1.6;
}

.wp-block-list.is-style-ledger.bts-answer {
	margin: 0;
	border-top: 0;
	font-size: 0.9375rem;
}

.wp-block-list.is-style-ledger.bts-answer li {
	display: grid;
	grid-template-columns: 4.5rem minmax(0, 1fr);
	gap: 0.75rem;
	align-items: baseline;
	padding: 0.7rem 0;
}

.wp-block-list.is-style-ledger.bts-answer li:first-child {
	padding-top: 0;
}

.wp-block-list.is-style-ledger.bts-answer li:last-child {
	border-bottom: 0;
}

.wp-block-list.is-style-ledger.bts-answer li::before {
	content: none;
}

.wp-block-list.is-style-ledger.bts-answer li > * {
	min-width: 0;
	overflow-wrap: anywhere;
}

.bts-answer strong {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 400;
	color: var(--bts-muted);
}

.bts-answer a {
	color: inherit;
	text-decoration: underline;
	text-decoration-color: var(--bts-coral);
	text-underline-offset: 4px;
}

.bts-answer a:is(:hover, :focus-visible) {
	color: var(--bts-coral-deep);
}

@media (max-width: 781px) {
	/* index inline before the asker; the answers full width under a hairline */
	.wp-block-columns.bts-qrow {
		display: grid !important;
		grid-template-columns: auto minmax(0, 1fr);
		gap: 0 0.85rem !important;
	}

	.wp-block-columns.bts-qrow > .wp-block-column,
	.wp-block-columns.bts-qrow > .wp-block-column + .wp-block-column {
		min-width: 0;
		padding: 1.5rem 0 1.25rem !important;
		border: 0 !important;
	}

	.wp-block-columns.bts-qrow > .wp-block-column:last-child {
		grid-column: 1 / -1;
		padding: 0.35rem 0 1.25rem !important;
		border-top: 1px solid var(--bts-rule) !important;
	}

	.bts-qrow .bts-index {
		padding-top: 0;
		line-height: 1.45;
		font-size: var(--wp--preset--font-size--x-small);
	}

	.wp-block-list.is-style-ledger.bts-answer li,
	.wp-block-list.is-style-ledger.bts-answer li:first-child {
		min-height: 44px;
		padding: 0.25rem 0;
		align-items: center;
	}

	.bts-answer a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}

	.bts-qhead .bts-fineprint {
		text-align: left;
	}
}

/* -- Services used in this sector: hairline rows, title left, "Runs on" right -------- */
.bts-svcrow-wrap {
	margin-top: var(--wp--preset--spacing--70) !important;
}

.bts-svcrow-wrap .wp-block-post-template {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--bts-rule);
}

.bts-svcrow-wrap .wp-block-post-template > li {
	margin-block: 0 !important;
}

.bts-svcrow {
	align-items: baseline !important;
	gap: 0.25rem 1.5rem !important;
	padding: 0.9rem 0;
	border-bottom: 1px solid var(--bts-rule);
}

.bts-svcrow > * {
	margin: 0 !important;
	min-width: 0;
}

.bts-svcrow .wp-block-post-title {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 500;
	letter-spacing: 0;
}

.bts-svcrow .wp-block-post-title a {
	color: inherit;
	text-decoration: none;
}

.bts-svcrow .wp-block-post-title a:is(:hover, :focus-visible) {
	color: var(--bts-coral-deep);
	text-decoration: underline;
	text-underline-offset: 4px;
}

.bts-terms-inline {
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--bts-muted);
}

.bts-terms-inline a {
	color: inherit;
	text-decoration: underline;
	text-decoration-color: var(--bts-rule);
	text-underline-offset: 3px;
}

.bts-terms-inline a:is(:hover, :focus-visible) {
	color: var(--bts-coral-deep);
	text-decoration-color: currentColor;
}

@media (max-width: 600px) {
	.bts-svcrow {
		flex-direction: column;
		align-items: flex-start !important;
	}
}

/* -- What we check: the lens (pages with proof) or the start table (pages without) ---- */
.bts-check h2 {
	margin-top: 0;
	max-width: 18ch;
}

.bts-check > .wp-block-column {
	min-width: 0;
}

.bts-check .wp-block-image {
	max-width: 24rem;
	margin: var(--wp--preset--spacing--60) 0 0;
}

.bts-check .wp-block-image figcaption {
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--bts-muted);
}

.bts-check .wp-block-list.is-style-checklist {
	margin-top: 0;
	font-size: var(--wp--preset--font-size--medium);
}

.bts-check .wp-block-list.is-style-checklist li:first-child {
	margin-top: 0;
}

.bts-check__evidence,
.bts-check__extra {
	margin-top: var(--wp--preset--spacing--60) !important;
}

.bts-check__evidence .bts-muted {
	max-width: 36rem;
	margin: 0;
}

.bts-check__lens {
	margin-top: var(--wp--preset--spacing--80) !important;
}

.bts-check__lens h3.bts-about__minor {
	margin-top: 1.1rem !important;
}

.bts-check__line {
	margin-top: 1.25rem !important;
	font-size: var(--wp--preset--font-size--small);
}

/* Start table: hairline rows; under 700px each row becomes a stacked block */
.wp-block-table.bts-map {
	margin: 0;
	overflow-x: visible;
}

.wp-block-table.bts-map table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
	line-height: 1.5;
}

.wp-block-table.bts-map thead {
	border-bottom: 0;
}

.wp-block-table.bts-map th,
.wp-block-table.bts-map td {
	padding: 1rem 1.25rem 1rem 0;
	border: 0;
	border-bottom: 1px solid var(--bts-rule);
	text-align: left;
	vertical-align: top;
}

.wp-block-table.bts-map th {
	padding-top: 0;
	padding-bottom: 0.75rem;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 500;
	color: var(--bts-muted);
}

.wp-block-table.bts-map th:nth-child(1) {
	width: 38%;
}

.wp-block-table.bts-map th:nth-child(2) {
	width: 36%;
}

.wp-block-table.bts-map td:first-child {
	font-weight: 500;
	color: var(--wp--preset--color--night);
}

.wp-block-table.bts-map td:nth-child(2) {
	color: var(--bts-muted);
}

.wp-block-table.bts-map td:last-child a {
	color: inherit;
	text-decoration: underline;
	text-decoration-color: var(--bts-coral);
	text-underline-offset: 4px;
}

.wp-block-table.bts-map td:last-child a:is(:hover, :focus-visible) {
	color: var(--bts-coral-deep);
}

@media (max-width: 700px) {
	.wp-block-table.bts-map table,
	.wp-block-table.bts-map tbody,
	.wp-block-table.bts-map tr,
	.wp-block-table.bts-map td {
		display: block;
		width: 100% !important;
	}

	.wp-block-table.bts-map thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		white-space: nowrap;
	}

	.wp-block-table.bts-map tr {
		padding: 1rem 0;
		border-bottom: 1px solid var(--bts-rule);
	}

	.wp-block-table.bts-map tbody tr:first-child {
		border-top: 1px solid var(--bts-rule);
	}

	.wp-block-table.bts-map td {
		padding: 0;
		border: 0;
	}

	.wp-block-table.bts-map td:first-child {
		font-weight: 600;
	}

	.wp-block-table.bts-map td:nth-child(2) {
		margin-top: 0.3rem;
	}

	.wp-block-table.bts-map td:last-child {
		margin-top: 0.35rem;
	}

	.wp-block-table.bts-map td:last-child a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
		font-weight: 600;
		text-decoration: none;
	}

	.wp-block-table.bts-map td:last-child a::after {
		content: "\2192";
		margin-left: 0.45em;
		color: var(--bts-coral-deep);
	}
}

/* -- Evidence (night): the band switches itself ------------------------------------- */

/* Plan rules: no tagged story -> the lead loop prints its no-results method, the results head and
   "Also in this sector" hide, and "From other sectors" appears. Tag one story and it switches back. */
.bts-evidence__elsewhere {
	display: none;
}

.bts-evidence:has(.bts-evidence__lead .wp-block-query-no-results) .bts-evidence__elsewhere {
	display: block;
}

.bts-evidence:has(.bts-evidence__lead .wp-block-query-no-results) .bts-evidence__found {
	display: none;
}

.bts-hide-if-empty:not(:has(.wp-block-post)) {
	display: none;
}

.bts-evidence__head {
	margin-bottom: var(--wp--preset--spacing--60) !important;
}

.bts-evidence__head h2 {
	margin: 0;
}

/* Lead story: the story on the left, the score on the right */
.bts-evidence__lead .wp-block-post-template {
	margin: 0;
}

.bts-evidence__story {
	margin: 0 !important;
	border-bottom: 1px solid var(--bts-rule);
}

.bts-evidence__story > .wp-block-column {
	min-width: 0;
	padding-bottom: clamp(1.5rem, 2.5vw, 2.25rem);
}

.bts-evidence__story > .wp-block-column > * {
	margin-block: 0;
}

.bts-evidence__lead .bts-meta {
	margin: 0 0 0.75rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--bts-muted);
}

.bts-evidence__story .wp-block-post-title {
	margin: 0;
	max-width: 24ch;
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 300;
	line-height: 1.2;
}

.bts-evidence__story .wp-block-post-title a {
	color: #fff;
	text-decoration: none;
}

.bts-evidence__story .wp-block-post-excerpt {
	max-width: 40rem;
	margin-top: 1rem;
	color: rgba(246, 244, 240, 0.78);
}

.bts-evidence__story .wp-block-post-excerpt__excerpt {
	margin: 0;
}

.bts-evidence__place {
	margin-top: 0.75rem !important;
	font-size: var(--wp--preset--font-size--small);
	color: var(--bts-muted);
}

.bts-evidence__story .wp-block-read-more {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	margin-top: 0.75rem;
	color: #fff;
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: var(--bts-coral);
	text-underline-offset: 5px;
}

.bts-evidence__story .is-style-stat {
	color: #fff;
}

.bts-evidence__story .bts-stat-label {
	margin-top: 0.6rem !important;
	font-size: var(--wp--preset--font-size--small);
	color: var(--bts-muted);
}

/* The method, shown in place of a lead story */
.bts-evidence__lead .wp-block-query-no-results {
	max-width: 46rem;
}

.bts-evidence__lead .wp-block-query-no-results h2 {
	margin-top: 0;
}

.bts-evidence__lead .wp-block-query-no-results .wp-block-list.is-style-ledger {
	margin-top: var(--wp--preset--spacing--50);
	font-size: var(--wp--preset--font-size--medium);
}

/* Parts below the lead: a hairline and a small heading each */
.bts-evidence__part {
	margin-top: var(--wp--preset--spacing--80) !important;
}

.bts-evidence__subhead {
	margin: 0 0 var(--wp--preset--spacing--50) !important;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 400;
	color: #fff;
}

/* Voice: a tagged testimonial; coral only on the quote mark */
.bts-evidence__quote {
	max-width: 50rem;
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 300;
	line-height: 1.4;
	color: #fff;
}

.bts-evidence__quote::before {
	content: "\201C";
	display: block;
	height: 0.55em;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 4.5rem;
	line-height: 1;
	color: var(--bts-coral);
}

.bts-evidence__quote p {
	margin: 0;
}

.bts-evidence__who {
	margin-top: 1.25rem !important;
	font-size: var(--wp--preset--font-size--small);
}

.bts-evidence__who > * {
	margin: 0 !important;
}

.bts-evidence__name {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	letter-spacing: 0;
}

.bts-evidence__role {
	color: var(--bts-muted);
}

.bts-evidence__voice .wp-block-post-template {
	margin: 0;
}

/* Manufacturing's figure set (VKC supplier tiers) */
.bts-evidence__tiers {
	grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
	gap: 0 !important;
	margin-block: 0 !important;
	border-top: 1px solid var(--bts-rule);
	border-bottom: 1px solid var(--bts-rule);
}

.bts-evidence__tiers > * {
	min-width: 0;
	margin: 0 !important;
	padding: 1.1rem 1rem 1.1rem 0;
}

.bts-evidence__tiers > * + * {
	padding-left: 1.25rem;
	border-left: 1px solid var(--bts-rule);
}

.bts-evidence__tiers .is-style-stat {
	font-size: clamp(2rem, 1.5rem + 1.8vw, 2.9rem);
	color: #fff;
}

.bts-evidence__tiers .bts-stat-label {
	margin: 0.35rem 0 0 !important;
	font-size: 0.8rem;
	color: var(--bts-muted);
}

.bts-evidence__statement {
	max-width: 44rem;
	margin-top: var(--wp--preset--spacing--50) !important;
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.5;
	color: rgba(246, 244, 240, 0.86);
}

/* Impact stories: plain hairline links */
.bts-evidence__impact .wp-block-post-template {
	margin: 0;
	border-top: 1px solid var(--bts-rule);
}

.bts-evidence__impact .wp-block-post-template > li {
	margin-block: 0 !important;
}

.bts-evidence__impactitem {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: baseline;
	gap: 0.25rem 1.5rem;
	padding: 0.9rem 0;
	border-bottom: 1px solid var(--bts-rule);
}

.bts-evidence__impactitem > * {
	margin: 0 !important;
	min-width: 0;
}

.bts-evidence__impactitem .wp-block-post-title {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 500;
	letter-spacing: 0;
}

.bts-evidence__impactitem .wp-block-post-title a {
	text-decoration: underline;
	text-decoration-color: rgba(246, 244, 240, 0.3);
	text-underline-offset: 4px;
}

.bts-evidence__impactitem .wp-block-post-title a:is(:hover, :focus-visible) {
	text-decoration-color: var(--bts-coral);
}

.bts-evidence__impactitem .bts-field {
	font-size: var(--wp--preset--font-size--small);
}

/* Pagination on night: the current page reads as white */
.bts-evidence .wp-block-query-pagination .page-numbers.current {
	background: #fff;
	border-color: #fff;
	color: var(--wp--preset--color--night);
}

.bts-evidence .wp-block-query-pagination a:hover {
	border-color: #fff;
}

.bts-evidence .wp-block-post-template.is-layout-grid > li,
.bts-hub-proof .wp-block-post-template.is-layout-grid > li {
	min-width: 0;
}

@media (max-width: 781px) {
	.bts-evidence__story > .wp-block-column + .wp-block-column {
		padding-top: 1.25rem;
	}

	.bts-evidence__story .is-style-stat {
		font-size: clamp(2.5rem, 2rem + 6vw, 4rem);
	}

	.bts-evidence__quote {
		font-size: 1.5rem;
	}

	.bts-evidence .wp-block-query-pagination {
		justify-content: center;
		flex-wrap: wrap;
	}

	.bts-evidence .wp-block-query-pagination a,
	.bts-evidence .wp-block-query-pagination .page-numbers {
		min-width: 44px;
		height: 44px;
	}
}

@media (max-width: 600px) {
	.bts-evidence__tiers {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}

	.bts-evidence__tiers > :nth-child(4) {
		padding-left: 0;
		border-left: 0;
	}

	.bts-evidence__tiers > :nth-child(n + 4) {
		border-top: 1px solid var(--bts-rule);
	}
}

/* -- Close: the other industries as an inline row with middots ------------------------ */
.bts-cta-band > .wp-block-separator.alignwide {
	margin-top: var(--wp--preset--spacing--70);
	margin-bottom: 0;
}

.bts-sibling-row {
	gap: 0.5rem 1.5rem !important;
	margin-top: 1.25rem !important;
}

.bts-sibling-row > * {
	margin: 0 !important;
	min-width: 0;
}

.bts-sibling-row__label {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

.bts-sibling-row > .wp-block-query {
	flex: 1 1 20rem;
}

.bts-sibling-row .wp-block-post-template {
	gap: 0.35rem 0 !important;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bts-sibling-row .wp-block-post-template > li {
	display: flex;
	align-items: baseline;
	margin: 0 !important;
}

.bts-sibling-row .wp-block-post-template > li + li::before {
	content: "\00B7";
	margin: 0 0.65em;
	opacity: 0.6;
}

.bts-sibling-row .wp-block-post-title {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.6;
}

.bts-sibling-row .wp-block-post-title a {
	color: inherit;
	text-decoration: underline;
	text-decoration-color: rgba(20, 18, 58, 0.35);
	text-underline-offset: 4px;
}

.bts-sibling-row .wp-block-post-title a:is(:hover, :focus-visible) {
	text-decoration-color: currentColor;
}

.bts-cta-band .bts-about__closefoot {
	margin-top: var(--wp--preset--spacing--50) !important;
}

@media (max-width: 781px) {
	/* 44px targets (the platform close has its own rule) */
	.bts-cta-band:not(.bts-plat-close) .bts-sibling-row .wp-block-post-title a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}
}

/* -- /industries/ hub ------------------------------------------------------------------ */
.bts-asked__cols {
	margin-top: 0 !important;
}

.bts-asked__cols > .wp-block-column {
	min-width: 0;
}

.bts-asked__cols h3.bts-about__minor {
	margin-bottom: 0.5rem !important;
}

.wp-block-list.is-style-ledger.bts-asked {
	margin: 0;
	font-size: 0.9375rem;
}

.bts-asked__where {
	display: block;
	margin-top: 0.2rem;
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--bts-muted);
}

.bts-asked__where a {
	color: inherit;
	text-decoration: underline;
	text-decoration-color: var(--bts-coral);
	text-underline-offset: 3px;
}

.bts-asked__where a:is(:hover, :focus-visible) {
	color: var(--bts-coral-deep);
}

.bts-asked__cols + .wp-block-group .bts-fineprint {
	margin: var(--wp--preset--spacing--50) 0 0;
}

.bts-hubstats {
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: 0 !important;
	border-top: 1px solid var(--bts-rule);
	border-bottom: 1px solid var(--bts-rule);
}

.bts-hubstats > * {
	min-width: 0;
	margin: 0 !important;
	padding: 1.4rem 1.25rem 1.4rem 0;
}

.bts-hubstats > * + * {
	padding-left: 1.5rem;
	border-left: 1px solid var(--bts-rule);
}

.bts-hubstats .is-style-stat {
	color: #fff;
}

.bts-hubstats .bts-stat-label {
	margin: 0.5rem 0 0 !important;
	font-size: var(--wp--preset--font-size--small);
	color: var(--bts-muted);
}

.bts-hub-proof__pills {
	margin-top: var(--wp--preset--spacing--70) !important;
}

.bts-hub-proof__label {
	margin: 0 !important;
	font-size: var(--wp--preset--font-size--small);
	color: var(--bts-muted);
}

.bts-hub-proof__pills .bts-pills {
	margin-top: 0.85rem !important;
}

.bts-hub-proof__cards {
	margin-top: var(--wp--preset--spacing--70) !important;
}

.bts-hub-proof__cards > .wp-block-buttons {
	margin-top: var(--wp--preset--spacing--60) !important;
}

@media (max-width: 781px) {
	.bts-hubstats {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.bts-hubstats > :nth-child(3) {
		padding-left: 0;
		border-left: 0;
	}

	.bts-hubstats > :nth-child(n + 3) {
		border-top: 1px solid var(--bts-rule);
	}

	.bts-hub-proof__pills .wp-block-term-name a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
		box-sizing: border-box;
	}
}

/* end 22. Industry pages */

/* ==========================================================================
   23. Platform pages (migration/platform_blocks.py)
   ========================================================================== */

/* /platforms/ hub and /platforms/pulse|karbon|bridge|lenz/. Section order on a platform page: hero + subnav >
   who uses it > what it records > step by step > the stack > in practice > questions > coral close.
   Every grid track is minmax(0, 1fr) and every grid child min-width: 0 (no sideways scroll at 375px). */

/* -- Hero: a night ground until a featured image is set; a top band keeps the overlay header legible ---------- */
.wp-block-cover.bts-plat-hero {
	background-color: var(--wp--preset--color--night);
}

.bts-plat-hero > .wp-block-cover__background.has-scrim-left-gradient-background {
	background:
		linear-gradient(180deg, rgba(20, 18, 58, 0.85) 0%, rgba(20, 18, 58, 0.55) 22%, rgba(20, 18, 58, 0) 45%),
		linear-gradient(90deg, rgba(20, 18, 58, 0.9) 0%, rgba(20, 18, 58, 0.62) 50%, rgba(20, 18, 58, 0.15) 100%) !important;
}

@media (max-width: 781px) {
	.wp-block-cover.bts-cover-hero.bts-cover-hero--medium.bts-plat-hero {
		min-height: 70svh !important;
	}

	/* the wash re-angles to a bottom scrim: the copy sits on the darkest part */
	.bts-plat-hero > .wp-block-cover__background.has-scrim-left-gradient-background {
		background: linear-gradient(0deg, rgba(20, 18, 58, 0.95) 0%, rgba(20, 18, 58, 0.82) 50%, rgba(20, 18, 58, 0.5) 80%, rgba(20, 18, 58, 0.72) 100%) !important;
	}

	.bts-plat-hero h1.has-huge-font-size {
		font-size: clamp(1.9rem, 1.2rem + 3.6vw, 2.4rem) !important;
	}

	.bts-plat-hero .bts-hero__copy .wp-block-buttons {
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
	}

	.bts-plat-hero .bts-hero__copy .wp-block-button,
	.bts-plat-hero .bts-hero__copy .wp-block-button__link {
		width: 100%;
	}

	.bts-plat-hero .bts-hero__copy .wp-block-button__link {
		justify-content: center;
	}
}

/* -- Subnav on phones: one scrolling row, a fade at the right edge, 44px targets ------------------------------ */
@media (max-width: 781px) {
	.bts-plat-subnav .bts-subnav__links {
		padding-right: 2.5rem;
		-webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 2.5rem), transparent 100%);
		mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 2.5rem), transparent 100%);
	}

	.bts-plat-subnav .bts-subnav__links a {
		display: flex;
		align-items: center;
		min-height: 44px;
		padding-block: 0;
	}
}

/* -- Section heads ------------------------------------------------------------------------------------------- */
.bts-plat-head {
	margin-bottom: clamp(2rem, 4vw, 3.25rem) !important;
}

.wp-block-columns.bts-plat-head {
	align-items: flex-end !important;
}

.bts-plat-head h2 {
	margin: 0;
	max-width: 22ch;
}

.bts-plat-head__intro {
	max-width: 40rem;
	margin: 1.1rem 0 0 !important;
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.6;
}

/* -- Who uses it: a hairline grid of roles, then "Comes with" and the timing line ------------------------------ */
.bts-roles.bts-roles--3,
.bts-roles.bts-roles--4 {
	grid-template-columns: minmax(0, 1fr) !important;
}

@media (min-width: 600px) {
	.bts-roles.bts-roles--4 {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (min-width: 900px) {
	.bts-roles.bts-roles--3 {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

@media (min-width: 1100px) {
	.bts-roles.bts-roles--4 {
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	}
}

.bts-roles > * {
	min-width: 0;
}

.bts-roles__tile {
	padding: clamp(1.5rem, 2.4vw, 2.25rem) !important;
}

.bts-roles__tile > * {
	margin-block: 0 !important;
}

.bts-roles__name {
	margin-bottom: 1.25rem !important;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 400;
	line-height: 1.25;
	letter-spacing: -0.01em;
}

.bts-roles__label {
	margin-top: 1rem !important;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 500;
	color: var(--bts-muted);
}

.bts-roles__label + p {
	margin-top: 0.3rem !important;
	font-size: 0.9375rem;
	line-height: 1.55;
}

.bts-roles-foot {
	margin-top: var(--wp--preset--spacing--60) !important;
}

.bts-comeswith__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 2rem;
	margin: 0;
	padding: 0.85rem 0;
	border-top: 1px solid var(--bts-rule);
	border-bottom: 1px solid var(--bts-rule);
}

.bts-comeswith__list > li {
	min-width: 0;
	margin: 0;
}

.bts-comeswith .wp-block-post-title {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	line-height: 1.4;
}

.bts-comeswith .wp-block-post-title a,
.bts-svcstrip__title a {
	color: inherit;
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: 4px;
	transition: text-decoration-color 0.2s var(--bts-ease);
}

.bts-comeswith .wp-block-post-title a:is(:hover, :focus-visible),
.bts-svcstrip__title a:is(:hover, :focus-visible) {
	text-decoration-color: var(--bts-coral-deep);
}

.bts-plat-timing {
	max-width: 34ch;
	margin: 0 !important;
}

@media (max-width: 600px) {
	.bts-comeswith__list {
		flex-direction: column;
	}

	.bts-comeswith__list {
		gap: 0;
		padding: 0;
	}

	.bts-comeswith__list > li + li {
		border-top: 1px solid var(--bts-rule);
	}

	.bts-comeswith .wp-block-post-title a {
		display: flex;
		align-items: center;
		min-height: 44px;
	}
}

/* -- What it records: live bullets beside a night spec card (field names only, no values) ---------------------- */
.bts-record {
	box-shadow: inset 0 3px 0 var(--bts-coral);
}

.bts-record > * {
	margin-block: 0 !important;
}

.bts-record__title {
	margin-bottom: 1.25rem !important;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 300;
	line-height: 1.3;
	color: #fff;
}

.bts-record .wp-block-list.bts-record__fields li {
	padding: 0.8rem 0;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 300;
	line-height: 1.3;
}

.bts-record .wp-block-list.bts-record__fields li::before {
	content: none;
}

/* the separator after the field list takes the place of the last row's hairline (no doubled rule) */
.bts-record .bts-record__fields:has(+ .bts-record__rule) > li:last-child {
	border-bottom: 0;
}

.bts-record hr.bts-record__rule {
	width: 100%;
	margin: 0 !important;
}

.bts-record__label {
	margin-top: 1.75rem !important;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 500;
	color: rgba(246, 244, 240, 0.72);
}

.bts-record .bts-record__list {
	margin: 0.5rem 0 0 !important;
	padding-left: 1.1rem;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.55;
	color: rgba(246, 244, 240, 0.85);
}

.bts-record .bts-record__list li + li {
	margin-top: 0.4rem;
}

.bts-record .bts-record__details {
	margin-top: 1.75rem !important;
	border-bottom: 0;
}

.bts-record .bts-record__details summary {
	font-size: var(--wp--preset--font-size--medium);
	color: #fff;
}

.bts-record .bts-record__details > .bts-record__label {
	margin-top: 1.25rem !important;
}

@media (max-width: 781px) {
	.bts-record.wp-block-group.is-style-card-dark {
		padding: 24px;
	}
}

/* Bridge: the supplier rating bands (stacks into rows under 700px) */
.bts-bands-wrap {
	margin-top: var(--wp--preset--spacing--80) !important;
}

.wp-block-table.bts-bands {
	margin: 0;
}

.wp-block-table.bts-bands table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
	line-height: 1.5;
}

.wp-block-table.bts-bands thead {
	border-bottom: 0;
}

.wp-block-table.bts-bands th {
	padding: 0 1.25rem 0.75rem 0;
	border: 0;
	border-bottom: 1px solid var(--bts-rule);
	text-align: left;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 500;
	color: var(--bts-muted);
}

.wp-block-table.bts-bands td {
	padding: 1rem 1.25rem 1rem 0;
	border: 0;
	border-bottom: 1px solid var(--bts-rule);
	vertical-align: top;
}

.wp-block-table.bts-bands td:first-child {
	width: 20%;
}

.wp-block-table.bts-bands td:first-child strong {
	font-weight: 600;
	color: var(--wp--preset--color--night);
}

.wp-block-table.bts-bands td:nth-child(2) {
	width: 16%;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
	color: var(--bts-muted);
}

@media (max-width: 699px) {
	.wp-block-table.bts-bands thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}

	.wp-block-table.bts-bands :is(table, tbody, tr, td) {
		display: block;
		width: auto !important;
	}

	.wp-block-table.bts-bands tr {
		padding: 1rem 0;
		border-bottom: 1px solid var(--bts-rule);
	}

	.wp-block-table.bts-bands tbody tr:first-child {
		border-top: 1px solid var(--bts-rule);
	}

	.wp-block-table.bts-bands td {
		padding: 0;
		border: 0;
	}

	.wp-block-table.bts-bands td:nth-child(2) {
		margin-top: 0.15rem;
	}

	.wp-block-table.bts-bands td:nth-child(3) {
		margin-top: 0.4rem;
	}
}

/* -- Step by step: About's "How a number earns its place" ledger ------------------------------------------------ */
.bts-plat-how .wp-block-list.is-style-ledger li strong {
	font-weight: 600;
	color: var(--wp--preset--color--night);
}

.bts-plat-how__more {
	margin-top: var(--wp--preset--spacing--50) !important;
}

/* -- The stack: four pages in a Query Loop; Pulse, Karbon and Bridge feed Lenz (the hub card) --------------------- */
.bts-stack {
	--bts-stack-gap: 1.25rem;
	--bts-stack-line: var(--wp--preset--color--slate);
}

.bts-stack .wp-block-post-template.is-layout-grid {
	position: relative;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: var(--bts-stack-gap) !important;
	margin: 0;
	padding: 0 0 3rem;
}

.bts-stack .wp-block-post-template > .wp-block-post {
	position: relative;
	display: flex;
	min-width: 0;
	margin: 0;
}

.bts-stack__card {
	position: relative;
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	min-width: 0;
	padding: clamp(1.4rem, 2.2vw, 2rem) !important;
	background: #fff;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 4px;
	transition: border-color 0.25s var(--bts-ease);
}

.bts-stack__card > * {
	margin-block: 0 !important;
}

.bts-stack__card:hover {
	border-color: var(--wp--preset--color--slate);
}

.bts-stack__card:has(a:focus-visible) {
	outline: 2px solid var(--bts-coral-deep);
	outline-offset: 3px;
}

.bts-stack__card a:focus-visible {
	outline: none;
}

.bts-stack__job {
	font-size: 0.72rem;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--slate);
}

.bts-stack__title {
	margin-top: 0.5rem !important;
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 300;
	line-height: 1.1;
	letter-spacing: -0.02em;
}

.bts-stack__title a {
	color: inherit;
	text-decoration: none;
}

/* the whole card is the link */
.bts-stack__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.bts-stack .bts-field--collects,
.bts-stack .bts-field--feeds {
	font-size: 0.9375rem;
	line-height: 1.5;
}

.bts-stack .bts-field--collects {
	margin-top: 1.25rem !important;
}

.bts-stack .bts-field--feeds {
	margin-top: 1rem !important;
	padding-top: 1rem;
	border-top: 1px solid var(--bts-rule);
}

.bts-stack .bts-field--collects::before,
.bts-stack .bts-field--feeds::before {
	display: block;
	margin-bottom: 0.3rem;
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--bts-muted);
}

.bts-stack .bts-field--collects::before {
	content: "Collects";
}

.bts-stack .bts-field--feeds::before {
	content: "Feeds Lenz";
}

/* Lenz, the consolidation layer: last by Order, drawn as the hub */
.bts-stack .wp-block-post:last-child .bts-stack__card {
	--bts-rule: rgba(255, 255, 255, 0.14);
	--bts-muted: rgba(255, 255, 255, 0.7);
	background: var(--wp--preset--color--night);
	border-color: var(--wp--preset--color--night);
	color: var(--wp--preset--color--porcelain);
}

.bts-stack .wp-block-post:last-child .bts-stack__job {
	color: rgba(246, 244, 240, 0.72);
}

.bts-stack .wp-block-post:last-child .bts-stack__card:has(a:focus-visible) {
	outline-color: var(--bts-coral);
}

.bts-stack .wp-block-post:last-child .bts-field--collects::before {
	content: "Role";
}

.bts-stack .wp-block-post:last-child .bts-field--feeds::before {
	content: "Who looks at it";
}

/* The page you are on: a coral rule (theme.js adds .is-current and aria-current to the open platform's card) */
.bts-stack .wp-block-post.is-current .bts-stack__card {
	box-shadow: inset 0 3px 0 var(--bts-coral);
}

/* Desktop connectors: a drop from each card to a hairline bus that rises into Lenz */
@media (min-width: 1024px) {
	.bts-stack .wp-block-post::after {
		content: "";
		position: absolute;
		top: 100%;
		left: 50%;
		height: 1.5rem;
		border-left: 1px solid var(--bts-stack-line);
	}

	.bts-stack .wp-block-post-template.is-layout-grid::after {
		content: "";
		position: absolute;
		bottom: 1.5rem;
		left: calc((100% - 3 * var(--bts-stack-gap)) / 8);
		right: calc((100% - 3 * var(--bts-stack-gap)) / 8);
		border-top: 1px solid var(--bts-stack-line);
	}

	.bts-stack .wp-block-post:last-child::before {
		content: "";
		position: absolute;
		z-index: 1;
		top: 100%;
		left: calc(50% - 5px);
		margin-top: 2px;
		border-right: 5px solid transparent;
		border-bottom: 7px solid var(--bts-stack-line);
		border-left: 5px solid transparent;
	}
}

/* Tablet: 2 x 2, no connectors (the labels carry the flow) */
@media (max-width: 1023px) {
	.bts-stack .wp-block-post-template.is-layout-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		padding-bottom: 0;
	}
}

/* Phone: one column, Lenz last; a hairline spine on the left with an arrow into Lenz */
@media (max-width: 479px) {
	.bts-stack {
		--bts-stack-gap: 1rem;
	}

	.bts-stack .wp-block-post-template.is-layout-grid {
		grid-template-columns: minmax(0, 1fr) !important;
		padding-left: 1.5rem;
	}

	.bts-stack .wp-block-post:not(:last-child)::before {
		content: "";
		position: absolute;
		top: 1.9rem;
		left: -1rem;
		height: calc(100% + var(--bts-stack-gap));
		border-left: 1px solid var(--bts-stack-line);
	}

	.bts-stack .wp-block-post::after {
		content: "";
		position: absolute;
		top: 1.9rem;
		left: -1rem;
		width: 1rem;
		border-top: 1px solid var(--bts-stack-line);
	}

	.bts-stack .wp-block-post:last-child::before {
		content: "";
		position: absolute;
		z-index: 1;
		top: calc(1.9rem - 5px);
		left: -7px;
		border-top: 5px solid transparent;
		border-bottom: 5px solid transparent;
		border-left: 7px solid var(--bts-stack-line);
	}
}

/* -- In practice (night): the published case, figures or an authentic photo, then tagged stories ---------------- */
.bts-practice__case {
	margin-top: var(--wp--preset--spacing--60) !important;
}

.bts-practice__label {
	margin: 0 0 1rem !important;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	color: rgba(246, 244, 240, 0.72);
}

.bts-practice p.is-style-statement {
	margin: 0 0 1.5rem !important;
	font-size: clamp(1.4rem, 1.05rem + 1.3vw, 2.1rem);
	font-weight: 300;
	line-height: 1.3;
	color: #fff;
}

.bts-practice__case .bts-muted {
	max-width: 40rem;
	line-height: 1.65;
}

.bts-practice__case .wp-block-buttons {
	margin-top: 1.75rem !important;
	gap: 1rem 2rem;
}

.bts-practice__stat > * {
	margin: 0 !important;
}

.bts-practice__stat > .bts-stat-label {
	margin-top: 0.6rem !important;
}

.bts-practice__stat + .bts-practice__stat {
	margin-top: 2rem !important;
	padding-top: 2rem;
	border-top: 1px solid var(--bts-rule);
}

.bts-practice .is-style-stat {
	color: #fff;
}

/* a figure that is not a count (a year): the stat type, without theme.js counting it up */
.bts-practice__figure {
	font-size: clamp(2.25rem, 1.75rem + 2.4vw, 3.75rem);
	font-weight: 300;
	line-height: 1;
	letter-spacing: -0.02em;
	font-variant-numeric: lining-nums tabular-nums;
	color: #fff;
}

.bts-practice .bts-stat-label {
	max-width: 26ch;
	font-size: var(--wp--preset--font-size--small);
	color: var(--bts-muted);
}

.bts-practice__tiers {
	margin-top: 1.5rem !important;
	font-size: var(--wp--preset--font-size--small);
	color: var(--bts-muted);
}

.bts-practice__photo {
	margin: 0 !important;
}

.bts-practice :is(.bts-practice__photo, .bts-practice__photos) figcaption {
	margin: 0.75rem 0 0;
	text-align: left;
	font-size: 0.8125rem;
	line-height: 1.45;
	color: rgba(246, 244, 240, 0.72);
}

.bts-practice__stories {
	margin-top: var(--wp--preset--spacing--80) !important;
	padding-top: var(--wp--preset--spacing--60);
	border-top: 1px solid var(--bts-rule);
}

.bts-practice__stories > .wp-block-buttons {
	margin-top: var(--wp--preset--spacing--50) !important;
}

.bts-plat-cards.is-layout-grid {
	gap: 1.75rem !important;
}

/* explicit columns: the custom gap would break core's minimum-width grid maths (theme.css handles < 1024px) */
@media (min-width: 1024px) {
	.bts-plat-cards--3.is-layout-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}

	.bts-plat-cards--4.is-layout-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	}
}

.bts-plat-cards > .wp-block-post {
	min-width: 0;
}

.bts-plat-card {
	padding-top: 1.25rem;
	border-top: 1px solid var(--bts-rule);
}

.bts-plat-card .wp-block-post-title {
	margin-top: 0.5rem !important;
}

.bts-practice__photos {
	margin-top: var(--wp--preset--spacing--70) !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 1.5rem !important;
}

.bts-practice__photos > * {
	min-width: 0;
	margin: 0 !important;
}

@media (max-width: 781px) {
	.bts-practice__photos {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 479px) {
	.bts-practice__photos {
		grid-template-columns: minmax(0, 1fr) !important;
	}
}

/* A wrapper around a tagged loop disappears while the loop has nothing to show. */
.bts-hide-if-empty:not(:has(.wp-block-post)) {
	display: none;
}

/* -- Hub: the services the platforms come with, one hairline row each ------------------------------------------- */
.bts-svcstrip__list {
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--bts-rule);
}

.bts-svcstrip__list > li {
	margin: 0;
	border-bottom: 1px solid var(--bts-rule);
}

.bts-svcstrip__row {
	gap: 0.35rem 1.5rem !important;
	padding: 1.1rem 0;
}

.bts-svcstrip__row > * {
	min-width: 0;
	margin: 0 !important;
}

.bts-svcstrip__title {
	font-size: var(--wp--preset--font-size--large);
	font-weight: 400;
	line-height: 1.3;
	letter-spacing: -0.01em;
}

.bts-svcstrip__terms {
	font-size: var(--wp--preset--font-size--small);
	color: var(--bts-muted);
}

.bts-svcstrip__terms a {
	color: inherit;
	text-underline-offset: 3px;
}

.bts-svcstrip__terms a:is(:hover, :focus-visible) {
	color: var(--bts-coral-deep);
}

@media (max-width: 600px) {
	.bts-svcstrip__row {
		flex-direction: column;
		align-items: flex-start !important;
	}
}

/* -- Questions: 48px summary targets on phones -------------------------------------------------------------------- */
@media (max-width: 781px) {
	.bts-plat-faq .wp-block-details summary {
		min-height: 48px;
	}
}

/* -- Close: the coral band, then the sibling platforms and SIM as one middot line --------------------------------- */
.bts-plat-close .bts-sibling-row {
	gap: 0.25rem 0.6rem !important;
	font-size: var(--wp--preset--font-size--small);
}

.bts-plat-close .bts-sibling-row > * {
	margin: 0 !important;
}

.bts-plat-close .bts-sibling-row > .bts-sibling-row__label {
	margin-right: 0.6rem !important;
	font-weight: 600;
}

/* section 22 grows the industry rail's query (flex: 1 1 20rem); here the SIM link follows the titles */
.bts-plat-close .bts-sibling-row > .wp-block-query {
	flex: 0 1 auto;
}

.bts-plat-close .bts-sibling-row__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	margin: 0;
	padding: 0;
}

.bts-plat-close .bts-sibling-row__list > li {
	display: flex;
	align-items: center;
	margin: 0;
}

.bts-plat-close .bts-sibling-row__list > li + li::before,
.bts-plat-close .bts-sibling-row__sim::before {
	content: "·";
	content: "·" / "";
	margin: 0 0.6rem;
	opacity: 1;
	color: rgba(20, 18, 58, 0.55);
}

.bts-plat-close .bts-sibling-row__sim::before {
	margin-left: 0;
}

.bts-plat-close .bts-sibling-row__list .wp-block-post-title {
	margin: 0;
	font-size: inherit;
	font-weight: 500;
	line-height: 1.5;
}

.bts-plat-close .bts-sibling-row :is(.wp-block-post-title, .bts-sibling-row__sim) a {
	color: inherit;
	text-decoration: underline;
	text-decoration-color: rgba(20, 18, 58, 0.35);
	text-underline-offset: 4px;
}

.bts-plat-close .bts-sibling-row :is(.wp-block-post-title, .bts-sibling-row__sim) a:is(:hover, :focus-visible) {
	text-decoration-color: currentColor;
}

@media (max-width: 781px) {
	.bts-plat-close .bts-sibling-row > .bts-sibling-row__label {
		flex-basis: 100%;
	}

	.bts-plat-close .bts-sibling-row :is(.wp-block-post-title, .bts-sibling-row__sim) a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}
}

/* end 23. Platform pages */

/* ==========================================================================
   25. Landing pieces on industry and tool pages: hero proof row, form close (migration/landing_blocks.py)
   ========================================================================== */

/* Hero proof row: white client logos, or the firm's figures, under the buttons. */
.bts-trust {
	margin-top: clamp(2rem, 4vw, 3rem) !important;
	padding-top: 1.25rem;
	border-top: 1px solid rgba(246, 244, 240, 0.18);
	max-width: 44rem;
}

.bts-trust__label {
	margin: 0 0 0.9rem !important;
	font-size: 0.8125rem;
	color: rgba(246, 244, 240, 0.72);
}

.bts-trust__logos {
	gap: 0.9rem 2rem !important;
}

.bts-trust__logos > .wp-block-image {
	margin: 0 !important;
}

.bts-trust__logos > .wp-block-image img {
	width: auto !important;
	height: 26px !important;
	max-width: 7.5rem;
	object-fit: contain;
	opacity: 0.88;
}

.bts-trust__figures {
	margin: 0 !important;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: rgba(246, 244, 240, 0.85);
}

.bts-trust__figures strong {
	font-weight: 600;
	color: #fff;
}

.bts-trust__sep {
	display: inline-block;
	width: 1px;
	height: 0.95em;
	margin: 0 0.9em;
	vertical-align: -0.12em;
	background: rgba(246, 244, 240, 0.35);
}

/* Form close: heading and direct contacts left, the form on a white card right. */
.bts-landing-close .bts-landing {
	align-items: flex-start !important;
}

.bts-landing__copy h2 {
	margin-top: 0 !important;
}

.bts-landing__direct {
	margin-top: 1.75rem !important;
	font-size: 0.9375rem;
	line-height: 1.8;
}

.bts-landing__direct strong {
	display: inline-block;
	min-width: 3.75rem;
	font-weight: 600;
}

.bts-landing__direct a,
.bts-landing__more a {
	color: inherit;
	text-decoration: underline;
	text-decoration-color: rgba(20, 18, 58, 0.35);
	text-underline-offset: 4px;
}

.bts-landing__direct a:is(:hover, :focus-visible),
.bts-landing__more a:is(:hover, :focus-visible) {
	text-decoration-color: var(--wp--preset--color--night);
}

.bts-landing__more {
	margin-top: 1rem !important;
	font-weight: 600;
	font-size: 0.9375rem;
}

.bts-landing__more a::after {
	content: " \2192";
	content: " \2192" / "";
}

.bts-landing__form.wp-block-group.is-style-card {
	border: 0;
	box-shadow: 0 24px 48px rgba(20, 18, 58, 0.18);
}

.bts-landing__formtitle {
	margin: 0 0 0.4rem !important;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 400;
	color: var(--wp--preset--color--night);
}

.bts-landing__form .bts-muted {
	margin: 0 0 1.25rem !important;
	font-size: 0.9375rem;
}

.bts-landing__privacy {
	margin-top: 1rem !important;
	font-size: 0.8125rem;
	color: var(--wp--preset--color--slate);
}

.bts-landing__privacy a {
	color: var(--wp--preset--color--coral-deep);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.bts-landing-close > .wp-block-separator,
.bts-landing-close > .bts-sibling-row {
	margin-top: var(--wp--preset--spacing--70) !important;
}

@media (max-width: 781px) {
	.bts-trust__logos {
		gap: 0.75rem 1.5rem !important;
	}

	.bts-trust__logos > .wp-block-image img {
		height: 22px !important;
	}

	.bts-trust__sep {
		display: block;
		width: 0;
		height: 0;
		margin: 0;
	}

	.bts-landing__form.wp-block-group.is-style-card {
		padding: 1.25rem !important;
	}
}

/* Form fields fill the card exactly (padding inside the width). */
.bts-form :is(input, select, textarea) {
	box-sizing: border-box;
	max-width: 100%;
}

.bts-form .bts-form__note {
	font-size: 0.8125rem;
	color: var(--wp--preset--color--slate);
}

.bts-form .bts-form__note a {
	color: var(--wp--preset--color--coral-deep);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* end 25. Landing pieces */

/* ==========================================================================
   26. Review fixes for the industry, tool and hub landing pages (qa/sectors-review/findings.json)
   ========================================================================== */

/* Photo heroes on phones: the copy fills the top half, so the wash is even and strong from the top. */
@media (max-width: 781px) {
	.wp-block-cover.bts-cover-hero--sector > .wp-block-cover__background.has-scrim-left-gradient-background,
	.wp-block-cover.bts-plat-hero > .wp-block-cover__background.has-scrim-left-gradient-background {
		background: linear-gradient(180deg, rgba(20, 18, 58, 0.94) 0%, rgba(20, 18, 58, 0.86) 55%, rgba(20, 18, 58, 0.8) 100%) !important;
	}
}

/* Desktop: a top fade keeps the overlay header legible over bright sector photos. */
@media (min-width: 782px) {
	.wp-block-cover.bts-cover-hero--sector > .wp-block-cover__background.has-scrim-left-gradient-background {
		background:
			linear-gradient(180deg, rgba(20, 18, 58, 0.85) 0%, rgba(20, 18, 58, 0.45) 16%, rgba(20, 18, 58, 0) 34%),
			var(--wp--preset--gradient--scrim-left) !important;
	}
}

/* Bento tile labels over photos: light, with a soft shadow (coral was unreadable on bright images). */
.bts-bento .bts-bento__tile--image .bts-bento__label {
	color: rgba(246, 244, 240, 0.92);
	text-shadow: 0 1px 2px rgba(10, 8, 30, 0.55);
}

/* Enquiry close: a compact form, the copy column stays beside it, visible focus on every field. */
.bts-landing__form textarea {
	min-height: 0 !important;
	height: 7.5rem;
}

@media (min-width: 782px) {
	.bts-landing__copy {
		position: sticky;
		top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--bts-masthead-h) + 5rem);
	}
}

.bts-form :is(input, select, textarea):focus-visible {
	outline: 2px solid var(--wp--preset--color--night);
	outline-offset: 1px;
	border-color: var(--wp--preset--color--night);
}

.bts-form input[type="submit"]:focus-visible {
	outline: 2px solid var(--wp--preset--color--night);
	outline-offset: 3px;
}

/* Pages with the sticky in-page bar: focused and anchored items land below both bars. */
html:has(.bts-subnav) {
	scroll-padding-top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--bts-masthead-h) + 4.5rem);
}

/* In-page bar: a whole focus ring inside the scroller, kept clear of the phone fade. */
.bts-subnav__links a:focus-visible {
	outline: 2px solid var(--wp--preset--color--coral-deep);
	outline-offset: -4px;
	border-radius: 2px;
}

.bts-subnav__links a {
	scroll-margin-inline: 3rem;
}

/* Section heads on phones: the arrow link follows the heading on the left edge. */
@media (max-width: 781px) {
	.bts-head .wp-block-buttons,
	.bts-plat-head .wp-block-buttons {
		justify-content: flex-start !important;
	}
}

/* Sibling rows (other industries): spacing instead of middots, so wrapped lines start cleanly. */
.bts-cta-band:not(.bts-plat-close) .bts-sibling-row .wp-block-post-template {
	gap: 0.35rem 1.5rem !important;
}

.bts-cta-band:not(.bts-plat-close) .bts-sibling-row .wp-block-post-template > li + li::before {
	content: none;
}

@media (max-width: 781px) {
	.bts-cta-band:not(.bts-plat-close) .bts-sibling-row .wp-block-post-title a {
		min-height: 36px;
	}
}

/* Tools hub service strip: the "Runs on" line stays right-aligned on every row. */
@media (min-width: 601px) {
	.bts-svcstrip__row {
		flex-wrap: nowrap !important;
	}

	.bts-svcstrip__terms {
		margin-left: auto !important;
		text-align: right;
		white-space: nowrap;
	}
}

/* Evidence band: one or two further stories fill the row instead of leaving empty columns. */
.bts-evidence__more .wp-block-post-template:has(> li:only-child) {
	grid-template-columns: minmax(0, 1fr) !important;
}

@media (min-width: 782px) {
	.bts-evidence__more .wp-block-post-template:has(> li:only-child) .bts-card {
		display: grid;
		grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
		column-gap: clamp(1.5rem, 3vw, 2.5rem);
		align-items: start;
	}

	.bts-evidence__more .wp-block-post-template:has(> li:only-child) .bts-card > .wp-block-post-featured-image {
		grid-column: 1;
		grid-row: 1 / span 5;
		margin: 0 !important;
	}

	.bts-evidence__more .wp-block-post-template:has(> li:only-child) .bts-card > :not(.wp-block-post-featured-image) {
		grid-column: 2;
	}

	.bts-evidence__more .wp-block-post-template:has(> li:nth-child(2):last-child) {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

/* Hero proof row: logos at their designed widths, capped in height. */
.bts-trust__logos > .wp-block-image img {
	height: auto !important;
	max-height: 34px;
}

@media (max-width: 781px) {
	.bts-trust__logos > .wp-block-image img {
		width: auto !important;
		max-width: 6.5rem;
		max-height: 26px;
	}
}

.bts-trust__names a {
	color: #fff;
	text-decoration: underline;
	text-decoration-color: rgba(246, 244, 240, 0.4);
	text-underline-offset: 4px;
}

.bts-trust__names a:is(:hover, :focus-visible) {
	text-decoration-color: #fff;
}

/* Footer column headings are H4 now (outline H3 > H4); they keep the small label look. */
.bts-footer__heading {
	font-size: var(--wp--preset--font-size--x-small) !important;
	line-height: 1.45;
	letter-spacing: 0.14em;
	font-weight: 600;
	text-transform: uppercase;
}

/* end 26. Review fixes */

/* ==========================================================================
   27. Single article ("Insights"): templates/single.html, parts/article-close.html
   One 680px reading column on white under the white sticky header; from 1240px
   the contents list sits in the left margin, so nothing widens leftwards. The
   server marks the featured image (is-wide / is-contained) and long quotes
   (is-long); the closing help panel (.bts-help) and "Key takeaways" (.bts-brief)
   are content groups. theme.js adds the contents list, the reading-progress line,
   share links, table labels and scroll regions; without it the page still reads.
   ========================================================================== */

.single-post {
	--bts-measure: 680px;
	--bts-exhibit: 960px;
	--bts-sticky-top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--bts-masthead-h));
}

/* -- Article wrapper (core/group article, flow layout): its parts sit flush ---- */
.bts-article-wrap > * {
	margin-block: 0;
}

/* -- Article head (core/group header.bts-article-head, contentSize 680px) ---- */
.bts-article-head > * {
	margin-block: 0 !important;
}

.bts-article-head .bts-crumbs {
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0;
	color: var(--wp--preset--color--slate);
}

.bts-article-head .bts-crumbs ol {
	gap: 0.25rem 0;
}

.bts-article-head .bts-crumbs a {
	color: inherit;
	opacity: 1;
	text-decoration: none;
}

.bts-article-head .bts-crumbs a:is(:hover, :focus-visible) {
	color: var(--wp--preset--color--coral-deep);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.bts-article-head .bts-article-title {
	margin-top: 0.875rem !important;
	font-size: clamp(2rem, 1.5rem + 1.6vw, 3rem);
	font-weight: 300;
	line-height: 1.1;
	letter-spacing: -0.022em;
	color: var(--wp--preset--color--night);
	text-wrap: balance;
}

.bts-article-head .bts-standfirst {
	margin-top: 1rem !important;
	font-size: clamp(1.1875rem, 1.1rem + 0.4vw, 1.375rem);
	font-weight: 300;
	line-height: 1.45;
	letter-spacing: -0.005em;
	color: var(--wp--preset--color--night);
	text-wrap: pretty;
}

.bts-article-head .bts-standfirst p {
	margin: 0;
}

.bts-article-head .bts-article-meta {
	margin-top: 1.5rem !important;
	padding-top: 1rem;
	border-top: 1px solid var(--wp--preset--color--line);
	gap: 0.25rem 1.25rem !important;
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--wp--preset--color--slate);
}

.bts-article-head .bts-article-meta > * {
	margin: 0 !important;
}

.bts-article-head .bts-article-meta .wp-block-post-author-name {
	font-weight: 600;
	color: var(--wp--preset--color--night);
}

.bts-article-head .bts-article-meta .wp-block-post-date {
	font-size: inherit;
	color: inherit;
}

.bts-article-head .bts-article-meta .bts-share {
	margin-left: auto !important;
}

.bts-article-head .bts-article-image {
	margin-top: clamp(1.5rem, 1.1rem + 1.6vw, 2.5rem) !important;
}

.bts-article-image img {
	display: block;
	border-radius: 0;
	background: var(--wp--preset--color--porcelain);
}

/* functions.php (bts_article_image_shape) marks the figure from the attachment's own size:
   is-contained: square and portrait sources (ratio under 1.2) are shown whole;
   is-wide: sources 1200px+ wide and 1.2+ ratio break out to a 960px 2:1 band from 1024px.
   The class is in the server HTML, so the box never changes size after paint. */
.bts-article-image.is-contained img {
	object-fit: contain !important;
}

@media (min-width: 1024px) {
	.bts-article-head > .bts-article-image.is-wide {
		max-width: var(--bts-exhibit);
	}

	.bts-article-image.is-wide img {
		aspect-ratio: 2 / 1 !important;
	}
}

@media (max-width: 781px) {
	.bts-article-head .bts-article-meta .bts-share {
		display: none !important;
	}
}

/* -- Share links (core/social-links .bts-share; hrefs filled by theme.js) ---- */
html:not(.bts-js) .bts-share,
html:not(.bts-js) .bts-share-row {
	display: none !important;
}

.wp-block-social-links.bts-share {
	gap: 0.375rem !important;
	margin: 0;
}

.bts-share .wp-social-link:hover {
	transform: none;
}

.bts-share .wp-block-social-link-anchor {
	display: grid !important;
	place-items: center;
	box-sizing: border-box;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0 !important;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 50%;
	color: var(--wp--preset--color--night);
	transition: background-color 0.2s, border-color 0.2s, color 0.2s;
}

.bts-share .wp-block-social-link-anchor svg {
	width: 1.05rem;
	height: 1.05rem;
	fill: currentColor;
}

.bts-share .wp-block-social-link-anchor:is(:hover, :focus-visible) {
	border-color: var(--wp--preset--color--night);
	background: var(--wp--preset--color--night);
	color: #fff;
}

.bts-share__status {
	font-size: 0.875rem;
	color: var(--wp--preset--color--slate);
}

/* -- Body (core/post-content .bts-post, contentSize 680px, wideSize 960px) --- */
.wp-block-post-content.bts-post {
	--bts-flow: 1.15em;
	--bts-gap-h2: clamp(2.75rem, 2.3rem + 1.8vw, 3.75rem);
	--bts-gap-h3: clamp(2rem, 1.8rem + 0.8vw, 2.5rem);
	--bts-gap-exhibit: clamp(2rem, 1.7rem + 1.2vw, 2.75rem);
	position: relative;
	font-size: clamp(1.125rem, 1.09rem + 0.15vw, 1.1875rem);
	line-height: 1.65;
	color: var(--wp--preset--color--night);
}

.wp-block-post-content.bts-post > * {
	margin-block-end: 0;
}

.wp-block-post-content.bts-post > * + * {
	margin-block-start: var(--bts-flow);
}

.bts-post :is(strong, b) {
	font-weight: 600;
}

.bts-post :where(p, li, td, figcaption) a {
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

/* Headings: size carries h2, weight carries h3 and h4. */
.bts-post :is(h2, h3, h4) {
	color: var(--wp--preset--color--night);
	text-wrap: balance;
	scroll-margin-top: calc(var(--bts-sticky-top) + 1.5rem);
}

.bts-post h2 {
	font-size: clamp(1.5rem, 1.25rem + 0.9vw, 1.875rem);
	font-weight: 300;
	line-height: 1.2;
	letter-spacing: -0.015em;
}

.wp-block-post-content.bts-post > h2 {
	margin-block-start: var(--bts-gap-h2);
}

.bts-post h3 {
	font-size: clamp(1.1875rem, 1.12rem + 0.3vw, 1.3125rem);
	font-weight: 500;
	line-height: 1.35;
	letter-spacing: -0.005em;
}

.wp-block-post-content.bts-post > h3 {
	margin-block-start: var(--bts-gap-h3);
}

.bts-post h4 {
	font-size: 1em;
	font-weight: 600;
	line-height: 1.45;
	letter-spacing: 0;
}

.wp-block-post-content.bts-post > h4 {
	margin-block-start: 1.75rem;
}

.wp-block-post-content.bts-post > :is(h2, h3, h4) + *,
.bts-post .is-style-card > :is(h2, h3, h4) + * {
	margin-block-start: 0.6rem;
}

.wp-block-post-content.bts-post > h2 + * {
	margin-block-start: 0.85rem;
}

/* Lists (coral-deep markers on white: 5.0:1). */
.bts-post :is(ul, ol):not([class*="is-style-"]) {
	padding-left: 1.25em;
}

.bts-post li + li {
	margin-top: 0.5em;
}

.bts-post li > :is(ul, ol) {
	margin-top: 0.5em;
}

.bts-post li::marker {
	color: var(--wp--preset--color--coral-deep);
}

.bts-post ol > li::marker {
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

/* Exhibits: figures, tables, callouts, quotes and card rows get room around them. */
.wp-block-post-content.bts-post > :where(figure, .wp-block-table, .wp-block-image, .bts-card-row, .bts-stat-callout, .bts-callout, .wp-block-quote, .wp-block-pullquote, .bts-brief, .bts-toc),
.wp-block-post-content.bts-post > :where(figure, .wp-block-table, .wp-block-image, .bts-card-row, .bts-stat-callout, .bts-callout, .wp-block-quote, .wp-block-pullquote, .bts-brief) + * {
	margin-block-start: var(--bts-gap-exhibit);
}

/* The closing help panel opens a section: the h2 gap above it. */
.wp-block-post-content.bts-post > .bts-help {
	margin-block-start: var(--bts-gap-h2);
}

/* "Key takeaways" sits right before the contents list and the first h2. */
.wp-block-post-content.bts-post > .bts-brief + .bts-toc {
	margin-block-start: 1.25rem;
}

/* Migrated "cards": unboxed, a hairline above each sub-section. */
.bts-post .wp-block-group.is-style-card {
	background: none;
	color: inherit;
	border: 0;
	border-top: 1px solid var(--wp--preset--color--line);
	border-radius: 0;
	padding: 1.25rem 0 0;
}

.wp-block-post-content.bts-post > .wp-block-group.is-style-card + .wp-block-group.is-style-card {
	margin-block-start: 1.5rem;
}

.bts-post .is-style-card > * {
	margin-block: 0;
}

.bts-post .is-style-card > * + * {
	margin-block-start: 0.6em;
}

.bts-post .is-style-card > :is(h2, h3, h4) + * {
	margin-block-start: 0.4rem;
}

/* Card rows: parallel items under a neel rule, inside the reading column. */
.wp-block-post-content.bts-post.is-layout-constrained > .wp-block-columns.bts-card-row {
	max-width: var(--bts-measure);
	gap: 1.5rem 2rem !important;
}

.bts-post .bts-card-row .wp-block-group.is-style-card {
	height: auto;
	border-top: 2px solid var(--wp--preset--color--neel);
	padding-top: 1rem;
}

/* Three columns stay in the reading column (the contents rail owns the left margin): smaller type
   while they sit side by side. */
@media (min-width: 782px) {
	.bts-post .bts-card-row:has(> .wp-block-column:nth-child(3)) {
		font-size: 1rem;
	}

	.bts-post .bts-card-row:has(> .wp-block-column:nth-child(3)) h3 {
		font-size: 1.125rem;
	}
}

/* Wide and full-width blocks an editor adds later: below 1240px they centre as usual; from 1240px,
   where the contents rail holds the left margin, they extend to the right only. */
@media (min-width: 1240px) {
	.wp-block-post-content.bts-post.is-layout-constrained > :is(.alignwide, .alignfull) {
		width: min(var(--bts-exhibit), calc(50% + var(--bts-measure) / 2));
		max-width: none;
		margin-left: calc(50% - var(--bts-measure) / 2) !important;
		margin-right: 0 !important;
	}
}

/* A card inside a card (52 in 8 posts, a transform bug): no second frame. */
.bts-post .is-style-card .wp-block-group.is-style-card,
.bts-post .bts-card-row .is-style-card .wp-block-group.is-style-card {
	border: 0;
	padding: 0;
}

/* Stat callouts: a coral rule and a large Light number, no box, static text. */
.bts-post .wp-block-group.bts-stat-callout {
	--bts-rule: var(--wp--preset--color--line);
	--bts-muted: var(--wp--preset--color--slate);
	background: none;
	color: inherit;
	border-radius: 0;
	border-top: 2px solid var(--wp--preset--color--coral);
	padding: 1.25rem 0 0;
}

.bts-post .bts-stat-callout > :is(h2, h3, h4):first-child {
	margin: 0;
	font-size: clamp(2.25rem, 1.8rem + 1.9vw, 3.25rem);
	font-weight: 300;
	line-height: 1.05;
	letter-spacing: -0.03em;
	color: var(--wp--preset--color--neel);
}

.bts-post .bts-stat-callout > p {
	max-width: 34em;
	margin-block: 0.6rem 0;
	font-size: 1rem;
	line-height: 1.55;
	color: var(--wp--preset--color--slate);
}

/* Callout (info box): porcelain panel with a neel edge. */
.bts-post .wp-block-group.bts-callout {
	background: var(--wp--preset--color--porcelain);
	border-left: 2px solid var(--wp--preset--color--neel);
	border-radius: 0;
	padding: 1.25rem 1.5rem;
}

/* Sources under an exhibit, and editor-added "Source: ..." lines. */
.bts-post .bts-source {
	font-size: 0.8125rem !important;
	line-height: 1.5;
	color: var(--wp--preset--color--stone) !important;
}

/* Quotes sized by length, on a coral rule. Short quotes (280 characters or fewer, one paragraph)
   read as a Light pull-out; long ones (.is-long from functions.php, or two or more paragraphs,
   such as the NABH testimonial) drop to body size so they stay readable on a phone. */
.bts-post .wp-block-quote:not(.is-style-testimonial) {
	margin-inline: 0;
	padding: 0 0 0 1.25rem;
	border: 0;
	border-left: 2px solid var(--wp--preset--color--coral);
	font-size: clamp(1.1875rem, 1.05rem + 0.6vw, 1.5rem);
	font-weight: 300;
	line-height: 1.45;
	letter-spacing: -0.005em;
	color: var(--wp--preset--color--night);
}

.bts-post .wp-block-quote:not(.is-style-testimonial):is(.is-long, :has(> p + p)) {
	font-size: 1em;
	font-weight: 400;
	line-height: 1.65;
	letter-spacing: 0;
}

.bts-post .wp-block-quote :is(strong, b) {
	font-weight: 500;
}

.bts-post .wp-block-quote > * {
	margin-block: 0;
}

.bts-post .wp-block-quote > * + * {
	margin-block-start: 0.75em;
}

.bts-post :is(.wp-block-quote, .wp-block-pullquote) cite {
	display: block;
	margin-top: 0.75rem;
	font-size: 0.875rem;
	font-style: normal;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	color: var(--wp--preset--color--slate);
}

@media (min-width: 782px) {
	.bts-post .wp-block-quote:not(.is-style-testimonial) {
		padding-left: 1.75rem;
	}
}

/* Pull quotes (core/pullquote, at most two per article): Light 24-30px, coral rule. */
.bts-post .wp-block-pullquote {
	margin-inline: 0;
	padding: 1.25rem 0 0;
	border: 0;
	border-top: 2px solid var(--wp--preset--color--coral);
	text-align: left;
	font-size: clamp(1.5rem, 1.25rem + 0.9vw, 1.875rem);
	font-weight: 300;
	line-height: 1.3;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--neel);
}

.bts-post .wp-block-pullquote blockquote,
.bts-post .wp-block-pullquote p {
	margin: 0;
}

/* Tables: one rule set for articles (replaces the two that disagreed). */
.bts-post .wp-block-table {
	margin-inline: 0;
}

.bts-post .wp-block-table table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
	line-height: 1.5;
	font-variant-numeric: tabular-nums;
}

/* theme.js turns a table that scrolls sideways into a focusable, labelled region. */
.bts-post .wp-block-table[role="region"]:focus-visible {
	outline: 2px solid var(--wp--preset--color--coral-deep);
	outline-offset: 4px;
}

/* Three or more columns: an 880px exhibit band, centred below 1240px and extending to the
   right only from 1240px, where the contents rail holds the left margin. */
@media (min-width: 1024px) {
	.wp-block-post-content.bts-post.is-layout-constrained > .wp-block-table:has(tr > :nth-child(3)) {
		max-width: min(880px, 100%);
	}
}

@media (min-width: 1240px) {
	.wp-block-post-content.bts-post.is-layout-constrained > .wp-block-table:has(tr > :nth-child(3)) {
		width: min(880px, calc(50% + var(--bts-measure) / 2));
		max-width: none;
		margin-left: calc(50% - var(--bts-measure) / 2) !important;
		margin-right: 0 !important;
	}
}

.bts-post .wp-block-table :is(th, td) {
	padding: 0.75rem 1rem 0.75rem 0;
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
	text-align: left;
	vertical-align: top;
}

.bts-post .wp-block-table :is(th, td):last-child {
	padding-right: 0;
}

.bts-post .wp-block-table thead {
	border-bottom: 0;
}

.bts-post .wp-block-table thead th {
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	color: var(--wp--preset--color--night);
	border-bottom: 1px solid var(--wp--preset--color--night);
}

.bts-post .wp-block-table tbody td:first-child {
	font-weight: 600;
}

/* A header-only "table" used as a heading (brsr): read it as a heading. */
.bts-post .wp-block-table:not(:has(tbody)) th {
	padding: 0;
	border: 0;
	font-size: clamp(1.1875rem, 1.12rem + 0.3vw, 1.3125rem);
	font-weight: 500;
}

.wp-block-post-content.bts-post > .wp-block-table:not(:has(tbody)) + * {
	margin-block-start: 0.75rem;
}

@media (max-width: 599px) {
	/* Two columns: each row stacks; theme.js labels each cell with its column name. */
	.bts-post .wp-block-table:has(tbody):not(:has(tr > :nth-child(3))) :is(table, tbody, tr, td) {
		display: block;
	}

	.bts-post .wp-block-table:has(tbody):not(:has(tr > :nth-child(3))) tbody tr {
		padding: 0.9rem 0;
		border-bottom: 1px solid var(--wp--preset--color--line);
	}

	.bts-post .wp-block-table:has(tbody):not(:has(tr > :nth-child(3))) td {
		padding: 0;
		border: 0;
	}

	.bts-post .wp-block-table:has(tbody):not(:has(tr > :nth-child(3))) td + td {
		margin-top: 0.5rem;
	}

	.bts-post .wp-block-table.has-cell-labels thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}

	.bts-post .wp-block-table.has-cell-labels td::before {
		content: attr(data-label);
		display: block;
		margin-bottom: 0.1rem;
		font-size: 0.8125rem;
		font-weight: 500;
		color: var(--wp--preset--color--slate);
	}

	/* Three or more columns: scroll sideways inside the figure, first column fixed. */
	.bts-post .wp-block-table:has(tr > :nth-child(3)) {
		overflow-x: auto;
		overscroll-behavior-x: contain;
		background:
			linear-gradient(to left, #fff 30%, rgba(255, 255, 255, 0)) right / 2.5rem 100% no-repeat local,
			linear-gradient(to left, rgba(20, 18, 58, 0.14), rgba(20, 18, 58, 0)) right / 0.75rem 100% no-repeat scroll;
	}

	.bts-post .wp-block-table:has(tr > :nth-child(3)) table {
		min-width: 36rem;
	}

	.bts-post .wp-block-table:has(tr > :nth-child(3)) :is(th, td):first-child {
		position: sticky;
		left: 0;
		z-index: 1;
		width: 8.5rem;
		min-width: 8.5rem;
		padding-right: 0.75rem;
		background: #fff;
		box-shadow: 1px 0 0 var(--wp--preset--color--line);
	}
}

/* Images and captions. */
.bts-post .wp-block-image img {
	border-radius: 0;
}

.bts-post :is(figcaption, .wp-element-caption) {
	margin-top: 0.75rem;
	padding-top: 0.6rem;
	border-top: 1px solid var(--wp--preset--color--line);
	font-size: 0.875rem;
	line-height: 1.5;
	text-align: left;
	color: var(--wp--preset--color--slate);
}

/* FAQs (core/details) inside articles. */
.bts-post .wp-block-details summary {
	font-size: 1.0625em;
	font-weight: 500;
}

.bts-post .wp-block-details > :not(summary) {
	color: inherit;
}

/* Footnotes (core/footnotes) and an editor-added "Sources and notes" details block. */
.bts-post .wp-block-footnotes,
.bts-post .wp-block-details.bts-sources {
	margin-block-start: var(--bts-gap-h2);
	font-size: 0.875rem;
	line-height: 1.55;
	color: var(--wp--preset--color--slate);
}

.bts-post .wp-block-footnotes {
	padding-top: 1.25rem;
	padding-left: 1.25em;
	border-top: 1px solid var(--wp--preset--color--line);
}

.bts-post .wp-block-details.bts-sources summary {
	font-size: 1rem;
	font-weight: 600;
}

/* "At a glance" (group .bts-brief, from summary points the article already makes). */
.bts-post .wp-block-group.bts-brief {
	padding: 1.25rem 1.5rem;
	background: var(--wp--preset--color--porcelain);
}

.bts-post .bts-brief > * {
	margin-block: 0;
}

.bts-post .bts-brief .bts-brief__title {
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0;
}

.bts-post .bts-brief .bts-brief__list {
	margin-block-start: 0.75rem;
	font-size: 1rem;
	line-height: 1.55;
}

.bts-post .bts-brief .bts-brief__list > li + li {
	margin-top: 0.6em;
}

/* "How we can help": the closing firm section, wrapped in group.bts-help at transform time (14 posts). */
.bts-post > .bts-help {
	box-sizing: border-box;
	padding: clamp(1.5rem, 1.1rem + 1.6vw, 2.25rem);
	background: var(--wp--preset--color--porcelain);
	border-top: 2px solid var(--wp--preset--color--coral);
}

.bts-post > .bts-help > * {
	margin-block: 0;
}

.bts-post > .bts-help > * + * {
	margin-block-start: var(--bts-flow);
}

.bts-post .bts-help > h2 {
	margin-block-start: 0;
	font-size: clamp(1.375rem, 1.2rem + 0.7vw, 1.625rem);
}

.bts-post > .bts-help > h2 + * {
	margin-block-start: 0.75rem;
}

.bts-post > .bts-help .is-style-card + .is-style-card {
	margin-block-start: 1.25rem;
}

/* -- Contents ("In this article", built by theme.js from the h2s) ----------- */
.bts-toc {
	font-size: 0.9375rem;
	line-height: 1.4;
}

.wp-block-post-content.bts-post > .bts-toc {
	margin-block-start: var(--bts-gap-exhibit);
	border-block: 1px solid var(--wp--preset--color--line);
}

.wp-block-post-content.bts-post > .bts-toc + h2 {
	margin-block-start: var(--bts-gap-exhibit);
}

.bts-toc summary {
	display: flex;
	align-items: center;
	gap: 1rem;
	min-height: 3rem;
	list-style: none;
	cursor: pointer;
	font-weight: 600;
	color: var(--wp--preset--color--night);
}

.bts-toc summary::-webkit-details-marker {
	display: none;
}

.bts-toc__count {
	margin-left: auto;
	font-weight: 400;
	color: var(--wp--preset--color--slate);
}

.bts-toc summary::after {
	content: "+";
	font-size: 1.5rem;
	font-weight: 300;
	line-height: 1;
	color: var(--wp--preset--color--coral-deep);
}

.bts-toc details[open] summary::after {
	content: "\2212";
}

.bts-toc ol {
	margin: 0 0 1rem;
	padding: 0;
	list-style: none;
	border-left: 1px solid var(--wp--preset--color--line);
}

.bts-toc li {
	margin: 0;
}

.bts-toc .bts-toc__link {
	display: block;
	margin-left: -1px;
	padding: 0.5rem 0 0.5rem 1rem;
	border-left: 2px solid transparent;
	color: var(--wp--preset--color--slate);
	text-decoration: none;
}

.bts-toc .bts-toc__link:is(:hover, :focus-visible) {
	color: var(--wp--preset--color--night);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.bts-toc .bts-toc__link[aria-current="true"] {
	border-left-color: var(--wp--preset--color--coral);
	color: var(--wp--preset--color--night);
	font-weight: 500;
}

/* Desktop: the same list sits in the left margin and stays in view. */
.bts-toc-rail {
	display: none;
}

@media (min-width: 1240px) {
	.bts-toc-rail {
		display: block;
		position: absolute;
		top: var(--wp--preset--spacing--60);
		bottom: 0;
		right: calc(50% + var(--bts-measure) / 2 + 3rem);
		width: min(15rem, calc(50% - var(--bts-measure) / 2 - 3rem - var(--bts-gutter)));
		margin: 0 !important;
	}

	.bts-toc-rail .bts-toc {
		position: sticky;
		top: calc(var(--bts-sticky-top) + 2rem);
		max-height: calc(100vh - var(--bts-sticky-top) - 4rem);
		overflow-y: auto;
		font-size: 0.875rem;
	}

	.bts-toc-rail summary {
		min-height: 0;
		padding-bottom: 0.75rem;
		pointer-events: none;
		font-size: 0.8125rem;
	}

	.bts-toc-rail summary::after,
	.bts-toc-rail .bts-toc__count {
		display: none;
	}

	.bts-toc-rail .bts-toc__link {
		padding-block: 0.4rem;
	}

	.bts-toc-rail .bts-toc__link span {
		display: -webkit-box;
		-webkit-line-clamp: 3;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}
}

/* -- Reading progress: a 2px coral line under the sticky header -------------- */
.bts-progress {
	position: fixed;
	top: var(--bts-sticky-top);
	left: 0;
	right: 0;
	z-index: 59;
	height: 2px;
	background: var(--wp--preset--color--coral);
	transform: scaleX(0);
	transform-origin: 0 50%;
	pointer-events: none;
}

/* -- Article end (core/group footer.bts-article-end, contentSize 680px) ------ */
.bts-article-end > * {
	margin-block: 0 !important;
}

.bts-article-end > * + * {
	margin-top: var(--wp--preset--spacing--60) !important;
}

.bts-share-row {
	gap: 0.75rem 1rem !important;
	padding-block: 1.25rem;
	border-block: 1px solid var(--wp--preset--color--line);
}

.bts-share-row > * {
	margin: 0 !important;
}

.bts-share-label {
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--wp--preset--color--night);
}

.bts-colophon > * {
	margin-block: 0;
}

.bts-colophon > * + * {
	margin-top: 1rem;
}

.bts-colophon__title {
	font-size: 1.0625rem !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
	letter-spacing: 0 !important;
	color: var(--wp--preset--color--night);
}

.bts-colophon__terms > * {
	margin: 0 !important;
}

.bts-colophon__terms > * + * {
	margin-top: 0.4rem !important;
}

.bts-colophon .bts-terms-line {
	padding-left: 6rem;
	text-indent: -6rem;
	font-size: 0.9375rem;
	line-height: 1.55;
	text-transform: none;
	letter-spacing: 0;
	font-weight: 400;
}

.bts-colophon .bts-terms-line .wp-block-post-terms__prefix {
	display: inline-block;
	width: 6rem;
	text-indent: 0;
}

.bts-colophon .bts-service-line > .wp-block-post-template {
	margin: 0;
	padding: 0;
	list-style: none;
}

.bts-colophon .bts-terms-line--service {
	flex-wrap: nowrap !important;
	gap: 0 !important;
	padding-left: 0;
	text-indent: 0;
}

.bts-colophon .bts-terms-line--service > * {
	margin: 0 !important;
}

.bts-colophon .bts-terms-line__label {
	flex: 0 0 6rem;
	font-weight: 600;
	color: var(--wp--preset--color--night);
}

.bts-colophon .bts-service-link {
	font-size: inherit;
	font-weight: 400;
	line-height: inherit;
	letter-spacing: 0;
}

.bts-colophon .bts-service-link a {
	color: inherit;
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--line);
	text-underline-offset: 3px;
}

.bts-colophon .bts-service-link a:is(:hover, :focus-visible) {
	text-decoration-color: var(--wp--preset--color--coral-deep);
}

.bts-colophon__firm {
	font-size: 0.9375rem;
	line-height: 1.55;
	color: var(--wp--preset--color--slate);
}

/* -- Keep reading (query 54: same sector, not this article) ----------------- */
.bts-related {
	border-top: 1px solid var(--wp--preset--color--line);
}

.bts-related > .bts-related__head {
	gap: 1rem 2rem !important;
	margin-bottom: clamp(1.5rem, 1.2rem + 1.4vw, 2.5rem) !important;
}

.bts-related__head > * {
	margin: 0 !important;
}

.bts-related__title {
	font-size: clamp(1.75rem, 1.5rem + 1vw, 2.25rem) !important;
	font-weight: 300 !important;
}

.bts-card--related .wp-block-post-featured-image {
	margin-bottom: 1rem !important;
}

.bts-card--related .wp-block-post-featured-image img {
	aspect-ratio: 3 / 2;
}

.bts-card--related .wp-block-post-title {
	margin-top: 0 !important;
	font-size: 1.1875rem;
	font-weight: 400;
	line-height: 1.35;
	letter-spacing: -0.005em;
	color: var(--wp--preset--color--night);
}

.bts-card--related .bts-card__foot {
	padding-top: 0.75rem !important;
	gap: 0.25rem 1rem !important;
	font-size: 0.875rem;
	color: var(--wp--preset--color--slate);
}

.bts-card--related .bts-card__foot > * {
	margin: 0 !important;
}

.bts-card--related .bts-card__topic {
	font-size: inherit;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
}

.bts-card--related .bts-card__topic a {
	position: relative;
	z-index: 1;
	color: inherit;
	text-decoration: none;
}

.bts-card--related .bts-card__foot .wp-block-post-date {
	font-size: inherit;
	color: inherit;
}

@media (max-width: 599px) {
	.bts-related .wp-block-post-template {
		gap: 0 !important;
	}

	.bts-card--related {
		display: grid !important;
		grid-template-columns: 6.5rem 1fr;
		column-gap: 1rem;
		align-items: start;
		padding-block: 1rem;
		border-top: 1px solid var(--wp--preset--color--line);
	}

	.bts-card--related > * {
		grid-column: 2;
	}

	.bts-card--related > .wp-block-post-featured-image {
		grid-column: 1;
		grid-row: 1 / span 2;
		margin: 0 !important;
	}

	.bts-card--related .wp-block-post-featured-image img {
		aspect-ratio: 1;
	}

	.bts-card--related .wp-block-post-title {
		font-size: 1.0625rem;
		font-weight: 500;
	}

	.bts-card--related .bts-card__foot {
		padding-top: 0.4rem !important;
		font-size: 0.8125rem;
	}
}

/* -- Print: the article only. --------------------------------------------- */
@media print {
	body.single-post :is(header.wp-block-template-part, .bts-share, .bts-share-row, .bts-colophon__cta, .bts-toc, .bts-toc-rail, .bts-progress, .bts-related, footer.wp-block-template-part) {
		display: none !important;
	}

	.bts-article-head {
		padding-top: 0 !important;
	}

	.wp-block-post-content.bts-post {
		font-size: 11pt;
		line-height: 1.5;
	}

	.bts-post a[href^="http"]::after {
		content: " (" attr(href) ")";
		font-size: 9pt;
		color: #555;
		overflow-wrap: anywhere;
	}
}

/* end 27. Single article */
