/* Spartan AI redesign: blog, archives, search, 404, single posts.
   Reads the variables from sprt-00-tokens.css. Everything is scoped under body.sprt.
   Shared pieces are left to their owners: the page-title banner, captions, running text and
   testimonial cards live in sprt-30-components.css, fields and search forms in
   sprt-50-footer-forms.css. This file only adds what the blog templates need on top. */

/* ==========================================================================
   1. Page-title banner: blog additions (base lives in sprt-30-components.css)
   ========================================================================== */

/* post meta under the title */
body.sprt .firwl-master .firwl-pageheader .firwl-meta {
	line-height: 1.7;
}

body.sprt .firwl-master .firwl-pageheader .firwl-meta__dets {
	padding: 0;
	overflow: visible;
}

body.sprt .firwl-master .firwl-pageheader .firwl-meta__dets i {
	margin-left: 0;
	margin-right: 4px;
	opacity: 1;
}

body.sprt .firwl-master .firwl-pageheader .firwl-meta__dets i ~ i {
	margin-left: 14px;
}

/* single post: categories on their own line above author and date */
body.sprt.single .firwl-master .firwl-pageheader .firwl-meta .firwl-p-catz {
	display: block;
	margin-bottom: 0.35rem;
	top: 0;
}

body.sprt.single .firwl-master .firwl-pageheader .firwl-meta .firwl-p-auth {
	margin-right: 1.25rem;
	padding-left: 0;
}

body.sprt.single .firwl-master .firwl-pageheader .firwl-meta :is(.firwl-p-auth, .firwl-meta__dets) {
	vertical-align: top;
}

/* testimonial single: the quote is the headline */
body.sprt.single .firwl-master .firwl-pageheader__testimonial__quote h1.firwl-pagecaption {
	font-style: normal;
	font-size: var(--sprt-fs-h2);
	max-width: 30ch;
	line-height: 1.15;
}

/* search results: the search field lines up with the title
   (the wrapper is the element the parent centres with auto margins) */
body.sprt .firwl-master .firwl-pageheader .firwl-pageheader__search {
	margin-left: 0;
	margin-right: auto;
	max-width: 26rem;
}

body.sprt#firwlBody #firwlMaster .firwl-pageheader__search .firwl-searchform form {
	margin-left: 0;
	margin-right: 0;
}

/* ==========================================================================
   3. Sections and containers on blog templates
   ========================================================================== */

body.sprt:is(.single, .archive, .search, .blog, .error404, [class*="page-template-archive"]) .firwl-master > .firwl-section,
body.sprt:is(.single, .archive, .search, .blog, .error404, [class*="page-template-archive"]) .firwl-master > .firwl-section.firwl-paper {
	background: var(--sprt-paper);
	color: var(--sprt-ink);
	padding: clamp(3rem, 6vw, 5rem) 0;
}

/* single: a reading column */
body.sprt.single .firwl-master > .firwl-section > .firwl-container {
	max-width: calc(46rem + 2 * var(--sprt-gutter));
}

body.sprt.single .firwl-master.firwl-single__sidebar > .firwl-section > .firwl-container {
	max-width: calc(var(--sprt-maxw) + 2 * var(--sprt-gutter));
}

body.sprt.single .firwl-master > .firwl-section + .firwl-section {
	border-top: 1px solid var(--sprt-line);
}

/* wider gap between the list and the sidebar on desktop */
@media (min-width: 1201px) {
	body.sprt:is(.single, .archive, .search, .blog, [class*="page-template-archive"]) .firwl-master > .firwl-section .firwl-row > .firwl-l8 {
		padding-right: clamp(2rem, 4vw, 4rem);
	}
}

/* ==========================================================================
   4. Shared post-card parts: picture, meta, categories, title
   ========================================================================== */

/* The picture is a clean framed panel; date and view count move out of the picture
   into a quiet row underneath it (the stock dark veil and overlaid text are dropped). */
body.sprt .firwl-post:not(.firwl-post__card) .firwl-post__header {
	clip-path: none;
	border-radius: 0;
	background: none;
	box-shadow: none;
	overflow: visible;
	padding-top: 0;
	min-height: 0;
	color: var(--sprt-ink-soft);
}

body.sprt .firwl-post:not(.firwl-post__card) .firwl-post__header > .firwl-bgimg {
	position: relative;
	top: auto;
	left: auto;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	border: 1px solid var(--sprt-line);
	border-radius: var(--sprt-radius-panel);
	background: var(--sprt-surface);
	overflow: hidden;
	box-sizing: border-box;
}

body.sprt .firwl-post:not(.firwl-post__card) .firwl-post__header > .firwl-bgimg img,
body.sprt .firwl-post.firwl-post__std .firwl-post__header > .firwl-bgimg img:first-child {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	filter: none;
	transition: transform 0.4s ease;
}

body.sprt .firwl-post:not(.firwl-post__card):hover .firwl-post__header > .firwl-bgimg img {
	transform: scale(1.02);
}

body.sprt .firwl-post:not(.firwl-post__card) .firwl-post__header .firwl-post__headercont {
	position: static;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 4px 16px;
	width: auto;
	height: auto;
	padding: 10px 2px 0;
	background: none;
	color: var(--sprt-ink-soft);
}

body.sprt .firwl-post .firwl-post__header .firwl-hov {
	display: none;
}

body.sprt .firwl-post .firwl-meta,
body.sprt .firwl-post .firwl-itemmetas,
body.sprt .firwl-post .firwl-itemmetas > li {
	font-family: var(--sprt-mono);
	font-weight: 400;
	font-size: 0.75rem;
	letter-spacing: 0;
	text-transform: none;
}

body.sprt .firwl-post:not(.firwl-post__card) .firwl-post__header .firwl-date.firwl-meta,
body.sprt .firwl-post:not(.firwl-post__card) .firwl-post__header .firwl-itemmetas {
	float: none;
	width: auto;
	max-width: none;
	max-height: none;
	margin: 0;
	overflow: visible;
	line-height: 1.5;
	color: var(--sprt-ink-soft);
	white-space: nowrap;
}

body.sprt .firwl-post:not(.firwl-post__card) .firwl-post__header .firwl-itemmetas > li {
	color: var(--sprt-ink-soft);
	line-height: 1.5;
}

body.sprt .firwl-post:not(.firwl-post__card) .firwl-post__header .firwl-itemmetas i {
	opacity: 1;
}

/* hover / focus actions (like, open, share): small round chips on the picture corner */
body.sprt .firwl-post:not(.firwl-post__card) .firwl-post__header .firwl-actions {
	top: 12px;
	right: 12px;
	left: auto;
	width: auto;
	height: auto;
	margin: 0;
	display: flex;
	gap: 6px;
	align-items: center;
}

body.sprt .firwl-post:not(.firwl-post__card) .firwl-post__header .firwl-actions :is(.firwl-a0, .firwl-a1, .firwl-a2) {
	position: static;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	min-width: 40px;
	height: 40px;
	padding: 0 10px;
	box-sizing: border-box;
	line-height: 1;
	font-size: 16px;
	border: 1px solid var(--sprt-line);
	border-radius: var(--sprt-radius-pill);
	background: var(--sprt-surface);
	color: var(--sprt-ink);
	text-shadow: none;
	clip-path: none;
	transform: none;
	margin: 0;
	text-decoration: none;
}

/* stock hover behaviour: a tall centred action block, a black veil over the picture,
   a duotone tint, and the like / share chips revealed only on a second hover */
body.sprt .firwl-post:not(.firwl-post__card) .firwl-post__header .firwl-actions {
	min-height: 0;
}

body.sprt .firwl-post:not(.firwl-post__card) .firwl-post__header .firwl-actions__cont:not(.firwl-active):hover {
	position: static;
	height: auto;
	background: none;
}

body.sprt .firwl-post:not(.firwl-post__card) .firwl-post__header .firwl-actions :is(.firwl-a1, .firwl-a2) {
	opacity: 1;
}

body.sprt .firwl-post:not(.firwl-post__card) .firwl-post__header .firwl-duotone::before,
body.sprt .firwl-post:not(.firwl-post__card) .firwl-post__header .firwl-duotone::after {
	display: none;
}

body.sprt .firwl-post:not(.firwl-post__card) .firwl-post__header .firwl-actions :is(.firwl-a0, .firwl-a1, .firwl-a2):hover {
	background: var(--sprt-ink);
	border-color: var(--sprt-ink);
	color: var(--sprt-on-ink);
}

body.sprt .firwl-post:not(.firwl-post__card) .firwl-post__header .firwl-actions i {
	margin: 0;
	height: auto;
	font-size: 16px;
	line-height: 1;
}

body.sprt .firwl-post:not(.firwl-post__card) .firwl-post__header .firwl-actions .firwl-a0 {
	width: 40px;
	padding: 0;
}

body.sprt .firwl-post:not(.firwl-post__card) .firwl-post__header .firwl-actions .firwl-a1 .qtli:not(.count) {
	display: flex;
	align-items: center;
	height: auto;
}

body.sprt .firwl-post:not(.firwl-post__card) .firwl-post__header .firwl-actions .qtli {
	font-family: var(--sprt-mono);
	font-size: 0.75rem;
	line-height: 1;
}

body.sprt .firwl-post .firwl-post__header:focus-within .firwl-actions {
	opacity: 1;
}

body.sprt .firwl-post:not(.firwl-post__card) .firwl-actions__cont.firwl-active {
	height: auto;
	aspect-ratio: 16 / 9;
	border-radius: var(--sprt-radius-panel);
	overflow: hidden;
}

body.sprt .firwl-post .firwl-sharebox {
	background: var(--sprt-ink);
	color: var(--sprt-on-ink);
}

/* Collapsed (scaled to 0) share overlay: keep its links out of the tab order */
body.sprt .firwl-post .firwl-actions__cont:not(.firwl-active) .firwl-sharebox {
	visibility: hidden;
}

body.sprt .firwl-post .firwl-sharebox a.firwl-btn {
	clip-path: none;
	border-radius: var(--sprt-radius-pill);
	background: none;
	color: var(--sprt-on-ink);
}

/* categories: plain mono text instead of the cut gradient bar */
body.sprt .firwl-meta .firwl-p-catz {
	padding: 0;
	overflow: visible;
	filter: none;
	font-family: var(--sprt-mono);
	line-height: 1.5;
	white-space: normal;
}

body.sprt .firwl-meta .firwl-p-catz::after,
body.sprt .firwl-meta .firwl-p-catz::before {
	display: none;
}

body.sprt .firwl-meta .firwl-p-catz a,
body.sprt .firwl-meta .firwl-p-catz a:hover {
	color: var(--sprt-violet-deep);
	text-decoration: none;
}

body.sprt .firwl-meta .firwl-p-catz a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Touch and narrow screens: each category becomes its own 40px-tall target
   instead of tightly wrapped inline text */
@media (max-width: 1024px), (pointer: coarse) {
	body.sprt .firwl-meta .firwl-p-catz {
		margin: -0.5rem 0;
	}

	body.sprt .firwl-meta .firwl-p-catz a {
		display: inline-block;
		min-height: 40px;
		margin-right: 0.6em; /* inline-block drops the space before the next "+" */
		padding: 0.6875rem 0;
		line-height: 1.3;
		vertical-align: top;
	}
}

body.sprt .firwl-meta .firwl-p-auth {
	color: var(--sprt-ink-soft);
	padding-left: 0;
}

body.sprt .firwl-post .firwl-post__content .firwl-meta {
	margin: 0 0 0.6rem;
	line-height: 1.5;
	opacity: 1;
	color: var(--sprt-ink-soft);
}

body.sprt .firwl-post .firwl-post__content .firwl-meta .firwl-p-catz {
	display: block;
}

body.sprt .firwl-post .firwl-post__title {
	font-family: var(--sprt-serif);
	font-weight: 400;
	letter-spacing: -0.02em;
	line-height: 1.15;
	text-transform: none;
	color: var(--sprt-ink);
	margin: 0 0 0.6rem;
}

body.sprt .firwl-post .firwl-post__title a {
	color: inherit;
	background-image: none;
	padding-right: 0;
	text-decoration: underline;
	text-decoration-color: transparent;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
	transition: text-decoration-color 0.2s !important;
}

body.sprt .firwl-post .firwl-post__title a:hover {
	text-decoration-color: currentColor;
}

body.sprt .firwl-post .firwl-excerpt,
body.sprt .firwl-post .firwl-excerpt p,
body.sprt .firwl-post .firwl-post__ex,
body.sprt .firwl-post .firwl-post__ex p {
	color: var(--sprt-ink-soft);
	font-size: var(--sprt-fs-body);
	line-height: 1.6;
	margin: 0;
}

/* the parent clips excerpts with a max-height computed for its own line height,
   which cuts the last line in half here: clamp by lines instead */
body.sprt .firwl-post .firwl-post__ex p {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
	max-height: none;
	overflow: hidden;
}

/* ==========================================================================
   5. News list (standard post): picture left, text right, hairline between
   ========================================================================== */

body.sprt .firwl-post.firwl-post__std {
	max-width: none; /* the parent caps it at 768px, short of the column on tablets */
	margin: 0;
	padding: clamp(1.75rem, 3vw, 2.5rem) 0;
	border-top: 1px solid var(--sprt-line);
}

body.sprt .firwl-col > .firwl-post.firwl-post__std:first-child {
	padding-top: 0;
	border-top: 0;
}

body.sprt .firwl-post.firwl-post__std.sticky {
	clip-path: none;
	background: none;
}

body.sprt .firwl-post.firwl-post__std .firwl-post__content {
	padding: 1.25rem 0 0;
}

body.sprt .firwl-post.firwl-post__std .firwl-post__title {
	font-size: var(--sprt-fs-h3);
}

body.sprt .firwl-post.firwl-post__std .firwl-excerpt p {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
	overflow: hidden;
}

@media (min-width: 768px) {
	body.sprt .firwl-post.firwl-post__std.firwl-has-thumb {
		display: grid;
		grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
		gap: clamp(1.5rem, 3vw, 2.5rem);
		align-items: start;
	}

	body.sprt .firwl-post.firwl-post__std.firwl-has-thumb .firwl-post__content {
		padding-top: 0.25rem;
	}
}

/* ==========================================================================
   6. Horizontal card (previous post) and vertical cards (similar posts)
   ========================================================================== */

body.sprt .firwl-post.firwl-post__hor {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
	gap: clamp(1.25rem, 3vw, 2.5rem);
	align-items: start;
	margin: 0;
}

body.sprt .firwl-post.firwl-post__hor .firwl-post__header,
body.sprt .firwl-post.firwl-post__hor .firwl-post__content {
	float: none;
	width: auto;
}

body.sprt .firwl-post.firwl-post__hor .firwl-post__header > .firwl-bgimg,
body.sprt .firwl-post.firwl-post__ver .firwl-post__header > .firwl-bgimg {
	aspect-ratio: 4 / 3;
}

body.sprt .firwl-post.firwl-post__hor .firwl-post__content {
	padding: 0.25rem 0 0;
}

body.sprt .firwl-post.firwl-post__hor .firwl-post__title,
body.sprt .firwl-post.firwl-post__ver .firwl-post__title {
	font-size: var(--sprt-fs-h3);
}

body.sprt .firwl-post.firwl-post__ver .firwl-post__content {
	padding: 1rem 0 0;
}

body.sprt .firwl-post.firwl-post__ver .firwl-post__content::after {
	display: none;
}

/* similar posts stack in one column on phones: keep the cards apart */
@media (max-width: 600px) {
	body.sprt .firwl-relatedpost-section .firwl-col + .firwl-col {
		margin-top: 2rem;
	}
}

@media (max-width: 599px) {
	body.sprt .firwl-post.firwl-post__hor {
		grid-template-columns: minmax(0, 1fr);
	}

	body.sprt .firwl-post.firwl-post__hor .firwl-post__header > .firwl-bgimg {
		aspect-ratio: 16 / 9;
	}
}

/* ==========================================================================
   7. Search results
   ========================================================================== */

body.sprt .firwl-post.firwl-post__search {
	margin: 0;
	padding: 1.75rem 0;
	border-top: 1px solid var(--sprt-line);
	max-width: 52rem;
}

body.sprt .firwl-container > .firwl-post.firwl-post__search:first-child {
	padding-top: 0;
	border-top: 0;
}

body.sprt .firwl-post.firwl-post__search::after {
	display: none;
}

body.sprt .firwl-post.firwl-post__search .firwl-post__search__c {
	float: none;
	width: auto;
}

body.sprt .firwl-post.firwl-post__search .firwl-thumb {
	clip-path: none;
	border-radius: var(--sprt-radius-control);
}

body.sprt .firwl-post.firwl-post__search .firwl-meta {
	opacity: 1;
	color: var(--sprt-ink-soft);
	margin: 0 0 0.5rem;
}

body.sprt .firwl-post.firwl-post__search h3 {
	font-size: var(--sprt-fs-h3);
	margin: 0 0 0.5rem;
}

body.sprt .firwl-post.firwl-post__search h3 a {
	color: var(--sprt-ink);
	text-decoration: underline;
	text-decoration-color: transparent;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

body.sprt .firwl-post.firwl-post__search h3 a:hover {
	text-decoration-color: currentColor;
}

body.sprt .firwl-post.firwl-post__search p:not(.firwl-meta) {
	color: var(--sprt-ink-soft);
	line-height: 1.6;
	margin: 0;
}

/* excerpts are cut from running text: stray line breaks only make ragged lines */
body.sprt .firwl-post.firwl-post__search p br,
body.sprt .firwl-post .firwl-excerpt br {
	display: none;
}

/* ==========================================================================
   8. Picture card (sidebar "Featured post" widget)
   ========================================================================== */

body.sprt .firwl-post.firwl-post__card{
	clip-path: none;
	border-radius: var(--sprt-radius-panel);
	overflow: hidden;
	background: var(--sprt-ink);
	color: var(--sprt-on-ink);
	box-shadow: none;
}

body.sprt .firwl-post.firwl-post__card .firwl-bgimg{
	opacity: 1;
}

body.sprt .firwl-post.firwl-post__card .firwl-post__headercont{
	background: linear-gradient(to bottom, rgba(22, 10, 51, 0.92) 0%, rgba(22, 10, 51, 0.7) 26%, rgba(22, 10, 51, 0.92) 52%, rgba(22, 10, 51, 0.97) 100%);
	text-shadow: none;
	padding: 20px 22px;
}

body.sprt .firwl-post.firwl-post__card .firwl-hov{
	display: none;
}

body.sprt .firwl-post.firwl-post__card .firwl-post__card__cap{
	left: 22px;
	right: 22px;
	bottom: 20px;
	padding: 0;
}

body.sprt .firwl-post.firwl-post__card .firwl-meta,
body.sprt .firwl-post.firwl-post__card .firwl-meta a{
	color: var(--sprt-on-ink-soft);
	opacity: 1;
}

body.sprt .firwl-post.firwl-post__card .firwl-meta .firwl-p-catz a {
	color: var(--sprt-lilac);
}

/* the card is ink: the violet ring is too dim on it */
body.sprt .firwl-post.firwl-post__card :focus-visible {
	outline-color: var(--sprt-lilac) !important;
}

body.sprt .firwl-post.firwl-post__card .firwl-post__title,
body.sprt .firwl-post.firwl-post__card .firwl-post__title a {
	font-family: var(--sprt-serif);
	font-size: 1.375rem;
	color: var(--sprt-on-ink);
	margin: 6px 0;
}

body.sprt .firwl-post.firwl-post__card .firwl-meta .firwl-p-auth,
body.sprt .firwl-post.firwl-post__card .firwl-date.firwl-meta {
	color: var(--sprt-on-ink-soft);
}

body.sprt .firwl-post.firwl-post__card .firwl-post__card__exc {
	color: var(--sprt-on-ink-soft);
	line-height: 1.45;
	font-size: var(--sprt-fs-small);
}

/* ==========================================================================
   9. Pagination
   ========================================================================== */

/* the wrapper is a grid row with negative side margins, so the hairline sits on the
   inner element to line up with the list */
body.sprt .firwl-wp-pagination {
	display: block;
	margin: clamp(2rem, 4vw, 3rem) 0 0;
	padding-top: 0;
	border-top: 0;
}

/* below the desktop breakpoint the sidebar follows the list */
@media (max-width: 1200px) {
	body.sprt .firwl-wp-pagination {
		margin-bottom: clamp(2.5rem, 6vw, 4rem);
	}
}

body.sprt .firwl-wp-pagination > .firwl-col {
	padding-left: 0;
	padding-right: 0;
}

/* search results: the stock template offsets the pagination column */
body.sprt.search .firwl-master > .firwl-section .firwl-row > .firwl-col.firwl-offset-l2 {
	margin-left: 0;
	width: 100%;
	max-width: calc(52rem + 30px);
}

body.sprt .firwl-section .firwl-pagination {
	padding-top: 1.5rem;
	border-top: 1px solid var(--sprt-line);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

body.sprt .firwl-section .firwl-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: auto;
	min-width: 44px;
	height: 44px;
	padding: 0 14px;
	box-sizing: border-box;
	margin: 0;
	float: none;
	border: 1px solid var(--sprt-line);
	border-radius: var(--sprt-radius-pill);
	background: none;
	color: var(--sprt-ink);
	font-family: var(--sprt-mono);
	font-size: var(--sprt-fs-small);
	letter-spacing: 0;
	text-transform: none;
	text-decoration: none;
	line-height: 1;
	clip-path: none;
	transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}

body.sprt .firwl-section .firwl-pagination .page-numbers.current {
	background: var(--sprt-ink);
	border-color: var(--sprt-ink);
	color: var(--sprt-on-ink);
}

body.sprt .firwl-section .firwl-pagination a.page-numbers:hover {
	border-color: var(--sprt-ink);
}

body.sprt .firwl-section .firwl-pagination .page-numbers.dots {
	border-color: transparent;
	min-width: 0;
	padding: 0 4px;
}

/* the inner spans carry the stock button skin: flatten them */
body.sprt .firwl-section .firwl-pagination .page-numbers .firwl-btn,
body.sprt .firwl-section .firwl-pagination .page-numbers .firwl-num {
	all: unset;
	display: inline-flex;
	align-items: center;
	font: inherit;
	color: inherit;
}

body.sprt .firwl-section .firwl-pagination .page-numbers .firwl-btn::before,
body.sprt .firwl-section .firwl-pagination .page-numbers .firwl-btn::after {
	display: none;
}

body.sprt .firwl-section .firwl-pagination .page-numbers i {
	font-size: 18px;
	margin: 0;
	line-height: 1;
}

/* ==========================================================================
   10. Spacers between the parts of a single post
   ========================================================================== */

body.sprt:is(.single, .archive, .search, .blog, [class*="page-template-archive"]) .firwl-master hr.firwl-spacer-m {
	border: 0;
	border-top: 1px solid var(--sprt-line);
	height: 0;
	margin: clamp(2.5rem, 5vw, 4rem) 0;
	background: none;
	opacity: 1;
}

body.sprt.single .firwl-master :is(.firwl-previouspost-section, .firwl-relatedpost-section) .firwl-caption__s {
	margin-bottom: 1.25rem;
}

/* stock label decoration on blog templates: neon cut-corner chip and dotted rule */
body.sprt:is(.single, .archive, .search, .blog, .error404) .firwl-master > .firwl-section .firwl-caption__s::before,
body.sprt:is(.single, .archive, .search, .blog, .error404) .firwl-master > .firwl-section .firwl-caption__s::after {
	display: none;
}

/* ==========================================================================
   11. Sidebar widgets
   ========================================================================== */

body.sprt .firwl-sidebar .firwl-widget {
	position: relative;
	margin: 0;
	padding-top: 1.75rem;
	padding-bottom: 1.75rem;
	font-size: 0.9375rem;
	letter-spacing: 0;
	line-height: 1.5;
	color: var(--sprt-ink);
}

/* hairline between widgets, inset to the column gutter so it lines up with the content */
body.sprt .firwl-sidebar .firwl-widget::before {
	content: "";
	position: absolute;
	top: 0;
	left: 5px;
	right: 5px;
	border-top: 1px solid var(--sprt-line);
}

/* the parent grid gutter is 5 / 10 / 15px by breakpoint */
@media (min-width: 601px) {
	body.sprt .firwl-sidebar .firwl-widget::before {
		left: 10px;
		right: 10px;
	}
}

@media (min-width: 1201px) {
	body.sprt .firwl-sidebar .firwl-widget::before {
		left: 15px;
		right: 15px;
	}
}

/* the off-canvas panel is styled with the header (sprt-10-header.css): no hairline there */
body.sprt .firwl-sidebar.firwl-sidebar__offcanvas .firwl-widget::before {
	display: none;
}

@media (min-width: 1201px) {
	body.sprt .firwl-sidebar .firwl-widget:first-child {
		padding-top: 0;
	}

	body.sprt .firwl-sidebar .firwl-widget:first-child::before {
		display: none;
	}
}

/* block widget headings read as the same small mono label as the theme widget titles */
body.sprt .firwl-sidebar .firwl-widget h2,
body.sprt .firwl-sidebar .firwl-widget h3,
body.sprt .firwl-sidebar .firwl-widget .wp-block-heading {
	font-family: var(--sprt-mono);
	font-weight: 400;
	font-size: var(--sprt-fs-label);
	letter-spacing: 0;
	line-height: 1.4;
	margin: 0 0 1rem;
	color: var(--sprt-violet-deep);
}

body.sprt .firwl-sidebar .firwl-widget .wp-block-group__inner-container > * + .wp-block-heading {
	margin-top: 2rem;
	padding-top: 1.75rem;
	border-top: 1px solid var(--sprt-line);
}

body.sprt .firwl-sidebar .firwl-widget a {
	color: var(--sprt-ink);
	text-decoration: none;
}

body.sprt .firwl-sidebar .firwl-widget a:hover {
	color: var(--sprt-violet-deep);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* plain lists: recent posts */
body.sprt .firwl-sidebar .firwl-widget ul.wp-block-latest-posts {
	margin: 0;
	padding: 0;
	list-style: none;
}

body.sprt .firwl-sidebar .firwl-widget ul.wp-block-latest-posts li {
	list-style: none;
	margin: 0;
	padding: 0.65rem 0;
	border-top: 1px solid var(--sprt-line);
	line-height: 1.4;
}

body.sprt .firwl-sidebar .firwl-widget ul.wp-block-latest-posts li:first-child {
	border-top: 0;
	padding-top: 0;
}

body.sprt .firwl-sidebar .firwl-widget ul.wp-block-latest-posts li::before {
	display: none;
}

body.sprt .firwl-sidebar .firwl-widget .wp-block-latest-comments,
body.sprt .firwl-sidebar .firwl-widget .no-comments {
	color: var(--sprt-ink-soft);
	margin: 0;
	padding: 0;
}

/* categories as a wrap of pills */
body.sprt .firwl-sidebar .firwl-widget.widget_categories > ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
}

body.sprt .firwl-sidebar .firwl-widget.widget_categories ul li.cat-item {
	display: block;
	clear: none;
	overflow: visible;
	text-align: left;
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 0; /* hides the loose post count text only if present outside the link */
}

body.sprt .firwl-sidebar .firwl-widget.widget_categories ul li.cat-item::before {
	display: none;
}

body.sprt .firwl-sidebar .firwl-widget.widget_categories ul li.cat-item a {
	float: none;
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	padding: 4px 12px;
	box-sizing: border-box;
	border: 1px solid var(--sprt-line);
	border-radius: var(--sprt-radius-pill);
	font-family: var(--sprt-mono);
	font-size: var(--sprt-fs-label);
	line-height: 1.3;
	color: var(--sprt-ink);
	background: var(--sprt-surface);
	text-decoration: none;
}

body.sprt .firwl-sidebar .firwl-widget.widget_categories ul li.cat-item a:hover {
	border-color: var(--sprt-ink);
	color: var(--sprt-ink);
	text-decoration: none;
}

/* inline posts ("Top readings") */
body.sprt .firwl-post.firwl-post__inline {
	margin: 0;
	padding: 0.85rem 0;
	border-top: 1px solid var(--sprt-line);
}

body.sprt .firwl-post.firwl-post__inline:first-of-type {
	border-top: 0;
	padding-top: 0;
}

body.sprt .firwl-post.firwl-post__inline .firwl-thumb {
	clip-path: none;
	border-radius: var(--sprt-radius-control);
	box-shadow: none;
	border: 1px solid var(--sprt-line);
	width: 64px;
	height: 64px;
	margin-right: 16px;
}

body.sprt .firwl-post.firwl-post__inline .firwl-thumb::before,
body.sprt .firwl-post.firwl-post__inline .firwl-thumb::after {
	display: none;
}

body.sprt .firwl-post.firwl-post__inline .firwl-thumb img {
	object-fit: cover;
}

body.sprt .firwl-post.firwl-post__inline h6 {
	font-family: var(--sprt-sans);
	font-weight: 500;
	font-size: 0.9375rem;
	line-height: 1.35;
	letter-spacing: 0;
	text-transform: none;
	margin: 0 0 4px;
}

body.sprt .firwl-post.firwl-post__inline .firwl-meta {
	color: var(--sprt-ink-soft);
	margin: 0;
}

/* ==========================================================================
   12. Search in the sidebar (fields themselves: sprt-50-footer-forms.css)
   ========================================================================== */

body.sprt .firwl-sidebar .wp-block-search__label {
	font-family: var(--sprt-mono);
	font-weight: 400;
	font-size: var(--sprt-fs-label);
	letter-spacing: 0;
	text-transform: none;
	color: var(--sprt-violet-deep);
	margin: 0 0 0.6rem;
}

body.sprt .firwl-sidebar .wp-block-search__inside-wrapper {
	display: flex;
	gap: 8px;
	align-items: center;
}

body.sprt#firwlBody #firwlMaster .firwl-sidebar .wp-block-search__input {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	padding-left: 1.25rem;
	padding-right: 1.25rem;
	border-radius: var(--sprt-radius-pill); /* same pill as the theme search widget below it */
}

body.sprt#firwlBody #firwlMaster .firwl-sidebar .wp-block-search__button {
	flex: 0 0 auto;
	margin: 0;
	min-height: 3rem;
	padding: 0 1.1rem;
	border: 0;
	border-radius: var(--sprt-radius-pill);
	background: var(--sprt-ink);
	color: var(--sprt-on-ink);
	font-family: var(--sprt-mono);
	font-weight: 400;
	font-size: var(--sprt-fs-small);
	letter-spacing: 0;
	text-transform: none;
	line-height: 1;
	clip-path: none;
	box-shadow: none;
	cursor: pointer;
}

body.sprt#firwlBody #firwlMaster .firwl-sidebar .wp-block-search__button::before,
body.sprt#firwlBody #firwlMaster .firwl-sidebar .wp-block-search__button::after {
	display: none;
}

body.sprt#firwlBody #firwlMaster .firwl-sidebar .wp-block-search__button:hover {
	background: var(--sprt-violet-deep);
}

body.sprt#firwlBody #firwlMaster .firwl-sidebar .firwl-searchform,
body.sprt#firwlBody #firwlMaster .firwl-sidebar .firwl-searchform form {
	margin: 0;
	max-width: none;
}

/* ==========================================================================
   13. Single post body (running text: sprt-30-components.css)
   ========================================================================== */

body.sprt.single .firwl-master .firwl-entrycontent :is(h1, h2, h3) {
	font-family: var(--sprt-serif);
	font-weight: 400;
	letter-spacing: -0.02em;
	line-height: 1.15;
	text-transform: none;
	color: var(--sprt-ink);
	margin: 2.25em 0 0.6em;
}

body.sprt.single .firwl-master .firwl-entrycontent h1 { font-size: var(--sprt-fs-h2); }
body.sprt.single .firwl-master .firwl-entrycontent h2 { font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.25rem); }
body.sprt.single .firwl-master .firwl-entrycontent h3 { font-size: var(--sprt-fs-h3); }

body.sprt.single .firwl-master .firwl-entrycontent > :first-child,
body.sprt.single .firwl-master .firwl-the_content > :first-child {
	margin-top: 0;
}

body.sprt.single .firwl-master .firwl-entrycontent img {
	max-width: 100%;
	height: auto;
}

body.sprt.single .firwl-master .firwl-entrycontent :is(iframe, video) {
	max-width: 100%;
}

body.sprt.single .firwl-master .firwl-entrycontent :is(pre, .wp-block-code) {
	font-family: var(--sprt-mono);
	font-size: 0.875rem;
	background: var(--sprt-surface);
	border: 1px solid var(--sprt-line);
	border-radius: var(--sprt-radius-control);
	padding: 1rem 1.25rem;
	overflow-x: auto;
	color: var(--sprt-ink);
}

/* the wide alignment uses fixed negative margins that overflow small screens */
@media (max-width: 1200px) {
	body.sprt.single .firwl-single__nosidebar .firwl-entrycontent .alignwide {
		margin-left: 0;
		margin-right: 0;
	}
}

/* written by / tags / page links */
body.sprt.single .firwl-master .firwl-single__author,
body.sprt.single .firwl-master .firwl-entrycontent .firwl-tags,
body.sprt.single .firwl-master .firwl-entrycontent .firwl-pagelinks {
	font-family: var(--sprt-mono);
	font-weight: 400;
	font-size: var(--sprt-fs-label);
	letter-spacing: 0;
	text-transform: none;
	color: var(--sprt-ink-soft);
}

body.sprt.single .firwl-master .firwl-single__author {
	margin: 2.5rem 0 0;
	padding-top: 1.5rem;
	border-top: 1px solid var(--sprt-line);
}

body.sprt.single .firwl-master .firwl-single__author a,
body.sprt.single .firwl-master .firwl-entrycontent .firwl-tags a {
	color: var(--sprt-ink);
	font-family: inherit;
	font-size: inherit;
	letter-spacing: 0;
	text-transform: none;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ==========================================================================
   14. Share row and rating (ttg-reaktions)
   ========================================================================== */

body.sprt.single .firwl-entrycontent__footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 2rem;
	margin-top: 1.25rem;
	overflow: visible;
}

body.sprt.single .firwl-entrycontent__share,
body.sprt.single .firwl-entrycontent__rating {
	clear: none;
	padding-top: 0;
}

body.sprt.single .firwl-entrycontent__share {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

body.sprt.single .firwl-master .firwl-entrycontent__share a.ttg-reaktions-btn.firwl-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	min-width: 0;
	margin: 0;
	padding: 0;
	float: none;
	box-sizing: border-box;
	clip-path: none;
	border: 1px solid var(--sprt-line);
	border-radius: var(--sprt-radius-pill);
	background: var(--sprt-surface);
	color: var(--sprt-ink);
	font-size: 15px;
	line-height: 1;
	box-shadow: none;
	text-decoration: none;
	transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}

body.sprt.single .firwl-master .firwl-entrycontent__share a.ttg-reaktions-btn.firwl-btn::before,
body.sprt.single .firwl-master .firwl-entrycontent__share a.ttg-reaktions-btn.firwl-btn::after {
	display: none;
}

body.sprt.single .firwl-master .firwl-entrycontent__share a.ttg-reaktions-btn.firwl-btn:hover {
	background: var(--sprt-ink);
	border-color: var(--sprt-ink);
	color: var(--sprt-on-ink);
}

body.sprt.single .firwl-master .firwl-entrycontent__share a.ttg-reaktions-btn.firwl-btn i {
	margin: 0;
	line-height: 1;
	font-size: 15px;
	color: inherit;
}

body.sprt.single .firwl-entrycontent__rating {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--sprt-ink-soft);
}

body.sprt.single .firwl-entrycontent__rating .ttg-Ratings-Feedback {
	font-family: var(--sprt-mono);
	font-weight: 400;
	font-size: var(--sprt-fs-label);
	letter-spacing: 0;
	text-transform: none;
	color: var(--sprt-ink-soft);
	padding: 0;
}

/* ==========================================================================
   15. Author box and comments (not shown with the current settings: unverified)
   ========================================================================== */

body.sprt.single .firwl-part-author,
body.sprt.single .ttg-authorbox {
	border: 1px solid var(--sprt-line);
	border-radius: var(--sprt-radius-panel);
	background: var(--sprt-surface);
	padding: clamp(1.25rem, 3vw, 2rem);
	box-shadow: none;
	clip-path: none;
}

body.sprt.single .firwl-comments-section .comment-list,
body.sprt.single .firwl-comments-section .comment-list ol,
body.sprt.single .firwl-comments-section .comment-list ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

body.sprt.single .firwl-comments-section .comment-body {
	padding: 1.5rem 0;
	border-top: 1px solid var(--sprt-line);
}

body.sprt.single .firwl-comments-section .children {
	padding-left: clamp(1rem, 4vw, 2.5rem);
}

body.sprt.single .firwl-comments-section .avatar {
	border-radius: var(--sprt-radius-pill);
	clip-path: none;
}

body.sprt.single .firwl-comments-section :is(.comment-metadata, .comment-meta, .reply) {
	font-family: var(--sprt-mono);
	font-size: var(--sprt-fs-label);
	letter-spacing: 0;
	text-transform: none;
	color: var(--sprt-ink-soft);
}

body.sprt.single .firwl-comments-section :is(input[type="text"], input[type="email"], input[type="url"], textarea) {
	border: 1px solid var(--sprt-line);
	border-radius: var(--sprt-radius-control);
	background: var(--sprt-surface);
	color: var(--sprt-ink);
	box-shadow: none;
	padding: 12px 14px;
	box-sizing: border-box;
	font-family: var(--sprt-sans);
}

body.sprt.single .firwl-comments-section :is(input[type="submit"], button[type="submit"]) {
	height: 44px;
	padding: 0 22px;
	border: 0;
	border-radius: var(--sprt-radius-pill);
	background: var(--sprt-ink);
	color: var(--sprt-on-ink);
	font-family: var(--sprt-mono);
	font-size: var(--sprt-fs-small);
	letter-spacing: 0;
	text-transform: none;
	clip-path: none;
	cursor: pointer;
}

/* ==========================================================================
   16. 404
   ========================================================================== */

body.sprt.error404 .firwl-notfound404 {
	text-align: left;
	padding-top: clamp(1rem, 4vw, 3rem);
	padding-bottom: clamp(1rem, 4vw, 3rem);
}

body.sprt.error404 .firwl-notfound404 h2 {
	font-family: var(--sprt-mono);
	font-weight: 400;
	font-size: var(--sprt-fs-label);
	letter-spacing: 0;
	line-height: 1.4;
	color: var(--sprt-violet-deep);
	margin: 0 0 1rem;
	text-shadow: none;
	animation: none;
}

body.sprt.error404 .firwl-notfound404 h2::before,
body.sprt.error404 .firwl-notfound404 h2::after {
	display: none;
}

body.sprt.error404 .firwl-notfound404 h4 {
	font-family: var(--sprt-serif);
	font-weight: 400;
	font-size: var(--sprt-fs-display);
	letter-spacing: -0.03em !important;
	line-height: 1.05;
	text-transform: none;
	color: var(--sprt-ink);
	margin: 0 0 2rem;
	max-width: 18ch;
}

body.sprt.error404 .firwl-notfound404 h4::before,
body.sprt.error404 .firwl-notfound404 h4::after {
	display: none;
	animation: none;
}

body.sprt.error404 .firwl-notfound404 h4.firwl-caption {
	opacity: 1;
}

body.sprt.error404#firwlBody .firwl-notfound404 .firwl-search-center .firwl-searchform {
	max-width: 26rem;
	/* the parent centres this with !important */
	margin-left: 0 !important;
	margin-right: auto !important;
}

body.sprt.error404 .firwl-notfound404 .firwl-menubar__footer {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.75rem;
	margin: 2.5rem 0 0;
	padding: 1.5rem 0 0;
	border-top: 1px solid var(--sprt-line);
	list-style: none;
	text-align: left;
}

body.sprt.error404 .firwl-notfound404 .firwl-menubar__footer li {
	margin: 0;
	padding: 0;
	float: none;
	list-style: none;
}

body.sprt.error404 .firwl-notfound404 .firwl-menubar__footer li::before,
body.sprt.error404 .firwl-notfound404 .firwl-menubar__footer a::before,
body.sprt.error404 .firwl-notfound404 .firwl-menubar__footer a::after {
	display: none;
}

body.sprt.error404 .firwl-notfound404 .firwl-menubar__footer a {
	display: inline-block;
	padding: 10px 0;
	font-family: var(--sprt-sans);
	font-weight: 500;
	font-size: var(--sprt-fs-small);
	letter-spacing: 0;
	text-transform: none;
	color: var(--sprt-ink);
	text-decoration: underline;
	text-decoration-color: var(--sprt-line);
	text-underline-offset: 4px;
}

body.sprt.error404 .firwl-notfound404 .firwl-menubar__footer a:hover {
	text-decoration-color: currentColor;
}

/* ==========================================================================
   17. Testimonial archive grid
   ========================================================================== */

body.sprt.post-type-archive-firwl_testimonial .firwl-master > .firwl-section .firwl-col__post,
body.sprt.tax-firwl_testimonialcat .firwl-master > .firwl-section .firwl-col__post {
	margin-bottom: 24px;
}

@media (min-width: 601px) and (max-width: 1200px) {
	body.sprt.post-type-archive-firwl_testimonial .firwl-master > .firwl-section .firwl-col__post,
	body.sprt.tax-firwl_testimonialcat .firwl-master > .firwl-section .firwl-col__post {
		width: 50%;
	}
}

/* ==========================================================================
   Title clamping: the parent pairs -webkit-line-clamp with a max-height in em
   that no longer matches the serif line height, which cut lines in half.
   The clamp alone does the truncation; grid cards may run to three lines.
   ========================================================================== */

body.sprt .firwl-post .firwl-post__title[class*="firwl-cutme-t"] {
	max-height: none;
}

body.sprt .firwl-post.firwl-post__ver .firwl-post__title.firwl-cutme-t-2 {
	-webkit-line-clamp: 3;
}
