/*
 * Roebuck Concepts Knowledgebase (/knowledge/ and its guides).
 *
 * Built from the brand's own parts: black and white, Lato, one Notera script word,
 * square buttons that invert on hover, full-bleed black bands. The one borrowed
 * device is the drawing title block under each guide's title.
 *
 * Everything is scoped under #rc-kb. An ID outranks every Elementor kit rule
 * (.elementor-kit-9 a / h1 / button:hover / input:focus:not():not()) and the
 * site-wide "h1, h2 { font-family: Notera }", so no !important is needed.
 */

@font-face {
	font-family: "RC Notera";
	/* Root-relative, so it is same-origin on production and on the local copy. */
	src: url("/MyFontsWebfontsKit/webFonts/Notera/font.woff2") format("woff2"),
		url("/MyFontsWebfontsKit/webFonts/Notera/font.woff") format("woff");
	font-display: swap;
	/* Lato's vertical metrics (98.7% / 21.3%), so the script word occupies the same line
	   box as its Lato fallback and nothing moves when it arrives. */
	ascent-override: 98.7%;
	descent-override: 21.3%;
	line-gap-override: 0%;
}

/* Arial scaled to Lato's width and metrics: text barely reflows if Lato arrives late. */
@font-face {
	font-family: "Lato KB Fallback";
	src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("Arimo");
	size-adjust: 98.22%;
	ascent-override: 100.49%;
	descent-override: 21.69%;
	line-gap-override: 0%;
}

#rc-kb {
	--ink: #000;
	--paper: #fff;
	--meta: #686868;        /* the kit's accent grey, 5.7:1 on white */
	--on-ink-meta: #b3b3b3; /* secondary text on black, 9.9:1 */
	--panel: #f9f9f9;       /* the kit's panel grey */
	--rule: #dddddd;
	--row-rule: #cfcfcf;
	--mark: #ffe55c;        /* search matches only */
	--sans: "Lato", "Lato KB Fallback", system-ui, -apple-system, "Segoe UI", sans-serif;
	--script: "RC Notera", "Lato", sans-serif;
	--h2: clamp(1.5rem, 1.25rem + 0.9vw, 2rem);
	--label: 0.75rem;
	--gutter: clamp(1.25rem, 4vw, 3rem);
	--wrap: 1120px;         /* edges land on the footer's divider line */
	--rail: 15rem;
	--rail-gap: 4rem;
	--measure: 38rem;       /* about 71 characters a line at 18px */
	--faq-pad: clamp(1.25rem, 4vw, 2.5rem);
	--admin: var(--wp-admin--admin-bar--height, 0px);

	/* GeneratePress makes .site-content a flex row. */
	flex: 1 1 100%;
	width: 100%;
	min-width: 0;
	font-family: var(--sans);
	font-size: 1.0625rem;
	font-weight: 400;
	line-height: 1.6;
	color: var(--ink);
	background: var(--paper);
}

#rc-kb *,
#rc-kb *::before,
#rc-kb *::after {
	box-sizing: border-box;
}

#rc-kb ::selection {
	background: var(--ink);
	color: var(--paper);
}

#rc-kb .rc-wrap {
	max-width: calc(var(--wrap) + 2 * var(--gutter));
	margin-inline: auto;
	padding-inline: var(--gutter);
}

/* ---------------------------------------------------------------- base type */

#rc-kb :is(h1, h2, h3, h4) {
	margin: 0;
	font-family: var(--sans);
	font-weight: 700;
	font-style: normal;
	color: var(--ink);
	text-transform: none;
	letter-spacing: -0.01em;
}

#rc-kb p {
	margin: 0;
}

#rc-kb a {
	color: var(--ink);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

#rc-kb a:hover {
	color: var(--ink);
	text-decoration-thickness: 2px;
}

#rc-kb :focus-visible {
	outline: 2px solid var(--ink);
	outline-offset: 2px;
}

#rc-kb .rc-label {
	font-family: var(--sans);
	font-size: var(--label);
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--meta);
}

#rc-kb mark {
	background: var(--mark);
	color: var(--ink);
	padding: 0 0.08em;
}

#rc-kb [hidden] {
	display: none;
}

/* ---------------------------------------------------------------- buttons, CTA band */

#rc-kb .rc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3.25rem;
	padding: 0.75rem 1.6rem;
	border: 1px solid #fff;
	border-radius: 0;
	background: transparent;
	color: #fff;
	font-size: 1rem;
	font-weight: 400;
	letter-spacing: 0.05em;
	text-align: center;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

#rc-kb .rc-btn:hover {
	background: #fff;
	color: var(--ink);
}

/* Full-bleed black, like every dark band on the site, running straight into the footer. */
#rc-kb .rc-cta-band {
	margin-top: clamp(3.5rem, 7vw, 5rem);
	background: var(--ink);
	color: #fff;
}

#rc-kb .rc-cta {
	display: grid;
	gap: 1.75rem;
	padding-block: clamp(2.75rem, 6vw, 4.25rem);
	border-bottom: 1px solid #333;
}

#rc-kb .rc-cta-band :focus-visible,
#rc-kb .rc-hub-mast :focus-visible {
	outline-color: #fff;
}

#rc-kb .rc-cta__title {
	margin: 0 0 0.75rem;
	font-size: var(--h2);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.01em;
	color: #fff;
}

#rc-kb .rc-cta__body,
#rc-kb .rc-cta__body p {
	max-width: 40rem;
	font-size: 1.0625rem;
	font-weight: 300;
	line-height: 1.65;
	color: #fff;
}

#rc-kb .rc-cta a {
	color: #fff;
}

#rc-kb .rc-cta__actions {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.5rem;
}

#rc-kb .rc-cta__tel {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	font-size: 1.0625rem;
}

@media (min-width: 900px) {
	#rc-kb .rc-cta {
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
		gap: 4rem;
	}

	#rc-kb .rc-cta__actions {
		align-items: center;
	}
}

/* Phones: a full-width button with its label kept to one balanced line where it fits. */
@media (max-width: 479px) {
	#rc-kb .rc-cta__actions {
		align-items: stretch;
	}

	#rc-kb .rc-btn {
		padding-inline: 1rem;
		text-wrap: balance;
	}
}

/* ---------------------------------------------------------------- hub: masthead */

#rc-kb .rc-hub-mast {
	padding-block: clamp(2.5rem, 5vw, 4rem) clamp(2.5rem, 5vw, 4.5rem);
	background: var(--ink);
	color: #fff;
}

/* The brand's own pattern: Lato capitals with one word in the Notera script. */
#rc-kb .rc-hub-title {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	column-gap: 0.4em;
	margin: 0 0 clamp(1.75rem, 3.5vw, 2.5rem);
	font-size: clamp(1.375rem, 0.9rem + 2vw, 2.375rem);
	line-height: 1;
	letter-spacing: 0.06em;
	color: #fff;
}

#rc-kb .rc-hub-title .rc-caps {
	text-transform: uppercase;
}

#rc-kb .rc-hub-title .rc-script {
	font-family: var(--script);
	font-size: 2.4em;
	font-weight: 400;
	line-height: 0.8;
	letter-spacing: 0;
	font-synthesis: none;
}

/* Phones: a deliberate two-line lockup, never a stranded capital word. */
@media (max-width: 479px) {
	#rc-kb .rc-hub-title .rc-caps:first-child {
		flex-basis: 100%;
		margin-bottom: 0.35em;
	}
}

#rc-kb .rc-hub-mast__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 2rem;
}

#rc-kb .rc-hub-intro p {
	max-width: 36rem;
	font-size: 1.125rem;
	font-weight: 300;
	line-height: 1.65;
	color: #fff;
}

#rc-kb .rc-hub-intro p + p {
	margin-top: 1em;
}

#rc-kb .rc-hub-intro a {
	color: #fff;
}

#rc-kb .rc-search__label {
	display: block;
	margin: 0 0 0.6rem;
	font-size: var(--label);
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.3;
	text-transform: uppercase;
	color: #fff;
}

#rc-kb .rc-search .rc-search__input {
	display: block;
	width: 100%;
	height: 3.5rem;
	margin: 0;
	padding: 0 1rem 0 3rem;
	border: 1px solid #fff;
	border-radius: 0;
	background: #000 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%23fff' stroke-width='1.6'%3E%3Ccircle cx='8.5' cy='8.5' r='6'/%3E%3Cpath d='m13 13 5.5 5.5'/%3E%3C/svg%3E") no-repeat 1rem 50%;
	box-shadow: none;
	color: #fff;
	font-family: var(--sans);
	font-size: 1.125rem; /* at least 16px, so iOS does not zoom on focus */
	font-weight: 400;
	-webkit-appearance: none;
	appearance: none;
}

#rc-kb .rc-search .rc-search__input:focus {
	background-color: #141414;
	color: #fff;
	outline: 2px solid #fff;
	outline-offset: 2px;
}

/* A white clear button drawn to match the magnifier, not the browser's tinted glyph. */
#rc-kb .rc-search__input::-webkit-search-cancel-button {
	width: 0.9rem;
	height: 0.9rem;
	margin-left: 0.5rem;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%23fff' stroke-width='1.6'%3E%3Cpath d='m1 1 12 12M13 1 1 13'/%3E%3C/svg%3E") center / contain no-repeat;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

#rc-kb .rc-search__help {
	margin-top: 0.6rem;
	font-size: 0.9375rem;
	color: var(--on-ink-meta);
}

#rc-kb .rc-search__status {
	margin-top: 1.1rem;
	font-size: 0.9375rem;
	font-weight: 700;
	color: #fff;
}

@media (min-width: 900px) {
	#rc-kb .rc-hub-mast__grid {
		grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
		align-items: start;
		gap: 4.5rem;
	}

	#rc-kb .rc-hub-intro {
		grid-area: 1 / 1;
		padding-top: 1.55rem; /* first line level with the top of the search box */
	}

	#rc-kb .rc-search {
		grid-area: 1 / 2;
	}
}

@media (max-width: 899px) {
	#rc-kb .rc-hub-intro p {
		font-size: 1.0625rem;
		line-height: 1.6;
	}
}

/* ---------------------------------------------------------------- hub: topics */

/* An explicit minmax(0, 1fr) track: an implicit auto track would take the
   min-content width of the scrolling topic strip and widen the whole page. */
#rc-kb .rc-hub-body {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 2rem;
	padding-block: clamp(2.25rem, 5vw, 4.5rem) 0;
}

#rc-kb .rc-rail__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

#rc-kb .rc-rail__list li {
	margin: 0;
}

#rc-kb .rc-rail__list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	text-decoration: none;
	font-size: 0.9375rem;
	line-height: 1.35;
}

#rc-kb .rc-rail__count {
	color: var(--meta);
	font-variant-numeric: tabular-nums;
}

/* Phones and tablets: one row of topic links that scrolls sideways. Not sticky. */
@media (max-width: 1099px) {
	#rc-kb .rc-rail__label {
		margin-bottom: 0.6rem;
	}

	#rc-kb .rc-rail__list {
		display: flex;
		gap: 0.5rem;
		overflow-x: auto;
		padding-bottom: 0.5rem;
		scrollbar-width: thin;
	}

	#rc-kb .rc-rail__list li {
		flex: 0 0 auto;
	}

	#rc-kb .rc-rail__list a {
		min-height: 44px;
		padding: 0.55rem 0.9rem;
		border: 1px solid var(--ink);
		white-space: nowrap;
	}

	#rc-kb .rc-rail__list a:focus-visible {
		outline-offset: -4px; /* the scrolling strip would clip an outer ring */
	}

	#rc-kb .rc-rail__list a:hover {
		background: var(--ink);
		color: #fff;
	}

	#rc-kb .rc-rail__list a:hover .rc-rail__count {
		color: var(--on-ink-meta);
	}
}

@media (min-width: 1100px) {
	#rc-kb .rc-hub-body {
		grid-template-columns: 14rem minmax(0, 1fr);
		align-items: start;
		gap: var(--rail-gap);
	}

	#rc-kb .rc-rail {
		position: sticky;
		top: calc(var(--admin) + 1.5rem);
	}

	/* The label box matches a one-line topic heading, so the two ink rules register. */
	#rc-kb .rc-rail__label {
		display: flex;
		align-items: flex-end;
		min-height: calc(1.2 * var(--h2));
		margin: 0 0 0.9rem;
	}

	#rc-kb .rc-rail__list {
		border-top: 1px solid var(--ink);
	}

	#rc-kb .rc-rail__list a {
		padding: 0.6rem 0 0.6rem 0.9rem;
		border-left: 2px solid transparent;
	}

	#rc-kb .rc-rail__list a[aria-current] {
		border-left-color: var(--ink);
		font-weight: 700;
	}

	#rc-kb .rc-rail__list a:hover {
		border-left-color: var(--ink);
	}
}

/* Gaps, not sibling margins: topics hidden by the search leave no stray space. */
#rc-kb .rc-topics {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	row-gap: clamp(3rem, 6vw, 4.5rem);
}

#rc-kb .rc-topic__title {
	margin: 0 0 1.75rem;
	padding-bottom: 0.9rem;
	border-bottom: 1px solid var(--ink);
	font-size: var(--h2);
	line-height: 1.2;
	scroll-margin-top: calc(var(--admin) + 1.5rem);
}

#rc-kb .rc-topic__note {
	max-width: var(--measure);
	margin: 0 0 1.75rem;
	color: var(--meta);
}

#rc-kb .rc-entries + .rc-topic__note {
	margin-top: 0.5rem;
}

#rc-kb .rc-topic__note :is(h3, h4) {
	margin: 0;
	font-size: 1.125rem;
	color: var(--ink);
}

#rc-kb .rc-entries {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	column-gap: 3.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 760px) {
	#rc-kb .rc-entries {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Each entry spans four shared rows, so titles, summaries and reading times line up
   across a row of the register however many lines each title takes. */
#rc-kb .rc-entry {
	position: relative;
	display: grid;
	grid-row: span 4;
	grid-template-rows: subgrid;
	row-gap: 0;
	align-content: start;
	margin: 0;
	padding-bottom: 2rem;
}

#rc-kb .rc-entry__link {
	grid-row: 1;
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.35;
	text-decoration: none;
}

/* The whole entry is clickable, but the link's text stays just the guide title. */
#rc-kb .rc-entry__link::after {
	content: "";
	position: absolute;
	inset: 0;
}

#rc-kb .rc-entry:hover .rc-entry__link {
	text-decoration: underline;
	text-decoration-thickness: 2px;
}

#rc-kb .rc-entry__desc {
	grid-row: 2;
	margin-top: 0.45rem;
	font-size: 0.9375rem;
	line-height: 1.55;
	color: var(--meta);
}

#rc-kb .rc-entry__meta {
	grid-row: 3;
	margin-top: 0.6rem;
	font-size: var(--label);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--meta);
}

#rc-kb .rc-entry__hit {
	grid-row: 4;
	position: relative;
	z-index: 1; /* above the whole-entry link */
	margin-top: 0.4rem;
	font-size: 0.9375rem;
	line-height: 1.45;
}

#rc-kb .rc-entry__hit .rc-label {
	margin-right: 0.4em;
}

#rc-kb .rc-entry__hit a {
	display: inline-block;
	padding-block: 0.2rem; /* a 24px target clear of the whole-entry link */
}

#rc-kb .rc-empty {
	max-width: var(--measure);
}

#rc-kb .rc-empty__title {
	margin-bottom: 0.6rem;
	font-size: 1.25rem;
	font-weight: 700;
}

/* ---------------------------------------------------------------- guide: top */

#rc-kb .rc-single__top {
	padding-block: clamp(1.75rem, 4vw, 3rem) clamp(1.75rem, 3vw, 2.5rem);
}

#rc-kb .rank-math-breadcrumb {
	margin: 0 0 clamp(1.25rem, 3vw, 2rem);
	font-size: 0.875rem;
	color: var(--meta);
}

#rc-kb .rank-math-breadcrumb a {
	color: var(--meta);
	text-decoration-color: var(--meta);
}

#rc-kb .rank-math-breadcrumb a:hover {
	color: var(--ink);
	text-decoration-color: currentColor;
}

/* A plain slash instead of the plugin's default guillemet. */
#rc-kb .rank-math-breadcrumb .separator {
	font-size: 0;
}

#rc-kb .rank-math-breadcrumb .separator::before {
	content: "/";
	margin-inline: 0.55em;
	font-size: 0.875rem;
	color: var(--row-rule);
}

/* The current page is the H1 directly below, so its crumb is for screen readers only. */
#rc-kb .rank-math-breadcrumb .separator:has(+ .last),
#rc-kb .rank-math-breadcrumb .last {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

#rc-kb .rc-single__title {
	max-width: 17em;
	margin: 0 0 clamp(1.5rem, 3vw, 2.25rem);
	font-size: clamp(2rem, 1.35rem + 2.4vw, 3.25rem);
	line-height: 1.1;
	letter-spacing: -0.015em;
	text-wrap: balance;
}

/* The title block: the facts about this guide in a closed, ink-ruled frame, as the
   corner of a drawing sheet carries them. */
#rc-kb .rc-tb {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0;
	border: 1px solid var(--ink);
	border-top-width: 2px;
}

#rc-kb .rc-tb__cell {
	padding: 0.85rem 1rem 0.9rem;
	border-top: 1px solid var(--ink);
}

#rc-kb .rc-tb__cell:first-child {
	border-top: 0;
}

#rc-kb .rc-tb__cell--author,
#rc-kb .rc-tb__cell:last-child:nth-child(even) {
	grid-column: 1 / -1;
}

#rc-kb .rc-tb__cell:nth-child(odd):not(:first-child) {
	border-left: 1px solid var(--ink);
}

#rc-kb .rc-tb dt {
	font-size: var(--label);
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--meta);
}

#rc-kb .rc-tb dd {
	margin: 0.3rem 0 0;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.35;
}

#rc-kb .rc-tb dd a {
	text-decoration-color: var(--meta);
}

#rc-kb .rc-tb dd a:hover {
	text-decoration-color: currentColor;
}

#rc-kb .rc-tb time {
	white-space: nowrap;
}

#rc-kb .rc-tb__sub {
	display: block;
	margin-top: 0.15rem;
	font-size: 0.875rem;
	font-weight: 400;
	color: var(--meta);
}

/* One row once every field has room; iPad portrait keeps the 2 x 2 grid. */
@media (min-width: 960px) {
	#rc-kb .rc-tb {
		display: flex;
	}

	#rc-kb .rc-tb__cell,
	#rc-kb .rc-tb__cell:nth-child(odd):not(:first-child) {
		flex: 1 1 0;
		min-width: 0;
		padding: 0.95rem 1.25rem 1rem;
		border-top: 0;
		border-left: 1px solid var(--ink);
	}

	#rc-kb .rc-tb__cell--author {
		flex: 2 1 0;
		border-left: 0;
	}
}

/* ---------------------------------------------------------------- guide: body grid */

#rc-kb .rc-single__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1.75rem;
}

/* Contents: a disclosure above the text on phones, a sticky rail on wide screens. */
#rc-kb .rc-toc__label {
	display: none;
}

#rc-kb .rc-toc__summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 3.25rem;
	padding: 0.7rem 1rem;
	border: 1px solid var(--ink);
	cursor: pointer;
	list-style: none;
}

#rc-kb .rc-toc__summary::-webkit-details-marker {
	display: none;
}

#rc-kb .rc-toc__summary .rc-label {
	color: var(--ink);
}

#rc-kb .rc-toc__count {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	font-size: 0.875rem;
	color: var(--meta);
}

#rc-kb .rc-toc__count::after {
	content: "";
	width: 0.5rem;
	height: 0.5rem;
	border-right: 1.5px solid var(--ink);
	border-bottom: 1.5px solid var(--ink);
	transform: translateY(-2px) rotate(45deg);
	transition: transform 0.2s ease;
}

#rc-kb .rc-toc__details[open] .rc-toc__count::after {
	transform: translateY(2px) rotate(-135deg);
}

#rc-kb .rc-toc__list {
	margin: 0;
	padding: 0.5rem 0 0.25rem;
	list-style: none;
	border: 1px solid var(--ink);
	border-top: 0;
}

#rc-kb .rc-toc__list li {
	margin: 0;
}

#rc-kb .rc-toc__list a {
	display: block;
	padding: 0.55rem 1rem;
	font-size: 0.9375rem;
	line-height: 1.4;
	text-decoration: none;
}

#rc-kb .rc-toc__list a:hover {
	text-decoration: underline;
}

#rc-kb .rc-toc__list a:focus-visible {
	outline-offset: -3px;
}

@media (min-width: 1100px) {
	#rc-kb .rc-single__body:not(.is-plain) {
		grid-template-columns: var(--rail) minmax(0, 1fr);
		align-items: start;
		gap: var(--rail-gap);
	}

	/* 4px of padding, cancelled by margin, so focus rings fit inside the scroll box. */
	#rc-kb .rc-toc {
		position: sticky;
		top: calc(var(--admin) + 1.5rem);
		max-height: calc(100vh - var(--admin) - 3rem);
		overflow-y: auto;
		overscroll-behavior: contain;
		margin-inline: -4px;
		padding-inline: 4px;
		scrollbar-width: thin;
	}

	#rc-kb .rc-toc__label {
		display: block;
		padding-bottom: 0.75rem;
		border-bottom: 1px solid var(--ink);
		color: var(--ink);
	}

	#rc-kb .rc-toc__summary {
		display: none;
	}

	#rc-kb .rc-toc__list {
		padding: 0.5rem 0 0;
		border: 0;
	}

	#rc-kb .rc-toc__list a {
		padding: 0.45rem 0 0.45rem 0.9rem;
		border-left: 2px solid transparent;
		font-size: 0.875rem;
		color: var(--meta);
	}

	#rc-kb .rc-toc__list a:focus-visible {
		outline-offset: 0;
	}

	#rc-kb .rc-toc__list a:hover {
		color: var(--ink);
		text-decoration: none;
		border-left-color: var(--rule);
	}

	#rc-kb .rc-toc__list a[aria-current] {
		border-left-color: var(--ink);
		color: var(--ink);
		font-weight: 700;
	}
}

/* ---------------------------------------------------------------- guide: prose */

#rc-kb .rc-prose {
	min-width: 0;
	margin: 0; /* GeneratePress adds 2em above .entry-content when it is not first */
	font-size: 1.0625rem;
	line-height: 1.7;
}

#rc-kb .rc-prose > * {
	max-width: var(--measure);
}

#rc-kb .rc-prose > .rc-table {
	max-width: none;
}

#rc-kb .rc-prose p {
	margin: 0 0 1.15em;
}

#rc-kb .rc-prose .rc-lead {
	font-size: 1.1875rem;
	line-height: 1.6;
}

#rc-kb .rc-prose h2 {
	margin: 2.75rem 0 0.9rem;
	font-size: var(--h2);
	line-height: 1.2;
}

#rc-kb .rc-prose h3 {
	margin: 2rem 0 0.55rem;
	font-size: 1.25rem;
	line-height: 1.3;
	letter-spacing: -0.005em;
}

#rc-kb .rc-prose :is(h2, h3) {
	scroll-margin-top: calc(var(--admin) + 1.25rem);
}

#rc-kb .rc-prose > :first-child {
	margin-top: 0;
}

#rc-kb .rc-prose strong {
	font-weight: 700;
}

#rc-kb .rc-prose :is(ul, ol) {
	margin: 0 0 1.25em;
	padding-left: 1.4em;
}

#rc-kb .rc-prose ul {
	list-style-type: square;
}

#rc-kb .rc-prose li {
	margin: 0.4em 0;
	padding-left: 0.2em;
}

#rc-kb .rc-prose li::marker {
	color: var(--ink);
}

#rc-kb .rc-prose blockquote {
	margin: 1.75em 0;
	padding: 0.2em 0 0.2em 1.25em;
	border: 0;
	border-left: 3px solid var(--ink);
	background: none;
	font-size: 1.1875rem;
	font-style: normal;
	line-height: 1.6;
}

#rc-kb .rc-prose blockquote::before {
	content: none;
}

#rc-kb .rc-prose blockquote p:last-child {
	margin-bottom: 0;
}

@media (min-width: 760px) {
	#rc-kb .rc-prose {
		font-size: 1.125rem;
		line-height: 1.68;
	}

	#rc-kb .rc-prose .rc-lead {
		font-size: 1.25rem;
	}

	#rc-kb .rc-prose h2 {
		margin-top: 3.5rem;
	}
}

/* ---------------------------------------------------------------- guide: tables */

#rc-kb .rc-table {
	margin: 1.75rem 0 2.25rem;
	overflow-x: auto;
	/* Scroll shadows: the covers move with the content, the shadows stay at the edges. */
	background:
		linear-gradient(to right, var(--paper) 30%, rgba(255, 255, 255, 0)) left center / 2.5rem 100% no-repeat local,
		linear-gradient(to left, var(--paper) 30%, rgba(255, 255, 255, 0)) right center / 2.5rem 100% no-repeat local,
		radial-gradient(farthest-side at 0 50%, rgba(0, 0, 0, 0.16), transparent) left center / 0.9rem 100% no-repeat scroll,
		radial-gradient(farthest-side at 100% 50%, rgba(0, 0, 0, 0.16), transparent) right center / 0.9rem 100% no-repeat scroll;
}

#rc-kb .rc-table:focus-visible {
	outline-offset: 4px;
}

/* Short one- and two-column lists sit on the text measure; wordy ones get the column. */
#rc-kb .rc-table[data-cols="1"]:not([data-wordy]),
#rc-kb .rc-table[data-cols="2"]:not([data-wordy]) {
	max-width: var(--measure);
}

#rc-kb .rc-table table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	border-spacing: 0;
	font-size: 0.9375rem;
	line-height: 1.5;
	font-variant-numeric: tabular-nums;
	hyphens: manual; /* no mid-word breaks in labels, headings or figures */
}

#rc-kb .rc-table :is(th, td) {
	padding: 0.8rem 1.1rem 0.8rem 0;
	border: 0;
	border-bottom: 1px solid var(--row-rule);
	background: transparent;
	font-weight: 400;
	text-align: left;
	vertical-align: top;
}

#rc-kb .rc-table :is(th, td):last-child {
	padding-right: 0;
}

/* One long cell must not starve the label column. */
#rc-kb .rc-table tr > :first-child {
	min-width: 7.5rem;
}

#rc-kb .rc-table thead th {
	padding-top: 0;
	border-bottom: 2px solid var(--ink);
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.35;
	vertical-align: bottom;
}

/* Bold means header: only real row headers are set bold. */
#rc-kb .rc-table tbody th {
	font-weight: 700;
}

#rc-kb .rc-table tbody tr:last-child :is(th, td) {
	border-bottom-color: var(--ink);
}

/* Short and numeric tables keep their grid and scroll; the first column stays put. */
#rc-kb .rc-table[data-kind="grid"] :is(th, td):first-child {
	position: sticky;
	left: 0;
	z-index: 1;
	background: var(--paper);
}

/* An edge on the pinned column while the table scrolls, so figures never read cut short. */
#rc-kb .rc-table.is-overflowing[data-kind="grid"] :is(th, td):first-child::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 1px;
	background: var(--row-rule);
	box-shadow: 2px 0 6px rgba(0, 0, 0, 0.18);
	pointer-events: none;
}

#rc-kb .rc-table[data-kind="grid"] table {
	min-width: 30rem;
}

#rc-kb .rc-table[data-kind="grid"][data-cols="4"] table {
	min-width: 38rem;
}

#rc-kb .rc-table[data-kind="grid"]:is([data-cols="5"], [data-cols="6"], [data-cols="7"], [data-cols="8"]) table {
	min-width: 44rem;
}

#rc-kb .rc-table:is([data-cols="1"], [data-cols="2"]) table {
	min-width: 0;
}

#rc-kb .rc-table[data-kind="prose"] table {
	min-width: 44rem;
}

/* Wordy tables become one stacked block per row on narrow screens,
   each value labelled with its column heading. */
@media (max-width: 699px) {
	#rc-kb .rc-table[data-kind="prose"] {
		overflow: visible;
		background: none;
	}

	#rc-kb .rc-table[data-kind="prose"] table {
		min-width: 0;
	}

	#rc-kb .rc-table[data-kind="prose"] :is(table, thead, tbody, tr, th, td) {
		display: block;
		width: 100%;
	}

	#rc-kb .rc-table[data-kind="prose"] thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}

	#rc-kb .rc-table[data-kind="prose"] tbody tr {
		padding: 0.9rem 0 0.2rem;
		border-top: 2px solid var(--ink);
	}

	#rc-kb .rc-table[data-kind="prose"] tbody :is(th, td) {
		min-width: 0;
		padding: 0 0 0.8rem;
		border: 0;
	}

	/* A row header titles its block. */
	#rc-kb .rc-table[data-kind="prose"] tbody th {
		font-size: 1.0625rem;
		font-weight: 700;
	}

	#rc-kb .rc-table[data-kind="prose"] tbody td[data-label]::before {
		content: attr(data-label);
		content: attr(data-label) / ""; /* visual only: the column header is already announced */
		display: block;
		margin-bottom: 0.15rem;
		font-size: var(--label);
		font-weight: 700;
		letter-spacing: 0.06em;
		line-height: 1.35;
		text-transform: uppercase;
		color: var(--meta);
	}
}

/* ---------------------------------------------------------------- guide: FAQ */

/* The panel spans the text column so its edges meet the tables and the author rule;
   its text keeps the prose measure. */
#rc-kb .rc-prose > .rc-faq {
	max-width: none;
	margin: 4.5rem 0 0;
	padding: clamp(1.5rem, 4vw, 2.5rem) var(--faq-pad) clamp(0.5rem, 2vw, 1.25rem);
	background: var(--panel);
}

#rc-kb .rc-faq > * {
	max-width: var(--measure);
}

#rc-kb .rc-faq > h2 {
	margin-top: 0;
}

#rc-kb .rc-faq > h3 {
	margin-top: 1.9rem;
	font-size: 1.1875rem;
}

@media (min-width: 1100px) {
	/* Hang the padding into the gutter so the answers sit on the prose edge. */
	#rc-kb .rc-prose > .rc-faq {
		margin-left: calc(-1 * var(--faq-pad));
	}
}

@media (max-width: 759px) {
	/* Phones: a full-width band, so the answers keep the full measure. */
	#rc-kb .rc-prose > .rc-faq {
		margin-inline: calc(-1 * var(--gutter));
		padding-inline: var(--gutter);
	}
}

/* ---------------------------------------------------------------- guide: end */

@media (min-width: 1100px) {
	/* Author and related guides align with the text column, not the rail. */
	#rc-kb .rc-single__end > :is(.rc-author, .rc-related) {
		margin-left: calc(var(--rail) + var(--rail-gap));
	}
}

/* A signed letter: the bio, then the signature above the printed name. */
#rc-kb .rc-author {
	margin-top: clamp(3.5rem, 6vw, 4.5rem);
	padding-top: 2rem;
	border-top: 2px solid var(--ink);
}

#rc-kb .rc-author > * {
	max-width: var(--measure);
}

#rc-kb .rc-author__bio {
	margin-top: 1rem;
	line-height: 1.65;
}

#rc-kb .rc-author__sig {
	margin-top: 1.5rem;
	font-family: var(--script);
	font-size: clamp(2.5rem, 2rem + 2vw, 3.25rem);
	font-weight: 400;
	line-height: 1.1;
	letter-spacing: 0;
	white-space: nowrap; /* a signature is one line */
	font-synthesis: none;
}

#rc-kb .rc-author__name {
	margin-top: 0.4rem;
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.3;
}

#rc-kb .rc-author__role {
	margin-top: 0.1rem;
	font-size: 0.9375rem;
	color: var(--meta);
}

#rc-kb .rc-author__links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 1.75rem;
	margin-top: 0.75rem;
}

#rc-kb .rc-author__links a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
}

#rc-kb .rc-related {
	margin-top: clamp(2.5rem, 5vw, 3.5rem);
	padding-top: 2rem;
	border-top: 1px solid var(--ink);
}

#rc-kb .rc-related .rc-entries {
	margin-top: 1.25rem;
}

#rc-kb .rc-related__all {
	margin-top: 0.5rem;
	font-size: 0.9375rem;
}

#rc-kb .rc-fab {
	position: fixed;
	right: 1rem;
	bottom: 1rem;
	z-index: 50;
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0.65rem 1.1rem;
	background: var(--ink);
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
	color: #fff;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
}

/* White ring inside a black one: visible over white text and over black panels. */
#rc-kb .rc-fab:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 0;
	box-shadow: 0 0 0 4px var(--ink);
}

#rc-kb .rc-fab[hidden] {
	display: none;
}

@media (min-width: 1100px) {
	#rc-kb .rc-fab {
		display: none;
	}
}

/* Keep focused links and line ends clear of the Contents button. */
@media (max-width: 1099px) {
	html:has(#rc-kb .rc-fab) {
		scroll-padding-bottom: 4.5rem;
	}
}

/* ---------------------------------------------------------------- fallback, modes, print */

#rc-kb .rc-fallback {
	padding-block: 3rem;
}

#rc-kb .rc-page-title {
	margin-bottom: 1.5rem;
	font-size: clamp(2rem, 1.35rem + 2.4vw, 3.25rem);
}

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

@media (prefers-reduced-motion: reduce) {
	#rc-kb *,
	#rc-kb *::before,
	#rc-kb *::after {
		transition: none !important;
	}
}

/* Windows high contrast: keep the current-section marker, the button box and the icons. */
@media (forced-colors: active) {
	#rc-kb .rc-toc__list a:not([aria-current]),
	#rc-kb .rc-rail__list a:not([aria-current]) {
		border-left-color: Canvas;
	}

	#rc-kb .rc-toc__list a[aria-current],
	#rc-kb .rc-rail__list a[aria-current] {
		border-left-color: Highlight;
	}

	#rc-kb .rc-fab {
		border: 2px solid ButtonText;
	}

	#rc-kb .rc-search .rc-search__input {
		padding-left: 1rem;
		background-image: none;
	}
}

@media print {
	.elementor-location-header,
	.elementor-location-footer,
	#rc-kb .rc-toc,
	#rc-kb .rc-rail,
	#rc-kb .rc-search,
	#rc-kb .rc-cta-band,
	#rc-kb .rc-related,
	#rc-kb .rc-fab,
	#rc-kb .rank-math-breadcrumb {
		display: none !important;
	}

	#rc-kb .rc-single__body,
	#rc-kb .rc-hub-body {
		display: block;
	}

	#rc-kb .rc-hub-mast {
		background: none;
		color: var(--ink);
	}

	#rc-kb .rc-hub-mast *,
	#rc-kb .rc-hub-intro p {
		color: var(--ink);
	}

	#rc-kb .rc-prose,
	#rc-kb .rc-prose > * {
		max-width: none;
		font-size: 11pt;
	}

	#rc-kb .rc-table {
		overflow: visible;
		background: none;
	}

	#rc-kb .rc-table table {
		min-width: 0;
	}

	#rc-kb .rc-prose > .rc-faq {
		margin: 2rem 0 0;
		padding: 0;
		background: none;
	}

	#rc-kb .rc-prose :is(h2, h3, tr) {
		break-inside: avoid;
		break-after: avoid;
	}
}
