.rw-blog-search {
	display: var(--rw-blog-search-display, none);
	background: var(--rw-blog-search-bg, transparent);
	border-radius: var(--rw-blog-search-radius, 8px);
	padding: var(--rw-blog-search-padding, 20px);
	max-width: var(--rw-blog-search-max-width, 100%);
	margin: 0 auto var(--rw-blog-search-margin-bottom, 20px);
}

.rw-blog-filter-wrap {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-bottom: 12px;
}

.rw-blog-filter {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.rw-blog-filter--kw {
	order: var(--rw-blog-filter-kw-order, 1);
	width: var(--rw-blog-filter-kw-width, 100%);
}

.rw-blog-filter--cat {
	order: var(--rw-blog-filter-cat-order, 2);
	width: var(--rw-blog-filter-cat-width, 100%);
}

.rw-blog-filter label {
	color: var(--rw-blog-label-color);
	font-size: var(--rw-blog-label-font-size);
	font-weight: var(--rw-blog-label-weight);
	text-transform: var(--rw-blog-label-transform);
}

.rw-blog-filter input,
.rw-blog-filter select {
	height: var(--rw-blog-search-input-height, 48px);
	border-radius: var(--rw-blog-search-input-radius, 6px);
	border: var(--rw-blog-search-input-border-width, 1px) solid var(--rw-blog-input-border, #d9d9d9);
	background: var(--rw-blog-input-bg, #fff);
	color: var(--rw-blog-input-text);
	font-size: var(--rw-blog-input-font-size);
	font-weight: var(--rw-blog-input-weight);
	text-transform: var(--rw-blog-input-transform);
	padding: 0 14px;
}

.rw-blog-listing-wrap {
	container-type: inline-size;
	container-name: rw-blog-listing;
}

ul.blog_listings {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: var(--rw-blog-grid-template, 1fr);
	column-gap: var(--rw-blog-card-gap, 20px);
	row-gap: var(--rw-blog-card-row-gap, var(--rw-blog-card-gap, 20px));
}

/*
 * Grid columns follow the listing container width (not only the viewport).
 * With sidebar, the main column is narrower at the same window size, so breaks
 * happen sooner than full-width archive / shortcode — no duplicate breakpoints.
 */
@container rw-blog-listing (max-width: 560px) {
	ul.blog_listings.rw-blog-layout--grid {
		grid-template-columns: 1fr;
	}
}

@container rw-blog-listing (min-width: 561px) and (max-width: 980px) {
	ul.blog_listings.rw-blog-layout--grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/*
 * Grid + split (see .rw-blog-listing--grid-inner-split): one column only when
 * the listing container is fairly narrow; above this, ACF grid columns apply.
 * (@container width, not viewport.)
 */
@container rw-blog-listing (max-width: 1024px) {
	ul.blog_listings.rw-blog-layout--grid.rw-blog-listing--grid-inner-split {
		grid-template-columns: 1fr;
	}
}

.rw-blog-card {
	text-decoration: none;
	display: block;
	height: 100%;
	color: inherit;
	transform: var(--rw-blog-card-hover-transform-idle, translateZ(0));
	transform-origin: center center;
	filter: var(--rw-blog-card-hover-filter-idle, none);
	transition:
		transform var(--rw-blog-card-hover-motion-duration, 0ms) cubic-bezier(0.25, 0.46, 0.45, 0.94),
		filter var(--rw-blog-card-hover-motion-duration, 0ms) cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.rw-blog-card:hover {
	transform: var(--rw-blog-card-hover-transform-hover, var(--rw-blog-card-hover-transform-idle, translateZ(0)));
	filter: var(--rw-blog-card-hover-filter-hover, var(--rw-blog-card-hover-filter-idle, none));
}

@media (prefers-reduced-motion: reduce) {
	.rw-blog-card {
		transition-duration: 0.01ms !important;
	}

	.rw-blog-card:hover {
		transform: var(--rw-blog-card-hover-transform-idle, translateZ(0)) !important;
		filter: var(--rw-blog-card-hover-filter-idle, none) !important;
	}

	.rw-blog-img-wrap img {
		transition-duration: 0.01ms !important;
	}

	.rw-blog-card:hover .rw-blog-img-wrap img {
		filter: var(--rw-blog-card-hover-img-filter-idle, none) !important;
	}
}

.rw-blog-box {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	height: 100%;
	background: var(--rw-blog-card-bg, transparent);
	border-radius: var(--rw-blog-card-radius, 12px);
	padding: var(--rw-blog-card-padding, 20px);
	border: var(--rw-blog-card-border, none);
	box-shadow: var(--rw-blog-card-box-shadow, none);
	transition: background .25s ease, border-color .25s ease, box-shadow .25s ease;
}

/* Featured image full width at top; text + button use card padding in .rw-blog-box__body. */
.rw-blog-box--img-bleed {
	padding: 0;
	overflow: hidden;
}

.rw-blog-box--img-bleed .rw-blog-img-wrap {
	/* Same --rw-blog-img-order as inside .rw-blog-content-left; __body uses --rw-blog-bleed-body-order (min of visible row orders) so display order still controls image vs text block. */
	order: var(--rw-blog-img-order, 1);
	padding-top: 0;
	padding-bottom: 0;
}

.rw-blog-box--img-bleed .rw-blog-box__body {
	box-sizing: border-box;
	width: 100%;
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 0;
	order: var(--rw-blog-bleed-body-order, 0);
	padding: var(--rw-blog-card-padding, 20px);
}

/*
 * Card inner layout — split: image | text. Use .rw-blog-box--inner-* + listing .rw-blog-listing--inner-*
 * so split-only tokens (e.g. padded gutter, split text row gap) are clearly scoped. Legacy .rw-blog-box--split
 * is still output on the same node for existing selectors / child theme hooks.
 */
.rw-blog-box--inner-split {
	flex-direction: row;
	align-items: stretch;
	justify-content: flex-start;
	overflow: hidden;
}

/* Edge off: card padding wraps image + text; gutter is its own token (not --rw-blog-element-gap). */
.rw-blog-box--inner-split:not(.rw-blog-box--split-edge) {
	padding: var(--rw-blog-card-padding, 20px);
	gap: var(--rw-blog-split-padded-column-gap, 12px);
}

.rw-blog-box--inner-split:not(.rw-blog-box--split-edge) .rw-blog-box__split-main {
	padding: 0;
}

/* Edge on: flush outer shell; text column keeps card padding. */
.rw-blog-box--split-edge {
	padding: 0;
	gap: 0;
}

.rw-blog-box--split-edge .rw-blog-box__split-main {
	padding: var(--rw-blog-card-padding, 20px);
}

.rw-blog-box--inner-split .rw-blog-box__split-media {
	flex: 0 0 var(--rw-blog-card-split-media-pct, 45%);
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-self: stretch;
}

.rw-blog-box--inner-split .rw-blog-box__split-media .rw-blog-img-wrap {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	min-height: 0;
	width: 100%;
	padding-top: 0;
	padding-bottom: 0;
	overflow: hidden;
}

.rw-blog-box--inner-split .rw-blog-box__split-media .rw-blog-img-wrap img {
	flex: 1 1 auto;
	min-height: 0;
	width: 100%;
	height: 100%;
	display: block;
	object-fit: var(--rw-blog-img-object-fit, cover);
	object-position: center;
	border-radius: 0;
}

.rw-blog-box--inner-split .rw-blog-box__split-main {
	flex: 1 1 0;
	min-width: 0;
	display: flex;
	flex-direction: column;
	justify-content: var(--rw-blog-split-main-justify, flex-start);
	gap: var(--rw-blog-btn-gap, 16px);
	box-sizing: border-box;
}

.rw-blog-box--inner-split .rw-blog-box__split-main > .rw-blog-content-left {
	flex: 0 1 auto;
	min-height: 0;
}

.rw-blog-box--split-no-media .rw-blog-box__split-main {
	flex: 1 1 100%;
}

/* Grid + split: optional min height (px) from Layout — 0 = content height only. */
ul.blog_listings.rw-blog-layout--grid.rw-blog-listing--inner-split .rw-blog-card--inner-split .rw-blog-box--inner-split {
	min-height: var(--rw-blog-split-card-min-height, 0);
}

@media (max-width: 640px) {
	.rw-blog-box--inner-split {
		flex-direction: column;
	}

	.rw-blog-box--inner-split .rw-blog-box__split-media {
		flex: 0 0 auto;
		width: 100%;
	}

	.rw-blog-box--inner-split .rw-blog-box__split-media .rw-blog-img-wrap {
		flex: 0 0 auto;
		overflow: visible;
	}

	.rw-blog-box--inner-split .rw-blog-box__split-media .rw-blog-img-wrap img {
		flex: none;
		width: 100%;
		height: var(--rw-blog-img-height, auto);
		aspect-ratio: var(--rw-blog-img-aspect-ratio, auto);
	}
}

.rw-blog-card:hover .rw-blog-box {
	background: var(--rw-blog-card-hover-bg, var(--rw-blog-card-bg, transparent));
}

/* Solid border — hover border color (vars from acf-blog-layout.php) */
.rw-blog-card:not(.rw-blog-border-gradient):hover .rw-blog-box {
	border-color: var(--rw-blog-card-hover-border-color, var(--rw-blog-card-border-color));
}

/*
 * Gradient border — pseudo-element ring (matches job card pattern).
 * Templates add .rw-blog-border-gradient when Border style = Gradient.
 */
.rw-blog-card.rw-blog-border-gradient .rw-blog-box {
	position: relative;
	z-index: 0;
	border: var(--rw-blog-card-border-width, 1px) solid transparent;
	background-clip: padding-box;
}

.rw-blog-card.rw-blog-border-gradient .rw-blog-box::before {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: inherit;
	padding: var(--rw-blog-card-border-width, 1px);
	background: var(--rw-blog-card-border-grad, none);
	-webkit-mask:
		linear-gradient(#fff 0 0) content-box,
		linear-gradient(#fff 0 0);
	-webkit-mask-composite: xor;
	mask:
		linear-gradient(#fff 0 0) content-box,
		linear-gradient(#fff 0 0);
	mask-composite: exclude;
	pointer-events: none;
	transition: background 0.25s ease;
	z-index: 1;
}

.rw-blog-card.rw-blog-border-gradient .rw-blog-box > * {
	position: relative;
	z-index: 4;
}

.rw-blog-card.rw-blog-border-gradient:hover .rw-blog-box::before {
	background: var(--rw-blog-card-hover-border-grad, none);
	z-index: 3;
}

/* Stacked + split text blocks: row rhythm from Display → Element gap. Split inner layout can override with --rw-blog-split-content-row-gap. */
.rw-blog-content-left {
	display: flex;
	flex-wrap: wrap;
	align-content: flex-start;
	/* Vertical rhythm between full-width rows; keep column-gap 0 so inline cat+meta use separator only (no double gap). */
	row-gap: var(--rw-blog-element-gap, 12px);
	column-gap: 0;
	width: 100%;
}

/* Only when card is truly split: optional split text stack row gap (ignored for .rw-blog-box--inner-stacked). */
.rw-blog-box--inner-split .rw-blog-content-left {
	row-gap: var(--rw-blog-split-content-row-gap, var(--rw-blog-element-gap, 12px));
}

.rw-blog-img-wrap {
	order: var(--rw-blog-img-order, 1);
	width: 100%;
	padding-top: var(--rw-blog-img-pad-top, 0);
	padding-bottom: var(--rw-blog-img-pad-bottom, 0);
}

.rw-blog-img-wrap img {
	width: 100%;
	height: var(--rw-blog-img-height, auto);
	display: block;
	object-fit: var(--rw-blog-img-object-fit, cover);
	border-radius: var(--rw-blog-img-border-radius, 8px);
	aspect-ratio: var(--rw-blog-img-aspect-ratio, auto);
	filter: var(--rw-blog-card-hover-img-filter-idle, none);
	transition: filter var(--rw-blog-card-hover-motion-duration, 0ms) cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.rw-blog-card:hover .rw-blog-img-wrap img {
	filter: var(
		--rw-blog-card-hover-img-filter-hover,
		var(--rw-blog-card-hover-img-filter-idle, none)
	);
}

.rw-blog-cat,
.rw-blog-meta {
	display: inline-flex;
	align-items: center;
}

.rw-blog-cat {
	order: var(--rw-blog-cat-order, 2);
	width: var(--rw-blog-cat-width, 100%);
	padding-top: var(--rw-blog-cat-pad-top, 0);
	padding-bottom: var(--rw-blog-cat-pad-bottom, 0);
}

.rw-blog-cat::after {
	content: var(--rw-blog-cat-sep, "");
	opacity: 0.6;
	margin-inline: 0.35em;
}

.rw-blog-meta {
	order: var(--rw-blog-meta-order, 4);
	width: var(--rw-blog-meta-width, 100%);
	padding-top: var(--rw-blog-meta-pad-top, 0);
	padding-bottom: var(--rw-blog-meta-pad-bottom, 0);
}

.rw-blog-meta::after {
	content: var(--rw-blog-meta-sep, "");
	opacity: 0.6;
	margin-inline: 0.35em;
}

.rw-blog-sep-hide::after {
	display: none;
}

/* Between multiple category names (cards + single); breathing room around separator character (e.g. |). */
.rw-blog-category-term-sep {
	display: inline-block;
	padding: 0 5px;
	flex-shrink: 0;
}

.rw-blog-cat-icon {
	font-size: var(--rw-blog-cat-icon-size, 14px);
	color: var(--rw-blog-cat-icon-color, currentColor);
	/* Space after icon only when <i> exists (no flex gap on .rw-blog-cat — avoids stray gap if icon is in DOM but not painted). */
	margin-inline-end: 6px;
}

.rw-blog-card:hover .rw-blog-cat-icon {
	color: var(
		--rw-blog-cat-icon-color-hover,
		var(--rw-blog-cat-icon-color, currentColor)
	);
}

.rw-blog-meta-icon {
	font-size: var(--rw-blog-meta-icon-size, 14px);
	color: var(--rw-blog-meta-icon-color, currentColor);
	margin-inline-end: 6px;
}

.rw-blog-card:hover .rw-blog-meta-icon {
	color: var(
		--rw-blog-meta-icon-color-hover,
		var(--rw-blog-meta-icon-color, currentColor)
	);
}

.rw-blog-title {
	order: var(--rw-blog-title-order, 3);
	width: 100%;
	margin: 0;
	padding-top: var(--rw-blog-title-pad-top, 0);
	padding-bottom: var(--rw-blog-title-pad-bottom, 0);
}

.rw-blog-excerpt {
	order: var(--rw-blog-excerpt-order, 5);
	width: 100%;
	margin: 6px 0 0;
	padding-top: var(--rw-blog-excerpt-pad-top, 0);
	padding-bottom: var(--rw-blog-excerpt-pad-bottom, 0);
}

a.rw-blog-card:hover{
	text-decoration: none;
}
.rw-blog-card:hover .rw-blog-cat {
	color: var(--rw-blog-cat-color-hover, var(--rw-blog-cat-color, inherit));
	text-decoration: var(--rw-blog-cat-hover-decoration, none);
}

.rw-blog-card:hover .rw-blog-meta {
	color: var(--rw-blog-meta-color-hover, var(--rw-blog-meta-color, inherit));
	text-decoration: var(--rw-blog-meta-hover-decoration, none);
}

.rw-blog-card:hover .rw-blog-title {
	color: var(--rw-blog-title-color-hover, var(--rw-blog-title-color, inherit));
	text-decoration: var(--rw-blog-title-hover-decoration, none);
}

.rw-blog-card:hover .rw-blog-excerpt {
	color: var(--rw-blog-excerpt-color-hover, var(--rw-blog-excerpt-color, inherit));
	text-decoration: var(--rw-blog-excerpt-hover-decoration, none);
}

.rw-blog-btn-wrap {
	display: flex;
	align-items: center;
	margin-top: var(--rw-blog-btn-gap, 16px);
}

.rw-blog-btn-wrap .rw-btn-text {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 500;
	text-decoration: none;
	color: var(--rw-blog-btn-text-color, inherit);
	transition: color 0.3s;
}

.rw-blog-btn-custom {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--rw-blog-btn-custom-bg, transparent);
	color: var(--rw-blog-btn-custom-color, inherit);
	border-style: solid;
	border-width: var(--rw-blog-btn-custom-border-width, 0);
	border-color: var(--rw-blog-btn-custom-border-color, transparent);
	border-radius: var(--rw-blog-btn-custom-border-radius, 0);
	padding: var(--rw-blog-btn-custom-pad-top, 0) var(--rw-blog-btn-custom-pad-right, 0)
		var(--rw-blog-btn-custom-pad-bottom, 0) var(--rw-blog-btn-custom-pad-left, 0);
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.rw-blog-btn-custom i {
	color: inherit;
}

.rw-blog-card:hover .rw-blog-btn-custom {
	background: var(--rw-blog-btn-custom-bg-hover, var(--rw-blog-btn-custom-bg, transparent));
	color: var(--rw-blog-btn-custom-color-hover, var(--rw-blog-btn-custom-color, inherit));
	border-color: var(
		--rw-blog-btn-custom-border-color-hover,
		var(--rw-blog-btn-custom-border-color, transparent)
	);
}

/*
--------------------------------------------------------------------------
BUTTON — card hover mirrors job listing cards (preset + link + pointer-events)
--------------------------------------------------------------------------
*/

.rw-blog-card:hover .rw-btn--primary {
	background:
		var(--rw-btn-primary-paint-h, var(--rw-btn-primary-paint)) padding-box,
		var(--rw-btn-primary-stroke-h, var(--rw-btn-primary-stroke)) border-box;
	color: var(--rw-btn-primary-text-hover, var(--rw-btn-primary-text));
	text-decoration: none;
}
.rw-blog-card:hover .rw-btn--primary .rw-btn__icon {
	color: var(--rw-btn-primary-icon-color-h);
}
.rw-blog-card:hover .rw-btn--primary .rw-btn__icon-wrap {
	color: var(--rw-btn-primary-icon-color-h);
	background-color: var(--rw-btn-primary-icon-shape-bg-h);
	border-color: var(--rw-btn-primary-icon-shape-bd-h);
}

.rw-blog-card:hover .rw-btn--secondary {
	background:
		var(--rw-btn-secondary-paint-h, var(--rw-btn-secondary-paint)) padding-box,
		var(--rw-btn-secondary-stroke-h, var(--rw-btn-secondary-stroke)) border-box;
	color: var(--rw-btn-secondary-text-hover, var(--rw-btn-secondary-text));
	text-decoration: none;
}
.rw-blog-card:hover .rw-btn--secondary .rw-btn__icon {
	color: var(--rw-btn-secondary-icon-color-h);
}
.rw-blog-card:hover .rw-btn--secondary .rw-btn__icon-wrap {
	color: var(--rw-btn-secondary-icon-color-h);
	background-color: var(--rw-btn-secondary-icon-shape-bg-h);
	border-color: var(--rw-btn-secondary-icon-shape-bd-h);
}

.rw-blog-card:hover .rw-btn--primary-dark {
	background:
		var(--rw-btn-primary-dark-paint-h, var(--rw-btn-primary-dark-paint)) padding-box,
		var(--rw-btn-primary-dark-stroke-h, var(--rw-btn-primary-dark-stroke)) border-box;
	color: var(--rw-btn-primary-dark-text-hover, var(--rw-btn-primary-dark-text));
	text-decoration: none;
}
.rw-blog-card:hover .rw-btn--primary-dark .rw-btn__icon {
	color: var(--rw-btn-primary-dark-icon-color-h);
}
.rw-blog-card:hover .rw-btn--primary-dark .rw-btn__icon-wrap {
	color: var(--rw-btn-primary-dark-icon-color-h);
	background-color: var(--rw-btn-primary-dark-icon-shape-bg-h);
	border-color: var(--rw-btn-primary-dark-icon-shape-bd-h);
}

.rw-blog-card:hover .rw-btn--secondary-dark {
	background:
		var(--rw-btn-secondary-dark-paint-h, var(--rw-btn-secondary-dark-paint)) padding-box,
		var(--rw-btn-secondary-dark-stroke-h, var(--rw-btn-secondary-dark-stroke)) border-box;
	color: var(--rw-btn-secondary-dark-text-hover, var(--rw-btn-secondary-dark-text));
	text-decoration: none;
}
.rw-blog-card:hover .rw-btn--secondary-dark .rw-btn__icon {
	color: var(--rw-btn-secondary-dark-icon-color-h);
}
.rw-blog-card:hover .rw-btn--secondary-dark .rw-btn__icon-wrap {
	color: var(--rw-btn-secondary-dark-icon-color-h);
	background-color: var(--rw-btn-secondary-dark-icon-shape-bg-h);
	border-color: var(--rw-btn-secondary-dark-icon-shape-bd-h);
}

.rw-blog-card:hover .rw-btn--footer {
	background:
		var(--rw-btn-footer-paint-h, var(--rw-btn-footer-paint)) padding-box,
		var(--rw-btn-footer-stroke-h, var(--rw-btn-footer-stroke)) border-box;
	color: var(--rw-btn-footer-text-hover, var(--rw-btn-footer-text));
	text-decoration: none;
}
.rw-blog-card:hover .rw-btn--footer .rw-btn__icon {
	color: var(--rw-btn-footer-icon-color-h);
}
.rw-blog-card:hover .rw-btn--footer .rw-btn__icon-wrap {
	color: var(--rw-btn-footer-icon-color-h);
	background-color: var(--rw-btn-footer-icon-shape-bg-h);
	border-color: var(--rw-btn-footer-icon-shape-bd-h);
}

.rw-blog-card:hover .rw-btn--cta {
	background:
		var(--rw-btn-cta-paint-h, var(--rw-btn-cta-paint)) padding-box,
		var(--rw-btn-cta-stroke-h, var(--rw-btn-cta-stroke)) border-box;
	color: var(--rw-btn-cta-text-hover, var(--rw-btn-cta-text));
	text-decoration: none;
}
.rw-blog-card:hover .rw-btn--cta .rw-btn__icon {
	color: var(--rw-btn-cta-icon-color-h);
}
.rw-blog-card:hover .rw-btn--cta .rw-btn__icon-wrap {
	color: var(--rw-btn-cta-icon-color-h);
	background-color: var(--rw-btn-cta-icon-shape-bg-h);
	border-color: var(--rw-btn-cta-icon-shape-bd-h);
}

.rw-blog-card:hover .rw-btn--search-jobs {
	background:
		var(--rw-btn-search-jobs-paint-h, var(--rw-btn-search-jobs-paint)) padding-box,
		var(--rw-btn-search-jobs-stroke-h, var(--rw-btn-search-jobs-stroke)) border-box;
	color: var(--rw-btn-search-jobs-text-hover, var(--rw-btn-search-jobs-text));
	text-decoration: none;
}
.rw-blog-card:hover .rw-btn--search-jobs .rw-btn__icon {
	color: var(--rw-btn-search-jobs-icon-color-h);
}
.rw-blog-card:hover .rw-btn--search-jobs .rw-btn__icon-wrap {
	color: var(--rw-btn-search-jobs-icon-color-h);
	background-color: var(--rw-btn-search-jobs-icon-shape-bg-h);
	border-color: var(--rw-btn-search-jobs-icon-shape-bd-h);
}

.rw-blog-card:hover .rw-btn--custom-a {
	background:
		var(--rw-btn-custom-a-paint-h, var(--rw-btn-custom-a-paint)) padding-box,
		var(--rw-btn-custom-a-stroke-h, var(--rw-btn-custom-a-stroke)) border-box;
	color: var(--rw-btn-custom-a-text-hover, var(--rw-btn-custom-a-text));
	text-decoration: none;
}
.rw-blog-card:hover .rw-btn--custom-a .rw-btn__icon {
	color: var(--rw-btn-custom-a-icon-color-h);
}
.rw-blog-card:hover .rw-btn--custom-a .rw-btn__icon-wrap {
	color: var(--rw-btn-custom-a-icon-color-h);
	background-color: var(--rw-btn-custom-a-icon-shape-bg-h);
	border-color: var(--rw-btn-custom-a-icon-shape-bd-h);
}

.rw-blog-card:hover .rw-btn--custom-b {
	background:
		var(--rw-btn-custom-b-paint-h, var(--rw-btn-custom-b-paint)) padding-box,
		var(--rw-btn-custom-b-stroke-h, var(--rw-btn-custom-b-stroke)) border-box;
	color: var(--rw-btn-custom-b-text-hover, var(--rw-btn-custom-b-text));
	text-decoration: none;
}
.rw-blog-card:hover .rw-btn--custom-b .rw-btn__icon {
	color: var(--rw-btn-custom-b-icon-color-h);
}
.rw-blog-card:hover .rw-btn--custom-b .rw-btn__icon-wrap {
	color: var(--rw-btn-custom-b-icon-color-h);
	background-color: var(--rw-btn-custom-b-icon-shape-bg-h);
	border-color: var(--rw-btn-custom-b-icon-shape-bd-h);
}

.rw-blog-card:hover .rw-btn--link,
.rw-blog-card:hover .rw-blog-btn-wrap .rw-btn-text {
	color: var(--rw-btn-txt-color-hover);
	text-decoration: var(--rw-btn-txt-deco-hover, underline);
}
.rw-blog-card:hover .rw-btn--link .rw-btn__icon,
.rw-blog-card:hover .rw-btn-text .rw-btn__icon {
	color: var(--rw-btn-txt-icon-color-h);
}
.rw-blog-card:hover .rw-btn--link .rw-btn__icon-wrap,
.rw-blog-card:hover .rw-btn-text .rw-btn__icon-wrap {
	color: var(--rw-btn-txt-icon-color-h);
	background-color: var(--rw-btn-txt-icon-shape-bg-h);
	border-color: var(--rw-btn-txt-icon-shape-bd-h);
}

.rw-blog-btn-wrap .rw-btn,
.rw-blog-btn-wrap .rw-btn-text,
.rw-blog-btn-wrap .rw-blog-btn-custom {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	pointer-events: none;
}

.rw-blog-pagination ul {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	gap: var(--rw-blog-pag-gap, 8px);
	padding: 0;
	margin: 24px 0 0;
}

.rw-blog-pagination--center ul {
	justify-content: center;
}

.rw-blog-pagination ul > li > .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: var(--rw-blog-pag-pad, 8px 12px);
	border-radius: var(--rw-blog-pag-radius, 4px);
	background: var(--rw-blog-pag-bg, transparent);
	color: var(--rw-blog-pag-color, inherit);
	font-size: var(--rw-blog-pag-font-size, inherit);
	font-weight: var(--rw-blog-pag-font-weight, inherit);
	text-decoration: none;
	line-height: 1;
	border: var(--rw-blog-pag-border-width, 0px) solid var(--rw-blog-pag-border-color, transparent);
	box-sizing: border-box;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.rw-blog-pagination ul > li > .page-numbers.current {
	background: var(--rw-blog-pag-active-bg, var(--rw-blog-pag-bg, transparent));
	color: var(--rw-blog-pag-active-color, var(--rw-blog-pag-color, inherit));
	border-color: var(--rw-blog-pag-active-border-color, var(--rw-blog-pag-border-color, transparent));
	pointer-events: none;
}

.rw-blog-pagination ul > li > a.page-numbers:hover,
.rw-blog-pagination ul > li > a.page-numbers:focus {
	background: var(--rw-blog-pag-hover-bg, var(--rw-blog-pag-active-bg, var(--rw-blog-pag-bg, transparent)));
	color: var(--rw-blog-pag-hover-color, var(--rw-blog-pag-active-color, var(--rw-blog-pag-color, inherit)));
	border-color: var(--rw-blog-pag-hover-border-color, var(--rw-blog-pag-active-border-color, var(--rw-blog-pag-border-color, transparent)));
	text-decoration: none;
}

.rw-blog-pagination ul > li > .page-numbers.dots {
	pointer-events: none;
	opacity: 0.5;
}

/* Prev/Next: icon + label spacing (Display = Icon + text). */
.rw-blog-pagination ul > li > a.page-numbers.prev,
.rw-blog-pagination ul > li > a.page-numbers.next {
	gap: 0.35em;
}

.rw-blog-pagination .screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

/*
 * Optional equal min width + height for numbered cells when any Shape is on (see Spacing → Minimum item size).
 * Works with aspect-ratio on circles so single digits stay true circles instead of tall ovals.
 */
.rw-blog-pagination--shaped ul > li > .page-numbers:not(.prev):not(.next) {
	min-width: var(--rw-blog-pag-item-min, unset);
	min-height: var(--rw-blog-pag-item-min, unset);
}

/*
 * Circle shape: page numbers / dots use square boxes so 50% radius reads as circles.
 * Prev/Next use pills instead — Icon + text would otherwise force a very large square (aspect-ratio: 1).
 */
.rw-blog-pagination--shape-circle ul > li > .page-numbers:not(.prev):not(.next) {
	aspect-ratio: 1;
	min-width: 0;
	padding: max(var(--rw-blog-pag-pad-y, 8px), var(--rw-blog-pag-pad-x, 12px));
}

.rw-blog-pagination--shape-circle ul > li > a.page-numbers.prev,
.rw-blog-pagination--shape-circle ul > li > a.page-numbers.next {
	aspect-ratio: auto;
	border-radius: 999px;
	padding-block: max(var(--rw-blog-pag-pad-y, 8px), var(--rw-blog-pag-pad-x, 12px));
	padding-inline: max(var(--rw-blog-pag-pad-y, 8px), var(--rw-blog-pag-pad-x, 12px));
}

/* Listing shell: outer archive wrap only (vars from blog_listing_container_group). */
.rw-archive-blog-wrap {
	width: 100%;
	max-width: var(--rw-blog-listing-max-width, min(100%, 1320px));
	margin-inline: auto;
	padding-inline: var(--rw-blog-listing-pad-x, 24px);
	padding-block: var(--rw-blog-listing-pad-y, 0);
	box-sizing: border-box;
}

/* [blueprint_blog] shortcode (no .rw-archive-blog-wrap): same shell on the listing root. */
.rw-blog-listing-wrap {
	width: 100%;
	max-width: var(--rw-blog-listing-max-width, min(100%, 1320px));
	margin-inline: auto;
	padding-inline: var(--rw-blog-listing-pad-x, 24px);
	padding-block: var(--rw-blog-listing-pad-y, 0);
	box-sizing: border-box;
}

/* Native archive: avoid double max-width / padding on the inner listing column. */
.rw-archive-blog-wrap .rw-blog-listing-wrap {
	max-width: none;
	margin-inline: 0;
	padding-inline: 0;
	padding-block: 0;
}

/* Single related grid: enable the same @container rw-blog-listing rules without extra max-width shell. */
.rw-single-blog-related-section .rw-blog-listing-wrap {
	max-width: none;
	margin-inline: 0;
	padding-inline: 0;
	padding-block: 0;
}

/* Native archive: header + columns below the constrained wrap. */
.rw-archive-blog-header {
	margin-bottom: 60px;
}

.rw-archive-blog-header .page-title {
	margin: 0 0 10px;
}

.rw-bb-archive-intro__eyebrow {
	margin: 0;
}

/* Typography overrides come from wp_head only when set (acf-blog-archive-intro.php). */
.rw-bb-archive-intro__title {
	margin: 0 0 14px;
}

.rw-bb-archive-intro__content {
	font-size: inherit;
	line-height: 1.6;
}

.rw-bb-archive-intro__content > *:first-child {
	margin-top: 0;
}

.rw-bb-archive-intro__content > *:last-child {
	margin-bottom: 0;
}

.rw-archive-blog-layout--fullwidth .rw-archive-blog-inner--full {
	width: 100%;
	max-width: 100%;
}

.rw-archive-blog-layout-inner {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--rw-archive-layout-column-gap, clamp(24px, 4vw, 48px));
	width: 100%;
	box-sizing: border-box;
}

.rw-archive-blog-main {
	flex: 1 1 var(--rw-archive-main-col, 70%);
	min-width: 0;
	max-width: var(--rw-archive-main-col, 70%);
}

.rw-archive-blog-layout--sidebar .rw-archive-blog-main {
	box-sizing: border-box;
}

.rw-archive-blog-sidebar {
	flex: 0 0 var(--rw-archive-sidebar-col, 30%);
	width: var(--rw-archive-sidebar-col, 30%);
	max-width: var(--rw-archive-sidebar-col, 30%);
	min-width: min(280px, 100%);
	box-sizing: border-box;
}

.rw-archive-blog-sidebar:empty {
	min-height: 1px;
}

.rw-archive-blog-sidebar--sticky {
	position: sticky;
	top: var(--rw-archive-sidebar-sticky-top, 32px);
	align-self: flex-start;
	max-height: calc(100vh - var(--rw-archive-sidebar-sticky-top, 32px) - 16px);
	overflow-y: auto;
}

.rw-archive-blog-sidebar-inner {
	display: flex;
	flex-direction: column;
	gap: var(--rw-archive-sidebar-blocks-gap, 30px);
	width: 100%;
}

/* CTA blocks (shared markup class names with single; single.css not loaded on archive). */
.rw-archive-blog-cta-block {
	width: 100%;
}

.rw-archive-blog-cta-block .rw-single-blog-cta-title {
	margin: 0 0 12px;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.25;
}

.rw-archive-blog-cta-block .rw-single-blog-cta-content {
	font-size: 0.95rem;
	line-height: 1.5;
}

.rw-bb-archive-cats__title-wrap {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 20px;
}

.rw-bb-archive-cats__title-wrap--pos-above {
	flex-direction: column;
	align-items: flex-start;
}

.rw-bb-archive-cats__title-wrap--pos-above .rw-bb-archive-cats__title {
	width: 100%;
}

/* Title + link colors/typography: wp_head from acf-blog-archive-layout.php when sidebar categories are on. */
.rw-bb-archive-cats__title {
	margin: 0;
}

/* Title icon: mirrors theme .rw-social-icon-link + :root social vars (see acf-social-icons.php). */
.rw-bb-archive-cats__icon-slot {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	line-height: 0;
	box-sizing: border-box;
	width: var(--rw-bb-archive-cats-icon-box, 36px);
	height: var(--rw-bb-archive-cats-icon-box, 36px);
	border-radius: var(--rw-bb-archive-cats-icon-radius, 0);
	background-color: var(--rw-bb-archive-cats-icon-bg, transparent);
	border: var(--rw-bb-archive-cats-icon-border, none);
}

.rw-bb-archive-cats__icon-slot[data-rw-bb-cats-shape="none"] {
	width: auto;
	height: auto;
	border: none;
	background: transparent;
	border-radius: 0;
}

.rw-bb-archive-cats__icon-glyph {
	flex-shrink: 0;
	font-size: var(--rw-bb-archive-cats-icon-size, 18px);
	color: var(--rw-bb-archive-cats-icon-color, inherit);
	line-height: 1;
	display: block;
}

.rw-bb-archive-cats__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.rw-bb-archive-cats__item {
	margin: 0 0 10px;
}

.rw-bb-archive-cats__item:last-child {
	margin-bottom: 0;
}

.rw-bb-archive-cats__list a {
	text-decoration: none;
	transition: color 0.2s ease;
}

.rw-bb-archive-cats__list a:hover,
.rw-bb-archive-cats__list a:focus {
	text-decoration: underline;
}

.rw-bb-archive-cats__item--current a {
	font-weight: 600;
	text-decoration: underline;
}

/* Archive sidebar: newsletter (separate from category nav). */
.rw-bb-archive-newsletter {
	width: 100%;
}

/* Card shell: background / haze / padding from wp_head (acf-blog-archive-newsletter.php). */
.rw-bb-nl-block .rw-bb-nl-inner {
	display: flex;
	flex-direction: column;
	gap: 10px;
	position: relative;
	z-index: 2;
}

/* Gradient border ring (mask), same idea as .rw-blog-border-gradient (acf-blog-layout.php). */
.rw-bb-nl-card.rw-bb-nl-border-gradient::before {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: inherit;
	padding: var(--rw-bb-nl-card-border-width, 1px);
	background: var(--rw-bb-nl-card-border-grad, none);
	-webkit-mask:
		linear-gradient(#fff 0 0) content-box,
		linear-gradient(#fff 0 0);
	-webkit-mask-composite: xor;
	mask:
		linear-gradient(#fff 0 0) content-box,
		linear-gradient(#fff 0 0);
	mask-composite: exclude;
	pointer-events: none;
	z-index: 1;
}

/* Newsletter title typography: wp_head when block renders (acf-blog-archive-newsletter.php). */
.rw-bb-archive-newsletter__title {
	margin: 0;
}

.rw-bb-archive-newsletter__content {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.5;
	color: inherit;
}

.rw-bb-archive-newsletter__content > *:first-child {
	margin-top: 0;
}

.rw-bb-archive-newsletter__content > *:last-child {
	margin-bottom: 0;
}

.rw-bb-archive-newsletter__form {
	width: 100%;
	margin-top: 20px;
}

.rw-archive-blog-sidebar-filters .rw-blog-filter-wrap {
	flex-direction: column;
	align-items: stretch;
}

.rw-archive-blog-sidebar-filters .rw-blog-search {
	flex-direction: column;
	align-items: stretch;
	width: 100%;
}

.rw-archive-blog-sidebar-filters .rw-blog-filter--kw,
.rw-archive-blog-sidebar-filters .rw-blog-filter--cat {
	width: 100%;
}

/* Sidebar layout: stack main + sidebar (full width each) so the listing has full width from here down. */
@media (max-width: 992px) {
	.rw-archive-blog-layout-inner {
		flex-direction: column;
		align-items: stretch;
		gap: var(--rw-archive-layout-column-gap, clamp(24px, 4vw, 48px));
	}

	.rw-archive-blog-main {
		width: 100%;
		max-width: 100%;
	}

	.rw-archive-blog-layout--sidebar .rw-archive-blog-main,
	.rw-archive-blog-sidebar {
		flex: 1 1 auto;
		max-width: 100%;
		min-width: 0;
		width: 100%;
	}

	.rw-archive-blog-sidebar--sticky {
		position: static;
		max-height: none;
		overflow-y: visible;
	}
}

@media (max-width: 768px) {
	.rw-blog-filter--kw,
	.rw-blog-filter--cat {
		width: 100%;
	}

	ul.blog_listings {
		grid-template-columns: 1fr;
		width: 100%;
		max-width: 100%;
	}

	.rw-blog-listing-wrap {
		width: 100%;
		max-width: 100%;
	}

	.rw-blog-card-item {
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}
}

