/* ---------------------------------------------------------------------------
   rb26 — core
   ---------------------------------------------------------------------------
   The shared design system for every template built on rb26: tokens, type,
   buttons, section furniture, cards, split panels and the scroll reveal.
   Loaded ONLY on those templates (see nimva_child_enqueue_rb26_assets in
   functions.php), so nothing here can affect the other ~70 WPBakery pages.

   Page-specific components live in css/rb26-<page>.css, which depends on this
   handle and therefore always loads after it.

   Everything is scoped under .rb26. That is deliberate defensive scoping: the
   parent theme ships a 220 KB stylesheet full of loose element selectors, and
   nimva-child/style.css layers ~400 lines of !important on top of it. A single
   root class keeps this file from being dragged into either fight, and means a
   future maintainer can delete the whole homepage by deleting one directory.

   Colours are the official palette from BRAND.md. Do not hardcode hex values
   below the :root block — use the tokens, so a brand refresh is a one-line edit.

   ---------------------------------------------------------------------------
   WARNING — ALWAYS SET color EXPLICITLY ON HEADINGS
   ---------------------------------------------------------------------------
   Nimva emits dynamic CSS inline in <head>, built from its theme options. Among
   it are bare element rules:

       h1 { color: #000000; }   h3 { color: #282828; }   h5 { color: #000000; }

   A rule that targets the element directly ALWAYS beats an inherited value, no
   matter how specific the ancestor's rule is. So this does not work:

       .rb26-hero { color: #fff; }        /* h1 inside still renders #000000 */

   Setting color on a container is therefore not enough for any h1–h6 inside it.
   Every heading in this file needs its own explicit `color`. Two were missed on
   the first pass and rendered near-black — the hero headline on the blue
   gradient, and the About Us / Investors headings over their photographs.

   Links are already covered: `.rb26 a { color: inherit }` near the top of this
   file neutralises the same problem for anchors.
   --------------------------------------------------------------------------- */

/* Self-hosted Inter. Deliberately NOT loaded from fonts.googleapis.com: this
   site runs TrustArc consent management, and a third-party font request fires
   before consent is collected. Serving it ourselves keeps the page a
   single-origin request and removes the compliance question entirely.
   Variable font, weights 300–900 in one file per subset. */
@font-face {
	font-family: "InterLocal";
	font-style: normal;
	font-weight: 300 900;
	font-display: swap;
	src: url("../fonts/inter-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
		U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
		U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "InterLocal";
	font-style: normal;
	font-weight: 300 900;
	font-display: swap;
	src: url("../fonts/inter-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
		U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
		U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

.rb26 {
	/* Primary palette — BRAND.md */
	--rb-black: #000000;
	--rb-dark-blue: #00508c;
	--rb-medium-blue: #177cb2;
	--rb-light-blue: #21b8f2;

	/* Primary gradient */
	--rb-grad-1: #2093bf;
	--rb-grad-2: #065896;
	--rb-grad-3: #041b4b;

	/* Secondary — brand-reference use ONLY (Ritchie Bros. orange, IAA red) */
	--rb-orange: #e87511;
	--rb-red: #c90107;

	/* Sampled from the Veritread wordmark, not from BRAND.md — the brand sheet
	   defines secondary colours for Ritchie Bros. and IAA only. Same rule
	   applies: used solely to identify Veritread, never as a general accent. */
	--rb-veritread: #ffc82d;

	/* Neutrals. Not in the brand sheet, which defines no grey ramp; these are
	   derived from --rb-grad-3 so they sit in the same blue family rather than
	   reading as a second, unrelated grey. */
	--rb-ink: #0b1a2b;
	--rb-body: #41546a;
	--rb-hairline: #dde5ee;
	--rb-tint: #f4f8fc;
	--rb-white: #ffffff;

	--rb-max: 1280px;
	--rb-radius: 18px;
	--rb-pill: 999px; /* brand sheet: "CTA buttons should have a 999 radius" */
	--rb-shadow: 0 2px 4px rgba(4, 27, 75, 0.04), 0 12px 32px rgba(4, 27, 75, 0.08);
	--rb-shadow-lift: 0 4px 8px rgba(4, 27, 75, 0.06), 0 24px 56px rgba(4, 27, 75, 0.16);
	--rb-ease: cubic-bezier(0.16, 1, 0.3, 1);

	font-family: "InterLocal", "Inter", "Manrope", Arial, sans-serif;
	color: var(--rb-body);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

/* The parent theme wraps page content in #content with its own padding and
   emits a breadcrumb title block. A full-bleed hero needs neither. */
.rb26 * {
	box-sizing: border-box;
}
.rb26 img {
	max-width: 100%;
	height: auto;
}
.rb26 h1,
.rb26 h2,
.rb26 h3,
.rb26 p,
.rb26 ul {
	margin: 0;
	padding: 0;
}
.rb26 ul {
	list-style: none;
}
.rb26 a {
	text-decoration: none;
	color: inherit;
}

.rb26-shell {
	max-width: var(--rb-max);
	margin: 0 auto;
	/* Scales with viewport instead of a flat 24px, so the gutter keeps pace
	   on large screens rather than looking cramped relative to --rb-max. */
	padding: 0 clamp(20px, 5vw, 64px);
}

/* ---------------------------------------------------------------------------
   Scroll reveal
   ---------------------------------------------------------------------------
   Elements start translated + transparent and are released by an
   IntersectionObserver adding .is-in (see js/rb26.js).

   .rb26-reveal is applied by JS on load, NOT in the markup. If JS fails or is
   blocked, no element ever gets the hidden state, so the page renders fully
   visible. Progressive enhancement, not a dependency.
   --------------------------------------------------------------------------- */
.rb26-js .rb26-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.7s var(--rb-ease), transform 0.7s var(--rb-ease);
}
.rb26-js .rb26-reveal.is-in {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.rb26-js .rb26-reveal,
	.rb26-js .rb26-reveal.is-in {
		opacity: 1;
		transform: none;
		transition: none;
	}
	.rb26 *,
	.rb26 *::before,
	.rb26 *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}
}

/* ---------------------------------------------------------------------------
   Buttons — brand sheet rules: 999 radius, sentence case, no punctuation,
   19pt minimum. 19pt ≈ 25px; that is the brand's print-oriented floor and is
   very large for a web button, so the web interpretation used here is 19px,
   which is still well above the 16px default and keeps the CTA legible.
   --------------------------------------------------------------------------- */
.rb26-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 19px;
	font-weight: 600;
	line-height: 1;
	padding: 18px 34px;
	border-radius: var(--rb-pill);
	border: 2px solid transparent;
	cursor: pointer;
	transition: transform 0.3s var(--rb-ease), background-color 0.3s var(--rb-ease),
		color 0.3s var(--rb-ease), border-color 0.3s var(--rb-ease),
		box-shadow 0.3s var(--rb-ease);
}
.rb26-btn:hover {
	transform: translateY(-2px);
}
/* `a.` (not bare `.`) on every colour variant below is load-bearing: plain
   `.rb26-btn--white` is a one-class selector, specificity (0,1,0), which loses
   to `.rb26 a { color: inherit }` above — (0,1,1), one class plus the `a`
   element — regardless of which comes first in the file. Every rb26 button
   is always rendered as an `<a>`, so qualifying the selector with `a` ties
   the specificity and this later declaration wins the tie. Drop the `a` and
   every button's text silently falls back to inherited section colour again
   (this is exactly how the hero "View all brands" CTA went white-on-white). */
a.rb26-btn--primary {
	background: var(--rb-dark-blue);
	color: var(--rb-white);
	box-shadow: 0 8px 24px rgba(0, 80, 140, 0.32);
}
a.rb26-btn--primary:hover {
	background: var(--rb-black);
	color: var(--rb-white);
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.28);
}
a.rb26-btn--ghost {
	background: transparent;
	color: var(--rb-white);
	border-color: rgba(255, 255, 255, 0.65);
}
a.rb26-btn--ghost:hover {
	background: var(--rb-white);
	color: var(--rb-grad-3);
	border-color: var(--rb-white);
}
a.rb26-btn--outline {
	background: var(--rb-white);
	color: var(--rb-dark-blue);
	border-color: var(--rb-dark-blue);
}
a.rb26-btn--outline:hover {
	background: var(--rb-dark-blue);
	color: var(--rb-white);
}

/*
 * Colour variants, on top of the shape/size .rb26-btn already sets.
 *
 * Added 2026-08-24 to consolidate what had been five-plus separate,
 * page-scoped copies of the same two or three colour recipes — the
 * homepage, About, and Brand templates had each independently re-declared
 * "white by default, light blue on hover" (and similar) by hand, targeting
 * their own section's class or #id. Use ONE of these instead of --primary
 * when a CTA needs a different colour than the default dark-blue/black-hover
 * — e.g. `rb26-btn rb26-btn--white` rather than `rb26-btn rb26-btn--primary`
 * plus a new one-off selector somewhere. Add a new variant here — not a new
 * per-page override — the next time an existing one doesn't fit.
 */

/* White by default, light blue on hover; ink text throughout. For a
   primary-weight CTA sitting on a dark or coloured section, where the
   default dark-blue fill would disappear into the background. */
a.rb26-btn--white {
	background: var(--rb-white);
	color: var(--rb-ink);
	border-color: var(--rb-white);
}
a.rb26-btn--white:hover {
	background: var(--rb-light-blue);
	color: var(--rb-ink);
	border-color: var(--rb-light-blue);
}

/* Dark blue by default (white text), light blue on hover (ink text). For a
   primary-weight CTA on a section light enough that white would disappear
   instead, but where --primary's black hover reads as too heavy. */
a.rb26-btn--blue {
	background: var(--rb-dark-blue);
	color: var(--rb-white);
	border-color: var(--rb-dark-blue);
}
a.rb26-btn--blue:hover {
	background: var(--rb-light-blue);
	color: var(--rb-ink);
	border-color: var(--rb-light-blue);
}

/* Light blue always, white text always — no colour change on hover (only
   the shared .rb26-btn:hover lift still applies). For a CTA that should
   already read as "the accent colour" rather than needing hover to
   introduce it. */
a.rb26-btn--light-blue,
a.rb26-btn--light-blue:hover {
	background: var(--rb-light-blue);
	color: var(--rb-white);
	border-color: var(--rb-light-blue);
}

/* Removed site-wide per edit request 2026-08-21 (was a decorative hover
   chevron after "Learn more" / CTA labels). The markup still emits
   <span class="rb26-arrow" aria-hidden="true">, so this is what suppresses
   it — deleting the rule would just bring the arrow back. */
.rb26-arrow {
	display: none;
}

.rb26-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 600;
	color: var(--rb-dark-blue);
	font-size: 17px;
}
.rb26-link:hover {
	color: var(--rb-grad-3);
}

/* ---------------------------------------------------------------------------
   Section furniture
   --------------------------------------------------------------------------- */
.rb26-section {
	padding: 104px 0;
}
.rb26-section--tint {
	background: var(--rb-tint);
}
.rb26-eyebrow {
	display: inline-block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rb-medium-blue);
	margin-bottom: 18px;
}
.rb26-h2 {
	font-size: clamp(32px, 4.4vw, 52px);
	line-height: 1.1;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--rb-ink);
}
.rb26-section-head {
	max-width: 780px;
	margin-bottom: 56px;
}
.rb26-section-head p {
	margin-top: 18px;
	font-size: 19px;
	line-height: 1.6;
}

/* Optional banner photo above a section head (currently the Dealer
   Solutions page's two parts, template-solution.php). Full width of the
   shell, not bled to the edges like .rb26-linkcard-image, since this sits
   directly in section flow rather than inside a card. */
.rb26-part-image {
	margin-bottom: 32px;
	border-radius: var(--rb-radius);
	overflow: hidden;
	aspect-ratio: 21 / 9;
}
.rb26-part-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
/* The anchor nav immediately above (.rb26-section--tight, 56px bottom
   padding) plus this section's own full 104px top padding left ~160px of
   bare white space before the image even started. The image itself already
   reads as a clear section break, so it doesn't need that much air above it
   too - only the top is tightened, bottom padding is untouched. */
.rb26-part--has-image {
	padding-top: 40px;
}

/* ---------------------------------------------------------------------------
   Hero
   ---------------------------------------------------------------------------
   Full-bleed brand gradient with two slow-drifting radial "aurora" washes and a
   fine grid overlay. The washes are pure CSS radial-gradients on a pseudo
   element — no images, no canvas, no JS, so this costs one composited layer.
   --------------------------------------------------------------------------- */
.rb26-hero {
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, var(--rb-grad-1) 0%, var(--rb-grad-2) 45%, var(--rb-grad-3) 100%);
	color: var(--rb-white);
	padding: 132px 0 124px;
	isolation: isolate;
}
.rb26-hero::before {
	content: "";
	position: absolute;
	inset: -30%;
	z-index: -2;
	background:
		radial-gradient(38% 45% at 18% 22%, rgba(33, 184, 242, 0.5) 0%, rgba(33, 184, 242, 0) 62%),
		radial-gradient(42% 50% at 82% 72%, rgba(23, 124, 178, 0.55) 0%, rgba(23, 124, 178, 0) 66%);
	animation: rb26-drift 22s ease-in-out infinite alternate;
}
/* Grid overlay, faded out toward the bottom so it never fights the copy. */
.rb26-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.06) 1px, transparent 1px);
	background-size: 68px 68px;
	-webkit-mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.9), transparent 78%);
	mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.9), transparent 78%);
}
@keyframes rb26-drift {
	from {
		transform: translate3d(-3%, -2%, 0) scale(1);
	}
	to {
		transform: translate3d(4%, 3%, 0) scale(1.12);
	}
}

.rb26-hero-inner {
	position: relative;
	max-width: 980px;
}
.rb26-hero h1 {
	font-size: clamp(36px, 5.6vw, 68px);
	line-height: 1.06;
	font-weight: 800;
	letter-spacing: -0.03em;
	text-wrap: balance;
	/* MUST be explicit — see the heading-colour warning at the top of this file.
	   Without it the theme's `h1 {color:#000000}` paints the headline black on
	   the blue gradient. */
	color: var(--rb-white);
}
/* "insights, services, and transaction solutions" picked out in light blue —
   the one place the brand's Light Blue earns a starring role. */
.rb26-hero h1 .rb26-hl {
	color: var(--rb-light-blue);
}
/* Hero sub-headline — "60+ years. 190+ countries. One company."
   Set larger and lighter than body copy so it reads as a continuation of the
   headline rather than as a paragraph, and kept short-measure so the three
   clauses stay on one or two lines. */
.rb26-hero-subhead {
	margin-top: 24px;
	font-size: clamp(18px, 2.1vw, 24px);
	font-weight: 500;
	line-height: 1.45;
	letter-spacing: -0.01em;
	color: rgba(255, 255, 255, 0.88);
	/* Wide enough to keep "60+ years. 190+ countries. One company." (40 chars)
	   on one line — was 34ch, which wrapped it. Edit request 2026-08-21. */
	max-width: 46ch;
}

.rb26-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 42px;
}
.rb26-hero-eyebrow {
	color: rgba(255, 255, 255, 0.72);
	margin-bottom: 22px;
}

/* Brand strip along the bottom of the hero — five wordmarks, reversed out.
   The label is anchored left and the logos are centred in the space that is
   left over, so the row reads as a deliberate lockup rather than a list that
   ran out of items partway across. */
.rb26-hero-strip {
	position: relative;
	margin-top: 72px;
	padding-top: 34px;
	border-top: 1px solid rgba(255, 255, 255, 0.22);
	display: flex;
	align-items: center;
	gap: 44px;
	flex-wrap: wrap;
}
.rb26-hero-strip > span {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.6);
	flex: none;
}
/* Logo knockout-to-white treatment lives in rb26-homepage.css now
   (.rb26-ticker-track img) — the static wrapped row this class supported was
   replaced by the scrolling ticker. */

/* ---------------------------------------------------------------------------
   Brand cards
   --------------------------------------------------------------------------- */
.rb26-brands {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 24px;
}
.rb26-brand {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--rb-white);
	border: 1px solid var(--rb-hairline);
	border-radius: var(--rb-radius);
	padding: 34px 30px 30px;
	overflow: hidden;
	transition: transform 0.4s var(--rb-ease), box-shadow 0.4s var(--rb-ease),
		border-color 0.4s var(--rb-ease);
}
/* Accent bar keyed to each brand. This is the ONE sanctioned use of the
   secondary palette: orange identifies Ritchie Bros., red identifies IAA.
   Everything else stays in the primary blues. */
.rb26-brand::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: var(--rb-accent, var(--rb-dark-blue));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.45s var(--rb-ease);
}
.rb26-brand:hover {
	transform: translateY(-6px);
	box-shadow: var(--rb-shadow-lift);
	border-color: transparent;
}
.rb26-brand:hover::before {
	transform: scaleX(1);
}
.rb26-brand--iaa {
	--rb-accent: var(--rb-red);
}
.rb26-brand--ritchie {
	--rb-accent: var(--rb-orange);
}
.rb26-brand--veritread {
	--rb-accent: var(--rb-veritread);
}

.rb26-brand-logo {
	height: 46px;
	display: flex;
	align-items: center;
	margin-bottom: 22px;
}
.rb26-brand-logo img {
	max-height: 46px;
	width: auto;
	object-fit: contain;
}
.rb26-brand p {
	font-size: 16px;
	line-height: 1.62;
	flex-grow: 1;
}
.rb26-brand-links {
	margin-top: 22px;
	display: flex;
	flex-direction: column;
	gap: 11px;
}
.rb26-brand-links a {
	font-size: 15px;
	font-weight: 600;
	color: var(--rb-dark-blue);
	display: inline-flex;
	align-items: center;
	gap: 7px;
}
.rb26-brand-links a:hover {
	color: var(--rb-black);
}
.rb26-brand-links a::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--rb-accent, var(--rb-dark-blue));
	flex: none;
}
.rb26-brands-cta {
	margin-top: 48px;
	text-align: center;
}

/* ---------------------------------------------------------------------------
   Capability cards — "Everything you need to succeed"
   --------------------------------------------------------------------------- */
.rb26-caps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 22px;
}
.rb26-cap {
	position: relative;
	background: var(--rb-white);
	border: 1px solid var(--rb-hairline);
	border-radius: var(--rb-radius);
	padding: 34px 30px;
	overflow: hidden;
	transition: transform 0.4s var(--rb-ease), box-shadow 0.4s var(--rb-ease);
}
.rb26-cap::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(32, 147, 191, 0.09), rgba(4, 27, 75, 0.06));
	opacity: 0;
	transition: opacity 0.4s var(--rb-ease);
	pointer-events: none;
}
.rb26-cap:hover {
	transform: translateY(-6px);
	box-shadow: var(--rb-shadow-lift);
}
.rb26-cap:hover::after {
	opacity: 1;
}
.rb26-cap-icon {
	width: 64px;
	height: 64px;
	border-radius: 16px;
	background: linear-gradient(135deg, var(--rb-grad-1), var(--rb-grad-3));
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 22px;
}
.rb26-cap-icon img {
	width: 34px;
	height: 34px;
	object-fit: contain;
	filter: brightness(0) invert(1);
}
.rb26-cap h3 {
	font-size: 21px;
	font-weight: 700;
	color: var(--rb-ink);
	margin-bottom: 10px;
}
.rb26-cap p {
	font-size: 16px;
	line-height: 1.62;
}
.rb26-cap .rb26-link {
	margin-top: 18px;
	font-size: 15px;
}

/* ---------------------------------------------------------------------------
   Split panels — About Us / Investors
   --------------------------------------------------------------------------- */
.rb26-splits {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 24px;
}
.rb26-split {
	position: relative;
	min-height: 460px;
	border-radius: var(--rb-radius);
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	isolation: isolate;
}
.rb26-split img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: -2;
	transition: transform 0.7s var(--rb-ease);
}
/* Scrim. Both source photos are bright in their lower half, which is exactly
   where the copy sits, so the original three-stop gradient left the body text
   and "Learn more" hard to read.

   The fix is the scrim, not the text colour: the type is already white, and
   white is the lightest value available — there is no lighter brand colour to
   reach for. Ramping the overlay harder and earlier buys the contrast instead,
   while the top stays light enough that the photograph still reads. */
.rb26-split::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(
		180deg,
		rgba(4, 27, 75, 0.12) 0%,
		rgba(4, 27, 75, 0.42) 36%,
		rgba(4, 27, 75, 0.8) 66%,
		rgba(4, 27, 75, 0.96) 100%
	);
}
.rb26-split:hover img {
	transform: scale(1.06);
}
.rb26-split-body {
	position: relative;
	padding: 40px;
	color: var(--rb-white);
	/* Belt and braces over the scrim: a tight shadow in the same navy keeps the
	   type legible over whichever part of the photograph sits behind it, without
	   reading as a drop shadow. */
	text-shadow: 0 1px 3px rgba(4, 27, 75, 0.55);
}
.rb26-split-body h3 {
	font-size: clamp(26px, 3vw, 36px);
	font-weight: 800;
	letter-spacing: -0.02em;
	margin-bottom: 12px;
	/* MUST be explicit — see the heading-colour warning at the top of this file.
	   Without it the theme's `h3 {color:#282828}` paints "About Us" and
	   "Investors" near-black over the photograph. */
	color: var(--rb-white);
}
.rb26-split-body p {
	font-size: 17px;
	line-height: 1.6;
	/* Was 0.9 alpha. Over a photograph that dimming was costing contrast for no
	   real hierarchy gain — the heading is already separated by size and weight. */
	color: rgba(255, 255, 255, 0.96);
	max-width: 46ch;
	margin-bottom: 22px;
}
.rb26-split .rb26-link {
	color: var(--rb-white);
}
.rb26-split .rb26-link:hover {
	color: var(--rb-light-blue);
}

/* ---------------------------------------------------------------------------
   Responsive
   --------------------------------------------------------------------------- */
@media (max-width: 980px) {
	.rb26-hero {
		padding: 92px 0 84px;
	}
	.rb26-section {
		padding: 76px 0;
	}
	.rb26-hero-strip {
		gap: 28px;
	}
	.rb26-stats {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 620px) {
	.rb26-shell {
		padding: 0 18px;
	}
	.rb26-hero {
		padding: 68px 0 64px;
	}
	.rb26-section {
		padding: 60px 0;
	}
	.rb26-btn {
		width: 100%;
		justify-content: center;
	}
	.rb26-stats {
		grid-template-columns: 1fr;
	}
	/* Once the label wraps onto its own line, centring it too keeps the strip
	   symmetrical instead of leaving the label stranded left above centred
	   logos. */
	.rb26-hero-strip {
		justify-content: center;
		text-align: center;
		gap: 20px;
	}
	.rb26-hero-logos {
		gap: 24px;
	}
	.rb26-hero-strip img {
		height: 20px;
	}
	.rb26-split {
		min-height: 400px;
	}
	.rb26-split-body {
		padding: 28px 24px;
	}
}

/* Keyboard focus. The parent theme does not define a visible focus ring; on a
   dark hero the browser default is effectively invisible, so set one here. */
.rb26 a:focus-visible,
.rb26 button:focus-visible {
	outline: 3px solid var(--rb-light-blue);
	outline-offset: 3px;
	border-radius: 4px;
}

/* ---------------------------------------------------------------------------
   Interior page components
   ---------------------------------------------------------------------------
   Shared by template-about.php, template-brands.php and template-careers.php.
   Anything used by only one of them lives in css/rb26-<page>.css instead.

   Every heading below sets `color` explicitly. That is not stylistic — see the
   heading-colour warning at the top of this file.
   --------------------------------------------------------------------------- */

/* Page header — the interior-page counterpart to the homepage hero. Same brand
   gradient, shorter, and without the aurora animation, so a content page opens
   consistently with the homepage without competing with it. */
.rb26-pagehead {
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, var(--rb-grad-1) 0%, var(--rb-grad-2) 45%, var(--rb-grad-3) 100%);
	color: var(--rb-white);
	padding: 92px 0 84px;
}
.rb26-pagehead h1 {
	font-size: clamp(34px, 5vw, 60px);
	line-height: 1.06;
	font-weight: 800;
	letter-spacing: -0.03em;
	text-wrap: balance;
	color: var(--rb-white);
}

/* Optional photo variant (currently only Blackmon Auctions). The brand
   gradient becomes a scrim over the photo rather than a flat background, so
   the page still reads as this site rather than a stock photo with text on
   it. */
.rb26-pagehead--photo .rb26-pagehead-bg {
	position: absolute;
	/* Oversized top/bottom (not a plain inset:0) so js/rb26-brand.js can
	   translateY this on scroll without ever revealing an edge. */
	top: -12%;
	left: 0;
	right: 0;
	bottom: -12%;
	z-index: 0;
	will-change: transform;
}
.rb26-pagehead--photo .rb26-pagehead-bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.rb26-pagehead--photo .rb26-pagehead-bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, var(--rb-grad-1) 0%, var(--rb-grad-2) 45%, var(--rb-grad-3) 100%);
	opacity: 0.82;
}
.rb26-pagehead--photo .rb26-shell {
	position: relative;
	z-index: 1;
}
.rb26-pagehead-lead {
	margin-top: 22px;
	max-width: 68ch;
	font-size: 19px;
	line-height: 1.62;
	color: rgba(255, 255, 255, 0.92);
}

/* Optional hero CTA button (currently only Blackmon Auctions), under the lead
   paragraph on the Brand Page 2026 template. */
.rb26-hero-ctas {
	margin-top: 32px;
}

/* Shorter hero variant for pages that keep the animated treatment. */
.rb26-hero--short {
	padding: 96px 0 88px;
}

.rb26-section--tight {
	padding: 56px 0;
}

/* Sub-heading level, for panels that sit below a section head. */
.rb26-h3 {
	font-size: clamp(22px, 2.4vw, 28px);
	line-height: 1.2;
	font-weight: 800;
	letter-spacing: -0.015em;
	color: var(--rb-ink);
	margin-bottom: 14px;
}

/* Stat band ------------------------------------------------------------- */
/* Fixed 3 columns rather than auto-fit: with 6 stats (Ritchie Bros.),
   auto-fit's minmax(190px, 1fr) packed 5 into the first row and stranded the
   6th alone on a second row. 3 columns gives every stats block (3 or 6 items,
   the only two counts currently in use) an even, fully-filled grid. */
.rb26-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
.rb26-stat {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 26px 24px;
	border-radius: var(--rb-radius);
	background: var(--rb-tint);
	border: 1px solid var(--rb-hairline);
}
.rb26-stat-figure {
	font-size: clamp(30px, 3.6vw, 44px);
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1;
	color: var(--rb-dark-blue);
	font-variant-numeric: tabular-nums;
}
.rb26-stat-label {
	font-size: 15px;
	font-weight: 600;
	color: var(--rb-body);
}

/* Link cards — a heading, a line of copy, and an optional link ----------- */
.rb26-linkgrid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
	gap: 22px;
}
.rb26-linkcard {
	background: var(--rb-white);
	border: 1px solid var(--rb-hairline);
	border-radius: var(--rb-radius);
	padding: 28px 26px;
	transition: transform 0.4s var(--rb-ease), box-shadow 0.4s var(--rb-ease);
}
.rb26-linkcard:hover {
	transform: translateY(-4px);
	box-shadow: var(--rb-shadow);
}
.rb26-linkcard h3 {
	font-size: 19px;
	font-weight: 700;
	color: var(--rb-ink);
	margin-bottom: 9px;
}
.rb26-linkcard p {
	font-size: 16px;
	line-height: 1.6;
	margin-bottom: 14px;
}
.rb26-linkcard .rb26-link {
	font-size: 15px;
}

/* Optional image at the top of a link card, bleeding to the card's edges
   (currently only the Blackmon Auctions cards use this). */
.rb26-linkcard-image {
	margin: -28px -26px 20px;
	border-radius: var(--rb-radius) var(--rb-radius) 0 0;
	overflow: hidden;
	aspect-ratio: 16 / 10;
}
.rb26-linkcard-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Two-up panels --------------------------------------------------------- */
.rb26-twoup {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 22px;
}
.rb26-panel {
	background: var(--rb-white);
	border: 1px solid var(--rb-hairline);
	border-radius: var(--rb-radius);
	padding: 34px 32px;
}
.rb26-panel p {
	font-size: 17px;
	line-height: 1.62;
	margin-bottom: 20px;
}
.rb26-panel address {
	font-style: normal;
	font-size: 17px;
	line-height: 1.7;
	margin-bottom: 16px;
}
.rb26-contact a {
	color: var(--rb-dark-blue);
	font-weight: 600;
}
.rb26-contact a:hover {
	text-decoration: underline;
}

/* Tick list ------------------------------------------------------------- */
.rb26-ticks {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.rb26-ticks li {
	position: relative;
	padding-left: 30px;
	font-size: 16px;
	line-height: 1.6;
}
.rb26-ticks li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 7px;
	width: 16px;
	height: 9px;
	border-left: 2.5px solid var(--rb-medium-blue);
	border-bottom: 2.5px solid var(--rb-medium-blue);
	transform: rotate(-45deg);
}

/* Media slot inside a capability card ----------------------------------- */
.rb26-cap-media {
	margin-bottom: 20px;
	border-radius: 12px;
	overflow: hidden;
}
.rb26-cap-media img {
	display: block;
	width: 100%;
	height: 190px;
	object-fit: cover;
}

/* Closing CTA ----------------------------------------------------------- */
.rb26-cta {
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
}
.rb26-cta p {
	font-size: 19px;
	line-height: 1.6;
	max-width: 52ch;
}

@media (max-width: 620px) {
	.rb26-pagehead {
		padding: 62px 0 58px;
	}
	.rb26-panel {
		padding: 26px 22px;
	}
}

/* Anchor nav — jump links to the in-page sections that replaced the old
   standalone service pages (Rouse's two, SmartEquip's three). */
.rb26-anchornav {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 36px;
	padding-top: 26px;
	border-top: 1px solid var(--rb-hairline);
}
.rb26-anchornav a {
	display: inline-flex;
	align-items: center;
	font-size: 15px;
	font-weight: 600;
	color: var(--rb-dark-blue);
	padding: 10px 18px;
	border: 1px solid var(--rb-hairline);
	border-radius: var(--rb-pill);
	background: var(--rb-white);
	transition: background-color 0.3s var(--rb-ease), color 0.3s var(--rb-ease),
		border-color 0.3s var(--rb-ease), transform 0.3s var(--rb-ease);
}
.rb26-anchornav a:hover {
	background: var(--rb-dark-blue);
	border-color: var(--rb-dark-blue);
	color: var(--rb-white);
	transform: translateY(-2px);
}

/* Anchor targets sit under no fixed header on this theme, but a little breathing
   room keeps the section heading off the very top of the viewport on jump. */
.rb26-page section[id] {
	scroll-margin-top: 24px;
}

/* Empty state for copy the review document did not supply. Muted and italic so
   it reads as missing rather than as real content — same treatment as the
   Blackmon Auctions placeholder on the brands index. */
.rb26-pending {
	font-style: italic;
	color: #8496a9;
}
