/* ============================================================
   STL Blocks — per-block styles
   Each block's selectors are namespaced .stl-block--<name>
   to avoid colliding with theme/Divi/Spectra classes.
   ============================================================ */

/* Shared section wrapper — every block uses this */
.stl-block {
	font-family: var(--stl-font-body);
	color: var(--stl-ink);
	box-sizing: border-box;
	width: 100%;
}
.stl-block * { box-sizing: border-box; }

.stl-block__heading-stack {
	margin-bottom: 2rem;
}

/* =================================================================
   1. HERO BANNER
   ================================================================= */
.stl-block--hero {
	position: relative;
	overflow: hidden;
	color: #fff;
	min-height: 480px;
	padding: 7.5rem var(--stl-gutter) 8.75rem;
	background: linear-gradient(135deg, var(--stl-burgundy-deep) 0%, #6b1f3a 60%, #7a2540 100%);
}
.stl-block--hero__canvas {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
	pointer-events: none;
}
.stl-block--hero__shade {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(to right, rgba(30,8,18,0.55) 0%, rgba(30,8,18,0.3) 40%, rgba(30,8,18,0) 62%);
}
.stl-block--hero__inner {
	max-width: var(--stl-container);
	margin: 0 auto;
	position: relative;
	z-index: 2;
}
.stl-block--hero__stage {
	min-height: 220px;
	max-width: 780px;
	position: relative;
}
.stl-block--hero__slide {
	opacity: 0;
	transform: translateX(-40px);
	transition: opacity 700ms var(--stl-ease), transform 700ms var(--stl-ease);
	position: absolute;
	inset: 0;
}
.stl-block--hero__slide.is-active {
	opacity: 1;
	transform: translateX(0);
	position: relative;
}
.stl-block--hero__title {
	font-family: var(--stl-font-heading);
	font-size: clamp(2.25rem, 4.4vw, 2.875rem);
	font-weight: 700;
	letter-spacing: -0.028em;
	line-height: 1.08;
	margin: 0 0 1.25rem;
	text-shadow: 0 2px 22px rgba(0,0,0,0.55);
}
.stl-block--hero__title-accent { color: var(--stl-orange); }
.stl-block--hero__sub {
	font-family: var(--stl-font-body);
	font-size: var(--stl-fs-16);
	font-weight: 300;
	line-height: 1.55;
	color: rgba(255,255,255,0.92);
	max-width: 620px;
	margin: 0;
	text-shadow: 0 1px 12px rgba(0,0,0,0.6);
}
.stl-block--hero__cta {
	margin-top: 2rem;
}
.stl-block--hero__dots {
	display: flex;
	gap: 10px;
	margin-top: 2rem;
}
.stl-block--hero__dot {
	width: 10px; height: 3px;
	background: rgba(255,255,255,0.4);
	border: 0; padding: 0; cursor: pointer;
	transition: width 400ms var(--stl-ease), background 400ms var(--stl-ease);
}
.stl-block--hero__dot.is-active { width: 28px; background: var(--stl-orange); }

/* =================================================================
   2. PILLAR CARDS
   ================================================================= */
.stl-block--pillars {
	background: linear-gradient(to bottom, rgba(107,31,58,0.04) 0%, #ffffff 140px);
	padding-left:  var(--stl-gutter);
	padding-right: var(--stl-gutter);
}
.stl-block--pillars__grid {
	max-width: var(--stl-container);
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(var(--stl-cols, 2), minmax(0, 1fr));
	gap: 2rem;
	align-items: stretch;
}
@media (max-width: 768px) {
	.stl-block--pillars__grid { grid-template-columns: 1fr; gap: 1.5rem; }
}
.stl-block--pillars__card {
	/* --stl-pillar-accent is set inline per card; --stl-pillar-hover is the
	 * hover override (orange). Using vars lets hover beat the inline style. */
	--stl-pillar-accent: var(--stl-burgundy);
	--stl-pillar-hover:  var(--stl-orange);
	background: #fff;
	border: 1px solid var(--stl-hairline);
	border-top: 3px solid var(--stl-pillar-accent);
	padding: 2.75rem 2.75rem 2.375rem;
	display: flex;
	flex-direction: column;
	box-shadow: var(--stl-shadow-sm);
	transition: transform var(--stl-dur-base) var(--stl-ease),
	            border-top-color var(--stl-dur-base) var(--stl-ease),
	            box-shadow var(--stl-dur-base) var(--stl-ease);
}
.stl-block--pillars__card:hover {
	transform: translateY(-3px);
	border-top-color: var(--stl-pillar-hover);
	box-shadow: var(--stl-shadow-lg);
}
.stl-block--pillars__image {
	width: calc(100% + 5.5rem);
	max-width: none;
	aspect-ratio: 4 / 3;
	margin: -2.75rem -2.75rem 2rem;
	overflow: hidden;
	background: var(--stl-bg-tint);
}
.stl-block--pillars__image-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.stl-block--pillars__title {
	font-family: var(--stl-font-heading);
	/* Matches the "Latest case studies" section heading (46px) so the
	 * Consulting / Research headings read at the same H1-equivalent scale. */
	font-size: 46px;
	font-weight: 700;
	letter-spacing: -0.022em;
	color: var(--stl-burgundy);
	margin: 0 0 0.5rem;
	line-height: 1.15;
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
	text-wrap: balance;
}
.stl-block--pillars__rule {
	display: none;
}
.stl-block--pillars__intro {
	font-family: var(--stl-font-body);
	font-size: var(--stl-pillar-intro-fs, 1.0625rem);
	font-weight: 400;
	line-height: 1.55;
	color: var(--stl-ink-soft);
	margin: 0 0 1.75rem;
	max-width: 94%;
}
.stl-block--pillars__links {
	list-style: none; padding: 0; margin: 0 0 3rem; flex: 1;
}
/* Higher specificity than the `.stl-block ul { margin:0 }` reset in
 * stl-tokens.css (0,1,1), which would otherwise null the gap above the
 * Explore CTA. This (0,2,0) wins, so the spacing actually applies. */
.stl-block--pillars .stl-block--pillars__links {
	margin-bottom: 3rem;
}
/* Keep CTAs aligned across cards, even when titles wrap differently. */
.stl-block--pillars__card .stl-link-arrow {
	margin-top: auto;
	align-self: flex-start;
}
@media (max-width: 1200px) and (min-width: 769px) {
	.stl-block--pillars__card {
		padding: 2.25rem 2rem 2.125rem;
	}
	.stl-block--pillars__image {
		width: calc(100% + 4rem);
		margin: -2.25rem -2rem 1.75rem;
	}
	.stl-block--pillars__title {
		font-size: 38px;
	}
}
@media (max-width: 768px) {
	.stl-block--pillars__title {
		min-height: 0;
		font-size: 32px;
	}
}
.stl-block--pillars__link-row {
	border-top: 1px solid var(--stl-hairline-soft);
}
.stl-block--pillars__link-row:last-child { border-bottom: 1px solid var(--stl-hairline-soft); }
.stl-block--pillars__link-row a {
	display: flex; align-items: center; justify-content: space-between;
	padding: 14px 2px;
	font-family: var(--stl-font-body);
	font-size: 0.95rem; font-weight: 500;
	color: var(--stl-ink); text-decoration: none;
	transition: color var(--stl-dur-fast) var(--stl-ease),
	            transform var(--stl-dur-fast) var(--stl-ease);
}
.stl-block--pillars__link-row a:hover {
	color: var(--stl-orange);
	transform: translateX(6px);
}
.stl-block--pillars__link-row svg {
	stroke: #bcbcbc;
	transition: stroke var(--stl-dur-fast) var(--stl-ease);
}
.stl-block--pillars__link-row a:hover svg { stroke: var(--stl-orange); }

/* =================================================================
   3. STATS BAND
   ================================================================= */
.stl-block--stats {
	background: var(--stl-bg-tint);
	border-top: 1px solid var(--stl-hairline);
	border-bottom: 1px solid var(--stl-hairline);
	padding-left:  var(--stl-gutter);
	padding-right: var(--stl-gutter);
	position: relative;
	overflow: hidden;
}
.stl-block--stats__inner {
	max-width: var(--stl-container);
	margin: 0 auto;
	position: relative;
}
.stl-block--stats__heading {
	font-family: var(--stl-font-heading);
	font-size: var(--stl-fs-32);
	font-weight: 700;
	letter-spacing: -0.022em;
	line-height: 1.15;
	color: var(--stl-burgundy);
	margin: 0;
	max-width: 640px;
}
.stl-block--stats__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	margin-top: 2.75rem;
}
.stl-block--stats__cell {
	padding: 0 1.25rem 0 0;
	border-left: 0;
	position: relative;
}
.stl-block--stats__cell + .stl-block--stats__cell {
	border-left: 1px solid rgba(42,49,77,0.12);
	padding-left: 1.25rem;
}
.stl-block--stats__num {
	font-family: var(--stl-font-heading);
	font-size: clamp(2.5rem, 4vw, 3.5rem);
	font-weight: 700;
	letter-spacing: -0.022em;
	color: var(--stl-burgundy);
	line-height: 1;
	margin: 0 0 0.25rem;
	display: inline-flex;
	align-items: baseline;
}
.stl-block--stats__num-suffix {
	font-size: 0.5em;
	color: var(--stl-orange);
	margin-left: 0.4rem;
	letter-spacing: var(--stl-tracking-caps);
	text-transform: uppercase;
	font-weight: 700;
}
.stl-block--stats__unit {
	font-family: var(--stl-font-heading);
	font-size: var(--stl-stats-unit-fs, var(--stl-fs-12));
	font-weight: 700;
	letter-spacing: var(--stl-tracking-caps);
	text-transform: uppercase;
	color: var(--stl-orange);
	margin: 0 0 0.625rem;
}
.stl-block--stats__label {
	font-family: var(--stl-font-body);
	font-size: var(--stl-stats-label-fs, 0.875rem);
	font-weight: 400;
	line-height: 1.5;
	color: var(--stl-ink-soft);
	margin: 0;
}

@media (max-width: 900px) {
	.stl-block--stats__grid { grid-template-columns: repeat(2, 1fr); row-gap: 2rem; }
	.stl-block--stats__cell:nth-child(odd) { border-left: 0; padding-left: 0; }
}

/* =================================================================
   4. CASE STUDIES FEATURE
   ================================================================= */
.stl-block--cases {
	background: #fff;
	padding-left:  var(--stl-gutter);
	padding-right: var(--stl-gutter);
}
.stl-block--cases__inner { max-width: var(--stl-container); margin: 0 auto; }
.stl-block--cases__grid {
	display: grid;
	grid-template-columns: 1.35fr 1fr;
	grid-template-rows: auto 1fr;
	gap: 1.75rem;
	margin-top: 0.75rem;
	align-items: stretch;
}
.stl-block--cases__featured {
	grid-row: 1 / span 2;
	display: flex;
}
.stl-block--cases__compact {
	display: flex; flex-direction: column;
}
.stl-block--cases__quote-slot { display: flex; }

/* Featured dark card */
.stl-card--featured-dark {
	background: var(--stl-burgundy-deep);
	color: #fff;
	display: flex; flex-direction: column;
	overflow: hidden;
	width: 100%;
	min-height: 560px;
	text-decoration: none;
	box-shadow: var(--stl-shadow-sm);
	transition: transform var(--stl-dur-base) var(--stl-ease),
	            box-shadow var(--stl-dur-base) var(--stl-ease);
}
.stl-card--featured-dark:hover {
	transform: translateY(-4px);
	box-shadow: 0 22px 48px rgba(30,8,18,0.35);
}
.stl-card--featured-dark__media {
	position: relative;
	flex-shrink: 0;
	aspect-ratio: 16 / 9;
	background-size: cover;
	background-position: center;
}
.stl-card--featured-dark__media::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(30,8,18,0) 55%, var(--stl-burgundy-deep) 100%);
}
.stl-card--featured-dark__stat {
	position: absolute; top: 20px; right: 20px;
	background: var(--stl-orange); color: #fff;
	padding: 12px 16px;
	font-family: var(--stl-font-heading); font-weight: 700;
	font-size: 1.375rem; letter-spacing: -0.02em; line-height: 1;
	z-index: 1;
}
.stl-card--featured-dark__body {
	padding: 2rem 2.25rem 2.25rem;
	display: flex; flex-direction: column; flex: 1;
}
.stl-card--featured-dark__eyebrow {
	font-family: var(--stl-font-heading);
	font-size: var(--stl-fs-12); font-weight: 700;
	letter-spacing: var(--stl-tracking-caps); text-transform: uppercase;
	color: var(--stl-cream); margin-bottom: 0.875rem;
}
.stl-card--featured-dark__title {
	font-family: var(--stl-font-heading);
	font-size: 34px; font-weight: 700;
	letter-spacing: -0.02em; line-height: 1.18;
	color: #fff; margin: 0 0 1.125rem;
}
.stl-card--featured-dark__desc {
	font-family: var(--stl-font-body);
	font-size: 18px; font-weight: 300;
	line-height: 1.6; color: rgba(255,255,255,0.78);
	margin: 0 0 1.5rem; flex: 1;
}
.stl-card--featured-dark__cta {
	font-family: var(--stl-font-heading);
	font-size: 14px; font-weight: 700;
	letter-spacing: var(--stl-tracking-caps); text-transform: uppercase;
	color: #fff;
	display: inline-flex; align-items: center; gap: 10px;
	padding-bottom: 4px;
	border-bottom: 1.5px solid #fff;
	align-self: flex-start;
	transition: color var(--stl-dur-fast) var(--stl-ease),
	            border-color var(--stl-dur-fast) var(--stl-ease),
	            gap var(--stl-dur-fast) var(--stl-ease);
}
.stl-card--featured-dark:hover .stl-card--featured-dark__cta {
	color: var(--stl-orange);
	border-color: var(--stl-orange);
	gap: 14px;
}

/* Compact case-study row */
.stl-card--compact {
	display: grid;
	grid-template-columns: 128px 1fr;
	gap: 18px;
	padding: 18px 0;
	border-top: 1px solid var(--stl-hairline-soft);
	text-decoration: none;
	transition: transform var(--stl-dur-fast) var(--stl-ease);
}
.stl-card--compact:first-child { border-top: 0; }
.stl-card--compact:hover { transform: translateX(4px); }
.stl-card--compact__media {
	aspect-ratio: 4/3;
	background-size: cover; background-position: center;
}
.stl-card--compact__body {
	display: flex; flex-direction: column; justify-content: center;
}
.stl-card--compact__eyebrow {
	font-family: var(--stl-font-heading);
	font-size: 13px; font-weight: 700;
	letter-spacing: var(--stl-tracking-caps); text-transform: uppercase;
	color: var(--stl-orange);
	margin: 0 0 6px;
}
.stl-card--compact__eyebrow-meta {
	font-weight: 400; color: var(--stl-ink-muted);
	letter-spacing: 0; text-transform: none;
	margin-left: 6px; font-size: 0.75rem;
}
.stl-card--compact__title {
	font-family: var(--stl-font-heading);
	font-size: 20px; font-weight: 700;
	letter-spacing: -0.018em; line-height: 1.26;
	color: var(--stl-burgundy);
	margin: 0;
	transition: color var(--stl-dur-fast) ease;
}
.stl-card--compact:hover .stl-card--compact__title { color: var(--stl-burgundy-deep); }

/* Revolving quote square */
.stl-quote-revolver {
	color: #fff;
	padding: 2rem 2.25rem 1.75rem;
	position: relative;
	min-height: 240px;
	flex: 1; width: 100%;
	display: flex; flex-direction: column;
	overflow: hidden;
	transition: background 700ms var(--stl-ease);
}
.stl-quote-revolver__glyph {
	display: block;
	font-family: "Arial Black", "Helvetica Neue", Arial, sans-serif;
	font-weight: 900;
	line-height: 0.7;
	letter-spacing: -0.05em;
	pointer-events: none;
	color: #fff;
}
.stl-quote-revolver__glyph--open {
	font-size: 88px;
	margin: 0 0 1.25rem;
	flex-shrink: 0;
}
.stl-quote-revolver__stage {
	flex: 1;
	display: flex; flex-direction: column;
	justify-content: center;
	position: relative; z-index: 1;
	transition: opacity 450ms var(--stl-ease), transform 450ms var(--stl-ease);
}
.stl-quote-revolver__stage.is-out { opacity: 0; transform: translateY(-8px); }
.stl-quote-revolver__quote {
	font-family: var(--stl-font-heading);
	/* Scales up on wider viewports so the quote keeps filling the box —
	 * the box height tracks the case-study image next to it, which grows
	 * with viewport width, but a fixed font-size didn't. */
	font-size: clamp(var(--stl-quote-fs, 1.25rem), calc(var(--stl-quote-fs, 1.25rem) * 0.3 + 1.05vw), calc(var(--stl-quote-fs, 1.25rem) * 1.4));
	font-weight: 700;
	letter-spacing: -0.015em; line-height: 1.28;
	color: #fff; margin: 0;
}
.stl-quote-revolver__sep {
	border: 0;
	height: 1px;
	background: rgba(255,255,255,0.35);
	margin: 1.5rem 0 1.25rem;
	width: 100%;
}
.stl-quote-revolver__attribution {
	/* sits beneath the hairline rule; rule + attribution form the bottom band */
}
.stl-quote-revolver__name {
	font-family: var(--stl-font-heading);
	font-size: clamp(var(--stl-quote-name-fs, 1rem), calc(var(--stl-quote-name-fs, 1rem) * 0.5 + 0.55vw), calc(var(--stl-quote-name-fs, 1rem) * 1.25)); font-weight: 700;
	color: #fff;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.stl-quote-revolver__role {
	font-family: var(--stl-font-body);
	font-size: clamp(var(--stl-quote-role-fs, 0.9375rem), calc(var(--stl-quote-role-fs, 0.9375rem) * 0.6 + 0.4vw), calc(var(--stl-quote-role-fs, 0.9375rem) * 1.2)); font-weight: 400;
	color: rgba(255,255,255,0.78); letter-spacing: 0.02em;
	margin-top: 4px;
}
.stl-quote-revolver__dots {
	display: flex; gap: 6px; margin-top: 1rem;
	position: relative; z-index: 1;
}
.stl-quote-revolver__dot {
	width: 8px; height: 3px;
	background: rgba(255,255,255,0.45);
	border: 0; padding: 0; cursor: pointer;
	transition: all 350ms var(--stl-ease);
}
.stl-quote-revolver__dot.is-active { width: 22px; background: #fff; }

@media (max-width: 900px) {
	.stl-block--cases__grid { grid-template-columns: 1fr; grid-template-rows: auto; }
	.stl-block--cases__featured { grid-row: auto; }
	.stl-card--featured-dark { min-height: 0; }
}

/* =================================================================
   5. BOOK A CALL CARDS
   ================================================================= */
.stl-block--bookcall {
	background: #fff;
	padding-left:  var(--stl-gutter);
	padding-right: var(--stl-gutter);
}
.stl-block--bookcall__grid {
	max-width: var(--stl-container);
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(var(--stl-cols, 2), minmax(0, 1fr));
	gap: 1.75rem;
}
@media (max-width: 768px) {
	.stl-block--bookcall__grid { grid-template-columns: 1fr; gap: 1.25rem; }
}
.stl-card--bookcall {
	background: #fff;
	border: 1px solid var(--stl-hairline);
	border-top: 3px solid var(--stl-burgundy);
	padding: 1.5rem 1.75rem 1.75rem;
	display: grid;
	grid-template-columns: 128px 1fr;
	gap: 34px;
	align-items: center;
	transition: transform var(--stl-dur-fast) var(--stl-ease),
	            border-color var(--stl-dur-fast) var(--stl-ease),
	            box-shadow var(--stl-dur-fast) var(--stl-ease);
	box-shadow: 0 2px 10px rgba(30,8,18,0.04);
}
.stl-card--bookcall:hover {
	border-top-color: var(--stl-orange);
	box-shadow: 0 18px 38px rgba(30,8,18,0.10);
}
.stl-card--bookcall__avatar {
	width: 128px; height: 128px;
	border-radius: 50%;
	background-size: cover; background-position: center top;
	box-shadow: 0 6px 18px rgba(30,8,18,0.12);
	flex-shrink: 0;
}
.stl-card--bookcall__name {
	font-family: var(--stl-font-heading);
	font-size: 20px; font-weight: 700;
	line-height: 1.35;
	color: var(--stl-burgundy); letter-spacing: -0.01em;
}
.stl-card--bookcall__role {
	font-family: var(--stl-font-heading);
	font-size: 14px; font-weight: 700;
	line-height: 1.55;
	letter-spacing: var(--stl-tracking-caps); text-transform: uppercase;
	color: var(--stl-orange);
	margin: 4px 0 0;
}
.stl-card--bookcall__blurb {
	font-family: var(--stl-font-body);
	font-size: 0.84375rem; font-weight: 300;
	line-height: 1.5;
	color: var(--stl-ink-soft);
	margin: 0.625rem 0 0.75rem;
}
.stl-card--bookcall__cta {
	font-size: 14px !important;
	line-height: 1.65 !important;
	padding: 11px 18px;
}

@media (max-width: 768px) {
	.stl-block--bookcall__grid { grid-template-columns: 1fr; }
	.stl-card--bookcall { grid-template-columns: 80px 1fr; }
	.stl-card--bookcall__avatar { width: 80px; height: 80px; }
}

/* =================================================================
   6. RESEARCH FEATURE
   ================================================================= */
.stl-block--research {
	background: var(--stl-bg-subtle);
	padding-left:  var(--stl-gutter);
	padding-right: var(--stl-gutter);
}
.stl-block--research__inner { max-width: var(--stl-container); margin: 0 auto; }
.stl-block--research__grid {
	display: grid;
	grid-template-columns: 1fr 1.35fr;
	gap: 2.5rem;
	align-items: start;
	margin-top: 0.75rem;
}
.stl-card--featured-light {
	background: #fff;
	border: 1px solid var(--stl-hairline);
	border-top: 3px solid var(--stl-burgundy);
	display: flex; flex-direction: column;
	overflow: hidden;
	text-decoration: none;
	box-shadow: var(--stl-shadow-sm);
	transition: transform var(--stl-dur-base) var(--stl-ease),
	            border-color var(--stl-dur-base) var(--stl-ease),
	            box-shadow var(--stl-dur-base) var(--stl-ease);
}
.stl-card--featured-light:hover {
	transform: translateY(-4px);
	border-top-color: var(--stl-orange);
	box-shadow: 0 22px 48px rgba(30,8,18,0.14);
}
/* When the card is hovered, propagate orange to the inner "Read more"
 * arrow link — matches the case-studies dark-card pattern. */
.stl-card--featured-light:hover .stl-link-arrow {
	color: var(--stl-orange);
	border-color: var(--stl-orange);
	gap: 14px;
}
.stl-card--featured-light:hover .stl-card--featured-light__title {
	color: var(--stl-burgundy-deep);
}
.stl-card--featured-light__media {
	position: relative;
	aspect-ratio: 16 / 10;
	background-size: cover; background-position: center;
}
.stl-card--featured-light__badge {
	position: absolute; top: 18px; left: 18px;
	background: var(--stl-burgundy); color: #fff;
	padding: 8px 14px;
	font-family: var(--stl-font-heading);
	font-size: 0.6875rem; font-weight: 700;
	letter-spacing: var(--stl-tracking-caps); text-transform: uppercase;
}
.stl-card--featured-light__body {
	padding: 1.75rem 2rem 2rem;
	display: flex; flex-direction: column;
}
.stl-card--featured-light__eyebrow {
	font-family: var(--stl-font-heading);
	font-size: var(--stl-fs-12); font-weight: 700;
	letter-spacing: var(--stl-tracking-caps); text-transform: uppercase;
	color: var(--stl-orange); margin-bottom: 0.75rem;
}
.stl-card--featured-light__eyebrow-meta {
	font-weight: 400; color: var(--stl-ink-muted);
	letter-spacing: 0; text-transform: none;
	margin-left: 8px; font-size: 0.78rem;
}
.stl-card--featured-light__title {
	font-family: var(--stl-font-heading);
	font-size: 1.5rem; font-weight: 700;
	letter-spacing: -0.02em; line-height: 1.2;
	color: var(--stl-burgundy);
	margin: 0 0 0.875rem;
}
.stl-card--featured-light__desc {
	font-family: var(--stl-font-body);
	font-size: 0.9rem; font-weight: 300;
	line-height: 1.6; color: var(--stl-ink-soft);
	margin: 0 0 1.25rem;
}

@media (max-width: 900px) {
	.stl-block--research__grid { grid-template-columns: 1fr; gap: 1.5rem; }
}

/* =================================================================
   7. SUBSCRIBERS BAND
   ================================================================= */
.stl-block--subs {
	background: var(--stl-bg-subtle);
	border-bottom: 1px solid var(--stl-hairline);
	padding-left:  var(--stl-gutter);
	padding-right: var(--stl-gutter);
	position: relative;
	overflow: hidden;
}
.stl-block--subs__inner {
	max-width: var(--stl-container);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 0.9fr 1.4fr;
	gap: 4.5rem;
	align-items: center;
}
.stl-block--subs__heading {
	font-family: var(--stl-font-heading);
	font-size: 1.875rem; font-weight: 700;
	letter-spacing: -0.022em; line-height: 1.2;
	color: var(--stl-burgundy);
	margin: 0 0 1.125rem;
}
.stl-block--subs__intro {
	font-family: var(--stl-font-body);
	font-size: 0.91rem; font-weight: 300;
	line-height: 1.6; color: var(--stl-ink-soft);
	margin: 0 0 1.75rem;
	max-width: 440px;
}
.stl-block--subs__logos {
	display: flex; align-items: center;
	flex-wrap: wrap; gap: 1.75rem 2.5rem;
	padding-left: 3.5rem;
	justify-content: space-between;
}
.stl-block--subs__logo {
	max-height: 56px; width: auto; opacity: 0.85;
	filter: grayscale(0.2);
	transition: opacity var(--stl-dur-fast) var(--stl-ease),
	            filter var(--stl-dur-fast) var(--stl-ease);
}
.stl-block--subs__logo:hover { opacity: 1; filter: grayscale(0); }

@media (max-width: 900px) {
	.stl-block--subs__inner { grid-template-columns: 1fr; gap: 2rem; }
	.stl-block--subs__logos { padding-left: 0; }
}

/* =================================================================
   8. INSIGHTS PACK PROMO
   ================================================================= */
.stl-block--insights-pack {
	background: #fff;
	padding-left: var(--stl-gutter);
	padding-right: var(--stl-gutter);
}
.stl-block--insights-pack__shell {
	max-width: var(--stl-container);
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(360px, 0.72fr);
	border-top: 4px solid var(--stl-navy);
	box-shadow: 0 16px 38px rgba(42,49,77,0.10);
	background: #fff;
}
.stl-block--insights-pack--image-left .stl-block--insights-pack__shell {
	grid-template-columns: minmax(360px, 0.72fr) minmax(0, 1fr);
}
.stl-block--insights-pack__message {
	background: var(--stl-burgundy-deep);
	color: #fff;
	padding: clamp(2.25rem, 5vw, 4.5rem);
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 520px;
}
.stl-block--insights-pack--image-left .stl-block--insights-pack__message {
	order: 2;
}
.stl-block--insights-pack--image-left .stl-block--insights-pack__pack {
	order: 1;
}
.stl-block--insights-pack__message-inner {
	width: 100%;
	max-width: 980px;
	margin: 0;
}
.stl-block--insights-pack__eyebrow {
	font-family: var(--stl-font-heading);
	font-size: var(--stl-fs-12);
	font-weight: 700;
	letter-spacing: var(--stl-tracking-caps);
	line-height: 1.3;
	text-transform: uppercase;
	color: var(--stl-insights-accent, var(--stl-orange));
	margin: 0 0 1.5rem;
}
.stl-block--insights-pack__title {
	font-family: var(--stl-font-heading);
	font-size: var(--stl-insights-title-size, clamp(2.25rem, 4.2vw, 3.875rem));
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.18;
	color: #fff !important;
	margin: 0;
}
.stl-block--insights-pack__highlights {
	font-family: var(--stl-font-heading);
	font-size: var(--stl-insights-bullet-size, clamp(1.375rem, 2.15vw, 2rem));
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.48;
	color: #fff !important;
	list-style: none;
	margin: 3.25rem 0 0;
	padding: 0;
	max-width: 980px;
}
.stl-block--insights-pack__highlights li {
	display: grid;
	grid-template-columns: 0.85em 1fr;
	column-gap: 0.15em;
	align-items: start;
	margin: 0 0 1rem;
	padding-left: 0;
	color: #fff !important;
	opacity: 1 !important;
}
.stl-block--insights-pack__highlights li::before {
	content: "-";
	color: #fff !important;
	opacity: 1 !important;
}
.stl-block--insights-pack__pack {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(2rem, 4vw, 3.5rem);
	gap: 2rem;
	background:
		linear-gradient(180deg, rgba(246,247,248,0.9) 0%, rgba(255,255,255,0) 42%),
		#fff;
}
.stl-block--insights-pack__image-wrap {
	width: min(100%, 520px);
	margin: 0 auto;
	padding: 1.25rem;
	background: #fff;
	box-shadow: 0 12px 34px rgba(42,49,77,0.12);
}
.stl-block--insights-pack__image {
	display: block;
	width: 100%;
	height: auto;
}
.stl-block--insights-pack__content {
	max-width: 560px;
	margin: 0 auto;
	width: 100%;
}
.stl-block--insights-pack__intro {
	font-family: var(--stl-font-body);
	font-size: clamp(1.125rem, 1.5vw, 1.5rem);
	font-weight: 300;
	line-height: 1.5;
	color: var(--stl-navy);
	margin: 0 0 1.5rem;
}
.stl-block--insights-pack__details {
	font-family: var(--stl-font-body);
	font-size: clamp(1.0625rem, 1.35vw, 1.375rem);
	font-weight: 300;
	line-height: 1.55;
	color: var(--stl-navy);
	margin: 0;
	padding-left: 1.35em;
}
.stl-block--insights-pack__details li {
	margin: 0 0 0.55rem;
	padding-left: 0.15em;
}
.stl-block--insights-pack__details li::marker {
	color: var(--stl-navy);
}
.stl-block--insights-pack__cta {
	margin-top: 2rem;
	background: var(--stl-insights-accent, var(--stl-orange)) !important;
	border-color: var(--stl-insights-accent, var(--stl-orange)) !important;
	color: #fff !important;
}
.stl-block--insights-pack__cta:hover,
.stl-block--insights-pack__cta:focus {
	background: var(--stl-navy) !important;
	border-color: var(--stl-navy) !important;
	color: #fff !important;
}
.stl-block--insights-pack__form {
	margin-top: 2rem;
	font-family: var(--stl-font-body);
	color: var(--stl-navy);
}
.stl-block--insights-pack__form form {
	display: grid;
	gap: 0.875rem;
}
.stl-block--insights-pack__form label {
	display: block;
	font-family: var(--stl-font-heading);
	font-size: var(--stl-fs-14);
	font-weight: 700;
	color: var(--stl-navy);
	margin-bottom: 0.35rem;
}
.stl-block--insights-pack__form input,
.stl-block--insights-pack__form select,
.stl-block--insights-pack__form textarea {
	width: 100%;
	border: 1px solid var(--stl-grey-200);
	border-radius: 0;
	padding: 0.875rem 1rem;
	font-family: var(--stl-font-body);
	font-size: var(--stl-fs-16);
	color: var(--stl-navy);
	background: #fff;
}
.stl-block--insights-pack__form button,
.stl-block--insights-pack__form input[type="submit"] {
	justify-self: start;
	border: 1px solid var(--stl-insights-accent, var(--stl-orange));
	background: var(--stl-insights-accent, var(--stl-orange));
	color: #fff;
	padding: 0.95rem 1.4rem;
	font-family: var(--stl-font-heading);
	font-size: var(--stl-fs-12);
	font-weight: 700;
	letter-spacing: var(--stl-tracking-caps);
	line-height: 1.2;
	text-transform: uppercase;
	cursor: pointer;
	transition: background var(--stl-dur-fast) var(--stl-ease), border-color var(--stl-dur-fast) var(--stl-ease);
}
.stl-block--insights-pack__form button:hover,
.stl-block--insights-pack__form input[type="submit"]:hover {
	background: var(--stl-navy);
	border-color: var(--stl-navy);
}

@media (max-width: 980px) {
	.stl-block--insights-pack__shell {
		grid-template-columns: 1fr;
	}
	.stl-block--insights-pack__message {
		min-height: 0;
	}
	.stl-block--insights-pack--image-left .stl-block--insights-pack__message,
	.stl-block--insights-pack--image-left .stl-block--insights-pack__pack {
		order: initial;
	}
}

@media (max-width: 768px) {
	.stl-block--insights-pack {
		padding-left: 1.25rem;
		padding-right: 1.25rem;
	}
	.stl-block--insights-pack__message,
	.stl-block--insights-pack__pack {
		padding: 2rem 1.5rem;
	}
	.stl-block--insights-pack__highlights {
		margin-top: 2rem;
	}
	.stl-block--insights-pack__title {
		font-size: min(var(--stl-insights-title-size, 62px), 38px);
	}
	.stl-block--insights-pack__highlights {
		font-size: min(var(--stl-insights-bullet-size, 32px), 22px);
	}
}

/* =================================================================
   9. TEXT PANEL
   ================================================================= */
.stl-block--text-panel {
	max-width: var(--stl-text-panel-box-width, none);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--stl-gutter);
	padding-right: var(--stl-gutter);
	min-height: var(--stl-text-panel-min-height, 0);
	display: flex;
	align-items: center;
	width: 100%;
}
.stl-block--text-panel__inner {
	width: 100%;
	max-width: var(--stl-container);
	margin: 0 auto;
}
.stl-block--text-panel--narrow .stl-block--text-panel__inner { max-width: 760px; }
.stl-block--text-panel--medium .stl-block--text-panel__inner { max-width: 960px; }
.stl-block--text-panel--wide .stl-block--text-panel__inner { max-width: var(--stl-container); }
.stl-block--text-panel__eyebrow {
	font-family: var(--stl-font-heading);
	font-size: var(--stl-fs-12);
	font-weight: 700;
	letter-spacing: var(--stl-tracking-caps);
	line-height: 1.3;
	text-transform: uppercase;
	color: var(--stl-text-panel-accent);
	margin: 0 0 1.75rem;
}
.stl-block--text-panel__title {
	font-family: var(--stl-font-heading);
	font-size: var(--stl-text-panel-title-size, 46px);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.16;
	color: inherit;
	max-width: 1040px;
	margin: 0 0 1.75rem;
}
.stl-block--text-panel__body {
	font-family: var(--stl-font-heading);
	font-size: var(--stl-text-panel-body-size, 24px);
	font-weight: 300;
	letter-spacing: 0;
	line-height: 1.55;
	color: inherit;
	opacity: 1;
	max-width: 1120px;
	margin: 0;
}
.stl-block--text-panel__bullets {
	font-family: var(--stl-font-heading);
	font-size: var(--stl-text-panel-body-size, 24px);
	font-weight: 300;
	letter-spacing: 0;
	line-height: 1.55;
	color: inherit;
	opacity: 1;
	max-width: 1120px;
	margin: 1.5rem 0 0;
	padding-left: 1.25em;
}
.stl-block--text-panel__bullets li {
	margin: 0 0 0.75rem;
	padding-left: 0.2em;
}
.stl-block--text-panel__bullets li::marker {
	color: var(--stl-text-panel-accent);
}
@media (min-width: 1024px) {
	.stl-block--text-panel__bullets {
		font-size: min(var(--stl-text-panel-body-size, 24px), 32px);
		max-width: none;
		padding-left: 0.75em;
	}
	.stl-block--text-panel__bullets li {
		padding-left: 0.1em;
		white-space: nowrap;
	}
}
.stl-block--text-panel__cta {
	display: inline-flex !important;
	align-items: center;
	gap: 12px;
	font-family: var(--stl-font-heading);
	font-size: var(--stl-fs-12);
	font-weight: 700;
	letter-spacing: var(--stl-tracking-caps);
	line-height: 1.2;
	text-transform: uppercase;
	color: inherit !important;
	text-decoration: none !important;
	border-bottom: 1.5px solid currentColor !important;
	padding-bottom: 0.5rem;
	margin-top: 2.75rem;
	background: none !important;
	transition: color var(--stl-dur-fast) var(--stl-ease),
	            gap var(--stl-dur-fast) var(--stl-ease);
}
.stl-block--text-panel__cta:hover,
.stl-block--text-panel__cta:focus {
	color: var(--stl-text-panel-accent) !important;
	gap: 16px;
}
.stl-block--text-panel__cta svg {
	flex-shrink: 0;
	stroke: currentColor;
}
@media (max-width: 768px) {
	.stl-block--text-panel__eyebrow { margin-bottom: 1.25rem; }
	.stl-block--text-panel__title { font-size: min(var(--stl-text-panel-title-size, 46px), 32px); }
	.stl-block--text-panel__body,
	.stl-block--text-panel__bullets { font-size: min(var(--stl-text-panel-body-size, 24px), 18px); }
}

/* =================================================================
   Editor-only tweaks — make the block obvious in the inserter
   ================================================================= */
.editor-styles-wrapper .stl-block { outline: 1px dashed transparent; }

/* Portable block refinements that previously lived on staging-only page IDs. */
@media (min-width: 769px) {
  .stl-block--cases,
  .stl-block--text-panel {
    --stl-overview-content-max: var(--stl-container);
    --stl-overview-content-gutter: var(--stl-gutter);
  }

  .stl-block--cases__inner,
  .stl-block--text-panel__inner {
    max-width: var(--stl-overview-content-max);
  }

  .stl-block--cases .stl-section-heading {
    font-size: 46px;
    line-height: 1.15;
  }

  .stl-block--cases .stl-card--featured-dark__cta,
  .stl-block--cases .stl-link-arrow {
    font-size: 14px;
    line-height: 1.6;
  }
}

@media (min-width: 769px) {
  .entry-content > .wp-block-columns.stl-blocks-overview-columns,
  .wp-site-blocks > .wp-block-columns.stl-blocks-overview-columns,
  main > .wp-block-columns.stl-blocks-overview-columns {
    width: 100%;
    max-width: 1200px;
    max-width: var(--stl-container);
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 24px;
    padding-left: var(--stl-gutter);
    padding-right: 24px;
    padding-right: var(--stl-gutter);
    column-gap: 48px;
    gap: clamp(2rem, 4vw, 4.5rem);
    box-sizing: border-box;
  }

  .entry-content > .wp-block-columns.stl-blocks-overview-columns > .wp-block-column + .wp-block-column,
  .wp-site-blocks > .wp-block-columns.stl-blocks-overview-columns > .wp-block-column + .wp-block-column,
  main > .wp-block-columns.stl-blocks-overview-columns > .wp-block-column + .wp-block-column {
    margin-left: 48px;
    margin-left: clamp(2rem, 4vw, 4.5rem);
  }

  .entry-content > .wp-block-columns.stl-blocks-overview-columns .stl-block--text-panel,
  .entry-content > .wp-block-columns.stl-blocks-overview-columns .stl-block--bookcall,
  .wp-site-blocks > .wp-block-columns.stl-blocks-overview-columns .stl-block--text-panel,
  .wp-site-blocks > .wp-block-columns.stl-blocks-overview-columns .stl-block--bookcall,
  main > .wp-block-columns.stl-blocks-overview-columns .stl-block--text-panel,
  main > .wp-block-columns.stl-blocks-overview-columns .stl-block--bookcall {
    padding-left: 0;
    padding-right: 0;
  }

  .entry-content > .wp-block-columns.stl-blocks-overview-columns .stl-block--text-panel,
  .wp-site-blocks > .wp-block-columns.stl-blocks-overview-columns .stl-block--text-panel,
  main > .wp-block-columns.stl-blocks-overview-columns .stl-block--text-panel {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
  }

  .entry-content > .wp-block-columns.stl-blocks-overview-columns .stl-block--bookcall__grid,
  .wp-site-blocks > .wp-block-columns.stl-blocks-overview-columns .stl-block--bookcall__grid,
  main > .wp-block-columns.stl-blocks-overview-columns .stl-block--bookcall__grid {
    max-width: none;
    width: 100%;
  }

  .entry-content > .wp-block-columns.stl-blocks-overview-columns .stl-card--bookcall,
  .wp-site-blocks > .wp-block-columns.stl-blocks-overview-columns .stl-card--bookcall,
  main > .wp-block-columns.stl-blocks-overview-columns .stl-card--bookcall {
    min-height: 100%;
  }
}

@supports (gap: 1rem) {
  @media (min-width: 769px) {
    .entry-content > .wp-block-columns.stl-blocks-overview-columns > .wp-block-column + .wp-block-column,
    .wp-site-blocks > .wp-block-columns.stl-blocks-overview-columns > .wp-block-column + .wp-block-column,
    main > .wp-block-columns.stl-blocks-overview-columns > .wp-block-column + .wp-block-column {
      margin-left: 0;
    }
  }
}

@supports selector(.wp-block-columns:has(.stl-block--text-panel)) {
  @media (min-width: 769px) {
    .entry-content > .wp-block-columns:has(.stl-block--text-panel),
    .wp-site-blocks > .wp-block-columns:has(.stl-block--text-panel),
    main > .wp-block-columns:has(.stl-block--text-panel) {
      width: 100%;
      max-width: var(--stl-container);
      margin-left: auto !important;
      margin-right: auto !important;
      padding-left: var(--stl-gutter);
      padding-right: var(--stl-gutter);
      gap: clamp(2rem, 4vw, 4.5rem);
      box-sizing: border-box;
    }

    .entry-content > .wp-block-columns:has(.stl-block--text-panel) .stl-block--text-panel,
    .entry-content > .wp-block-columns:has(.stl-block--text-panel) .stl-block--bookcall,
    .wp-site-blocks > .wp-block-columns:has(.stl-block--text-panel) .stl-block--text-panel,
    .wp-site-blocks > .wp-block-columns:has(.stl-block--text-panel) .stl-block--bookcall,
    main > .wp-block-columns:has(.stl-block--text-panel) .stl-block--text-panel,
    main > .wp-block-columns:has(.stl-block--text-panel) .stl-block--bookcall {
      padding-left: 0;
      padding-right: 0;
    }

    .entry-content > .wp-block-columns:has(.stl-block--text-panel) .stl-block--text-panel,
    .wp-site-blocks > .wp-block-columns:has(.stl-block--text-panel) .stl-block--text-panel,
    main > .wp-block-columns:has(.stl-block--text-panel) .stl-block--text-panel {
      max-width: none;
      margin-left: 0;
      margin-right: 0;
    }

    .entry-content > .wp-block-columns:has(.stl-block--bookcall),
    .wp-site-blocks > .wp-block-columns:has(.stl-block--bookcall),
    main > .wp-block-columns:has(.stl-block--bookcall) {
      width: 100%;
      max-width: var(--stl-container);
      margin-left: auto !important;
      margin-right: auto !important;
      padding-left: var(--stl-gutter);
      padding-right: var(--stl-gutter);
      gap: clamp(2rem, 4vw, 4.5rem);
      box-sizing: border-box;
    }

    .entry-content > .wp-block-columns:has(.stl-block--bookcall) .stl-block--bookcall,
    .wp-site-blocks > .wp-block-columns:has(.stl-block--bookcall) .stl-block--bookcall,
    main > .wp-block-columns:has(.stl-block--bookcall) .stl-block--bookcall {
      padding-left: 0;
      padding-right: 0;
    }

    .entry-content > .wp-block-columns:has(.stl-block--bookcall) .stl-block--bookcall__grid,
    .wp-site-blocks > .wp-block-columns:has(.stl-block--bookcall) .stl-block--bookcall__grid,
    main > .wp-block-columns:has(.stl-block--bookcall) .stl-block--bookcall__grid {
      max-width: none;
      width: 100%;
    }
  }
}

@media (hover: hover) and (pointer: fine) and (min-width: 769px) {
  .stl-block--text-panel {
    transition: transform 280ms ease, box-shadow 280ms ease;
    will-change: transform;
  }

  .stl-block--text-panel:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 42px rgba(15, 20, 45, 0.22);
  }
}
