/*
 * Long-form reading: the single post layout and everything inside post content.
 * Loaded only where the post content block renders (inlined by core when small).
 * Tokens from theme.json; contrast checked against Midnight and Midnight light (WCAG 2.2 AA).
 */

:root {
	--nirmal-line: rgba(154, 163, 189, 0.18);
	--nirmal-line-strong: rgba(154, 163, 189, 0.32);
	--nirmal-row: #1a2344; /* Midnight light + 4% Eggshell, opaque for the sticky column. */
	--nirmal-row-head: #202a4a; /* Midnight light + 8% Eggshell. */
	--nirmal-abyss: #090d22;
}

/* ---------- Post layout ---------- */

.nirmal-single {
	overflow-x: clip;
}

.nirmal-post__header {
	isolation: isolate;
	position: relative;
}

.nirmal-post__header::before {
	background: radial-gradient(circle, rgba(26, 94, 203, 0.38), transparent 66%);
	content: "";
	height: 620px;
	left: -320px;
	pointer-events: none;
	position: absolute;
	top: -340px;
	width: 620px;
	z-index: -1;
}

.nirmal-post__header > * {
	margin-block: 0;
}

.nirmal-post__header > * + * {
	margin-block-start: var(--wp--preset--spacing--50);
}

.nirmal-post .nirmal-post__title {
	font-weight: 500;
	letter-spacing: -0.015em;
	line-height: 1.06;
	text-wrap: balance;
}

.nirmal-post__media img {
	border-radius: var(--wp--custom--radius--media);
	display: block;
	height: auto;
	width: 100%;
}

.nirmal-post .nirmal-author {
	margin-top: var(--wp--preset--spacing--80);
}

/* ---------- On this page ---------- */

.nirmal-toc {
	margin: 0 auto var(--wp--preset--spacing--60);
	max-width: var(--wp--style--global--content-size, 720px);
}

.nirmal-toc__details {
	box-sizing: border-box;
	background: var(--s1);
	border: 1px solid var(--nirmal-line);
	border-radius: var(--wp--custom--radius--card);
}

.nirmal-toc__summary {
	align-items: center;
	cursor: pointer;
	display: flex;
	font-weight: 600;
	gap: var(--wp--preset--spacing--20);
	list-style: none;
	min-height: var(--wp--custom--touch-target);
	padding: 10px 20px;
}

.nirmal-toc__summary::-webkit-details-marker {
	display: none;
}

.nirmal-toc__summary::after {
	color: var(--wp--preset--color--sunset);
	content: "+";
	content: "+" / "";
	font-size: 22px;
	line-height: 1;
	margin-left: auto;
}

.nirmal-toc__details[open] .nirmal-toc__summary::after {
	content: "\2212";
	content: "\2212" / "";
}

.nirmal-toc__count {
	color: var(--mute);
	font-weight: 400;
}

.nirmal-toc__list {
	display: grid;
	font-size: var(--wp--preset--font-size--small);
	gap: 2px;
	line-height: 1.45;
	margin: 0;
	padding: 0 20px 16px 40px;
}

.nirmal-toc__list li::marker {
	color: var(--mute);
	font-variant-numeric: tabular-nums;
}

.nirmal-toc__list a {
	color: var(--mute);
	display: inline-block;
	padding-block: 6px;
	text-decoration: none;
}

.nirmal-toc__list a:hover,
.nirmal-toc__list a:focus-visible {
	color: var(--ink);
	text-decoration: underline;
}

/* Wide screens: the list sits in the left gutter and follows the reader. */
@media (min-width: 1280px) {
	.nirmal-post-body--has-toc {
		align-items: start;
		column-gap: var(--wp--preset--spacing--70);
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, var(--wp--style--global--content-size, 720px)) minmax(0, 1fr);
	}

	.nirmal-post-body--has-toc > .nirmal-toc {
		grid-column: 1;
		grid-row: 1;
		justify-self: end;
		margin: 0;
		max-height: calc(100vh - 64px);
		overflow-y: auto;
		position: sticky;
		top: 32px;
		width: 100%;
		max-width: 240px;
	}

	.nirmal-post-body--has-toc > :where(main:not(.nd)) .wp-block-post-content {
		grid-column: 2;
		grid-row: 1;
	}

	.nirmal-post-body--has-toc .nirmal-toc__details {
		background: none;
		border: 0;
		border-left: 1px solid var(--nirmal-line-strong);
		border-radius: 0;
	}

	.nirmal-post-body--has-toc .nirmal-toc__summary {
		color: var(--mute);
		font-size: 12px;
		letter-spacing: 0.08em;
		padding: 0 0 8px 16px;
		text-transform: uppercase;
	}

	.nirmal-post-body--has-toc .nirmal-toc__list {
		list-style: none;
		padding: 0 0 0 16px;
	}
}

/* Where the browser can style the details content, keep the side list open on wide screens. */
@supports selector(::details-content) {
	@media (min-width: 1280px) {
		.nirmal-post-body--has-toc .nirmal-toc__details::details-content {
			content-visibility: visible;
		}

		.nirmal-post-body--has-toc .nirmal-toc__summary {
			cursor: default;
			pointer-events: none;
		}

		.nirmal-post-body--has-toc .nirmal-toc__summary::after,
		.nirmal-post-body--has-toc .nirmal-toc__count {
			display: none;
		}
	}
}

/* ---------- Long-form content ---------- */

:where(main:not(.nd)) .wp-block-post-content {
	font-size: var(--wp--preset--font-size--body);
	line-height: 1.75;
}

:where(main:not(.nd)) .wp-block-post-content > * {
	margin-block: 0;
}

:where(main:not(.nd)) .wp-block-post-content > * + * {
	margin-block-start: 1.3em;
}

:where(main:not(.nd)) .wp-block-post-content :where(h2, h3, h4) {
	scroll-margin-top: 24px;
	text-wrap: balance;
}

:where(main:not(.nd)) .wp-block-post-content > h2 {
	font-size: clamp(28px, 3.2vw, 36px);
	letter-spacing: -0.01em;
	line-height: 1.15;
	margin-block-start: 2.2em;
}

:where(main:not(.nd)) .wp-block-post-content > h3 {
	margin-block-start: 1.9em;
}

:where(main:not(.nd)) .wp-block-post-content > h4 {
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--body);
	font-weight: 600;
	margin-block-start: 1.6em;
}

:where(main:not(.nd)) .wp-block-post-content > :where(h2, h3, h4) + * {
	margin-block-start: 0.7em;
}

:where(main:not(.nd)) .wp-block-post-content > :first-child {
	margin-block-start: 0;
}

:where(main:not(.nd)) .wp-block-post-content strong {
	color: var(--ink);
	font-weight: 600;
}

/* Answer-first opening paragraph reads as the standfirst. */
:where(main:not(.nd)) .wp-block-post-content > p:first-child {
	color: var(--ink);
	font-size: var(--wp--preset--font-size--body-l);
	line-height: 1.65;
}

:where(main:not(.nd)) .wp-block-post-content :where(ul, ol) {
	padding-left: 1.4em;
}

:where(main:not(.nd)) .wp-block-post-content li + li {
	margin-top: 0.5em;
}

:where(main:not(.nd)) .wp-block-post-content ul li::marker {
	color: var(--wp--preset--color--sunset);
}

:where(main:not(.nd)) .wp-block-post-content ol li::marker {
	color: var(--hi);
	font-weight: 600;
}

:where(main:not(.nd)) .wp-block-post-content :where(img, video) {
	border-radius: var(--wp--custom--radius--card);
	height: auto;
	max-width: 100%;
}

:where(main:not(.nd)) .wp-block-post-content figcaption,
:where(main:not(.nd)) .wp-block-post-content .wp-element-caption {
	color: var(--mute);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
	margin-top: 10px;
	text-align: left;
}

:where(main:not(.nd)) .wp-block-post-content hr,
:where(main:not(.nd)) .wp-block-post-content .wp-block-separator {
	border: 0;
	border-top: 1px solid var(--nirmal-line-strong);
	margin-block: 2.5em;
}

/* Plain links anywhere in post text on white (inside headings, strong, em or span too): brand orange is 2.1:1
 * on white, so Midnight text with the orange underline, like body links (Clarity review QA, 22 October 2026).
 * Links inside dark panels in a post (the speed test tool, cover or background blocks) keep their own colours. */
.nirmal-post.bg-white .wp-block-post-content :where(p, li, td, th, dd, figcaption, h2, h3, h4) a:where(:not([class])):not(:is(section, .has-background, .wp-block-cover) a) {
	color: var(--ink);
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--sunset);
	text-decoration-thickness: 2px;
	text-underline-offset: 0.18em;
}

/* Next step after the short answer (inc/blog.php, nirmal_insert_next_step): one quiet box, not a banner. */
:where(main:not(.nd)) .wp-block-post-content .nirmal-next-step {
	background: #FFF6EA;
	border: 1px solid rgba(254, 154, 0, 0.35);
	border-left: 3px solid var(--wp--preset--color--sunset);
	border-radius: 12px;
	margin-block: 2em;
	padding: 18px 22px;
}

:where(main:not(.nd)) .wp-block-post-content .nirmal-next-step p {
	font-size: 17px;
	line-height: 1.55;
	margin: 0;
}

:where(main:not(.nd)) .wp-block-post-content .nirmal-next-step .nirmal-next-step__links {
	font-weight: 600;
	margin-top: 8px;
}

/* Quotes: Newsreader, Orange rule (layout system callout: quote). */
:where(main:not(.nd)) .wp-block-post-content :where(blockquote, .wp-block-quote) {
	border-left: 2px solid var(--wp--preset--color--sunset);
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(21px, 2.2vw, 25px);
	line-height: 1.45;
	margin-inline: 0;
	padding-left: var(--wp--preset--spacing--50);
}

:where(main:not(.nd)) .wp-block-post-content :where(blockquote, .wp-block-quote) p {
	margin: 0;
}

:where(main:not(.nd)) .wp-block-post-content :where(blockquote, .wp-block-quote) cite {
	color: var(--mute);
	display: block;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--small);
	font-style: normal;
	margin-top: 12px;
}

:where(main:not(.nd)) .wp-block-post-content .wp-block-pullquote {
	border-block: 1px solid var(--nirmal-line-strong);
	padding-block: var(--wp--preset--spacing--60);
}

:where(main:not(.nd)) .wp-block-post-content .wp-block-pullquote blockquote {
	border: 0;
	padding: 0;
}

/* Code */
:where(main:not(.nd)) .wp-block-post-content :where(code, kbd, samp) {
	background: rgba(168, 219, 225, 0.1);
	border-radius: 6px;
	font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
	font-size: 0.88em;
	padding: 0.12em 0.4em;
}

:where(main:not(.nd)) .wp-block-post-content pre {
	background: var(--nirmal-abyss);
	border: 1px solid var(--nirmal-line);
	border-radius: var(--wp--custom--radius--card);
	font-size: 15px;
	line-height: 1.6;
	overflow-x: auto;
	padding: var(--wp--preset--spacing--50);
	tab-size: 4;
}

:where(main:not(.nd)) .wp-block-post-content pre code {
	background: none;
	font-size: inherit;
	padding: 0;
}

/* FAQ and other disclosure blocks */
:where(main:not(.nd)) .wp-block-post-content details {
	border-top: 1px solid var(--nirmal-line);
	padding-block: var(--wp--preset--spacing--40);
}

:where(main:not(.nd)) .wp-block-post-content details + details {
	margin-block-start: 0;
}

:where(main:not(.nd)) .wp-block-post-content details:last-of-type {
	border-bottom: 1px solid var(--nirmal-line);
}

:where(main:not(.nd)) .wp-block-post-content summary {
	cursor: pointer;
	font-weight: 600;
	min-height: var(--wp--custom--touch-target);
}

/* ---------- Tables ---------- */

:where(main:not(.nd)) .wp-block-post-content .wp-block-table {
	margin-inline: 0;
	overflow: visible;
}

:where(main:not(.nd)) .wp-block-post-content .wp-block-table :is(thead, tfoot) {
	border: 0;
}

.nirmal-table-scroll {
	box-sizing: border-box;
	/* Scroll shadows: the edge darkens only while there is more table to see. */
	background:
		linear-gradient(to right, var(--s1) 30%, transparent) left center / 40px 100% no-repeat local,
		linear-gradient(to left, var(--s1) 30%, transparent) right center / 40px 100% no-repeat local,
		radial-gradient(farthest-side at 100% 50%, rgb(var(--fg-rgb) / .25), transparent) right center / 16px 100% no-repeat scroll,
		var(--s1);
	border: 1px solid var(--nirmal-line);
	border-radius: var(--wp--custom--radius--card);
	max-width: 100%;
	overflow-x: auto;
	overscroll-behavior-x: contain;
}

.nirmal-table-scroll:focus-visible {
	outline: var(--wp--custom--focus--width) solid var(--wp--preset--color--eggshell);
	outline-offset: var(--wp--custom--focus--offset);
}

:where(main:not(.nd)) .wp-block-post-content .nirmal-table-scroll table,
:where(main:not(.nd)) .wp-block-post-content table {
	border: 0;
	border-collapse: separate;
	border-spacing: 0;
	font-size: 15px;
	line-height: 1.55;
	margin: 0;
	width: 100%;
}

:where(main:not(.nd)) .wp-block-post-content .nirmal-table-scroll :is(th, td) {
	border: 0;
	border-bottom: 1px solid var(--nirmal-line);
	min-width: 8.5rem;
	padding: 12px 16px;
	text-align: left;
	vertical-align: top;
}

:where(main:not(.nd)) .wp-block-post-content .nirmal-table-scroll thead :is(th, td) {
	background: var(--nirmal-row-head);
	border-bottom: 1px solid var(--nirmal-line-strong);
	color: var(--ink);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.01em;
}

:where(main:not(.nd)) .wp-block-post-content .nirmal-table-scroll tbody tr:nth-child(even) > * {
	background: rgba(168, 219, 225, 0.04);
}

:where(main:not(.nd)) .wp-block-post-content .nirmal-table-scroll tbody tr:last-child > * {
	border-bottom: 0;
}

/* Wide tables (six or more columns, mostly figures): the 8.5rem minimum on every cell forced a sideways scroll
   inside the 860px article column (research post "Who asks what?", Nirmal 27 October 2026). Figure columns may
   shrink; the first column keeps its minimum and the last, usually the descriptive one, gets more room. Phones
   still scroll when the table cannot fit. */
:where(main:not(.nd)) .wp-block-post-content .nirmal-table-scroll:has(tr > :nth-child(6)) :is(th, td) {
	min-width: 0;
	padding: 12px;
}

:where(main:not(.nd)) .wp-block-post-content .nirmal-table-scroll:has(tr > :nth-child(6)) :is(th, td):first-child {
	min-width: 7.5rem;
	padding-left: 16px;
}

:where(main:not(.nd)) .wp-block-post-content .nirmal-table-scroll:has(tr > :nth-child(6)) :is(th, td):last-child {
	min-width: 13rem;
	padding-right: 16px;
}

:where(main:not(.nd)) .wp-block-post-content .nirmal-table-scroll tbody :is(th, td:first-child) {
	color: var(--ink);
	font-weight: 600;
}

:where(main:not(.nd)) .wp-block-post-content caption {
	caption-side: top;
	color: var(--mute);
	font-size: var(--wp--preset--font-size--small);
	padding: 12px 16px 0;
	text-align: left;
}

/* Small screens: keep the row label in view while the rest scrolls. */
@media (max-width: 720px) {
	:where(main:not(.nd)) .wp-block-post-content .nirmal-table-scroll table {
		font-size: 14px;
	}

	/* Specific enough (0,5,4) to beat the generic transparent cell reset in components.css (0,4,4), which let data
	   scroll visibly under the sticky labels (2026-10-22, IR-023 F10). */
	:where(main:not(.nd)) .wp-block-post-content .nirmal-table-scroll :is(th, td):first-child,
	:where(main:not(.nd)) .wp-block-post-content figure.wp-block-table .nirmal-table-scroll tbody tr:nth-child(n) :is(th, td):first-child {
		background: var(--s1);
		box-shadow: inset -1px 0 0 var(--nirmal-line-strong);
		left: 0;
		max-width: 11rem;
		min-width: 7.5rem;
		position: sticky;
		z-index: 1;
	}

	:where(main:not(.nd)) .wp-block-post-content .nirmal-table-scroll tbody tr:nth-child(even) > :first-child,
	:where(main:not(.nd)) .wp-block-post-content figure.wp-block-table .nirmal-table-scroll tbody tr:nth-child(even):nth-child(n) > :is(th, td):first-child {
		background: var(--nirmal-row);
	}

	:where(main:not(.nd)) .wp-block-post-content .nirmal-table-scroll thead :is(th, td):first-child {
		background: var(--nirmal-row-head);
	}
}

/* ---------- SimpleTOC block (older posts) ---------- */

:where(main:not(.nd)) .wp-block-post-content .wp-block-simpletoc-toc {
	background: var(--s1);
	border: 1px solid var(--nirmal-line);
	border-radius: var(--wp--custom--radius--card);
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
}

:where(main:not(.nd)) .wp-block-post-content .wp-block-simpletoc-toc .simpletoc-title {
	color: var(--mute);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.4;
	margin: 0 0 var(--wp--preset--spacing--30);
	text-transform: uppercase;
}

:where(main:not(.nd)) .wp-block-post-content .simpletoc-list {
	display: grid;
	font-size: var(--wp--preset--font-size--small);
	gap: 2px;
	line-height: 1.45;
	margin: 0;
	padding-left: 1.2em;
}

:where(main:not(.nd)) .wp-block-post-content .simpletoc-list li + li {
	margin-top: 0;
}

:where(main:not(.nd)) .wp-block-post-content .simpletoc-list ul,
:where(main:not(.nd)) .wp-block-post-content .simpletoc-list ol {
	margin-top: 2px;
}

:where(main:not(.nd)) .wp-block-post-content .simpletoc-list a {
	color: var(--mute);
	display: inline-block;
	padding-block: 5px;
	text-decoration: none;
}

:where(main:not(.nd)) .wp-block-post-content .simpletoc-list a:hover,
:where(main:not(.nd)) .wp-block-post-content .simpletoc-list a:focus-visible {
	color: var(--ink);
	text-decoration: underline;
}

/* ==========================================================================
 * Blog post in the approved article design (prototype article-research, 2026-10-20).
 * The post content and its reading column stay as they were (URLs, headings, TOC and tables unchanged);
 * the header widens to the site container, the cover gets the design's rounded frame, and the byline,
 * author box, related posts and closing call to action take the design's look.
 * ========================================================================== */
/* Title band (dark, full width): content aligns to the site container, not the reading column. */
.nirmal-single .nirmal-post__band { padding-inline: max(var(--gutter), calc((100% - var(--cw)) / 2)) !important; }
.nirmal-single .nirmal-post__header > * { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; text-align: left; }
.nirmal-single .nirmal-post__header::before { display: none; }
.nirmal-single .nirmal-post__title { font-size: clamp(34px, 4.44vw, calc(64px * var(--ts, 1))) !important; line-height: 1.05; max-width: calc(940px * var(--ts, 1)) !important; text-wrap: balance; }
.nirmal-single .nirmal-post__media { margin-top: clamp(32px, 3.3vw, 48px) !important; }
.nirmal-single .nirmal-post__media img { border-radius: 32px; width: 100%; height: auto; background: #121216; }
.nirmal-single .nirmal-byline { display: flex; align-items: center; gap: 14px; margin-top: 28px !important; }
.nirmal-single .nirmal-byline__photo { width: 52px; height: 52px; border-radius: 50%; border: 2px solid var(--wp--preset--color--sunset); object-fit: cover; flex: none; }
.nirmal-single .nirmal-byline__author { margin: 0; font-weight: 600; font-size: 16px; }
.nirmal-single .nirmal-byline__author a { color: var(--ink); text-decoration: none; }
.nirmal-single .nirmal-byline__meta { margin: 2px 0 0; color: var(--mute); font-size: 14px; }
.nirmal-single .nirmal-byline__sep { margin: 0 6px; }

/* Author box, related posts, closing CTA */
.nirmal-single .nirmal-author { background: var(--s1); border: 1px solid rgb(var(--fg-rgb) / .07); border-radius: 28px; padding: clamp(24px, 3.3vw, 48px); }
.nirmal-single .nirmal-author__eyebrow { display: none; }
/* Wider author box (Nirmal, 27 October 2026): spans the post body (contents plus text column) so the bio runs
   in fewer lines. The higher specificity beats the 760px constrained-layout width. */
.nirmal-single .nirmal-post .nirmal-author { max-width: 1164px; }
.nirmal-single .nirmal-author__bio { max-width: none; }
.nirmal-single .nirmal-author__name { font: 600 22px/1.3 Inter, sans-serif; letter-spacing: 0; }
.nirmal-single .nirmal-related__heading { font-size: clamp(32px, 3.3vw, calc(48px * var(--ts, 1))); }

/* Related posts band: hidden when the post has no related posts, so no empty grey band shows. */
.nirmal-single .nirmal-post__more:not(:has(.nirmal-related__heading)) { display: none; }

/* ==========================================================================
 * Post reading layout (Nirmal, 2026-10-21): small cover beside the title, table of contents on the left
 * of every post, a wider reading column and larger body text.
 * ========================================================================== */
.nirmal-single .nirmal-post__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 360px); gap: clamp(28px, 4vw, 64px); align-items: center; }
.nirmal-single .nirmal-post__intro > * { margin-block: 0; }
.nirmal-single .nirmal-post__intro > * + * { margin-block-start: var(--wp--preset--spacing--50); }
.nirmal-single .nirmal-post__head .nirmal-post__media { margin: 0 !important; width: 100%; }
.nirmal-single .nirmal-post__head .nirmal-post__media img { border-radius: 24px; aspect-ratio: 4 / 3; object-fit: cover; box-shadow: 0 24px 60px -30px rgb(0 0 0 / .6); }
@media (max-width: 900px) {
	.nirmal-single .nirmal-post__head { grid-template-columns: minmax(0, 1fr); } /* minmax: a no-wrap breadcrumb pushed the column to 418px on a 375px phone */
	.nirmal-single .nirmal-post__head .nirmal-post__media { max-width: 420px; }
	.nirmal-single .nirmal-breadcrumbs__item { min-width: 0; }
	.nirmal-single .nirmal-breadcrumbs__current { overflow: hidden; text-overflow: ellipsis; min-width: 0; }
}

/* Reading column: 860px of text when there is no table of contents. With one (wide screens), the table of
   contents starts at the title's left edge and the text takes the rest of the row, up to 1040px (28 Oct 2026). */
.nirmal-single .wp-block-post-content { --wp--style--global--content-size: 860px; }
.nirmal-single .wp-block-post-content :where(p, li, dd, blockquote p) { font-size: clamp(17px, 1.25vw, 19px); line-height: 1.75; }
.nirmal-single .wp-block-post-content :where(td, th, figcaption) { font-size: 16px; }
@media (min-width: 1280px) {
	/* Same side margin as the title band above, so the table of contents lines up with the title at every width. */
	.nirmal-single .nirmal-post:has(> .nirmal-post-body--has-toc) { padding-inline: max(var(--gutter), calc((100% - var(--cw)) / 2)) !important; }
	.nirmal-single .nirmal-post-body--has-toc { max-width: none !important; margin-inline: 0 !important; grid-template-columns: 240px minmax(0, 1040px); justify-content: start; column-gap: 56px; }
	.nirmal-single .nirmal-post-body--has-toc > .nirmal-toc { justify-self: stretch; }
	.nirmal-single .nirmal-post-body--has-toc > .wp-block-post-content { grid-column: 2; grid-row: 1; }
	.nirmal-single .nirmal-post-body--has-toc .wp-block-post-content > * { max-width: none; }
}

/* Small tool screenshots kept from the original speed-test post: natural size, framed, never stretched. */
.nirmal-single .wp-block-image.nirmal-tool-shot { margin-block: 20px 28px; }
.nirmal-single .wp-block-image.nirmal-tool-shot img { width: auto; max-width: min(320px, 100%); height: auto; border-radius: 14px; border: 1px solid rgb(var(--fg-rgb) / .12); background: #fff; padding: 10px; }
/* Definition pages carry the post byline under the hero intro (inc/pages.php, 25 Oct 2026). */
.nirmal-landing--definition .nirmal-byline { display: flex; align-items: center; gap: 14px; margin-top: 24px; }
.nirmal-landing--definition .nirmal-byline__photo { width: 52px; height: 52px; border-radius: 50%; border: 2px solid var(--wp--preset--color--sunset); object-fit: cover; flex: none; }
.nirmal-landing--definition .nirmal-byline__author { margin: 0; font-weight: 600; font-size: 16px; }
.nirmal-landing--definition .nirmal-byline__author a { color: inherit; text-decoration: none; }
.nirmal-landing--definition .nirmal-byline__meta { margin: 2px 0 0; color: var(--mute); font-size: 14px; }
