/*
 * Future Sense Elementor Posts skins
 * Figma QA: Blog Archive Desktop 14:2 / Mobile 28:146
 */

:root {
	--fs-text-primary: #242424;
	--fs-text-secondary: #686868;
	--fs-text-inverse: #ffffff;
	--fs-action-primary: #f04923;
	--fs-accent-text: #c43a24;
	--fs-background-page: #ffffff;
	--fs-background-subtle: #faf9f7;
	--fs-background-accent-soft: #fdeae5;
	--fs-border-subtle: #e5e1dc;
}

/* Shared topic/category tag */
.elementor-widget-posts .fs-insight-tag {
	display: inline-flex;
	align-items: center;
	width: max-content;
	max-width: 100%;
	padding: 8px 12px;
	border-radius: 999px;
	background: var(--fs-background-accent-soft);
	color: var(--fs-accent-text);
	font: 500 13px/18px Montserrat, Arial, sans-serif;
	letter-spacing: .1px;
	white-space: nowrap;
}

/* ---------------------------------------------------------
   FS Insight Card
   --------------------------------------------------------- */

.elementor-widget-posts.elementor-posts--skin-fs_insight_card .elementor-posts-container {
	display: grid;
	gap: 36px;
}

.elementor-widget-posts.elementor-grid-1 .elementor-posts--skin-fs_insight_card {
	grid-template-columns: 1fr;
}

.elementor-widget-posts.elementor-grid-2 .elementor-posts--skin-fs_insight_card {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.elementor-widget-posts.elementor-grid-3 .elementor-posts--skin-fs_insight_card {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.elementor-widget-posts.elementor-grid-4 .elementor-posts--skin-fs_insight_card {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.fs-insight-card {
	min-width: 0;
	margin: 0;
	background: var(--fs-background-page);
	border: 1px solid var(--fs-border-subtle);
	border-radius: 12px;
	overflow: hidden;
}

.fs-insight-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit !important;
	text-decoration: none !important;
}

.fs-insight-card__media {
	display: block;
	width: 100%;
	height: 220px;
	overflow: hidden;
	background: var(--fs-background-subtle);
}

.fs-insight-card__media--empty {
	min-height: 220px;
}

.fs-insight-card__media__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.fs-insight-card__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	width: 100%;
	padding: 24px;
}

.fs-insight-card__title {
	margin: 0;
	color: var(--fs-text-primary);
	font: 600 20px/28px Montserrat, Arial, sans-serif;
}

.fs-insight-card__excerpt {
	display: block;
	margin: 0;
	color: var(--fs-text-secondary);
	font: 400 14px/22px Montserrat, Arial, sans-serif;
}

.fs-insight-card__meta {
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--fs-text-secondary);
	font: 500 13px/18px Montserrat, Arial, sans-serif;
	letter-spacing: .1px;
}

.fs-insight-card__author {
	color: var(--fs-text-primary);
}

/* Elementor's native pagination remains available and query-aware. */
.elementor-posts--skin-fs_insight_card + .elementor-pagination,
.elementor-widget-posts:has(.elementor-posts--skin-fs_insight_card) .elementor-pagination {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	margin-top: 36px;
	text-align: left;
}

.elementor-widget-posts:has(.elementor-posts--skin-fs_insight_card) .elementor-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	margin: 0;
	padding: 0 14px;
	border: 1px solid var(--fs-border-subtle);
	border-radius: 22px;
	background: #fff;
	color: var(--fs-text-primary);
	font: 500 13px/18px Montserrat, Arial, sans-serif;
	text-decoration: none;
}

.elementor-widget-posts:has(.elementor-posts--skin-fs_insight_card) .elementor-pagination .current {
	border-color: var(--fs-action-primary);
	background: var(--fs-background-accent-soft);
	font-weight: 600;
}

.elementor-widget-posts:has(.elementor-posts--skin-fs_insight_card) .elementor-pagination .prev,
.elementor-widget-posts:has(.elementor-posts--skin-fs_insight_card) .elementor-pagination .next {
	min-width: 96px;
	font-weight: 600;
}

/* ---------------------------------------------------------
   FS Featured Insight
   --------------------------------------------------------- */

.elementor-widget-posts.elementor-posts--skin-fs_featured_insight .elementor-posts-container {
	display: block;
}

.fs-featured {
	display: grid;
	grid-template-columns: 566px minmax(0, 1fr);
	gap: 56px;
	align-items: center;
	width: 100%;
	margin: 0;
	font-family: Montserrat, Arial, sans-serif;
}

.fs-featured__media {
	display: block;
	width: 566px;
	height: 390px;
	padding: 17px;
	background: var(--fs-background-subtle);
	border: 1px solid var(--fs-border-subtle);
	border-radius: 16px;
	overflow: hidden;
	text-decoration: none !important;
}

.fs-featured__media--empty {
	min-height: 354px;
}

.fs-featured__media__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 12px;
}

.fs-featured__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
	min-width: 0;
}

.fs-featured__title {
	margin: 0;
	color: var(--fs-text-primary);
	font: 600 36px/44px Montserrat, Arial, sans-serif;
	letter-spacing: -.4px;
}

.fs-featured__title a {
	color: inherit !important;
	text-decoration: none !important;
}

.fs-featured__excerpt {
	margin: 0;
	color: var(--fs-text-secondary);
	font: 400 18px/30px Montserrat, Arial, sans-serif;
}

.fs-author-meta {
	display: flex;
	align-items: center;
	gap: 12px;
}

.fs-author-meta__avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 48px;
	width: 48px;
	height: 48px;
	overflow: hidden;
	border-radius: 24px;
	background: var(--fs-background-accent-soft);
	color: var(--fs-accent-text);
	font: 600 20px/28px Montserrat, Arial, sans-serif;
}

.fs-author-meta__avatar img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.fs-author-meta__details {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
	color: var(--fs-text-secondary);
	font: 500 13px/18px Montserrat, Arial, sans-serif;
	letter-spacing: .1px;
}

.fs-author-meta__details strong {
	color: var(--fs-text-primary);
	font-weight: 500;
}

.fs-author-meta__role {
	font: 400 14px/22px Montserrat, Arial, sans-serif;
	letter-spacing: 0;
}

.fs-date-mobile {
	display: none;
}

.fs-featured__cta {
	display: inline-flex;
	align-items: center;
	padding: 12px 18px;
	border-radius: 24px;
	background: var(--fs-action-primary);
	color: var(--fs-text-inverse) !important;
	font: 600 15px/20px Montserrat, Arial, sans-serif;
	text-decoration: none !important;
}

/* ---------------------------------------------------------
   Responsive
   --------------------------------------------------------- */

@media (max-width: 1024px) {
	.elementor-widget-posts.elementor-grid-tablet-1 .elementor-posts--skin-fs_insight_card {
		grid-template-columns: 1fr;
	}

	.elementor-widget-posts.elementor-grid-tablet-2 .elementor-posts--skin-fs_insight_card {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.elementor-widget-posts.elementor-grid-tablet-3 .elementor-posts--skin-fs_insight_card {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.fs-featured {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 36px;
	}

	.fs-featured__media {
		width: 100%;
	}
}

@media (max-width: 767px) {
	.elementor-widget-posts .fs-insight-tag {
		padding: 6px 10px;
	}

	.elementor-widget-posts.elementor-posts--skin-fs_insight_card .elementor-posts-container {
		gap: 24px;
	}

	.elementor-widget-posts.elementor-grid-mobile-1 .elementor-posts--skin-fs_insight_card {
		grid-template-columns: 1fr;
	}

	.elementor-widget-posts.elementor-grid-mobile-2 .elementor-posts--skin-fs_insight_card {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fs-insight-card__media {
		height: 190px;
	}

	.fs-insight-card__media--empty {
		min-height: 190px;
	}

	.fs-insight-card__content {
		gap: 14px;
		padding: 20px;
	}

	.fs-featured {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.fs-featured__media {
		width: 100%;
		height: 240px;
		padding: 13px;
	}

	.fs-featured__content {
		gap: 16px;
	}

	.fs-featured__title {
		font-size: 26px;
		line-height: 34px;
		letter-spacing: -.2px;
	}

	.fs-featured__excerpt {
		font-size: 16px;
		line-height: 26px;
	}

	.fs-author-meta {
		gap: 10px;
	}

	.fs-author-meta__avatar {
		flex-basis: 42px;
		width: 42px;
		height: 42px;
		border-radius: 21px;
		font-size: 13px;
		line-height: 18px;
		font-weight: 500;
	}

	.fs-author-meta__details {
		gap: 2px;
	}

	.fs-author-meta__role {
		display: none;
	}

	.fs-date-desktop {
		display: none;
	}

	.fs-date-mobile {
		display: inline;
	}
}


/* =========================================================
   FIGMA QA CORRECTIONS — archive 14:2 / mobile 28:146
   Elementor places `elementor-posts--skin-*` on the posts
   container. These rules intentionally override the generic
   Elementor Posts layout where necessary.
   ========================================================= */

/* Featured: exact desktop 566 / 56 / remaining composition. */
.elementor-widget-posts .elementor-posts-container.elementor-posts--skin-fs_featured_insight {
	display: block !important;
	width: 100% !important;
}

.elementor-widget-posts .elementor-posts-container.elementor-posts--skin-fs_featured_insight > .fs-featured {
	display: grid !important;
	grid-template-columns: 566px minmax(0, 1fr) !important;
	column-gap: 56px !important;
	row-gap: 0 !important;
	align-items: center !important;
	width: 100% !important;
	max-width: none !important;
}

.elementor-widget-posts .elementor-posts-container.elementor-posts--skin-fs_featured_insight .fs-featured__media {
	width: 566px !important;
	height: 390px !important;
	margin: 0 !important;
}

.elementor-widget-posts .elementor-posts-container.elementor-posts--skin-fs_featured_insight .fs-featured__content {
	align-self: center !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Main archive: Figma uses 36px column AND row gaps. */
.elementor-widget-posts .elementor-posts-container.elementor-posts--skin-fs_insight_card {
	display: grid !important;
	column-gap: 36px !important;
	row-gap: 36px !important;
	width: 100% !important;
	margin: 0 !important;
}

.elementor-widget-posts.elementor-grid-1 .elementor-posts-container.elementor-posts--skin-fs_insight_card {
	grid-template-columns: 1fr !important;
}
.elementor-widget-posts.elementor-grid-2 .elementor-posts-container.elementor-posts--skin-fs_insight_card {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
.elementor-widget-posts.elementor-grid-3 .elementor-posts-container.elementor-posts--skin-fs_insight_card {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
.elementor-widget-posts.elementor-grid-4 .elementor-posts-container.elementor-posts--skin-fs_insight_card {
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

/* Remove Elementor's own post margins so the CSS grid gap is the only spacing source. */
.elementor-widget-posts .elementor-posts-container.elementor-posts--skin-fs_insight_card > .fs-insight-card {
	margin: 0 !important;
	align-self: stretch !important;
}

/* Preserve the Figma card interior rhythm. */
.elementor-widget-posts .fs-insight-card__content {
	padding: 24px !important;
	gap: 16px !important;
}

/* Pagination sits 32px below the card grid in the approved archive. */
.elementor-widget-posts:has(.elementor-posts-container.elementor-posts--skin-fs_insight_card) .elementor-pagination {
	margin-top: 32px !important;
}

/* Page-level vertical rhythm for the imported Future Sense archive template. */
.elementor-element-a0000039 {
	padding-top: 88px !important;
	padding-right: 24px !important;
	padding-bottom: 96px !important;
	padding-left: 24px !important;
}

.elementor-element-a0000038 {
	width: 100% !important;
	max-width: 1200px !important;
	margin-inline: auto !important;
}

.elementor-element-a0000037 {
	display: flex !important;
	flex-direction: column !important;
	gap: 72px !important;
	width: 100% !important;
}

.elementor-element-a0000036 {
	display: flex !important;
	flex-direction: column !important;
	gap: 32px !important;
	width: 100% !important;
}

/* The Latest Insights heading group is 8px eyebrow-to-heading in Figma. */
.elementor-element-a0000023 {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	gap: 8px !important;
	width: 100% !important;
	min-height: auto !important;
	overflow: visible !important;
}

/* Guard against Elementor editor state collapsing the two Atomic text elements. */
.elementor-element-w0000021,
.elementor-element-w0000022 {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
}

.elementor-element-w0000021 {
	color: #c43a24 !important;
	font-family: Montserrat, Arial, sans-serif !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	line-height: 16px !important;
	letter-spacing: 1.2px !important;
	text-transform: uppercase !important;
}

.elementor-element-w0000022 {
	color: #242424 !important;
	font-family: Montserrat, Arial, sans-serif !important;
	font-size: 36px !important;
	font-weight: 600 !important;
	line-height: 44px !important;
	letter-spacing: -.4px !important;
}

/* Topic navigation is separated from the heading and the grid by the 32px stack gap. */
.elementor-element-a0000020,
.elementor-element-a000001f {
	width: 100% !important;
}

/* Archive CTA — exact Figma band and vertical rhythm. */
.elementor-element-a000003f {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	width: 100% !important;
	padding: 72px 24px !important;
	background: #f04923 !important;
}

.elementor-element-a000003e {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 32px !important;
	width: 100% !important;
	max-width: 1200px !important;
	margin-inline: auto !important;
}

.elementor-element-a000003c {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	gap: 8px !important;
	min-width: 0 !important;
	flex: 1 1 auto !important;
}

.elementor-element-w000003a,
.elementor-element-w000003b {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	color: #fff !important;
}

@media (max-width: 1024px) {
	.elementor-widget-posts.elementor-grid-tablet-1 .elementor-posts-container.elementor-posts--skin-fs_insight_card {
		grid-template-columns: 1fr !important;
	}
	.elementor-widget-posts.elementor-grid-tablet-2 .elementor-posts-container.elementor-posts--skin-fs_insight_card {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
	.elementor-widget-posts.elementor-grid-tablet-3 .elementor-posts-container.elementor-posts--skin-fs_insight_card {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}

	.elementor-widget-posts .elementor-posts-container.elementor-posts--skin-fs_featured_insight > .fs-featured {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
		column-gap: 36px !important;
	}
	.elementor-widget-posts .elementor-posts-container.elementor-posts--skin-fs_featured_insight .fs-featured__media {
		width: 100% !important;
	}
}

@media (max-width: 767px) {
	.elementor-element-a0000039 {
		padding: 56px 24px 64px !important;
	}

	.elementor-element-a0000037 {
		gap: 56px !important;
	}

	.elementor-element-a0000036 {
		gap: 24px !important;
	}

	.elementor-element-a0000023 {
		gap: 8px !important;
	}

	.elementor-element-w0000022 {
		font-size: 26px !important;
		line-height: 34px !important;
		letter-spacing: -.2px !important;
	}

	.elementor-widget-posts .elementor-posts-container.elementor-posts--skin-fs_featured_insight > .fs-featured {
		grid-template-columns: 1fr !important;
		row-gap: 24px !important;
		column-gap: 0 !important;
	}

	.elementor-widget-posts .elementor-posts-container.elementor-posts--skin-fs_featured_insight .fs-featured__media {
		width: 100% !important;
		height: 240px !important;
		padding: 13px !important;
	}

	.elementor-widget-posts .elementor-posts-container.elementor-posts--skin-fs_insight_card {
		grid-template-columns: 1fr !important;
		column-gap: 0 !important;
		row-gap: 24px !important;
	}

	.elementor-widget-posts .fs-insight-card__content {
		padding: 20px !important;
		gap: 14px !important;
	}

	.elementor-widget-posts:has(.elementor-posts-container.elementor-posts--skin-fs_insight_card) .elementor-pagination {
		margin-top: 24px !important;
	}

	.elementor-element-a000003f {
		padding: 48px 24px !important;
	}

	.elementor-element-a000003e {
		flex-direction: column !important;
		align-items: stretch !important;
		gap: 20px !important;
	}
}


/* =========================================================
   v1.2.0 — Figma hero + featured media QA
   ========================================================= */

/* Archive hero: Figma desktop = 96px vertical padding.
   Force the hero content into a vertical stack rather than relying
   on Elementor Flexbox defaults inherited from the editor. */
.elementor-element-a0000005 {
	width: 100% !important;
	padding: 96px 24px !important;
	background: #242424 !important;
}

.elementor-element-a0000004 {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	justify-content: flex-start !important;
	gap: 20px !important;
	width: 100% !important;
	max-width: 1200px !important;
	margin-inline: auto !important;
}

.elementor-element-w0000001,
.elementor-element-w0000002,
.elementor-element-w0000003 {
	margin: 0 !important;
}

.elementor-element-w0000003 {
	width: 100% !important;
	max-width: 760px !important;
}

/* Featured media always fills the available media box.
   The skin now exposes Full bleed / Inset and Cover / Contain controls. */
.fs-featured__media {
	position: relative;
	box-sizing: border-box;
	width: 566px;
	height: 390px;
	overflow: hidden;
	border: 1px solid var(--fs-border-subtle);
	border-radius: 16px;
	background: var(--fs-background-subtle);
}

.fs-featured__media__image {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover;
	object-position: center;
	border-radius: inherit;
}

/* Recommended default: image fills the entire card/media area. */
.fs-featured--image-full .fs-featured__media {
	padding: 0 !important;
}

.fs-featured--image-full .fs-featured__media__image {
	border-radius: 15px;
}

/* Original Figma framed treatment remains selectable in Elementor. */
.fs-featured--image-inset .fs-featured__media {
	padding: 17px !important;
}

.fs-featured--image-inset .fs-featured__media__image {
	border-radius: 12px;
}

/* Image fit control. */
.fs-featured--fit-cover .fs-featured__media__image {
	object-fit: cover !important;
}

.fs-featured--fit-contain .fs-featured__media__image {
	object-fit: contain !important;
	background: var(--fs-background-subtle);
}

/* Focal-point control. */
.fs-featured--position-center .fs-featured__media__image { object-position: center !important; }
.fs-featured--position-top .fs-featured__media__image { object-position: top center !important; }
.fs-featured--position-bottom .fs-featured__media__image { object-position: bottom center !important; }
.fs-featured--position-left .fs-featured__media__image { object-position: center left !important; }
.fs-featured--position-right .fs-featured__media__image { object-position: center right !important; }

@media (max-width: 767px) {
	.elementor-element-a0000005 {
		padding: 56px 24px !important;
	}

	.elementor-element-a0000004 {
		gap: 16px !important;
	}

	.elementor-element-w0000003 {
		max-width: 100% !important;
	}

	.fs-featured--image-inset .fs-featured__media {
		padding: 13px !important;
	}
}


/* =========================================================
   v1.2.1 — neutral media labels + archive card image controls
   ========================================================= */

/* Archive card image boxes stay a consistent height regardless of source image ratio. */
.fs-insight-card__media {
	position: relative;
	width: 100%;
	height: 220px;
	overflow: hidden;
	background: var(--fs-background-subtle);
}

.fs-insight-card__media__image {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover;
	object-position: center;
}

/* Image Fit control. */
.fs-insight-card--fit-cover .fs-insight-card__media__image {
	object-fit: cover !important;
}

.fs-insight-card--fit-contain .fs-insight-card__media__image {
	object-fit: contain !important;
	background: var(--fs-background-subtle);
}

/* Image Focal Point control. */
.fs-insight-card--position-center .fs-insight-card__media__image { object-position: center !important; }
.fs-insight-card--position-top .fs-insight-card__media__image { object-position: top center !important; }
.fs-insight-card--position-bottom .fs-insight-card__media__image { object-position: bottom center !important; }
.fs-insight-card--position-left .fs-insight-card__media__image { object-position: center left !important; }
.fs-insight-card--position-right .fs-insight-card__media__image { object-position: center right !important; }

@media (max-width: 767px) {
	.fs-insight-card__media {
		height: 190px;
	}
}


/* =========================================================
   v1.2.2 — hard crop/fill fix for archive grid images
   ========================================================= */

/*
 * Elementor/WordPress image rules can re-apply intrinsic image sizing.
 * Pinning the thumbnail absolutely inside the fixed media box guarantees
 * that Cover actually fills the 220px / 190px component area.
 */
.elementor-widget-posts .fs-insight-card__media {
	position: relative !important;
	display: block !important;
	width: 100% !important;
	height: 220px !important;
	min-height: 220px !important;
	overflow: hidden !important;
	background: var(--fs-background-subtle) !important;
	line-height: 0 !important;
}

.elementor-widget-posts .fs-insight-card__media > img.fs-insight-card__media__image,
.elementor-widget-posts img.fs-insight-card__media__image {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	min-width: 100% !important;
	max-width: none !important;
	height: 100% !important;
	min-height: 100% !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	object-fit: cover !important;
	object-position: center !important;
	border: 0 !important;
	border-radius: 0 !important;
	transform: none !important;
}

/* Explicit saved skin options override the default fill behaviour. */
.elementor-widget-posts .fs-insight-card--fit-cover img.fs-insight-card__media__image {
	object-fit: cover !important;
}

.elementor-widget-posts .fs-insight-card--fit-contain img.fs-insight-card__media__image {
	object-fit: contain !important;
	background: var(--fs-background-subtle) !important;
}

/* Focal point remains independent of Cover / Contain. */
.elementor-widget-posts .fs-insight-card--position-center img.fs-insight-card__media__image {
	object-position: center !important;
}
.elementor-widget-posts .fs-insight-card--position-top img.fs-insight-card__media__image {
	object-position: top center !important;
}
.elementor-widget-posts .fs-insight-card--position-bottom img.fs-insight-card__media__image {
	object-position: bottom center !important;
}
.elementor-widget-posts .fs-insight-card--position-left img.fs-insight-card__media__image {
	object-position: center left !important;
}
.elementor-widget-posts .fs-insight-card--position-right img.fs-insight-card__media__image {
	object-position: center right !important;
}

@media (max-width: 767px) {
	.elementor-widget-posts .fs-insight-card__media {
		height: 190px !important;
		min-height: 190px !important;
	}
}


/* =========================================================
   v1.2.3 — responsive grid column control fix
   ========================================================= */

/*
 * Column count is now primarily generated by Elementor from the skin's
 * responsive Columns control. These rules are fallback guards only.
 */
@media (max-width: 1024px) {
	.elementor-widget-posts.elementor-grid-tablet-1 .elementor-posts-container.elementor-posts--skin-fs_insight_card {
		grid-template-columns: 1fr !important;
	}
	.elementor-widget-posts.elementor-grid-tablet-2 .elementor-posts-container.elementor-posts--skin-fs_insight_card {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
	.elementor-widget-posts.elementor-grid-tablet-3 .elementor-posts-container.elementor-posts--skin-fs_insight_card {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
	.elementor-widget-posts.elementor-grid-tablet-4 .elementor-posts-container.elementor-posts--skin-fs_insight_card {
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 767px) {
	/* Default Figma/mobile fallback if Elementor has not yet regenerated its CSS. */
	.elementor-widget-posts .elementor-posts-container.elementor-posts--skin-fs_insight_card {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	.elementor-widget-posts.elementor-grid-mobile-1 .elementor-posts-container.elementor-posts--skin-fs_insight_card {
		grid-template-columns: minmax(0, 1fr) !important;
	}
	.elementor-widget-posts.elementor-grid-mobile-2 .elementor-posts-container.elementor-posts--skin-fs_insight_card {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
	.elementor-widget-posts.elementor-grid-mobile-3 .elementor-posts-container.elementor-posts--skin-fs_insight_card {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
	.elementor-widget-posts.elementor-grid-mobile-4 .elementor-posts-container.elementor-posts--skin-fs_insight_card {
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	}
}


/* =========================================================
   v1.3.0 — Single Insight template
   Figma: desktop 14:3 / mobile 28:147
   ========================================================= */

/* ---------- Masthead ---------- */
.elementor-element-s1000002 {
	position: relative !important;
	width: 100% !important;
	padding: 76px 24px 68px !important;
	background: #242424 !important;
}

.elementor-element-s1000003 {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	gap: 24px !important;
	width: 100% !important;
	max-width: 1200px !important;
	margin-inline: auto !important;
}

.elementor-element-s1000004 {
	width: 72px !important;
	height: 4px !important;
	min-height: 4px !important;
	border-radius: 2px !important;
	background: #f04923 !important;
}

.fs-single-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	color: rgba(255,255,255,.82);
	font: 500 13px/18px Montserrat, Arial, sans-serif;
	letter-spacing: .1px;
}

.fs-single-breadcrumb a,
.fs-single-breadcrumb span {
	color: inherit;
	text-decoration: none;
}

.fs-single-breadcrumb a:hover {
	color: #fff;
}

.fs-single-title-widget .elementor-heading-title {
	max-width: 1000px;
	margin: 0;
	color: #fff;
	font: 700 52px/60px Montserrat, Arial, sans-serif;
	letter-spacing: -.8px;
}

.fs-single-excerpt-widget .elementor-widget-container {
	max-width: 860px;
	color: rgba(255,255,255,.76);
	font: 400 18px/30px Montserrat, Arial, sans-serif;
}

.fs-single-excerpt-widget p {
	margin: 0;
}

.fs-single-meta-share {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	width: 100%;
}

.fs-single-author-meta {
	display: flex;
	align-items: center;
	gap: 12px;
}

.fs-single-author-meta__avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 48px;
	width: 48px;
	height: 48px;
	overflow: hidden;
	border-radius: 24px;
	background: #fdeae5;
	color: #c43a24;
	font: 600 20px/28px Montserrat, Arial, sans-serif;
}

.fs-single-author-meta__avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.fs-single-author-meta__details {
	display: flex;
	flex-direction: column;
	gap: 4px;
	color: #fff;
	font: 500 13px/18px Montserrat, Arial, sans-serif;
	letter-spacing: .1px;
}

.fs-single-author-meta__details strong {
	font-weight: 500;
}

.fs-single-author-meta__role {
	color: rgba(255,255,255,.66);
	font: 400 14px/22px Montserrat, Arial, sans-serif;
	letter-spacing: 0;
}

.fs-single-author-meta__date {
	color: rgba(255,255,255,.66);
}

.fs-single-share {
	display: flex;
	align-items: center;
	gap: 10px;
}

.fs-single-share__label {
	margin-right: 2px;
	color: rgba(255,255,255,.66);
	font: 500 13px/18px Montserrat, Arial, sans-serif;
	letter-spacing: .1px;
}

.fs-single-share__action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: 1px solid rgba(255,255,255,.26);
	border-radius: 22px;
	background: transparent;
	color: #fff !important;
	font: 600 15px/20px Montserrat, Arial, sans-serif;
	text-decoration: none !important;
	cursor: pointer;
}

/* ---------- Featured media ---------- */
.elementor-element-s1000009 {
	width: 100% !important;
	padding: 56px 24px !important;
}

.elementor-element-s1000009 > .e-con-inner,
.elementor-element-s1000009 > .elementor-widget,
.elementor-element-s1000009 .elementor-widget-container {
	width: 100% !important;
	max-width: 1200px !important;
	margin-inline: auto !important;
}

.fs-single-hero-media .elementor-widget-container {
	height: 520px;
	overflow: hidden;
	border-radius: 16px;
}

.fs-single-hero-media img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	border-radius: 16px !important;
}

/* ---------- Reading area ---------- */
.elementor-element-s100000b {
	width: 100% !important;
	padding: 48px 24px 96px !important;
}

.elementor-element-s100000c {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 72px !important;
	width: 100% !important;
	max-width: 1200px !important;
	margin-inline: auto !important;
}

.elementor-element-s100000d {
	width: 100% !important;
	max-width: 760px !important;
}

.fs-single-post-content {
	width: 100%;
	color: #242424;
	font: 400 18px/30px Montserrat, Arial, sans-serif;
}

.fs-single-post-content p,
.fs-single-post-content ul,
.fs-single-post-content ol,
.fs-single-post-content blockquote {
	margin-top: 0;
	margin-bottom: 28px;
}

.fs-single-post-content h2 {
	margin: 40px 0 20px;
	color: #242424;
	font: 600 36px/44px Montserrat, Arial, sans-serif;
	letter-spacing: -.4px;
}

.fs-single-post-content h3 {
	margin: 32px 0 16px;
	color: #242424;
	font: 600 26px/34px Montserrat, Arial, sans-serif;
	letter-spacing: -.2px;
}

.fs-single-post-content ul,
.fs-single-post-content ol {
	padding-left: 22px;
}

.fs-single-post-content li {
	margin-bottom: 14px;
	padding-left: 4px;
}

.fs-single-post-content li::marker {
	color: #f04923;
}

.fs-single-post-content .fs-key-takeaway {
	margin: 28px 0;
	padding: 24px;
	border-radius: 12px;
	background: #fdeae5;
}

.fs-single-post-content .fs-key-takeaway > :first-child {
	margin-bottom: 12px;
	color: #c43a24;
	font: 600 12px/16px Montserrat, Arial, sans-serif;
	letter-spacing: 1.2px;
	text-transform: uppercase;
}

.fs-single-post-content .fs-key-takeaway > :last-child {
	margin-bottom: 0;
	color: #242424;
	font: 600 20px/28px Montserrat, Arial, sans-serif;
}

.fs-single-post-content blockquote {
	padding: 32px;
	border: 0;
	border-radius: 12px;
	background: #242424;
	color: #fff;
}

.fs-single-post-content blockquote p:first-child {
	margin-bottom: 16px;
	font: 600 26px/34px Montserrat, Arial, sans-serif;
	letter-spacing: -.2px;
}

.fs-single-post-content blockquote p:last-child {
	margin-bottom: 0;
	color: rgba(255,255,255,.65);
	font: 500 13px/18px Montserrat, Arial, sans-serif;
	letter-spacing: .1px;
}

.fs-single-post-content .fs-inline-cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin: 32px 0;
	padding: 24px;
	border: 1px solid #e5e1dc;
	border-radius: 12px;
}

.fs-single-post-content .fs-inline-cta > :first-child {
	flex: 1 1 auto;
}

.fs-single-post-content .fs-inline-cta a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 10px 16px;
	border-radius: 22px;
	background: #f04923;
	color: #fff;
	font: 600 15px/20px Montserrat, Arial, sans-serif;
	text-decoration: none;
}

/* ---------- About author ---------- */
.elementor-element-s100000e {
	width: 100% !important;
	padding: 32px !important;
	border-radius: 16px !important;
	background: #faf9f7 !important;
}

.elementor-element-s100000e .elementor-author-box {
	display: flex;
	align-items: flex-start;
	gap: 24px;
}

.elementor-element-s100000e .elementor-author-box__avatar {
	flex: 0 0 88px;
	width: 88px !important;
	height: 88px !important;
	margin: 0 !important;
}

.elementor-element-s100000e .elementor-author-box__avatar img {
	width: 88px !important;
	height: 88px !important;
	object-fit: cover;
	border-radius: 44px;
	background: #fdeae5;
}

.elementor-element-s100000e .elementor-author-box__text {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.elementor-element-s100000e .elementor-author-box__name {
	color: #242424;
	font: 600 20px/28px Montserrat, Arial, sans-serif;
}

.elementor-element-s100000e .elementor-author-box__bio {
	color: #686868;
	font: 400 16px/26px Montserrat, Arial, sans-serif;
}

.elementor-element-s100000e .elementor-author-box__button {
	align-self: flex-start;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #c43a24;
	font: 600 15px/20px Montserrat, Arial, sans-serif;
}

/* ---------- Related insights ---------- */
.elementor-element-s1000011 {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	gap: 28px !important;
	width: 100% !important;
}

.elementor-element-s1000014 {
	width: 100% !important;
}

.elementor-element-s1000014 .elementor-pagination {
	display: none !important;
}

/* ---------- CTA ---------- */
.elementor-element-s1000015 {
	width: 100% !important;
	padding: 72px 24px !important;
	background: #f04923 !important;
}

.elementor-element-s1000016 {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 32px !important;
	width: 100% !important;
	max-width: 1200px !important;
	margin-inline: auto !important;
}

.elementor-element-s1000017 {
	display: flex !important;
	flex-direction: column !important;
	gap: 8px !important;
	flex: 1 1 auto !important;
}

/* ---------- Mobile ---------- */
@media (max-width: 767px) {
	.elementor-element-s1000002 {
		padding: 28px 24px 48px !important;
	}

	.elementor-element-s1000003 {
		gap: 18px !important;
	}

	.elementor-element-s1000004 {
		width: 56px !important;
	}

	.fs-single-breadcrumb {
		width: 100%;
		font-size: 12px;
	}

	.fs-single-breadcrumb__title {
		display: none;
	}

	.fs-single-title-widget .elementor-heading-title {
		max-width: none;
		font-size: 36px;
		line-height: 44px;
		font-weight: 600;
		letter-spacing: -.4px;
	}

	.fs-single-excerpt-widget .elementor-widget-container {
		max-width: none;
		font-size: 16px;
		line-height: 26px;
	}

	.fs-single-meta-share {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
	}

	.fs-single-author-meta {
		gap: 10px;
	}

	.fs-single-author-meta__avatar {
		flex-basis: 42px;
		width: 42px;
		height: 42px;
		border-radius: 21px;
		font-size: 13px;
		line-height: 18px;
		font-weight: 500;
	}

	.fs-single-author-meta__details {
		gap: 2px;
	}

	.elementor-element-s1000009 {
		padding: 32px 24px !important;
	}

	.fs-single-hero-media .elementor-widget-container {
		height: 240px;
		padding: 23px;
		border: 1px solid #e5e1dc;
		border-radius: 14px;
		background: #faf9f7;
	}

	.fs-single-hero-media img {
		height: 192px !important;
		border: 1px solid #e5e1dc;
		border-radius: 10px !important;
	}

	.elementor-element-s100000b {
		padding: 32px 24px 56px !important;
	}

	.elementor-element-s100000c {
		gap: 48px !important;
	}

	.elementor-element-s100000d {
		max-width: none !important;
	}

	.fs-single-post-content {
		font-size: 16px;
		line-height: 26px;
	}

	.fs-single-post-content p,
	.fs-single-post-content ul,
	.fs-single-post-content ol,
	.fs-single-post-content blockquote {
		margin-bottom: 24px;
	}

	.fs-single-post-content h2 {
		margin: 32px 0 16px;
		font-size: 26px;
		line-height: 34px;
		letter-spacing: -.2px;
	}

	.fs-single-post-content h3 {
		margin: 28px 0 14px;
		font-size: 20px;
		line-height: 28px;
		letter-spacing: 0;
	}

	.fs-single-post-content .fs-key-takeaway {
		padding: 20px;
	}

	.fs-single-post-content blockquote {
		padding: 24px;
	}

	.fs-single-post-content blockquote p:first-child {
		font-size: 20px;
		line-height: 28px;
		letter-spacing: 0;
	}

	.fs-single-post-content .fs-inline-cta {
		flex-direction: column;
		align-items: stretch;
		gap: 14px;
		padding: 20px;
	}

	.fs-single-post-content .fs-inline-cta a {
		width: 100%;
		min-height: 42px;
	}

	.elementor-element-s100000e {
		padding: 20px !important;
		border-radius: 14px !important;
	}

	.elementor-element-s100000e .elementor-author-box {
		flex-direction: column;
		gap: 12px;
	}

	.elementor-element-s100000e .elementor-author-box__avatar,
	.elementor-element-s100000e .elementor-author-box__avatar img {
		width: 64px !important;
		height: 64px !important;
		flex-basis: 64px;
		border-radius: 32px;
	}

	.elementor-element-s100000e .elementor-author-box__bio {
		font-size: 14px;
		line-height: 22px;
	}

	.elementor-element-s1000011 {
		gap: 20px !important;
	}

	.elementor-element-s1000015 {
		padding: 48px 24px !important;
	}

	.elementor-element-s1000016 {
		flex-direction: column !important;
		align-items: stretch !important;
		gap: 18px !important;
	}
}


/* =========================================================
   v1.3.1 — Single Insight QA corrections
   ========================================================= */

/* Do not rely on imported Elementor element IDs for critical single-post styling. */

/* Masthead global V4 class */
.g-fs00051 {
	padding-top: 76px !important;
	padding-bottom: 68px !important;
}

/* Accent rule: lock it to the 72×4 design and prevent Flexbox stretching. */
.g-fs00065 {
	display: block !important;
	flex: 0 0 4px !important;
	align-self: flex-start !important;
	width: 72px !important;
	min-width: 72px !important;
	max-width: 72px !important;
	height: 4px !important;
	min-height: 4px !important;
	max-height: 4px !important;
	overflow: hidden !important;
	border-radius: 2px !important;
	background: #f04923 !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* The imported Post Content widget must own article link colour, not Hello Elementor defaults. */
.fs-single-post-content a {
	color: #c43a24 !important;
	font-weight: 600;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.fs-single-post-content a:hover,
.fs-single-post-content a:focus {
	color: #f04923 !important;
}

/* Keep special CTAs button-like rather than inheriting article link underlines. */
.fs-single-post-content .fs-inline-cta a {
	color: #fff !important;
	text-decoration: none !important;
}

/* Breadcrumb and masthead share controls must remain inverse regardless of global link settings. */
.fs-single-breadcrumb a {
	color: rgba(255,255,255,.82) !important;
	text-decoration: none !important;
}

.fs-single-breadcrumb a:hover,
.fs-single-breadcrumb a:focus {
	color: #fff !important;
}

.fs-single-share__action {
	color: #fff !important;
	text-decoration: none !important;
}

/* Related card link colours remain the editorial dark colour. */
.fs-single-related-posts .fs-insight-card__link,
.fs-single-related-posts .fs-insight-card__title,
.fs-single-related-posts .fs-insight-card__title a {
	color: #242424 !important;
	text-decoration: none !important;
}

/* Exact Figma author component */
.fs-article-author {
	display: flex;
	align-items: flex-start;
	gap: 24px;
	width: 100%;
	padding: 32px;
	border-radius: 16px;
	background: #faf9f7;
	font-family: Montserrat, Arial, sans-serif;
}

.fs-article-author__avatar-wrap {
	flex: 0 0 88px;
	width: 88px;
}

.fs-article-author__avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 88px;
	height: 88px;
	overflow: hidden;
	border-radius: 44px;
	background: #fdeae5;
	color: #c43a24;
	font: 600 24px/34px Montserrat, Arial, sans-serif;
}

.fs-article-author__avatar img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.fs-article-author__content {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	min-width: 0;
}

.fs-article-author__eyebrow {
	color: #c43a24;
	font: 600 12px/16px Montserrat, Arial, sans-serif;
	letter-spacing: 1.2px;
	text-transform: uppercase;
}

.fs-article-author__name {
	color: #242424;
	font: 600 20px/28px Montserrat, Arial, sans-serif;
}

.fs-article-author__bio {
	max-width: 100%;
	color: #686868;
	font: 400 16px/26px Montserrat, Arial, sans-serif;
}

.fs-article-author__link {
	color: #c43a24 !important;
	font: 600 15px/20px Montserrat, Arial, sans-serif;
	text-decoration: none !important;
}

.fs-article-author__link:hover,
.fs-article-author__link:focus {
	color: #f04923 !important;
}

/* Mobile values from the approved 390px frame */
@media (max-width: 767px) {
	.g-fs00051 {
		padding-top: 28px !important;
		padding-bottom: 48px !important;
	}

	.g-fs00065 {
		width: 56px !important;
		min-width: 56px !important;
		max-width: 56px !important;
	}

	.fs-article-author {
		flex-direction: column;
		gap: 12px;
		padding: 20px;
		border-radius: 14px;
	}

	.fs-article-author__avatar-wrap {
		flex-basis: 64px;
		width: 64px;
	}

	.fs-article-author__avatar {
		width: 64px;
		height: 64px;
		border-radius: 32px;
		font-size: 20px;
		line-height: 28px;
	}

	.fs-article-author__bio {
		font-size: 14px;
		line-height: 22px;
	}
}
