/* Speedking homepage — editorial plum language.
   Canvas #ffffff · panel #fafafa · bands #522d60 plum (brand base) and #302b2f charcoal ·
   sage #b7c6c2 · cyan #d5f4f9 · taupe #9f8d8b · beige #d7c5b2.
   Token name --cb-navy is kept from the previous palette; its value is now the
   brand plum, same pattern as --spk-primary in src/css/main.css.
   Type: Anton 400 (display, uppercase, tracking tight — one weight, hierarchy is
   pure scale) · Plus Jakarta Sans 300/400/600 (body, labels, nav).
   Geometry: square corners and 1px rules; the only circles are the View badge,
   the scroll cue and the avatar.
   Loaded on the front page only (inc/home/home-rsnl.php); every selector is scoped
   under .speedking-theme so plugin and MU-plugin CSS stays isolated. */

.speedking-theme {
	--cb-navy: #522d60;
	--cb-sage: #b7c6c2;
	--cb-white: #ffffff;
	--cb-taupe: #9f8d8b;
	--cb-beige: #d7c5b2;
	--cb-cyan: #d5f4f9;
	--cb-blue: #bbe2f5;
	--cb-charcoal: #302b2f;
	--cb-panel: #fafafa;
	/* Rules on light bands, and their counterpart inside a navy one. */
	--cb-line: rgba(82, 45, 96, .14);
	--cb-line-soft: rgba(82, 45, 96, .08);
	--cb-line-rev: rgba(255, 255, 255, .16);
	--cb-head: "Anton", "Arial Narrow", Impact, system-ui, sans-serif;
	--cb-body: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--cb-max: 1320px;
	--cb-gutter: clamp(1rem, 3.4vw, 3rem);
	--cb-sec: clamp(5rem, 10vw, 9.5rem);
	/* The one easing curve: everything that moves uses it. */
	--cb-ease: cubic-bezier(0.16, 1, 0.3, 1);
}

.speedking-theme.cb-home {
	margin: 0;
	background: var(--cb-white);
	color: var(--cb-navy);
	font-family: var(--cb-body);
	font-size: 17px;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0;
	-webkit-font-smoothing: antialiased;
	/* The design's pointer. Prose and controls opt back out below, so reading and
	   clicking keep their own affordances. */
	cursor: crosshair;
}

.speedking-theme.cb-home *,
.speedking-theme.cb-home *::before,
.speedking-theme.cb-home *::after { box-sizing: border-box; }

.speedking-theme .cb-wrap { max-width: var(--cb-max); margin: 0 auto; padding: 0 var(--cb-gutter); }
.speedking-theme .cb-home a { color: inherit; cursor: pointer; }
.speedking-theme .cb-home :is(p, li, dd, dt, td, th, figcaption, blockquote) { cursor: text; }
.speedking-theme .cb-home :is(button, summary, label) { cursor: pointer; }
.speedking-theme .cb-home :is(input, select, textarea) { cursor: auto; }
.speedking-theme .cb-home img { display: block; max-width: 100%; height: auto; }
.speedking-theme .cb-home ::selection { background: var(--cb-cyan); color: var(--cb-navy); }
.speedking-theme .cb-home :is(a, button, input, select, textarea):focus-visible { outline: 2px solid var(--cb-cyan); outline-offset: 3px; }

/* ---- Shared type ------------------------------------------------------- */

/* Eyebrow: the pre-headline label. 12px, tracked open, never larger. */
.speedking-theme .cb-eyebrow {
	margin: 0 0 clamp(1.25rem, 2.2vw, 2rem);
	font-family: var(--cb-body);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: .25em;
	text-transform: uppercase;
	color: var(--cb-taupe);
}

/* Anton ships a single weight, so scale alone carries the hierarchy. */
.speedking-theme .cb-h1 {
	margin: 0;
	font-family: var(--cb-head);
	font-weight: 400;
	font-size: clamp(2.6rem, 8vw, 7rem);
	line-height: .95;
	letter-spacing: -.035em;
	text-transform: uppercase;
	color: var(--cb-white);
}
/* The headline's second line: 1px sage stroke on a transparent fill. */
.speedking-theme .cb-outline {
	display: block;
	color: transparent;
	-webkit-text-stroke: 1px var(--cb-sage);
	text-stroke: 1px var(--cb-sage);
}
.speedking-theme .cb-h2 {
	margin: 0 0 clamp(1.5rem, 3vw, 2.5rem);
	font-family: var(--cb-head);
	font-weight: 400;
	font-size: clamp(2.2rem, 5.4vw, 4.5rem);
	line-height: 1;
	letter-spacing: -.028em;
	text-transform: uppercase;
	color: var(--cb-navy);
}
/* The qualifier after the heading's dash: the taupe aside, set small. */
.speedking-theme .cb-h2__tail {
	display: block;
	margin-top: 14px;
	font-family: var(--cb-body);
	font-weight: 300;
	font-size: clamp(1rem, 1.6vw, 1.3rem);
	line-height: 1.4;
	letter-spacing: .01em;
	text-transform: none;
	font-style: italic;
	color: var(--cb-taupe);
}
.speedking-theme .cb-lead { margin: 0 0 22px; font-size: 18px; line-height: 1.65; letter-spacing: 0; color: var(--cb-navy); }
.speedking-theme .cb-body { margin: 0 0 22px; font-size: 16px; line-height: 1.75; letter-spacing: 0; color: var(--cb-taupe); }
.speedking-theme .cb-section .cb-split__body p:last-child { margin-bottom: 0; }

/* ---- Controls — 1px outline, fills on hover ---------------------------- */
.speedking-theme .cb-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 15px 30px;
	background: transparent;
	color: currentColor;
	border: 1px solid currentColor;
	border-radius: 0;
	font-family: var(--cb-body);
	font-size: 11px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: .2em;
	text-transform: uppercase;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .5s var(--cb-ease), color .5s var(--cb-ease);
}
/* On a navy band the control fills white; on a light one it fills navy. One
   rule, two contexts — .cb-band--dark flips the two custom properties. */
.speedking-theme .cb-btn { --cb-fill: var(--cb-navy); --cb-label: var(--cb-white); }
.speedking-theme .cb-btn:hover { background: var(--cb-fill); color: var(--cb-label); }
.speedking-theme .cb-hero .cb-btn,
.speedking-theme .cb-band--dark .cb-btn,
.speedking-theme .cb-final .cb-btn { --cb-fill: var(--cb-white); --cb-label: var(--cb-navy); }
.speedking-theme .cb-btn--block { width: 100%; margin-top: 8px; }

/* Text link with a travelling arrow: the arrow is the only thing that moves. */
.speedking-theme .cb-ghost {
	display: inline-flex;
	align-items: center;
	gap: .7rem;
	font-family: var(--cb-body);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	text-decoration: none;
	color: inherit;
}
.speedking-theme .cb-ghost span[aria-hidden] { transition: transform .5s var(--cb-ease); }
.speedking-theme .cb-ghost:hover span[aria-hidden] { transform: translateX(8px); }
.speedking-theme .cb-ctas { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 28px; margin-top: 32px; }

/* ---- Hero — full frame, navy, type-led -------------------------------- */
.speedking-theme .cb-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	min-height: 100svh;
	display: flex;
	background: var(--cb-navy);
	color: var(--cb-white);
	padding-block: calc(var(--spk-header-h, 92px) + 2rem) clamp(2rem, 5vw, 4rem);
}
/* The site's own photograph, desaturated and dimmed to a texture: the type
   carries the frame, the picture gives it depth. */
.speedking-theme .cb-hero__media {
	position: absolute;
	inset: 0;
	z-index: -1;
	margin: 0;
}
.speedking-theme .cb-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: grayscale(1) contrast(1.1);
	opacity: .22;
}
.speedking-theme .cb-hero .cb-wrap { display: flex; flex-direction: column; justify-content: space-between; gap: clamp(2rem, 6vw, 5rem); width: 100%; }
.speedking-theme .cb-hero__panel { margin-top: auto; }
.speedking-theme .cb-hero .cb-eyebrow { color: var(--cb-sage); }
/* Standfirst and scroll cue share the closing row: copy left, cue right. */
.speedking-theme .cb-hero__foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.speedking-theme .cb-hero__lead {
	max-width: 320px;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.7;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cb-taupe);
}
.speedking-theme .cb-hero__lead p { margin: 0; }
.speedking-theme .cb-hero__lead {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 5;
	line-clamp: 5;
	overflow: hidden;
}
/* The scroll cue: a 1px circle with a nudging arrow. */
.speedking-theme .cb-scroll {
	flex-shrink: 0;
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	border: 1px solid var(--cb-line-rev);
	border-radius: 50%;
	color: var(--cb-white);
	text-decoration: none;
	animation: cb-bounce 2s var(--cb-ease) infinite;
}
.speedking-theme .cb-scroll svg { width: 16px; height: 16px; }
.speedking-theme .cb-scroll:hover { border-color: var(--cb-white); }
@keyframes cb-bounce {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(8px); }
}

/* ---- Bands ------------------------------------------------------------- */
.speedking-theme .cb-band { padding-block: var(--cb-sec); background: var(--cb-white); }
.speedking-theme .cb-band--sage { background: var(--cb-panel); }
.speedking-theme .cb-band--sand { background: var(--cb-panel); }
/* The reversed band: navy fill, white type, sage labels, white-filling buttons. */
.speedking-theme .cb-band--dark { background: var(--cb-navy); color: var(--cb-white); }
.speedking-theme .cb-band--dark .cb-h2 { color: var(--cb-white); }
.speedking-theme .cb-band--dark .cb-eyebrow { color: var(--cb-sage); }
.speedking-theme .cb-band--dark .cb-lead { color: var(--cb-white); }
.speedking-theme .cb-band--dark .cb-body { color: rgba(255, 255, 255, .72); }
.speedking-theme .cb-band--dark .cb-list li { border-bottom-color: var(--cb-line-rev); }
.speedking-theme .cb-band--dark .cb-list li::before { background: var(--cb-sage); }

/* ---- In short — the stored answer box --------------------------------- */
.speedking-theme .cb-facts__lead { max-width: 60ch; margin: 0 0 clamp(2rem, 4vw, 3.5rem); font-size: clamp(1.15rem, 2vw, 1.6rem); line-height: 1.45; color: var(--cb-navy); }
.speedking-theme .cb-facts__lead p { margin: 0; }
.speedking-theme .cb-facts__list { list-style: none; margin: 0 0 clamp(2.5rem, 5vw, 4rem); padding: 0; display: grid; gap: 0; }
.speedking-theme .cb-facts__list li { display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: clamp(1rem, 3vw, 2.5rem); align-items: baseline; padding: 26px 0; border-top: 1px solid var(--cb-line); }
.speedking-theme .cb-facts__list li:last-child { border-bottom: 1px solid var(--cb-line); }
/* The step numeral, outlined: present as structure, not as something to read. */
.speedking-theme .cb-facts__num {
	font-family: var(--cb-head);
	font-weight: 400;
	font-size: clamp(2.2rem, 4vw, 3.4rem);
	line-height: .8;
	letter-spacing: -.03em;
	color: transparent;
	-webkit-text-stroke: 1px var(--cb-taupe);
	text-stroke: 1px var(--cb-taupe);
}
.speedking-theme .cb-facts__text { font-size: 16px; line-height: 1.7; color: var(--cb-navy); }
/* Reference figures, set as 1px cells rather than pills. */
.speedking-theme .cb-chips { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 0; margin: 0 0 clamp(1.5rem, 3vw, 2.5rem); border: 1px solid var(--cb-line); }
.speedking-theme .cb-chip { padding: 26px 28px; border-right: 1px solid var(--cb-line); }
.speedking-theme .cb-chip:last-child { border-right: 0; }
.speedking-theme .cb-chip dt { margin: 0 0 12px; font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--cb-taupe); }
.speedking-theme .cb-chip dd { margin: 0; font-family: var(--cb-head); font-size: clamp(1.1rem, 1.8vw, 1.5rem); line-height: 1.12; letter-spacing: -.01em; text-transform: uppercase; color: var(--cb-navy); }
.speedking-theme .cb-chip__note { display: block; margin-top: 8px; font-family: var(--cb-body); font-size: 11px; font-weight: 400; letter-spacing: .14em; text-transform: uppercase; color: var(--cb-taupe); }
.speedking-theme .cb-honest { margin: 0; max-width: 70ch; font-size: 12px; line-height: 1.7; letter-spacing: .1em; text-transform: uppercase; color: var(--cb-taupe); }

/* ---- On this page ----------------------------------------------------- */
.speedking-theme .cb-index { background: var(--cb-navy); color: var(--cb-white); padding-block: clamp(2rem, 4vw, 3rem); }
.speedking-theme .cb-index .cb-eyebrow { color: var(--cb-sage); margin-bottom: 18px; }
.speedking-theme .cb-tabs { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 28px; }
.speedking-theme .cb-tabs a { font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; color: rgba(255, 255, 255, .72); transition: color .4s var(--cb-ease); }
.speedking-theme .cb-tabs a:hover { color: var(--cb-white); }

/* ---- Content sections — the asymmetric featured rows ------------------ */
.speedking-theme .cb-split { display: grid; gap: clamp(1.5rem, 3vw, 2.5rem); }
.speedking-theme .cb-split--media { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(2.5rem, 7vw, 7rem); align-items: center; }
.speedking-theme .cb-split--media .cb-split__text { display: flex; flex-direction: column; justify-content: center; }
/* The picture and its decorative square change sides every illustrated row. */
.speedking-theme .cb-split--flip .cb-split__media { order: 2; }
.speedking-theme .cb-split__media {
	position: relative;
	isolation: isolate;
	margin: 0;
	aspect-ratio: 4 / 5;
	overflow: hidden;
}
/* The cyan square, offset behind the frame: the one decorative shape. Drawn as
   a shadow because the frame clips its children so the hover scale cannot spill. */
.speedking-theme .cb-split__media { box-shadow: -48px 48px 0 0 rgba(213, 244, 249, .2); }
.speedking-theme .cb-split--flip .cb-split__media { box-shadow: 48px 48px 0 0 rgba(213, 244, 249, .2); }
.speedking-theme .cb-split__media img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); transition: transform .7s var(--cb-ease), filter .7s var(--cb-ease); }
.speedking-theme .cb-split--media:hover .cb-split__media img { filter: grayscale(0); transform: scale(1.1); }
.speedking-theme .cb-split__head { margin: 0 0 clamp(1.25rem, 2.5vw, 2rem); }
.speedking-theme .cb-split__head .cb-eyebrow { margin-bottom: 18px; }
.speedking-theme .cb-split__body { max-width: 62ch; }
/* Stored lists: hairline rows opening on a short rule that grows on hover. */
.speedking-theme .cb-list { list-style: none; margin: 24px 0 0; padding: 0; }
.speedking-theme .cb-list li { position: relative; padding: 18px 0 18px 80px; border-bottom: 1px solid var(--cb-line); font-size: 16px; line-height: 1.6; }
/* Absolute, not a flex item: a stored list item is bare text with <strong> in
   it, and flex would lay every text node out as its own column. */
.speedking-theme .cb-list li::before { content: ""; position: absolute; left: 0; top: 1.45em; width: 40px; height: 1px; background: var(--cb-taupe); transition: width .5s var(--cb-ease), background-color .5s var(--cb-ease); }
.speedking-theme .cb-list li:hover::before { width: 64px; background: var(--cb-navy); }

/* ---- Journal — the asymmetric portfolio grid ------------------------- */
.speedking-theme .cb-journal .cb-h2 { margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.speedking-theme .cb-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2.5rem, 6vw, 6rem); align-items: start; }
/* Every second card drops 4rem: this is what makes the grid read as masonry
   rather than as a row of equal thumbnails. */
.speedking-theme .cb-cards > *:nth-child(even) { margin-top: 4rem; }
.speedking-theme .cb-card { display: flex; flex-direction: column; }
.speedking-theme .cb-card__media {
	position: relative;
	display: block;
	overflow: hidden;
	margin: 0 0 24px;
	aspect-ratio: 4 / 5;
	background: var(--cb-navy);
}
.speedking-theme .cb-card__media img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); transition: transform .7s var(--cb-ease), filter .7s var(--cb-ease); }
/* Hover-reveal viewport: a navy wash and a white disc reading VIEW, both drawn
   on the media link so no card markup carries decoration. */
.speedking-theme .cb-card__media::before { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(82, 45, 96, .6); opacity: 0; transition: opacity .5s var(--cb-ease); }
.speedking-theme .cb-card__media::after {
	content: "VIEW";
	position: absolute;
	z-index: 2;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%) scale(.9);
	display: grid;
	place-items: center;
	width: 96px;
	height: 96px;
	border-radius: 50%;
	background: var(--cb-white);
	color: var(--cb-navy);
	font-family: var(--cb-head);
	font-size: 14px;
	letter-spacing: .2em;
	opacity: 0;
	transition: opacity .5s var(--cb-ease), transform .5s var(--cb-ease);
}
.speedking-theme .cb-card:hover .cb-card__media img { filter: grayscale(0); transform: scale(1.1); }
.speedking-theme .cb-card:hover .cb-card__media::before { opacity: 1; }
.speedking-theme .cb-card:hover .cb-card__media::after { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.speedking-theme .cb-card__title { margin: 0 0 12px; font-family: var(--cb-head); font-weight: 400; font-size: clamp(1.3rem, 2.2vw, 2rem); line-height: 1.05; letter-spacing: -.02em; text-transform: uppercase; }
.speedking-theme .cb-card__title a { text-decoration: none; }
.speedking-theme .cb-card__text { margin: 0 0 18px; font-size: 15px; line-height: 1.7; color: var(--cb-taupe); }
.speedking-theme .cb-card .cb-ghost { margin-top: auto; }

/* ---- Keep reading — the capabilities rail ---------------------------- */
.speedking-theme .cb-related { background: var(--cb-panel); }
.speedking-theme .cb-related .cb-wrap { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(2rem, 5vw, 5rem); }
.speedking-theme .cb-related .cb-eyebrow { margin: 0; }
.speedking-theme .cb-related .cb-h2 { margin: 0 0 clamp(1.5rem, 3vw, 2.5rem); }
.speedking-theme .cb-links { list-style: none; margin: 0; padding: 0; }
.speedking-theme .cb-links li { position: relative; padding: 22px 0 22px 80px; border-bottom: 1px solid var(--cb-line); }
.speedking-theme .cb-links li::before { content: ""; position: absolute; left: 0; top: 1.7em; width: 40px; height: 1px; background: var(--cb-taupe); transition: width .5s var(--cb-ease), background-color .5s var(--cb-ease); }
.speedking-theme .cb-links li:hover::before { width: 64px; background: var(--cb-navy); }
.speedking-theme .cb-links a { font-family: var(--cb-head); font-weight: 400; font-size: clamp(1.1rem, 1.9vw, 1.6rem); line-height: 1.12; letter-spacing: -.015em; text-transform: uppercase; text-decoration: none; color: var(--cb-navy); }
.speedking-theme .cb-links a:hover { color: var(--cb-taupe); }

/* ---- The desk statement — charcoal quote wall ------------------------ */
.speedking-theme .cb-statement {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: var(--cb-charcoal);
	color: var(--cb-white);
	padding-block: var(--cb-sec);
}
/* The oversized quotation mark: navy on charcoal at 30%, texture only. */
.speedking-theme .cb-statement::before {
	content: "\201C";
	position: absolute;
	z-index: -1;
	top: -.26em;
	left: -.03em;
	font-family: var(--cb-head);
	font-size: clamp(14rem, 30vw, 30rem);
	line-height: 1;
	color: var(--cb-navy);
	opacity: .3;
	pointer-events: none;
}
.speedking-theme .cb-statement .cb-eyebrow { color: var(--cb-sage); }
.speedking-theme .cb-statement__quote {
	margin: 0;
	max-width: 46ch;
	font-family: var(--cb-head);
	font-weight: 400;
	font-size: clamp(1.6rem, 3.6vw, 3.2rem);
	line-height: 1.12;
	letter-spacing: -.022em;
	text-transform: uppercase;
}
.speedking-theme .cb-statement__foot { display: flex; align-items: center; gap: 1.25rem; margin-top: clamp(2rem, 4vw, 3rem); }
.speedking-theme .cb-statement__mark { flex-shrink: 0; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--cb-sage); color: var(--cb-navy); font-family: var(--cb-head); font-size: 20px; letter-spacing: .02em; }
.speedking-theme .cb-statement__name { display: block; font-family: var(--cb-head); font-size: 20px; letter-spacing: .02em; text-transform: uppercase; }
.speedking-theme .cb-statement__role { display: block; margin-top: 6px; font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--cb-taupe); }

/* ---- Closing band — the sign-off and the brief form ----------------- */
.speedking-theme .cb-final { background: var(--cb-navy); color: var(--cb-white); }
.speedking-theme .cb-final__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: start; }
.speedking-theme .cb-final .cb-eyebrow { color: var(--cb-sage); }
.speedking-theme .cb-final .cb-h2 { color: var(--cb-white); font-size: clamp(2.6rem, 7vw, 6rem); }
.speedking-theme .cb-final .cb-lead { color: rgba(255, 255, 255, .72); max-width: 54ch; font-size: 16px; }
.speedking-theme .cb-contact { display: grid; gap: 0; margin: clamp(2rem, 4vw, 3rem) 0 0; border-top: 1px solid var(--cb-line-rev); }
.speedking-theme .cb-contact > div { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .75rem 2rem; padding: 22px 0; border-bottom: 1px solid var(--cb-line-rev); }
.speedking-theme .cb-contact dt { margin: 0; font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--cb-taupe); }
.speedking-theme .cb-contact dd { margin: 0; }
/* The desk's lines are the band's display links: sage, underlined at 8px. */
.speedking-theme .cb-contact dd a {
	font-family: var(--cb-head);
	font-weight: 400;
	font-size: clamp(1.1rem, 2.2vw, 1.9rem);
	line-height: 1.1;
	letter-spacing: -.01em;
	color: var(--cb-sage);
	text-decoration: underline;
	text-underline-offset: 8px;
	text-decoration-thickness: 1px;
}
.speedking-theme .cb-contact dd a:hover { color: var(--cb-white); }

/* The brief form: underlined fields on the navy band, nothing boxed. */
.speedking-theme .cb-form { border: 1px solid var(--cb-line-rev); padding: clamp(1.75rem, 3.5vw, 2.75rem); }
.speedking-theme .cb-form h3 { margin: 0 0 12px; font-family: var(--cb-head); font-weight: 400; font-size: clamp(1.3rem, 2.4vw, 1.9rem); line-height: 1.12; letter-spacing: -.02em; text-transform: uppercase; color: var(--cb-white); }
.speedking-theme .cb-form__note { margin: 0 0 clamp(1.5rem, 3vw, 2rem); font-size: 12px; line-height: 1.7; letter-spacing: .08em; text-transform: uppercase; color: var(--cb-taupe); }
.speedking-theme .cb-form label { display: block; margin: 0 0 8px; font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--cb-taupe); }
.speedking-theme .cb-form :is(input, select) {
	display: block;
	width: 100%;
	min-height: 48px;
	margin: 0 0 22px;
	padding: 0;
	border: 0;
	border-bottom: 1px solid var(--cb-line-rev);
	border-radius: 0;
	background: transparent;
	color: var(--cb-white);
	font-family: var(--cb-body);
	font-size: 16px;
	font-weight: 400;
	transition: border-color .4s var(--cb-ease);
}
.speedking-theme .cb-form :is(input, select):focus { border-bottom-color: var(--cb-white); outline: none; }
.speedking-theme .cb-form select option { background: var(--cb-navy); color: var(--cb-white); }

/* ---- Mobile sticky bar ----------------------------------------------- */
.speedking-theme .cb-sticky { display: none; }
@media (max-width: 760px) {
	.speedking-theme .cb-sticky {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 70;
		display: grid;
		grid-template-columns: 1fr 1fr;
		background: var(--cb-navy);
		border-top: 1px solid var(--cb-line-rev);
		padding-bottom: env(safe-area-inset-bottom, 0px);
	}
	.speedking-theme .cb-sticky a {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 56px;
		font-size: 11px;
		font-weight: 600;
		letter-spacing: .2em;
		text-transform: uppercase;
		text-decoration: none;
	}
	.speedking-theme .cb-sticky__wa { background: var(--cb-white); color: var(--cb-navy); }
	.speedking-theme .cb-sticky__brief { color: var(--cb-white); border-left: 1px solid var(--cb-line-rev); }
	/* The bar already offers WhatsApp; the floating button would sit on top of it. */
	.speedking-theme.cb-home .spk-wa-float { display: none; }
}

/* ---- Responsive ------------------------------------------------------ */
@media (max-width: 1000px) {
	.speedking-theme .cb-split--media { grid-template-columns: minmax(0, 1fr); }
	.speedking-theme .cb-split--flip .cb-split__media { order: 0; }
	.speedking-theme .cb-related .cb-wrap { grid-template-columns: minmax(0, 1fr); }
	.speedking-theme .cb-final__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
	.speedking-theme .cb-cards { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
	.speedking-theme .cb-cards > *:nth-child(even) { margin-top: 0; }
	.speedking-theme .cb-facts__list li { grid-template-columns: 3.5rem minmax(0, 1fr); gap: 1rem; }
	.speedking-theme .cb-list li { padding-left: 56px; }
	.speedking-theme .cb-links li { padding-left: 56px; }
	.speedking-theme :is(.cb-list, .cb-links) li::before { width: 32px; }
	.speedking-theme .cb-chips { grid-template-columns: minmax(0, 1fr); }
	.speedking-theme .cb-chip { border-right: 0; border-bottom: 1px solid var(--cb-line); }
	.speedking-theme .cb-chip:last-child { border-bottom: 0; }
	.speedking-theme .cb-hero__foot { flex-direction: column; align-items: flex-start; gap: 2rem; }
	/* The sticky bar owns the last 56px of the screen; without this the standfirst
	   and the scroll cue end up underneath it. */
	.speedking-theme .cb-hero { padding-bottom: calc(56px + 2rem); }
	.speedking-theme .cb-hero__lead { max-width: none; -webkit-line-clamp: 3; line-clamp: 3; }
	.speedking-theme .cb-split__media { box-shadow: -16px 16px 0 0 rgba(213, 244, 249, .2); }
	.speedking-theme .cb-split--flip .cb-split__media { box-shadow: 16px 16px 0 0 rgba(213, 244, 249, .2); }
	/* A 96px disc covers the photograph it is meant to reveal. */
	.speedking-theme .cb-card__media::after { width: 72px; height: 72px; font-size: 12px; }
	/* The sticky bar owns the bottom of the screen. */
	.speedking-theme .cb-final { padding-bottom: calc(var(--cb-sec) + 56px); }
}
/* No hover on touch: the photographs ship in colour and the badge never arms. */
@media (hover: none) {
	.speedking-theme .cb-card__media img,
	.speedking-theme .cb-split__media img { filter: grayscale(0); }
	.speedking-theme .cb-card__media::before,
	.speedking-theme .cb-card__media::after { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.speedking-theme .cb-scroll { animation: none; }
	.speedking-theme .cb-home * { transition: none !important; animation: none !important; }
}
