/* Extract Labs AI Publisher: dedicated single-post presentation. */
.elabs-blog-template {
	--elabs-blog-reading: 820px;
	--elabs-blog-flow: 860px;
	--elabs-blog-support: 720px;
	--elabs-blog-takeaways: 740px;
	--elabs-blog-feature: 1000px;
	--elabs-blog-wide: 1120px;
	--elabs-blog-body-font: 'LFT Etica', Arial, sans-serif;
	--elabs-blog-display-font: Georgia, 'Times New Roman', serif;
	--elabs-blog-gutter: clamp(20px, 4vw, 40px);
	--elabs-blog-text: #3f3f3f;
	--elabs-blog-muted: #747474;
	--elabs-blog-line: #e5e2dc;
	--elabs-blog-soft: #f5f3ef;
	background: #fff;
	color: var(--elabs-blog-text);
	font-family: var(--elabs-blog-body-font) !important;
}

/* Elementor still injects Roboto on staging. Keep blog typography on the site family until Elementor is removed. */
.elabs-blog-template :where(p, li, h2, h3, h4, h5, h6, a, th, td, figcaption, button, input, select, textarea, label) {
	font-family: var(--elabs-blog-body-font) !important;
}

.elabs-blog-article {
	padding: 0 var(--elabs-blog-gutter) clamp(72px, 9vw, 120px);
}

.elabs-blog-header {
	width: min(960px, 100%);
	margin: 0 auto;
	padding-top: 36px;
}

.elabs-blog-header__category,
.elabs-blog-related__eyebrow,
.elabs-blog-author__eyebrow {
	display: block;
	width: fit-content;
	margin: 0 0 14px;
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-transform: uppercase;
	text-decoration: none;
	color: #5f655f;
}

.elabs-blog-header__title {
	margin: 0;
	font-family: var(--elabs-blog-display-font) !important;
	font-size: clamp(2.45rem, 6vw, 4.6rem);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 0.99;
	color: #353535;
	text-align: center;
}

.elabs-blog-header__dek {
	width: 90%;
	max-width: 820px;
	margin: 26px auto 0;
	font-size: clamp(1.05rem, 1.6vw, 1.2rem);
	font-weight: 300;
	line-height: 1.58;
	text-align: center;
	color: #666;
}

.elabs-blog-header__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 22px;
	font-size: 0.9rem;
	line-height: 1.4;
	color: var(--elabs-blog-muted);
}

.elabs-blog-header__author {
	font-weight: 600;
	color: #4d4d4d;
}

.elabs-blog-hero {
	width: min(var(--elabs-blog-wide), 100%);
	margin: 40px auto 48px;
}

.elabs-blog-hero__image {
	display: block;
	width: 100%;
	aspect-ratio: 1.9 / 1;
	object-fit: cover;
	border-radius: clamp(16px, 2vw, 24px);
}

.elabs-blog-content {
	width: min(var(--elabs-blog-reading), 100%);
	margin: 0 auto;
	font-size: clamp(1rem, 1.4vw, 1.08rem);
	line-height: 1.58;
	font-weight: 400;
	color: var(--elabs-blog-text);
}

.elabs-blog-content > * {
	margin-top: 0;
}

.elabs-blog-content p {
	margin-bottom: 1.1em;
}

.elabs-blog-content ul,
.elabs-blog-content ol {
	margin-bottom: 1.2em;
}

.elabs-blog-content h2,
.elabs-blog-content h3 {
	font: inherit;
	font-weight: 700;
	line-height: 1.15;
	color: #353535;
}

.elabs-blog-content h2 {
	margin: 42px 0 14px;
	letter-spacing: -0.02em;
	font-size: clamp(1.8rem, 3vw, 2.45rem);
}

.elabs-blog-content h3 {
	margin: 30px 0 10px;
	font-size: clamp(1.35rem, 2vw, 1.65rem);
	letter-spacing: -0.01em;
}

/* Keep inline links clean at rest; interaction adds a darker tone and underline. */
.elabs-blog-content > p a,
.elabs-blog-content > ul a,
.elabs-blog-content > ol a,
.elabs-blog-content > .wp-block-columns p a {
	font-weight: inherit;
	text-decoration: none;
	transition: filter 140ms ease;
}

.elabs-blog-content > p a:hover,
.elabs-blog-content > ul a:hover,
.elabs-blog-content > ol a:hover,
.elabs-blog-content > .wp-block-columns p a:hover,
.elabs-blog-content > p a:focus-visible,
.elabs-blog-content > ul a:focus-visible,
.elabs-blog-content > ol a:focus-visible,
.elabs-blog-content > .wp-block-columns p a:focus-visible {
	filter: brightness(0.82);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

.elabs-blog-content ul,
.elabs-blog-content ol {
	padding-left: 1.6em;
}

.elabs-blog-content li + li {
	margin-top: 0.45em;
}

.elabs-blog-content .wp-block-image {
	margin-top: 32px;
	margin-bottom: 36px;
}

/* Standalone editorial images support the story without competing with the hero. */
.elabs-blog-content > .wp-block-image {
	width: min(var(--elabs-blog-support), 100%);
	margin-left: auto;
	margin-right: auto;
}

.elabs-blog-content .wp-block-image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 14px;
}

.elabs-blog-content .wp-block-image figcaption,
.elabs-blog-content .wp-element-caption {
	margin: 8px 0 0;
	font-size: 0.85rem;
	line-height: 1.45;
	color: var(--elabs-blog-muted);
}

/* Normal structural blocks sit only slightly wider than the reading measure. */
.elabs-blog-content > .wp-block-columns,
.elabs-blog-content > .wp-block-table,
.elabs-blog-content > .post-takeaways,
.elabs-blog-content > .elabs-faqs,
.elabs-blog-content > .card-block,
.elabs-blog-content > .post-products,
.elabs-blog-content > .product-guide,
.elabs-blog-content > .cta-section,
.elabs-blog-content > .alignwide,
.elabs-blog-content > .alignfull {
	position: relative;
	left: 50%;
	max-width: none;
	margin-left: 0;
	margin-right: 0;
	transform: translateX(-50%);
}

.elabs-blog-content > .wp-block-columns,
.elabs-blog-content > .wp-block-table {
	width: min(var(--elabs-blog-flow), calc(100vw - (2 * var(--elabs-blog-gutter))));
}

/* The short-version block is intentionally compact: supporting summary, not a feature panel. */
.elabs-blog-content > .post-takeaways {
	width: min(var(--elabs-blog-takeaways), calc(100vw - (2 * var(--elabs-blog-gutter))));
}

/* Keep the short-version treatment visually quieter than normal article copy. */
.elabs-blog-content .post-takeaways {
	padding: clamp(22px, 3vw, 30px) !important;
}

.elabs-blog-content .post-takeaways__summary,
.elabs-blog-content .post-takeaways__list li {
	font-size: calc(1em - 1px) !important;
	line-height: 1.5 !important;
}

/* The block owns spacing with grid/flex gaps; do not inherit article list-item margins. */
.elabs-blog-content .post-takeaways li + li {
	margin-top: 0;
}

.elabs-blog-content .post-takeaways__jump-list {
	align-items: baseline;
}

.elabs-blog-content .post-takeaways__jump-list li {
	margin: 0;
}

/* Match jump links to the quiet inline-link treatment used in article copy. */
.elabs-blog-content .post-takeaways__jump-list a {
	padding-block: 0;
	font-weight: inherit;
	line-height: 1.45;
	text-decoration: none;
	transition: filter 140ms ease;
}

.elabs-blog-content .post-takeaways__jump-list a:hover,
.elabs-blog-content .post-takeaways__jump-list a:focus-visible {
	filter: brightness(0.82);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

/* Custom editorial components receive a modest emphasis without jumping to hero width. */
.elabs-blog-content > .elabs-faqs,
.elabs-blog-content > .card-block,
.elabs-blog-content > .post-products,
.elabs-blog-content > .product-guide,
.elabs-blog-content > .cta-section,
.elabs-blog-content > .alignwide {
	width: min(var(--elabs-blog-feature), calc(100vw - (2 * var(--elabs-blog-gutter))));
}

.elabs-blog-content > .alignfull {
	width: min(var(--elabs-blog-wide), calc(100vw - (2 * var(--elabs-blog-gutter))));
}

.elabs-blog-content > .wp-block-columns {
	gap: clamp(28px, 5vw, 52px);
	margin-top: 36px;
	margin-bottom: 36px;
}

/* Neutralize the broad site rule that centers all .is-layout-flex content. */
.elabs-blog-content .wp-block-columns.is-layout-flex {
	align-items: normal;
}

.elabs-blog-content .wp-block-column > :first-child {
	margin-top: 0;
}

.elabs-blog-content .wp-block-column > :last-child {
	margin-bottom: 0;
}

.elabs-blog-content .wp-block-column .wp-block-image {
	margin: 0;
}

.elabs-blog-content .wp-block-table {
	overflow-x: auto;
	margin-top: 36px;
	margin-bottom: 48px;
}

.elabs-blog-content .wp-block-table table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95rem;
	line-height: 1.5;
}

.elabs-blog-content .wp-block-table th,
.elabs-blog-content .wp-block-table td {
	padding: 14px 16px;
	border: 1px solid var(--elabs-blog-line);
	vertical-align: top;
	text-align: left;
}

.elabs-blog-content .wp-block-table th {
	font-weight: 700;
	background: var(--elabs-blog-soft);
}

/* Editorially strong blocks get breathing room, but their own plugin owns their internal styling. */
.elabs-blog-content > .post-takeaways,
.elabs-blog-content > .elabs-faqs {
	margin-top: clamp(40px, 6vw, 60px);
	margin-bottom: clamp(40px, 6vw, 60px);
}

.elabs-blog-content > .card-block,
.elabs-blog-content > .post-products,
.elabs-blog-content > .product-guide,
.elabs-blog-content > .cta-section {
	margin-top: clamp(52px, 7vw, 76px);
	margin-bottom: clamp(52px, 7vw, 76px);
}

.elabs-blog-author {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 22px;
	width: min(var(--elabs-blog-reading), calc(100% - (2 * var(--elabs-blog-gutter))));
	margin: 72px auto 0;
	padding-top: 32px;
	border-top: 1px solid var(--elabs-blog-line);
}

.elabs-blog-author__avatar img {
	display: block;
	border-radius: 50%;
}

.elabs-blog-author__eyebrow {
	margin-bottom: 6px;
}

.elabs-blog-author__name {
	margin: 0 0 8px;
	font-size: 1.25rem;
	line-height: 1.2;
	color: #353535;
}

.elabs-blog-author__bio {
	margin: 0;
	line-height: 1.6;
	color: var(--elabs-blog-muted);
}

.elabs-blog-related {
	padding: clamp(64px, 8vw, 100px) var(--elabs-blog-gutter);
	background: var(--elabs-blog-soft);
}

.elabs-blog-related__inner {
	width: min(var(--elabs-blog-wide), 100%);
	margin: 0 auto;
}

.elabs-blog-related__eyebrow {
	margin-bottom: 8px;
}

.elabs-blog-related__heading {
	margin: 0 0 28px;
	font-size: clamp(1.8rem, 3vw, 2.45rem);
	letter-spacing: -0.025em;
	line-height: 1.1;
	color: #353535;
}

.elabs-blog-related__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(18px, 3vw, 30px);
}

.elabs-blog-related__card {
	min-width: 0;
}

.elabs-blog-related__link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.elabs-blog-related__media {
	margin-bottom: 16px;
	overflow: hidden;
	aspect-ratio: 1.55 / 1;
	border-radius: 14px;
	background: #e9e7e2;
}

.elabs-blog-related__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 180ms ease;
}

.elabs-blog-related__link:hover .elabs-blog-related__media img {
	transform: scale(1.02);
}

.elabs-blog-related__title {
	margin: 0;
	font-size: clamp(1.05rem, 1.8vw, 1.3rem);
	line-height: 1.3;
	color: #3c3c3c;
}

@media (max-width: 781px) {
	.elabs-blog-header {
		padding-top: 28px;
	}

	.elabs-blog-header__title {
		font-size: clamp(2.25rem, 11vw, 3.5rem);
	}

	.elabs-blog-header__dek {
		width: 100%;
		margin-top: 20px;
	}

	.elabs-blog-hero {
		margin-top: 32px;
		margin-bottom: 40px;
	}

	.elabs-blog-hero__image {
		aspect-ratio: 1.35 / 1;
	}

	.elabs-blog-content > .wp-block-columns,
	.elabs-blog-content > .wp-block-table,
	.elabs-blog-content > .post-takeaways,
	.elabs-blog-content > .elabs-faqs,
	.elabs-blog-content > .card-block,
	.elabs-blog-content > .post-products,
	.elabs-blog-content > .product-guide,
	.elabs-blog-content > .alignwide,
	.elabs-blog-content > .alignfull {
		width: calc(100vw - (2 * var(--elabs-blog-gutter)));
	}

	/* CTA is intentionally full-bleed on mobile; its block keeps content padding inside. */
	.elabs-blog-content > .cta-section {
		width: 100vw;
		max-width: none;
	}

	/* Preserve hierarchy on narrow screens without centering normal editorial headings. */
	.elabs-blog-content h2.wp-block-heading {
		max-width: 94%;
	}

	.elabs-blog-content h3.wp-block-heading {
		max-width: 92%;
	}

	.elabs-blog-content .post-takeaways {
		padding: 20px !important;
	}

	.elabs-blog-related__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 560px) {
	.elabs-blog-header__meta {
		font-size: 0.84rem;
	}

	.elabs-blog-author {
		grid-template-columns: 1fr;
	}
}

/* Blog CTA treatment. Explicit component colors avoid global heading/link overrides.
 * Legacy pine CTAs use the neutral blog panel too; landing-page blocks retain their tones.
 */
.elabs-blog-template .elabs-blog-content > .cta-section {
 width: min(calc(var(--elabs-blog-feature, 1000px) + 40px), calc(100vw - (2 * var(--elabs-blog-gutter))));
 padding: 0;
 background: transparent;
 --cta-bg: #f3f1eb;
 --el-color-text: #274a47;
 --el-color-text-soft: #4d5b54;
 --el-color-rule: #d8ded4;
}
.elabs-blog-template .cta-section .cta-section__frame {
 box-sizing: border-box;
 max-width: none;
 border: 1px solid #dedfd5;
 border-radius: 24px;
 padding: clamp(32px, 5vw, 56px) clamp(24px, 4vw, 48px);
 background: #f3f1eb;
 box-shadow: none;
}
.elabs-blog-template .cta-section .cta-section__heading,
.elabs-blog-template .cta-section .cta-section__stat-value {
 color: #274a47;
 margin-top: 0;
}
.elabs-blog-template .cta-section .cta-section__eyebrow {
 color: #52634f;
 margin: 0 0 16px;
}
.elabs-blog-template .cta-section .cta-section__text,
.elabs-blog-template .cta-section .cta-section__footer-text,
.elabs-blog-template .cta-section .cta-section__stat-context {
 color: #4d5b54;
}
.elabs-blog-template .cta-section a.cta-section__button {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 min-height: 44px;
 box-sizing: border-box;
 max-width: 100%;
 padding: 12px 24px;
 border: 1px solid #274a47;
 border-radius: 999px;
 background: #274a47;
 color: #ffffff;
 text-decoration: none;
 box-shadow: none;
}
.elabs-blog-template .cta-section a.cta-section__button:hover {
 background: #1f3d3a;
 border-color: #1f3d3a;
 color: #ffffff;
 box-shadow: none;
}
.elabs-blog-template .cta-section a.cta-section__button:focus-visible {
 outline: 3px solid #274a47;
 outline-offset: 4px;
}
/* Retain explicitly selected image treatments with readable foregrounds. */
.elabs-blog-template .cta-section--tone-image .cta-section__heading,
.elabs-blog-template .cta-section--tone-image .cta-section__eyebrow,
.elabs-blog-template .cta-section--tone-image .cta-section__text,
.elabs-blog-template .cta-section--tone-image .cta-section__footer-text,
.elabs-blog-template .cta-section--tone-image .cta-section__stat-value,
.elabs-blog-template .cta-section--tone-image .cta-section__stat-context {
 color: #ffffff;
}
@media (max-width: 600px) {
 .elabs-blog-template .cta-section .cta-section__frame { border-radius: 18px; }
}

/* Keep CTA labels legible against global link and text-fill overrides. */
.elabs-blog-template .elabs-blog-content .cta-section a.cta-section__button,
.elabs-blog-template .elabs-blog-content .cta-section a.cta-section__button:link,
.elabs-blog-template .elabs-blog-content .cta-section a.cta-section__button:visited,
.elabs-blog-template .elabs-blog-content .cta-section a.cta-section__button:hover,
.elabs-blog-template .elabs-blog-content .cta-section a.cta-section__button:focus,
.elabs-blog-template .elabs-blog-content .cta-section a.cta-section__button:active,
.elabs-blog-template .elabs-blog-content .cta-section a.cta-section__button * {
 color: #ffffff !important;
 -webkit-text-fill-color: #ffffff !important;
}

/* Fill the editorial product panel evenly for a pair of cards. */
.elabs-blog-template .post-products .post-products__grid--count-2 {
 width: 100%;
 max-width: none;
}
