/* ============================================================
   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: var(--stl-pillar-image-width, 100%);
	max-width: 100%;
	aspect-ratio: 1 / 1;
	margin: 0 auto 1.5rem;
	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);
	font-size: 1.875rem;
	font-weight: 700;
	letter-spacing: 0;
	color: var(--stl-burgundy);
	margin: 0 0 0.75rem;
	line-height: 1.12;
	min-height: 3.36em;
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
	text-wrap: balance;
}
.stl-block--pillars__rule {
	width: 40px; height: 2px; background: var(--stl-orange);
	margin: 0 0 1.25rem; border: 0;
}
.stl-block--pillars__intro {
	font-family: var(--stl-font-body);
	font-size: 0.95rem;
	font-weight: 300;
	line-height: 1.6;
	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 1rem; flex: 1;
}
/* 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__title {
		font-size: 1.625rem;
	}
}
@media (max-width: 768px) {
	.stl-block--pillars__title {
		min-height: 0;
	}
}
.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);
	font-size: var(--stl-quote-fs, 22px);
	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: var(--stl-quote-name-fs, 16px); font-weight: 700;
	color: #fff;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.stl-quote-revolver__role {
	font-family: var(--stl-font-body);
	font-size: var(--stl-quote-role-fs, 16px); 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. 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);
}
.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-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 (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);
  }
}
