/*
 * Kadence PubX component styles — ported from the block-built theme.
 * Brand colors come from the palette bridge in style.css
 * (--pubx-brand* derive from Kadence Global Palette color 1).
 */

/* Digital edition shortcode card. */
.pubx-digital-edition {
	--pubx-digital-edition-width: 100%;
	max-width: var(--pubx-digital-edition-width);
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}

.pubx-digital-edition__cover-link {
	display: block;
}

.pubx-digital-edition__cover {
	display: block;
	width: 100%;
	height: auto;
	margin-left: auto;
	margin-right: auto;
	border-top-left-radius: 10px;
	border-top-right-radius: 10px;
	border-bottom-right-radius: 10px;
	border-bottom-left-radius: 10px;
}

.pubx-digital-edition__date {
	margin-top: 0.35rem;
	text-align: center;
}

/* Digital edition archive grid shortcode. */
.pubx-digital-edition-archive {
	margin: 0 auto;
}

.pubx-digital-edition-archive .pubx-digital-edition-archive__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	padding-left: 0;
	display: grid;
	grid-template-columns: repeat(var(--pubx-de-archive-columns, 4), 1fr);
	gap: 1.5rem;
}

.pubx-digital-edition-archive .pubx-digital-edition-archive__item {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pubx-digital-edition-archive .pubx-digital-edition-archive__item::before {
	content: none;
}

.pubx-digital-edition-archive__link {
	display: block;
	text-decoration: none;
}

.pubx-digital-edition-archive__cover {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 10px;
	box-shadow: 0 1px 6px rgba(0, 0, 0, 0.15);
}

.pubx-digital-edition-archive__title {
	display: block;
	margin-top: 0.6rem;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.3;
}

.pubx-digital-edition-archive__more {
	margin-top: 1.75rem;
	text-align: center;
}

.pubx-digital-edition-archive__more-link {
	display: inline-block;
	padding: 0.75rem 1.5rem;
	border-radius: 6px;
	background-color: var(--global-palette1, var(--pubx-brand, #49ab44));
	color: #fff;
	font-weight: 600;
	text-decoration: none;
}

.pubx-digital-edition-archive__more-link:hover,
.pubx-digital-edition-archive__more-link:focus {
	background-color: var(--global-palette2, var(--pubx-brand-dark, #3a8836));
	color: #fff;
}

@media (max-width: 1024px) {
	.pubx-digital-edition-archive .pubx-digital-edition-archive__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 600px) {
	.pubx-digital-edition-archive .pubx-digital-edition-archive__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* Deep Dives sponsored badge (shortcode + native block injection). */
.pubx-sponsored-pill {
	display: inline-block;
	padding: 0.25em 0.75em;
	margin-right: 8px;
	border-radius: 999px;
	background-color: #fffbcd;
	color: #ff6822;
	font-size: 0.8em;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.01em;
	text-decoration: none;
	text-transform: capitalize;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.event-start-date,
.event-start-date-pill {
	display: inline-block;
	padding: 0.25em 0.75em;
	margin-right: 8px;
	border-radius: 999px;
	background-color: var(--pubx-brand-tint, #eaf6e9);
	color: var(--pubx-brand, #49ab44);
	font-size: 0.8em;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.01em;
	text-decoration: none;
	text-transform: capitalize;
}

.event-start-date:hover,
.event-start-date:focus-visible,
.event-start-date-pill:hover,
.event-start-date-pill:focus-visible {
	background-color: var(--pubx-brand-tint, #eaf6e9);
	color: var(--pubx-brand, #49ab44);
}

/* Center event date pill on single event pages only. */
body.single-event .entry-content .event-start-date {
	display: table;
	margin-left: auto;
	margin-right: auto;
}

/* In "More Events" query cards on single event pages, keep date pill left-aligned. */
body.single-event .entry-content .kb-query-item .event-start-date {
	display: inline-block;
	margin-left: 0;
	margin-right: 8px;
}

/* Keep AI summary expand button from inheriting theme default hover color. */
.anx_ai_article_summary_expand_btn {
	transition: filter 0.15s ease;
}

.anx_ai_article_summary_expand_btn:hover,
.anx_ai_article_summary_expand_btn:focus-visible,
.anx_ai_article_summary_expand_btn:active {
	background: none !important;
	background-color: transparent !important;
	filter: brightness(1.1);
}

/* -------------------------------------------------------------------------
 * Interscroller / parallax GPT
 *
 * Mechanics (same idea as legacy PubX): a tall in-flow “tunnel” (.showad2)
 * while #InterAdspot stays position:fixed + clipped—scrolling reveals the ad,
 * then the next section (higher z-index) passes over it.
 *
 * Legacy used height: 90vh for the tunnel, which forces a long scroll before
 * the next block. Here the tunnel is tied to the creative height + a small
 * buffer, capped by viewport % so “Business” and follow‑on content arrive sooner.
 *
 * Shortcode: [pubx_interscroll_ad]  |  Row below: class pubx-after-interscroll
 * Top offset: 10px (no sticky header); admin bar: +32px / +46px.
 * ------------------------------------------------------------------------- */

:root {
	/* Base spacing from the top edge (before sticky header/admin bar adjustments). */
	--pubx-interscroll-top-base: 0px;
	/* Admin bar height is exposed by WP core on the root element. */
	--pubx-interscroll-admin-offset: var(--wp-admin--admin-bar--height, 0px);
	/* JS sets this to the sticky header height (e.g. `.website-header`). */
	--pubx-interscroll-sticky-offset: 0px;
	--pubx-interscroll-top: calc(
		env(safe-area-inset-top, 0px) + var(--pubx-interscroll-admin-offset) + var(--pubx-interscroll-sticky-offset) +
			var(--pubx-interscroll-top-base)
	);
	/* Default (smaller screens): keep the interscroller window shorter. */
	--pubx-interscroll-max-visible: 600px;
	/* Extra scroll past the creative so the parallax still has a beat */
	--pubx-interscroll-tunnel-extra: 4.5rem;
	--pubx-interscroll-tunnel-max-vh: 52vh;
	--pubx-interscroll-tunnel-height: min(
		calc(var(--pubx-interscroll-max-visible) + var(--pubx-interscroll-tunnel-extra)),
		var(--pubx-interscroll-tunnel-max-vh)
	);
	--pubx-interscroll-z: 2;
	--pubx-interscroll-content-cover-z: 5;
}

/* Desktop interscroller creative is 1200x1000: allow the full 1000px to be revealed
   before the next section ("lid") covers it. */
@media (min-width: 992px) {
	:root {
		--pubx-interscroll-max-visible: 1000px;
		/* Desktop creative is 1200x1000; keep a small beat after full reveal. */
		--pubx-interscroll-tunnel-extra: 6rem;
		/* Ensure the tunnel is long enough to reveal the full creative. */
		--pubx-interscroll-tunnel-height: calc(var(--pubx-interscroll-max-visible) + var(--pubx-interscroll-tunnel-extra));
	}
}

.pubx-visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.pubx-interscroll.pubx-interscroll--empty {
	display: none !important;
	height: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}

/* “Lid” row below the interscroller: must sit above #InterAdspot (z-index 2). */
.pubx-after-interscroll,
.pubx-after-interscroll.kt-row-layout,
.pubx-after-interscroll .kt-row-column-wrap {
	position: relative;
	/* Kadence row block CSS often adds a higher z-index (e.g. 10), which stacks the full-bleed
	   “Business” band above fixed wallpaper rails. Keep the lid only as high as needed for interscroller. */
	z-index: var(--pubx-interscroll-content-cover-z) !important;
}

/* Pull the following Kadence row a little closer (optional spacing from block defaults) */
.pubx-after-interscroll.kt-row-layout {
	margin-top: 0;
}

/* (Desktop overlap is handled by scrolling the creative inside the fixed window; no negative margins needed.) */

.ad__section-border--category,
.ad__section-border--find-compare,
.ad__section-border--topmost {
	border-bottom: 1px solid #f1f1f1;
}

.pubx-interscroll .ad__section-border {
	margin-top: 0;
	margin-bottom: 0;
	padding: 0;
	min-height: 100%;
	display: flex;
	flex-direction: column;
}

.pubx-interscroll .ad__container {
	background-color: #f7f7f7;
	font-family: Roboto, Helvetica, Arial, sans-serif;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	flex: 1 1 auto;
	min-height: 0;
	padding: 0;
	margin: 0;
}

.pubx-interscroll .ad__container a {
	color: #000;
	text-decoration: none;
}

.pubx-interscroll .ad__container .ad__label {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	background-color: #fff;
	text-align: center;
}

.pubx-interscroll .ad__container .ad__label__left,
.pubx-interscroll .ad__container .ad__label__right {
	background-color: #f1f1f1;
	flex-basis: calc((100% - 15.5rem) / 2);
	height: 1px;
}

.pubx-interscroll .ad__container .ad__label__center {
	flex-basis: 15.5rem;
	font-family: Roboto, Helvetica, Arial, sans-serif;
	font-size: 0.625rem;
	line-height: 1;
	text-transform: uppercase;
}

.pubx-interscroll .ad__inner {
	position: relative;
	margin-bottom: 0;
	margin-top: 0;
	padding: 0;
	width: 100%;
	flex: 1 1 auto;
	min-height: 0;
}

.ad__inner__container {
	width: 100%;
	z-index: 1;
	display: flex;
	text-align: center;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 0;
	padding: 0;
	margin: 0;
}

.pubx-interscroll.showad2 {
	position: relative !important;
	width: 100% !important;
	max-width: 100% !important;
	min-height: var(--pubx-interscroll-tunnel-height);
	height: var(--pubx-interscroll-tunnel-height) !important;
	margin: 0 !important;
	padding: 0 !important;
	display: flex;
	flex-direction: column;
}

/* Keep interscroller item flush inside archive query rails/cards. */
.kb-query-item.pubx-query-item--interscroll,
.pubx-query-item--interscroll {
	margin: 0 !important;
	padding: 0 !important;
}

.kb-query-item.pubx-query-item--interscroll .pubx-interscroll.showad2,
.pubx-query-item--interscroll .pubx-interscroll.showad2 {
	margin: 0 !important;
	padding: 0 !important;
}

#archive-container .pubx-query-item--interscroll {
	margin-inline: calc(var(--global-content-edge-padding, 0px) * -1) !important;
}

#InterAdspot {
	position: fixed;
	cursor: pointer;
	top: var(--pubx-interscroll-top);
	left: 0;
	right: auto;
	width: 100%;
	/* Visible window is limited by viewport (sticky header reduces this). */
	height: calc(100vh - var(--pubx-interscroll-top));
	max-height: var(--pubx-interscroll-max-visible);
	margin-left: auto;
	margin-right: auto;
	z-index: var(--pubx-interscroll-z);
	display: none;
	overflow: hidden;
	text-align: center;
	justify-content: center;
	align-items: flex-start;
}

#InterAdspot .pubx-gpt-slot,
#InterAdspot #div-gpt-ad-1638203319690-0 {
	max-height: var(--pubx-interscroll-max-visible);
	margin-left: auto;
	margin-right: auto;
	overflow: hidden;
	display: flex;
	justify-content: center;
	align-items: flex-start;
	text-align: center;
	width: 100%;
}

/* GPT often renders an iframe; cap height without breaking slot load */
#InterAdspot iframe {
	display: block;
	max-height: var(--pubx-interscroll-max-visible) !important;
	margin-left: 0;
	margin-right: 0;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
	max-width: none;
}

.pubx-interscroll .ad-2 {
	clip: rect(0px, auto, auto, 0px);
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

@media screen and (-webkit-min-device-pixel-ratio: 0) {
	.pubx-interscroll .ad-2 {
		clip: auto;
		-webkit-mask-image: -webkit-linear-gradient(top, #fff 0%, #fff 100%);
	}
}

@media (max-width: 991px) {
	:root {
		/* Slightly shorter tunnel on small screens */
		--pubx-interscroll-tunnel-extra: 3rem;
		--pubx-interscroll-tunnel-max-vh: 48vh;
	}

	.pubx-interscroll.showad2 {
		width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	#archive-container .pubx-query-item--interscroll {
		margin-inline: 0 !important;
	}
}

/* Keep sidebar content painted above interscroller so article-length variance needs no manual sidebar tunnel. */
@media (min-width: 1025px) {
	#secondary,
	#secondary .sidebar-inner-wrap {
		position: relative;
		z-index: var(--pubx-interscroll-content-cover-z);
	}
}

/* -------------------------------------------------------------------------
 * Kadence post grid / carousel: “featured” class — image radius 10px top only
 * Beats Kadence Blocks Pro global `.kadence-post-image img { border-radius: 10px; }`
 * scoped to blocks that include the Additional CSS class: featured
 * ------------------------------------------------------------------------- */

.wp-block-kadence-postgrid.featured .kadence-post-image {
	border-radius: 10px 10px 0 0;
	overflow: hidden;
}

.wp-block-kadence-postgrid.featured .kadence-post-image img {
	border-radius: 10px 10px 0 0 !important;
}

/* -------------------------------------------------------------------------
 * Core RSS block — Latest Jobs (matches Annex “Latest Jobs” card; all RSS site-wide)
 * Goal: bold navy titles (not default blue links), flush with heading, dividers, tight rhythm.
 * Location line from Figma omitted — RSS has title only. “Post job” CTA added manually in editor.
 * ------------------------------------------------------------------------- */

ul.wp-block-rss {
	list-style: none;
	margin: 0;
	padding: 0 !important;
	padding-inline-start: 0;
}

.wp-block-rss__item {
	position: relative;
	margin: 0;
	padding: 0.65rem 0;
	list-style: none;
}

/* Inset divider between items (Figma: rule does not span full card width) */
.wp-block-rss__item:not(:last-child)::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0px;
	right: 0px;
	height: 1px;
	width:100%;
	background: var(--global-palette7);
}

.wp-block-rss__item-title {
	margin: 0;
	font-size: inherit;
	line-height: inherit;
}

.wp-block-rss__item-title a {
	display: inline;
	font-size: 16px;
	font-weight: 700;
	line-height: 24px;
	color: var(--global-palette3);
	text-decoration: none;
}

.wp-block-rss__item-title a:hover {
	color: var(--global-palette2);
	text-decoration: none;
}

.wp-block-rss__item-title a:focus-visible {
	color: var(--global-palette2);
	outline: 2px solid var(--global-palette2);
	outline-offset: 2px;
}

/* -------------------------------------------------------------------------
 * [pubx_upcoming_events] — list only; heading from editor block
 * ------------------------------------------------------------------------- */

.pubx-upcoming-events__list {
	list-style: none;
	margin: 0.75rem 0 0;
	padding: 0 !important;
	padding-inline-start: 0;
}

.pubx-upcoming-events__item {
	position: relative;
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 1rem;
	margin: 0;
	padding: 0.65rem 0;
	list-style: none;
	min-width: 0;
}

.pubx-upcoming-events__item:not(:last-child)::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 1px;
	background: var(--global-palette7);
}

.pubx-upcoming-events__date {
	flex-shrink: 0;
	min-width: 3.25rem;
}

.pubx-upcoming-events__time {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 0.35rem;
	margin: 0;
	font-weight: 700;
	line-height: 1;
	color: var(--global-palette3);
}

.pubx-upcoming-events__day {
	font-size: 1.75rem;
	font-weight: 700;
	letter-spacing: -0.02em;
}

.pubx-upcoming-events__month {
	font-size: 0.6875rem;
	font-weight: 600;
	color: var(--global-palette6);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.pubx-upcoming-events__body {
	flex: 1 1 auto;
	min-width: 0;
}

.pubx-upcoming-events__item-title {
	display: inline;
	font-size: 16px;
	font-weight: 700;
	line-height: 24px;
	color: var(--global-palette3);
	text-decoration: none;
}

.pubx-upcoming-events__item-title:hover {
	color: var(--global-palette2);
	text-decoration: none;
}

.pubx-upcoming-events__item-title:focus-visible {
	color: var(--global-palette1);
	outline: 2px solid var(--global-palette1);
	outline-offset: 2px;
}


/* Equal card heights */
.kt-post-slider-item {
    display: flex;
    align-self: stretch;
}
.kt-blocks-post-grid-item-inner-wrap {
    height: 100%;
}


/* Image on right - scoped to latest-list only */
.latest-list .kt-blocks-post-grid-item .kt-feat-image-align-left {
    grid-template-columns: auto 30% !important;
}

.latest-list .kt-blocks-post-grid-item .kt-feat-image-align-left .kadence-post-image {
    order: 2;
}

/* Fix clipped bottom box shadow */
.splide__track {
    padding-bottom: 15px !important;
    margin-bottom: -15px !important;
}
.splide__list {
    padding-bottom: 5px !important;
}

.kb-splide .splide__arrow {
	width: 2.5em !important;
	height: 2.5em !important;
	border-radius: 30px !important;
}

.kt-post-grid-layout-carousel .splide.kb-slider-group-arrows .splide__arrows {
    gap: 0.5rem !important;
}


/* Kadence off-canvas trigger: label after hamburger (text from former aria-label; see pubx-offcanvas-label.js) */
.wp-block-kadence-off-canvas-trigger.pubx-offcanvas-trigger--labeled {
	display: inline-flex;
	flex-direction: row;
	align-items: center;
	gap: 0.4em;
}

.wp-block-kadence-off-canvas-trigger svg {
	flex-shrink: 0;
}

.pubx-offcanvas-trigger__label {
	font-size: var(--global-kb-font-size-sm, 0.9rem);
	line-height: 1.4em;
	font-weight: bold;
	white-space: nowrap;
}

/* Keep "Menu" label visible beside hamburger on all breakpoints */
@media screen and (max-width: 767.98px) {
	.wp-block-kadence-off-canvas-trigger.pubx-offcanvas-trigger--labeled {
		position: relative;
	}

	.pubx-offcanvas-trigger__label {
		position: static;
		width: auto;
		height: auto;
		margin: 0;
		overflow: visible;
		clip: auto;
		clip-path: none;
		white-space: nowrap;
	}
}

@media screen and (min-width: 768px) {
	.pubx-offcanvas-trigger__label {
		position: static;
		width: auto;
		height: auto;
		margin: 0;
		overflow: visible;
		clip: auto;
		clip-path: none;
	}
}

/* Off-canvas header row: let search field fill all remaining width */
.wp-block-group.is-nowrap:has(> .wp-block-kadence-off-canvas-trigger) {
	width: 100%;
	align-items: center;
}

.wp-block-group.is-nowrap:has(> .wp-block-kadence-off-canvas-trigger) > .kb-row-layout-wrap {
	flex: 1 1 auto;
	min-width: 0;
}

.wp-block-group.is-nowrap:has(> .wp-block-kadence-off-canvas-trigger) .kb-search,
.wp-block-group.is-nowrap:has(> .wp-block-kadence-off-canvas-trigger) .kb-search-form,
.wp-block-group.is-nowrap:has(> .wp-block-kadence-off-canvas-trigger) .kb-search-input-wrapper,
.wp-block-group.is-nowrap:has(> .wp-block-kadence-off-canvas-trigger) .kb-search-input {
	width: 100%;
	max-width: 100%;
}

/* trending style start — ~10px breathing room above/below each divider */
ul.wpp-list {
	margin:0 !important;
	padding:0 !important;
}

.wpp-list li {
	border-bottom: 1px solid var(--global-palette7);
	padding-bottom: 10px;
	padding-top: 0;
	margin-bottom: 0 !important;
}

.wpp-list li + li {
	padding-top: 10px;
}

.wpp-list li .wpp-post-title {
	margin-top: 0;
	margin-bottom: 8px;
	line-height: 1.3em;
	padding-top: 0;
}

.wpp-list li .wpp-post-title a {
font-size: 16px !important;
color: var(--global-palette3);
font-weight:700;
text-decoration: none;
}

.wpp-list li .wpp-post-title a:hover,
.wpp-list li .wpp-post-title a:focus-visible {
	color: var(--global-palette2);
}

.wpp-list li .date-meta{
  margin:0;padding:0;
	color: var(--global-palette6);
}
/* trending style end */

/* Omeda content recommendations — match trending (.wpp-list); hide legacy “Recommended” heading (editor handles title) */
#omeda_content_rec .drip-form-main > .heading-primary,
.pubx-omeda-content-rec .drip-form-main > .heading-primary {
	display: none !important;
}

#omeda_content_rec .drip-form-main,
.pubx-omeda-content-rec .drip-form-main {
	padding: 0;
	margin: 0;
}

#omeda_content_rec .drip-scroll,
.pubx-omeda-content-rec .drip-scroll {
	padding: 0;
	margin: 0;
}

#omeda_content_rec ul.sidebar-ed-pick,
.pubx-omeda-content-rec ul.sidebar-ed-pick {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}

#omeda_content_rec .sidebar-ed-pick li,
.pubx-omeda-content-rec .sidebar-ed-pick li {
	border-bottom: 1px solid var(--global-palette7);
	/* Match .wpp-list li — symmetric gap around dividers (no date row) */
	padding-bottom: 10px;
	padding-top: 0;
	list-style: none;
	margin: 0;
}

#omeda_content_rec .sidebar-ed-pick li + li,
.pubx-omeda-content-rec .sidebar-ed-pick li + li {
	padding-top: 10px;
}

#omeda_content_rec .sidebar-ed-pick li h5.headline,
.pubx-omeda-content-rec .sidebar-ed-pick li h5.headline {
	/* No extra bottom margin: row padding handles space to divider (avoids double gap vs Trending) */
	margin: 0;
	padding-top: 0;
	line-height: 1.3em;
	font-size: inherit;
	font-weight: inherit;
}

#omeda_content_rec .sidebar-ed-pick li h5.headline a,
.pubx-omeda-content-rec .sidebar-ed-pick li h5.headline a {
	font-size: 16px !important;
	line-height: 1.3em;
	color: var(--global-palette3);
	font-weight: 700;
	text-decoration: none;
}

#omeda_content_rec .sidebar-ed-pick li h5.headline a:hover,
#omeda_content_rec .sidebar-ed-pick li h5.headline a:focus-visible,
.pubx-omeda-content-rec .sidebar-ed-pick li h5.headline a:hover,
.pubx-omeda-content-rec .sidebar-ed-pick li h5.headline a:focus-visible {
	color: var(--global-palette2);
}

/* Trending list is text-only; strip Omeda caret images */
#omeda_content_rec .sidebar-ed-pick li h5.headline img,
.pubx-omeda-content-rec .sidebar-ed-pick li h5.headline img {
	display: none !important;
}

/* Wallpaper ads: auto-injected on kadence_after_header priority 25 (after other Elements on that hook). */
.pubx-wallpaper-ad {
	display: none;
}

/* -------------------------------------------------------------------------
 * Mobile wall bottom ad (legacy mobilewall2 replacement).
 * ------------------------------------------------------------------------- */
.pubx-mobile-wall {
	display: none;
}

.pubx-mobile-wall--dismissed,
.pubx-mobile-wall--empty {
	display: none !important;
}

/* Mobile bottom bar when viewport is below wallpaper rail width (GPT: < 1500). */
@media screen and (max-width: 1499px) {
	#mobilewall2.pubx-mobile-wall,
	.pubx-mobile-wall {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		width: 100%;
		max-width: 100vw;
		box-sizing: border-box;
		margin: 0;
		padding: 0.35rem max(0.5rem, env(safe-area-inset-right, 0px)) env(safe-area-inset-bottom, 0px)
			max(0.5rem, env(safe-area-inset-left, 0px));
		background-color: rgba(0, 0, 0, 0.5);
		display: flex;
		flex-direction: column;
		justify-content: flex-end;
		align-items: center;
		z-index: 9998;
		pointer-events: none;
		overflow: visible;
	}

	.pubx-mobile-wall__frame {
		position: relative;
		display: inline-flex;
		align-items: flex-end;
		max-width: calc(100vw - 3rem);
		margin: 0 auto;
		padding: 0;
		box-sizing: border-box;
		pointer-events: auto;
		line-height: 0;
		font-size: 0;
	}

	.pubx-mobile-wall__slot {
		position: relative !important;
		bottom: auto !important;
		top: auto !important;
		left: auto !important;
		right: auto !important;
		width: auto !important;
		max-width: 100% !important;
		height: auto !important;
		margin: 0 !important;
		text-align: center;
		pointer-events: auto;
		line-height: 0;
	}

	.pubx-mobile-wall__slot > div {
		position: relative !important;
		display: block !important;
		margin: 0 auto !important;
		max-width: 100% !important;
		line-height: 0 !important;
		font-size: 0 !important;
	}

	.pubx-mobile-wall__slot iframe {
		display: block !important;
		margin: 0 auto !important;
		max-width: 100vw !important;
		vertical-align: top;
	}

	/* Tablet / small desktop: clamp wide leaderboard creatives only. */
	@media screen and (min-width: 769px) {
		.pubx-mobile-wall__slot iframe {
			max-width: 100vw !important;
			max-height: 90px !important;
		}

		/* 320×50 / 300×50: keep box tight (height:auto was inflating to 90px). */
		.pubx-mobile-wall__slot iframe[height="50"] {
			height: 50px !important;
			max-height: 50px !important;
		}

		.pubx-mobile-wall__slot iframe[height="90"] {
			height: 90px !important;
			max-height: 90px !important;
		}
	}

	.pubx-mobile-wall__close {
		position: absolute;
		left: 100%;
		margin-left: 20px;
		top: 50%;
		transform: translateY(-50%);
		width: 1.5rem;
		height: 1.5rem;
		border: 0;
		border-radius: 999px;
		background: rgba(0, 0, 0, 0.85);
		color: #fff;
		font-size: 1.1rem;
		line-height: 1;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		cursor: pointer;
		pointer-events: auto;
		padding: 0;
		flex-shrink: 0;
	}

	.pubx-mobile-wall__close:focus-visible {
		outline: 2px solid #fff;
		outline-offset: 2px;
	}
}

/* Keep welcome containers clipped to viewport width. */
.kadence-before-wrapper-item.pubx-top-billboard-wrap #topbackbar,
.kadence-before-wrapper-item.pubx-top-billboard-wrap #topWad {
	width: 100%;
	max-width: 100%;
	overflow: hidden;
}

/* -------------------------------------------------------------------------
 * Top ads: CNN-style 3-phase sticky pin with smooth release (all widths).
 *
 * Phase 1 (0 → pin-px):        Full stack (ads + header) pinned at viewport top.
 *                               Content scrolls naturally underneath.
 * Phase 2 (pin → pin+adHeight): Ads lift off-screen; header tracks to top: 0.
 *                               Content keeps scrolling naturally.
 * Phase 3 (past pin+adHeight):  Only header remains sticky; ads gone.
 *
 * The mechanic is symmetric: scrolling back up reverses the same curve so the
 * ads slide back in across the release zone (no lock to scrollY=0).
 *
 * - Ad wrap uses `position: sticky; top: var(--pubx-top-ad-translate)`.
 *   Animating `top` (not transform) moves the actual sticky box with zero
 *   layout reflow jitter.
 * - JS publishes two CSS vars on :root:
 *     --pubx-top-ad-stack-height  → how far the sticky header sits below
 *                                   viewport top (== adHeight during pin,
 *                                   lerps to 0 across release).
 *     --pubx-top-ad-translate     → sticky `top` on the ad wrap; lerps
 *                                   from 0 → -adHeight across release,
 *                                   stays at -adHeight after (Phase 3).
 * - The sticky header tracks ads via `top: var(--pubx-top-ad-stack-height)`.
 * - Tune the max pin duration via --pubx-top-ad-pin-px on :root; JS clamps
 *   the actual pin to measured ad height between 120px and that max.
 * ------------------------------------------------------------------------- */
:root {
	--pubx-top-ad-pin-px: 350px;
	--pubx-top-ad-stack-height: 0px;
	--pubx-top-ad-translate: 0px;
	--pubx-top-ad-content-offset: 0px;
}

.kadence-before-wrapper-item.pubx-top-billboard-wrap {
	position: sticky;
	top: var(--pubx-top-ad-translate, 0px);
	z-index: 130;
	background-color: var(--global-palette9, #fff);
	margin: 0 !important;
	padding: 0 !important;
	line-height: 0;
	font-size: 0;
	will-change: top;
}

body.admin-bar .kadence-before-wrapper-item.pubx-top-billboard-wrap {
	top: calc(var(--pubx-top-ad-translate, 0px) + 32px);
}

@media screen and (max-width: 782px) {
	body.admin-bar .kadence-before-wrapper-item.pubx-top-billboard-wrap {
		top: calc(var(--pubx-top-ad-translate, 0px) + 46px);
	}
}

/* Background bar sits behind the welcomer/billboard stack, not as a block below. */
.kadence-before-wrapper-item.pubx-top-billboard-wrap #topbackbar {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1;
	pointer-events: none;
}

.kadence-before-wrapper-item.pubx-top-billboard-wrap #topWad {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Static bar heights matched to the welcome creative sizes (320x50 mobile,
   1000x90 desktop — same 990px breakpoint as the GPT size mapping): the
   4000x100 backdrop strip is center-cropped horizontally and scaleY'd from
   its 100px down to the bar height; #topWad opens to the same height so the
   ad sits flush inside the bar as a horizontal extension of it. */
.kadence-before-wrapper-item.pubx-top-billboard-wrap #topWad {
	min-height: 50px;
}

#topbackbar iframe {
	display: block;
	position: relative;
	left: 50%;
	transform: translateX(-50%) scaleY(0.5); /* 100px strip → 50px bar */
	transform-origin: center top;
	max-width: none;
}

@media (min-width: 990px) {
	.kadence-before-wrapper-item.pubx-top-billboard-wrap #topWad {
		min-height: 90px;
	}

	#topbackbar iframe {
		transform: translateX(-50%) scaleY(0.9); /* 100px strip → 90px bar */
	}
}

/* GPT/demo creatives sneak a few px of bottom padding onto the slot shells;
   zero it so the bar-to-ad height sync is exact. */
#topbackbar .pubx-gpt-slot,
#topWad .pubx-gpt-slot {
	padding: 0 !important;
	line-height: 0;
}

#div-gpt-ad-1587474480357-0.pubx-top-billboard-slot {
	position: relative !important;
	top: auto !important;
	left: auto !important;
	right: auto !important;
	z-index: 2;
	pointer-events: auto;
	display: block;
	text-align: center;
	overflow: hidden;
}

#div-gpt-ad-1587474480357-0.pubx-top-billboard-slot > div {
	margin-left: auto !important;
	margin-right: auto !important;
	overflow: hidden !important;
	width: auto !important;
	max-width: 100% !important;
}

#div-gpt-ad-1587474480357-0.pubx-top-billboard-slot iframe {
	display: block;
	margin: 0 auto;
	max-width: 100%;
	vertical-align: top;
}

/* Empty welcomer: hide welcome shell and back bar. */
.kadence-before-wrapper-item.pubx-top-billboard-wrap:has(#div-gpt-ad-1680205143387-0.pubx-gpt-slot--empty) #topWad,
.kadence-before-wrapper-item.pubx-top-billboard-wrap:has(#div-gpt-ad-1680205143387-0.pubx-gpt-slot--empty) #topbackbar {
	display: none !important;
}

/* Welcomer filled, super billboard empty: drop empty billboard slot. */
.kadence-before-wrapper-item.pubx-top-billboard-wrap:has(#div-gpt-ad-1680205143387-0:not(.pubx-gpt-slot--empty)):has(#div-gpt-ad-1587474480357-0.pubx-gpt-slot--empty)
	#div-gpt-ad-1587474480357-0.pubx-top-billboard-slot {
	display: none !important;
}

/* Close gap between billboard wrapper and header (WP/Kadence block-root spacing). */
.kadence-before-wrapper-item.pubx-top-billboard-wrap {
	margin-bottom: 0 !important;
}

.kadence-before-wrapper-item.pubx-top-billboard-wrap + #wrapper,
.kadence-before-wrapper-item.pubx-top-billboard-wrap + #wrapper.wp-site-blocks {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

.kadence-before-wrapper-item.pubx-top-billboard-wrap + #wrapper > #inner-wrap {
	margin-top: 0 !important;
	/* Disable scroll-anchoring so the browser doesn't compensate for the
	   padding-top animation by adjusting scrollY — that would create a
	   feedback loop and cause jitter during the Phase 2 curtain-lift. */
	overflow-anchor: none;
	/* Phase 2 curtain-lift freeze: padding-top grows 0 → adHeight at the
	   same rate as scrollY, so content appears stationary while the ad/header
	   curtain rises. Held at adHeight permanently in Phase 3. */
	padding-top: var(--pubx-top-ad-content-offset, 0px) !important;
}

/* Background bar creative fills the #topbackbar layer (fluid 4000×100); clip wide GPT shell. */
.kadence-before-wrapper-item.pubx-top-billboard-wrap #topbackbar #div-gpt-ad-1733173798519-0 {
	width: 100% !important;
	max-width: 100% !important;
	overflow: hidden !important;
	height: 100% !important;
	min-height: 0 !important;
}

.kadence-before-wrapper-item.pubx-top-billboard-wrap #topbackbar #div-gpt-ad-1733173798519-0 iframe {
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	min-height: 0 !important;
}

@media screen and (min-width: 1500px) {
	/*
	 * Wallpaper is printed on `kadence_after_header` (between header element and #inner-wrap).
	 * Rails stick below the sticky header via --pubx-interscroll-sticky-offset.
	 */

	.pubx-wallpaper-ad {
		/* Tall in-flow shell so sticky rails have scroll range, without pushing
		   content down (negative margin-bottom cancels the height for layout). */
		display: block;
		position: relative;
		width: 100vw;
		max-width: none;
		left: 50%;
		margin-left: -50vw;
		height: 10000px;
		margin-bottom: -10000px;
		overflow: visible;
		padding: 0;
		pointer-events: none;
		z-index: 6;
	}

	.pubx-wallpaper-left,
	.pubx-wallpaper-right {
		/* Rail columns span the full shell height so each inner ad can stick
		   independently. */
		position: absolute;
		top: 0;
		height: 100%;
		width: 550px;
		/* Above interscroller (z:2), below masthead (z:100). */
		z-index: 6;
		pointer-events: none;
		max-height: none;
		overflow: visible;
	}

	.pubx-wallpaper-left > div,
	.pubx-wallpaper-right > div {
		/* Inner ad slot sticks below the full sticky stack (ads + header)
		   while the super billboard is still pinned, then tracks the header
		   bottom across the release, finally pinning below the header alone
		   in Phase 3. Tracks --pubx-top-ad-stack-height so the rails don't
		   slip out from under the ad band during the Phase 1 pin. */
		position: sticky;
		top: calc(var(--pubx-top-ad-stack-height, 0px) + var(--pubx-interscroll-sticky-offset, 160px));
		min-height: 1px;
		pointer-events: auto;
	}

	.pubx-wallpaper-left {
		left: calc(50% - (var(--global-content-width, 1200px) / 2) - 550px - 24px);
	}

	.pubx-wallpaper-right {
		left: calc(50% + (var(--global-content-width, 1200px) / 2) + 24px);
	}

	.pubx-wallpaper-side--empty {
		display: none !important;
	}
}

/* -------------------------------------------------------------------------
 * Secondary nav horizontal scroller with edge arrows.
 * Scoped to Kadence Navigation blocks carrying the class `.secondary-nav`.
 * ------------------------------------------------------------------------- */
.secondary-nav {
	/* Match the strip the fades sit on: `.pubx-secondary-bar` uses
	 * `--pubx-strip-bg`, which resolves to the Kadence palette color
	 * (`--global-palette7`). Keeping the same chain here means the gradient
	 * always blends into the real bar color instead of a fixed gray. */
	--pubx-secondary-nav-bg: var(--pubx-strip-bg, var(--global-palette7, #e8ecee));
	--pubx-secondary-nav-fade-width-left: 56px;
	--pubx-secondary-nav-fade-width-right: 56px;
	--pubx-secondary-nav-arrow-size: 24px;
	--pubx-secondary-nav-arrow-inset: 2px;
	--pubx-secondary-nav-arrow-gap: 10px;
	--pubx-secondary-nav-edge-space-left: calc(
		var(--pubx-secondary-nav-arrow-size) + var(--pubx-secondary-nav-arrow-gap) + var(--pubx-secondary-nav-arrow-inset) + 6px
	);
	--pubx-secondary-nav-edge-space-right: calc(
		var(--pubx-secondary-nav-fade-width-right) + var(--pubx-secondary-nav-arrow-size) + var(--pubx-secondary-nav-arrow-gap) +
			var(--pubx-secondary-nav-arrow-inset) + 8px
	);
	--pubx-secondary-nav-edge-buffer-left: 6px;
	--pubx-secondary-nav-edge-buffer-right: 16px;
	--pubx-secondary-nav-arrow-color: #2d2f33;
	--pubx-secondary-nav-arrow-disabled: #9ca0a8;
	position: relative;
	width: 100%;
	max-width: var(--global-content-width, 1200px);
	margin: 0 auto;
}

.secondary-nav nav.navigation {
	width: 100%;
}

.secondary-nav .menu-container {
	width: 100%;
	display: block !important;
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	box-sizing: border-box;
	padding-left: calc(var(--pubx-secondary-nav-edge-space-left) + var(--pubx-secondary-nav-edge-buffer-left)) !important;
	padding-right: calc(var(--pubx-secondary-nav-edge-space-right) + var(--pubx-secondary-nav-edge-buffer-right)) !important;
}

.secondary-nav .menu-container::-webkit-scrollbar {
	display: none;
}

/* Normalize Kadence Navigation Link typography so per-link overrides
 * (e.g. category-type items added later) do not appear larger than
 * the rest of the nav. Force all links to inherit container typography. */
.kb-navigation > li.wp-block-kadence-navigation-link > .kb-link-wrap > .kb-nav-link-content,
.kb-navigation > li.wp-block-kadence-navigation-link > .kb-link-wrap > .kb-nav-link-content .kb-nav-label-content {
	font-size: inherit !important;
	line-height: inherit !important;
}

/* -------------------------------------------------------------------------
 * Navigation link hover / active / current state → brand green (#49ab44).
 *
 * These colors are otherwise inherited from the Kadence Navigation block
 * color settings (Customizer/block), which Kadence prints as inline CSS, so
 * there is no literal hex to swap in this stylesheet. We override the states
 * here with !important. Applies to the main header nav and the
 * `.secondary-nav` block (same block markup). */
.wp-block-kadence-navigation-link > .kb-link-wrap > .kb-nav-link-content:hover,
.wp-block-kadence-navigation-link > .kb-link-wrap > .kb-nav-link-content:focus,
.wp-block-kadence-navigation-link > .kb-link-wrap > .kb-nav-link-content:focus-visible,
.wp-block-kadence-navigation-link.current-menu-item > .kb-link-wrap > .kb-nav-link-content,
.wp-block-kadence-navigation-link.current-menu-ancestor > .kb-link-wrap > .kb-nav-link-content,
.wp-block-kadence-navigation-link.current_page_item > .kb-link-wrap > .kb-nav-link-content {
	color: var(--pubx-brand, #49ab44) !important;
}

/* Active/hover underline or highlight bar that Kadence draws via the link
 * pseudo-element — recolor it to match. */
.wp-block-kadence-navigation-link > .kb-link-wrap > .kb-nav-link-content:hover::after,
.wp-block-kadence-navigation-link > .kb-link-wrap > .kb-nav-link-content:focus-visible::after,
.wp-block-kadence-navigation-link.current-menu-item > .kb-link-wrap > .kb-nav-link-content::after,
.wp-block-kadence-navigation-link.current-menu-ancestor > .kb-link-wrap > .kb-nav-link-content::after {
	background-color: var(--pubx-brand, #49ab44) !important;
	border-color: var(--pubx-brand, #49ab44) !important;
}

/* -------------------------------------------------------------------------
 * Mega menu (Terms List inside a Kadence Column).
 *
 * Apply by adding the CSS class `pubx-mega-menu` to the Kadence Section
 * or Column block that contains the Terms List block. Layout flows the
 * top-level topic groups into multi-column columns; parent topics render
 * as section headings, child topics render as inline-style nav links.
 * ------------------------------------------------------------------------- */

.pubx-mega-menu .kt-inside-inner-col {
	width: 100%;
	max-width: 100%;
}

/* Hide the dropdown caret on the hamburger "Menu" nav item only.
 * Selector keys off the menu icon so it survives Kadence regenerating
 * the per-block unique class when the block is edited. */
.wp-block-kadence-navigation-link:has(.link-svg-icon-fe_menu) > .kb-link-wrap > .kb-nav-dropdown-toggle-btn {
	display: none !important;
}

/* Reclaim the space Kadence reserves for the (now-hidden) toggle button
 * on the hamburger Menu item. */
.wp-block-kadence-navigation-link:has(.link-svg-icon-fe_menu) > .kb-link-wrap,
.wp-block-kadence-navigation-link:has(.link-svg-icon-fe_menu) > .kb-link-wrap > .kb-nav-link-content {
	padding-right: 0 !important;
	margin-right: 0 !important;
	gap: 0 !important;
}

/* Kadence sets a white background on horizontal nav sub-menus on desktop.
 * Null only the dropdown that holds our mega menu so the full-bleed white
 * strip behind it goes away; other dropdowns on the site keep theirs. */
@media (min-width: 1025px) {
	.wp-block-kadence-navigation.navigation-desktop-orientation-horizontal .sub-menu:has(.pubx-mega-menu) {
		background: transparent !important;
		box-shadow: none !important;
	}
}

/* Mega menu sizing.
 *
 * The dropdown opens in place below the menu button (Kadence's default
 * absolute positioning), but we constrain its width to the site's content
 * container and center it on the viewport. The hosting <li> is set to
 * `position: static` so the dropdown anchors to the full nav row, which
 * makes `left: 50%` resolve to viewport center on full-bleed nav layouts.
 *
 * Transform is pinned to `translateX(-50%)` for both hidden and open states
 * (we override the Kadence translate vars), and the transition is reduced
 * to opacity-only — that prevents the side slide-in that was happening when
 * our transform fought Kadence's animated transform vars. */
@media (min-width: 768px) {
	.wp-block-kadence-navigation.navigation-desktop-orientation-horizontal {
		position: relative;
	}

	.wp-block-kadence-navigation.navigation-desktop-orientation-horizontal
		li.wp-block-kadence-navigation-link:has(.sub-menu .pubx-mega-menu) {
		position: static !important;
	}

	.wp-block-kadence-navigation.navigation-desktop-orientation-horizontal .sub-menu:has(.pubx-mega-menu) {
		background: #fff;
		width: min(var(--global-content-width, 1220px), calc(100vw - 32px)) !important;
		max-width: calc(100vw - 32px) !important;
		min-width: 0 !important;
		left: 50% !important;
		right: auto !important;
		transform: translateX(-50%) !important;
		transition: opacity 0.15s ease-in-out !important;
	}

	/* Inner wrappers must be natural height so the outer panel is the only scroller. */
	.wp-block-kadence-navigation.navigation-desktop-orientation-horizontal .sub-menu:has(.pubx-mega-menu) > li,
	.wp-block-kadence-navigation.navigation-desktop-orientation-horizontal .sub-menu:has(.pubx-mega-menu) .pubx-mega-menu,
	.wp-block-kadence-navigation.navigation-desktop-orientation-horizontal .sub-menu:has(.pubx-mega-menu) .kb-row-layout-wrap {
		height: auto !important;
		max-height: none !important;
		overflow-y: visible !important;
		overflow-x: hidden;
	}

	/* Visual container for the mega menu content (not the outer dropdown shell). */
	.wp-block-kadence-navigation.navigation-desktop-orientation-horizontal .pubx-mega-menu > .kt-inside-inner-col {
		position: relative;
		background: #fff;
		border: 2px solid var(--global-palette12, var(--pubx-brand, #49ab44));
		border-radius: 10px !important;
		box-shadow: rgba(24, 91, 172, 0.14) 0px 12px 28px 0px, rgba(0, 0, 0, 0.08) 0px 2px 8px 0px !important;
		padding: clamp(1.25rem, 2vw, 2rem) clamp(2.75rem, 3vw, 3.5rem) clamp(1.25rem, 2vw, 2rem)
			clamp(1.25rem, 2vw, 2rem) !important;
	}

	.wp-block-kadence-navigation.navigation-desktop-orientation-horizontal
		li.wp-block-kadence-navigation-link.pubx-mega-menu-dismissed
		> .sub-menu:has(.pubx-mega-menu) {
		opacity: 0 !important;
		visibility: hidden !important;
		pointer-events: none !important;
	}
}

.pubx-mega-menu__close {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	display: none;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	padding: 0;
	border: 1px solid rgba(24, 91, 172, 0.28);
	border-radius: 999px;
	background: #fff;
	color: var(--global-palette12, var(--pubx-brand, #49ab44));
	cursor: pointer;
	font: inherit;
	font-size: 1.3rem;
	font-weight: 600;
	line-height: 1;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.pubx-mega-menu__close:hover,
.pubx-mega-menu__close:focus-visible {
	background: var(--global-palette12, var(--pubx-brand, #49ab44));
	border-color: var(--global-palette12, var(--pubx-brand, #49ab44));
	color: #fff;
}

.pubx-mega-menu__close:focus-visible {
	outline: 2px solid var(--global-palette12, var(--pubx-brand, #49ab44));
	outline-offset: 2px;
}

@media (min-width: 768px) {
	.pubx-mega-menu__close {
		display: inline-flex;
	}
}

.pubx-mega-menu .wp-block-categories-list,
.pubx-mega-menu .wp-block-categories,
.pubx-mega-menu ul.children {
	list-style: none !important;
	margin: 0;
	padding: 0;
}

.pubx-mega-menu .wp-block-categories-list,
.pubx-mega-menu .wp-block-categories {
	width: 100%;
	column-count: 3;
	column-gap: 2rem;
	column-fill: balance;
}

@media (min-width: 768px) and (max-width: 1366px) {
	.pubx-mega-menu .wp-block-categories-list,
	.pubx-mega-menu .wp-block-categories {
		column-count: 2;
	}
}

@media (max-width: 767px) {
	.pubx-mega-menu .wp-block-categories-list,
	.pubx-mega-menu .wp-block-categories {
		column-count: 1;
	}
}

.pubx-mega-menu .wp-block-categories-list > .cat-item,
.pubx-mega-menu .wp-block-categories > .cat-item {
	break-inside: avoid;
	-webkit-column-break-inside: avoid;
	page-break-inside: avoid;
	margin: 0 0 1.25rem;
	padding: 0;
}

.pubx-mega-menu .cat-item.cat-item-30525,
.pubx-mega-menu .cat-item.cat-item-29008 {
	display: none !important;
}

.pubx-mega-menu .wp-block-categories-list > .cat-item > a,
.pubx-mega-menu .wp-block-categories > .cat-item > a {
	display: block;
	font-family: inherit;
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.3;
	color: var(--global-palette3, #212121);
	text-decoration: none;
	margin-bottom: 0.4rem;
}

.pubx-mega-menu .cat-item .children {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pubx-mega-menu .cat-item .children > .cat-item {
	margin: 0;
	padding: 0;
}

.pubx-mega-menu .cat-item .children > .cat-item > a {
	display: block;
	font-family: inherit;
	font-weight: 400;
	font-size: 0.95rem;
	line-height: 1.4;
	color: var(--global-palette4, #545353);
	text-decoration: none;
	padding: 0.2rem 0;
}

.pubx-mega-menu .wp-block-categories-list > .cat-item > a:hover,
.pubx-mega-menu .wp-block-categories-list > .cat-item > a:focus-visible,
.pubx-mega-menu .cat-item .children > .cat-item > a:hover,
.pubx-mega-menu .cat-item .children > .cat-item > a:focus-visible {
	color: var(--global-palette12, var(--pubx-brand, #49ab44));
	text-decoration: none;
}

.secondary-nav ul.kb-navigation.menu {
	display: inline-flex;
	flex-wrap: nowrap;
	justify-content: flex-start !important;
	width: max-content;
	min-width: 100%;
	white-space: nowrap;
	margin: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.secondary-nav .menu-item {
	flex: 0 0 auto;
}

.secondary-nav .pubx-secondary-nav-control {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: var(--pubx-secondary-nav-arrow-size);
	height: var(--pubx-secondary-nav-arrow-size);
	border: 0;
	border-radius: 999px;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	color: var(--pubx-secondary-nav-arrow-color);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.18);
	cursor: pointer;
	z-index: 3;
}

.secondary-nav .pubx-secondary-nav-control::before {
	content: "";
	display: block;
	width: 8px;
	height: 8px;
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
}

.secondary-nav .pubx-secondary-nav-control.is-prev {
	left: var(--pubx-secondary-nav-arrow-inset);
}

.secondary-nav .pubx-secondary-nav-control.is-prev::before {
	transform: rotate(-135deg);
	margin-left: 3px;
}

.secondary-nav .pubx-secondary-nav-control.is-next {
	right: var(--pubx-secondary-nav-arrow-inset);
	font-size: 0;
	line-height: 0;
}

.secondary-nav .pubx-secondary-nav-control.is-next::before {
	transform: rotate(45deg);
	margin-right: 3px;
}

.secondary-nav .pubx-secondary-nav-control[disabled] {
	color: var(--pubx-secondary-nav-arrow-disabled);
	background: #fff;
	opacity: 1;
	cursor: default;
}

.secondary-nav.hide-left-arrow .pubx-secondary-nav-control.is-prev,
.secondary-nav.hide-right-arrow .pubx-secondary-nav-control.is-next {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

.secondary-nav::before,
.secondary-nav::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	pointer-events: none;
	z-index: 2;
	opacity: 0;
	transition: opacity 0.2s ease;
}

.secondary-nav::before {
	left: 0;
	width: var(--pubx-secondary-nav-fade-width-left);
	background: linear-gradient(to right, var(--pubx-secondary-nav-bg) 40%, transparent 100%);
}

.secondary-nav::after {
	right: 0;
	width: var(--pubx-secondary-nav-fade-width-right);
	background: linear-gradient(to left, var(--pubx-secondary-nav-bg) 40%, transparent 100%);
}

.secondary-nav.has-overflow.show-left-fade::before,
.secondary-nav.has-overflow.show-right-fade::after {
	opacity: 1;
}

/* Keep right-side hint visible (including initial load) while more items
   remain to the right — but not once the strip is scrolled to its end. */
.secondary-nav.has-overflow:not(.hide-right-arrow)::after {
	opacity: 1;
}

/* Mirror right side: show left gradient whenever left arrow is active/visible. */
.secondary-nav.has-overflow:not(.hide-left-arrow)::before {
	opacity: 1;
}

/* When left arrow is hidden at initial position, pull first menu item closer to the edge. */
.secondary-nav.hide-left-arrow .menu-container {
	padding-left: 0 !important;
}

/* Also hide left gradient when left arrow is inactive. */
.secondary-nav.hide-left-arrow::before {
	opacity: 0 !important;
}

/* Also hide right gradient once scrolled to the end of the strip. */
.secondary-nav.hide-right-arrow::after {
	opacity: 0 !important;
}

@media screen and (max-width: 1024px) {
	.secondary-nav {
		--pubx-secondary-nav-fade-width-left: 44px;
		--pubx-secondary-nav-fade-width-right: 72px;
		--pubx-secondary-nav-arrow-size: 22px;
		--pubx-secondary-nav-arrow-inset: 2px;
		--pubx-secondary-nav-arrow-gap: 8px;
	}

	.secondary-nav .pubx-secondary-nav-control.is-next {
		right: 36px;
	}

	.secondary-nav .menu-container {
		padding-right: calc(var(--pubx-secondary-nav-edge-space-right) + var(--pubx-secondary-nav-edge-buffer-right) + 36px) !important;
	}
}

@media screen and (max-width: 767.98px) {
	.secondary-nav {
		max-width: 100%;
		/* Nudge the scroll arrows inward on mobile so the round buttons
		 * don't kiss the screen edge. Desktop/tablet keep the tighter
		 * 2px inset defined above. `env(safe-area-inset-*)` handles
		 * iOS notches / gesture areas on landscape orientation. */
		--pubx-secondary-nav-arrow-inset: calc(10px + env(safe-area-inset-left, 0px));
	}

	.secondary-nav .pubx-secondary-nav-control.is-next {
		right: calc(16px + env(safe-area-inset-right, 0px));
	}

	.secondary-nav .menu-container {
		padding-left: calc(var(--pubx-secondary-nav-edge-space-left) + var(--pubx-secondary-nav-edge-buffer-left)) !important;
		padding-right: calc(
			var(--pubx-secondary-nav-edge-space-right) + var(--pubx-secondary-nav-edge-buffer-right) + 36px +
				env(safe-area-inset-right, 0px)
		) !important;
	}

}

/* -------------------------------------------------------------------------
 * Sticky site header.
 *
 * The Kadence Element that replaces the header does NOT render a
 * `<header id="masthead">` wrapper at all — it outputs its content as a
 * direct child of `#wrapper`, inside a `.kadence-element-wrap` div.
 *
 * `position: sticky` sticks within its *containing block*. `.website-header`
 * lives inside `.kadence-element-wrap`, which is only as tall as the header
 * itself — so stickying the header directly gives it zero travel room.
 *
 * The fix: make the `.kadence-element-wrap` that wraps a `.website-header`
 * the sticky element. Its containing block is `#wrapper` (full page height),
 * so the header pins correctly as the user scrolls. We scope the selector
 * with `:has()` so only header element wrappers stick — not footers or any
 * other Kadence element wrappers on the page.
 * ------------------------------------------------------------------------- */
#wrapper > .kadence-element-wrap:has(> .website-header),
#masthead.pubx-header {
	position: sticky;
	top: var(--pubx-top-ad-stack-height, 0px);
	z-index: 120;
}

body.admin-bar #wrapper > .kadence-element-wrap:has(> .website-header),
body.admin-bar #masthead.pubx-header {
	top: calc(var(--pubx-top-ad-stack-height, 0px) + 32px);
}

@media screen and (max-width: 782px) {
	body.admin-bar #wrapper > .kadence-element-wrap:has(> .website-header),
body.admin-bar #masthead.pubx-header {
		top: calc(var(--pubx-top-ad-stack-height, 0px) + 46px);
	}
}

/* -------------------------------------------------------------------------
 * Anchor-link offset (site-wide).
 *
 * `.website-header` is sticky (~160px) at the top of the viewport, so default
 * anchor scrolling — clicks on `href="#faq"` or page loads with a URL fragment
 * like `/awards/#faq` — would land the target behind the header.
 *
 * `scroll-padding-top` on the scroll root reserves that space above the target,
 * for both same-page clicks and fragment loads. A flat value (no JS, no pixel
 * math): the header is a fixed height, so this is all it takes.
 * ------------------------------------------------------------------------- */
html {
	scroll-padding-top: 170px;
}

/* WP admin bar (logged-in editors) pushes the sticky header down 32px / 46px. */
html:has(body.admin-bar) {
	scroll-padding-top: 202px;
}

@media screen and (max-width: 782px) {
	html:has(body.admin-bar) {
		scroll-padding-top: 216px;
	}
}

/* -------------------------------------------------------------------------
 * Collapse empty GPT ad slots + surrounding chrome.
 *
 * Two trigger paths (see js/pubx-ad-collapse.js and the GPT handler in
 * functions.php):
 *   - `.pubx-gpt-slot--empty`  — added to a specific slot when either
 *                                 `slotRenderEnded` returns `isEmpty`, or the
 *                                 JS fallback timer fires with no iframe
 *                                 child (covers the "no inventory" case).
 *   - `html.pubx-ad-blocked`   — added when googletag never initialises
 *                                 (ad blocker, DNS block, offline).
 *
 * Rules are ordered from narrowest (the slot div) outward to the Kadence
 * column and the pre-wrapper billboard strip that Kadence Elements emit.
 * ------------------------------------------------------------------------- */

/* 1. Empty / blocked slot div itself. */
.pubx-gpt-slot--empty,
html.pubx-ad-blocked .pubx-gpt-slot,
html.pubx-ad-blocked [id^="div-gpt-ad-"] {
	display: none !important;
}

/* 2. Sidebar BigBox columns: the Kadence column wrapping an empty BigBox
 *    slot has padding/background/shadow of its own — collapse the whole
 *    column so no empty card is left behind. */
.wp-block-kadence-column:has(> .kt-inside-inner-col > .pubx-gpt-slot--bigbox1.pubx-gpt-slot--empty),
.wp-block-kadence-column:has(> .kt-inside-inner-col > .pubx-gpt-slot--bigbox2.pubx-gpt-slot--empty),
.wp-block-kadence-column:has(> .kt-inside-inner-col > .pubx-gpt-slot--bigbox3.pubx-gpt-slot--empty),
html.pubx-ad-blocked .wp-block-kadence-column:has(> .kt-inside-inner-col > .pubx-gpt-slot--bigbox1),
html.pubx-ad-blocked .wp-block-kadence-column:has(> .kt-inside-inner-col > .pubx-gpt-slot--bigbox2),
html.pubx-ad-blocked .wp-block-kadence-column:has(> .kt-inside-inner-col > .pubx-gpt-slot--bigbox3) {
	display: none !important;
}

/* 3. Pre-wrapper top billboard strip. Kadence Elements often put AN_WelcomeTop
 *    and the super billboard in the same `.kadence-before-wrapper-item`.
 *    Collapse the strip only when the super billboard is empty *and* no other
 *    slot in that row still has inventory (otherwise hiding the row removes
 *    the welcome ad when the billboard does not run). */
.kadence-before-wrapper-item:has([id^="div-gpt-ad-1587474480357-"].pubx-gpt-slot--empty):not(:has(#div-gpt-ad-1680205143387-0:not(.pubx-gpt-slot--empty))):not(:has(#div-gpt-ad-1733173798519-0:not(.pubx-gpt-slot--empty))),
html.pubx-ad-blocked .kadence-before-wrapper-item:has([id^="div-gpt-ad-1587474480357-"]) {
	display: none !important;
}

/* 4. Article billboard: the slot div itself carries the 16px vertical
 *    padding inline, so rule (1) already removes the padding when hidden. No
 *    extra container work needed. */

/* 5. Interscroller: legacy rule (~line 73) already handles `.pubx-interscroll--empty`.
 *    Extend to ad-blocked mode so the tunnel never opens. */
html.pubx-ad-blocked .pubx-interscroll {
	display: none !important;
}

/* 6. Wallpaper rails: existing `.pubx-wallpaper-side--empty` hides each
 *    side individually; also hide the whole rig when blocked. */
html.pubx-ad-blocked .pubx-wallpaper-ad {
	display: none !important;
}

/* 7. Mobile wall bottom bar is already collapsed via `.pubx-mobile-wall--empty`;
 *    mirror for ad-blocked state so the dismiss X doesn't float alone. */
html.pubx-ad-blocked .pubx-mobile-wall {
	display: none !important;
}

/* -------------------------------------------------------------------------
 * Kadence advanced heading highlight
 * ------------------------------------------------------------------------- */
.wp-block-kadence-advancedheading mark.kt-highlight {
	color: var(--global-palette2);
}

/* -------------------------------------------------------------------------
 * Category "pill" badges.
 *
 * Two markup variants render category lists in the theme — keep them in
 * sync visually:
 *   - Single posts / sponsored articles: `.taxonomy-category.wp-block-post-terms` (core block)
 *   - Loop / archive cards: `.kt-blocks-above-categories` (Kadence post grid)
 *
 * Pill = palette-2 background, white text. We scope the rules tightly to
 * those two wrappers so the styling doesn't leak onto generic post-terms
 * blocks elsewhere (footer columns, sidebars, etc.).
 *
 * The core post-terms block emits a literal " " text node (or
 * `<span class="wp-block-post-terms__separator">`) between links — once
 * each link becomes a pill, that whitespace is the inter-pill gap. The
 * Kadence variant emits raw `&nbsp;` between links; flexbox `gap` handles
 * both cleanly. We zero the separator span so it doesn't add an
 * accidental third pill of its own.
 * ------------------------------------------------------------------------- */
.taxonomy-category.wp-block-post-terms,
.kt-blocks-above-categories {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4em;
	align-items: center;
	/* Re-honour `has-text-align-center` etc. on the parent. */
	justify-content: inherit;
}

.taxonomy-category.has-text-align-center.wp-block-post-terms {
	justify-content: flex-start;
}

.kt-blocks-above-categories.has-text-align-center {
	justify-content: center;
}

.taxonomy-category.wp-block-post-terms > a,
.kt-blocks-above-categories > a {
	display: inline-block;
	padding: 0.25em 0.75em;
	border-radius: 999px;
	background-color: var(--pubx-brand-tint, #eaf6e9);
	color: var(--pubx-brand, #49ab44);
	font-size: 0.8em;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.01em;
	text-decoration: none;
	text-transform: capitalize;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.taxonomy-category.wp-block-post-terms > a:hover,
.taxonomy-category.wp-block-post-terms > a:focus-visible,
.kt-blocks-above-categories > a:hover,
.kt-blocks-above-categories > a:focus-visible {
	background-color: var(--pubx-brand-tint-hover, #c5e4c3);
	color: var(--pubx-brand, #49ab44);
	text-decoration: none;
}

.taxonomy-category.wp-block-post-terms > a:focus-visible,
.kt-blocks-above-categories > a:focus-visible {
	outline: 2px solid var(--pubx-brand, #49ab44);
	outline-offset: 2px;
}

/* -------------------------------------------------------------------------
 * Annex Webinars card chips.
 *
 * The Annex Webinars plugin ships its chips with a blue palette via inline CSS
 * (#e4f1ff bg / #185bac text). Recolour them to match the brand-green category
 * pills above. Scoped through the parent `.annex-webinars-card` block so the
 * override wins over the plugin's inline rule regardless of stylesheet order.
 * ------------------------------------------------------------------------- */
.annex-webinars-card .annex-webinars-card__chips > a,
.annex-webinars-card .annex-webinars-card__chips > span {
	background: var(--pubx-brand-tint, #eaf6e9);
	color: var(--pubx-brand, #49ab44);
}

.annex-webinars-card .annex-webinars-card__chips > a:hover,
.annex-webinars-card .annex-webinars-card__chips > a:focus-visible {
	background: var(--pubx-brand-tint-hover, #c5e4c3);
	color: var(--pubx-brand, #49ab44);
}

.annex-webinars-card .annex-webinars-card__chips > a:focus-visible {
	outline: 2px solid var(--pubx-brand, #49ab44);
	outline-offset: 2px;
}

/* Core block separator span (a literal " " or " · ") — pills already provide
 * spacing via flex gap, so neutralise the separator instead of letting it
 * paint a phantom third pill. */
.taxonomy-category.wp-block-post-terms .wp-block-post-terms__separator {
	display: none;
}

/* Keep core post-term pills left-aligned across breakpoints. */
.taxonomy-category.wp-block-post-terms {
	justify-content: flex-start !important;
	text-align: left;
}

/* Single article pages: center category pills. */
body.single-post .taxonomy-category.wp-block-post-terms,
body.single-sponsored .taxonomy-category.wp-block-post-terms,
body.single-virtual-event .taxonomy-category.wp-block-post-terms,
body.single-ve-agenda .taxonomy-category.wp-block-post-terms,
body.single-ve-sponsor .taxonomy-category.wp-block-post-terms,
body.single-product-demo .taxonomy-category.wp-block-post-terms {
	justify-content: center !important;
	text-align: center;
}

/* Keep pills left-aligned inside related/query list cards on single posts. */
body.single-post .kb-query-item .taxonomy-category.wp-block-post-terms,
body.single-sponsored .kb-query-item .taxonomy-category.wp-block-post-terms {
	justify-content: flex-start !important;
	text-align: left;
}

.kt-post-loop174750_06e547-59 {margin-top:-20px !important;}


/*styles from customizer in wordress moved over to here */
.featured .kt-blocks-post-footer-left {
    flex: 1;
    display: flex;
    justify-content: flex-end;
}


.kb-search .kb-search-input[type="text"] {
  box-shadow: 0px 0px 6px 0 rgba(0, 0, 0, 0.1) !important;
}

.kb-search .kb-search-input[type="text"]:focus {
  box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.2) !important;
}

.text-right {text-align:right;}

@media screen and (min-width: 1025px) {
    .has-sidebar .content-container {
        grid-gap: 24px; 
    }
}



/*eNews Archive Style*/

span.sectiontableentryA2 {
    display: block;
    clear: both;

    /*overflow: hidden;*/
}
span.arcTitle {
    display: inline-block;
    float: left;
    width: 65%;
   
}
span.arcDate {
    display: inline-block;
    float: right;
    width: 20%;
    color: #777;
}

.enews-archive-wrapper {
    padding: 10px 5px 60px 25px;
    font-size: 14px;
    line-height: 26px;
    border: 2px solid #f2f2f2;
    margin-top: 20px;
    display: block;
    position: relative;
    box-sizing: border-box;
}
.enews-archive-wrapper a{
    transition: all linear 200ms;
    padding-left: 5px;
    padding-bottom: 5px;
    display: inline-block;
    width: 98%;
    vertical-align: top;
}
.enews-archive-wrapper span.arcTitle:before{
    content: "\27A4";
    font-size: 6px;
    position: relative;
    top: -1px;
    left: -10px;
    font: normal normal normal 14px/1 FontAwesome;
    display: inline-block;
    width: 1%;
}
@media all and (max-width: 767px){
    span.arcTitle {
        display: block;
        width: 100%;
        float: none;
    }
    span.arcDate{
        display: block;
        width: 100%;
        float: none;
        padding-left:8px;
        margin-bottom:10px;

    }
}





/* Article billboard slots — keep author-defined inline padding/border (e.g.
 * padding:26px 0; border-bottom:1px #eee solid) so the ad has breathing room
 * above and below the article copy. fitAdSlotToContainer() in functions.php
 * scales the creative inside the existing padding/border box. The inline
 * style on the slot sets margin:0, so we use !important here to add a
 * 26px gap between the bottom border and the next block. */
#div-gpt-ad-1547760826902-0,
#div-gpt-ad-1572984089226-0,
#div-gpt-ad-1643133084987-0 {
	max-width: 970px;
	margin-top: 0 !important;
	margin-left: auto !important;
	margin-right: auto !important;
	margin-bottom: 26px !important;
	text-align: center;
}

/* Home latest-list inline billboard: chrome on wrapper so empty slots collapse. */
.latest-list .pubx-home-inline-billboard,
.kt-post-grid-wrap.latest-list .pubx-home-inline-billboard {
	width: 100%;
	clear: both;
	box-sizing: border-box;
	padding: 26px 0;
	border-bottom: 1px solid var(--global-palette7, #eee);
	text-align: center;
	overflow: visible;
}

.latest-list .pubx-home-inline-billboard #div-gpt-ad-1547760826902-0,
.kt-post-grid-wrap.latest-list .pubx-home-inline-billboard #div-gpt-ad-1547760826902-0 {
	margin-bottom: 0 !important;
}

.pubx-home-inline-billboard--empty,
.pubx-home-inline-billboard:has(.pubx-gpt-slot--empty),
html.pubx-ad-blocked .pubx-home-inline-billboard {
	display: none !important;
}

/* Sidebar big box ads — keep the slot exactly 300px wide and centered in the
 * column when no scaling is needed. JS only intervenes when the column is
 * narrower than 300px. */
#div-gpt-ad-1452016996062-0,
#div-gpt-ad-1451581644708-5,
#div-gpt-ad-1451581644708-6 {
	max-width: 300px;
	margin-left: auto;
	margin-right: auto;
	padding: 0;
	text-align: center;
}

#div-gpt-ad-1452016996062-0 > div,
#div-gpt-ad-1451581644708-5 > div,
#div-gpt-ad-1451581644708-6 > div {
	display: inline-block;
	margin: 0;
}

/* TopBill background */
#div-gpt-ad-1587474480357-0
{
background-color:#EFEFEF;
	padding-top: 0px!important;
  padding-bottom: 0px!important;

}

/* Welcomer ad space */
#div-gpt-ad-1733173798519-0{
	padding-top: 0px!important;
  padding-bottom: 4px!important;
}

#div-gpt-ad-1680205143387-0{
	padding-top: 0px!important;
  padding-bottom: 10px!important;
}

/* End top ads */


/* Background colour scaler */
#div-gpt-ad-1452615684922-0 {
  width: 2300px;
  height: auto;

  transform: scale(1.2);  /* adjust as needed */

  transform-origin: top center;
  margin: 0 auto;
}




/* Skin */
#div-gpt-ad-1776285384281-0 {
  width: 2560px;   /* original creative size */
  height: auto;

  transform: scale(5.9);  /* adjust as needed */
  transform-origin: top center;

  margin: 0 auto; /* keeps it centered */
}

/* -------------------------------------------------------------------------
 * Cookie consent notice (carry-over from legacy pubx footer).
 * Floating dark card pinned to the bottom; rounded to match other cards.
 * ------------------------------------------------------------------------- */
.pubx-cookie-notice {
	position: fixed;
	left: 16px;
	right: 16px;
	bottom: 16px;
	z-index: 9999;
	max-width: 1140px;
	margin: 0 auto;
	padding: 16px 20px;
	border-radius: 10px;
	background: #303030;
	color: #efefef;
	font-size: 14px;
	line-height: 1.5;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
	box-sizing: border-box;
}

.pubx-cookie-notice--dismissed {
	display: none !important;
}

.pubx-cookie-notice__inner {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}

.pubx-cookie-notice__text {
	flex: 1 1 320px;
	margin: 0;
	color: #efefef;
}

.pubx-cookie-notice__link,
.pubx-cookie-notice__link:visited {
	color: #fff;
	text-decoration: underline;
}

.pubx-cookie-notice__link:hover,
.pubx-cookie-notice__link:focus {
	color: #fff;
	text-decoration: none;
}

.pubx-cookie-notice__accept {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 96px;
	padding: 8px 18px;
	border: 0;
	border-radius: 6px;
	background: #fff;
	color: #000;
	font-weight: 700;
	font-size: 14px;
	line-height: 1.2;
	cursor: pointer;
}

.pubx-cookie-notice__accept:hover,
.pubx-cookie-notice__accept:focus {
	background: #f1f1f1;
	color: #000;
}

.pubx-cookie-notice__accept:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
}

/* Lift the notice above the fixed mobile-wall ad when it's visible.
 * Mobile wall is ~50–90px tall + bottom padding; 110px clears it comfortably. */
.pubx-cookie-notice--above-wall {
	bottom: 110px;
}

/* Mobile: stack the button below the copy and pin to the screen edges. */
@media screen and (max-width: 600px) {
	.pubx-cookie-notice {
		left: 12px;
		right: 12px;
		bottom: 12px;
		padding: 14px 16px;
	}

	.pubx-cookie-notice__inner {
		gap: 12px;
	}

	.pubx-cookie-notice__accept {
		width: 100%;
	}

	.pubx-cookie-notice--above-wall {
		bottom: 100px;
	}
}


.wp-caption-text {font-size: smaller; font-color:#ccc;}

/* -------------------------------------------------------------------------
 * Redwire feed shortcode ([redwire_articles]) — archive-style query cards.
 * ------------------------------------------------------------------------- */
.pubx-redwire-wrap {
	width: 100%;
	margin: 0;
	padding: 0;
}

.pubx-redwire-grid {
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
}

ul.kb-query-grid-wrap.pubx-redwire-grid {
	padding-inline: 0 !important;
	margin-inline: 0 !important;
}

.pubx-redwire-grid > .kb-query-item.pubx-redwire-item {
	padding-inline: 0 !important;
	margin-inline: 0 !important;
}

.pubx-redwire-item {
	list-style: none;
	margin: 0 !important;
	padding: 0 0 var(--global-kb-spacing-sm, 1rem) !important;
	border-bottom: 1px solid var(--global-palette7, #eee);
}

.pubx-redwire-item:last-child {
	border-bottom: none;
	padding-bottom: 0 !important;
}

.pubx-redwire-item + .pubx-redwire-item {
	padding-top: var(--global-kb-spacing-sm, 1rem) !important;
}

/* Kadence query-loop chrome not used on Redwire cards. */
.pubx-redwire-item .kb-query-item-flip-back {
	display: none !important;
}

.pubx-redwire-item__layout {
	width: 100%;
}

.pubx-redwire-item .kt-row-column-wrap {
	display: grid;
	grid-template-columns: minmax(0, 1.618fr) minmax(0, 1fr);
	gap: var(--global-kb-gap-sm, 1rem);
	align-items: stretch;
}

.pubx-redwire-item__content .kt-inside-inner-col,
.pubx-redwire-item__media .kt-inside-inner-col {
	display: flex;
	flex-direction: column;
	justify-content: center;
	height: 100%;
}

.pubx-redwire-pill {
	display: inline-block;
	padding: 0.25em 0.75em;
	border-radius: 999px;
	background-color: var(--pubx-brand-tint, #eaf6e9);
	color: var(--pubx-brand, #49ab44);
	font-size: 0.8em;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.01em;
	text-decoration: none;
	text-transform: uppercase;
}

.pubx-redwire-item__title-link {
	display: block;
	text-decoration: none;
	color: inherit;
}

.pubx-redwire-item__title {
	margin: var(--global-kb-spacing-xxs, 0.5rem) 0;
	line-height: 1.5;
	font-size: 1.125rem;
	font-style: normal;
}

.pubx-redwire-item__title-link:hover .pubx-redwire-item__title,
.pubx-redwire-item__title-link:focus-visible .pubx-redwire-item__title {
	color: var(--global-palette1, var(--pubx-brand, #49ab44));
}

.pubx-redwire-item__excerpt {
	margin: 0 0 var(--global-kb-spacing-xxs, 0.5rem);
	color: var(--global-palette3, #1A202C);
}

.pubx-redwire-item__date {
	margin: 0;
	font-size: 0.9em;
	color: var(--global-palette10, #718096);
}

.pubx-redwire-item__image {
	margin: 0;
}

.pubx-redwire-item__image .kb-is-ratio-image {
	position: relative;
	width: 100%;
	overflow: hidden;
	border-radius: 10px;
}

.pubx-redwire-item__image .kb-image-ratio-land169::before {
	content: "";
	display: block;
	padding-top: 56.25%;
}

.pubx-redwire-item__image .kb-is-ratio-image img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 10px;
}

.pubx-redwire-more {
	margin-top: var(--global-kb-spacing-md, 1.5rem);
	text-align: center;
}

.pubx-redwire-more__link {
	display: inline-block;
	padding: 0.65em 1.5em;
	border-radius: 4px;
	background-color: var(--global-palette1, var(--pubx-brand, #49ab44));
	color: #fff;
	font-weight: 600;
	text-decoration: none;
	transition: filter 0.15s ease;
}

.pubx-redwire-more__link:hover,
.pubx-redwire-more__link:focus-visible {
	filter: brightness(1.08);
	color: #fff;
	text-decoration: none;
}

@media (max-width: 767px) {
	.pubx-redwire-item .kt-row-column-wrap {
		grid-template-columns: 1fr;
	}

	.pubx-redwire-item__media {
		order: -1;
	}

}

/* ==========================================================================
 * File-based layout — reference design (ebmag.com):
 * #F7F7F7 page, white cards (10px radius, 0 0 9px shadow), Khand section
 * titles, palette2 action blue, thumbnails right, light footer.
 * ========================================================================== */

body {
	background: var(--pubx-page-bg, #F7F7F7);
	font-family: var(--pubx-body-font, sans-serif);
	-webkit-font-smoothing: antialiased;
}

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

.pubx-container {
	max-width: var(--global-content-width, 1220px);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--global-content-edge-padding, 1rem);
	padding-right: var(--global-content-edge-padding, 1rem);
}

/* White card token. */
.pubx-card {
	background: var(--pubx-card-bg, #fff);
	border-radius: var(--pubx-card-radius, 10px);
	box-shadow: var(--pubx-card-shadow, 0 0 9px rgba(0, 0, 0, 0.1));
	padding: 1rem 1rem 1.25rem;
}

.pubx-card__title,
.pubx-section-title {
	font-family: var(--pubx-title-font, sans-serif);
	font-weight: 700;
	font-size: 24px;
	line-height: 1.2;
	letter-spacing: 0.3px;
	color: var(--pubx-heading-color, #212121);
	margin: 0 0 0.75rem;
	display: flex;
	align-items: center;
	gap: 0.25em;
}

.pubx-card__title-link,
.pubx-section-header__link {
	text-decoration: none;
	color: inherit;
}

.pubx-card__title-link:hover .pubx-card__title,
.pubx-section-header__link:hover .pubx-section-title {
	color: var(--pubx-brand, #185bac);
}

.pubx-chevron {
	font-size: 1.1em;
	line-height: 1;
	color: var(--pubx-brand, #185bac);
}

/* Jobs widget: shrink the RSS feed source title ("Manufacturing Job Site")
   so it sits below the "Latest Jobs" card heading in the hierarchy. */
.pubx-sidebar__jobs .pubx-widget__title {
	font-size: 16px;
	font-weight: 700;
	margin-bottom: 0.5rem;
}

/* Jobs widget: match Trending's list dividers — a line between each job. */
.pubx-sidebar__jobs .widget_rss > ul {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}

.pubx-sidebar__jobs .widget_rss > ul > li {
	border-bottom: 1px solid var(--global-palette7);
	padding-bottom: 10px;
	padding-top: 0;
	margin-bottom: 0 !important;
	list-style: none;
}

.pubx-sidebar__jobs .widget_rss > ul > li + li {
	padding-top: 10px;
}

.pubx-sidebar__jobs .widget_rss > ul > li:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

/* Jobs widget: match job links to the Trending post-title style
   (dark, bold, no underline) instead of the default blue link. */
.pubx-sidebar__jobs li a.rsswidget {
	font-size: 16px;
	line-height: 1.3em;
	color: var(--global-palette3);
	font-weight: 700;
	text-decoration: none;
}

.pubx-sidebar__jobs li a.rsswidget:hover,
.pubx-sidebar__jobs li a.rsswidget:focus-visible {
	color: var(--global-palette2);
}

.pubx-section-header {
	margin-bottom: 0.5rem;
}

.pubx-section-more {
	display: inline-block;
	margin-top: 1rem;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--pubx-brand, #185bac);
}

.pubx-section-more:hover {
	text-decoration: underline;
}

/* --------------------------------------------------------------------------
 * Buttons
 * ------------------------------------------------------------------------ */
.pubx-btn {
	display: inline-block;
	padding: 8px 18px;
	border-radius: 3px;
	font-weight: 700;
	font-size: 0.9rem;
	line-height: 1.3;
	text-decoration: none;
	white-space: nowrap;
	border: 1px solid transparent;
	cursor: pointer;
}

.pubx-btn--small {
	padding: 6px 14px;
	font-size: 0.9rem;
}

.pubx-btn--subscribe {
	background: var(--pubx-brand, #185bac);
	color: #fff;
}

.pubx-btn--subscribe:hover {
	background: var(--global-palette1, #040707);
	color: #fff;
}

.pubx-btn--dark {
	background: var(--global-palette1, #040707);
	color: #fff;
}

.pubx-btn--dark:hover {
	background: var(--pubx-brand, #185bac);
	color: #fff;
}

.pubx-btn--light {
	background: #fff;
	color: var(--global-palette1, #040707);
}

.pubx-btn--light:hover {
	background: var(--global-palette6, #c5c5c5);
}

.pubx-btn--outline-light {
	background: transparent;
	border-color: #fff;
	color: #fff;
}

.pubx-btn--outline-light:hover {
	border-color: var(--global-palette6, #c5c5c5);
	color: var(--global-palette6, #c5c5c5);
}

/* --------------------------------------------------------------------------
 * Header
 * ------------------------------------------------------------------------ */
#masthead.pubx-header {
	background: var(--pubx-card-bg, #fff);
}

.pubx-header__inner {
	max-width: var(--global-content-width, 1220px);
	margin: 0 auto;
	padding: 0 var(--global-content-edge-padding, 1rem);
}

.pubx-header__row--main .pubx-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	padding-top: 14px;
	padding-bottom: 14px;
}

.pubx-header__brand {
	display: flex;
	align-items: center;
	gap: 16px;
	min-width: 0;
}

.pubx-logo__img {
	max-height: 74px;
	width: auto;
	display: block;
}

.pubx-logo--text {
	font-family: var(--pubx-title-font, sans-serif);
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--pubx-heading-color, #212121);
	text-decoration: none;
}

.pubx-header__sponsor-tag {
	line-height: 0;
}

.pubx-header__right {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 10px;
	flex: 1 1 auto;
	max-width: 900px;
}

.pubx-search-form {
	display: flex;
	width: 100%;
	max-width: 816px;
	border: 1px solid var(--pubx-strip-bg, #e8ecee);
	border-radius: 8px;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
	transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.pubx-search-form:focus-within {
	border-color: var(--pubx-brand, #185bac);
	box-shadow: 0 3px 12px rgba(0, 0, 0, 0.14);
}

.pubx-search-form .pubx-search-form__input {
	flex: 1 1 auto;
	border: 0;
	box-shadow: none;
	background: transparent;
	padding: 10px 14px;
	font-size: 1rem;
	font-family: inherit;
	outline: none;
	min-width: 0;
}

.pubx-search-form .pubx-search-form__input::placeholder {
	color: #d2d2d2;
	opacity: 1;
}

.pubx-search-form__submit {
	border: 0;
	border-left: 1px solid var(--pubx-strip-bg, #e8ecee);
	background: transparent;
	padding: 0 14px;
	cursor: pointer;
	color: var(--pubx-text-muted, #545353);
	display: inline-flex;
	align-items: center;
}

.pubx-header__nav {
	display: flex;
	align-items: center;
	gap: 4px;
	flex-wrap: nowrap;
	white-space: nowrap;
	justify-content: space-between;
	width: 100%;
	max-width: 816px;
	align-self: flex-end;
}

.pubx-header__nav .pubx-primary-nav__list {
	flex: 1 1 auto;
	justify-content: space-between;
	margin: 0 8px;
}

@media (max-width: 1200px) {
	.pubx-header__nav {
		flex-wrap: wrap;
	}
}

.pubx-header__menu-toggle {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	background: none;
	border: 0;
	cursor: pointer;
	padding: 6px 10px;
	font-weight: 700;
	font-size: 1rem;
	font-family: inherit;
	color: var(--pubx-heading-color, #212121);
}

.pubx-header__menu-toggle:hover {
	color: var(--pubx-brand, #185bac);
}

.pubx-header__menu-icon {
	display: inline-flex;
	flex-direction: column;
	gap: 4px;
}

.pubx-header__menu-icon span {
	display: block;
	width: 20px;
	height: 2px;
	background: currentColor;
	border-radius: 2px;
}

.pubx-primary-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}

.pubx-primary-nav__list > li {
	position: relative;
}

.pubx-primary-nav__list a {
	display: block;
	padding: 6px 10px;
	font-weight: 700;
	font-size: 1rem;
	color: var(--global-palette1, #040707);
	text-decoration: none;
}

.pubx-primary-nav__list a:hover {
	color: var(--pubx-brand, #185bac);
}

.pubx-primary-nav__list .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 220px;
	background: #fff;
	border-radius: 6px;
	box-shadow: var(--pubx-card-shadow, 0 0 9px rgba(0, 0, 0, 0.1));
	list-style: none;
	margin: 0;
	padding: 6px 0;
	z-index: 135;
}

.pubx-primary-nav__list > li:hover > .sub-menu,
.pubx-primary-nav__list > li:focus-within > .sub-menu {
	display: block;
}

/* Secondary topic strip: full-width bar, arrows anchored to the inner
   content-width container. */
.pubx-secondary-bar {
	background: var(--pubx-strip-bg, #e8ecee);
}

.pubx-header .secondary-nav {
	position: relative;
}

.secondary-nav .menu-container {
	overflow-x: auto;
	scrollbar-width: none;
	width: 100%;
	min-width: 0;
}

.secondary-nav .menu-container::-webkit-scrollbar {
	display: none;
}

.pubx-secondary-nav__list {
	list-style: none;
	display: flex;
	gap: 2px;
	margin: 0;
	padding: 0;
	white-space: nowrap;
}

.pubx-secondary-nav__list a {
	display: block;
	padding: 10px 12px;
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--pubx-text-muted, #545353);
	text-decoration: none;
}

.pubx-secondary-nav__list a:hover {
	color: var(--pubx-brand, #185bac);
}

/* --------------------------------------------------------------------------
 * Menu drawer (topics from taxonomy)
 * ------------------------------------------------------------------------ */
.pubx-mega {
	position: fixed;
	top: 0;
	left: 0;
	bottom: 0;
	width: min(380px, 92vw);
	background: #fff;
	box-shadow: 6px 0 24px rgba(0, 0, 0, 0.2);
	z-index: 100000;
	overflow: hidden;
}

.pubx-mega__inner {
	height: 100%;
	display: flex;
	flex-direction: column;
	padding: 18px 22px;
}

.pubx-mega__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 14px;
}

.pubx-logo--drawer .pubx-logo__img {
	max-height: 40px;
}

.pubx-mega__close {
	background: none;
	border: 0;
	font-size: 1.9rem;
	line-height: 1;
	cursor: pointer;
	color: var(--pubx-text-muted, #545353);
	padding: 2px 8px;
}

.pubx-mega__nav {
	flex: 1 1 auto;
	overflow-y: auto;
	overscroll-behavior: contain;
}

.pubx-mega__primary {
	list-style: none;
	margin: 0 0 18px;
	padding: 0 0 14px;
	border-bottom: 1px solid var(--pubx-strip-bg, #e8ecee);
}

.pubx-mega__primary a {
	display: block;
	padding: 7px 0;
	font-weight: 700;
	font-size: 1rem;
	color: var(--pubx-heading-color, #212121);
	text-decoration: none;
}

.pubx-mega__primary a:hover {
	color: var(--pubx-brand, #185bac);
}

.pubx-mega__title {
	font-family: var(--pubx-title-font, sans-serif);
	font-size: 20px;
	font-weight: 700;
	margin: 0 0 8px;
	color: var(--pubx-heading-color, #212121);
}

.pubx-mega__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.pubx-mega__link {
	display: inline-block;
	padding: 5px 0;
	font-size: 0.95rem;
	color: var(--pubx-text-muted, #545353);
	text-decoration: none;
}

.pubx-mega__link:hover {
	color: var(--pubx-brand, #185bac);
}

.pubx-mega__list--depth-1,
.pubx-mega__list--depth-2 {
	margin-left: 16px;
}

html.pubx-mega-open body::after {
	content: '';
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.4);
	z-index: 110;
}

/* --------------------------------------------------------------------------
 * Columns (main + sidebar)
 * ------------------------------------------------------------------------ */
.pubx-columns {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(300px, 31%);
	gap: 24px;
	align-items: start;
	margin-top: 24px;
	margin-bottom: 40px;
}

.pubx-columns__main > * + * {
	margin-top: 24px;
}

@media (max-width: 1024px) {
	.pubx-columns {
		grid-template-columns: 1fr;
	}
}

/* --------------------------------------------------------------------------
 * Cards: category text, titles, dates
 * ------------------------------------------------------------------------ */
.kt-blocks-above-categories a,
.pubx-single__categories a {
	font-size: 0.72rem;
	font-weight: 600;
	text-transform: capitalize;
	text-decoration: none;
	color: var(--pubx-brand, #185bac);
	background: color-mix(in srgb, var(--pubx-brand, #185bac) 11%, #fff);
	border-radius: 999px;
	padding: 3px 9px;
	display: inline-block;
	margin-right: 4px;
}

.kt-blocks-post-grid-item .entry-title {
	font-family: var(--pubx-body-font, sans-serif);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.25;
	margin: 8px 0 6px;
}

.kt-blocks-post-grid-item .entry-title a {
	color: var(--pubx-heading-color, #212121);
	text-decoration: none;
}

.kt-blocks-post-grid-item .entry-title a:hover {
	color: var(--pubx-brand, #185bac);
}

.kt-blocks-post-grid-item .entry-content {
	font-size: 0.9rem;
	color: var(--pubx-text-muted, #545353);
	margin: 0 0 6px;
}

.kt-blocks-post-date {
	font-size: 1rem;
	color: var(--pubx-meta-color, #8d90a1);
	display: inline-block;
}

.kadence-post-image-intrisic {
	position: relative;
	overflow: hidden;
	border-radius: 6px;
}

.kadence-post-image-intrisic img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* List rows: text left, thumbnail right, divider between rows. */
.pubx-card-list > article {
	padding: 18px 0;
	border-bottom: 1px solid var(--pubx-strip-bg, #e8ecee);
}

.pubx-card-list > article:first-of-type {
	padding-top: 6px;
}

.pubx-card-list > article:last-of-type {
	border-bottom: 0;
	padding-bottom: 6px;
}

.pubx-card-list .kt-blocks-post-grid-item-inner-wrap {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 30%;
	gap: 20px;
	align-items: start;
}

.pubx-card-list .kadence-post-image {
	order: 2;
}

.pubx-card-list .kt-blocks-post-grid-item-inner {
	order: 1;
}

@media (max-width: 600px) {
	.pubx-card-list .kt-blocks-post-grid-item-inner-wrap {
		grid-template-columns: 1fr;
	}

	.pubx-card-list .kadence-post-image {
		order: 0;
	}
}

/* --------------------------------------------------------------------------
 * Deep Dives carousel (cards: image top)
 * ------------------------------------------------------------------------ */
.pubx-home-deep-dives-wrap {
	margin-top: 24px;
}

.pubx-carousel {
	position: relative;
}

.pubx-carousel__track {
	list-style: none;
	margin: 0;
	padding: 4px 2px 8px;
	display: flex;
	gap: 20px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.pubx-carousel__track::-webkit-scrollbar {
	display: none;
}

.pubx-carousel__track > li {
	flex: 0 0 calc(25% - 15px);
	scroll-snap-align: start;
	min-width: 230px;
}

.pubx-carousel__track .entry-title {
	font-size: 20px;
}

@media (max-width: 1024px) {
	.pubx-carousel__track > li {
		flex-basis: calc(33.33% - 14px);
	}
}

@media (max-width: 600px) {
	.pubx-carousel__track > li {
		flex-basis: 85%;
	}
}

.pubx-carousel__arrow {
	position: absolute;
	/* JS sets --pubx-carousel-arrow-top to the card image's mid-height so
	   the arrows center on the image on every breakpoint; 32% is the
	   pre-measure fallback. */
	top: var(--pubx-carousel-arrow-top, 32%);
	transform: translateY(-50%);
	width: 38px;
	height: 38px;
	border-radius: 50%;
	border: 1px solid var(--pubx-strip-bg, #e8ecee);
	background: #fff;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
	cursor: pointer;
	z-index: 5;
	font-size: 0.9rem;
	color: var(--pubx-heading-color, #212121);
	display: none;
}

.pubx-carousel.has-overflow .pubx-carousel__arrow {
	display: block;
}

.pubx-carousel__arrow.is-prev {
	left: -10px;
}

.pubx-carousel__arrow.is-next {
	right: -10px;
}

.pubx-carousel.at-start .pubx-carousel__arrow.is-prev,
.pubx-carousel.at-end .pubx-carousel__arrow.is-next {
	opacity: 0.3;
	pointer-events: none;
}

/* --------------------------------------------------------------------------
 * Watch & Listen
 * ------------------------------------------------------------------------ */
.pubx-media-hero {
	display: block;
	text-decoration: none;
	margin-bottom: 10px;
}

.pubx-media-hero__image img {
	width: 100%;
	height: auto;
	border-radius: 6px;
	display: block;
}

.pubx-media-hero__title {
	font-size: 20px;
	font-weight: 700;
	color: var(--pubx-heading-color, #212121);
	margin: 10px 0 4px;
}

.pubx-media-hero:hover .pubx-media-hero__title {
	color: var(--pubx-brand, #185bac);
}

.pubx-media-hero__date,
.pubx-media-list__date,
.pubx-mini-list__date {
	font-size: 0.75rem;
	color: var(--pubx-meta-color, #8d90a1);
}

.pubx-media-list,
.pubx-mini-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.pubx-media-list__item,
.pubx-mini-list__item {
	padding: 10px 0;
	border-bottom: 1px solid var(--pubx-strip-bg, #e8ecee);
}

.pubx-media-list__item:last-child,
.pubx-mini-list__item:last-child {
	border-bottom: 0;
}

.pubx-media-list__link,
.pubx-mini-list__link {
	text-decoration: none;
}

.pubx-media-list__title,
.pubx-mini-list__title {
	font-size: 16px;
	font-weight: 700;
	margin: 0 0 2px;
	color: var(--pubx-heading-color, #212121);
}

.pubx-media-list__link:hover .pubx-media-list__title,
.pubx-mini-list__link:hover .pubx-mini-list__title {
	color: var(--pubx-brand, #185bac);
}

/* --------------------------------------------------------------------------
 * CTA bands (podcast promo, Stay Connected)
 * ------------------------------------------------------------------------ */
.pubx-cta-band {
	background: var(--pubx-brand, #185bac);
	border-radius: var(--pubx-card-radius, 10px);
	padding: 28px 24px;
	text-align: center;
}

.pubx-cta-band__title {
	font-family: var(--pubx-title-font, sans-serif);
	font-size: 24px;
	font-weight: 700;
	color: #fff;
	margin: 0 0 6px;
}

.pubx-cta-band__text {
	color: var(--global-palette6, #c5c5c5);
	font-size: 0.95rem;
	margin: 0 0 16px;
}

.pubx-cta-band__buttons {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
}

/* --------------------------------------------------------------------------
 * Digital edition promo
 * ------------------------------------------------------------------------ */
.pubx-digital-promo {
	display: grid;
	grid-template-columns: 180px minmax(0, 1fr);
	gap: 24px;
	align-items: center;
}

@media (max-width: 600px) {
	.pubx-digital-promo {
		grid-template-columns: 1fr;
	}
}

.pubx-digital-promo__cover img {
	width: 100%;
	height: auto;
	border-radius: 4px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.pubx-digital-promo__body p {
	color: var(--pubx-text-muted, #545353);
	font-size: 0.95rem;
}

.pubx-digital-promo__buttons {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	margin-top: 12px;
}

/* --------------------------------------------------------------------------
 * Sidebar blocks
 * ------------------------------------------------------------------------ */
.pubx-sidebar > * + * {
	margin-top: 24px;
}

/* Center ads horizontally without overriding the sidebar's 24px vertical
   rhythm (.pubx-sidebar > * + * supplies margin-top for every block). */
.pubx-sidebar .pubx-gpt-slot {
	margin-left: auto;
	margin-right: auto;
}

.pubx-sidebar__block .wpp-list,
.pubx-sidebar__block .wp-block-rss {
	list-style: none;
	margin: 0;
	padding: 0;
}

.pubx-sidebar__block .wpp-list li,
.pubx-sidebar__block .wp-block-rss__item {
	padding: 10px 0;
	border-bottom: 1px solid var(--pubx-strip-bg, #e8ecee);
	font-size: 0.95rem;
	font-weight: 700;
}

.pubx-sidebar__block .wpp-list li:last-child,
.pubx-sidebar__block .wp-block-rss__item:last-child {
	border-bottom: 0;
}

.pubx-sidebar__block .wpp-list a,
.pubx-sidebar__block .wp-block-rss__item-title a {
	color: var(--pubx-heading-color, #212121);
	text-decoration: none;
}

.pubx-sidebar__block .wpp-list a:hover,
.pubx-sidebar__block .wp-block-rss__item-title a:hover {
	color: var(--pubx-brand, #185bac);
}

.pubx-sidebar__block .gform_button,
.pubx-sidebar__block .gform_wrapper input[type="submit"] {
	background: var(--pubx-brand, #185bac);
	color: #fff;
	border: 0;
	border-radius: 4px;
	padding: 8px 20px;
	font-weight: 700;
	cursor: pointer;
}

/* Upcoming events list (shortcode markup ported from block build). */
.pubx-upcoming-events__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.pubx-upcoming-events__item {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	padding: 10px 0;
	border-bottom: 1px solid var(--pubx-strip-bg, #e8ecee);
}

.pubx-upcoming-events__item:last-child {
	border-bottom: 0;
}

.pubx-upcoming-events__time {
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 44px;
}

.pubx-upcoming-events__day {
	font-family: var(--pubx-title-font, sans-serif);
	font-size: 24px;
	font-weight: 700;
	line-height: 1;
	color: var(--pubx-heading-color, #212121);
}

.pubx-upcoming-events__month {
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--pubx-meta-color, #8d90a1);
}

.pubx-upcoming-events__item-title {
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--pubx-heading-color, #212121);
	text-decoration: none;
}

.pubx-upcoming-events__item-title:hover {
	color: var(--pubx-brand, #185bac);
}

/* --------------------------------------------------------------------------
 * Single article
 * ------------------------------------------------------------------------ */
.pubx-single__article {
	padding: 1.5rem 1.75rem 2rem;
}

.pubx-single__header {
	text-align: center;
}

.pubx-single__title {
	font-family: var(--pubx-title-font, sans-serif);
	font-size: 32px;
	line-height: 40px;
	font-weight: 700;
	color: var(--pubx-heading-color, #212121);
	margin: 10px 0 8px;
}

.pubx-single__excerpt {
	font-size: 1.25rem;
	line-height: 1.5;
	color: var(--pubx-meta-color, #8d90a1);
	text-align: center;
	margin: 0 0 16px;
}

.pubx-single__meta {
	display: flex;
	gap: 10px;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	font-size: 0.85rem;
	color: var(--pubx-meta-color, #8d90a1);
	margin-bottom: 16px;
}

.pubx-single__meta a {
	color: inherit;
}

.pubx-single__featured img {
	width: 100%;
	height: auto;
	border-radius: 6px;
}

.pubx-single__caption {
	font-size: 0.8rem;
	color: var(--pubx-meta-color, #8d90a1);
	margin-top: 6px;
	text-align: center;
}

.pubx-single__content {
	margin-top: 20px;
}

.pubx-share {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 16px 0;
	flex-wrap: wrap;
}

.pubx-share__buttons {
	display: flex;
	gap: 8px;
}

.pubx-share__btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	border-radius: 20px;
	padding: 4px 14px;
	font-size: 12px;
	font-weight: 700;
	color: #fff;
	text-decoration: none;
}

.pubx-share__btn--facebook {
	background: #1877f2;
}

.pubx-share__btn--linkedin {
	background: #0073b1;
}

.pubx-share__btn:hover {
	opacity: 0.85;
	color: #fff;
}

.pubx-share__print {
	font-size: 0.85rem;
	color: var(--pubx-meta-color, #8d90a1);
	text-decoration: none;
}

.pubx-share__print:hover {
	color: var(--pubx-brand, #185bac);
}

.pubx-single__topics {
	background: var(--pubx-page-bg, #F7F7F7);
	border-radius: 6px;
	padding: 14px 18px;
	margin: 20px 0;
}

.pubx-single__topics-title {
	font-size: 16px;
	font-weight: 700;
	margin: 0 0 6px;
	color: var(--pubx-text-muted, #545353);
}

.pubx-single__topics-list a {
	color: var(--pubx-brand, #185bac);
	text-decoration: underline;
	margin-right: 12px;
	font-size: 0.9rem;
}

.pubx-single__bottom-billboard {
	margin: 4px 0;
}

.pubx-post-nav {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	font-size: 0.9rem;
	font-weight: 600;
}

.pubx-post-nav a {
	color: var(--pubx-heading-color, #212121);
	text-decoration: none;
}

.pubx-post-nav a:hover {
	color: var(--pubx-brand, #185bac);
}


/* --------------------------------------------------------------------------
 * Archives / search / pagination
 * ------------------------------------------------------------------------ */
.pubx-archive {
	margin-top: 24px;
	margin-bottom: 40px;
}

.pubx-archive__header {
	margin-bottom: 4px;
}

.pubx-archive__title {
	font-family: var(--pubx-title-font, sans-serif);
	font-size: 32px;
	font-weight: 700;
	color: var(--pubx-heading-color, #212121);
}

.pubx-archive__description {
	color: var(--pubx-text-muted, #545353);
}

.pubx-archive__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.pubx-archive__list > li {
	padding: 18px 0;
	border-bottom: 1px solid var(--pubx-strip-bg, #e8ecee);
}

.pubx-archive__list > li:last-child {
	border-bottom: 0;
}

/* Buyers' Guide company hits mixed into site search results: reuse the
   plugin's featured card (logo/name/location) but lay it out as a listing
   row — full uncropped logo left, name + location right. */
.pubx-search__company .pubx-bg-featured-card {
	display: grid;
	grid-template-columns: 180px minmax(0, 1fr);
	grid-template-rows: auto auto;
	align-items: center;
	column-gap: 20px;
	row-gap: 2px;
}

.pubx-search__company .pubx-bg-featured-card__logo {
	grid-row: 1 / span 2;
	height: auto;
	margin-bottom: 0;
}

.pubx-search__company .pubx-bg-featured-card__logo img {
	max-height: 90px;
}

.pubx-search__company .pubx-bg-featured-card__name {
	align-self: end;
}

.pubx-search__company .pubx-bg-featured-card__location {
	align-self: start;
}

@media (max-width: 599px) {
	.pubx-search__company .pubx-bg-featured-card {
		grid-template-columns: 120px minmax(0, 1fr);
		column-gap: 14px;
	}

	.pubx-search__company .pubx-bg-featured-card__logo img {
		max-height: 64px;
	}
}

.pubx-archive__list .kt-blocks-post-grid-item-inner-wrap {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 30%;
	gap: 20px;
	align-items: start;
}

.pubx-archive__list .kadence-post-image {
	order: 2;
}

.pubx-archive__list .kt-blocks-post-grid-item-inner {
	order: 1;
}

@media (max-width: 600px) {
	.pubx-archive__list .kt-blocks-post-grid-item-inner-wrap {
		grid-template-columns: 1fr;
	}

	.pubx-archive__list .kadence-post-image {
		order: 0;
	}
}

.pubx-pagination {
	margin-top: 24px;
}

.pubx-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.pubx-pagination .page-numbers {
	display: inline-block;
	padding: 7px 13px;
	border-radius: 4px;
	background: var(--pubx-strip-bg, #e8ecee);
	text-decoration: none;
	color: var(--pubx-heading-color, #212121);
	font-weight: 600;
	font-size: 0.9rem;
}

.pubx-pagination .page-numbers.current,
.pubx-pagination .page-numbers:hover {
	background: var(--pubx-brand, #185bac);
	color: #fff;
}

/* --------------------------------------------------------------------------
 * Footer (light)
 * ------------------------------------------------------------------------ */
.pubx-footer {
	margin-top: 40px;
	padding: 0 0 28px;
}

.pubx-footer__inner {
	max-width: var(--global-content-width, 1220px);
	margin: 0 auto;
	padding: 0 var(--global-content-edge-padding, 1rem);
}

.pubx-footer .pubx-cta-band--connect {
	margin-bottom: 40px;
}

.pubx-footer__menus {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
}

@media (max-width: 767px) {
	.pubx-footer__menus {
		grid-template-columns: 1fr;
	}
}

.pubx-footer__menu-title {
	font-family: var(--pubx-title-font, sans-serif);
	font-size: 20px;
	font-weight: 700;
	color: var(--pubx-heading-color, #212121);
	margin: 0 0 10px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--global-palette6, #c5c5c5);
}

.pubx-footer__menu-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.pubx-footer__menu-list a {
	display: inline-block;
	padding: 4px 0;
	font-size: 0.9rem;
	color: var(--pubx-text-muted, #545353);
	text-decoration: none;
}

.pubx-footer__menu-list a:hover {
	color: var(--pubx-brand, #185bac);
}

.pubx-footer__network {
	margin-top: 36px;
	text-align: center;
}

.pubx-footer__network-title {
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--pubx-text-muted, #545353);
	margin: 0 0 10px;
}

.pubx-footer__network-card {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 28px;
	flex-wrap: wrap;
}

.pubx-footer__network-card img {
	max-height: 34px;
	width: auto;
	filter: grayscale(1);
	opacity: 0.75;
	transition: filter 0.15s ease, opacity 0.15s ease;
}

.pubx-footer__network-card img:hover {
	filter: none;
	opacity: 1;
}

.pubx-footer__legal {
	margin-top: 28px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px 20px;
	font-size: 0.82rem;
	color: var(--global-palette5, #808080);
	text-align: center;
}

.pubx-footer__legal p {
	margin: 0;
}

.pubx-footer__legal-links {
	list-style: none;
	display: flex;
	gap: 16px;
	margin: 0;
	padding: 0;
}

.pubx-footer__legal-links a {
	color: var(--global-palette5, #808080);
	text-decoration: none;
}

.pubx-footer__legal-links a:hover {
	color: var(--pubx-brand, #185bac);
}

.pubx-footer__social {
	list-style: none;
	display: flex;
	gap: 8px;
	margin: 0;
	padding: 0;
}

.pubx-footer__social-link {
	display: inline-flex;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--pubx-strip-bg, #e8ecee);
	align-items: center;
	justify-content: center;
	color: var(--pubx-heading-color, #212121);
	text-decoration: none;
}

.pubx-footer__social-link:hover {
	background: var(--pubx-brand, #185bac);
	color: #fff;
}

.pubx-footer__social-link svg {
	display: block;
}

/* --------------------------------------------------------------------------
 * Responsive header
 * ------------------------------------------------------------------------ */
@media (max-width: 1024px) {
	.pubx-header__row--main .pubx-header__inner {
		flex-wrap: wrap;
		gap: 12px;
	}

	.pubx-header__right {
		align-items: stretch;
		max-width: none;
		width: 100%;
	}

	.pubx-header__nav {
		justify-content: flex-start;
	}
}

@media (max-width: 767px) {
	.pubx-primary-nav__list {
		display: none;
	}

	.pubx-single__article {
		padding: 1rem 1rem 1.5rem;
	}
}



/* Search wrapper must stretch across the header's right column. */
.pubx-header__search {
	width: 100%;
	max-width: 816px;
	align-self: flex-end;
	display: flex;
	justify-content: flex-end;
}

/* Deep Dives carousel: each post is its own white card on the gray page
   background (matching ebmag.com) — photo flush to the card top with square
   bottom corners, content padded below. */
.pubx-home-deep-dives .pubx-carousel__track > li {
	background: var(--pubx-card-bg, #fff);
	border-radius: var(--pubx-card-radius, 10px);
	box-shadow: var(--pubx-card-shadow, 0 0 9px rgba(0, 0, 0, 0.1));
	overflow: hidden;
	display: flex;
}

.pubx-home-deep-dives .pubx-carousel__track > li > article,
.pubx-home-deep-dives .pubx-carousel__track .kt-blocks-post-grid-item-inner-wrap {
	display: flex;
	flex-direction: column;
	width: 100%;
}

.pubx-carousel__track .kadence-post-image-intrisic {
	border-radius: 0;
}

.pubx-carousel__track .kadence-post-image {
	margin-bottom: 14px;
}

.pubx-home-deep-dives .pubx-carousel__track .kt-blocks-post-grid-item-inner {
	padding: 0 16px 18px;
}

/* Room for the card shadows inside the scroll track. */
.pubx-home-deep-dives .pubx-carousel__track {
	padding: 6px 6px 14px;
}

/* Neutralize Kadence's global button hover/focus fills on the theme's
   bare icon/text buttons (menu toggle, search submit, drawer close). */
.pubx-header__menu-toggle,
.pubx-header__menu-toggle:hover,
.pubx-header__menu-toggle:focus,
.pubx-header__menu-toggle:active,
.pubx-search-form__submit,
.pubx-search-form__submit:hover,
.pubx-search-form__submit:focus,
.pubx-search-form__submit:active,
.pubx-mega__close,
.pubx-mega__close:hover,
.pubx-mega__close:focus,
.pubx-mega__close:active {
	background: transparent;
	border: 0;
	box-shadow: none;
}

.pubx-header__menu-toggle {
	color: var(--pubx-heading-color, #212121);
}

.pubx-header__menu-toggle:hover,
.pubx-header__menu-toggle:focus {
	color: var(--pubx-brand, #185bac);
}

.pubx-search-form__submit:hover,
.pubx-search-form__submit:focus {
	color: var(--pubx-brand, #185bac);
}

.pubx-mega__close:hover,
.pubx-mega__close:focus {
	color: var(--pubx-brand, #185bac);
}

/* Collapse any home inline-billboard wrapper whose GPT slot rendered empty
   (covers the Products bottom billboard, which the slot-specific JS empty
   handler for the Discover slot doesn't know about). */
.pubx-home-inline-billboard:has(.pubx-gpt-slot--empty) {
	display: none;
}

/* --------------------------------------------------------------------------
 * Briefs — sidebar block + scrolling archive
 * ------------------------------------------------------------------------ */
.pubx-mini-list--briefs .pubx-mini-list__date {
	display: block;
	margin-bottom: 4px;
}

.pubx-mini-list--briefs .pubx-mini-list__text {
	font-size: 0.92rem;
	line-height: 1.5;
	color: var(--pubx-heading-color, #212121);
}

.pubx-brief {
	padding: 18px 0;
	border-bottom: 1px solid var(--pubx-strip-bg, #e8ecee);
}

.pubx-brief:first-of-type {
	padding-top: 6px;
}

.pubx-brief:last-child {
	border-bottom: 0;
}

/* Briefs carry their title as a bold lead inside the content (editorial
   convention) — style that leading <strong>/<b> like the archive card
   titles, a step larger on the newest brief. */
.pubx-brief__content > p:first-child > strong:first-child,
.pubx-brief__content > p:first-child > b:first-child {
	display: block;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.25;
	margin-bottom: 6px;
	color: var(--pubx-heading-color, #212121);
}

.pubx-brief--hero .pubx-brief__content > p:first-child > strong:first-child,
.pubx-brief--hero .pubx-brief__content > p:first-child > b:first-child {
	font-size: 28px;
	line-height: 1.2;
}

.pubx-brief__date {
	display: block;
	margin: 0 0 8px;
}

/* Natural aspect ratio on all brief photos — no 16:9 crop, so portraits
   and faces stay whole. */
.pubx-brief__image img,
.pubx-brief:not(.pubx-brief--hero) .pubx-brief__thumb img {
	width: 100%;
	height: auto;
	border-radius: 6px;
	display: block;
}

.pubx-brief__image img {
	margin-bottom: 12px;
}

/* Rows: text left, photo right at 30%, matching the archive list. */
.pubx-brief:not(.pubx-brief--hero) {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 30%;
	gap: 20px;
	align-items: start;
}

.pubx-brief:not(.pubx-brief--hero):not(:has(.pubx-brief__thumb)) {
	grid-template-columns: 1fr;
}

@media (max-width: 600px) {
	.pubx-brief:not(.pubx-brief--hero) {
		grid-template-columns: 1fr;
	}

	.pubx-brief:not(.pubx-brief--hero) .pubx-brief__thumb {
		order: -1;
	}
}

.pubx-brief__content {
	font-size: 1rem;
	line-height: 1.6;
}

.pubx-brief__content p:last-child {
	margin-bottom: 0;
}

.pubx-briefs__loading {
	text-align: center;
	padding: 20px 0;
	color: var(--pubx-meta-color, #8d90a1);
}

/* Weekly Brief sidebar block. */
.pubx-weekly-brief__image {
	display: block;
	margin-bottom: 10px;
}

/* Portrait uploads would otherwise stretch the sidebar: crop to the same
   16:9 window the other thumbnails use. */
.pubx-weekly-brief__image img {
	width: 100%;
	aspect-ratio: 16 / 9;
	height: auto;
	object-fit: cover;
	border-radius: 6px;
	display: block;
}

.pubx-weekly-brief__title {
	margin: 0 0 2px;
}

/* Weekly Brief: date tight under the title; ALL BRIEFS link on its own line. */
.pubx-sidebar__briefs .pubx-mini-list__date {
	display: block;
	margin: 2px 0 0;
}

.pubx-sidebar__briefs .pubx-section-more {
	display: block;
	margin-top: 12px;
}

/* --------------------------------------------------------------------------
 * Desktop mega dropdown (ebmag layout): full-width panel under the header,
 * nav links row + multi-column topics tree with bold parent terms.
 * ------------------------------------------------------------------------ */
.pubx-megadrop {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	z-index: 150;
	padding: 10px 24px 24px;
}

.pubx-megadrop__inner {
	position: relative;
	max-width: 1400px;
	margin: 0 auto;
	background: var(--pubx-card-bg, #fff);
	border: 1px solid var(--pubx-brand, #185bac);
	border-radius: 6px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.25);
	padding: 32px 48px 40px;
	max-height: calc(100vh - 220px);
	overflow-y: auto;
	overscroll-behavior: contain;
	display: grid;
	grid-template-columns: 200px minmax(0, 1fr);
	gap: 8px 56px;
}

.pubx-megadrop__close {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 30px;
	height: 30px;
	min-width: 30px;
	padding: 0;
	border-radius: 50%;
	border: 1px solid var(--global-palette6, #c5c5c5);
	background: transparent;
	color: var(--pubx-text-muted, #545353);
	font-size: 1.1rem;
	line-height: 1;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.pubx-megadrop__close:hover,
.pubx-megadrop__close:focus {
	background: transparent;
	color: var(--pubx-brand, #185bac);
	border-color: var(--pubx-brand, #185bac);
	box-shadow: none;
}

.pubx-megadrop__nav {
	border-right: 1px solid var(--pubx-strip-bg, #e8ecee);
	padding-right: 24px;
}

.pubx-megadrop__nav-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.pubx-megadrop__nav-list li {
	margin: 0 0 4px;
}

.pubx-megadrop__nav-list a {
	display: block;
	padding: 5px 0;
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--global-palette1, #040707);
	text-decoration: none;
}

.pubx-megadrop__nav-list a:hover {
	color: var(--pubx-brand, #185bac);
}

/* Topics tree: parents as bold column headings, children beneath. */
.pubx-megadrop__topics .pubx-mega__list--depth-0 {
	columns: 3;
	column-gap: 64px;
	list-style: none;
	margin: 0;
	padding: 0;
}

@media (max-width: 1200px) {
	.pubx-megadrop__topics .pubx-mega__list--depth-0 {
		columns: 2;
	}
}

/* Let topic groups flow continuously across the columns (a group may
   split mid-list) so no column ends with a large blank gap; only keep a
   parent heading attached to its first children. */
.pubx-megadrop__topics .pubx-mega__list--depth-0 > .pubx-mega__item {
	break-inside: auto;
	margin-bottom: 22px;
}

.pubx-megadrop__topics .pubx-mega__list--depth-0 > .pubx-mega__item > .pubx-mega__link {
	break-after: avoid-column;
}

.pubx-megadrop__topics .pubx-mega__list--depth-0 > .pubx-mega__item > .pubx-mega__link {
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--pubx-heading-color, #212121);
	padding: 0 0 6px;
}

.pubx-megadrop__topics .pubx-mega__list--depth-1,
.pubx-megadrop__topics .pubx-mega__list--depth-2 {
	list-style: none;
	margin: 0;
	padding: 0;
}

.pubx-megadrop__topics .pubx-mega__list--depth-1 .pubx-mega__link {
	font-size: 1rem;
	color: var(--pubx-text-muted, #545353);
	padding: 4px 0;
}

.pubx-megadrop__topics .pubx-mega__list--depth-2 {
	margin-left: 16px;
}

.pubx-megadrop__topics .pubx-mega__link:hover {
	color: var(--pubx-brand, #185bac);
}

/* Without a primary menu the topics span the full panel width. */
.pubx-megadrop__inner > .pubx-megadrop__topics:only-child,
.pubx-megadrop__inner > .pubx-megadrop__topics:first-child {
	grid-column: 1 / -1;
}

/* The desktop dropdown never shows on mobile; the drawer never on desktop. */
@media (max-width: 767px) {
	.pubx-megadrop {
		display: none;
	}
}

@media (min-width: 768px) {
	#pubx-mega.pubx-mega {
		display: none;
	}
}

/* Homepage rows: consistent rhythm between full-width rows; row columns
   top-aligned so short sidebars don't stretch. */
.pubx-home-row {
	margin-top: 24px;
	margin-bottom: 0;
}

.pubx-home .pubx-columns.pubx-home-row {
	margin-bottom: 0;
}

.pubx-home > .pubx-interscroll {
	margin: 24px 0;
}

.pubx-home .pubx-cta-band {
	width: 100%;
}

/* Print link: align the SVG icon with its label. */
.pubx-share__print {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

/* Keep the search submit's hairline divider (the Kadence-button reset
   above zeroes borders; this re-applies just the left rule). */
.pubx-search-form__submit,
.pubx-search-form__submit:hover,
.pubx-search-form__submit:focus,
.pubx-search-form__submit:active {
	border-left: 1px solid var(--pubx-strip-bg, #e8ecee);
}

/* Rows without a featured image: let the text span the full row instead of
   reserving the thumbnail column. */
.pubx-card-list .kt-blocks-post-grid-item-inner-wrap:not(:has(.kadence-post-image)),
.pubx-archive__list .kt-blocks-post-grid-item-inner-wrap:not(:has(.kadence-post-image)) {
	grid-template-columns: 1fr;
}

/* Breathing room around the interscroller on every template so adjacent
   ads/cards never sit flush against it. */
section.pubx-interscroll.showad2 {
	margin-top: 24px;
	margin-bottom: 24px;
}

/* --------------------------------------------------------------------------
 * Events — archive rows + single header
 * ------------------------------------------------------------------------ */
.pubx-event-pill {
	display: inline-block;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--pubx-brand, #185bac);
	background: color-mix(in srgb, var(--pubx-brand, #185bac) 11%, #fff);
	border-radius: 999px;
	padding: 3px 12px;
	margin-bottom: 8px;
}

.pubx-event-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 30%;
	gap: 20px;
	align-items: start;
	padding: 20px 0;
	border-bottom: 1px solid var(--pubx-strip-bg, #e8ecee);
}

.pubx-event-row:first-child {
	padding-top: 6px;
}

.pubx-event-row:last-child {
	border-bottom: 0;
}

.pubx-event-row:not(:has(.pubx-event-row__thumb)) {
	grid-template-columns: 1fr;
}

@media (max-width: 600px) {
	.pubx-event-row {
		grid-template-columns: 1fr;
	}
}

.pubx-event-row__title {
	font-family: var(--pubx-body-font, sans-serif);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.25;
	margin: 0 0 6px;
}

.pubx-event-row__title a {
	color: var(--pubx-heading-color, #212121);
	text-decoration: none;
}

.pubx-event-row__title a:hover {
	color: var(--pubx-brand, #185bac);
}

.pubx-event-location {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 0.95rem;
	color: var(--pubx-text-muted, #545353);
	margin: 0;
}

.pubx-event-location svg {
	flex: 0 0 auto;
	color: var(--pubx-meta-color, #8d90a1);
}

.pubx-event-row__thumb img {
	width: 100%;
	height: auto;
	border-radius: 6px;
	border: 1px solid var(--pubx-strip-bg, #e8ecee);
	display: block;
	background: #fff;
}

/* Single event: centered header. */
.pubx-event-header {
	text-align: center;
}

.pubx-event-header .pubx-single__title {
	margin: 8px 0 10px;
}

.pubx-event-location--single {
	justify-content: center;
	margin-bottom: 4px;
}

.pubx-event-website {
	margin-top: 24px;
}

/* Archive titles inside the card: drop the underline rule and tighten
   spacing (the on-background style keeps it for anything still outside). */
.pubx-card .pubx-archive__header {
	margin-bottom: 12px;
}

.pubx-card .pubx-archive__header .pubx-archive__title {
	border-bottom: 0;
	padding-bottom: 0;
	margin-bottom: 2px;
}

/* --------------------------------------------------------------------------
 * Collapse column rows whose sidebar has nothing to show, letting the main
 * card span the full width:
 *  - the sidebar rendered empty server-side (?hide_ads=1 with the
 *    Recommended block toggled off), or
 *  - an ad blocker killed GPT (html.pubx-ad-blocked via pubx-ad-collapse.js)
 *    and the sidebar contains nothing but dead ad slots.
 * ------------------------------------------------------------------------ */
.pubx-columns:not(:has(.pubx-columns__sidebar .pubx-sidebar > *)),
html.pubx-ad-blocked .pubx-columns:not(:has(.pubx-columns__sidebar .pubx-sidebar > :not(.pubx-gpt-slot))) {
	grid-template-columns: 1fr;
}

.pubx-columns:not(:has(.pubx-columns__sidebar .pubx-sidebar > *)) > .pubx-columns__sidebar,
html.pubx-ad-blocked .pubx-columns:not(:has(.pubx-columns__sidebar .pubx-sidebar > :not(.pubx-gpt-slot))) > .pubx-columns__sidebar {
	display: none;
}

/* Footer bottom strip: magazine logo + Government of Canada funding logo
   left, legal links right; copyright and social split on the row below. */
.pubx-footer__bottom {
	margin-top: 32px;
	padding-top: 20px;
	border-top: 1px solid var(--global-palette6, #c5c5c5);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px 28px;
	flex-wrap: wrap;
}

.pubx-footer__bottom-brand {
	display: flex;
	align-items: center;
	gap: 28px;
	flex-wrap: wrap;
}

.pubx-footer__bottom-brand .pubx-logo__img {
	max-height: 35px;
}

.pubx-footer__funded {
	max-height: 35px;
	width: auto;
	display: block;
}

/* The legal links moved out of .pubx-footer__legal and lost its small
   font — match the footer menu links. */
.pubx-footer__bottom .pubx-footer__legal-links {
	font-size: 0.9rem;
}

.pubx-footer__bottom .pubx-footer__legal-links a {
	font-size: 0.9rem;
}

.pubx-footer__legal {
	margin-top: 16px;
	padding-top: 0;
	border-top: 0;
	justify-content: space-between;
	text-align: left;
}
/* --------------------------------------------------------------------------
 * Lead Driver template (page-lead-driver.php): centered column of cards —
 * intro, then image-left / text-right asset cards, then the lead form card.
 * Matches ebmag.com/lddriver/*.
 * ------------------------------------------------------------------------ */
.pubx-lead-driver {
	margin-top: 24px;
	margin-bottom: 40px;
}

.pubx-lead-driver > * + * {
	margin-top: 20px;
}

/* Intro is normal page content flow (the editor controls any columns/logo
   inside it) — never force a flex row here. */
.pubx-lead-driver__intro > * {
	max-width: 100%;
}

.pubx-lead-asset {
	display: grid;
	grid-template-columns: minmax(0, 42%) minmax(0, 1fr);
	gap: 40px;
	align-items: center;
	/* Anchor clearance is handled globally by `html { scroll-padding-top }`,
	   which tracks the live sticky-header height — no per-element offset. */
}

@media (max-width: 640px) {
	.pubx-lead-asset {
		grid-template-columns: 1fr;
		gap: 16px;
	}
}

.pubx-lead-asset__media img {
	width: 100%;
	height: auto;
	border-radius: 6px;
	display: block;
}

.pubx-lead-asset__title {
	font-family: var(--pubx-title-font, 'Khand', sans-serif);
	font-size: 24px;
	line-height: 1.2;
	font-weight: 700;
	margin: 0 0 10px;
	color: var(--pubx-heading-color, #212121);
}

.pubx-lead-asset__title a {
	color: inherit;
	text-decoration: none;
}

.pubx-lead-asset__title a:hover {
	color: var(--pubx-brand, #185bac);
}

.pubx-lead-asset__desc {
	font-size: 0.95rem;
	line-height: 1.6;
	color: var(--pubx-text-muted, #545353);
}

.pubx-lead-asset__cta {
	margin-top: 14px;
}

.pubx-lead-driver__form {
	text-align: center;
	max-width: 820px;
	margin-left: auto;
	margin-right: auto;
}

.pubx-lead-driver__form-title {
	font-family: var(--pubx-title-font, 'Khand', sans-serif);
	font-size: 24px;
	font-weight: 700;
	margin: 0 0 16px;
	color: var(--pubx-heading-color, #212121);
}

/* Left-align the Gravity Form fields inside the centered card. */
.pubx-lead-driver__form .gform_wrapper {
	text-align: left;
	max-width: 520px;
	margin: 0 auto;
}

/* Full-width page template (no sidebar): content card spans the column. */
.pubx-page--full {
	margin-top: 24px;
	margin-bottom: 40px;
}

.pubx-page--full .pubx-page__card {
	max-width: 100%;
}
