/* =========================================================================
 * XD homepage blocks.
 * Loaded after xd.css. Uses brand tokens defined there.
 * ========================================================================= */

/* ---------- Common ---------- */
.xd-section { padding: clamp(64px, 9vw, 120px) 24px; }
.xd-section__inner { max-width: var(--xd-content-max); margin: 0 auto; }

/* ---------- Stat band ---------- */
.xd-stat-band {
	background: var(--xd-near-black);
	color: #fff;
	padding: clamp(56px, 7vw, 88px) 24px;
}
.xd-stat-band__inner {
	max-width: var(--xd-content-max);
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px 48px;
	align-items: stretch;
}
.xd-stat-band__item {
	margin: 0;
	padding: 0;
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
}
.xd-stat-band__rule {
	display: block;
	width: 40px;
	height: 3px;
	background: var(--xd-teal);
	margin-bottom: 18px;
	border-radius: 2px;
}
.xd-stat-band__quote {
	margin: 0;
	font-size: 1.0625rem;
	line-height: 1.55;
	color: var(--xd-slate-200);
	font-weight: 500;
	font-style: normal;
}
@media (max-width: 880px) { .xd-stat-band__inner { grid-template-columns: 1fr; } }

/* ---------- Service quad ---------- */
.xd-service-quad {
	padding: clamp(80px, 9vw, 120px) 24px;
	background: #fff;
}
.xd-service-quad__inner { max-width: var(--xd-content-max); margin: 0 auto; }
.xd-service-quad__header { text-align: center; max-width: 760px; margin: 0 auto 56px; }
.xd-service-quad__heading {
	font-size: clamp(2rem, 3.5vw, 2.75rem);
	letter-spacing: -0.02em;
	line-height: 1.15;
	margin: 0 0 16px;
	color: var(--xd-near-black);
	font-weight: 700;
}
.xd-service-quad__subhead { color: var(--xd-slate-700); font-size: 1.0625rem; line-height: 1.7; margin: 0; }
.xd-service-quad__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.xd-tile {
	display: flex; flex-direction: column;
	background: #fff;
	border: 1px solid var(--xd-slate-200);
	border-radius: 16px;
	padding: 28px 28px 24px;
	text-decoration: none;
	color: var(--xd-near-black);
	transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
	position: relative;
	overflow: hidden;
	height: 100%;
}
.xd-tile:hover { transform: translateY(-4px); box-shadow: var(--xd-shadow-md); border-color: var(--xd-slate-200); }
.xd-tile__rule {
	position: absolute; top: 0; left: 0; right: 0; height: 4px;
	background: linear-gradient(90deg, var(--xd-teal), var(--xd-teal-dark));
}
.xd-tile__num {
	position: absolute;
	top: 18px; right: 22px;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	color: var(--xd-slate-200);
	font-variant-numeric: tabular-nums;
}
.xd-tile__icon { color: var(--xd-teal-dark); margin-bottom: 16px; display: inline-flex; }
.xd-tile__eyebrow {
	display: block;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--xd-coral);
	margin-bottom: 8px;
}
.xd-tile__title { font-size: 1.25rem; font-weight: 700; line-height: 1.25; margin: 0 0 10px; min-height: 3em; }
.xd-tile__subhead { color: var(--xd-slate-700); font-size: 0.95rem; line-height: 1.55; margin: 0 0 18px; flex: 1; }
.xd-tile__price {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	padding: 6px 12px;
	border-radius: 999px;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	margin: 0 0 14px;
	font-variant-numeric: tabular-nums;
}
.xd-tile__price--fixed   { background: rgba(91, 196, 176, .14); color: var(--xd-teal-dark); border: 1px solid rgba(91, 196, 176, .35); }
.xd-tile__price--contact { background: var(--xd-slate-50); color: var(--xd-slate-700); border: 1px solid var(--xd-slate-200); }
.xd-tile__cta { color: var(--xd-teal-dark); font-weight: 600; font-size: 0.9rem; margin-top: auto; }
@media (max-width: 1023px) { .xd-service-quad__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 559px)  { .xd-service-quad__grid { grid-template-columns: 1fr; } }

/* ---------- Service deep dive ---------- */
.xd-deep { background: var(--xd-slate-50); padding: 0; }
.xd-deep__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	align-items: stretch;
}
.xd-deep__row + .xd-deep__row { border-top: 1px solid var(--xd-slate-200); }
.xd-deep__art {
	position: relative;
	min-height: 380px;
	background: var(--xd-near-black);
	overflow: hidden;
}
.xd-deep__art-img {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
	filter: saturate(1.05);
}
.xd-deep__art::after {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(15, 23, 42, .15) 0%, rgba(15, 23, 42, .35) 100%);
	pointer-events: none;
}
.xd-deep__copy {
	padding: clamp(48px, 6vw, 80px);
	display: flex; flex-direction: column; justify-content: center;
	max-width: 640px;
}
.xd-deep__meta {
	display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
	margin: 0 0 14px;
}
.xd-deep__eyebrow {
	font-size: 0.75rem; font-weight: 600;
	letter-spacing: 0.18em; text-transform: uppercase;
	color: var(--xd-teal-dark); margin: 0;
}
.xd-deep__num {
	color: var(--xd-slate-500);
	font-variant-numeric: tabular-nums;
}
.xd-deep__price {
	display: inline-flex; align-items: center;
	padding: 5px 12px;
	border-radius: 999px;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	font-variant-numeric: tabular-nums;
}
.xd-deep__price--fixed   { background: rgba(91, 196, 176, .14); color: var(--xd-teal-dark); border: 1px solid rgba(91, 196, 176, .35); }
.xd-deep__price--contact { background: var(--xd-slate-50); color: var(--xd-slate-700); border: 1px solid var(--xd-slate-200); }
body.xd-loop .xd-deep__num { color: rgba(255, 255, 255, .5); }
body.xd-loop .xd-deep__price--fixed   { background: rgba(91, 196, 176, .18); color: var(--xd-teal); border-color: rgba(91, 196, 176, .45); }
body.xd-loop .xd-deep__price--contact { background: rgba(255, 255, 255, .08); color: rgba(255, 255, 255, .85); border-color: rgba(255, 255, 255, .18); }
.xd-deep__title {
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	letter-spacing: -0.02em;
	line-height: 1.2;
	margin: 0 0 18px;
	color: var(--xd-near-black);
	font-weight: 700;
	text-wrap: balance;
}
.xd-deep__body { color: var(--xd-slate-700); font-size: 1.0625rem; line-height: 1.7; margin: 0 0 22px; }
.xd-deep__link {
	color: var(--xd-near-black);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 2px solid var(--xd-teal);
	padding-bottom: 4px;
	display: inline-block;
	width: fit-content;
}
.xd-deep__link:hover { color: var(--xd-teal-dark); }
.xd-deep__row--right .xd-deep__art  { order: 2; }
.xd-deep__row--right .xd-deep__copy { order: 1; }
@media (max-width: 879px) {
	.xd-deep__row, .xd-deep__row--right { grid-template-columns: 1fr; }
	.xd-deep__row--right .xd-deep__art  { order: 0; }
	.xd-deep__row--right .xd-deep__copy { order: 0; }
	.xd-deep__art { min-height: 240px; }
}

/* ---------- Products strip ---------- */
.xd-products {
	background: #fff;
	padding: clamp(80px, 9vw, 120px) 24px;
}
.xd-products__inner { max-width: var(--xd-content-max); margin: 0 auto; }
.xd-products__header { text-align: center; max-width: 760px; margin: 0 auto 56px; }
.xd-products__heading { font-size: clamp(2rem, 3.5vw, 2.75rem); margin: 0 0 16px; font-weight: 700; letter-spacing: -0.02em; }
.xd-products__subhead { color: var(--xd-slate-700); font-size: 1.0625rem; line-height: 1.7; margin: 0; }
.xd-products__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.xd-product-card {
	display: flex; flex-direction: column;
	background: var(--xd-near-black); color: #fff;
	border-radius: 18px;
	padding: 32px;
	text-decoration: none;
	transition: transform 220ms ease, box-shadow 220ms ease;
	overflow: hidden;
	position: relative;
}
.xd-product-card::before {
	content: '';
	position: absolute; inset: 0;
	background: radial-gradient(140% 80% at 0% 0%, rgba(91, 196, 176, 0.18), transparent 60%);
	pointer-events: none;
}
.xd-product-card:hover { transform: translateY(-4px); box-shadow: var(--xd-shadow-lg); }
.xd-product-card__icon { color: var(--xd-teal); margin-bottom: 18px; display: inline-flex; position: relative; }
.xd-product-card__eyebrow {
	color: var(--xd-coral);
	font-size: 0.75rem;
	letter-spacing: 0.18em;
	font-weight: 600;
	text-transform: uppercase;
	margin-bottom: 8px;
	position: relative;
}
.xd-product-card__title  { font-size: 1.5rem; font-weight: 700; margin: 0 0 12px; position: relative; }
.xd-product-card__subhead { color: var(--xd-slate-200); font-size: 0.95rem; line-height: 1.6; margin: 0 0 20px; flex: 1; position: relative; }
.xd-product-card__cta    { color: var(--xd-teal); font-weight: 600; font-size: 0.95rem; position: relative; }
@media (max-width: 1023px) { .xd-products__grid { grid-template-columns: 1fr; } }

/* ---------- Sectors ---------- */
.xd-sectors { background: var(--xd-slate-50); padding: clamp(80px, 9vw, 120px) 24px; }
.xd-sectors__inner { max-width: var(--xd-content-max); margin: 0 auto; }
.xd-sectors__header { text-align: center; max-width: 760px; margin: 0 auto 56px; }
.xd-sectors__heading { font-size: clamp(2rem, 3.5vw, 2.75rem); margin: 0 0 16px; font-weight: 700; letter-spacing: -0.02em; }
.xd-sectors__subhead { color: var(--xd-slate-700); font-size: 1.0625rem; line-height: 1.7; margin: 0; }
.xd-sectors__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.xd-sector-tile {
	background: #fff;
	border: 1px solid var(--xd-slate-200);
	border-radius: 14px;
	padding: 24px;
	text-decoration: none;
	color: var(--xd-near-black);
	transition: transform 220ms ease, box-shadow 220ms ease;
	position: relative;
	overflow: hidden;
	display: flex; flex-direction: column; gap: 8px;
}
.xd-sector-tile:hover { transform: translateY(-3px); box-shadow: var(--xd-shadow-md); }
.xd-sector-tile__rule { position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--xd-sector-accent, var(--xd-teal)); }
.xd-sector-tile__icon { color: var(--xd-sector-accent, var(--xd-teal)); display: inline-flex; }
.xd-sector-tile__title { font-size: 1.125rem; font-weight: 700; margin: 4px 0 4px; }
.xd-sector-tile__tagline { color: var(--xd-slate-700); font-size: 0.875rem; line-height: 1.5; margin: 0; }
@media (max-width: 1023px) { .xd-sectors__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 559px)  { .xd-sectors__grid { grid-template-columns: 1fr; } }

/* ---------- How we work ---------- */
.xd-how { background: #fff; padding: clamp(80px, 9vw, 120px) 24px; }
.xd-how__inner { max-width: var(--xd-content-max); margin: 0 auto; }
.xd-how__header { text-align: center; max-width: 760px; margin: 0 auto 56px; }
.xd-how__eyebrow {
	font-size: 0.75rem; font-weight: 600;
	letter-spacing: 0.18em; text-transform: uppercase;
	color: var(--xd-teal-dark); margin: 0 0 12px;
}
.xd-how__heading { font-size: clamp(2rem, 3.5vw, 2.75rem); margin: 0 0 16px; font-weight: 700; letter-spacing: -0.02em; }
.xd-how__subhead { color: var(--xd-slate-700); font-size: 1.0625rem; line-height: 1.7; margin: 0; }
.xd-how__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin-top: 32px; }
.xd-how__panel {
	padding: 28px;
	background: var(--xd-slate-50);
	border-radius: 16px;
	border: 1px solid var(--xd-slate-200);
}
.xd-how__step {
	display: inline-block;
	font-size: 0.75rem; font-weight: 700;
	letter-spacing: 0.18em;
	color: var(--xd-coral);
	margin-bottom: 12px;
}
.xd-how__title { font-size: 1.25rem; font-weight: 700; margin: 0 0 12px; line-height: 1.25; }
.xd-how__body  { color: var(--xd-slate-700); font-size: 1rem; line-height: 1.7; margin: 0; }
.xd-how__cta-row { text-align: center; margin: 48px 0 0; }
@media (max-width: 1023px) { .xd-how__grid { grid-template-columns: 1fr; } }

/* ---------- Translation gap ---------- */
.xd-gap { background: var(--xd-near-black); color: #fff; padding: clamp(80px, 9vw, 120px) 24px; }
.xd-gap__inner { max-width: 1040px; margin: 0 auto; }
.xd-gap__header { text-align: center; margin: 0 auto 40px; }
.xd-gap__heading { font-size: clamp(1.75rem, 3vw, 2.25rem); font-weight: 700; letter-spacing: -0.02em; margin: 0; color: #fff; }
.xd-gap__svg { width: 100%; height: auto; max-width: 760px; margin: 0 auto; display: block; }
.xd-gap__stats {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 24px 40px;
	max-width: 760px;
	margin: 40px auto 0;
	padding: 32px 24px;
	background: linear-gradient(135deg, rgba(91, 196, 176, .14) 0%, rgba(91, 196, 176, .06) 100%);
	border: 1px solid rgba(91, 196, 176, .35);
	border-radius: 16px;
}
.xd-gap__stat { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.xd-gap__stat-num {
	display: inline-flex; align-items: baseline;
	font-size: clamp(3rem, 7vw, 4.75rem);
	font-weight: 800;
	letter-spacing: -0.04em;
	color: var(--xd-teal);
	line-height: 1;
	font-variant-numeric: tabular-nums;
	text-shadow: 0 2px 16px rgba(91, 196, 176, .25);
}
.xd-gap__stat-pct {
	font-size: 0.55em;
	font-weight: 700;
	margin-left: 2px;
	letter-spacing: -0.02em;
	color: var(--xd-teal);
}
.xd-gap__stat-label {
	margin: 0;
	color: #fff;
	font-size: 1.0625rem;
	line-height: 1.4;
	font-weight: 500;
	max-width: 22ch;
}
.xd-gap__stat-divider {
	width: 1px; height: 80%;
	background: rgba(255, 255, 255, .14);
}
@media (max-width: 720px) {
	.xd-gap__stats { grid-template-columns: 1fr; }
	.xd-gap__stat-divider { width: 60%; height: 1px; justify-self: center; }
}
.xd-gap__caption {
	margin-top: 28px;
	color: var(--xd-slate-200);
	font-size: 0.95rem;
	line-height: 1.7;
	text-align: center;
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
}

/* ---------- Logo wall ---------- */
.xd-logos { background: #fff; padding: clamp(48px, 6vw, 80px) 24px; }
.xd-logos__inner { max-width: var(--xd-content-max); margin: 0 auto; text-align: center; }
.xd-logos__heading {
	color: var(--xd-slate-500);
	font-size: 0.875rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 600;
	margin: 0 0 24px;
}
.xd-logos__row { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.xd-logos__chip {
	display: inline-block;
	padding: 8px 14px;
	border: 1px dashed var(--xd-slate-200);
	border-radius: 999px;
	color: var(--xd-slate-500);
	font-size: 0.875rem;
}

/* ---------- Page hero (compact) ---------- */
.xd-page-hero {
	position: relative;
	display: grid; place-items: center;
	color: #fff;
	overflow: hidden;
	isolation: isolate;
	padding: clamp(56px, 9vw, 120px) 24px;
	min-height: min(58svh, 520px);
}
.xd-page-hero .xd-page-hero__media {
	position: absolute; inset: 0; z-index: -1; overflow: hidden;
}
.xd-page-hero__poster, .xd-page-hero__video {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover; display: block;
}
.xd-page-hero__video { opacity: 0; transition: opacity 600ms ease; }
.xd-page-hero__video.is-playing { opacity: 1; }
.xd-page-hero__overlay { position: absolute; inset: 0; pointer-events: none; }
.xd-page-hero__inner {
	max-width: 880px;
	width: 100%;
	margin: 0 auto;
	text-align: center;
	display: flex; flex-direction: column; gap: 16px;
}
.xd-page-hero__eyebrow {
	align-self: center;
	display: inline-block;
	margin: 0;
	padding: 6px 14px;
	font-size: 0.75rem;
	color: #fff;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 600;
	background: rgba(15, 23, 42, .55);
	border: 1px solid var(--xd-page-hero-accent, rgba(91, 196, 176, .55));
	border-radius: 999px;
	backdrop-filter: blur(8px) saturate(140%);
	-webkit-backdrop-filter: blur(8px) saturate(140%);
	text-shadow: 0 1px 4px rgba(15, 23, 42, .5);
}
.xd-page-hero__title {
	margin: 0;
	font-size: clamp(1.875rem, 4vw, 3.25rem);
	line-height: 1.1;
	letter-spacing: -0.02em;
	font-weight: 700;
	color: #fff;
	max-width: 22ch;
	margin-inline: auto;
	text-wrap: balance;
}
.xd-page-hero__subhead {
	margin: 0;
	font-size: 1.0625rem;
	line-height: 1.55;
	color: var(--xd-slate-200, #E2E8F0);
	max-width: 720px;
	margin-inline: auto;
}
body .xd-page-hero.alignfull {
	margin-top: calc(var(--xd-header-height) * -1);
	padding-top: calc(var(--xd-header-height) + clamp(56px, 9vw, 120px));
}

/* ---------- Offerings ---------- */
.xd-offerings { background: #fff; padding: clamp(64px, 8vw, 100px) 24px; }
.xd-offerings__inner { max-width: 920px; margin: 0 auto; }
.xd-offerings__header { text-align: center; margin: 0 auto 48px; }
.xd-offerings__heading { font-size: clamp(1.75rem, 3vw, 2.25rem); margin: 0 0 16px; font-weight: 700; letter-spacing: -0.02em; }
.xd-offerings__intro { color: var(--xd-slate-700); font-size: 1.0625rem; line-height: 1.7; margin: 0; max-width: 680px; margin-inline: auto; }
.xd-offerings__list { display: flex; flex-direction: column; gap: 24px; }
.xd-offering {
	padding: 28px 28px 32px;
	background: var(--xd-slate-50);
	border-left: 4px solid var(--xd-teal);
	border-radius: 12px;
}
.xd-offering__eyebrow {
	font-size: 0.75rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--xd-coral);
	font-weight: 700;
	margin: 0 0 8px;
}
.xd-offering__title { font-size: 1.25rem; font-weight: 700; margin: 0 0 8px; line-height: 1.25; }
.xd-offering__body { color: var(--xd-slate-700); margin: 0 0 14px; line-height: 1.7; }
.xd-offering__cta { color: var(--xd-teal-dark); font-weight: 600; text-decoration: none; }
.xd-offering__cta:hover { color: var(--xd-near-black); }

/* ---------- Pull quote ---------- */
.xd-pq {
	margin: 48px auto;
	max-width: 720px;
	padding: 0 24px 0 28px;
	border-left: 4px solid var(--xd-teal);
}
.xd-pq__quote {
	margin: 0;
	font-size: clamp(1.25rem, 2vw, 1.5rem);
	line-height: 1.45;
	font-style: italic;
	font-weight: 600;
	color: var(--xd-near-black);
}
.xd-pq__attr {
	margin-top: 14px;
	color: var(--xd-slate-500);
	font-size: 0.95rem;
	font-style: normal;
}
.xd-pq__attr span { color: var(--xd-slate-700); }

/* ---------- Case spotlight ---------- */
.xd-spotlight {
	background: linear-gradient(135deg, var(--xd-near-black) 0%, #1e293b 100%);
	color: #fff;
	padding: clamp(64px, 8vw, 100px) 24px;
	text-align: center;
}
.xd-spotlight__inner { max-width: 880px; margin: 0 auto; }
.xd-spotlight__eyebrow {
	font-size: 0.75rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--xd-teal);
	font-weight: 700;
	margin: 0 0 16px;
}
.xd-spotlight__title {
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	letter-spacing: -0.02em;
	font-weight: 700;
	margin: 0 0 16px;
	line-height: 1.2;
	color: #fff;
}
.xd-spotlight__summary { color: var(--xd-slate-200); margin: 0 auto 32px; line-height: 1.7; max-width: 640px; }
.xd-spotlight__kpis {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	margin: 0 0 32px;
}
.xd-spotlight__kpi {
	padding: 20px;
	background: rgba(91, 196, 176, 0.07);
	border: 1px solid rgba(91, 196, 176, 0.18);
	border-radius: 12px;
	text-align: center;
}
.xd-spotlight__kpi-value {
	font-size: clamp(1.25rem, 2vw, 1.75rem);
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	color: var(--xd-teal);
	margin: 0 0 4px;
}
.xd-spotlight__kpi-label {
	font-size: 0.8125rem;
	color: var(--xd-slate-200);
	margin: 0;
}
@media (max-width: 720px) { .xd-spotlight__kpis { grid-template-columns: 1fr; } }

/* ---------- FAQ ---------- */
.xd-faq {
	max-width: 880px;
	margin: 0 auto;
	padding: clamp(64px, 8vw, 100px) 24px;
}
.xd-faq__heading {
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	margin: 0 0 32px;
	text-align: center;
}
.xd-faq__list { border-top: 1px solid var(--xd-slate-200); }
.xd-faq__item {
	border-bottom: 1px solid var(--xd-slate-200);
	padding: 20px 0;
}
.xd-faq__q {
	cursor: pointer;
	font-weight: 600;
	font-size: 1.0625rem;
	color: var(--xd-near-black);
	list-style: none;
	display: flex; align-items: center; justify-content: space-between;
	gap: 16px;
	padding-right: 8px;
}
.xd-faq__q::-webkit-details-marker { display: none; }
.xd-faq__q::after {
	content: '+';
	color: var(--xd-teal-dark);
	font-size: 1.5rem;
	line-height: 1;
	transition: transform 200ms ease;
}
.xd-faq__item[open] .xd-faq__q::after { content: '−'; }
.xd-faq__a {
	margin-top: 12px;
	color: var(--xd-slate-700);
	line-height: 1.7;
}

/* ---------- Stack band ---------- */
.xd-stack { background: var(--xd-slate-50); padding: clamp(48px, 6vw, 80px) 24px; text-align: center; }
.xd-stack__inner { max-width: var(--xd-content-max); margin: 0 auto; }
.xd-stack__heading {
	font-size: 0.8125rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--xd-slate-500);
	font-weight: 600;
	margin: 0 0 24px;
}
.xd-stack__row {
	display: flex; flex-wrap: wrap; justify-content: center; gap: 12px;
	list-style: none; padding: 0; margin: 0;
}
.xd-stack__chip {
	display: inline-block;
	padding: 8px 16px;
	background: #fff;
	border: 1px solid var(--xd-slate-200);
	border-radius: 999px;
	color: var(--xd-near-black);
	font-size: 0.9rem;
	font-weight: 500;
}

/* ---------- Feature grid ---------- */
.xd-features { background: #fff; padding: clamp(64px, 8vw, 100px) 24px; }
.xd-features__inner { max-width: var(--xd-content-max); margin: 0 auto; }
.xd-features__header { text-align: center; max-width: 760px; margin: 0 auto 48px; }
.xd-features__heading { font-size: clamp(1.75rem, 3vw, 2.25rem); font-weight: 700; letter-spacing: -0.02em; margin: 0 0 14px; }
.xd-features__intro { color: var(--xd-slate-700); font-size: 1.0625rem; line-height: 1.7; margin: 0; }
.xd-features__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}
.xd-feature {
	padding: 24px;
	background: var(--xd-slate-50);
	border-radius: 14px;
	border: 1px solid var(--xd-slate-200);
}
.xd-feature__icon { color: var(--xd-teal-dark); display: inline-flex; margin-bottom: 12px; }
.xd-feature__title { font-size: 1.0625rem; font-weight: 700; margin: 0 0 6px; line-height: 1.3; }
.xd-feature__body  { color: var(--xd-slate-700); font-size: 0.95rem; line-height: 1.6; margin: 0; }
@media (max-width: 1023px) { .xd-features__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 559px)  { .xd-features__grid { grid-template-columns: 1fr; } }

/* Variant: vertical fit (compact chips) */
.xd-features--verticals .xd-features__grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
}
.xd-features--verticals .xd-feature {
	padding: 16px;
	background: #fff;
	border: 1px solid var(--xd-slate-200);
	text-align: center;
}
.xd-features--verticals .xd-feature__icon { display: none; }
.xd-features--verticals .xd-feature__title { margin: 0; font-size: 0.95rem; }
.xd-features--verticals .xd-feature__body { display: none; }
@media (max-width: 1023px) { .xd-features--verticals .xd-features__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 559px)  { .xd-features--verticals .xd-features__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Variant: dark band */
.xd-features--dark { background: var(--xd-near-black); color: #fff; }
.xd-features--dark .xd-features__heading { color: #fff; }
.xd-features--dark .xd-features__intro { color: var(--xd-slate-200); }
.xd-features--dark .xd-feature { background: rgba(91,196,176,0.06); border-color: rgba(91,196,176,0.2); }
.xd-features--dark .xd-feature__title { color: #fff; }
.xd-features--dark .xd-feature__body { color: var(--xd-slate-200); }

/* ---------- Process steps ---------- */
.xd-steps {
	background: linear-gradient(180deg, var(--xd-slate-50) 0%, #fff 100%);
	padding: clamp(64px, 8vw, 100px) 24px;
}
.xd-steps__inner { max-width: var(--xd-content-max); margin: 0 auto; }
.xd-steps__header { text-align: center; margin: 0 auto 48px; }
.xd-steps__heading { font-size: clamp(1.75rem, 3vw, 2.25rem); font-weight: 700; letter-spacing: -0.02em; margin: 0; }
.xd-steps__list {
	list-style: none; margin: 0; padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
	counter-reset: xd-step;
}
.xd-step {
	position: relative;
	padding: 24px;
	background: #fff;
	border: 1px solid var(--xd-slate-200);
	border-radius: 14px;
}
.xd-step__num {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	color: var(--xd-coral);
	display: block;
	margin-bottom: 8px;
}
.xd-step__icon { color: var(--xd-teal-dark); display: inline-flex; margin-bottom: 12px; }
.xd-step__title { font-size: 1.0625rem; font-weight: 700; margin: 0 0 6px; line-height: 1.3; }
.xd-step__body  { color: var(--xd-slate-700); font-size: 0.95rem; line-height: 1.6; margin: 0; }
.xd-step__connector {
	display: none;
	position: absolute;
	right: -16px; top: 50%;
	transform: translateY(-50%);
	width: 12px; height: 12px;
	border-top: 2px solid var(--xd-teal);
	border-right: 2px solid var(--xd-teal);
	transform: translateY(-50%) rotate(45deg);
	z-index: 2;
}
@media (min-width: 1024px) {
	.xd-step__connector { display: block; }
}
@media (max-width: 1023px) { .xd-steps__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 559px)  { .xd-steps__list { grid-template-columns: 1fr; } }

/* ---------- VPAL architecture ---------- */
.xd-vpal-arch { background: var(--xd-near-black); color: #fff; padding: clamp(64px, 8vw, 100px) 24px; }
.xd-vpal-arch__inner { max-width: 1080px; margin: 0 auto; }
.xd-vpal-arch__header { text-align: center; margin: 0 auto 32px; }
.xd-vpal-arch__heading { font-size: clamp(1.75rem, 3vw, 2.25rem); font-weight: 700; letter-spacing: -0.02em; margin: 0; color: #fff; }
.xd-vpal-arch__svg { width: 100%; height: auto; max-width: 880px; margin: 0 auto; display: block; background: #fff; border-radius: 16px; padding: 24px; box-sizing: border-box; }
.xd-vpal-arch__caption { color: var(--xd-slate-200); font-size: 0.95rem; line-height: 1.7; text-align: center; margin: 24px auto 0; max-width: 720px; }

/* ---------- Case study grid ---------- */
.xd-cases { background: var(--xd-slate-50); padding: clamp(64px, 8vw, 100px) 24px; }
.xd-cases__inner { max-width: var(--xd-content-max); margin: 0 auto; }
.xd-cases__header { text-align: center; max-width: 760px; margin: 0 auto 48px; }
.xd-cases__heading { font-size: clamp(1.75rem, 3vw, 2.25rem); font-weight: 700; letter-spacing: -0.02em; margin: 0 0 14px; }
.xd-cases__intro { color: var(--xd-slate-700); font-size: 1.0625rem; line-height: 1.7; margin: 0; }
.xd-cases__grid {
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px;
}
.xd-case-card {
	display: flex; flex-direction: column; gap: 12px;
	background: #fff; padding: 24px; border-radius: 14px;
	border: 1px solid var(--xd-slate-200);
	border-top: 4px solid var(--xd-case-accent, var(--xd-teal));
	text-decoration: none; color: var(--xd-near-black);
	transition: transform 220ms ease, box-shadow 220ms ease;
}
.xd-case-card:hover { transform: translateY(-4px); box-shadow: var(--xd-shadow-md); }
.xd-case-card__pill {
	display: inline-block; align-self: flex-start;
	font-size: 0.7rem; letter-spacing: 0.18em; text-transform: uppercase;
	font-weight: 700; color: var(--xd-case-accent, var(--xd-teal-dark));
}
.xd-case-card__title { font-size: 1.125rem; font-weight: 700; margin: 0; line-height: 1.3; }
.xd-case-card__summary { color: var(--xd-slate-700); font-size: 0.95rem; line-height: 1.6; margin: 0; flex: 1; }
.xd-case-card__kpis {
	list-style: none; padding: 0; margin: 0;
	display: flex; flex-wrap: wrap; gap: 6px;
}
.xd-case-card__kpis li {
	font-size: 0.8125rem; padding: 4px 10px;
	background: var(--xd-slate-50); border: 1px solid var(--xd-slate-200);
	border-radius: 999px; color: var(--xd-slate-700);
	font-variant-numeric: tabular-nums;
}
.xd-case-card__cta { color: var(--xd-teal-dark); font-weight: 600; font-size: 0.9rem; margin-top: 4px; }
@media (max-width: 1023px) { .xd-cases__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 559px)  { .xd-cases__grid { grid-template-columns: 1fr; } }

/* Inline contextual image (full-bleed band with rounded inner image) */
.xd-feature-image {
	margin: 0;
	padding: clamp(40px, 6vw, 72px) 24px;
	background: #fff;
}
.xd-feature-image__inner {
	max-width: var(--xd-content-max);
	margin: 0 auto;
	border-radius: 18px;
	overflow: hidden;
	box-shadow: var(--xd-shadow-md);
	aspect-ratio: 16 / 7;
	position: relative;
	background: var(--xd-near-black);
}
.xd-feature-image__inner img {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
}
.xd-feature-image--dark { background: var(--xd-slate-50); }

/* Single case body */
.xd-case-body { max-width: 780px; margin: 0 auto; padding: clamp(48px, 6vw, 80px) 24px; }
.xd-case-body h2 { font-size: clamp(1.5rem, 2.5vw, 1.875rem); margin-top: 2.5em; margin-bottom: 0.6em; letter-spacing: -0.02em; }
.xd-case-body p, .xd-case-body li { color: var(--xd-slate-700); line-height: 1.7; }
.xd-case-body ul { padding-left: 1.5em; }

/* Insights single + author bio */
.xd-post-hero {
	background: var(--xd-slate-50);
	padding: clamp(48px, 6vw, 80px) 24px;
}
.xd-post-hero__inner { max-width: 780px; margin: 0 auto; }
.xd-post-hero__pill {
	display: inline-block;
	font-size: 0.75rem; letter-spacing: 0.18em; text-transform: uppercase;
	color: var(--xd-teal-dark); font-weight: 700; margin-bottom: 14px;
}
.xd-post-hero__title {
	font-size: clamp(2rem, 4vw, 3rem); font-weight: 700;
	letter-spacing: -0.02em; line-height: 1.15; margin: 0 0 20px;
	text-wrap: balance;
}
.xd-post-hero__dek { font-size: 1.125rem; color: var(--xd-slate-700); line-height: 1.6; margin: 0 0 20px; }
.xd-post-hero__meta {
	display: flex; flex-wrap: wrap; gap: 16px;
	color: var(--xd-slate-500); font-size: 0.9rem;
}
.xd-post-content { max-width: 720px; margin: 0 auto; padding: clamp(32px, 5vw, 56px) 24px; }
.xd-post-content p { color: var(--xd-slate-700); line-height: 1.75; margin: 0 0 1.2em; font-size: 1.0625rem; }
.xd-post-content h2 { font-size: 1.5rem; margin-top: 2.5em; margin-bottom: 0.6em; }
.xd-post-content h3 { font-size: 1.25rem; margin-top: 2em; margin-bottom: 0.4em; }
.xd-post-content blockquote { border-left: 4px solid var(--xd-teal); padding-left: 20px; margin: 24px 0; font-style: italic; color: var(--xd-near-black); }
.xd-post-content ul { padding-left: 1.5em; color: var(--xd-slate-700); }

.xd-author {
	max-width: 720px; margin: 0 auto;
	padding: 24px 24px 0;
	display: flex; align-items: flex-start; gap: 16px;
	border-top: 1px solid var(--xd-slate-200);
}
.xd-author__avatar {
	width: 56px; height: 56px; border-radius: 50%;
	background: linear-gradient(135deg, var(--xd-teal), var(--xd-teal-dark));
	color: #fff; display: grid; place-items: center;
	font-weight: 700; flex: 0 0 auto;
}
.xd-author__name { font-weight: 600; color: var(--xd-near-black); margin: 0 0 4px; }
.xd-author__bio  { color: var(--xd-slate-500); font-size: 0.9rem; margin: 0; }

/* =========================================================================
 * HOMEPAGE LOOP MODE — body.xd-loop
 * Hero video stays fixed in the viewport; all content rolls over it as a
 * translucent dark glass overlay; reaches footer; rewinds to top.
 * Only applies to the front page.
 * ========================================================================= */

/* Lift hero media out of the page flow into a body-level fixed backdrop. */
body.xd-loop .xd-hero { position: relative; min-height: min(86svh, 760px); }
body.xd-loop .xd-hero .xd-hero__media {
	position: fixed;
	inset: 0;
	z-index: -1;
	width: 100vw; height: 100vh;
	overflow: hidden;
	pointer-events: none;
}
body.xd-loop .xd-hero .xd-hero__poster,
body.xd-loop .xd-hero .xd-hero__video {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
}
body.xd-loop .xd-hero .xd-hero__overlay {
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(15, 23, 42, .25) 0%, rgba(15, 23, 42, .55) 60%, rgba(15, 23, 42, .65) 100%);
}
body.xd-loop .xd-hero.alignfull { margin-top: calc(var(--xd-header-height) * -1); padding-top: calc(var(--xd-header-height) + clamp(64px, 10vw, 120px)); }

/* Drop body bg so the fixed video shows through. */
body.xd-loop { background: transparent; }
body.xd-loop main, body.xd-loop .site-content { background: transparent !important; }
html { background: var(--xd-near-black); }

/* Light dark-tint over every section so the video remains visible while text stays readable.
 * Cards inside sections get their own slightly stronger glass. */
body.xd-loop .xd-stat-band,
body.xd-loop .xd-service-quad,
body.xd-loop .xd-deep,
body.xd-loop .xd-products,
body.xd-loop .xd-sectors,
body.xd-loop .xd-how,
body.xd-loop .xd-gap,
body.xd-loop .xd-logos,
body.xd-loop .xd-latest {
	background: rgba(15, 23, 42, .28);
	backdrop-filter: blur(2px) saturate(140%);
	-webkit-backdrop-filter: blur(2px) saturate(140%);
	color: #fff;
	border-top: 1px solid rgba(255, 255, 255, .06);
}

/* Header on every xd-loop page stays in light-text state and uses a denser dark
 * glass band so content scrolling behind it doesn't bleed through. */
body.xd-loop .xd-header,
body.xd-loop .xd-header.is-scrolled {
	background: rgba(15, 23, 42, .88);
	box-shadow: 0 8px 24px rgba(15, 23, 42, .25);
	border-bottom: 1px solid rgba(255, 255, 255, .08);
	backdrop-filter: blur(14px) saturate(140%);
	-webkit-backdrop-filter: blur(14px) saturate(140%);
}
body.xd-loop .xd-header .xd-nav a,
body.xd-loop .xd-header.is-scrolled .xd-nav a {
	color: rgba(255, 255, 255, .94);
	text-shadow: 0 1px 8px rgba(15, 23, 42, .35);
}
body.xd-loop .xd-header .xd-nav a:hover,
body.xd-loop .xd-header.is-scrolled .xd-nav a:hover {
	color: var(--xd-teal);
	border-bottom-color: var(--xd-teal);
}
body.xd-loop .xd-header .xd-header__logo-primary,
body.xd-loop .xd-header.is-scrolled .xd-header__logo-primary,
body.xd-loop .xd-header .xd-header__logo-compact,
body.xd-loop .xd-header.is-scrolled .xd-header__logo-compact {
	filter: drop-shadow(0 1px 6px rgba(15, 23, 42, .35));
}
body.xd-loop .xd-header .xd-header__menu-toggle span,
body.xd-loop .xd-header.is-scrolled .xd-header__menu-toggle span {
	background: #fff;
	box-shadow: 0 1px 4px rgba(15, 23, 42, .35);
}

/* Stat band: each quote in its own dark glass card so video shows between them.
 * Equal heights — flex column lets the box stretch in the grid cell. */
body.xd-loop .xd-stat-band {
	background: transparent;
	backdrop-filter: none;
}
body.xd-loop .xd-stat-band__item {
	background: rgba(15, 23, 42, .68);
	backdrop-filter: blur(12px) saturate(140%);
	-webkit-backdrop-filter: blur(12px) saturate(140%);
	padding: 28px;
	border-radius: 14px;
	border: 1px solid rgba(255, 255, 255, .08);
	display: flex;
	flex-direction: column;
	height: 100%;
}
body.xd-loop .xd-stat-band__quote { flex: 1; }

/* Section headers become white with a readable shadow so they hold up over video. */
body.xd-loop .xd-stat-band__quote,
body.xd-loop .xd-service-quad__heading,
body.xd-loop .xd-service-quad__subhead,
body.xd-loop .xd-products__heading,
body.xd-loop .xd-products__subhead,
body.xd-loop .xd-sectors__heading,
body.xd-loop .xd-sectors__subhead,
body.xd-loop .xd-how__heading,
body.xd-loop .xd-how__subhead,
body.xd-loop .xd-gap__heading,
body.xd-loop .xd-gap__caption,
body.xd-loop .xd-logos__heading,
body.xd-loop .xd-latest__heading {
	color: #fff;
	text-shadow: 0 2px 16px rgba(15, 23, 42, .55), 0 1px 3px rgba(15, 23, 42, .65);
}
body.xd-loop .xd-service-quad__subhead,
body.xd-loop .xd-products__subhead,
body.xd-loop .xd-sectors__subhead,
body.xd-loop .xd-how__subhead {
	color: var(--xd-slate-200);
}

/* Service quad tiles become dark glass cards. */
body.xd-loop .xd-tile {
	background: rgba(15, 23, 42, .68);
	border-color: rgba(255, 255, 255, .12);
	color: #fff;
	backdrop-filter: blur(12px) saturate(140%);
	-webkit-backdrop-filter: blur(12px) saturate(140%);
}
body.xd-loop .xd-tile:hover { background: rgba(15, 23, 42, .82); border-color: rgba(91, 196, 176, .4); }
body.xd-loop .xd-tile__num { color: rgba(255, 255, 255, .35); }
body.xd-loop .xd-tile__price--fixed   { background: rgba(91, 196, 176, .18); color: var(--xd-teal); border-color: rgba(91, 196, 176, .45); }
body.xd-loop .xd-tile__price--contact { background: rgba(255, 255, 255, .08); color: rgba(255, 255, 255, .85); border-color: rgba(255, 255, 255, .18); }
body.xd-loop .xd-tile__title { color: #fff; }
body.xd-loop .xd-tile__subhead { color: var(--xd-slate-200); }
body.xd-loop .xd-tile__cta { color: var(--xd-teal); }

/* Service deep dive: photo on left/right but copy column inverts to dark glass. */
body.xd-loop .xd-deep__row { background: transparent; }
body.xd-loop .xd-deep__row + .xd-deep__row { border-top: 1px solid rgba(255, 255, 255, .06); }
body.xd-loop .xd-deep__copy {
	background: rgba(15, 23, 42, .68);
	backdrop-filter: blur(12px) saturate(140%);
	-webkit-backdrop-filter: blur(12px) saturate(140%);
	color: #fff;
}
body.xd-loop .xd-deep__title { color: #fff; }
body.xd-loop .xd-deep__body  { color: var(--xd-slate-200); }
body.xd-loop .xd-deep__link {
	color: #fff;
	border-bottom-color: var(--xd-teal);
}
body.xd-loop .xd-deep__link:hover { color: var(--xd-teal); }

/* Sector tiles: dark glass with sector accent retained. */
body.xd-loop .xd-sector-tile {
	background: rgba(15, 23, 42, .68);
	border-color: rgba(255, 255, 255, .1);
	color: #fff;
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}
body.xd-loop .xd-sector-tile:hover { background: rgba(15, 23, 42, .82); }
body.xd-loop .xd-sector-tile__title   { color: #fff; }
body.xd-loop .xd-sector-tile__tagline { color: var(--xd-slate-200); }

/* How-we-work panels become dark cards. */
body.xd-loop .xd-how__panel {
	background: rgba(15, 23, 42, .68);
	border-color: rgba(255, 255, 255, .1);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}
body.xd-loop .xd-how__title { color: #fff; }
body.xd-loop .xd-how__body  { color: var(--xd-slate-200); }

/* Logo wall chips re-flip on dark. */
body.xd-loop .xd-logos__chip {
	color: var(--xd-slate-200);
	border-color: rgba(255, 255, 255, .14);
}

/* Latest insights post cards become dark cards. */
body.xd-loop .xd-post-card {
	background: rgba(15, 23, 42, .68);
	border-color: rgba(255, 255, 255, .1);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}
body.xd-loop .xd-post-card__title a { color: #fff; }
body.xd-loop .xd-post-card__title a:hover { color: var(--xd-teal); }
body.xd-loop .xd-post-card__dek { color: var(--xd-slate-200); }
body.xd-loop .xd-post-card__meta { color: var(--xd-slate-500); }
body.xd-loop .xd-latest__all { color: var(--xd-teal); }

/* Final CTA + identity strip + footer already dark, just sit them on top. */
body.xd-loop .xd-final-cta,
body.xd-loop .xd-identity-strip,
body.xd-loop .xd-footer {
	position: relative;
	z-index: 1;
}

/* Force instant scroll on the home loop — the global "smooth" behaviour was
 * making the snap visible as a "scrolling back" animation. With instant, the
 * boundary snap is invisible and the experience feels like a continuous roller. */
html:has(body.xd-loop) { scroll-behavior: auto; }
body.xd-loop, body.xd-loop html { scroll-behavior: auto !important; }

@media (prefers-reduced-motion: reduce) {
	body.xd-loop { scroll-behavior: auto; }
}

/* =========================================================================
 * UNIVERSAL LOOP — inner-page section overrides.
 * Apply the same fixed-video / dark-glass / infinite-scroll pattern to every
 * page on the site. The home-loop rules above already covered the homepage
 * blocks; below covers blocks only used on inner pages.
 * ========================================================================= */

/* Page hero (inner pages) — media goes fixed, content stays in flow at top. */
body.xd-loop .xd-page-hero { position: relative; min-height: min(58svh, 520px); }
body.xd-loop .xd-page-hero .xd-page-hero__media {
	position: fixed;
	inset: 0;
	z-index: -1;
	width: 100vw; height: 100vh;
	overflow: hidden;
	pointer-events: none;
}
body.xd-loop .xd-page-hero .xd-page-hero__poster,
body.xd-loop .xd-page-hero .xd-page-hero__video {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
}
body.xd-loop .xd-page-hero .xd-page-hero__overlay {
	background: linear-gradient(180deg, rgba(15, 23, 42, .25) 0%, rgba(15, 23, 42, .55) 60%, rgba(15, 23, 42, .65) 100%) !important;
}

/* All inner-page section types: light translucent over the fixed video. */
body.xd-loop .xd-offerings,
body.xd-loop .xd-features,
body.xd-loop .xd-faq,
body.xd-loop .xd-stack,
body.xd-loop .xd-cases,
body.xd-loop .xd-feature-image,
body.xd-loop .xd-steps {
	background: rgba(15, 23, 42, .28) !important;
	backdrop-filter: blur(2px) saturate(140%);
	-webkit-backdrop-filter: blur(2px) saturate(140%);
	color: #fff;
	border-top: 1px solid rgba(255, 255, 255, .06);
}
/* Already-dark sections: just lift their z-index so the video is below. */
body.xd-loop .xd-spotlight,
body.xd-loop .xd-vpal-arch {
	position: relative;
	z-index: 1;
}

/* Override Gutenberg group blocks (inline-styled white/slate-50 backgrounds)
 * with denser dark glass + heavier blur — these blocks usually hold long-form
 * paragraph copy with no card around it, so they need their own contained
 * readability rather than relying on cards inside. */
body.xd-loop .wp-block-group.has-background[style*="background-color:#ffffff"],
body.xd-loop .wp-block-group.has-background[style*="background-color: #ffffff"],
body.xd-loop .wp-block-group.has-background[style*="background-color:#FFFFFF"],
body.xd-loop .wp-block-group[style*="background-color:#ffffff"],
body.xd-loop .wp-block-group[style*="background-color: #ffffff"],
body.xd-loop .wp-block-group[style*="background-color:#F8FAFC"],
body.xd-loop .wp-block-group[style*="background-color: #F8FAFC"],
body.xd-loop .wp-block-group[style*="background-color:#0F172A"],
body.xd-loop .wp-block-group[style*="background-color: #0F172A"] {
	background-color: rgba(15, 23, 42, .55) !important;
	backdrop-filter: blur(14px) saturate(140%);
	-webkit-backdrop-filter: blur(14px) saturate(140%);
	color: #fff;
}

/* Subtle text-shadow on raw paragraphs for the moments where they sit directly
 * over the video without a card. Scoped to <main> so footer / nav are untouched. */
body.xd-loop main p {
	text-shadow: 0 1px 4px rgba(15, 23, 42, .35);
}
/* Cancel the shadow inside dense-glass cards where local contrast is already strong. */
body.xd-loop .xd-tile p,
body.xd-loop .xd-product-card p,
body.xd-loop .xd-sector-tile p,
body.xd-loop .xd-how__panel p,
body.xd-loop .xd-feature p,
body.xd-loop .xd-step p,
body.xd-loop .xd-offering p,
body.xd-loop .xd-case-card p,
body.xd-loop .xd-faq__a p,
body.xd-loop .xd-form p,
body.xd-loop .xd-stat-band__item p,
body.xd-loop .xd-deep__copy p,
body.xd-loop .xd-spotlight p,
body.xd-loop .xd-pq blockquote {
	text-shadow: none;
}

/* Inner-page card containers: dense glass for readability. */
body.xd-loop .xd-offering,
body.xd-loop .xd-feature,
body.xd-loop .xd-step,
body.xd-loop .xd-faq__item,
body.xd-loop .xd-case-card,
body.xd-loop .xd-stack__chip {
	background: rgba(15, 23, 42, .68) !important;
	border-color: rgba(255, 255, 255, .1) !important;
	color: #fff !important;
	backdrop-filter: blur(12px) saturate(140%);
	-webkit-backdrop-filter: blur(12px) saturate(140%);
}

/* Cards: titles and bodies invert. */
body.xd-loop .xd-offering__title,
body.xd-loop .xd-feature__title,
body.xd-loop .xd-step__title,
body.xd-loop .xd-case-card__title,
body.xd-loop .xd-features__heading,
body.xd-loop .xd-offerings__heading,
body.xd-loop .xd-faq__heading,
body.xd-loop .xd-cases__heading,
body.xd-loop .xd-steps__heading {
	color: #fff;
	text-shadow: 0 2px 16px rgba(15, 23, 42, .55), 0 1px 3px rgba(15, 23, 42, .65);
}
body.xd-loop .xd-offering__body,
body.xd-loop .xd-feature__body,
body.xd-loop .xd-step__body,
body.xd-loop .xd-case-card__summary,
body.xd-loop .xd-offerings__intro,
body.xd-loop .xd-features__intro,
body.xd-loop .xd-cases__intro,
body.xd-loop .xd-faq__a {
	color: var(--xd-slate-200) !important;
}

/* FAQ accordion summary — flip to white. */
body.xd-loop .xd-faq__q { color: #fff; }
body.xd-loop .xd-faq__list { border-top-color: rgba(255, 255, 255, .12); }
body.xd-loop .xd-faq__item { border-bottom-color: rgba(255, 255, 255, .12); }
body.xd-loop .xd-faq__q::after { color: var(--xd-teal); }

/* Pull quote on glass — restyle the rule and quote. */
body.xd-loop .xd-pq {
	border-left-color: var(--xd-teal);
	background: rgba(15, 23, 42, .55);
	padding: 24px 28px;
	border-radius: 8px;
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}
body.xd-loop .xd-pq__quote { color: #fff; }
body.xd-loop .xd-pq__attr  { color: var(--xd-slate-500); }
body.xd-loop .xd-pq__attr span { color: var(--xd-slate-200); }

/* Case card chips invert on glass. */
body.xd-loop .xd-case-card__kpis li {
	background: rgba(255, 255, 255, .08);
	border-color: rgba(255, 255, 255, .14);
	color: var(--xd-slate-200);
}

/* Inline paragraphs styled with theme colour helpers — invert sensibly. */
body.xd-loop .has-xd-slate-700-color { color: var(--xd-slate-200) !important; }
body.xd-loop .has-xd-slate-500-color { color: var(--xd-slate-500) !important; }
body.xd-loop .has-xd-near-black-color { color: #fff !important; }

/* Generic h2/h3 inside groups (used in many inner pages) — keep readable on glass. */
body.xd-loop main h2,
body.xd-loop main h3 {
	color: #fff;
}

/* Forms (scoping workshop, contact, resource gate) — invert to dark glass. */
body.xd-loop .xd-form {
	background: rgba(15, 23, 42, .68) !important;
	border-color: rgba(255, 255, 255, .1) !important;
	color: #fff;
	backdrop-filter: blur(12px) saturate(140%);
	-webkit-backdrop-filter: blur(12px) saturate(140%);
}
body.xd-loop .xd-form__field > span:first-child { color: #fff; }
body.xd-loop .xd-form input[type="text"],
body.xd-loop .xd-form input[type="email"],
body.xd-loop .xd-form input[type="tel"],
body.xd-loop .xd-form input[type="url"],
body.xd-loop .xd-form select,
body.xd-loop .xd-form textarea {
	background: rgba(255, 255, 255, .08);
	color: #fff;
	border-color: rgba(255, 255, 255, .18);
}
body.xd-loop .xd-form input::placeholder,
body.xd-loop .xd-form textarea::placeholder { color: rgba(255, 255, 255, .5); }
body.xd-loop .xd-form__consent span { color: var(--xd-slate-200) !important; }
body.xd-loop .xd-form__note { color: var(--xd-slate-500); }
body.xd-loop .xd-form__status.is-success {
	background: rgba(16, 185, 129, .12);
	border-color: rgba(16, 185, 129, .35);
	color: #d1fae5;
}
body.xd-loop .xd-form__status.is-error {
	background: rgba(239, 68, 68, .12);
	border-color: rgba(239, 68, 68, .35);
	color: #fecaca;
}

/* Feature image band on glass. */
body.xd-loop .xd-feature-image { background: rgba(15, 23, 42, .28) !important; }

/* Single post hero + content (insights) on glass. */
body.xd-loop .xd-post-hero { background: rgba(15, 23, 42, .28) !important; color: #fff; }
body.xd-loop .xd-post-hero__title { color: #fff; }
body.xd-loop .xd-post-hero__dek   { color: var(--xd-slate-200) !important; }
body.xd-loop .xd-post-hero__meta  { color: var(--xd-slate-500); }
body.xd-loop .xd-post-content    { background: rgba(15, 23, 42, .55); color: var(--xd-slate-200); }
body.xd-loop .xd-post-content p, body.xd-loop .xd-post-content li { color: var(--xd-slate-200); }
body.xd-loop .xd-post-content h2, body.xd-loop .xd-post-content h3 { color: #fff; }
body.xd-loop .xd-post-content blockquote { color: #fff; }
body.xd-loop .xd-author { background: rgba(15, 23, 42, .35); border-top-color: rgba(255, 255, 255, .1); }
body.xd-loop .xd-author__name { color: #fff; }
body.xd-loop .xd-author__bio  { color: var(--xd-slate-500); }

/* ---------- 404 + search pages ---------- */
.xd-404, .xd-search {
	min-height: 70vh;
	padding: clamp(80px, 10vw, 140px) 24px;
	display: grid; place-items: center;
	background: rgba(15, 23, 42, .65);
	color: #fff;
	backdrop-filter: blur(12px) saturate(140%);
	-webkit-backdrop-filter: blur(12px) saturate(140%);
}
.xd-404__inner, .xd-search__inner {
	max-width: 720px; margin: 0 auto; text-align: center;
}
.xd-404__pill, .xd-search__pill {
	display: inline-block;
	padding: 6px 14px;
	font-size: 0.75rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 700;
	color: var(--xd-teal);
	background: rgba(15, 23, 42, .5);
	border: 1px solid rgba(91, 196, 176, .35);
	border-radius: 999px;
	margin-bottom: 18px;
}
.xd-404__heading, .xd-search__heading {
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.1;
	margin: 0 0 18px;
	color: #fff;
}
.xd-404__sub {
	color: var(--xd-slate-200);
	font-size: 1.0625rem;
	line-height: 1.55;
	max-width: 540px;
	margin: 0 auto 28px;
}
.xd-404__search, .xd-search__form {
	display: flex; gap: 8px;
	max-width: 520px; margin: 0 auto 28px;
}
.xd-404__search input, .xd-search__form input {
	flex: 1; font: inherit; font-size: 1rem;
	padding: 12px 18px; border-radius: 999px;
	background: rgba(255,255,255,.08); color: #fff;
	border: 1px solid rgba(255,255,255,.18);
}
.xd-404__search input:focus, .xd-search__form input:focus {
	outline: 0; border-color: var(--xd-teal); background: rgba(255,255,255,.12);
}
.xd-404__search button, .xd-search__form button {
	background: var(--xd-teal); color: var(--xd-near-black);
	font-weight: 600; border: 0; padding: 12px 22px; border-radius: 999px; cursor: pointer;
}
.xd-404__links, .xd-search__suggestions {
	display: flex; flex-wrap: wrap; justify-content: center; gap: 8px;
}
.xd-404__links a, .xd-search__suggestions a {
	display: inline-block;
	padding: 8px 16px;
	background: rgba(15, 23, 42, .55);
	border: 1px solid rgba(255, 255, 255, .14);
	border-radius: 999px;
	color: rgba(255, 255, 255, .92);
	text-decoration: none;
	font-size: 0.9rem;
	transition: background-color 160ms ease, border-color 160ms ease;
}
.xd-404__links a:hover, .xd-search__suggestions a:hover {
	background: rgba(91, 196, 176, .15);
	border-color: var(--xd-teal);
	color: var(--xd-teal);
}

/* Search results list */
.xd-search__results {
	display: grid; gap: 16px;
	margin: 32px auto 0;
	text-align: left;
}
.xd-search-result {
	background: rgba(15, 23, 42, .5);
	border: 1px solid rgba(255, 255, 255, .1);
	border-radius: 14px;
	padding: 20px 24px;
}
.xd-search-result__type {
	font-size: 0.75rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--xd-teal);
	font-weight: 700;
	margin: 0 0 6px;
}
.xd-search-result__title { font-size: 1.125rem; margin: 0 0 6px; line-height: 1.3; }
.xd-search-result__title a { color: #fff; text-decoration: none; }
.xd-search-result__title a:hover { color: var(--xd-teal); }
.xd-search-result__excerpt { color: var(--xd-slate-200); font-size: 0.95rem; line-height: 1.5; margin: 0 0 8px; }
.xd-search-result__cta { color: var(--xd-teal); font-weight: 600; font-size: 0.9rem; }
.xd-search__pagination { margin-top: 32px; text-align: center; color: rgba(255,255,255,.85); }
.xd-search__pagination a { color: var(--xd-teal); }
.xd-search__empty { color: var(--xd-slate-200); margin-top: 24px; }

/* ---------- Related posts sidebar (single post) ---------- */
.xd-related {
	max-width: 720px;
	margin: 0 auto;
	padding: 24px;
}
.xd-related__heading {
	font-size: 0.8125rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 700;
	color: var(--xd-teal);
	margin: 0 0 20px;
}
.xd-related__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}
.xd-related-card {
	background: rgba(15, 23, 42, .55);
	border: 1px solid rgba(255, 255, 255, .1);
	border-radius: 12px;
	padding: 18px;
	text-decoration: none;
	color: #fff;
	display: flex; flex-direction: column; gap: 8px;
	backdrop-filter: blur(12px) saturate(140%);
	-webkit-backdrop-filter: blur(12px) saturate(140%);
	transition: transform 220ms ease, border-color 220ms ease;
}
.xd-related-card:hover { transform: translateY(-2px); border-color: rgba(91, 196, 176, .4); }
.xd-related-card__pill {
	font-size: 0.7rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--xd-teal);
	font-weight: 700;
}
.xd-related-card__title {
	font-size: 0.95rem;
	font-weight: 600;
	margin: 0;
	color: #fff;
	line-height: 1.35;
}
@media (max-width: 720px) {
	.xd-related__grid { grid-template-columns: 1fr; }
}

/* ---------- Latest insights ---------- */
.xd-latest { background: var(--xd-slate-50); padding: clamp(80px, 9vw, 120px) 24px; }
.xd-latest__inner { max-width: var(--xd-content-max); margin: 0 auto; }
.xd-latest__header { display: flex; align-items: end; justify-content: space-between; margin-bottom: 32px; gap: 24px; flex-wrap: wrap; }
.xd-latest__heading { font-size: clamp(1.75rem, 3vw, 2.25rem); font-weight: 700; letter-spacing: -0.02em; margin: 0; }
.xd-latest__all { color: var(--xd-teal-dark); font-weight: 600; text-decoration: none; }
.xd-latest__all:hover { color: var(--xd-near-black); }
.xd-latest__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.xd-latest__empty { color: var(--xd-slate-500); }
.xd-post-card {
	background: #fff;
	border: 1px solid var(--xd-slate-200);
	border-radius: 14px;
	padding: 24px;
	display: flex; flex-direction: column; gap: 12px;
}
.xd-post-card__pill {
	display: inline-block;
	font-size: 0.7rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--xd-teal-dark);
	font-weight: 700;
	width: fit-content;
}
.xd-post-card__title { font-size: 1.125rem; font-weight: 700; margin: 0; line-height: 1.3; }
.xd-post-card__title a { color: var(--xd-near-black); text-decoration: none; }
.xd-post-card__title a:hover { color: var(--xd-teal-dark); }
.xd-post-card__dek { color: var(--xd-slate-700); font-size: 0.95rem; line-height: 1.6; margin: 0; }
.xd-post-card__meta { color: var(--xd-slate-500); font-size: 0.825rem; margin: 0; }
@media (max-width: 1023px) { .xd-latest__grid { grid-template-columns: 1fr; } }
