/*
 * Ralph Jacobs Blog — production stylesheet.
 *
 * Token values are the design source (design-preview-tokens.css /
 * DESIGN-TOKEN-HANDOVER.md); colours/spacing/type presets also come from
 * theme.json (--wp--preset--*). This file adds the functional tokens theme.json
 * does not express (focus, motion, z-index, radii, control geometry) and the
 * namespaced rj-* component styles. No design-preview classes are used.
 */

/* ---------------------------------------------------------------- Tokens -- */
:root {
	/* Colour aliases onto the theme.json presets. */
	--rj-green: var(--wp--preset--color--brand-primary);
	--rj-green-deep: var(--wp--preset--color--brand-primary-deep);
	--rj-russet: var(--wp--preset--color--brand-secondary);
	--rj-gold: var(--wp--preset--color--accent-gold);

	/* Accessible companions to the brand gold, for SMALL TEXT only.
	   The brand gold (#89682c) reaches 5.15:1 on white — fine — but only
	   2.43:1 on the deep-green surfaces and 3.49:1 on parchment, so uppercase
	   11–12px eyebrow labels on those backgrounds fail WCAG 1.4.3 (4.5:1).
	   These two keep the same hue family and clear the threshold:
	     on deep green  #C9A227 → 5.17:1
	     on parchment   #6B5220 → 4.99:1 (7.36:1 on white)
	   Use --rj-gold for larger display type and decoration. */
	--rj-gold-on-dark: #c9a227;
	--rj-gold-on-light: #6b5220;
	--rj-ivory: var(--wp--preset--color--surface-default);
	--rj-white: var(--wp--preset--color--surface-elevated);
	--rj-parchment: var(--wp--preset--color--surface-subtle);

	/* The page ground. Plain white by decision (DECISION-LOG, 2026-09-03) —
	   the brief's warm #F5F2E9 is retained as --rj-ivory for inset panels, so
	   this is deliberately NOT --rj-ivory. Keep theme.json's
	   styles.color.background pointing at the same preset. */
	--rj-page: var(--rj-white);
	--rj-text-primary: var(--wp--preset--color--text-primary);
	--rj-text-body: var(--wp--preset--color--text-body);
	--rj-border-subtle: var(--wp--preset--color--border-default);
	--rj-border-control: #9B8B6C;
	--rj-border-strong: var(--wp--preset--color--border-strong);

	/* Focus. */
	--rj-focus-outline-width: 2px;
	--rj-focus-outline-color: var(--wp--preset--color--text-primary);
	--rj-focus-outline-offset: 2px;
	--rj-focus-ring: 0 0 0 3px rgb(21 58 47 / 55%);

	/* Shape. */
	--rj-radius-sm: 4px;
	--rj-radius-md: 6px;
	--rj-radius-lg: 10px;
	--rj-radius-pill: 999px;

	/* Elevation.
	   The brief separated surfaces by fill: white elements on a warm ground.
	   With the ground now white (--rj-page) that separation is gone, so the
	   cards and the header carry a resting shadow instead. Tinted with the
	   deep green (#0B241C) the overlays already use — never black, which
	   would grey the warm palette. Kept deliberately shallow: this is an
	   editorial site, not a material-design one.
	   Ignored under forced-colors, where the borders still carry the edge. */
	--rj-shadow-card: 0 1px 2px rgb(11 36 28 / 5%), 0 2px 8px rgb(11 36 28 / 5%);
	--rj-shadow-card-hover: 0 6px 20px rgb(11 36 28 / 8%);
	--rj-shadow-header: 0 1px 3px rgb(11 36 28 / 8%);

	/* Motion. */
	--rj-duration-fast: 120ms;
	--rj-duration-base: 200ms;
	--rj-easing: cubic-bezier(.4, 0, .2, 1);

	/* Z-index order: sticky header < menu < toast < modal-overlay < modal. */
	--rj-z-header: 100;
	--rj-z-menu: 200;
	--rj-z-toast: 300;
	--rj-z-modal-overlay: 390;
	--rj-z-modal: 400;

	/* Control geometry (44px touch-target floor). */
	--rj-control-sm: 44px;
	--rj-control-md: 48px;

	--rj-container-pad: clamp(20px, 5vw, 32px);
	--rj-overlay-scrim: rgb(11 36 28 / 45%);

	/* Ink ground + fixed scrim for image cards (subtopic pillars). */
	--rj-ink: #241D15;
	--rj-scrim-ink: linear-gradient(to top, rgb(36 29 21 / 88%) 0%, rgb(36 29 21 / 62%) 45%, rgb(36 29 21 / 25%) 100%);

	/* Header. */
	--rj-header-max: 1320px;
	--rj-text-secondary: var(--wp--preset--color--text-muted-on-white);
}

@media (prefers-reduced-motion: reduce) {
	:root { --rj-duration-fast: 0ms; --rj-duration-base: 0ms; }
	*, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

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

body {
	margin: 0;
	background: var(--rj-page);
	color: var(--rj-text-body);
	font-family: minerva-modern, "Helvetica Neue", Arial, sans-serif;
	font-size: 1.0625rem;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;

	/* Sticky footer: fill the viewport so the footer sits at the bottom even on short pages. */
	min-height: 100vh;
	min-height: 100dvh;
	display: flex;
	flex-direction: column;
}

/* Main content grows to push the footer down; the footer (below) never shrinks. */
.rj-main { flex: 1 0 auto; }

/* Discount the admin bar so logged-in users don't get an extra scroll. */
@media screen and (min-width: 783px) { body.admin-bar { min-height: calc(100vh - 32px); } }

@media screen and (max-width: 782px) { body.admin-bar { min-height: calc(100vh - 46px); } }

a { color: var(--rj-green); }
a:hover { color: var(--rj-green-deep); }

img { max-width: 100%; height: auto; }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: var(--rj-focus-outline-width) solid var(--rj-focus-outline-color);
	outline-offset: var(--rj-focus-outline-offset);
	box-shadow: var(--rj-focus-ring);
}

@media (forced-colors: active) {
	:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
		outline-color: Highlight;
		box-shadow: none;
	}
}

.rj-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: calc(var(--rj-z-modal) + 1);
	padding: 12px 20px;
	background: var(--rj-green);
	color: var(--rj-white);
	border-radius: 0 0 var(--rj-radius-md) 0;
}
.rj-skip-link:focus { left: 0; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0);
	white-space: nowrap; border: 0;
}

/* ---------------------------------------------------------------- Layout -- */
.rj-container,
.rj-content {
	width: 100%;
	max-width: 1040px;
	margin-inline: auto;
	padding-inline: var(--rj-container-pad);
}
.rj-content { padding-block: 40px; }
.rj-content--wide { max-width: 1320px; }

/* ------------------------------------------------- Header (multi-bar) ----- */
.rj-header { background: var(--rj-white); border-bottom: 1px solid var(--rj-border-subtle); box-shadow: var(--rj-shadow-header); }
.rj-bar-wrap { max-width: var(--rj-header-max); margin-inline: auto; padding-inline: var(--rj-container-pad); }

/* Sites bar (desktop strip; also repeated in the drawer as --mobile). */
.rj-sites { display: none; background: var(--rj-green-deep); }
.rj-sites__list { list-style: none; margin: 0 auto; max-width: var(--rj-header-max); padding-inline: var(--rj-container-pad); display: flex; justify-content: flex-end; gap: 0; min-height: 36px; }
.rj-sites__link { display: flex; align-items: center; min-height: 36px; padding: 0 16px; font-weight: 700; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: var(--rj-parchment); text-decoration: none; }
.rj-sites__link:hover { color: var(--rj-gold); }

.rj-sites__link.is-current,
.rj-sites__link.is-current:hover { background: var(--rj-gold); color: var(--rj-white); }
.rj-sites--mobile { display: block; }

/* Header top row. */
.rj-header__top { max-width: var(--rj-header-max); margin-inline: auto; padding-inline: var(--rj-container-pad); display: flex; align-items: center; gap: 8px; min-height: 72px; }
.rj-header__burger { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; background: none; border: none; cursor: pointer; color: var(--rj-green); flex: none; }
.rj-header__logo { display: inline-flex; align-items: center; flex: none; }
.rj-header__logo--text { font-weight: 700; font-size: 1.375rem; color: var(--rj-text-primary); text-decoration: none; }
.rj-header__logo img { max-height: 40px; width: auto; }

/* Contact bar (desktop, left column). */
.rj-cb { display: none; }
.rj-cb__list { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 20px; }
.rj-cb__link { display: flex; align-items: center; min-height: 24px; gap: 8px; font-size: 13px; color: var(--rj-text-secondary); text-decoration: none; }
.rj-cb__link:hover { text-decoration: underline; }
.rj-cb__icon { color: var(--rj-green); flex: none; }

/* Utility bar + inline search. */
.rj-util { display: flex; align-items: center; gap: 10px; margin-inline-start: auto; flex: none; }
.rj-util__links { display: none; align-items: center; gap: 16px; }
.rj-util__link { display: inline-flex; align-items: center; min-height: 24px; font-size: 13px; color: var(--rj-text-secondary); text-decoration: none; }
.rj-util__link:hover { text-decoration: underline; }
.rj-util__search { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; background: none; border: none; cursor: pointer; color: var(--rj-green); flex: none; }
.rj-util__form { display: none; align-items: center; gap: 6px; }
.rj-util[data-search="open"] .rj-util__form { display: flex; }

.rj-util[data-search="open"] .rj-util__links,
.rj-util[data-search="open"] .rj-util__search { display: none; }
.rj-util__form input { width: 220px; height: 40px; border: 1px solid var(--rj-border-strong); border-radius: var(--rj-radius-md); padding: 0 12px; font-size: 14px; color: var(--rj-text-primary); background: var(--rj-white); }
.rj-util__submit { width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; background: var(--rj-green); border: none; border-radius: var(--rj-radius-md); cursor: pointer; color: var(--rj-white); flex: none; }
.rj-util__close { width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; background: none; border: none; cursor: pointer; color: var(--rj-text-secondary); flex: none; }

/* Mobile inline search row. */
.rj-mobile-search { padding: 10px var(--rj-container-pad) 14px; border-top: 1px solid var(--rj-border-subtle); }
.rj-mobile-search form { display: flex; align-items: center; gap: 8px; }
.rj-mobile-search input { flex: 1; height: 44px; border: 1px solid var(--rj-border-strong); border-radius: var(--rj-radius-md); padding: 0 12px; font-size: 15px; color: var(--rj-text-primary); background: var(--rj-white); }
.rj-mobile-search .rj-util__submit { width: 44px; height: 44px; }

/* Sticky main-menu bar + mega-menu (desktop). */
.rj-mainbar { display: none; }
.rj-mainbar__inner { max-width: var(--rj-header-max); margin-inline: auto; padding-inline: var(--rj-container-pad); }
.rj-mainnav__list { list-style: none; margin: 0; padding: 0; display: flex; justify-content: center; gap: 4px; }

.rj-mainbar-sentinel { height: 0; }

.rj-mainnav__btn,
.rj-mainnav__link { display: flex; align-items: center; height: 52px; padding: 0 16px; background: none; border: none; cursor: pointer; font-family: inherit; font-weight: 700; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; color: var(--rj-text-primary); text-decoration: none; text-underline-offset: 4px; transition: color var(--rj-duration-fast) var(--rj-easing); }

.rj-mainnav__btn:hover,
.rj-mainnav__link:hover { text-decoration: underline; }

.rj-mainnav__btn[aria-expanded="true"],
.rj-mainnav__btn.is-current,
.rj-mainnav__link.is-current { text-decoration: underline; color: var(--rj-green); }

.rj-mega { position: absolute; left: 0; right: 0; top: 100%; background: var(--rj-white); border-bottom: 1px solid var(--rj-border-subtle); box-shadow: 0 16px 32px rgb(11 36 28 / 12%); padding: 40px 20%; z-index: 110; }
.rj-mega[hidden] { display: none; }
.rj-mega__row { display: grid; gap: 32px 40px; margin-bottom: 32px; align-items: stretch; }
.rj-mega__row:last-child { margin-bottom: 0; }
.rj-mega__col { display: flex; flex-direction: column; gap: 28px; }
.rj-mega__block { flex: 1; }
.rj-mega__heading { margin: 0 0 10px; font-weight: 700; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--rj-russet); text-underline-offset: 3px; }
.rj-mega__links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.rj-mega__links a { display: block; padding: 6px 0; font-size: 14px; font-weight: 500; color: var(--rj-text-body); text-decoration: none; text-underline-offset: 3px; }
.rj-mega__links a:hover { text-decoration: underline; }
.rj-mega__links a.is-current { text-decoration: underline; color: var(--rj-green); }

.rj-mega__block:has(a:hover) .rj-mega__heading,
.rj-mega__block:has(a[aria-current="page"]) .rj-mega__heading { text-decoration: underline; }

/* Per-column colour override (menu-driven): a padded, coloured "card" column. */
.rj-mega__col--highlight { padding: 20px 22px; border-radius: var(--rj-radius-md); background: var(--col-bg, transparent); color: var(--col-text, inherit); }
.rj-mega__col--highlight .rj-mega__heading { color: var(--col-text, var(--rj-russet)); }

.rj-mega__col--highlight .rj-mega__links a,
.rj-mega__col--highlight .rj-mega__links a.is-current,
.rj-mega__col--highlight .rj-mega__ftitle,
.rj-mega__col--highlight .rj-mega__ftext { color: var(--col-text, inherit); }
.rj-mega__featured { flex: 1; display: block; text-decoration: none; }
.rj-mega__media { display: flex; aspect-ratio: 16 / 10; background: var(--rj-parchment); border-radius: var(--rj-radius-md); overflow: hidden; }
.rj-mega__media img { width: 100%; height: 100%; object-fit: cover; }
.rj-mega__ftitle { display: block; margin-top: 10px; font-weight: 700; font-size: 14px; color: var(--rj-text-primary); }
.rj-mega__ftext { display: block; margin-top: 4px; font-size: 13px; color: var(--rj-text-secondary); }
.rj-mega__featured:hover .rj-mega__ftitle { text-decoration: underline; }

/* Full-width footer row (below the columns): green band, gold lead, white links. */
.rj-mega__footer { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-top: 28px; padding: 16px 24px; border-radius: var(--rj-radius-md); background: var(--rj-green); }
.rj-mega__footer-lead { font-weight: 700; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--rj-gold); text-decoration: none; text-underline-offset: 3px; }

/* Lead underlines only when one of its links is the current page (no hover state). */
.rj-mega__footer:has(a[aria-current="page"]) .rj-mega__footer-lead { text-decoration: underline; }
.rj-mega__footer-links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 24px; }
.rj-mega__footer-links a { display: inline-flex; align-items: center; font-size: 14px; font-weight: 600; color: var(--rj-white); text-decoration: underline; text-underline-offset: 3px; }
.rj-mega__footer-links a.is-current { color: var(--rj-white); }

/* Mobile drawer. */
.rj-drawer-root { position: fixed; inset: 0; z-index: var(--rj-z-modal); }
.rj-drawer-root[hidden] { display: none; }
.rj-drawer__scrim { position: absolute; inset: 0; background: rgb(11 36 28 / 50%); }
.rj-drawer { position: absolute; inset: 0; width: 100%; max-width: 100%; height: 100%; background: var(--rj-white); display: flex; flex-direction: column; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.rj-drawer__head { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; padding: 12px 12px 12px 20px; min-height: 60px; background: var(--rj-white); border-bottom: 1px solid var(--rj-border-subtle); }
.rj-drawer__logo { font-weight: 700; font-size: 1.125rem; color: var(--rj-text-primary); }
.rj-drawer__close { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; background: none; border: none; cursor: pointer; color: var(--rj-text-primary); }
.rj-drawer__util { display: flex; gap: 8px; padding: 0 16px; min-height: 44px; border-bottom: 1px solid var(--rj-border-subtle); }
.rj-drawer__util a { flex: 1; display: flex; align-items: center; justify-content: center; min-height: 44px; font-size: 14px; color: var(--rj-text-secondary); text-decoration: none; }
.rj-drawer__nav { padding: 8px; }
.rj-drawer__list { list-style: none; margin: 0; padding: 0; }
.rj-drawer__item { border-bottom: 1px solid var(--rj-border-subtle); }

.rj-drawer__toggle,
.rj-drawer__link { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 52px; padding: 0 10px; background: none; border: none; cursor: pointer; font-family: inherit; font-weight: 700; font-size: 14px; letter-spacing: .04em; text-transform: uppercase; color: var(--rj-text-primary); text-decoration: none; }

.rj-drawer__toggle.is-current,
.rj-drawer__link.is-current { color: var(--rj-green); text-decoration: underline; text-underline-offset: 4px; }
.rj-drawer__sub a.is-current { color: var(--rj-green); text-decoration: underline; }
.rj-drawer__sub { list-style: none; margin: 0; padding: 0 10px 14px 20px; display: flex; flex-direction: column; }
.rj-drawer__sub[hidden] { display: none; }
.rj-drawer__sub a { display: flex; align-items: center; min-height: 44px; padding: 9px 0; font-size: 18px; color: var(--rj-text-body); text-decoration: none; }
.rj-drawer .rj-sites--mobile { margin-top: auto; border-top: 1px solid var(--rj-border-subtle); }
.rj-drawer .rj-sites__list { flex-wrap: wrap; justify-content: flex-start; padding: 0; max-width: none; }
.rj-drawer .rj-sites__link { flex: 1; min-width: 80px; min-height: 44px; justify-content: center; }

/* Desktop layout at the header's own breakpoint (1180). */
@media (min-width: 1180px) {
	.rj-header__burger,
	.rj-mobile-search { display: none !important; }
	.rj-sites { display: block; }
	.rj-header__top { display: grid; grid-template-columns: 1fr auto 1fr; }
	.rj-cb { display: block; grid-column: 1; justify-self: start; }
	.rj-header__logo { grid-column: 2; justify-self: center; }
	.rj-util { grid-column: 3; justify-self: end; }
	.rj-util__links { display: flex; }
	.rj-mainbar { display: block; position: sticky; top: 0; z-index: var(--rj-z-header); background: var(--rj-white); border-top: 1px solid var(--rj-border-subtle); border-bottom: 1px solid var(--rj-border-subtle); transition: background-color var(--rj-duration-base) var(--rj-easing), border-color var(--rj-duration-base) var(--rj-easing); }
	.admin-bar .rj-mainbar { top: 32px; }

	/* Stuck state: russet bar with white items (mega panels are unchanged). */
	.rj-mainbar.is-stuck { background: var(--rj-russet); border-color: var(--rj-russet); }

	.rj-mainbar.is-stuck .rj-mainnav__btn,
	.rj-mainbar.is-stuck .rj-mainnav__link,
	.rj-mainbar.is-stuck .rj-mainnav__btn[aria-expanded="true"],
	.rj-mainbar.is-stuck .rj-mainnav__btn.is-current,
	.rj-mainbar.is-stuck .rj-mainnav__link.is-current { color: var(--rj-white); }
}

@media (max-width: 1179px) {
	.rj-util__links { display: none !important; }
	.rj-sites:not(.rj-sites--mobile) { display: none !important; }
}

/* Announcement bar. */
.rj-announcement {
	background: var(--rj-green);
	color: var(--rj-white);
	text-align: center;
	padding: 8px 16px;
	font-size: 0.9375rem;
}
.rj-announcement--warning { background: var(--wp--preset--color--state-warning); }
.rj-announcement--error { background: var(--wp--preset--color--state-error); }

/* Per-menu-item device visibility (menu_devices field). */
@media (min-width: 1024px) { .rj-hide-desktop { display: none !important; } }

@media (min-width: 768px) and (max-width: 1023px) { .rj-hide-tablet { display: none !important; } }

@media (max-width: 767px) { .rj-hide-mobile { display: none !important; } }

/* ---------------------------------- Footer (columns · bar · legal) -------- */
.rj-footer { flex-shrink: 0; margin-top: 72px; background: var(--rj-green); color: var(--rj-parchment); }
.rj-footer a { color: var(--rj-parchment); }

/* Link columns (rows of up to 4). */
.rj-footer__cols { max-width: var(--rj-header-max); margin-inline: auto; padding: 64px var(--rj-container-pad) 40px; display: flex; flex-direction: column; gap: 32px; }
.rj-footer__row { display: grid; gap: 32px; }
.rj-footer__heading { margin: 0 0 16px; font-weight: 700; font-size: 15px; letter-spacing: .06em; text-transform: uppercase; color: var(--rj-white); }
.rj-footer__links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.rj-footer__links a { display: flex; align-items: center; min-height: 30px; padding: 3px 0; font-size: 14px; color: var(--rj-parchment); text-decoration: none; text-underline-offset: 3px; }

.rj-footer__links a:hover,
.rj-footer__links a.is-current { text-decoration: underline; }

/* Middle bar (russet): logo · contact · newsletter/social. */
.rj-footer__bar { background: var(--rj-russet); border-top: 1px solid rgb(223 212 182 / 25%); }
.rj-footer__bar-inner { max-width: var(--rj-header-max); margin-inline: auto; padding: 32px var(--rj-container-pad) 36px; display: flex; flex-wrap: wrap; align-items: center; gap: 24px 32px; }
.rj-footer__logo { display: inline-flex; align-items: center; flex: none; }

.rj-footer__logo-img,
.rj-footer__logo img { max-height: 56px; width: auto; }
.rj-footer__logo-text { font-weight: 700; font-size: 1.25rem; color: var(--rj-white); }

.rj-fcontact__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.rj-fcontact__link { display: flex; align-items: center; min-height: 24px; gap: 6px; font-size: 13px; font-weight: 500; color: var(--rj-parchment); text-decoration: none; }
.rj-fcontact__link:hover { text-decoration: underline; }
.rj-fcontact .rj-cb__icon { color: var(--rj-parchment); }

.rj-footer__aside { margin-inline-start: auto; display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }

/* Newsletter. */
.rj-fnews { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.rj-fnews__heading { margin: 0; font-weight: 700; font-size: 15px; letter-spacing: .06em; text-transform: uppercase; color: var(--rj-white); }
.rj-fnews__toggle { display: flex; align-items: center; min-height: 24px; gap: 6px; padding: 0; background: none; border: none; cursor: pointer; font-family: inherit; font-size: 13px; color: var(--rj-parchment); }
.rj-fnews__toggle:hover { text-decoration: underline; }
.rj-fnews__form { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 6px; }
.rj-fnews__form[hidden] { display: none; }
.rj-fnews__note { flex-basis: 100%; margin: 0; font-size: 12px; }
.rj-fnews__note a { color: inherit; text-decoration: underline; }
.rj-fnews__label { flex-basis: 100%; font-size: 12px; font-weight: 700; color: var(--rj-parchment); }
.rj-fnews__consent { display: flex; gap: 8px; align-items: flex-start; max-width: 420px; }
.rj-fnews__form .rj-fnews__consent input { margin-top: 0; width: 24px; height: 24px; padding: 0; flex: none; }
.rj-fnews__form input { width: min(220px, 60vw); height: 40px; border: 1px solid rgb(223 212 182 / 40%); border-radius: var(--rj-radius-md); padding: 0 12px; font-size: 13px; color: var(--rj-green); background: var(--rj-white); }
.rj-fnews__submit { height: 40px; padding: 0 16px; border: none; border-radius: var(--rj-radius-md); background: var(--rj-white); color: var(--rj-green-deep); font-family: inherit; font-weight: 700; font-size: 12px; letter-spacing: .03em; text-transform: uppercase; cursor: pointer; }
.rj-fnews__submit:hover { background: var(--rj-green); color: var(--rj-white); }

/* Social icons. */
.rj-fsocial { list-style: none; margin: 0; padding: 0; display: flex; gap: 8px; }
.rj-fsocial__link { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border: 1px solid rgb(223 212 182 / 40%); border-radius: var(--rj-radius-md); color: var(--rj-parchment); text-decoration: none; }
.rj-fsocial__link:hover { border-color: var(--rj-parchment); }

/* Legal bar. */
.rj-footer__legal { border-top: 1px solid rgb(223 212 182 / 25%); }
.rj-footer__legal-inner { max-width: var(--rj-header-max); margin-inline: auto; padding: 10px var(--rj-container-pad); display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 16px; text-align: center; }
.rj-footer__copyright { font-size: 13px; color: var(--rj-parchment); }
.rj-footer__legal-link { font-size: 13px; color: var(--rj-parchment); text-decoration: underline; background: none; border: none; cursor: pointer; font-family: inherit; min-height: 44px; display: inline-flex; align-items: center; }

/* ------------------------------------------------------- Search results --- */
.rj-search-group { margin-block: 32px; }

.rj-search-group__title {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--wp--preset--color--text-muted-on-white);
}

/* ------------------------------------------------------- Breadcrumbs ------ */
.rj-breadcrumbs { padding-block: 12px; font-size: 0.875rem; }

.rj-breadcrumbs__list {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0; padding: 0;
}

.rj-breadcrumbs__item + .rj-breadcrumbs__item::before {
	content: "/";
	margin-inline-end: 8px;
	color: var(--wp--preset--color--text-muted-on-ivory);
}
.rj-breadcrumbs__current { color: var(--wp--preset--color--text-muted-on-ivory); }

/* ---------------------------------------------------------------- Notices - */
.rj-notice {
	border: 1px solid var(--rj-border-control);
	border-inline-start-width: 4px;
	border-radius: var(--rj-radius-md);
	padding: 12px 16px;
	margin-block: 16px;
	background: var(--rj-white);
}
.rj-notice--info { border-color: var(--wp--preset--color--state-info); background: #EAF0ED; }
.rj-notice--warning { border-color: var(--wp--preset--color--state-warning); background: #F5EFDF; }
.rj-notice--error { border-color: var(--wp--preset--color--state-error); background: #F6ECEC; }

/* --------------------------------------------------- Block components ----- */
.rj-toc { border: 1px solid var(--rj-border-subtle); border-radius: var(--rj-radius-md); padding: 16px 20px; }
.rj-toc__list { margin: 0; padding-inline-start: 20px; }
.rj-toc__item--level-3 { margin-inline-start: 16px; }

.rj-gemstone-facts { background: var(--rj-parchment); border-radius: var(--rj-radius-md); padding: 20px 24px; }
.rj-gemstone-facts__list { display: grid; grid-template-columns: max-content 1fr; gap: 8px 16px; margin: 0; }

.rj-video-player { margin: 0; }

.rj-video-player__poster {
	position: relative;
	aspect-ratio: 16 / 9;
	background: var(--rj-green-deep);
	border-radius: var(--rj-radius-md);
	overflow: hidden;
	display: grid;
	place-items: center;
}

/* The poster is a real <img> (alt text, srcset, no layout shift), not a
   background, so it sits behind the Play control. */
.rj-video-player__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.rj-video-player__play {
	position: relative;
	display: grid;
	place-items: center;
	width: 72px; height: 72px;
	border-radius: var(--rj-radius-pill);
	border: 0;
	background: var(--rj-white);
	color: var(--rj-green-deep);
	cursor: pointer;
	box-shadow: 0 2px 12px var(--rj-overlay-scrim);
}
.rj-video-player__play:hover { background: var(--rj-gold); }

/* Optical centring of the triangle glyph inside the circle. */
.rj-video-player__icon { margin-inline-start: 3px; }

.rj-video-player__frame {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	border: 0;
	border-radius: var(--rj-radius-md);
	background: var(--rj-green-deep);
}

/* Shown only while the player is running in the provider's Do-Not-Track mode.
   The [hidden] rule is required: a class selector setting `display` overrides
   the user-agent's `[hidden] { display: none }`, which would leave the note on
   screen before Play and after consent is granted. */
.rj-video-player__privacy[hidden] { display: none; }

.rj-video-player__privacy {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 12px;
	margin: 8px 0 0;
	font-size: 0.875rem;
	color: var(--rj-text-secondary);
}

.rj-video-player__prefs {
	background: none;
	border: 0;
	padding: 0;
	font: inherit;
	color: var(--rj-green);
	text-decoration: underline;
	cursor: pointer;
}
.rj-video-player__prefs:hover { color: var(--rj-green-deep); }

.rj-video-player__fallback { margin: 8px 0 0; font-size: 0.875rem; }
.rj-tool-embed__frame { min-height: 480px; border: 1px solid var(--rj-border-subtle); border-radius: var(--rj-radius-md); }

/* ------------------------------------------------------------- Buttons ---- */
.rj-button,
.rj-content .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	min-height: var(--rj-control-md);
	padding: 0 24px;
	border-radius: var(--rj-radius-pill);
	background: var(--rj-green);
	color: var(--rj-white);
	font-weight: 700;
	text-decoration: none;
	border: 1px solid var(--rj-green);
	cursor: pointer;
}
.rj-button:hover { background: var(--rj-green-deep); color: var(--rj-white); }

/* ------------------------------------------------------- Callout styles --- */
.is-style-rj-expert-note,
.is-style-rj-tip,
.is-style-rj-warning {
	border-inline-start: 4px solid var(--rj-gold);
	background: var(--rj-white);
	border-radius: var(--rj-radius-md);
	padding: 16px 20px;
}
.is-style-rj-tip { border-inline-start-color: var(--wp--preset--color--state-success-border); }
.is-style-rj-warning { border-inline-start-color: var(--wp--preset--color--state-warning); }

/* ----------------------------------------------- Shared editorial bits ---- */
.rj-eyebrow {
	margin: 0 0 8px;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--rj-gold);
}

.rj-section-title {
	font-size: clamp(1.5rem, 3vw, 1.875rem);
	color: var(--rj-text-primary);
	margin: 0 0 24px;
}

/* ------------------------------------------------- Homepage (redesign) --- */

/* Full-bleed bands with a 1240px inner column; nothing scrolls sideways. */
.rj-hwrap { max-width: 1240px; margin-inline: auto; padding-inline: var(--rj-container-pad); box-sizing: border-box; }
.rj-hsec { padding-top: clamp(48px, 7vw, 88px); }

.rj-hhead { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 8px 24px; margin-bottom: 28px; }
.rj-hhead__eyebrow { margin: 0; font-size: 0.75rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--rj-russet); }
.rj-hhead__title { margin: 8px 0 0; font-weight: 400; font-size: clamp(1.625rem, 3vw, 2.125rem); line-height: 1.2; color: var(--rj-green-deep); }
.rj-hhead__more { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-size: 0.9375rem; color: var(--rj-green); text-underline-offset: 3px; }
.rj-hhead__more:hover { color: var(--rj-green-deep); }

/* Hero */
.rj-hhero { background: var(--rj-ivory); }
.rj-hhero__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; padding-block: clamp(32px, 6vw, 72px); }
.rj-hhero__text { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.rj-hhero__title { margin: 0; font-weight: 400; font-size: clamp(2.25rem, 4.4vw, 4rem); line-height: 1.06; color: var(--rj-green-deep); }
.rj-hhero__lede { margin: 0; max-width: 30em; font-size: clamp(1.0625rem, 1.5vw, 1.1875rem); line-height: 1.6; color: var(--rj-text-body); }
.rj-hsearch { max-width: 540px; }
.rj-hsearch__label { display: block; margin-bottom: 8px; font-size: 0.9375rem; color: var(--rj-text-primary); }
.rj-hsearch__row { display: flex; gap: 8px; }
.rj-hsearch__input { flex: 1; min-width: 0; height: 52px; padding: 0 16px; border: 1px solid var(--rj-border-control); border-radius: var(--rj-radius-md); background: var(--rj-white); font: inherit; font-size: 1rem; }
.rj-hsearch__submit { flex: none; height: 52px; padding-inline: 24px; }
.rj-hchips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.rj-hchip { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1px solid var(--rj-border-subtle); border-radius: var(--rj-radius-pill); background: var(--rj-white); color: var(--rj-green); font-size: 0.9375rem; text-decoration: none; }
.rj-hchip:hover { border-color: var(--rj-green); color: var(--rj-green-deep); }

.rj-hhero__collage { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 12px; aspect-ratio: 4 / 3; min-width: 0; }
.rj-hhero__tile { position: relative; display: block; overflow: hidden; background: var(--rj-parchment); }
.rj-hhero__tile.is-main { grid-row: span 2; }
.rj-hhero__tile img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rj-hhero__cap { position: absolute; left: 12px; right: 12px; bottom: 12px; width: fit-content; max-width: calc(100% - 24px); padding: 8px 12px; background: var(--rj-white); color: var(--rj-ink); font-size: 0.875rem; line-height: 1.35; }
.rj-hhero__tile:not(.is-main) .rj-hhero__cap { display: none; }

.rj-hhero__tile:hover .rj-hhero__cap,
.rj-hhero__tile:focus-visible .rj-hhero__cap { text-decoration: underline; }

.rj-hhero__diagram { margin: 0; padding: clamp(20px, 4vw, 40px); background: var(--rj-green-deep); min-width: 0; }
.rj-hhero__diagram svg { display: block; width: 100%; height: auto; }
.rj-hhero__diagram figcaption { margin-top: 16px; font-size: 0.9375rem; }
.rj-hhero__diagram figcaption a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; color: var(--rj-white); text-underline-offset: 3px; }
.rj-hhero__diagram figcaption a:hover { color: var(--rj-parchment); }

/* Subjects */
.rj-hsubjects { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
.rj-hsubject { display: flex; flex-direction: column; gap: 4px; height: 100%; text-decoration: none; color: inherit; }
.rj-hsubject__media { display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; overflow: hidden; background: var(--rj-parchment); margin-bottom: 10px; }
.rj-hsubject__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform var(--rj-duration-base) var(--rj-easing); }
.rj-hsubject__media.is-drawn { background: var(--rj-ivory); border: 1px solid var(--rj-border-subtle); }
.rj-hsubject__media .rj-hicon { width: 58%; height: auto; }
.rj-hsubject__name { font-size: clamp(1.125rem, 2vw, 1.375rem); color: var(--rj-green-deep); }
.rj-hsubject__meta { font-size: 0.9375rem; line-height: 1.45; color: var(--wp--preset--color--text-muted-on-white); }
.rj-hsubject:hover .rj-hsubject__name { text-decoration: underline; text-underline-offset: 3px; }
.rj-hsubject:hover .rj-hsubject__media img { transform: scale(1.03); }

/* The 4 Cs band */
.rj-h4cs { margin-top: clamp(48px, 7vw, 88px); padding-block: clamp(40px, 6vw, 72px); background: var(--rj-green-deep); color: var(--rj-white); }
.rj-h4cs .rj-hhead__eyebrow { color: var(--rj-parchment); }
.rj-h4cs .rj-hhead__title { margin-bottom: 28px; color: var(--rj-white); }
.rj-h4cs__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.rj-h4c { display: flex; flex-direction: column; gap: 4px; height: 100%; padding: clamp(16px, 2.4vw, 24px); border: 1px solid rgb(223 212 182 / 30%); color: var(--rj-white); text-decoration: none; box-sizing: border-box; }
.rj-h4c:hover { border-color: var(--rj-gold-on-dark); }
.rj-h4c .rj-hicon { width: 100%; height: clamp(64px, 9vw, 110px); }
.rj-h4c__scale { display: flex; align-items: center; gap: 4px; height: clamp(64px, 9vw, 110px); }
.rj-h4c__scale span { flex: 1; height: 40%; }
.rj-h4c__scale span:nth-child(1) { background: #FFF; }
.rj-h4c__scale span:nth-child(2) { background: #FBF8EC; }
.rj-h4c__scale span:nth-child(3) { background: #F6EFD3; }
.rj-h4c__scale span:nth-child(4) { background: #EFE3B5; }
.rj-h4c__scale span:nth-child(5) { background: #E6D493; }
.rj-h4c__name { margin-top: 10px; font-size: clamp(1.1875rem, 2vw, 1.375rem); }
.rj-h4c__meta { font-size: 0.9375rem; line-height: 1.45; color: var(--rj-parchment); }
.rj-h4c__img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 0.4s ease; }
.rj-h4c:has(.rj-h4c__img) { overflow: hidden; }
.rj-h4c:hover .rj-h4c__img { transform: scale(1.03); }
.rj-h4cs__credit { margin: 14px 0 0; font-size: 0.8125rem; color: var(--rj-parchment); }

/* A page's featured image under its title */
.rj-page-hero { margin: clamp(16px, 3vw, 28px) 0 clamp(24px, 4vw, 40px); }
.rj-page-hero__img { display: block; width: 100%; height: auto; max-height: 520px; object-fit: cover; }
.rj-page-hero__credit { margin-top: 8px; font-size: 0.8125rem; color: var(--rj-text-secondary); }

@media (prefers-reduced-motion: reduce) { .rj-h4c__img { transition: none; } }

/* Latest: magazine */
.rj-hmag { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; }
.rj-hmag__lead { display: flex; flex-direction: column; gap: 8px; text-decoration: none; color: inherit; }
.rj-hmag__lead.is-text { justify-content: flex-end; min-height: 280px; padding: clamp(24px, 4vw, 40px); background: var(--rj-ivory); border-top: 2px solid var(--rj-green); }
.rj-hmag__img { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--rj-parchment); margin-bottom: 8px; }
.rj-hmag__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rj-hmag__tag { display: block; font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--rj-russet); }
.rj-hmag__title { font-size: clamp(1.5rem, 2.6vw, 1.875rem); line-height: 1.2; color: var(--rj-green-deep); }
.rj-hmag__ex { font-size: 1.0625rem; line-height: 1.6; color: var(--rj-text-body); }
.rj-hmag__lead:hover .rj-hmag__title { text-decoration: underline; text-underline-offset: 4px; }
.rj-hmag__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.rj-hmag__item { display: flex; gap: 16px; align-items: flex-start; padding-block: 16px; border-top: 1px solid var(--rj-border-subtle); text-decoration: none; color: inherit; }
.rj-hmag__list li:first-child .rj-hmag__item { padding-top: 0; border-top: 0; }
.rj-hmag__thumb { flex: none; width: 96px; aspect-ratio: 1 / 1; overflow: hidden; background: var(--rj-parchment); }
.rj-hmag__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rj-hmag__itemtitle { display: block; margin-top: 4px; font-size: 1.125rem; line-height: 1.3; color: var(--rj-green-deep); }
.rj-hmag__item:hover .rj-hmag__itemtitle { text-decoration: underline; text-underline-offset: 3px; }

/* Gemstone strip */
.rj-hgems { margin-top: clamp(48px, 7vw, 88px); padding-block: clamp(40px, 6vw, 64px); background: var(--rj-ivory); }
.rj-hgems__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px 12px; }
.rj-hgem { display: flex; flex-direction: column; gap: 2px; text-decoration: none; color: inherit; }
.rj-hgem__media { display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; overflow: hidden; background: var(--rj-white); margin-bottom: 8px; }
.rj-hgem__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rj-hgem__drawing { width: 64%; height: auto; }
.rj-hgem__name { font-size: 1.0625rem; color: var(--rj-green-deep); }
.rj-hgem__meta { font-size: 0.8125rem; color: var(--wp--preset--color--text-muted-on-ivory); }
.rj-hgem:hover .rj-hgem__name { text-decoration: underline; text-underline-offset: 3px; }

/* Tools */
.rj-htools { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.rj-htool { display: flex; flex-direction: column; gap: 8px; height: 100%; padding: clamp(20px, 3vw, 28px); border: 1px solid var(--rj-border-subtle); border-radius: var(--rj-radius-md); text-decoration: none; color: inherit; box-sizing: border-box; }
.rj-htool:hover { border-color: var(--rj-green); }
.rj-htool .rj-hicon { width: 72px; height: 48px; }
.rj-htool__name { font-size: 1.3125rem; color: var(--rj-green-deep); }
.rj-htool__meta { font-size: 1rem; line-height: 1.55; color: var(--rj-text-body); }

.rj-home > .rj-hsec:last-child { padding-bottom: clamp(48px, 7vw, 88px); }

@media (min-width: 600px) {
	.rj-hgems__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.rj-htools { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
}

@media (min-width: 900px) {
	.rj-hsubjects { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
	.rj-h4cs__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
	.rj-hmag { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 40px; }
	.rj-hgems__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 20px; }
}

@media (min-width: 1024px) {
	.rj-hhero__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 56px; align-items: center; }
}

@media (prefers-reduced-motion: reduce) {
	.rj-hsubject__media img { transition: none; }
	.rj-hsubject:hover .rj-hsubject__media img { transform: none; }
}

/* Featured cards grid. */
.rj-home__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 24px;
}
.rj-home__slot { margin: 0; }
.rj-home__slot .rj-eyebrow { margin-bottom: 10px; }

.rj-card {
	display: block;
	height: 100%;
	background: var(--rj-white);
	border: 1px solid var(--rj-border-subtle);
	border-radius: var(--rj-radius-lg);
	box-shadow: var(--rj-shadow-card);
	overflow: hidden;
	text-decoration: none;
	transition: transform var(--rj-duration-base) var(--rj-easing),
		box-shadow var(--rj-duration-base) var(--rj-easing);
}
.rj-card:hover { transform: translateY(-2px); box-shadow: var(--rj-shadow-card-hover); }
.rj-card__media { aspect-ratio: 3 / 2; background: var(--rj-parchment); }
.rj-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rj-card__body { padding: 20px 24px 24px; }
.rj-card__title { font-size: 1.25rem; margin: 0 0 8px; color: var(--rj-text-primary); }
.rj-card__excerpt { margin: 0 0 12px; color: var(--wp--preset--color--text-muted-on-white); font-size: 0.9375rem; }
.rj-card__more { font-weight: 700; color: var(--rj-green); }

/* Newsletter band. */
.rj-newsletter-band {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 24px 32px;
	background: var(--rj-green);
	color: var(--wp--preset--color--surface-subtle);
	border-radius: var(--rj-radius-md);
	padding: clamp(28px, 5vw, 56px);
}
.rj-newsletter-band__inner { max-width: 36em; }
.rj-newsletter-band .rj-section-title { margin: 0; font-weight: 400; color: var(--rj-white); }
.rj-newsletter-band p { margin: 10px 0 0; font-size: 1.0625rem; line-height: 1.6; color: var(--wp--preset--color--surface-subtle); }
.rj-button--inverse { background: var(--rj-white); color: var(--rj-green); border-color: var(--rj-white); }
.rj-button--inverse:hover { background: var(--rj-parchment); color: var(--rj-green-deep); }

/* ----------------------------------------- Article (Template 04) ---------- */
.rj-article-wrap { padding-block: 48px 0; }
.rj-article-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; }
.rj-article { min-width: 0; max-width: 720px; margin-inline: auto; }

/* Hero band (redesign 2026-10): title and trust strip beside the featured image. */
.rj-ahero { background: var(--rj-ivory); border-bottom: 1px solid var(--rj-border-subtle); }
.rj-ahero__inner { max-width: 1240px; margin-inline: auto; padding: 20px var(--rj-container-pad) 48px; }
.rj-ahero__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; align-items: center; margin-top: 20px; }
.rj-ahero__text { max-width: 720px; }
.rj-article__eyebrow { margin: 0 0 12px; font-size: 0.75rem; font-weight: 400; letter-spacing: .22em; text-transform: uppercase; color: var(--rj-russet); }
.rj-article__title { font-weight: 400; font-size: clamp(2.125rem, 4.2vw, 3.5rem); line-height: 1.08; margin: 0 0 16px; color: var(--rj-green-deep); }
.rj-article__standfirst { font-size: clamp(1.125rem, 2vw, 1.25rem); line-height: 1.55; color: var(--rj-text-body); margin: 0 0 22px; }
.rj-trust { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 24px; border-top: 1px solid var(--rj-parchment); padding-top: 16px; }
.rj-trust .rj-byline { margin: 0; }
.rj-person { display: flex; align-items: center; gap: 12px; }
.rj-person__photo img { display: block; width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.rj-person__meta { display: flex; flex-direction: column; line-height: 1.35; }
.rj-person__role { font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--wp--preset--color--text-muted-on-ivory); }
.rj-person__name { font-size: 1rem; color: var(--rj-green-deep); }
.rj-person__credential { font-size: 0.875rem; color: var(--rj-text-body); }
.rj-trust__facts { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 20px; font-size: 0.875rem; color: var(--wp--preset--color--text-muted-on-ivory); }
.rj-trust__facts a { color: inherit; text-underline-offset: 2px; }

/* Hero figure: square-cornered media (Brand CI: radius 0 on media). */
.rj-article__hero { margin: 0; }
.rj-article__hero-img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.rj-article__hero-cap { margin-top: 8px; font-size: 0.8125rem; color: var(--wp--preset--color--text-muted-on-ivory); }

@media (min-width: 1024px) {
	.rj-ahero.has-media .rj-ahero__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; }
}

/* Body measure + rhythm. Single-column grid so wide children (tables) scroll
   instead of widening the page. */
.rj-article__body { min-width: 0; display: grid; grid-template-columns: minmax(0, 100%); font-size: 1.125rem; line-height: 1.72; color: var(--rj-text-body); }
.rj-article__body > * { margin-block: 0 1.2em; }
.rj-article__body > :first-child { margin-top: 0; }
.rj-article__body h2 { font-weight: 400; font-size: clamp(1.625rem, 3vw, 2.125rem); line-height: 1.2; margin: 2em 0 .5em; color: var(--rj-green-deep); scroll-margin-top: 90px; }
.rj-article__body h3 { font-weight: 700; font-size: 1.1875rem; line-height: 1.3; margin: 1.5em 0 .4em; color: var(--rj-text-primary); scroll-margin-top: 90px; }
.rj-article__body img { height: auto; }

/* FAQ accordion (rj_blog_faq_accordion_in_dom). */
.rj-faq { border-bottom: 1px solid var(--rj-border-subtle); }
.rj-faq__h { margin: 0 !important; font-weight: 400; font-size: inherit; }
.rj-faq__q { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; min-height: 60px; padding: 16px 0; border: 0; border-top: 1px solid var(--rj-border-subtle); background: none; font: inherit; font-size: 1.1875rem; line-height: 1.35; color: var(--rj-green-deep); text-align: left; cursor: pointer; }
.rj-faq__q:hover { color: var(--rj-green); }
.rj-faq__q:focus-visible { outline: var(--rj-focus-outline-width) solid var(--rj-green-deep); outline-offset: 3px; }
.rj-faq__icon { flex: none; position: relative; width: 16px; height: 16px; }
.rj-faq__icon::before, .rj-faq__icon::after { content: ""; position: absolute; left: 0; top: 7px; width: 16px; height: 1.5px; background: var(--rj-russet); }
.rj-faq__icon::after { transform: rotate(90deg); transition: transform var(--rj-duration-base) var(--rj-easing); }
.rj-faq__q[aria-expanded="true"] .rj-faq__icon::after { transform: rotate(0deg); }
.rj-faq__a { padding: 0 0 20px; }
.rj-faq__a > :last-child { margin-bottom: 0; }
.rj-article__body ul, .rj-article__body ol { padding-inline-start: 1.4em; }
.rj-article__body li { margin-block: .35em; }
.rj-article__body a { text-decoration: underline; text-underline-offset: 2px; }
.rj-article__body blockquote { border-left: 2px solid var(--rj-russet); background: var(--rj-parchment); margin: 0 0 1.2em; padding: 16px 20px; font-style: italic; }
.rj-article__body figure { margin: 0 0 1.2em; }
.rj-article__body figcaption { font-size: 0.8125rem; color: var(--wp--preset--color--text-muted-on-ivory); margin-top: 8px; }

/* Data tables — scroll wrapper, never page-level overflow. */
.rj-article__body .wp-block-table { overflow-x: auto; }
.rj-article__body table { width: 100%; border-collapse: collapse; font-size: 0.95rem; }
.rj-article__body th, .rj-article__body td { padding: 11px 14px; border-bottom: 1px solid var(--rj-border-subtle); text-align: left; vertical-align: top; }
.rj-article__body thead th { background: var(--rj-green); color: var(--rj-parchment); font-size: 0.72rem; letter-spacing: .08em; text-transform: uppercase; }
.rj-article__body table caption { caption-side: bottom; text-align: left; padding-top: 8px; font-size: 0.8125rem; color: var(--wp--preset--color--text-muted-on-ivory); }

/* TOC rail ("On this page"). */

/* "In this guide": slim, numbered, with reading progress (redesign 2026-10). */
.rj-artoc { border-top: 2px solid var(--rj-green); padding-top: 14px; }
.rj-artoc__title { margin: 0 0 10px; font-size: 0.75rem; font-weight: 400; letter-spacing: .22em; text-transform: uppercase; color: var(--rj-label-contrast, #655C4F); }
.rj-artoc__progress { height: 3px; background: var(--rj-border-subtle); border-radius: var(--rj-radius-pill); margin-bottom: 12px; overflow: hidden; }
.rj-artoc__progress span { display: block; width: 0; height: 3px; background: var(--rj-green); }
.rj-artoc__toggle { display: none; }
.rj-artoc__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; counter-reset: rj-toc; border-left: 1px solid var(--rj-border-subtle); }
.rj-artoc__item a { display: flex; gap: 10px; min-height: 24px; padding: 8px 0 8px 14px; margin-left: -1px; border-left: 2px solid transparent; font-size: 0.9375rem; line-height: 1.4; color: var(--wp--preset--color--text-muted-on-white); text-decoration: none; }
.rj-artoc__item--l2 a::before { counter-increment: rj-toc; content: counter(rj-toc); flex: none; min-width: 1.2em; color: var(--rj-russet); }
.rj-artoc__item--l3 { display: none; }

.rj-artoc__item a:hover,
.rj-artoc__item a[aria-current="location"] { color: var(--rj-green-deep); border-left-color: var(--rj-green); }

/* Complementary aside rail. */
.rj-aside { display: flex; flex-direction: column; gap: 18px; }
.rj-article__endmatter .rj-aside { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); margin-block: 40px; }
.rj-aside__card { border: 1px solid var(--rj-border-subtle); border-radius: var(--rj-radius-md); padding: 16px 18px; }
.rj-aside__review { border-color: var(--rj-green); }
.rj-aside__title { margin: 0 0 8px; font-size: 0.6875rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--wp--preset--color--text-muted-on-ivory); }
.rj-aside__review-date { margin: 2px 0 0; font-size: 0.8125rem; color: var(--wp--preset--color--text-muted-on-ivory); }
.rj-aside__links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.rj-aside__links a { display: flex; align-items: center; min-height: 44px; border-top: 1px solid var(--rj-border-subtle); font-size: 0.9375rem; color: var(--rj-text-primary); text-decoration: none; }
.rj-aside__links li:first-child a { border-top: 0; }
.rj-aside__links a:hover { color: var(--rj-green); }
.rj-aside__news { background: var(--rj-parchment); border: 0; }
.rj-aside__news-text { margin: 0 0 8px; font-size: 0.875rem; color: var(--rj-text-body); }
.rj-aside__news-link { font-weight: 700; font-size: 0.875rem; color: var(--rj-green); text-decoration: none; }

/* End-matter furniture. */
.rj-article__endmatter { margin-top: 28px; }
.rj-review-meta { margin-block: 28px; padding: 16px 20px; background: var(--rj-parchment); border-radius: var(--rj-radius-md); font-size: 0.9375rem; }
.rj-sources { margin-block: 28px; }
.rj-sources__list, .rj-related__list { list-style: none; padding: 0; }
.rj-related { border-top: 1px solid var(--rj-border-subtle); padding-top: 28px; }
.rj-related__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.rj-related__list a { display: block; padding: 16px 20px; background: var(--rj-white); border: 1px solid var(--rj-border-subtle); border-radius: var(--rj-radius-md); text-decoration: none; font-weight: 700; color: var(--rj-text-primary); }
.rj-related__list a:hover { border-color: var(--rj-green); }

/* Inline citation markers + structured sources list. */
.rj-cite { font-size: 0.72em; line-height: 0; }
.rj-cite a { display: inline-block; min-width: 16px; padding: 0 2px; text-align: center; font-weight: 700; color: var(--rj-green); text-decoration: none; }
.rj-cite a:hover, .rj-cite a:focus-visible { text-decoration: underline; }
.rj-cite + .rj-cite a { margin-inline-start: 1px; }
.rj-sources__list { list-style: decimal; margin: 0; padding-inline-start: 1.5em; display: flex; flex-direction: column; gap: 10px; font-size: 0.9375rem; line-height: 1.7; }
.rj-source { scroll-margin-top: 80px; padding-inline-start: 4px; }
.rj-source:target { background: var(--rj-parchment); border-radius: var(--rj-radius-sm); }
.rj-source__author { font-weight: 700; }
.rj-source__title { color: var(--rj-text-primary); text-underline-offset: 2px; }
.rj-source__meta, .rj-source__accessed { color: var(--wp--preset--color--text-muted-on-ivory); }
.rj-source__back a { margin-inline-start: 4px; color: var(--rj-green); text-decoration: none; }
.rj-source__back a:hover { text-decoration: underline; }

/* Next-in-the-series navigation. */
.rj-series { margin: 28px 0; }
.rj-series__label { margin: 0 0 10px; font-size: 0.6875rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--wp--preset--color--text-muted-on-ivory); }
.rj-series__links { display: grid; grid-template-columns: 1fr; gap: 12px; }
.rj-series__item { display: flex; flex-direction: column; gap: 2px; padding: 14px 18px; border: 1px solid var(--rj-border-subtle); border-radius: var(--rj-radius-md); text-decoration: none; }
.rj-series__item:hover { border-color: var(--rj-green); }
.rj-series__dir { font-size: 0.6875rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--text-muted-on-ivory); }
.rj-series__title { font-weight: 700; color: var(--rj-text-primary); }
.rj-series__next { text-align: right; }

@media (min-width: 600px) { .rj-series__links { grid-template-columns: 1fr 1fr; } }

/* Inline glossary links + hover/focus preview (JS enhancement). */
.rj-article__body .rj-glossary-link { color: inherit; text-decoration: underline dotted; text-underline-offset: 3px; cursor: help; }

.rj-article__body .rj-glossary-link:hover,
.rj-article__body .rj-glossary-link:focus-visible { color: var(--rj-green); text-decoration-style: solid; }
.rj-glossary-pop { position: absolute; z-index: var(--rj-z-menu); max-width: 280px; padding: 10px 12px; background: var(--rj-white); border: 1px solid var(--rj-border-subtle); border-radius: var(--rj-radius-md); box-shadow: 0 8px 24px rgb(11 36 28 / 15%); font-size: 0.8125rem; line-height: 1.5; color: var(--rj-text-body); }
.rj-glossary-pop[hidden] { display: none; }
.rj-glossary-pop__term { display: block; margin-bottom: 2px; font-weight: 700; color: var(--rj-text-primary); }

/* Glossary chips ("Terms on this page"). */
.rj-glossary-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.rj-glossary-chip { display: inline-flex; align-items: center; min-height: 32px; padding: 6px 12px; border: 1px solid var(--rj-border-subtle); border-radius: var(--rj-radius-pill); font-size: 0.8125rem; font-weight: 700; color: var(--rj-text-primary); text-decoration: none; }
.rj-glossary-chip:hover { border-color: var(--rj-green); color: var(--rj-green); }

/* Data-table scroll hint (JS adds .is-scrollable + the hint when overflowing). */
.rj-article__body .wp-block-table.is-scrollable { box-shadow: inset -14px 0 12px -12px rgb(11 36 28 / 22%); }
.rj-article__body .wp-block-table.is-scrollable:focus-visible { outline: var(--rj-focus-outline-width) solid var(--rj-focus-outline-color); outline-offset: 2px; }
.rj-table-hint { margin: -4px 0 1.2em; font-size: 0.75rem; color: var(--wp--preset--color--text-muted-on-ivory); }

/* FAQ / disclosures authored as core Details blocks. */
.rj-article__body details { border-top: 1px solid var(--rj-border-subtle); }
.rj-article__body details:last-of-type { border-bottom: 1px solid var(--rj-border-subtle); }
.rj-article__body details > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 60px; font-weight: 500; }
.rj-article__body details > summary::-webkit-details-marker { display: none; }
.rj-article__body details > summary::after { content: "+"; color: var(--rj-green); font-weight: 700; font-size: 1.25rem; }
.rj-article__body details[open] > summary::after { content: "–"; }
.rj-article__body details > :not(summary) { padding-bottom: 14px; }

/* Body patterns: labelled callouts, tool callout, pull quote. */
.rj-article__body .rj-callout { background: var(--rj-parchment); border-left: 3px solid var(--rj-green); border-radius: var(--rj-radius-md); padding: 16px 18px; }
.rj-article__body .rj-callout > * { margin-block: 0 .6em; }
.rj-article__body .rj-callout > :last-child { margin-bottom: 0; }
.rj-callout__label { margin: 0 0 6px; font-size: 0.6875rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--rj-green); }
.rj-article__body .rj-callout--caution { border-left-color: var(--rj-russet); }
.rj-callout--caution .rj-callout__label { color: var(--rj-russet); }
.rj-article__body .rj-callout--methodology { border-left-color: var(--rj-border-strong); }
.rj-callout--methodology .rj-callout__label { color: var(--wp--preset--color--text-muted-on-white); }
.rj-article__body .rj-callout--definition { border-left-color: var(--rj-green-deep); }
.rj-callout--definition .rj-callout__label { color: var(--rj-green-deep); }
.rj-article__body .rj-callout--correction { border-left-color: var(--rj-gold); }
.rj-callout--correction .rj-callout__label { color: var(--rj-russet); }

.rj-article__body .rj-toolcallout { background: var(--rj-parchment); border: 1px solid var(--rj-border-subtle); border-radius: var(--rj-radius-md); padding: 20px 22px; }
.rj-article__body .rj-toolcallout > * { margin-block: 0 .5em; }
.rj-article__body .rj-toolcallout > :last-child { margin-bottom: 0; }
.rj-toolcallout__label { margin: 0 0 4px; font-size: 0.6875rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--rj-green); }
.rj-toolcallout__name { font-size: 1.05rem; }
.rj-article__body .rj-toolcallout .wp-block-button__link { background: var(--rj-green); color: var(--rj-parchment); border-radius: var(--rj-radius-pill); }
.rj-article__body .rj-toolcallout .wp-block-button__link:hover { background: var(--rj-green-deep); color: var(--rj-white); }

.rj-article__body .rj-pullquote { border-left: 0; background: transparent; padding: 8px 0; margin: 1.2em 0; font-style: normal; }
.rj-article__body .rj-pullquote p { font-size: clamp(1.4rem, 3vw, 1.9rem); line-height: 1.35; font-style: italic; color: var(--rj-text-primary); margin: 0; }
.rj-article__body .rj-pullquote cite { display: block; margin-top: 8px; font-size: 0.8125rem; font-style: normal; color: var(--wp--preset--color--text-muted-on-ivory); }

/* Desktop rails ≥1024: TOC | body | aside (sticky), centred. */
@media (min-width: 1024px) {
	.rj-article-grid.has-toc { grid-template-columns: 240px minmax(0, 720px); column-gap: 64px; justify-content: center; align-items: start; }
	.rj-article-grid:not(.has-toc) { grid-template-columns: minmax(0, 760px); justify-content: center; }
	.rj-article { margin-inline: 0; }
	.rj-artoc { position: sticky; top: 90px; }
}

/* Mobile TOC disclosure (progressive enhancement; open by default with no JS). */
@media (max-width: 767px) {
	.rj-artoc__toggle { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; min-height: 24px; padding: 6px 0 0; background: none; border: none; cursor: pointer; font-family: inherit; font-weight: 700; font-size: 0.875rem; color: var(--rj-green); }
	.rj-artoc__chev { transition: transform var(--rj-duration-fast) var(--rj-easing); }
	.rj-artoc[data-open="true"] .rj-artoc__chev { transform: rotate(180deg); }
	.rj-artoc[data-open="false"] .rj-artoc__list { display: none; }
}

/* Smooth in-page scrolling for TOC jumps, disabled under reduced motion. */
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}

/* ----------------------------------------------------- Major Topic Hub ----- */
.rj-hub { max-width: 1320px; }
.rj-hub__section { margin-top: 40px; }

/* Subject introduction. */
.rj-hub__eyebrow { margin: 0 0 8px; font-size: 0.6875rem; font-weight: 400; letter-spacing: .2em; text-transform: uppercase; color: var(--rj-russet); }
.rj-hub__title { margin: 0 0 12px; font-weight: 400; line-height: 1.04; font-size: clamp(2.25rem, 6vw, 3.875rem); color: var(--rj-green); }
.rj-hub__desc { margin: 0 0 12px; max-width: 42em; font-size: clamp(1rem, 2.5vw, 1.125rem); line-height: 1.75; color: var(--rj-text-body); }
.rj-hub__meta { margin: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 0.8125rem; color: var(--rj-text-secondary); }
.rj-hub__h2 { margin: 0 0 16px; font-weight: 400; font-size: clamp(1.375rem, 3vw, 1.75rem); color: var(--rj-green); }

/* Pill CTA. */
.rj-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 20px; border-radius: var(--rj-radius-pill); font-weight: 700; font-size: 0.75rem; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; }
.rj-btn--primary { background: var(--rj-green); color: var(--rj-parchment); }
.rj-btn--primary:hover { background: var(--rj-green-deep); color: var(--rj-parchment); }

/* Start Here. */
.rj-starthere { max-width: 640px; background: var(--rj-ivory); border-radius: var(--rj-radius-md); padding: 20px 22px; }
.rj-starthere__title { margin: 0 0 8px; font-size: 0.875rem; font-weight: 700; color: var(--rj-text-primary); }
.rj-starthere__list { list-style: none; margin: 0; padding: 0; }
.rj-starthere__link { display: flex; align-items: center; min-height: 48px; border-top: 1px solid var(--rj-parchment); font-size: 0.9375rem; color: var(--rj-text-body); text-decoration: none; }
.rj-starthere__link:hover { color: var(--rj-green); text-decoration: underline; text-underline-offset: 3px; }
.rj-starthere__path { margin-top: 16px; }

/* Subtopic pillars — ink ground + fixed scrim, legible with or without image. */
.rj-pillars__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.rj-pillar { position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; min-height: 120px; border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); background: var(--rj-ink); text-decoration: none; }
.rj-pillar__media { position: absolute; inset: 0; }
.rj-pillar__img { width: 100%; height: 100%; object-fit: cover; object-position: var(--rj-focal, 50% 50%); }
.rj-pillar__scrim { position: absolute; inset: 0; background: var(--rj-scrim-ink); }
.rj-pillar__body { position: relative; padding: 16px; }
.rj-pillar__title { display: block; font-size: 1.3125rem; line-height: 1.15; color: var(--rj-ivory); text-shadow: 0 1px 2px rgb(36 29 21 / 50%); }
.rj-pillar__desc { display: none; margin-top: 6px; font-size: 0.8125rem; line-height: 1.5; color: rgb(245 242 233 / 85%); }
.rj-pillar__count { display: block; margin-top: 10px; font-size: 0.75rem; color: var(--rj-parchment); }
.rj-pillar:hover { border-color: var(--rj-green); }

/* Recommended content. */
.rj-reco__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px; }
.rj-reco__all { display: inline-flex; align-items: center; min-height: 24px; font-size: 0.8125rem; font-weight: 700; color: var(--rj-green); text-decoration: none; white-space: nowrap; }
.rj-reco__all:hover { text-decoration: underline; text-underline-offset: 3px; }
.rj-reco__list { display: flex; flex-direction: column; gap: 16px; margin-top: 16px; }
.rj-reco-card { display: flex; gap: 14px; color: inherit; text-decoration: none; border-radius: var(--rj-radius-md); }
.rj-reco-card__media { flex: none; width: 110px; height: 80px; overflow: hidden; border-radius: var(--rj-radius-sm); background: var(--rj-parchment); }
.rj-reco-card__media img { width: 100%; height: 100%; object-fit: cover; }
.rj-reco-card__title { display: block; font-size: 1.125rem; line-height: 1.25; color: var(--rj-text-primary); }
.rj-reco-card:hover .rj-reco-card__title { color: var(--rj-green); }
.rj-reco-card__meta { display: block; margin-top: 4px; font-size: 0.75rem; color: var(--rj-text-secondary); }
.rj-reco__empty { color: var(--rj-text-body); }

/* Aside panels: Tools / Glossary / Story. */
.rj-hub-panel__title { margin: 0 0 10px; font-size: 0.6875rem; font-weight: 400; letter-spacing: .2em; text-transform: uppercase; color: var(--rj-green); }
.rj-hubtools { border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); padding: 18px 20px; }
.rj-hubtools__list { list-style: none; margin: 0; padding: 0; }
.rj-hubtools__link { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; border-top: 1px solid var(--rj-parchment); font-size: 0.9375rem; color: var(--rj-text-primary); text-decoration: none; }
.rj-hubtools__list li:first-child .rj-hubtools__link { border-top: 0; }
.rj-hubtools__link:hover { color: var(--rj-green); }
.rj-hubgloss__chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.rj-chip { display: inline-flex; align-items: center; min-height: 36px; padding: 8px 14px; border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-pill); font-size: 0.6875rem; font-weight: 700; color: var(--rj-text-primary); text-decoration: none; }
.rj-chip:hover { border-color: var(--rj-green); color: var(--rj-green); }
.rj-hubstory__card { display: block; background: var(--rj-ivory); border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); padding: 16px; text-decoration: none; }
.rj-hubstory__quote { display: block; font-style: italic; font-size: 1.25rem; line-height: 1.3; color: var(--rj-text-primary); }
.rj-hubstory__cta { display: block; margin-top: 8px; font-size: 0.75rem; font-weight: 700; color: var(--rj-green); }

/* Trust endcap. */
.rj-hubtrust { border-top: 1px solid var(--rj-parchment); padding-top: 16px; }
.rj-hubtrust__title { display: inline; margin: 0 8px 0 0; font-size: 0.8125rem; font-weight: 700; color: var(--rj-text-primary); }
.rj-hubtrust__list { display: inline-flex; flex-wrap: wrap; gap: 8px 20px; list-style: none; margin: 0; padding: 0; }
.rj-hubtrust__list a { font-size: 0.8125rem; color: var(--rj-text-body); text-decoration: none; }
.rj-hubtrust__list a:hover { color: var(--rj-green); text-decoration: underline; text-underline-offset: 3px; }

/* Empty / low-content states. */
.rj-hub-empty__links, .rj-hub-pathway__list { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.rj-hub-empty__links a, .rj-hub-pathway__list a { display: inline-flex; align-items: center; min-height: 44px; color: var(--rj-green); text-decoration: none; }
.rj-hub-empty__links a:hover, .rj-hub-pathway__list a:hover { text-decoration: underline; text-underline-offset: 3px; }
.rj-hub-empty__news { margin-top: 16px; }

/* Whole-card keyboard focus over the full interactive area. */
.rj-pillar:focus-visible, .rj-reco-card:focus-visible, .rj-chip:focus-visible, .rj-hubstory__card:focus-visible, .rj-hubtools__link:focus-visible, .rj-starthere__link:focus-visible, .rj-reco__all:focus-visible, .rj-hubtrust__list a:focus-visible {
	outline: var(--rj-focus-outline-width) solid var(--rj-green-deep); outline-offset: var(--rj-focus-outline-offset);
}

/* Hub — tablet. */
@media (min-width: 768px) {
	.rj-pillars__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.rj-pillars__grid > .rj-pillar { grid-column: span 2; }
	.rj-pillars[data-count="5"] .rj-pillar:nth-child(4), .rj-pillars[data-count="5"] .rj-pillar:nth-child(5) { grid-column: span 3; }
}

/* Hub — desktop: 5-up pillars (count-adjusted) and the Recommended + sidebar row. */
@media (min-width: 1024px) {
	.rj-pillars__grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
	.rj-pillars__grid > .rj-pillar { grid-column: auto; min-height: 190px; }
	.rj-pillars[data-count="4"] .rj-pillars__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.rj-pillars[data-count="6"] .rj-pillars__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.rj-pillar__desc { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }

	.rj-hub__lower { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 40px; align-items: start; }
	.rj-hub__lower--full { display: block; }
	.rj-hub__aside { display: flex; flex-direction: column; gap: 20px; }
	.rj-hub__aside .rj-hub__section { margin-top: 0; }
}

@media (forced-colors: active) {
	.rj-pillar { background: Canvas; color: CanvasText; }
	.rj-pillar__scrim, .rj-pillar__media { display: none; }
	.rj-pillar__title, .rj-pillar__count, .rj-pillar__desc { color: CanvasText; text-shadow: none; }
	.rj-pillar__desc { display: block; }
}

/* ----------------------------------------------------- Pillar Hub --------- */
.rj-pillarhub { max-width: 860px; }

/* Learning path: ordered list, presentational leading-zero numbers. */
.rj-lp { list-style: none; margin: 0; padding: 0; counter-reset: rj-lp; }
.rj-lp__item { counter-increment: rj-lp; display: flex; gap: 14px; padding: 14px 0; border-top: 1px solid var(--rj-parchment); scroll-margin-top: 96px; }
.rj-lp__num { flex: none; min-width: 26px; font-size: 1.125rem; color: var(--rj-russet); }
.rj-lp__num::before { content: counter(rj-lp, decimal-leading-zero); }
.rj-lp__link { font-weight: 700; font-size: 0.9375rem; line-height: 1.35; color: var(--rj-text-primary); text-decoration: none; }
.rj-lp__link:hover { color: var(--rj-green); text-decoration: underline; text-underline-offset: 3px; }
.rj-lp__meta { display: block; margin-top: 2px; font-size: 0.75rem; color: var(--rj-text-secondary); }
.rj-lp__note { margin: 8px 0 0; font-size: 0.75rem; color: var(--rj-text-secondary); }

/* Comparison table. */
.rj-cmp__scroll { overflow-x: auto; }
.rj-cmp__table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.rj-cmp__caption { margin-bottom: 10px; font-size: 0.8125rem; color: var(--rj-text-secondary); text-align: left; }
.rj-cmp__editorial { color: var(--rj-russet); }
.rj-cmp__table th, .rj-cmp__table td { padding: 10px 12px; border: 1px solid var(--rj-parchment); text-align: left; vertical-align: top; }
.rj-cmp__table thead th { background: var(--rj-ivory); font-weight: 700; white-space: nowrap; }
.rj-cmp__table th[scope="row"] { font-weight: 700; white-space: nowrap; }
.rj-cmp__note { margin: 8px 0 0; font-size: 0.75rem; color: var(--rj-text-secondary); }

/* Related, Available guides, Archive handoff, About, Parent handoff. */
.rj-related__list, .rj-avail__list, .rj-parent-handoff__list, .rj-about__list { list-style: none; margin: 0; padding: 0; }
.rj-related__link, .rj-avail__link { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; border-top: 1px solid var(--rj-parchment); color: var(--rj-text-primary); text-decoration: none; }
.rj-related__link:hover, .rj-avail__link:hover { color: var(--rj-green); }
.rj-archive-handoff { margin-top: 24px; }
.rj-archive-handoff a { font-weight: 700; color: var(--rj-green); text-decoration: none; }
.rj-archive-handoff a:hover { text-decoration: underline; text-underline-offset: 3px; }
.rj-about, .rj-parent-handoff { background: var(--rj-ivory); border-radius: var(--rj-radius-md); padding: 16px 18px; }
.rj-about__list li { padding: 2px 0; font-size: 0.875rem; color: var(--rj-text-body); }
.rj-parent-handoff__back, .rj-parent-handoff__link { display: flex; align-items: center; gap: 8px; min-height: 44px; border-top: 1px solid var(--rj-parchment); color: var(--rj-text-primary); text-decoration: none; }
.rj-parent-handoff__list li:first-child a { border-top: 0; }
.rj-parent-handoff__back:hover, .rj-parent-handoff__link:hover { color: var(--rj-green); }
.rj-hub__maint { color: var(--rj-green); font-weight: 700; text-decoration: none; }
.rj-hub__maint:hover { text-decoration: underline; text-underline-offset: 3px; }

.rj-lp__link:focus-visible, .rj-related__link:focus-visible, .rj-avail__link:focus-visible, .rj-parent-handoff__back:focus-visible, .rj-parent-handoff__link:focus-visible, .rj-archive-handoff a:focus-visible, .rj-hub__maint:focus-visible {
	outline: var(--rj-focus-outline-width) solid var(--rj-green-deep); outline-offset: var(--rj-focus-outline-offset);
}

/* Smooth "Begin with step one" jump, honouring reduced motion. */
@media (prefers-reduced-motion: no-preference) {
	html:has(.rj-pillarhub) { scroll-behavior: smooth; }
	html:has(.rj-buying-guide) { scroll-behavior: smooth; }
}

/* ----------------------------------------------------- Buying Guide ------- */
.rj-bg-grid { display: block; }
.rj-bg-body { display: block; max-width: 720px; margin-inline: auto; }
.rj-bg-section { margin-top: 56px; scroll-margin-top: 96px; }
.rj-bg-content { margin-top: 40px; }
.rj-bg-content > :first-child { margin-top: 0; }

/* Header. */
.rj-bg-audience { margin: -8px 0 20px; font-size: 1rem; color: var(--rj-text-body); }
.rj-bg-meta { margin: 12px 0 0; font-size: 0.8125rem; color: var(--rj-text-secondary); }
.rj-bg-header .rj-buying-guide__disclosure { margin: 18px 0 0; font-size: 0.875rem; line-height: 1.6; color: var(--wp--preset--color--text-muted-on-ivory); }
.rj-bg-note { margin: 8px 0 0; font-size: 0.75rem; color: var(--rj-text-secondary); }
.rj-bg-h2 { margin: 0 0 18px; font-weight: 400; font-size: clamp(1.625rem, 3vw, 2.125rem); line-height: 1.2; color: var(--rj-green-deep); }
.rj-bg-prose { font-size: 1.125rem; line-height: 1.72; color: var(--rj-text-body); }
.rj-bg-prose > :first-child { margin-top: 0; }

/* Decision in Brief. */
.rj-bg-brief { background: var(--rj-white); border: 1px solid var(--rj-parchment); border-top: 2px solid var(--rj-green); border-radius: var(--rj-radius-md); padding: 26px 30px; }
.rj-bg-brief__title { margin: 0 0 14px; font-size: 1.5rem; font-weight: 400; line-height: 1.25; color: var(--rj-green-deep); }
.rj-bg-brief__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; font-size: 1.0625rem; line-height: 1.6; color: var(--rj-text-body); }
.rj-bg-brief__list a { color: var(--rj-text-body); text-underline-offset: 3px; }
.rj-bg-brief__list a:hover { color: var(--rj-green); }
.rj-bg-brief__tick { color: var(--rj-green); font-weight: 700; margin-right: 4px; }
.rj-bg-brief__more { margin: 12px 0 0; font-weight: 700; font-size: 0.8125rem; }
.rj-bg-brief__more a { color: var(--rj-green); text-decoration: none; }
.rj-bg-brief__more a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Reader checklist. */
.rj-bg-checklist { margin-top: 14px; border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); padding: 14px 16px; }
.rj-bg-checklist__title { margin: 0 0 6px; font-weight: 700; font-size: 0.875rem; }
.rj-bg-checklist ul { list-style: none; margin: 0; padding: 0; font-size: 1rem; line-height: 1.8; color: var(--rj-text-body); }

/* Criteria. */
.rj-bg-criteria { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.rj-bg-criterion { border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); padding: 20px; }
.rj-bg-criterion__name { margin: 0; font-weight: 400; font-size: 1.25rem; color: var(--rj-green-deep); }
.rj-bg-criterion__summary { margin: 6px 0 0; font-size: 1rem; line-height: 1.6; color: var(--rj-text-body); }
.rj-bg-criterion__link { display: inline-block; margin-top: 6px; font-weight: 700; font-size: 0.8125rem; color: var(--rj-green); text-decoration: none; }
.rj-bg-criterion__link:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Decision process — ordered list with leading-zero numbers. */
.rj-steps { list-style: none; margin: 0; padding: 0; counter-reset: rj-steps; }
.rj-steps__group { margin: 16px 0 4px; font-size: 0.6875rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--rj-russet); }
.rj-steps__item { counter-increment: rj-steps; display: flex; gap: 12px; padding: 11px 0; border-top: 1px solid var(--rj-parchment); font-size: 1.0625rem; line-height: 1.55; }
.rj-steps__num { flex: none; min-width: 32px; font-size: 1.375rem; line-height: 1.1; color: var(--rj-russet); }
.rj-steps__num::before { content: counter(rj-steps, decimal-leading-zero); }
.rj-steps__body a { color: var(--rj-text-primary); text-underline-offset: 3px; }
.rj-steps__body a:hover { color: var(--rj-green); }

/* Budget. */
.rj-bg-budget { background: var(--rj-ivory); border-radius: var(--rj-radius-md); padding: 18px 20px; }
.rj-bg-pricenote { margin-top: 24px; border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); padding: 12px 14px; font-size: 0.875rem; color: var(--rj-text-body); }

/* Mistakes. */
.rj-bg-mistakes { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.rj-bg-mistake { background: var(--rj-ivory); border-left: 2px solid var(--rj-russet); border-radius: 0 var(--rj-radius-md) var(--rj-radius-md) 0; padding: 14px 18px; font-size: 1rem; line-height: 1.6; color: var(--rj-text-body); }
.rj-bg-mistake a { color: var(--rj-green); font-weight: 700; text-decoration: none; }
.rj-bg-mistake a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Tools. */
.rj-bg-tools { border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); padding: 16px 18px; }
.rj-bg-tools__list { list-style: none; margin: 0; padding: 0; }
.rj-bg-tools__list li { padding: 10px 0; border-top: 1px solid var(--rj-parchment); }
.rj-bg-tools__list li:first-child { border-top: 0; }
.rj-bg-tools__link { display: inline-block; font-weight: 700; color: var(--rj-text-primary); text-decoration: none; }
.rj-bg-tools__link:hover { color: var(--rj-green); }
.rj-bg-tools__purpose { display: block; margin-top: 2px; font-size: 0.75rem; color: var(--rj-text-secondary); }

/* Questions. */
.rj-bg-questions { border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); padding: 14px 16px; }
.rj-bg-qgroup + .rj-bg-qgroup { margin-top: 10px; }
.rj-bg-qgroup__label { margin: 0 0 2px; font-weight: 700; font-size: 0.875rem; }
.rj-bg-qgroup ul { list-style: none; margin: 0; padding: 0; font-size: 1rem; line-height: 1.8; color: var(--rj-text-body); }

/* FAQ. */
.rj-bg-faq { border-bottom: 1px solid var(--rj-border-subtle); }
.rj-bg-faq__item { border-top: 1px solid var(--rj-border-subtle); }
.rj-bg-faq__item summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 60px; padding: 16px 0; font-size: 1.1875rem; line-height: 1.35; color: var(--rj-green-deep); }
.rj-bg-faq__item summary::-webkit-details-marker { display: none; }
.rj-bg-faq__item summary::after { content: "+"; flex: none; font-size: 1.5rem; line-height: 1; color: var(--rj-russet); }
.rj-bg-faq__item[open] summary::after { content: "−"; }
.rj-bg-faq__item summary:focus-visible { outline: var(--rj-focus-outline-width) solid var(--rj-green-deep); outline-offset: 3px; }
.rj-bg-faq__item .rj-bg-prose { padding-bottom: 20px; }

/* Sources. */
.rj-bg-sources { margin: 12px 0 0; padding-left: 1.4em; font-size: 0.8125rem; line-height: 1.8; color: var(--rj-text-body); }

/* Related. */
.rj-bg-related__list { list-style: none; margin: 0; padding: 0; }
.rj-bg-related__link { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; border-top: 1px solid var(--rj-parchment); color: var(--rj-text-primary); text-decoration: none; }
.rj-bg-related__link:hover { color: var(--rj-green); }

/* Service handoff — restrained, explicitly commercial, never editorial. */
.rj-bg-service { background: var(--rj-white); border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); padding: 20px; }
.rj-bg-service__label { margin: 0 0 6px; font-size: 0.625rem; letter-spacing: .2em; text-transform: uppercase; color: var(--rj-text-secondary); }
.rj-bg-service__heading { margin: 0; font-weight: 400; font-size: 1.375rem; color: var(--rj-text-primary); }
.rj-bg-service__desc { margin: 6px 0 0; font-size: 0.8125rem; line-height: 1.65; color: var(--rj-text-body); }
.rj-bg-service__cta { margin-top: 12px; background: transparent; color: var(--rj-text-secondary); border: 1px solid var(--rj-parchment); }
.rj-bg-service__cta:hover { border-color: var(--rj-green); color: var(--rj-green); }
.rj-bg-service__fee, .rj-bg-service__disclosure { margin: 8px 0 0; font-size: 0.6875rem; line-height: 1.6; color: var(--rj-text-secondary); }

.rj-bg-criterion__link:focus-visible, .rj-bg-tools__link:focus-visible, .rj-bg-related__link:focus-visible, .rj-steps__body a:focus-visible, .rj-bg-brief__more a:focus-visible, .rj-bg-service__cta:focus-visible, .rj-bg-mistake a:focus-visible {
	outline: var(--rj-focus-outline-width) solid var(--rj-green-deep); outline-offset: var(--rj-focus-outline-offset);
}

/* End-of-guide modules (related, service, trust), after the body. */
.rj-bg-aside { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; margin-top: 56px; }
.rj-bg-aside > section { margin-top: 0; }

/* Buying guide — desktop: sticky TOC rail + body + sticky aside rail. */
@media (min-width: 1024px) {
	.rj-bg-grid.has-toc { display: grid; grid-template-columns: 240px minmax(0, 720px); gap: 64px; justify-content: center; align-items: start; }
	.rj-bg-grid.has-toc .rj-bg-toc { position: sticky; top: 90px; }
	.rj-bg-criteria { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* -------------------------------------------------------- Site Search ----- */
.rj-search__band { background: var(--rj-green); color: var(--rj-parchment); }
.rj-search__band-inner { max-width: var(--rj-header-max, 1320px); margin-inline: auto; padding: 24px var(--rj-container-pad) 28px; }
.rj-search__band .rj-breadcrumbs, .rj-search__band .rj-breadcrumbs a, .rj-search__band .rj-breadcrumbs__current { color: var(--rj-parchment); }
.rj-search__eyebrow { margin: 12px 0 6px; font-size: 0.6875rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--rj-gold-on-dark); }
.rj-search__title { margin: 0 0 14px; font-weight: 700; font-size: clamp(1.5rem, 4vw, 2.125rem); line-height: 1.1; color: var(--rj-white); }
.rj-search__form { max-width: 640px; }
.rj-search__band .rj-searchform__label { color: var(--rj-parchment); }
.rj-search__band .rj-button { background: var(--rj-parchment); color: var(--rj-green); border-color: var(--rj-parchment); }
.rj-search__band .rj-button:hover { background: var(--rj-white); color: var(--rj-green-deep); }

.rj-search__body { padding-block: 32px 56px; }
.rj-search__lead { margin: 0 0 16px; max-width: 40em; font-size: 0.9375rem; line-height: 1.8; color: var(--rj-text-body); }
.rj-search__browse { list-style: none; margin: 0; padding: 0; }
.rj-search__browse a { display: flex; align-items: center; min-height: 44px; color: var(--rj-green); }
.rj-search__browse a:hover { color: var(--rj-green-deep); }
.rj-search__recovery-block .rj-search__browse { background: var(--rj-parchment); border-radius: var(--rj-radius-md); padding: 8px 18px; }

.rj-search__summary { margin: 0; font-weight: 700; font-size: clamp(1.125rem, 3vw, 1.375rem); color: var(--rj-green); overflow-wrap: anywhere; }
.rj-search__summary:focus-visible { outline: var(--rj-focus-outline-width) solid var(--rj-green); outline-offset: 4px; border-radius: 4px; }
.rj-search__submeta { margin: 4px 0 0; font-size: 0.75rem; color: var(--rj-text-secondary); }
.rj-search__nores { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; margin-top: 14px; }
.rj-search__nores h3 { margin: 0 0 6px; font-size: 0.875rem; }
.rj-search__tips { margin: 0; padding-left: 20px; font-size: 0.8125rem; line-height: 1.9; color: var(--rj-text-body); }

/* Facets + results grid. */
.rj-search__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; }
.rj-search__facet-title { margin: 0 0 10px; font-size: 0.6875rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--rj-text-secondary); }
.rj-search__fieldset { margin: 0 0 14px; padding: 8px 16px 12px; border: 1px solid var(--rj-border-subtle); border-radius: var(--rj-radius-md); }
.rj-search__fieldset legend { padding: 0 6px; font-size: 0.625rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--rj-text-secondary); }
.rj-search__check { display: flex; align-items: center; gap: 10px; min-height: 44px; font-size: 0.8125rem; }
.rj-search__check input { accent-color: var(--rj-green); width: 24px; height: 24px; }
.rj-search__count { color: var(--rj-text-secondary); }
.rj-search__filter-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.rj-search__clear { font-size: 0.8125rem; color: var(--rj-green); }

.rj-search__resulthead { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; border-bottom: 1px solid var(--rj-gold); padding-bottom: 12px; margin-bottom: 6px; }
.rj-search__sort { display: flex; align-items: flex-end; gap: 8px; }
.rj-search__sort label { display: block; font-size: 0.75rem; color: var(--rj-text-secondary); margin-bottom: 4px; }
.rj-search__sort select { min-height: var(--rj-control-md); padding: 0 10px; border: 1px solid var(--rj-border-control); border-radius: var(--rj-radius-md); font-family: inherit; font-size: 0.875rem; background: var(--rj-white); }

/* Result list. */
.rj-search-result { padding: 18px 0; border-bottom: 1px solid var(--rj-border-subtle); }
.rj-search-result__tag { display: inline-block; margin: 0 0 6px; padding: 3px 8px; border: 1px solid var(--rj-gold); border-radius: 3px; font-size: 0.625rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--rj-green); }
.rj-search-result__crumb { margin: 0; font-size: 0.6875rem; color: var(--rj-text-secondary); }
.rj-search-result__title { margin: 6px 0 4px; font-weight: 700; font-size: 1.1875rem; line-height: 1.3; }
.rj-search-result__title a { color: var(--rj-text-primary); text-decoration: underline; text-underline-offset: 3px; }
.rj-search-result__title a:hover { color: var(--rj-green); }
.rj-search-result__excerpt { margin: 0 0 6px; font-size: 0.875rem; line-height: 1.7; color: var(--rj-text-body); }
.rj-search-result__meta { margin: 0; font-size: 0.75rem; color: var(--rj-text-secondary); }
.rj-search-result mark { background: var(--rj-parchment); color: var(--rj-text-primary); padding: 0 2px; border-bottom: 1px solid var(--rj-gold); }

/* Pagination. */
.rj-search .pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 22px; }
.rj-search .pagination .page-numbers { min-height: 44px; display: inline-flex; align-items: center; padding: 0 14px; border: 1px solid var(--rj-border-subtle); border-radius: var(--rj-radius-md); font-size: 0.8125rem; text-decoration: none; color: var(--rj-text-primary); }
.rj-search .pagination .page-numbers.current { background: var(--rj-green); border-color: var(--rj-green); color: var(--rj-white); font-weight: 700; }
.rj-search .pagination .page-numbers:hover:not(.current) { border-color: var(--rj-green); }

@media (min-width: 768px) {
	.rj-search__nores { grid-template-columns: 1fr 1fr; }
	.rj-search__recovery-block .rj-search__browse { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
}

@media (min-width: 1024px) {
	.rj-search__grid { grid-template-columns: 240px minmax(0, 1fr); gap: 44px; align-items: start; }
	.rj-search__facets { position: sticky; top: 90px; }
}

@media (forced-colors: active) {
	.rj-search-result mark { background: Mark; color: MarkText; }
}

/* -------------------------------------------------------- Newsletter ------ */
.rj-nl__band { background: var(--rj-green); color: var(--rj-parchment); }
.rj-nl__band-inner { max-width: var(--rj-header-max, 1320px); margin-inline: auto; padding: 22px var(--rj-container-pad) 26px; }
.rj-nl__band .rj-breadcrumbs, .rj-nl__band .rj-breadcrumbs a, .rj-nl__band .rj-breadcrumbs__current { color: var(--rj-parchment); }
.rj-nl__eyebrow { margin: 12px 0 6px; font-size: 0.6875rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--rj-gold-on-dark); }
.rj-nl__title { margin: 0 0 8px; font-weight: 700; font-size: clamp(1.5rem, 4vw, 2.0625rem); line-height: 1.12; color: var(--rj-white); }
.rj-nl__lede { margin: 0; max-width: 40em; font-size: 0.9375rem; line-height: 1.75; color: var(--rj-parchment); }

.rj-nl__body { padding-block: 30px 56px; }
.rj-nl__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; }
.rj-nl__h2 { margin: 0 0 8px; font-weight: 700; font-size: 1.1875rem; color: var(--rj-green); }
.rj-nl__list { margin: 0 0 8px; padding-left: 20px; font-size: 0.875rem; line-height: 1.85; color: var(--rj-text-body); }
.rj-nl__intro { margin-bottom: 16px; }

/* Form primitives (shared, form-based system pages). */
.rj-hint { margin: 4px 0 0; font-size: 0.75rem; line-height: 1.55; color: var(--rj-text-secondary); }
.rj-req-note { margin: 0 0 14px; font-size: 0.75rem; color: var(--rj-text-secondary); }
.rj-req { font-size: 0.75rem; font-weight: 400; color: var(--rj-text-secondary); }
.rj-field-group { margin-bottom: 18px; }
.rj-label { display: block; margin-bottom: 6px; font-weight: 700; font-size: 0.875rem; }
.rj-field { width: 100%; min-height: var(--rj-control-md); padding: 0 14px; border: 1px solid var(--rj-border-control); border-radius: var(--rj-radius-md); font-family: inherit; font-size: 1rem; background: var(--rj-white); color: var(--rj-text-primary); }
.rj-field:focus-visible { outline: var(--rj-focus-outline-width) solid var(--rj-green-deep); outline-offset: 2px; }
.rj-label-caps { display: block; margin: 0 0 4px; font-size: 0.625rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--rj-text-secondary); }
.rj-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.rj-nl-fieldset { margin: 0 0 18px; padding: 8px 16px 10px; border: 1px solid var(--rj-border-subtle); border-radius: var(--rj-radius-md); }
.rj-nl-fieldset legend { padding: 0 6px; font-size: 0.625rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--rj-text-secondary); }
.rj-checkline { display: flex; gap: 10px; align-items: flex-start; min-height: 44px; padding: 4px 0; font-size: 0.875rem; line-height: 1.5; }
.rj-checkline input { margin-top: 0; accent-color: var(--rj-green); width: 24px; height: 24px; }
.rj-nl-consent { margin: 0 0 18px; }
.rj-nl-form__status { margin: 10px 0 0; font-size: 0.8125rem; }
.rj-nl__confirm-note { margin-top: 14px; }

/* Aside. */
.rj-nl__aside { display: flex; flex-direction: column; gap: 14px; align-self: start; }
.rj-nl__panel { background: var(--rj-parchment); border-radius: var(--rj-radius-md); padding: 16px 18px; }
.rj-nl__panel-title { margin: 0 0 8px; font-size: 0.6875rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--rj-gold-on-light); }
.rj-nl__panel p { margin: 0 0 10px; font-size: 0.8125rem; line-height: 1.7; color: var(--rj-text-body); }
.rj-nl__aside .rj-notice a { min-height: 44px; display: inline-flex; align-items: center; }

@media (min-width: 1024px) {
	.rj-nl__grid { grid-template-columns: minmax(0, 600px) 340px; gap: 44px; justify-content: start; align-items: start; }
}

/* --------------------------------------------------- Gemstone archive ----- */
.rj-gemarch__band { background: var(--rj-ivory); border-bottom: 1px solid var(--rj-border-subtle); }
.rj-gemarch__band-inner { max-width: 1240px; margin-inline: auto; padding: 20px var(--rj-container-pad) 40px; }
.rj-gemarch__eyebrow { margin: 28px 0 12px; font-size: 0.75rem; font-weight: 400; letter-spacing: .22em; text-transform: uppercase; color: var(--rj-russet); }
.rj-gemarch__title { margin: 0 0 14px; font-weight: 400; font-size: clamp(2.25rem, 4.4vw, 3.75rem); line-height: 1.06; color: var(--rj-green-deep); }
.rj-gemarch__lede { margin: 0 0 12px; max-width: 36em; font-size: clamp(1.0625rem, 1.6vw, 1.1875rem); line-height: 1.6; color: var(--rj-text-body); }
.rj-gemarch__disclaimer { margin: 0; max-width: 46em; font-size: 0.8125rem; line-height: 1.6; color: var(--wp--preset--color--text-muted-on-ivory); }

/* Browse by colour (swatch links; the colour select in the form still works). */
.rj-gemcolours { margin-bottom: 24px; }
.rj-gemcolours__label { margin: 0 0 10px; font-size: 0.9375rem; color: var(--wp--preset--color--text-muted-on-white); }
.rj-gemcolours__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.rj-gemcolours__chip { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border: 1px solid var(--rj-border-subtle); border-radius: var(--rj-radius-pill); background: var(--rj-white); color: var(--rj-green); font-size: 0.9375rem; text-decoration: none; }
.rj-gemcolours__chip:hover { border-color: var(--rj-green); }
.rj-gemcolours__chip.is-current { border-color: var(--rj-green); background: var(--rj-green); color: var(--rj-white); }
.rj-gemcolours__dot { flex: none; width: 14px; height: 14px; border-radius: 50%; border: 1px solid rgb(36 29 21 / 25%); }

.rj-gemarch__body { padding-block: 24px 56px; }
.rj-gemarch__filters { margin-bottom: 20px; }
.rj-gemarch__filter-row { display: flex; gap: 14px; align-items: end; flex-wrap: wrap; }
.rj-gemarch__field { display: flex; flex-direction: column; }
.rj-gemarch__field--grow { flex: 1; min-width: 240px; }
.rj-gemarch__field label { margin-bottom: 5px; font-size: 0.6875rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--rj-text-secondary); }
.rj-gemarch__field .rj-field { min-width: 200px; }
.rj-gemarch__clear { align-self: center; min-height: 44px; display: inline-flex; align-items: center; font-size: 0.8125rem; color: var(--rj-text-secondary); }
.rj-gemarch__more { margin-top: 12px; }
.rj-gemarch__more summary { min-height: 44px; display: inline-flex; align-items: center; font-weight: 700; font-size: 0.8125rem; color: var(--rj-green); cursor: pointer; }
.rj-gemarch__more[open] .rj-gemarch__filter-row { margin-top: 6px; }

.rj-gemarch__az { display: flex; gap: 4px; flex-wrap: wrap; margin-top: 16px; }
.rj-gemarch__letter { min-width: 34px; min-height: 34px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); font-weight: 700; font-size: 0.75rem; color: var(--rj-text-primary); text-decoration: none; }
.rj-gemarch__letter:hover:not(.is-disabled) { border-color: var(--rj-green); }
.rj-gemarch__letter.is-current { background: var(--rj-green); border-color: var(--rj-green); color: var(--rj-white); }
.rj-gemarch__letter.is-disabled { background: var(--rj-ivory); color: var(--rj-border-subtle); cursor: not-allowed; }

.rj-gemarch__summary { margin: 20px 0 0; font-weight: 400; font-size: 1rem; color: var(--rj-text-secondary); }
.rj-gemarch__summary:focus-visible { outline: var(--rj-focus-outline-width) solid var(--rj-green); outline-offset: 4px; border-radius: 4px; }
.rj-gemarch__chips { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 10px; }
.rj-gemarch__chips-label { font-size: 0.625rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--rj-text-secondary); }
.rj-gemarch__chip { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 0 12px; border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); font-size: 0.75rem; color: var(--rj-text-body); text-decoration: none; }
.rj-gemarch__chip:hover { border-color: var(--rj-green); color: var(--rj-green); }

.rj-gemarch__none { padding: 40px 0 46px; text-align: center; }
.rj-gemarch__none h3 { margin: 0 0 8px; font-weight: 400; font-size: clamp(1.25rem, 4vw, 1.75rem); color: var(--rj-green); }
.rj-gemarch__none p { margin: 0 auto 16px; max-width: 30em; font-size: 0.875rem; color: var(--rj-text-secondary); }

/* Grid + cards — image-forward tiles. */
.rj-gem-grid { list-style: none; margin: 20px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 16px; }
.rj-gem-card { display: flex; flex-direction: column; min-width: 0; }
.rj-gem-card__link { display: flex; flex-direction: column; gap: 2px; text-decoration: none; color: inherit; }
.rj-gem-card__media { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; overflow: hidden; margin-bottom: 10px; background: var(--rj-ivory); }
.rj-gem-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rj-gem-card__media .rj-hgem__drawing { width: 60%; height: auto; }
.rj-gem-card__lab { position: absolute; top: 8px; left: 8px; padding: 3px 8px; background: var(--rj-white); border: 1px solid var(--rj-border-subtle); font-size: 0.6875rem; letter-spacing: .06em; text-transform: uppercase; color: var(--rj-green-deep); }
.rj-gem-card__name { font-size: 1.1875rem; line-height: 1.3; color: var(--rj-green-deep); }
.rj-gem-card__birth { font-size: 0.875rem; line-height: 1.45; color: var(--wp--preset--color--text-muted-on-white); }
.rj-gem-card__link:hover .rj-gem-card__name { text-decoration: underline; text-underline-offset: 3px; }
.rj-gem-card__link:focus-visible { outline: var(--rj-focus-outline-width) solid var(--rj-green-deep); outline-offset: 3px; }
.rj-gem-card__qv { align-self: flex-start; min-height: 44px; display: inline-flex; align-items: center; margin-top: 2px; font-size: 0.875rem; color: var(--rj-green); text-underline-offset: 3px; }
.rj-gem-card__qv:hover { color: var(--rj-green-deep); }
.rj-gem-card.is-open .rj-gem-card__qv { font-weight: 700; color: var(--rj-green-deep); }

@media (min-width: 600px) { .rj-gem-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

@media (min-width: 900px) { .rj-gem-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 36px 24px; } }

/* Quick View — full-width overview; image fills the panel behind a scrim. */
.rj-gem-qv { position: relative; margin-top: 16px; background: var(--rj-ivory); border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); overflow: hidden; scroll-margin-top: 100px; }
.rj-gem-qv.has-image { background-image: linear-gradient(rgb(245 242 233 / 90%), rgb(245 242 233 / 90%)), var(--rj-qv-img); background-size: cover; background-position: center; }
.rj-gem-qv:focus { outline: none; }
.rj-gem-qv-holder { grid-column: 1 / -1; }
.rj-gem-qv--ingrid { grid-column: 1 / -1; margin-top: 0; }
.rj-gem-qv__inner { padding: 26px 30px 30px; }
.rj-gem-qv__close { position: absolute; top: 14px; right: 14px; z-index: 2; width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); background: var(--rj-white); color: var(--rj-text-primary); text-decoration: none; }
.rj-gem-qv__close:hover { border-color: var(--rj-green); color: var(--rj-green); }
.rj-gem-qv__eyebrow { margin: 0 0 12px; padding-right: 48px; font-size: 0.6875rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--rj-russet); }
.rj-gem-qv__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; align-items: start; }
.rj-gem-qv__name { margin: 0; font-weight: 400; font-size: clamp(1.75rem, 4vw, 2.5rem); line-height: 1.05; color: var(--rj-text-primary); }
.rj-gem-qv__lab { display: inline-block; margin-top: 8px; padding: 3px 8px; border: 1px solid var(--rj-gold); border-radius: var(--rj-radius-md); background: var(--rj-white); font-size: 0.625rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--rj-text-primary); }
.rj-gem-qv__rule { display: block; width: 56px; height: 1px; margin: 16px 0; background: var(--rj-gold); }
.rj-gem-qv__summary { margin: 0; font-style: italic; font-size: 1.1875rem; line-height: 1.5; color: var(--rj-text-body); }
.rj-gem-qv__facts { margin: 0; display: flex; flex-direction: column; gap: 9px; font-size: 0.8125rem; line-height: 1.55; color: var(--rj-text-secondary); }
.rj-gem-qv__facts div { margin: 0; }
.rj-gem-qv__facts dt { display: inline; font-weight: 700; color: var(--rj-text-primary); }
.rj-gem-qv__facts dt::after { content: " · "; color: var(--rj-text-secondary); }
.rj-gem-qv__facts dd { display: inline; margin: 0; }
.rj-gem-qv__hint { color: var(--rj-text-secondary); }
.rj-gem-qv__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.rj-gem-qv__note { margin: 10px 0 0; font-size: 0.6875rem; line-height: 1.6; color: var(--rj-text-secondary); }

@media (min-width: 720px) { .rj-gem-qv__grid { grid-template-columns: 1.1fr 1fr; gap: 40px; } .rj-gem-qv__inner { padding: 30px 34px 34px; } }

/* Birthstone calendar. */
.rj-gemarch__viewtoggle { align-self: center; min-height: 44px; display: inline-flex; align-items: center; padding: 0 16px; border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); background: var(--rj-white); font-weight: 700; font-size: 0.75rem; letter-spacing: .04em; color: var(--rj-text-primary); text-decoration: none; }
.rj-gemarch__viewtoggle:hover { border-color: var(--rj-green); color: var(--rj-green); }
.rj-gemarch__viewtoggle.is-active { background: var(--rj-green); border-color: var(--rj-green); color: var(--rj-white); }
.rj-gemarch__birthnote { margin: 16px 0 0; font-size: 0.8125rem; line-height: 1.7; color: var(--rj-text-body); }
.rj-gemarch__footnote { margin: 20px 0 0; padding-top: 16px; border-top: 1px solid var(--rj-parchment); font-size: 0.75rem; line-height: 1.7; color: var(--rj-text-secondary); }
.rj-gem-calendar { margin-top: 16px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 1px; background: var(--rj-parchment); border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); overflow: hidden; }
.rj-gem-month { padding: 18px 16px 20px; background: var(--rj-white); display: flex; flex-direction: column; gap: 10px; }
.rj-gem-month.is-empty { background: var(--rj-ivory); }
.rj-gem-month__name { margin: 0; font-weight: 400; font-size: 1.375rem; line-height: 1.1; color: var(--rj-text-primary); }
.rj-gem-month__empty { margin: 0; font-size: 1rem; color: var(--rj-border-subtle); }
.rj-gem-month__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.rj-gem-month__stone { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 44px; padding: 0 12px; border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); background: var(--rj-white); font-weight: 700; font-size: 0.8125rem; color: var(--rj-text-primary); text-decoration: none; text-align: left; }
.rj-gem-month__stone:hover { border-color: var(--rj-green); }
.rj-gem-month__stone.is-open { background: var(--rj-green); border-color: var(--rj-green); color: var(--rj-white); }
.rj-gem-month__stone-sys { font-weight: 400; font-size: 0.625rem; color: var(--rj-russet); }
.rj-gem-month__stone.is-open .rj-gem-month__stone-sys { color: var(--rj-parchment); }

@media (min-width: 600px) { .rj-gem-calendar { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

@media (min-width: 900px) { .rj-gem-calendar { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* --------------------------------------------- Individual Gemstone Guide --- */
.rj-gg__hero { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; align-items: center; padding-bottom: 24px; border-bottom: 1px solid var(--rj-parchment); margin-bottom: 26px; }
.rj-gg__hero--textfirst { border-top: 3px solid var(--rj-gold); padding-top: 18px; }
.rj-gg__eyebrow { margin: 0 0 8px; font-size: 0.625rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--rj-russet); }
.rj-gg__title { margin: 0 0 6px; font-weight: 400; font-size: clamp(2.25rem, 6vw, 3.25rem); line-height: 1.05; color: var(--rj-green); }
.rj-gg__subtitle { margin: 0; font-size: 0.8125rem; font-weight: 700; letter-spacing: .04em; color: var(--rj-text-secondary); }
.rj-gg__intro { margin: 12px 0 0; max-width: 34em; font-size: 1.0625rem; line-height: 1.7; color: var(--rj-text-body); }
.rj-gg__avail { margin: 12px 0 0; font-size: 0.75rem; line-height: 1.6; color: var(--rj-text-secondary); }
.rj-gg__hero-media { margin: 0; }
.rj-gg__hero-img { display: block; width: 100%; height: auto; border-radius: var(--rj-radius-md); }
.rj-gg__hero-cap { margin-top: 8px; font-size: 0.6875rem; line-height: 1.5; color: var(--rj-text-secondary); }

@media (min-width: 900px) { .rj-gg__hero { grid-template-columns: 1.1fr 0.9fr; gap: 36px; } .rj-gg__hero--textfirst { grid-template-columns: minmax(0, 1fr); } }

.rj-gg__layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 30px; }
.rj-gg__main { min-width: 0; }

@media (min-width: 900px) { .rj-gg__layout { grid-template-columns: 240px minmax(0, 1fr); gap: 40px; align-items: start; } .rj-gg__layout--norail { grid-template-columns: minmax(0, 1fr); } .rj-gg__rail { position: sticky; top: 90px; } }

.rj-gg__layout--norail .rj-gg__main { max-width: 760px; }

.rj-gg-toc { border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); padding: 16px 18px; }
.rj-gg-toc__title { margin: 0 0 10px; font-size: 0.625rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--rj-text-secondary); }
.rj-gg-toc__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 0.8125rem; }
.rj-gg-toc__item a { color: var(--rj-green); text-decoration: none; }
.rj-gg-toc__item a:hover { color: var(--rj-russet); }
.rj-gg-toc__item--l3 { padding-left: 12px; }

.rj-gg-glance { background: var(--rj-ivory); border-radius: var(--rj-radius-md); padding: 16px 20px; margin-bottom: 24px; }
.rj-gg-glance__title { margin: 0 0 10px; font-size: 0.625rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--rj-gold); }
.rj-gg-glance__list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px 24px; margin: 0; font-size: 0.8125rem; line-height: 1.55; }
.rj-gg-glance__list div { margin: 0; }
.rj-gg-glance__list dt { font-weight: 700; color: var(--rj-text-primary); }
.rj-gg-glance__list dd { margin: 0; color: var(--rj-text-secondary); }
.rj-gg-tech { margin-top: 12px; }
.rj-gg-tech > summary { min-height: 44px; display: inline-flex; align-items: center; font-weight: 700; font-size: 0.75rem; color: var(--rj-green); cursor: pointer; }
.rj-gg-tech__list { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 20px; margin: 10px 0 0; font-size: 0.75rem; line-height: 1.5; }
.rj-gg-tech__list div { margin: 0; }
.rj-gg-tech__list dt { font-weight: 700; color: var(--rj-text-primary); }
.rj-gg-tech__list dd { margin: 0; color: var(--rj-text-secondary); }

@media (min-width: 560px) { .rj-gg-glance__list { grid-template-columns: 1fr 1fr; } }

.rj-gg-section { margin-top: 26px; }
.rj-gg-section__title { margin: 0 0 10px; font-weight: 400; font-size: clamp(1.5rem, 3vw, 1.75rem); line-height: 1.2; color: var(--rj-green); scroll-margin-top: 80px; }
.rj-gg-section__title:focus-visible { outline: var(--rj-focus-outline-width) solid var(--rj-green); outline-offset: 4px; }
.rj-gg-deflist { margin: 0 0 12px; font-size: 0.9375rem; line-height: 1.7; color: var(--rj-text-body); }
.rj-gg-deflist dt { font-weight: 700; color: var(--rj-text-primary); }
.rj-gg-deflist dd { margin: 0 0 8px; color: var(--rj-text-secondary); }
.rj-gg-hint { font-weight: 400; color: var(--rj-text-secondary); }
.rj-gg-list { margin: 0 0 8px; padding-left: 18px; font-size: 0.9375rem; line-height: 1.8; color: var(--rj-text-body); }
.rj-gg-fineprint { margin: 0; font-size: 0.75rem; line-height: 1.6; color: var(--rj-text-secondary); }
.rj-gg-care.rj-article__body { margin: 12px 0; font-size: 0.9375rem; line-height: 1.7; }

.rj-gg-note { margin: 12px 0; border: 1px solid var(--rj-parchment); border-left: 4px solid var(--rj-parchment); border-radius: var(--rj-radius-md); padding: 12px 14px; font-size: 0.8125rem; line-height: 1.6; color: var(--rj-text-body); background: var(--rj-white); }
.rj-gg-note p { margin: 0; }
.rj-gg-note .rj-gg-note__label { margin: 0 0 4px; font-size: 0.625rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.rj-gg-note--disclosure { border-color: var(--rj-russet); background: var(--rj-ivory); }
.rj-gg-note--disclosure .rj-gg-note__label { color: var(--rj-russet); }
.rj-gg-note--assessment { border-color: var(--rj-green); background: var(--rj-ivory); }
.rj-gg-note--assessment .rj-gg-note__label { color: var(--rj-green); }

.rj-gg-refs { margin-top: 26px; padding-top: 14px; border-top: 1px solid var(--rj-parchment); font-size: 0.75rem; line-height: 1.7; color: var(--rj-text-secondary); }
.rj-gg-refs__line { margin: 0 0 4px; }
.rj-gg-refs__line strong { color: var(--rj-text-primary); }

.rj-gg-cta { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--rj-parchment); }
.rj-gg-cta__stable { display: inline-flex; align-items: center; min-height: 46px; padding: 0 20px; border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); font-weight: 700; font-size: 0.8125rem; color: var(--rj-text-primary); text-decoration: none; }
.rj-gg-cta__stable:hover { border-color: var(--rj-green); color: var(--rj-green); }

.rj-gg-related { margin-top: 20px; border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); padding: 14px 16px; }
.rj-gg-related__title { margin: 0 0 8px; font-size: 0.625rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--rj-text-secondary); }
.rj-gg-related__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: 0.875rem; }
.rj-gg-related__list a { font-weight: 700; color: var(--rj-green); text-decoration: none; }
.rj-gg-related__list a:hover { color: var(--rj-russet); }

.rj-gg-foot { margin-top: 16px; font-size: 0.75rem; line-height: 1.7; color: var(--rj-text-secondary); }

/* Gemstone guide redesign (1.24): hero band, quick facts, colour strip, Mohs scale, picture cards. */
.rj-gg-hero__media { margin: 0; min-width: 0; }
.rj-gg-hero__img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.rj-gg-hero__media.is-drawn > svg { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; padding: 12% 18%; box-sizing: border-box; background: var(--rj-white); border: 1px solid var(--rj-border-subtle); }
.rj-gg-hero__text { min-width: 0; order: -1; }
.rj-gg-hero .rj-ahero__grid { align-items: start; }

@media (min-width: 1024px) { .rj-gg-hero__text { order: 0; } }
.rj-gg-hero__subtitle { margin: -6px 0 14px; font-size: 0.9375rem; letter-spacing: .04em; color: var(--wp--preset--color--text-muted-on-ivory); }
.rj-gg-hero .rj-gg__avail { margin: 16px 0 0; font-size: 0.8125rem; line-height: 1.6; color: var(--wp--preset--color--text-muted-on-ivory); }

.rj-gfacts { border-top: 2px solid var(--rj-green); margin-top: 4px; }
.rj-gfacts__title { margin: 14px 0 2px; font-size: 0.75rem; font-weight: 400; letter-spacing: .22em; text-transform: uppercase; color: var(--rj-russet); }
.rj-gfacts__list { margin: 0; }
.rj-gfacts__list > div { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 4px 16px; padding: 11px 0; border-bottom: 1px solid var(--rj-border-subtle); font-size: 1rem; line-height: 1.5; }
.rj-gfacts__list dt { color: var(--wp--preset--color--text-muted-on-ivory); }
.rj-gfacts__list dd { margin: 0; color: var(--rj-ink); }
.rj-gfacts .rj-gg-tech { margin-top: 4px; }
.rj-gfacts .rj-gg-tech > summary { font-size: 0.9375rem; }

.rj-gcolours { margin-top: 20px; }
.rj-gcolours__label { margin: 0 0 8px; font-size: 0.9375rem; color: var(--wp--preset--color--text-muted-on-ivory); }
.rj-gcolours__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 10px; }
.rj-gcolours__list li { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.rj-gcolours__swatch { display: block; height: 28px; border: 1px solid rgb(36 29 21 / 12%); }
.rj-gcolours__name { font-size: 0.8125rem; line-height: 1.35; color: var(--rj-text-body); overflow-wrap: anywhere; }
.rj-gcolours__note { margin: 8px 0 0; font-size: 0.75rem; color: var(--wp--preset--color--text-muted-on-ivory); }

.rj-gg .rj-gg-section { margin-top: 56px; }
.rj-gg .rj-gg-section__title { margin-bottom: 16px; font-size: clamp(1.625rem, 3vw, 2.125rem); color: var(--rj-green-deep); }
.rj-gg .rj-gg-list { font-size: 1.0625rem; line-height: 1.75; }
.rj-gg .rj-gg-fineprint, .rj-gg .rj-gg-hint { font-size: 0.875rem; line-height: 1.6; color: var(--wp--preset--color--text-muted-on-white); }
.rj-gg .rj-gg-care.rj-article__body { font-size: 1.0625rem; }
.rj-gg .rj-gg-note { padding: 16px 18px; font-size: 1rem; }
.rj-gg .rj-gg-note .rj-gg-note__label { font-size: 0.75rem; }
.rj-gg .rj-gg-refs { margin-top: 40px; font-size: 0.875rem; }
.rj-gg .rj-gg-cta__stable { font-size: 0.9375rem; }

.rj-gg-wear { margin: 20px 0; padding: 18px 20px; background: var(--rj-ivory); border-left: 2px solid var(--rj-green); }
.rj-gg-wear p { margin: 0; font-size: 1.0625rem; line-height: 1.6; color: var(--rj-text-body); }
.rj-gg-wear .rj-gg-wear__label { margin-bottom: 4px; font-size: 0.75rem; letter-spacing: .16em; text-transform: uppercase; color: var(--rj-green); }

/* Illustrated Mohs scale: the figcaption sentence carries the meaning. */
.rj-mohs { margin: 0 0 12px; padding: 24px clamp(16px, 3vw, 28px) 20px; border: 1px solid var(--rj-border-subtle); border-radius: var(--rj-radius-md); }
.rj-mohs__cap { margin: 0 0 20px; font-size: 1rem; line-height: 1.6; color: var(--rj-text-body); }
.rj-mohs__track { position: relative; height: 54px; margin-inline: 8px; }
.rj-mohs__track::before { content: ""; position: absolute; left: 0; right: 0; top: 30px; height: 8px; border-radius: var(--rj-radius-pill); background: linear-gradient(to right, var(--rj-parchment), #C9BFA6); }
.rj-mohs__band { position: absolute; top: 26px; height: 16px; border-radius: var(--rj-radius-pill); background: var(--rj-green); }
.rj-mohs__label { position: absolute; top: 0; transform: translateX(-50%); white-space: nowrap; font-size: 0.875rem; color: var(--rj-green-deep); }
.rj-mohs__refs { position: relative; list-style: none; height: 40px; margin: 6px 8px 0; padding: 0; }
.rj-mohs__refs li { position: absolute; top: 0; display: flex; flex-direction: column; align-items: center; transform: translateX(-50%); font-size: 0.75rem; line-height: 1.3; color: var(--wp--preset--color--text-muted-on-white); }
.rj-mohs__refs li:first-child { align-items: flex-start; transform: none; }
.rj-mohs__refs li:last-child { align-items: flex-end; transform: translateX(-100%); }
.rj-mohs__num { color: var(--rj-ink); }

/* Related gemstones as picture cards (shares the home gemstone tile). */
.rj-gg .rj-gg-related { max-width: 1040px; margin: 72px auto 0; padding: 0; border: 0; }
.rj-gg .rj-gg-related__title { margin: 0 0 20px; font-weight: 400; font-size: clamp(1.5rem, 3vw, 1.875rem); letter-spacing: 0; text-transform: none; color: var(--rj-green-deep); }
.rj-gg .rj-gg-related__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; font-size: inherit; }
.rj-gg .rj-gg-related__list .rj-hgem__media { background: var(--rj-ivory); }
.rj-gg .rj-gg-foot { max-width: 1040px; margin: 48px auto 0; font-size: 0.8125rem; color: var(--wp--preset--color--text-muted-on-white); }

@media (min-width: 900px) {
	.rj-gg .rj-gg-related__list { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
}

@media (max-width: 479px) {
	.rj-mohs__refs li:nth-child(1) .rj-mohs__ref,
	.rj-mohs__refs li:nth-child(4) .rj-mohs__ref { display: none; }
}

/* --------------------------------------------------- Editorial standards --- */
.rj-es__band { background: var(--rj-green); }
.rj-es__band-inner { max-width: var(--rj-header-max, 1320px); margin-inline: auto; padding: 14px var(--rj-container-pad) 30px; }
.rj-es__band .rj-breadcrumbs, .rj-es__band .rj-breadcrumbs a, .rj-es__band .rj-breadcrumbs__current { color: var(--rj-parchment); }
.rj-es__eyebrow { margin: 14px 0 8px; font-size: 0.6875rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--rj-gold-on-dark); }
.rj-es__title { margin: 0 0 12px; font-weight: 700; font-size: clamp(2rem, 5vw, 2.625rem); line-height: 1.1; color: var(--rj-white); }
.rj-es__standfirst { margin: 0 0 12px; max-width: 40em; font-size: 1rem; line-height: 1.75; color: var(--rj-parchment); }
.rj-es__meta { margin: 0; font-size: 0.75rem; color: var(--rj-parchment); }
.rj-es__body { padding-top: 34px; }
.rj-es__body .rj-gg__main.rj-article__body { max-width: 680px; }

/* --------------------------------------------- Stories of Love programme --- */
.rj-sol__article, .rj-sol__gate { max-width: 900px; margin-inline: auto; }
.rj-sol__gate { padding: 32px 0; text-align: center; }
.rj-sol__gate-eyebrow { margin: 0 0 8px; font-size: 0.6875rem; font-weight: 400; letter-spacing: .2em; text-transform: uppercase; color: var(--rj-russet); }
.rj-sol__gate-title { margin: 0 0 12px; font-style: italic; font-weight: 400; font-size: clamp(1.75rem, 5vw, 2.5rem); color: var(--rj-russet); }
.rj-sol__gate-msg { margin: 0 auto 16px; max-width: 40em; font-size: 0.9375rem; line-height: 1.7; color: var(--rj-text-body); }
.rj-sol__hero { max-width: 720px; margin-bottom: 8px; }
.rj-sol__eyebrow { margin: 0 0 8px; font-size: 0.6875rem; font-weight: 400; letter-spacing: .2em; text-transform: uppercase; color: var(--rj-russet); }
.rj-sol__title { margin: 0 0 12px; font-style: italic; font-weight: 400; font-size: clamp(2.25rem, 6vw, 3.25rem); line-height: 1.08; color: var(--rj-russet); }
.rj-sol__standfirst { margin: 0 0 16px; font-size: 1.0625rem; line-height: 1.7; color: var(--rj-text-body); }
.rj-sol__cta { display: flex; flex-wrap: wrap; gap: 10px; }
.rj-sol__section { max-width: 720px; margin-top: 22px; }
.rj-sol__participation { max-width: 720px; margin-top: 26px; background: var(--rj-ivory); border-radius: var(--rj-radius-md); padding: 20px 22px; }
.rj-sol__kicker { margin: 0 0 10px; font-size: 0.6875rem; font-weight: 400; letter-spacing: .2em; text-transform: uppercase; color: var(--rj-russet); }
.rj-sol__partic-note { margin: 12px 0 0; font-size: 0.75rem; line-height: 1.7; color: var(--rj-text-secondary); }
.rj-sol__discovery { margin-top: 30px; }
.rj-sol__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; margin-top: 12px; }
.rj-sol__card { display: flex; flex-direction: column; border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); overflow: hidden; background: var(--rj-white); box-shadow: var(--rj-shadow-card); }
.rj-sol__card-media { display: block; aspect-ratio: 3 / 2; background: var(--rj-green-deep); }
.rj-sol__card-img { width: 100%; height: 100%; object-fit: cover; }
.rj-sol__card-body { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px 18px; }
.rj-sol__card-kind { margin: 0; font-size: 0.5625rem; font-weight: 400; letter-spacing: .2em; text-transform: uppercase; color: var(--rj-russet); }
.rj-sol__card-title { margin: 0; font-style: italic; font-weight: 400; font-size: 1.25rem; line-height: 1.25; }
.rj-sol__card-title a { color: var(--rj-text-primary); text-decoration: none; }
.rj-sol__card-title a:hover { color: var(--rj-green); }
.rj-sol__card-exc { margin: 0; font-size: 0.8125rem; line-height: 1.6; color: var(--rj-text-body); }
.rj-sol__card-note { margin: 0; font-size: 0.625rem; line-height: 1.5; color: var(--rj-russet); border-top: 1px solid var(--rj-parchment); padding-top: 6px; }
.rj-sol__card-link { align-self: flex-start; font-weight: 700; font-size: 0.75rem; color: var(--rj-green); text-decoration: none; }
.rj-sol__card-link:hover { color: var(--rj-russet); }
.rj-sol__foot { max-width: 720px; margin: 28px 0 0; padding-top: 14px; border-top: 1px solid var(--rj-parchment); font-size: 0.75rem; line-height: 1.7; color: var(--rj-text-secondary); }

@media (min-width: 700px) { .rj-sol__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

@media (min-width: 980px) { .rj-sol__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ------------------------------------------------ Story submission intake --- */
.rj-story-submit .rj-entry__title { font-style: italic; font-weight: 400; color: var(--rj-russet); }
.rj-intake { max-width: 640px; margin: 20px 0 0; }
.rj-intake-summary { margin: 0 0 20px; border: 1px solid var(--rj-russet); border-left: 4px solid var(--rj-russet); background: var(--rj-ivory); border-radius: var(--rj-radius-md); padding: 14px 16px; }
.rj-intake-summary:focus { outline: var(--rj-focus-outline-width) solid var(--rj-russet); outline-offset: 2px; }
.rj-intake-summary__title { margin: 0 0 6px; font-weight: 700; color: var(--rj-russet); }
.rj-intake-summary ul { margin: 0; padding-left: 18px; }
.rj-intake-summary a { color: var(--rj-russet); font-weight: 700; }
.rj-intake__group { min-width: 0; margin: 0 0 24px; border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); padding: 18px 20px; }
.rj-intake__group > legend { padding: 0 8px; font-weight: 400; font-size: 1.125rem; color: var(--rj-green); }
.rj-intake__field { margin: 0 0 16px; }
.rj-intake__field > label { display: block; margin-bottom: 5px; font-weight: 700; font-size: 0.8125rem; color: var(--rj-text-body); }
.rj-intake__field input[type="text"], .rj-intake__field input[type="email"], .rj-intake__field input[type="tel"], .rj-intake__field textarea { width: 100%; box-sizing: border-box; min-height: 44px; border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); padding: 10px 12px; font-size: 0.9375rem; font-family: var(--rj-font, inherit); background: var(--rj-white); color: var(--rj-text-primary); }
.rj-intake__field textarea { line-height: 1.6; resize: vertical; }
.rj-intake__field input[aria-invalid="true"], .rj-intake__field textarea[aria-invalid="true"] { border-color: var(--rj-russet); }
.rj-intake__req { font-weight: 400; color: var(--rj-russet); }
.rj-intake__opt { font-weight: 400; color: var(--rj-text-secondary); }
.rj-intake__hint { display: block; margin-top: 5px; font-size: 0.6875rem; line-height: 1.6; color: var(--rj-text-secondary); }
.rj-intake__error { display: block; margin-top: 5px; font-size: 0.75rem; font-weight: 700; color: var(--rj-russet); }
.rj-intake__radios { min-width: 0; margin: 0 0 16px; border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); padding: 12px 14px; }
.rj-intake__radios > legend { padding: 0 6px; font-weight: 700; font-size: 0.8125rem; color: var(--rj-text-body); }
.rj-intake__check { display: flex; align-items: flex-start; gap: 8px; min-height: 36px; align-content: center; font-size: 0.8125rem; line-height: 1.5; color: var(--rj-text-body); }
.rj-intake__check input { width: 24px; height: 24px; margin-top: 0; accent-color: var(--rj-green); flex: none; }
.rj-intake__field .rj-intake__check { margin-top: 8px; }
.rj-intake__actions { margin: 8px 0 0; }
.rj-intake__privacy { margin: 12px 0 0; font-size: 0.6875rem; line-height: 1.7; color: var(--rj-text-secondary); }
.rj-intake-done { max-width: 640px; }
.rj-intake-done h2 { margin: 0 0 8px; font-weight: 400; font-size: 1.375rem; color: var(--rj-green); }
.rj-intake-done p { margin: 0; font-size: 0.9375rem; line-height: 1.7; color: var(--rj-text-body); }

/* ------------------------------------------------ Customer stories hub --- */
.rj-hub__header { max-width: 760px; margin: 0 0 8px; }
.rj-hub--stories .rj-hub__title { font-style: italic; font-size: clamp(2rem, 5vw, 2.75rem); line-height: 1.12; color: var(--rj-russet); }
.rj-hub__intro { margin: 0 0 8px; font-size: 1.0625rem; line-height: 1.7; color: var(--rj-text-body); }
.rj-hub__note { margin: 0; font-size: 0.75rem; line-height: 1.7; color: var(--rj-text-secondary); }
.rj-hub__featured { margin-top: 24px; }
.rj-hub__featured-label { margin: 0 0 8px; font-size: 0.625rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--rj-russet); }
.rj-hub__controls { display: flex; flex-direction: column; gap: 12px; margin-top: 26px; }
.rj-hub__filter { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.rj-hub__filter-label { font-size: 0.625rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--rj-text-secondary); margin-right: 4px; }
.rj-hub__chip { min-height: 40px; display: inline-flex; align-items: center; padding: 0 14px; border: 1px solid var(--rj-parchment); border-radius: 999px; font-weight: 700; font-size: 0.75rem; color: var(--rj-text-primary); text-decoration: none; }
.rj-hub__chip:hover { border-color: var(--rj-green); color: var(--rj-green); }
.rj-hub__chip.is-current { background: var(--rj-green); border-color: var(--rj-green); color: var(--rj-white); }
.rj-hub__count-row { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: baseline; justify-content: space-between; margin-top: 24px; }
.rj-hub__count-title { margin: 0; font-weight: 400; font-size: 0.6875rem; letter-spacing: .2em; text-transform: uppercase; color: var(--rj-text-secondary); }
.rj-hub__count { font-size: 0.75rem; color: var(--rj-text-secondary); }
.rj-hub-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; margin-top: 14px; }
.rj-hub-card { display: flex; flex-direction: column; border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); overflow: hidden; background: var(--rj-white); box-shadow: var(--rj-shadow-card); }
.rj-hub-card__media { position: relative; display: block; aspect-ratio: 3 / 2; background: var(--rj-green-deep); }
.rj-hub-card__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rj-hub-card__badge { position: absolute; left: 10px; bottom: 10px; display: inline-flex; align-items: center; padding: 5px 10px; border-radius: 999px; background: rgb(0 0 0 / 62%); font-size: 0.5625rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--rj-white); }
.rj-hub-card__body { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px 18px; }
.rj-hub-card__kind { margin: 0; font-size: 0.5625rem; font-weight: 400; letter-spacing: .2em; text-transform: uppercase; color: var(--rj-russet); }
.rj-hub-card__title { margin: 0; font-style: italic; font-weight: 400; font-size: 1.25rem; line-height: 1.25; }
.rj-hub-card__title a { color: var(--rj-text-primary); text-decoration: none; }
.rj-hub-card__title a:hover { color: var(--rj-green); }
.rj-hub-card__excerpt { margin: 0; font-size: 0.8125rem; line-height: 1.65; color: var(--rj-text-body); }
.rj-hub-card__meta { margin: 0; font-size: 0.6875rem; color: var(--rj-text-secondary); }
.rj-hub-card__link { margin-top: 4px; align-self: flex-start; font-weight: 700; font-size: 0.75rem; color: var(--rj-green); text-decoration: none; }
.rj-hub-card__link:hover { color: var(--rj-russet); }
.rj-hub-card--text { background: var(--rj-ivory); text-align: center; }
.rj-hub-card--text .rj-hub-card__body { align-items: center; }
.rj-hub-card--text .rj-hub-card__link { align-self: center; }
.rj-hub__pagination { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: center; margin-top: 26px; }
.rj-hub__pagination .page-numbers { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0 14px; border: 1px solid var(--rj-parchment); border-radius: 999px; font-weight: 700; font-size: 0.75rem; color: var(--rj-text-primary); text-decoration: none; }
.rj-hub__pagination .page-numbers.current { background: var(--rj-green); border-color: var(--rj-green); color: var(--rj-white); }
.rj-hub__pagination .page-numbers:hover:not(.current) { border-color: var(--rj-green); color: var(--rj-green); }
.rj-hub__empty { padding: 40px 0; text-align: center; }
.rj-hub__empty h2 { margin: 0 0 8px; font-weight: 400; font-size: clamp(1.25rem, 4vw, 1.75rem); color: var(--rj-green); }
.rj-hub__empty p { margin: 0 auto 16px; max-width: 32em; font-size: 0.875rem; color: var(--rj-text-secondary); }
.rj-hub__submit { margin-top: 34px; background: var(--rj-ivory); border-radius: var(--rj-radius-md); padding: 24px; text-align: center; }
.rj-hub__submit-title { margin: 0 0 8px; font-weight: 400; font-size: clamp(1.25rem, 3vw, 1.5rem); color: var(--rj-russet); }
.rj-hub__submit p { margin: 0 auto; max-width: 44em; font-size: 0.875rem; line-height: 1.6; color: var(--rj-text-body); }
.rj-hub__submit .rj-button { margin-top: 14px; }
.rj-hub__submit-fine { margin-top: 14px; font-size: 0.6875rem; line-height: 1.7; color: var(--rj-text-secondary); }

@media (min-width: 600px) { .rj-hub-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

@media (min-width: 900px) { .rj-hub-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .rj-hub__controls { flex-direction: row; justify-content: space-between; } .rj-hub-card--featured { flex-direction: row; } .rj-hub-card--featured .rj-hub-card__media { flex: 1 1 50%; aspect-ratio: auto; } .rj-hub-card--featured .rj-hub-card__body { flex: 1 1 50%; justify-content: center; padding: 28px 32px; } .rj-hub-card--featured .rj-hub-card__title { font-size: 1.75rem; } }

/* ---------------------------------------------------- Customer story --- */
.rj-story__article { max-width: 760px; margin-inline: auto; }
.rj-story__header { margin-bottom: 8px; }
.rj-story__eyebrow { margin: 0 0 8px; font-size: 0.6875rem; font-weight: 400; letter-spacing: .2em; text-transform: uppercase; color: var(--rj-russet); }
.rj-story__title { margin: 0 0 12px; font-style: italic; font-weight: 400; font-size: clamp(2rem, 5vw, 3rem); line-height: 1.12; color: var(--rj-russet); }
.rj-story__standfirst { margin: 0 0 12px; font-size: 1.0625rem; line-height: 1.7; color: var(--rj-text-body); }
.rj-story__permission { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px; border-radius: 999px; background: var(--rj-ivory); font-size: 0.75rem; color: var(--rj-text-body); text-decoration: none; }
.rj-story__permission svg { color: var(--rj-green); }
.rj-story__byline { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin: 12px 0 0; font-size: 0.75rem; color: var(--rj-text-secondary); }
.rj-story__byline .rj-story-attribution { margin: 0; display: inline-flex; gap: 6px; }
.rj-story__byline .rj-story-attribution__location::before { content: "· "; color: var(--rj-text-secondary); }
.rj-story__hero { margin: 22px 0 0; }
.rj-story__hero-img { display: block; width: 100%; height: auto; border-radius: 999px 999px 12px 12px; }
.rj-story__hero-cap { margin-top: 6px; font-size: 0.6875rem; line-height: 1.5; color: var(--rj-text-secondary); }
.rj-story__body { margin-top: 24px; }
.rj-story__connection { margin: 20px 0 0; padding-top: 12px; border-top: 1px solid var(--rj-parchment); font-size: 0.75rem; line-height: 1.6; color: var(--rj-russet); }
.rj-story__about { margin: 24px 0 0; background: var(--rj-ivory); border-radius: var(--rj-radius-md); padding: 18px 20px; }
.rj-story__about-title { margin: 0 0 10px; font-size: 0.6875rem; font-weight: 400; letter-spacing: .2em; text-transform: uppercase; color: var(--rj-russet); }
.rj-story__about-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 0.8125rem; line-height: 1.7; color: var(--rj-text-body); }
.rj-story__about-yes::before { content: "✓ "; color: var(--rj-green); font-weight: 700; }
.rj-story__share { margin: 22px 0 0; border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); padding: 14px 16px; }
.rj-story__share-label { margin: 0 0 8px; font-size: 0.625rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--rj-text-secondary); }
.rj-story__share-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.rj-story__share-link { min-height: 44px; display: inline-flex; align-items: center; padding: 0 14px; border-radius: 999px; border: 1px solid var(--rj-parchment); font-weight: 700; font-size: 0.6875rem; color: var(--rj-text-secondary); text-decoration: none; }
.rj-story__share-link:hover { border-color: var(--rj-green); color: var(--rj-green); }
.rj-story__more { margin: 24px 0 0; }
.rj-story__more-label { margin: 0 0 4px; font-size: 0.6875rem; font-weight: 400; letter-spacing: .2em; text-transform: uppercase; color: var(--rj-text-secondary); }
.rj-story__more-item { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--rj-parchment); font-size: 0.9375rem; color: var(--rj-text-primary); text-decoration: none; }
.rj-story__more-item:hover { color: var(--rj-green); }
.rj-story__more-item span[aria-hidden] { color: var(--rj-green); }
.rj-story__more-all { display: inline-block; margin-top: 14px; font-weight: 700; font-size: 0.8125rem; color: var(--rj-green); text-decoration: none; }
.rj-story__more-all:hover { color: var(--rj-russet); }

/* ------------------------------------------------------- Tool host page --- */
.rj-toolhost__wrap { max-width: 760px; margin-inline: auto; }
.rj-toolhost__wide { max-width: 1000px; margin-inline: auto; }
.rj-toolhost__header { padding-top: 8px; }
.rj-toolhost__eyebrow { margin: 0 0 8px; font-size: 0.6875rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--rj-russet); }
.rj-toolhost__title { margin: 0 0 10px; font-weight: 400; font-size: clamp(2.25rem, 6vw, 3rem); line-height: 1.06; color: var(--rj-green); }
.rj-toolhost__standfirst { margin: 0 0 8px; font-size: 1.0625rem; line-height: 1.7; color: var(--rj-text-body); }
.rj-toolhost__approx { margin: 0; font-size: 0.8125rem; line-height: 1.65; color: var(--rj-russet); }
.rj-toolhost__meta { margin: 12px 0 0; font-size: 0.6875rem; line-height: 1.6; color: var(--rj-text-secondary); }
.rj-toolhost__intro { margin-top: 20px; }
.rj-toolhost__section { margin-top: 30px; }
.rj-toolhost__kicker { margin: 0 0 10px; font-size: 0.6875rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--rj-text-secondary); }
.rj-toolhost__steps { margin: 0; padding-left: 22px; display: flex; flex-direction: column; gap: 7px; font-size: 0.9375rem; line-height: 1.7; color: var(--rj-text-body); }

.rj-toolhost__embed-region { margin-top: 30px; }
.rj-toolhost__embed-heading { margin: 0 0 12px; font-weight: 400; font-size: clamp(1.375rem, 3vw, 1.5rem); color: var(--rj-text-primary); }
.rj-toolhost__frame { border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); overflow: hidden; background: var(--rj-white); }
.rj-toolhost__frame-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 18px; border-bottom: 1px solid var(--rj-parchment); background: var(--rj-ivory); }
.rj-toolhost__frame-label { font-size: 0.625rem; font-weight: 400; letter-spacing: .22em; text-transform: uppercase; color: var(--rj-russet); }
.rj-toolhost__frame-credit { font-size: 0.6875rem; color: var(--rj-text-secondary); }
.rj-toolhost__frame-body { position: relative; min-height: 520px; }
.rj-toolhost__iframe { display: block; width: 100%; height: 560px; border: 0; }
.rj-toolhost__placeholder { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 24px; text-align: center; background: var(--rj-white); font-size: 0.875rem; color: var(--rj-text-body); }
.rj-toolhost__placeholder p { margin: 0; }
.rj-toolhost__loading { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; background: var(--rj-white); font-size: 0.8125rem; color: var(--rj-text-secondary); }
.rj-toolhost__spinner { width: 28px; height: 28px; border: 3px solid var(--rj-parchment); border-top-color: var(--rj-green); border-radius: 50%; animation: rj-tool-spin 0.8s linear infinite; }
.rj-toolhost__fail { position: absolute; inset: 0; z-index: 3; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 24px; text-align: center; background: var(--rj-white); }
.rj-toolhost__placeholder[hidden], .rj-toolhost__loading[hidden], .rj-toolhost__fail[hidden] { display: none; }
.rj-toolhost__fail-msg { margin: 0; font-size: 0.9375rem; color: var(--rj-text-body); }
.rj-toolhost__fail-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: center; }
.rj-toolhost__noscript { padding: 40px 24px; text-align: center; font-size: 0.875rem; color: var(--rj-text-body); }
.rj-toolhost__noscript p { margin: 0 0 12px; }
.rj-toolhost__open { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 10px 0 0; flex-wrap: wrap; }
.rj-toolhost__open-link { font-weight: 700; font-size: 0.8125rem; color: var(--rj-green); text-decoration: none; }
.rj-toolhost__open-link:hover { color: var(--rj-russet); }
.rj-toolhost__open-domain { font-size: 0.6875rem; color: var(--rj-text-secondary); }
.rj-toolhost__unavailable { border: 1px solid var(--rj-parchment); border-left: 3px solid var(--rj-russet); border-radius: var(--rj-radius-md); background: var(--rj-ivory); padding: 16px 18px; }
.rj-toolhost__unavailable-msg { margin: 0 0 8px; font-size: 0.9375rem; color: var(--rj-text-body); }
.rj-toolhost__unavailable-links { margin: 0 0 8px; font-size: 0.8125rem; line-height: 1.7; color: var(--rj-text-body); }
.rj-toolhost__unavailable-refreshed { margin: 0; font-size: 0.6875rem; color: var(--rj-text-secondary); }

.rj-toolhost__limits { background: var(--rj-ivory); border-radius: var(--rj-radius-md); padding: 18px 20px; }
.rj-toolhost__limits-list { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 6px; font-size: 0.875rem; line-height: 1.7; color: var(--rj-text-body); }
.rj-toolhost__two { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
.rj-toolhost__data { display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; margin: 0; font-size: 0.8125rem; line-height: 1.7; }
.rj-toolhost__data dt { color: var(--rj-text-secondary); }
.rj-toolhost__data dd { margin: 0; color: var(--rj-text-body); }
.rj-toolhost__link { display: inline-block; margin-top: 10px; font-weight: 700; font-size: 0.8125rem; color: var(--rj-green); text-decoration: none; }
.rj-toolhost__link:hover { color: var(--rj-russet); }
.rj-toolhost__how { font-size: 0.9375rem; line-height: 1.75; }

.rj-toolhost__cards { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.rj-toolhost__card { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); text-decoration: none; background: var(--rj-white); box-shadow: var(--rj-shadow-card); }
.rj-toolhost__card:hover { border-color: var(--rj-green); }
.rj-toolhost__card-title { font-weight: 700; font-size: 0.875rem; color: var(--rj-text-primary); }
.rj-toolhost__card-ex { font-size: 0.75rem; line-height: 1.5; color: var(--rj-text-secondary); }
.rj-toolhost__panel { border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); padding: 16px 18px; }
.rj-toolhost__toollist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.rj-toolhost__toollist li { border-top: 1px solid var(--rj-parchment); }
.rj-toolhost__toollist li:first-child { border-top: 0; }
.rj-toolhost__toollist a { display: flex; align-items: center; justify-content: space-between; min-height: 44px; font-size: 0.875rem; color: var(--rj-text-primary); text-decoration: none; }
.rj-toolhost__toollist a:hover { color: var(--rj-green); }
.rj-toolhost__faq-item { border-top: 1px solid var(--rj-parchment); }
.rj-toolhost__faq-item:first-child { border-top: 0; }
.rj-toolhost__faq-item > summary { min-height: 44px; display: flex; align-items: center; font-weight: 700; font-size: 0.875rem; color: var(--rj-text-primary); cursor: pointer; }
.rj-toolhost__faq-answer { font-size: 0.875rem; line-height: 1.7; padding-bottom: 12px; }
.rj-toolhost__maintainers > summary { min-height: 44px; display: inline-flex; align-items: center; font-weight: 700; font-size: 0.875rem; color: var(--rj-green); cursor: pointer; }
.rj-toolhost__maint-list { display: grid; grid-template-columns: auto 1fr; gap: 4px 16px; margin: 10px 0 0; font-size: 0.8125rem; line-height: 1.6; }
.rj-toolhost__maint-list dt { font-weight: 700; color: var(--rj-text-primary); }
.rj-toolhost__maint-list dd { margin: 0; color: var(--rj-text-secondary); }
.rj-toolhost__service { border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); background: var(--rj-white); padding: 18px 20px; }
.rj-toolhost__service-kicker { margin: 0 0 6px; font-size: 0.625rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--rj-text-secondary); }
.rj-toolhost__service-title { margin: 0 0 6px; font-size: 1.375rem; line-height: 1.2; color: var(--rj-text-primary); }
.rj-toolhost__service-body { margin: 0 0 12px; font-size: 0.875rem; line-height: 1.6; color: var(--rj-text-body); }
.rj-toolhost__service-disc { margin: 10px 0 0; font-size: 0.6875rem; line-height: 1.6; color: var(--rj-text-secondary); }

@keyframes rj-tool-spin { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) { .rj-toolhost__spinner { animation: none; } }

@media (min-width: 720px) { .rj-toolhost__two { grid-template-columns: 1fr 1fr; gap: 28px; } .rj-toolhost__cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* --------------------------------------------------- Not Found / status --- */
.rj-error__band { background: var(--rj-green); }
.rj-error__band-inner { max-width: var(--rj-header-max, 1320px); margin-inline: auto; padding: 14px var(--rj-container-pad); }
.rj-error__eyebrow { margin: 0; font-size: 0.6875rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--rj-gold-on-dark); }
.rj-error__body { padding-block: 40px 56px; }
.rj-error__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; }
.rj-error__title { margin: 0 0 12px; font-weight: 700; font-size: clamp(1.75rem, 5vw, 2.125rem); line-height: 1.14; color: var(--rj-green); }
.rj-error__message { margin: 0 0 16px; max-width: 40em; font-size: 0.9375rem; line-height: 1.8; color: var(--rj-text-body); }
.rj-error__url { margin: 0 0 18px; font-size: 0.75rem; color: var(--rj-text-secondary); }
.rj-error__path { overflow-wrap: anywhere; }
.rj-error__replacement { margin: 0 0 16px; }
.rj-error__search { margin: 0 0 18px; max-width: 520px; }
.rj-error__primary { margin: 0; }

/* Recovery panel. */
.rj-error__recovery { align-self: start; background: var(--rj-parchment); border-radius: var(--rj-radius-md); padding: 18px 20px; }
.rj-error__recovery-title { margin: 0 0 8px; font-size: 0.6875rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--rj-gold-on-light); }
.rj-error__recovery-list { list-style: none; margin: 0; padding: 0; }
.rj-error__recovery-list a { display: flex; align-items: center; min-height: 44px; color: var(--rj-green); text-decoration: underline; text-underline-offset: 3px; }
.rj-error__recovery-list a:hover { color: var(--rj-green-deep); }

/* Secondary button + search field (shared with the theme's search form). */
.rj-button--secondary { background: transparent; color: var(--rj-green); border-color: var(--rj-green); }
.rj-button--secondary:hover { background: var(--rj-green); color: var(--rj-white); }
.rj-searchform__label { display: block; margin-bottom: 6px; font-size: 0.8125rem; color: var(--rj-text-body); }
.rj-searchform__row { display: flex; gap: 10px; }
.rj-searchform__input { flex: 1; min-width: 0; min-height: var(--rj-control-md); padding: 0 14px; border: 1px solid var(--rj-border-control); border-radius: var(--rj-radius-md); font-family: inherit; font-size: 1rem; background: var(--rj-white); color: var(--rj-text-primary); }
.rj-searchform__input:focus-visible { outline: var(--rj-focus-outline-width) solid var(--rj-green-deep); outline-offset: 2px; }
.rj-searchform__submit { flex: none; }

/* Desktop: content + recovery panel two-up. */
@media (min-width: 768px) {
	.rj-error__grid { grid-template-columns: minmax(0, 600px) 300px; gap: 44px; justify-content: start; align-items: start; }
	.rj-error__grid--single { grid-template-columns: minmax(0, 640px); }
}

/* Mobile: full-width single-column controls. */
@media (max-width: 767px) {
	.rj-searchform__row { flex-direction: column; }
	.rj-searchform__submit { width: 100%; }

	.rj-error__primary .rj-button,
	.rj-error__replacement .rj-button { display: flex; width: 100%; justify-content: center; }
}

/* Print: keep the status, explanation, requested path and recovery; drop the search form. */
@media print {
	.rj-error__band { background: transparent !important; }
	.rj-error__eyebrow { color: #000 !important; }
	.rj-error__title { color: #000 !important; }
	.rj-error__search { display: none !important; }
	.rj-error__recovery { background: transparent !important; border: 1px solid #999; }
}

/* Print: drop chrome, expand the article, show source URLs, repeat headers. */
@media print {
	.rj-sites, .rj-header, .rj-mainbar, .rj-mainbar-sentinel, .rj-drawer-root, .rj-mobile-search, .rj-skip-link, .rj-footer, .rj-artoc, .rj-aside, .rj-table-hint, .rj-source__back, .rj-cookie-prefs, .rj-toolcallout .wp-block-button { display: none !important; }
	.rj-hub__lower { display: block !important; }
	.rj-pillar { min-height: 0; background: #FFF !important; border: 1px solid #999; break-inside: avoid; }
	.rj-pillar__media, .rj-pillar__scrim { display: none !important; }
	.rj-pillar__title, .rj-pillar__count { color: #000 !important; text-shadow: none !important; }
	.rj-pillar__desc { display: block !important; color: #333 !important; }
	.rj-hubstory__card, .rj-starthere { background: transparent !important; }
	body { min-height: 0; display: block; background: #FFF; color: #000; }
	.rj-content, .rj-article-wrap { max-width: none; padding: 0; }
	.rj-article-grid, .rj-article-grid.has-toc { display: block !important; }
	.rj-article { max-width: none !important; margin: 0 !important; }
	.rj-article__title { color: #000; }
	.rj-article__hero-img { max-height: 60vh; }
	.rj-article__body .wp-block-table { overflow: visible !important; }
	.rj-article__body thead { display: table-header-group; }
	.rj-article__body tr, .rj-callout, .rj-toolcallout, .rj-article__body figure { break-inside: avoid; }
	.rj-article__body h2, .rj-article__body h3 { break-after: avoid; }
	.rj-article__body details > :not(summary) { display: block !important; }
	.rj-article__body details > summary::after { content: ""; }
	.rj-callout, .rj-toolcallout { background: transparent !important; border: 1px solid #999; }
	.rj-source__title[href]::after { content: " — " attr(href); font-size: .85em; word-break: break-all; color: #333; }
}

/* --------------------------------------------------------- Responsive ----- */
@media (max-width: 767px) {
	/* Footer — mobile: single column, everything centred. */
	.rj-footer__row { grid-template-columns: 1fr !important; gap: 24px; }
	.rj-footer__bar-inner { flex-direction: column; align-items: center; text-align: center; }
	.rj-fcontact__list { justify-content: center; }
	.rj-footer__aside { margin-inline-start: 0; align-items: center; width: auto; }

	.rj-fnews,
	.rj-fnews__heading { align-items: center; }
	.rj-fnews__form input { width: min(260px, 70vw); }
}

/* Footer — tablet: 3 columns, sign-up row spans full width. */
@media (min-width: 768px) and (max-width: 1023px) {
	.rj-footer__row { grid-template-columns: repeat(3, 1fr) !important; gap: 24px; }
	.rj-footer__bar-inner { flex-wrap: wrap; }
	.rj-footer__aside { flex-direction: row; align-items: center; justify-content: space-between; width: 100%; margin-inline-start: 0; }
	.rj-fnews { align-items: flex-start; }
}

/* =========================================================================
   Video library (Templates 25–27): hub, featured, cards, term archives
   ========================================================================= */
.rj-archive__eyebrow,
.rj-section-eyebrow {
	font-size: 0.75rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	font-weight: 700;
	color: var(--rj-russet);
	margin: 0 0 8px;
}
.rj-archive__intro { max-width: 60ch; color: var(--rj-text-body); font-size: 1.0625rem; }
.rj-video-hub > section { margin-top: clamp(32px, 5vw, 56px); }

.rj-video-hub .rj-section-title {
	font-size: clamp(1.35rem, 3vw, 1.875rem);
	color: var(--rj-green);
	margin: 0 0 18px;
}

/* Featured */
.rj-video-featured__link {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(16px, 3vw, 32px);
	text-decoration: none;
	color: inherit;
	align-items: center;
}

.rj-video-featured__media,
.rj-video-card__media {
	position: relative;
	aspect-ratio: 16 / 9;
	background: var(--rj-parchment);
	border-radius: var(--rj-radius-md);
	overflow: hidden;
}

.rj-video-featured__media img,
.rj-video-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rj-video-featured__title { font-size: clamp(1.5rem, 3vw, 2.25rem); color: var(--rj-green); margin: 0 0 10px; line-height: 1.15; }
.rj-video-featured__excerpt { color: var(--rj-text-body); margin: 0 0 14px; }
.rj-video-featured__cta { font-weight: 700; color: var(--rj-green); }
.rj-video-featured__link:hover .rj-video-featured__cta { text-decoration: underline; }

@media (min-width: 768px) {
	.rj-video-featured__link { grid-template-columns: 1.4fr 1fr; }
}

/* Play affordance + duration badge (shared) */
.rj-video-card__play,
.rj-video-featured__play {
	position: absolute;
	inset: 0;
	margin: auto;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--rj-green) 88%, transparent);
	pointer-events: none;
}

.rj-video-card__play::after,
.rj-video-featured__play::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 54%;
	transform: translate(-50%, -50%);
	border-style: solid;
	border-width: 9px 0 9px 15px;
	border-color: transparent transparent transparent var(--rj-white);
}

.rj-video-card__duration {
	position: absolute;
	right: 8px;
	bottom: 8px;

	/* A near-opaque pill, not a scrim over the thumbnail: --rj-scrim-ink is a
	   linear-gradient, so color-mix() rejected it and the declaration was
	   dropped entirely — leaving white text on whatever sat behind the badge
	   (1.47:1 against the parchment placeholder when a video has no image). */
	background: rgb(11 36 28 / 88%);
	color: #fff;
	font-size: 0.75rem;
	font-variant-numeric: tabular-nums;
	padding: 2px 7px;
	border-radius: var(--rj-radius-sm);
}

/* Video grid + card */
.rj-video-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: clamp(16px, 2.5vw, 28px);
}

@media (max-width: 1100px) { .rj-video-grid { grid-template-columns: repeat(3, 1fr); } }

@media (max-width: 820px)  { .rj-video-grid { grid-template-columns: repeat(2, 1fr); } }

@media (max-width: 520px)  { .rj-video-grid { grid-template-columns: 1fr; } }
.rj-video-card .rj-card__link { text-decoration: none; color: inherit; display: block; }
.rj-video-card__body { padding: 12px 2px 0; }
.rj-video-card__series { font-size: 0.75rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--rj-russet); margin: 0 0 4px; }
.rj-video-card__title { font-size: 1.0625rem; line-height: 1.3; margin: 0; color: var(--rj-text-primary); }
.rj-video-card__captions { font-size: 0.8125rem; color: var(--rj-text-secondary); margin: 6px 0 0; }
.rj-video-card:hover .rj-video-card__title { color: var(--rj-green); }

/* Series + categories browse block */
.rj-video-hub__browse { display: grid; grid-template-columns: 1fr; gap: clamp(28px, 4vw, 48px); }

@media (min-width: 1024px) { .rj-video-hub__browse { grid-template-columns: 1.3fr 1fr; } }
.rj-video-series-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

@media (max-width: 520px) { .rj-video-series-list { grid-template-columns: 1fr; } }
.rj-video-series-list__item a { display: block; text-decoration: none; color: var(--rj-text-primary); }
.rj-video-series-list__art { display: block; aspect-ratio: 16 / 9; background: var(--rj-parchment); border-radius: var(--rj-radius-md); overflow: hidden; margin-bottom: 8px; }
.rj-video-series-list__art img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rj-video-series-list__title { font-weight: 600; }
.rj-video-series-list__item a:hover .rj-video-series-list__title { color: var(--rj-green); }
.rj-video-category-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }

.rj-video-category-list a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	padding: 12px 4px;
	border-bottom: 1px solid var(--rj-border-subtle, var(--rj-parchment));
	text-decoration: none;
	color: var(--rj-text-primary);
}
.rj-video-category-list a:hover .rj-video-category-list__name { color: var(--rj-green); }
.rj-video-category-list__count { color: var(--rj-text-secondary); font-variant-numeric: tabular-nums; font-size: 0.875rem; }

/* Empty state */
.rj-archive__empty { color: var(--rj-text-body); padding: 24px 0; }

/* =========================================================================
   Cookie preferences centre (CMP launcher + read-only choice mirror)
   ========================================================================= */
.rj-cmp-centre { margin: clamp(28px, 4vw, 44px) 0; }
.rj-cmp-choices { list-style: none; margin: 0 0 18px; padding: 0; border: 1px solid var(--rj-parchment); border-radius: var(--rj-radius-md); overflow: hidden; max-width: 560px; }
.rj-cmp-choices__row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 16px; }
.rj-cmp-choices__row + .rj-cmp-choices__row { border-top: 1px solid var(--rj-parchment); }
.rj-cmp-choices__label { font-weight: 600; color: var(--rj-text-primary); }

.rj-cmp-choices__status {
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	padding: 3px 10px;
	border-radius: var(--rj-radius-pill);
	border: 1px solid var(--rj-parchment);
	color: var(--rj-text-secondary);
	white-space: nowrap;
}
.rj-cmp-choices__status.is-allowed { color: #1f6b46; border-color: color-mix(in srgb, #1f6b46 40%, transparent); background: color-mix(in srgb, #1f6b46 10%, transparent); }
.rj-cmp-choices__status.is-declined { color: var(--rj-text-secondary); background: var(--rj-ivory); }
.rj-cmp-choices__status.is-always { color: var(--rj-green); border-color: color-mix(in srgb, var(--rj-green) 35%, transparent); background: color-mix(in srgb, var(--rj-green) 8%, transparent); }
.rj-cmp-centre__note { color: var(--rj-text-secondary); font-size: 0.9375rem; }

.rj-cmp-categories { margin: clamp(28px, 4vw, 44px) 0; }
.rj-cmp-categories__list { margin: 0; display: grid; gap: 4px; }
.rj-cmp-categories__item { padding: 14px 0; border-bottom: 1px solid var(--rj-parchment); }
.rj-cmp-categories__item:last-child { border-bottom: 0; }
.rj-cmp-categories__item dt { font-weight: 700; color: var(--rj-text-primary); margin: 0 0 4px; }
.rj-cmp-categories__item dd { margin: 0; color: var(--rj-text-body); max-width: 65ch; }

/* ------------------------------------------------------- Glossary (index) --
   A reference layout, not an editorial browse: the rest of the site uses card
   grids because they sell a read, and a glossary is looked up. Two columns —
   term left, definition right — on desktop, stacked rows below 700px. No new
   colours or radii; everything comes from the existing tokens. */
.rj-gloss { padding-block: 0 64px; }
.rj-gloss__intro { max-width: 62ch; padding-block: 8px 28px; }
.rj-gloss__eyebrow { margin: 0 0 6px; font-size: 0.6875rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--rj-gold-on-light); }
.rj-gloss__title { margin: 0 0 12px; font-size: clamp(2rem, 5vw, 3rem); line-height: 1.08; color: var(--rj-text-primary); }
.rj-gloss__desc { margin: 0; font-size: 1.0625rem; line-height: 1.7; color: var(--rj-text-body); }
.rj-gloss__count { margin: 10px 0 0; font-size: 0.8125rem; color: var(--wp--preset--color--text-muted-on-white); }
.rj-gloss__empty { margin: 24px 0; color: var(--rj-text-body); }

/* Letter jumps. Sticky under the header so the index stays reachable while
   scrolling a long list — the one affordance a dictionary really needs. */
.rj-gloss__az {
	position: sticky;
	top: 0;
	z-index: 1;
	margin-bottom: 28px;
	padding-block: 10px;
	background: var(--rj-page);
	border-block: 1px solid var(--rj-border-subtle);
}
.rj-gloss__az-list { display: flex; flex-wrap: wrap; gap: 2px; margin: 0; padding: 0; list-style: none; }

.rj-gloss__az-link {
	display: grid;
	place-items: center;
	min-width: var(--rj-control-sm);
	min-height: var(--rj-control-sm);
	padding: 0 6px;
	border-radius: var(--rj-radius-sm);
	font-size: 0.8125rem;
	font-weight: 700;
	color: var(--rj-green);
	text-decoration: none;
}
.rj-gloss__az-link:hover { background: var(--rj-ivory); color: var(--rj-green-deep); }

/* Letters with no terms. Not --rj-border-control, which is a *border* token:
   #9B8B6C is only 3.33:1 on white and fails 1.4.3 as text. The muted text
   token is 6.77:1, and the active letters stay distinguishable by weight and
   hue (green, 12.51:1) rather than by being the only readable ones. */
.rj-gloss__az-link.is-empty { color: var(--wp--preset--color--text-muted-on-white); font-weight: 500; }

.rj-gloss__group { margin-bottom: 36px; }

.rj-gloss__letter {
	margin: 0 0 8px;
	padding-bottom: 6px;
	border-bottom: 2px solid var(--rj-green);
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: .08em;
	color: var(--rj-green);
	scroll-margin-top: 88px;
}
.rj-gloss__list { margin: 0; }

.rj-gloss__row {
	display: grid;
	grid-template-columns: minmax(9rem, 15rem) minmax(0, 1fr);
	gap: 4px 28px;
	padding: 14px 0;
	border-bottom: 1px solid var(--rj-border-subtle);
}
.rj-gloss__row:last-child { border-bottom: 0; }
.rj-gloss__term { margin: 0; font-size: 1.0625rem; font-weight: 700; line-height: 1.35; }
.rj-gloss__term a { color: var(--rj-text-primary); text-decoration: none; text-underline-offset: 3px; }
.rj-gloss__term a:hover { color: var(--rj-green); text-decoration: underline; }
.rj-gloss__def { margin: 0; font-size: 0.9375rem; line-height: 1.65; color: var(--rj-text-body); }
.rj-gloss__def-text--none { color: var(--wp--preset--color--text-muted-on-white); font-style: italic; }

.rj-gloss__used {
	display: block;
	margin-top: 4px;
	font-size: 0.75rem;
	letter-spacing: .02em;
	color: var(--wp--preset--color--text-muted-on-white);
}

@media (max-width: 700px) {
	.rj-gloss__row { grid-template-columns: minmax(0, 1fr); gap: 4px; }
	.rj-gloss__term { font-size: 1rem; }
}

/* -------------------------------------------- Glossary (used-in on single) -- */
.rj-glossused {
	margin-top: 36px;
	padding: 18px 20px;
	background: var(--rj-ivory);
	border-radius: var(--rj-radius-md);
}
.rj-glossused__title { margin: 0 0 10px; font-size: 0.6875rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--wp--preset--color--text-muted-on-ivory); }
.rj-glossused__kind { margin: 12px 0 4px; font-size: 0.75rem; font-weight: 700; letter-spacing: .04em; color: var(--rj-text-primary); }
.rj-glossused__kind:first-of-type { margin-top: 0; }
.rj-glossused__list { margin: 0; padding: 0; list-style: none; }
.rj-glossused__list li { border-top: 1px solid var(--rj-border-subtle); }
.rj-glossused__list li:first-child { border-top: 0; }

.rj-glossused__list a {
	display: flex;
	align-items: center;
	min-height: var(--rj-control-sm);
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--rj-text-body);
	text-decoration: none;
	text-underline-offset: 3px;
}
.rj-glossused__list a:hover { color: var(--rj-green); text-decoration: underline; }

/* ------------------------------------- Landing pages & listings (1.25) --- */
.rj-archive__hero-text { max-width: 760px; margin-top: 20px; }
.rj-archive__title { margin: 0 0 14px; font-weight: 400; font-size: clamp(2.25rem, 4.4vw, 3.75rem); line-height: 1.06; color: var(--rj-green-deep); }

.rj-ahero .rj-archive__intro,
.rj-ahero .rj-archive__description { max-width: 36em; margin: 0; font-size: clamp(1.0625rem, 1.6vw, 1.1875rem); line-height: 1.6; color: var(--rj-text-body); }
.rj-ahero .rj-archive__description p { margin: 0 0 8px; }
.rj-learn-hero .rj-hsearch { margin-top: 24px; }
.rj-content--archive { padding-block: clamp(40px, 6vw, 72px); }
.rj-archive__heading { margin: 0 0 28px; }
.rj-learn-latest .rj-content--archive { padding-top: clamp(48px, 7vw, 88px); }

.rj-archive__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px 24px; }
.rj-acard { display: flex; flex-direction: column; min-width: 0; margin: 0; }
.rj-acard__link { display: flex; flex-direction: column; text-decoration: none; color: inherit; }
.rj-acard__media { display: flex; align-items: center; justify-content: center; aspect-ratio: 3 / 2; overflow: hidden; margin-bottom: 14px; background: var(--rj-parchment); }
.rj-acard__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform var(--rj-duration-base) var(--rj-easing); }
.rj-acard__media.is-drawn { background: var(--rj-ivory); border: 1px solid var(--rj-border-subtle); }
.rj-acard__media .rj-hicon { width: 40%; height: auto; }
.rj-acard__tag { display: block; margin-bottom: 6px; font-size: 0.75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--rj-russet); }
.rj-acard__title { margin: 0; font-weight: 400; font-size: 1.3125rem; line-height: 1.3; color: var(--rj-green-deep); }
.rj-acard__excerpt { margin: 8px 0 0; font-size: 1rem; line-height: 1.6; color: var(--rj-text-body); }
.rj-acard__link:hover .rj-acard__title { text-decoration: underline; text-underline-offset: 3px; }
.rj-acard__link:hover .rj-acard__media img { transform: scale(1.03); }
.rj-acard__link:focus-visible { outline: var(--rj-focus-outline-width) solid var(--rj-green-deep); outline-offset: 4px; }
.rj-acard--lead .rj-acard__title { font-size: clamp(1.5rem, 2.6vw, 2rem); line-height: 1.2; }
.rj-acard--lead .rj-acard__excerpt { font-size: 1.0625rem; }

/* Buying guides: how every guide works. */
.rj-bgsteps { padding-top: clamp(40px, 6vw, 64px); }
.rj-bgsteps .rj-hhead__eyebrow { margin-bottom: 18px; }
.rj-bgsteps__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.rj-bgstep { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 22px 24px; background: var(--rj-ivory); border-top: 2px solid var(--rj-green); }
.rj-bgstep .rj-hicon { width: 72px; height: 48px; margin-bottom: 6px; }
.rj-bgstep__num { position: absolute; top: 18px; right: 22px; font-size: 1.75rem; line-height: 1; color: var(--rj-russet); }
.rj-bgstep__name { font-size: 1.25rem; color: var(--rj-green-deep); }
.rj-bgstep__meta { font-size: 1rem; line-height: 1.55; color: var(--rj-text-body); }

@media (min-width: 600px) {
	.rj-archive__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rj-acard--lead { grid-column: 1 / -1; }
	.rj-acard--lead .rj-acard__media { aspect-ratio: 16 / 9; }
}

@media (min-width: 900px) {
	.rj-archive__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 28px; }
	.rj-acard--lead { grid-column: span 2; grid-row: span 2; }
	.rj-bgsteps__list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
}

@media (prefers-reduced-motion: reduce) {
	.rj-acard__media img { transition: none; }
	.rj-acard__link:hover .rj-acard__media img { transform: none; }
}

/* Listing pagination: 44px targets. */
.rj-content--archive .pagination { margin-top: 48px; }
.rj-content--archive .nav-links { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.rj-content--archive .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 14px; border: 1px solid var(--rj-border-subtle); border-radius: var(--rj-radius-md); color: var(--rj-green); text-decoration: none; box-sizing: border-box; }
.rj-content--archive a.page-numbers:hover { border-color: var(--rj-green); }
.rj-content--archive .page-numbers.current { border-color: var(--rj-green); background: var(--rj-green); color: var(--rj-white); }
.rj-content--archive .page-numbers.dots { border: 0; }

/* ------------------------------------------------ Topic hubs (1.26) --- */

/* Ivory band behind breadcrumbs + intro, full-bleed without overflow. */
.rj-hub.rj-content { max-width: 1240px; padding-top: 0; }
.rj-hub.rj-pillarhub { max-width: 1240px; }

.rj-hub > .rj-breadcrumbs,
header.rj-hub__intro { background: var(--rj-ivory); box-shadow: 0 0 0 100vmax var(--rj-ivory); clip-path: inset(0 -100vmax); }
.rj-hub > .rj-breadcrumbs { padding-top: 20px; }
header.rj-hub__intro { margin: 0; padding: 20px 0 48px; }
header.rj-hub__intro > * { max-width: 760px; }
.rj-hub .rj-hub__eyebrow { margin: 0 0 12px; font-size: 0.75rem; letter-spacing: .22em; color: var(--rj-russet); }
.rj-hub .rj-hub__title { margin: 0 0 14px; font-size: clamp(2.25rem, 4.4vw, 3.75rem); line-height: 1.06; color: var(--rj-green-deep); }
.rj-hub .rj-hub__desc { max-width: 36em; font-size: clamp(1.0625rem, 1.6vw, 1.1875rem); line-height: 1.6; }
.rj-hub .rj-hub__meta { margin-top: 16px; font-size: 0.875rem; color: var(--wp--preset--color--text-muted-on-ivory); }
.rj-hub .rj-hub__section { margin-top: clamp(48px, 7vw, 80px); }
.rj-hub .rj-hub__h2 { margin: 0 0 24px; font-size: clamp(1.625rem, 3vw, 2.125rem); line-height: 1.2; color: var(--rj-green-deep); }

/* Start here: a numbered reading list. */
.rj-hub .rj-starthere { max-width: none; padding: 20px 0 0; background: none; border-top: 2px solid var(--rj-green); border-radius: 0; }
.rj-hub .rj-starthere__title { margin: 0 0 8px; font-size: 0.75rem; font-weight: 400; letter-spacing: .22em; text-transform: uppercase; color: var(--rj-russet); }
.rj-hub .rj-starthere__list { counter-reset: rj-start; display: grid; grid-template-columns: minmax(0, 1fr); column-gap: 40px; }
.rj-hub .rj-starthere__list li { counter-increment: rj-start; }
.rj-hub .rj-starthere__link { gap: 14px; min-height: 56px; font-size: 1.125rem; line-height: 1.35; color: var(--rj-green-deep); text-decoration: none; }
.rj-hub .rj-starthere__link::before { content: counter(rj-start); flex: none; min-width: 1.2em; font-size: 1.375rem; color: var(--rj-russet); }

/* Subtopic and concept tiles: media on top, text below. */
.rj-hub .rj-pillars__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 16px; }
.rj-hub .rj-pillars__grid > .rj-pillar { grid-column: auto; min-height: 0; }
.rj-hub .rj-pillar { display: flex; flex-direction: column; justify-content: flex-start; min-height: 0; overflow: visible; border: 0; border-radius: 0; background: none; color: inherit; text-decoration: none; }
.rj-hub .rj-pillar__media { position: relative; inset: auto; display: flex; align-items: center; justify-content: center; aspect-ratio: 4 / 3; overflow: hidden; margin-bottom: 12px; background: var(--rj-parchment); }
.rj-hub .rj-pillar__media.is-drawn { background: var(--rj-ivory); border: 1px solid var(--rj-border-subtle); }
.rj-hub .rj-pillar__media .rj-hicon { width: 46%; height: auto; }
.rj-hub .rj-pillar__img { position: static; display: block; width: 100%; height: 100%; }
.rj-hub .rj-pillar__body { padding: 0; }
.rj-hub .rj-pillar__title { font-size: clamp(1.125rem, 2vw, 1.3125rem); line-height: 1.25; color: var(--rj-green-deep); text-shadow: none; }
.rj-hub .rj-pillar__desc { display: block; -webkit-line-clamp: unset; margin-top: 4px; font-size: 0.9375rem; line-height: 1.5; color: var(--rj-text-body); }
.rj-hub .rj-pillar__count { margin-top: 6px; font-size: 0.875rem; color: var(--rj-russet); }
.rj-hub .rj-pillar:hover { border-color: transparent; }
.rj-hub .rj-pillar:hover .rj-pillar__title { text-decoration: underline; text-underline-offset: 3px; }

/* Recommended reading full width; tools, glossary and story as panels below. */
.rj-hub__lower { display: block; }
.rj-hub .rj-reco__head { align-items: flex-end; margin-bottom: 24px; }
.rj-hub .rj-reco__head .rj-hub__h2 { margin: 0; }
.rj-hub .rj-reco__all { min-height: 44px; font-size: 0.9375rem; font-weight: 400; }
.rj-hub-cards { margin-top: 0; }
.rj-hub__aside { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; margin-top: clamp(48px, 7vw, 80px); }
.rj-hub__aside .rj-hub__section { margin-top: 0; }

.rj-hub .rj-hubtools,
.rj-hub .rj-hubgloss,
.rj-hub .rj-hubstory { padding: 18px 0 0; border: 0; border-top: 2px solid var(--rj-green); border-radius: 0; }
.rj-hub .rj-hub-panel__title { margin: 0 0 12px; font-size: 0.75rem; letter-spacing: .22em; color: var(--rj-russet); }
.rj-hub .rj-hubtools__link { min-height: 52px; font-size: 1.0625rem; color: var(--rj-green-deep); }
.rj-hub .rj-chip { min-height: 44px; padding: 0 16px; font-size: 0.9375rem; color: var(--rj-green); }
.rj-hub .rj-hubstory__card { padding: 20px; }

/* Learning path, related, hand-offs. */
.rj-hub .rj-lp__item { padding: 18px 0; }
.rj-hub .rj-lp__num { font-size: 1.5rem; line-height: 1.1; }
.rj-hub .rj-lp__link { font-weight: 400; font-size: 1.125rem; color: var(--rj-green-deep); }
.rj-hub .rj-lp__meta, .rj-hub .rj-lp__note { font-size: 0.875rem; }
.rj-hub .rj-related__link { min-height: 52px; font-size: 1.0625rem; color: var(--rj-green-deep); }
.rj-hub .rj-parent-handoff, .rj-hub .rj-about { padding: 24px; border-radius: var(--rj-radius-md); }
.rj-hub .rj-parent-handoff__back, .rj-hub .rj-parent-handoff__link { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-size: 1.0625rem; }
.rj-hub .rj-archive-handoff a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-size: 1.0625rem; font-weight: 400; }
.rj-hub .rj-hubtrust { margin-top: clamp(56px, 8vw, 88px); padding: 20px 0 clamp(48px, 7vw, 80px); }
.rj-hub .rj-hubtrust__title, .rj-hub .rj-hubtrust__list a { font-size: 0.9375rem; }
.rj-hub .rj-hubtrust__list a { display: inline-flex; align-items: center; min-height: 44px; }
.rj-hub > .rj-hub__section:last-child { padding-bottom: clamp(48px, 7vw, 80px); }

@media (min-width: 900px) {
	.rj-hub .rj-pillars__grid { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 32px 24px; }
	.rj-hub .rj-starthere__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rj-hub__aside { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 40px; }
}

/* Breadcrumb links: at least 24px tall (WCAG 2.2 target size). */
.rj-breadcrumbs a { display: inline-block; padding-block: 4px; }

/* ------------------------------------- Visual explainers (stage 5, 1.27) --- */
.rj-vis { margin: 8px 0 1.6em; }
.rj-vis__title { margin: 0 0 14px; font-size: 0.75rem; letter-spacing: .22em; text-transform: uppercase; color: var(--rj-russet); }

/* Key takeaways */
.rj-vis--takeaways { padding: 22px 26px; background: var(--rj-ivory); border-top: 2px solid var(--rj-green); }
.rj-vis--takeaways ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.rj-vis--takeaways li { position: relative; margin: 0; padding-left: 26px; font-size: 1.0625rem; line-height: 1.55; color: var(--rj-ink); }
.rj-vis--takeaways li::before { content: ""; position: absolute; left: 2px; top: .55em; width: 10px; height: 10px; border: 1.5px solid var(--rj-green); transform: rotate(45deg); }

/* Numbered steps */
.rj-vis--steps ol { list-style: none; counter-reset: rj-vstep; margin: 0; padding: 0; display: grid; gap: 0; }
.rj-vis--steps li { counter-increment: rj-vstep; position: relative; margin: 0; padding: 16px 0 16px 56px; border-top: 1px solid var(--rj-border-subtle); font-size: 1.0625rem; line-height: 1.6; }
.rj-vis--steps li::before { content: counter(rj-vstep); position: absolute; left: 0; top: 12px; display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; border: 1.5px solid var(--rj-green); border-radius: 50%; font-size: 1.125rem; color: var(--rj-green-deep); }
.rj-vis--steps li strong { display: block; margin-bottom: 2px; font-weight: 400; font-size: 1.1875rem; color: var(--rj-green-deep); }

/* Comparison table: a table from tablet up, stacked cards on phones. */
.rj-vis--compare table { width: 100%; border-collapse: collapse; font-size: 1rem; line-height: 1.5; }
.rj-vis--compare th, .rj-vis--compare td { padding: 12px 14px; border-bottom: 1px solid var(--rj-border-subtle); text-align: left; vertical-align: top; }
.rj-vis--compare thead th { border-bottom: 2px solid var(--rj-green); background: none; font-weight: 400; font-size: 1.0625rem; letter-spacing: 0; text-transform: none; color: var(--rj-green-deep); }
.rj-vis--compare thead td { border-bottom: 2px solid var(--rj-green); }
.rj-vis--compare tbody th { font-weight: 400; color: var(--wp--preset--color--text-muted-on-white); }
.rj-vis--compare tbody tr:nth-child(even) { background: var(--rj-ivory); }

@media (max-width: 599px) {
	.rj-vis--compare thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.rj-vis--compare table, .rj-vis--compare tbody, .rj-vis--compare tr, .rj-vis--compare th, .rj-vis--compare td { display: block; }
	.rj-vis--compare tr { margin-bottom: 12px; border: 1px solid var(--rj-border-subtle); }
	.rj-vis--compare tbody tr:nth-child(even) { background: none; }
	.rj-vis--compare tbody th { background: var(--rj-ivory); color: var(--rj-green-deep); }
	.rj-vis--compare td[data-label]::before { content: attr(data-label); display: block; margin-bottom: 2px; font-size: 0.75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--rj-russet); }
}

/* Scale */
.rj-vis--scale { padding: 22px clamp(16px, 3vw, 28px) 18px; border: 1px solid var(--rj-border-subtle); border-radius: var(--rj-radius-md); }
.rj-vis--scale .rj-vis__desc { margin: 0 0 18px; font-size: 1rem; line-height: 1.6; }
.rj-vis__track { position: relative; height: 54px; margin-inline: 8px; }
.rj-vis__track::before { content: ""; position: absolute; left: 0; right: 0; top: 30px; height: 8px; border-radius: var(--rj-radius-pill); background: linear-gradient(to right, var(--rj-parchment), #C9BFA6); }
.rj-vis__band { position: absolute; top: 26px; height: 16px; border-radius: var(--rj-radius-pill); background: var(--rj-green); }
.rj-vis__bandlabel { position: absolute; top: 0; transform: translateX(-50%); white-space: nowrap; font-size: 0.875rem; color: var(--rj-green-deep); }
.rj-vis__marks { position: relative; list-style: none; height: 42px; margin: 6px 8px 0; padding: 0; }
.rj-vis__marks li { position: absolute; top: 0; display: flex; flex-direction: column; align-items: center; margin: 0; transform: translateX(-50%); font-size: 0.75rem; line-height: 1.3; white-space: nowrap; color: var(--wp--preset--color--text-muted-on-white); }
.rj-vis__marks li:first-child { align-items: flex-start; transform: none; }
.rj-vis__marks li:last-child { align-items: flex-end; transform: translateX(-100%); }
.rj-vis__num { color: var(--rj-ink); }

/* Colour range */
.rj-vis__swatches { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: 10px; }
.rj-vis__swatches li { display: flex; flex-direction: column; gap: 6px; margin: 0; font-size: 0.8125rem; line-height: 1.35; color: var(--rj-text-body); overflow-wrap: anywhere; }
.rj-vis__swatch { display: block; height: 40px; border: 1px solid rgb(36 29 21 / 12%); transition: transform var(--rj-duration-base) var(--rj-easing); }
.rj-vis__swatches li.is-active .rj-vis__swatch { transform: scaleY(1.25); outline: 2px solid var(--rj-green-deep); outline-offset: 2px; }
.rj-vis__swatches li.is-active { color: var(--rj-green-deep); }
.rj-vis__slider { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; margin-top: 16px; }
.rj-vis__slider label { font-size: 0.875rem; color: var(--wp--preset--color--text-muted-on-white); }
.rj-vis__slider input[type="range"] { width: 100%; min-height: 44px; margin: 0; accent-color: var(--rj-green); }
.rj-vis__slider output { font-size: 1.0625rem; color: var(--rj-green-deep); }
.rj-vis__note { margin: 10px 0 0; font-size: 0.8125rem; color: var(--wp--preset--color--text-muted-on-white); }

@media (prefers-reduced-motion: reduce) {
	.rj-vis__swatch { transition: none; }
}

/* Contact page: the embedded group contact form (contact.ralphjacobs.org). */
.rj-contact__form { max-width: 880px; margin-top: 32px; }
.rj-contact__noscript { margin-top: 24px; font-size: 1.0625rem; }

/* Interactive 4 Cs explorers (inc/four-cs.php, assets/js/four-cs.js) */
.rj-4cs { margin: 32px 0; padding: clamp(16px, 3vw, 28px); background: var(--rj-white); border: 1px solid var(--rj-border-subtle); }
.rj-4cs__tabs { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 20px; border-bottom: 1px solid var(--rj-border-subtle); }
.rj-4cs__tab { min-height: 44px; padding: 0 16px; border: 0; border-bottom: 2px solid transparent; background: none; font: inherit; color: var(--rj-text-secondary); cursor: pointer; }
.rj-4cs__tab[aria-selected="true"] { border-bottom-color: var(--rj-green); color: var(--rj-green); font-weight: 600; }
.rj-4cs__title { margin: 0 0 16px; font-size: clamp(1.25rem, 2.2vw, 1.5rem); font-weight: 400; }
.rj-4cs__stage { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: clamp(16px, 3vw, 32px); align-items: center; }
.rj-4cs__figure { position: relative; overflow: hidden; background: #fff; aspect-ratio: 3 / 2; }
.rj-4cs__figure > .rj-4cs__img, .rj-4cs__figure > canvas { display: block; width: 100%; height: 100%; object-fit: contain; }
.rj-4cs__overlay, .rj-4cs__diagram { position: absolute; inset: 0; width: 100%; height: 100%; }
.rj-4cs__diagram { position: static; display: block; }

/* Carat: sized against the frame's height. The stone fills 72% of its square render, so the image is scaled by 1/0.72. */
.rj-4cs__figure.is-carat > .rj-4cs__img, .rj-4cs__ghost { position: absolute; top: 50%; left: 50%; width: auto; height: var(--rj-size, 50%); aspect-ratio: 1; }
.rj-4cs__figure.is-carat > .rj-4cs__img { transform: translate(-50%, -50%) scale(1.39); transition: height 0.25s ease; }
.rj-4cs__ghost { transform: translate(-50%, -50%); border: 1px dashed var(--rj-green); border-radius: 50%; pointer-events: none; }
.rj-4cs__region { fill: rgb(21 58 47 / 16%); stroke: var(--rj-green); stroke-width: 2; vector-effect: non-scaling-stroke; }
.rj-4cs__region.is-line { fill: none; stroke-width: 2; }
.rj-4cs__readout { display: flex; flex-direction: column; gap: 6px; }
.rj-4cs__grade { font-size: clamp(2rem, 5vw, 3rem); line-height: 1; color: var(--rj-green); }
.rj-4cs__name { font-size: 1.125rem; font-weight: 600; }
.rj-4cs__text { line-height: 1.55; }
.rj-4cs__aside { font-size: 0.875rem; color: var(--rj-text-secondary); }
.rj-4cs__slider { margin-top: 20px; }
.rj-4cs__range { width: 100%; min-height: 44px; accent-color: var(--rj-green); }
.rj-4cs__ticks { display: flex; justify-content: space-between; font-size: 0.75rem; color: var(--rj-text-secondary); }
.rj-4cs__choices { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.rj-4cs__choice { min-height: 44px; padding: 0 16px; border: 1px solid var(--rj-border-subtle); border-radius: 999px; background: var(--rj-white); font: inherit; cursor: pointer; }
.rj-4cs__choice[aria-checked="true"] { border-color: var(--rj-green); background: var(--rj-green); color: var(--rj-white); }
.rj-4cs__list { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 16px 0 0; padding: 0; list-style: none; font-size: 0.875rem; }
.rj-4cs__grades { margin-top: 12px; font-size: 0.875rem; color: var(--rj-text-secondary); }
.rj-4cs__defs { margin-top: 16px; font-size: 0.9375rem; }
.rj-4cs__defs dt { font-weight: 600; }
.rj-4cs__defs dd { margin: 0 0 8px; }
.rj-4cs.is-ready .rj-4cs__defs, .rj-4cs.is-ready .rj-4cs__list { display: none; }
.rj-4cs__note { margin: 20px 0 0; font-size: 0.8125rem; color: var(--rj-text-secondary); }

@media (max-width: 720px) {
	.rj-4cs__stage { grid-template-columns: 1fr; }
	.rj-4cs__ticks span:nth-child(even) { visibility: hidden; }
}

@media (prefers-reduced-motion: reduce) {
	.rj-4cs__figure.is-carat > .rj-4cs__img { transition: none; }
}

/* Interactive explainers ([rj_explorer], inc/four-cs.php) reuse the 4 Cs layout. */
.rj-explorer__intro { margin: -8px 0 16px; color: var(--rj-text-secondary); }

/* Clarity loupe: magnify the stone around the pointer (centre on touch). */
.rj-4cs__loupe { position: absolute; right: 8px; bottom: 8px; z-index: 1; min-height: 44px; padding: 0 14px; border: 1px solid var(--rj-border-subtle); border-radius: 999px; background: var(--rj-white); font: inherit; font-size: 0.875rem; cursor: pointer; }
.rj-4cs__figure.is-loupe > .rj-4cs__img { transform: scale(2.4); transform-origin: var(--rj-lx, 50%) var(--rj-ly, 50%); cursor: zoom-out; }
.rj-4cs__figure > .rj-4cs__img { transition: transform 0.2s ease; }

@media (prefers-reduced-motion: reduce) {
	.rj-4cs__figure > .rj-4cs__img { transition: none; }
}
