/* ==========================================================================
   DotLynx 2027 - design system (theme 3.0.0, delivery v4)

   One source of truth for tokens, layout, components and templates. The
   earlier stacked "composition pass / art-direction / correction" override
   layers were removed rather than patched: every selector below is the only
   rule for what it styles. motion.css only ever enhances what is here.
   ========================================================================== */

:root {
	/* Colour. Balance target: ~60% navy, ~30% light neutral, ~10% orange. */
	--dlx-navy: var(--wp--preset--color--brand-900, #112A46);
	--dlx-navy-950: #081828;
	--dlx-navy-700: var(--wp--preset--color--brand-700, #274D70);
	--dlx-orange: var(--wp--preset--color--accent-500, #F28C28);
	--dlx-orange-600: var(--wp--preset--color--accent-600, #D97312);
	/* #A8570F on white = 5.2:1. #F7A55A on the hero scrim = 5.5:1. */
	--dlx-orange-text: var(--wp--preset--color--accent-700, #A8570F);
	--dlx-orange-on-dark: #F7A55A;
	--dlx-ink: var(--wp--preset--color--text-900, #263442);
	--dlx-muted: var(--wp--preset--color--text-600, #5B6573);
	--dlx-on-dark: #E8EEF5;
	--dlx-on-dark-muted: #C3D1DF;
	--dlx-surface: #FFFFFF;
	--dlx-soft: var(--wp--preset--color--neutral-50, #F4F7FA);
	--dlx-warm: #FAF8F3;
	--dlx-border: var(--wp--preset--color--neutral-200, #D7DEE6);
	--dlx-border-soft: rgba(17, 42, 70, .11);
	--dlx-border-dark: rgba(255, 255, 255, .16);
	--dlx-border-strong: var(--wp--preset--color--neutral-500, #78838F);
	--dlx-error: var(--wp--preset--color--error, #B42318);
	--dlx-success: var(--wp--preset--color--success, #287A4B);

	/* Layout. */
	--dlx-container: 1160px;
	--dlx-container-wide: 1320px;
	--dlx-reading: 720px;
	--dlx-gutter: clamp(1rem, 4vw, 2.5rem);
	--dlx-section: clamp(4rem, 7.5vw, 6.5rem);
	--dlx-section-tight: clamp(2.75rem, 5vw, 4rem);
	--dlx-gap: clamp(1rem, 2vw, 1.5rem);
	--dlx-col-gap: clamp(2rem, 5vw, 4.5rem);
	--dlx-header-h: 72px;

	/* Shape. */
	--dlx-radius-lg: 20px;
	--dlx-radius: 14px;
	--dlx-radius-sm: 8px;
	--dlx-pill: 999px;
	--dlx-shadow-sm: 0 6px 18px rgba(17, 42, 70, .06);
	--dlx-shadow: 0 18px 44px rgba(17, 42, 70, .11);
	--dlx-shadow-lg: 0 28px 70px rgba(8, 24, 40, .24);

	/* Hero. The scrim alpha behind copy is .84: white text over a pure white
	   photo area still measures 12:1, muted copy 6.2:1. */
	--dlx-hero-home: clamp(680px, 80vh, 780px);
	--dlx-hero-inner: clamp(520px, 62vh, 600px);
	--dlx-scrim: rgba(8, 24, 40, .84);
	--dlx-scrim-0: rgba(8, 24, 40, 0);

	/* Media ratios. */
	--dlx-ratio-card: 16 / 10;
	--dlx-ratio-wide: 16 / 9;

	/* Motion. */
	--dlx-ease: cubic-bezier(.22, .61, .36, 1);
	--dlx-dur: .45s;
}

/* ==========================================================================
   Base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
html, body { max-width: 100%; overflow-x: clip; }
body {
	margin: 0;
	background: var(--dlx-surface);
	color: var(--dlx-ink);
	text-rendering: optimizeLegibility;
	overflow-wrap: break-word;
}
img, svg, video { max-width: 100%; height: auto; }
.dlx-img { object-fit: cover; object-position: var(--dlx-focal, 50% 40%); }
[hidden] { display: none !important; }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid transparent;
	box-shadow: 0 0 0 2px var(--dlx-orange), 0 0 0 4px var(--dlx-navy);
	border-radius: 3px;
}
:is(.dlx-dark, .dlx-hero, .dlx-pagehero, .dlx-cta, .dlx-footer) :where(a, button):focus-visible {
	box-shadow: 0 0 0 2px var(--dlx-navy), 0 0 0 4px var(--dlx-orange);
}

.dlx-skip {
	position: absolute;
	left: 1rem;
	top: -100px;
	z-index: 1000;
	background: var(--dlx-navy);
	color: #fff;
	padding: .75rem 1.25rem;
	border-radius: var(--dlx-radius-sm);
	font-weight: 600;
	text-decoration: none;
}
.dlx-skip:focus { top: .75rem; }

.dlx-sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ==========================================================================
   Layout primitives
   ========================================================================== */
/* Core's flow layout adds a 24px block gap between siblings. Template parts,
   the sections inside main and the homepage story sections own their spacing.
   Declared before .dlx-cta so the CTA's own margins still win. */
.wp-site-blocks > * + *,
.dlx-main > *,
.dlx-main > .dlx-story > * { margin-block-start: 0; }
.dlx-main { display: block; position: relative; }
.dlx-section { position: relative; padding: var(--dlx-section) var(--dlx-gutter); }
.dlx-section--tight { padding-block: var(--dlx-section-tight); }
.dlx-inner { max-width: var(--dlx-container); margin-inline: auto; }
.dlx-inner--wide { max-width: var(--dlx-container-wide); margin-inline: auto; }
.dlx-soft { background: var(--dlx-soft); }
.dlx-dark { background: var(--dlx-navy); color: var(--dlx-on-dark); }
.dlx-node { position: relative; }

/* A section whose only block rendered nothing leaves no empty band. */
.dlx-section:has(> .dlx-inner:empty),
.dlx-section:has(> .dlx-inner > .wp-block-group:only-child:empty) { display: none; }

/* ==========================================================================
   Typography
   ========================================================================== */
h1, h2, h3, h4 { text-wrap: balance; }
:is(.dlx-dark, .dlx-hero, .dlx-pagehero, .dlx-cta) :is(h1, h2, h3, h4) { color: #fff; }

.dlx-eyebrow {
	display: flex;
	align-items: center;
	gap: .6rem;
	margin: 0 0 1rem;
	font-size: .8125rem;
	line-height: 1.4;
	font-weight: 650;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--dlx-navy-700);
}
.dlx-eyebrow::before {
	content: "";
	width: 8px;
	height: 8px;
	flex: none;
	border-radius: var(--dlx-pill);
	background: var(--dlx-orange);
}
:is(.dlx-dark, .dlx-hero, .dlx-pagehero, .dlx-cta) .dlx-eyebrow { color: var(--dlx-orange-on-dark); }

.dlx-lede { font-size: 1.125rem; line-height: 1.7; color: var(--dlx-muted); max-width: 60ch; }
:is(.dlx-dark, .dlx-cta) :is(.dlx-lede, p) { color: var(--dlx-on-dark-muted); }
.dlx-measure { max-width: 24ch; }
.dlx-meta { font-size: .8125rem; color: var(--dlx-muted); }
.dlx-topic {
	display: inline-block;
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--dlx-orange-text);
}

/* ==========================================================================
   Buttons and links
   ========================================================================== */
.dlx-btn,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	min-height: 48px;
	padding: .8rem 1.5rem;
	border: 1.5px solid transparent;
	border-radius: var(--dlx-pill);
	background: var(--dlx-orange);
	color: #11202E;
	font-size: .9375rem;
	font-weight: 650;
	line-height: 1.3;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .16s ease-out, color .16s ease-out, border-color .16s ease-out;
}
.dlx-btn--primary:hover,
.dlx-btn--primary:focus-visible,
.wp-block-button__link:hover,
.wp-block-button__link:focus-visible { background: var(--dlx-orange-600); color: #fff; }

.dlx-btn--secondary,
.is-style-dlx-secondary .wp-block-button__link { background: transparent; color: var(--dlx-navy); border-color: var(--dlx-navy); }
.dlx-btn--secondary:hover,
.dlx-btn--secondary:focus-visible,
.is-style-dlx-secondary .wp-block-button__link:hover,
.is-style-dlx-secondary .wp-block-button__link:focus-visible { background: var(--dlx-navy); color: #fff; }
:is(.dlx-dark, .dlx-hero, .dlx-pagehero, .dlx-cta) :is(.dlx-btn--secondary, .is-style-dlx-secondary .wp-block-button__link) { color: #fff; border-color: rgba(255, 255, 255, .6); }
:is(.dlx-dark, .dlx-hero, .dlx-pagehero, .dlx-cta) :is(.dlx-btn--secondary, .is-style-dlx-secondary .wp-block-button__link):is(:hover, :focus-visible) { background: #fff; color: var(--dlx-navy); }
.dlx-btn:disabled, .dlx-btn[aria-disabled="true"] { opacity: .6; cursor: not-allowed; }

.dlx-actions { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: center; }
.wp-block-buttons { gap: .75rem 1rem; }

.dlx-link {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	font-weight: 650;
	color: var(--dlx-navy-700);
	text-decoration: none;
}
.dlx-link::after { content: "\2192"; transition: transform .16s ease-out; }
.dlx-link:hover { text-decoration: underline; }
.dlx-link:hover::after { transform: translateX(3px); }
:is(.dlx-dark, .dlx-hero, .dlx-pagehero, .dlx-cta) .dlx-link { color: #fff; }

/* ==========================================================================
   Header
   ========================================================================== */
.dlx-header {
	position: sticky;
	top: 0;
	z-index: 90;
	background: rgba(255, 255, 255, .97);
	border-bottom: 1px solid var(--dlx-border);
	transition: box-shadow .24s ease-out;
}
.dlx-header.is-stuck { box-shadow: 0 10px 30px rgba(17, 42, 70, .08); }
.dlx-header__top { background: var(--dlx-navy-950); color: #DCE7F2; font-size: .75rem; line-height: 1.4; }
.dlx-header__top-inner {
	max-width: var(--dlx-container-wide);
	margin-inline: auto;
	padding: .45rem var(--dlx-gutter);
	display: flex;
	justify-content: space-between;
	gap: 1rem;
}
.dlx-header__top a { color: #fff; font-weight: 650; text-decoration: none; }
.dlx-header__top a:hover { text-decoration: underline; }
.dlx-header__inner {
	max-width: var(--dlx-container-wide);
	margin-inline: auto;
	min-height: var(--dlx-header-h);
	display: flex;
	align-items: center;
	gap: 1.5rem;
	padding-inline: var(--dlx-gutter);
}
.dlx-brand { display: inline-flex; align-items: center; flex: none; }
.dlx-brand img { display: block; width: 150px; height: auto; }

.dlx-nav { margin-inline-start: auto; }
.dlx-nav__mobile-cta { display: none; }
.dlx-nav__list { display: flex; align-items: center; gap: .25rem; list-style: none; margin: 0; padding: 0; }
.dlx-nav__link,
.dlx-nav__toggle {
	display: inline-flex;
	align-items: center;
	gap: .375rem;
	min-height: 44px;
	padding: .75rem .875rem;
	border: 0;
	background: none;
	font: inherit;
	font-size: .9375rem;
	font-weight: 600;
	color: var(--dlx-navy);
	text-decoration: none;
	border-radius: var(--dlx-radius-sm);
	cursor: pointer;
}
.dlx-nav__link:hover,
.dlx-nav__toggle:hover { background: var(--dlx-soft); }
.dlx-nav__item--current > .dlx-nav__link { box-shadow: inset 0 -2px 0 var(--dlx-orange); }
.dlx-nav__caret { width: 10px; height: 10px; flex: none; transition: transform .16s ease-out; }
/* The disclosure buttons ship hidden for no-JS visitors; on desktop their
   width is reserved so the nav does not shift when nav.js reveals them. */
@media (min-width: 1024px) {
	.dlx-nav__toggle[hidden] { display: inline-flex !important; visibility: hidden; }
}
.dlx-nav__toggle[aria-expanded="true"] .dlx-nav__caret { transform: rotate(180deg); }
.dlx-nav__sublist { list-style: none; margin: 0; padding: 0; }
.dlx-nav__panel {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	background: var(--dlx-surface);
	border-block: 1px solid var(--dlx-border);
	box-shadow: var(--dlx-shadow);
	padding-block: 2rem 2.25rem;
}
.dlx-nav__panel-inner {
	max-width: var(--dlx-container-wide);
	margin-inline: auto;
	padding-inline: var(--dlx-gutter);
	display: grid;
	gap: 1.25rem 2.5rem;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}
.dlx-nav__panel h2 {
	grid-column: 1 / -1;
	margin: 0;
	font-size: .8125rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--dlx-navy-700);
}
.dlx-megalink { display: block; text-decoration: none; padding: .5rem 0; }
.dlx-megalink strong { display: block; color: var(--dlx-navy); font-size: 1rem; }
.dlx-megalink span { display: block; color: var(--dlx-muted); font-size: .875rem; line-height: 1.5; margin-top: .15rem; }
.dlx-megalink:hover strong { color: var(--dlx-orange-text); }
.dlx-header__cta { flex: none; }

.dlx-burger {
	display: none;
	align-items: center;
	gap: .5rem;
	min-height: 44px;
	padding: .5rem .875rem;
	margin-inline-start: auto;
	background: none;
	border: 1px solid var(--dlx-border-strong);
	border-radius: var(--dlx-pill);
	font: inherit;
	font-weight: 600;
	color: var(--dlx-navy);
	cursor: pointer;
}
.dlx-burger__bars { position: relative; width: 18px; height: 12px; flex: none; }
.dlx-burger__bars::before,
.dlx-burger__bars::after,
.dlx-burger__bars i { content: ""; position: absolute; left: 0; right: 0; height: 2px; background: currentColor; }
.dlx-burger__bars::before { top: 0; }
.dlx-burger__bars i { top: 5px; }
.dlx-burger__bars::after { bottom: 0; }
body.dlx-nav-open { overflow: hidden; }

@media (max-width: 1023px) {
	.dlx-header__top { display: none; }
	.dlx-burger { display: inline-flex; }
	.dlx-header__cta { display: none; }
	.dlx-nav {
		position: fixed;
		inset: var(--dlx-header-h) 0 0 0;
		background: var(--dlx-surface);
		overflow-y: auto;
		padding: 1rem var(--dlx-gutter) 3rem;
		border-top: 1px solid var(--dlx-border);
	}
	.dlx-nav__list { flex-direction: column; align-items: stretch; gap: 0; }
	.dlx-nav__item { border-bottom: 1px solid var(--dlx-border); }
	.dlx-nav__link,
	.dlx-nav__toggle { width: 100%; justify-content: space-between; padding: 1rem .25rem; min-height: 48px; }
	.dlx-nav__panel { position: static; border: 0; box-shadow: none; padding: 0 0 1rem; background: var(--dlx-soft); margin: 0 -.25rem .5rem; }
	.dlx-nav__panel-inner { display: block; padding: 1rem; }
	.dlx-nav__panel h2 { margin-bottom: .5rem; }
	.dlx-megalink { padding: .75rem 0; border-bottom: 1px solid var(--dlx-border); }
	.dlx-megalink:last-child { border-bottom: 0; }
	.dlx-nav__mobile-cta { display: grid; margin-top: 1.5rem; }
	.dlx-nav__mobile-cta .dlx-btn { width: 100%; }
}

/* ==========================================================================
   Hero - one component for the homepage, pages, archives and articles
   ========================================================================== */
.dlx-hero,
.dlx-pagehero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: var(--dlx-navy);
	color: var(--dlx-on-dark);
}

/* Text-only hero: archives, search, utility pages, 404. */
.dlx-pagehero__inner,
.dlx-hero__inner {
	position: relative;
	width: 100%;
	max-width: var(--dlx-container);
	margin-inline: auto;
	padding: clamp(3rem, 6vw, 4.75rem) var(--dlx-gutter);
}
.dlx-pagehero h1,
.dlx-hero h1 { margin: 0 0 1rem; max-width: 22ch; font-size: clamp(2.1rem, 3.4vw, 3.25rem); line-height: 1.08; letter-spacing: -.01em; }
.dlx-pagehero__lede,
.dlx-hero__lede { max-width: 56ch; margin: 0 0 1.75rem; font-size: 1.125rem; line-height: 1.65; color: var(--dlx-on-dark); }
.dlx-pagehero__copy > :last-child,
.dlx-hero__copy > :last-child { margin-bottom: 0; }

/* Photographic hero: the image spans the full browser width, the copy sits
   over it, and a scrim sits directly behind the copy only. */
.dlx-hero--home,
.dlx-pagehero--photo { display: flex; align-items: center; background: var(--dlx-navy-950); }
.dlx-hero--home { min-height: var(--dlx-hero-home); }
.dlx-pagehero--photo { min-height: var(--dlx-hero-inner); }
/* The media sits inside the inner wrapper; the section, not the 1160px inner,
   must be its containing block or the photograph stops at the container. */
.dlx-hero--home .dlx-hero__inner,
.dlx-pagehero--photo .dlx-pagehero__inner { position: static; }

.dlx-hero--home .dlx-hero__media,
.dlx-pagehero--photo .dlx-pagehero__media {
	position: absolute;
	/* 16px of overscan so the parallax shift never exposes an edge. */
	inset: -16px 0;
	z-index: -2;
	margin: 0;
}
.dlx-hero--home .dlx-hero__media :is(.dlx-figure, img),
.dlx-pagehero--photo .dlx-pagehero__media :is(.dlx-figure, img) {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	border-radius: 0;
	box-shadow: none;
	aspect-ratio: auto;
	object-fit: cover;
}
/* Depth across the whole image: a soft floor so the section edge reads. */
.dlx-hero--home::before,
.dlx-pagehero--photo::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(0deg, rgba(8, 24, 40, .5), rgba(8, 24, 40, 0) 38%);
	pointer-events: none;
}
.dlx-hero--home .dlx-hero__copy,
.dlx-pagehero--photo .dlx-pagehero__copy { position: relative; max-width: 38rem; }
/* The localised scrim: solid behind every line of copy, fading out over 8rem
   beyond its right edge, so the rest of the photograph stays untouched. */
.dlx-hero--home .dlx-hero__copy::before,
.dlx-pagehero--photo .dlx-pagehero__copy::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: -100vh;
	bottom: -100vh;
	left: -100vw;
	right: -8rem;
	background: linear-gradient(90deg, var(--dlx-scrim) 0, var(--dlx-scrim) calc(100% - 9rem), rgba(8, 24, 40, .52) calc(100% - 4rem), var(--dlx-scrim-0) 100%);
	pointer-events: none;
}
.dlx-hero--home h1 { max-width: 13ch; font-size: clamp(2.6rem, 4.3vw, 4.1rem); line-height: 1.02; }

.dlx-hero__actions { margin: 0; }
.dlx-hero__note { margin: 1.25rem 0 0; font-size: .875rem; color: var(--dlx-on-dark-muted); max-width: 48ch; }
.dlx-hero__proof {
	list-style: none;
	margin: 1.5rem 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: .75rem;
	max-width: 34rem;
}
.dlx-hero__proof li { display: grid; gap: .15rem; padding-left: .8rem; border-left: 2px solid var(--dlx-orange); }
.dlx-hero__proof b { color: #fff; font-size: .8125rem; letter-spacing: .08em; text-transform: uppercase; }
.dlx-hero__proof span { color: var(--dlx-on-dark-muted); font-size: .8125rem; line-height: 1.35; }

.dlx-pagehero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem .75rem;
	margin: 0;
	font-size: .875rem;
	color: var(--dlx-on-dark-muted);
}
.dlx-pagehero__meta a { color: #fff; font-weight: 600; }
.dlx-pagehero__meta > * + *::before { content: "\00B7"; margin-right: .75rem; color: var(--dlx-orange-on-dark); }

@media (max-width: 1023px) {
	.dlx-hero--home .dlx-hero__copy,
	.dlx-pagehero--photo .dlx-pagehero__copy { max-width: 33rem; }
}

/* Phones and portrait tablets: the photograph becomes a band at the top, kept
   clear enough to see faces, and the copy runs over its lower edge. Height
   follows the content. */
@media (max-width: 781px) {
	.dlx-hero--home,
	.dlx-pagehero--photo { display: block; min-height: 0; }
	.dlx-hero--home .dlx-hero__media,
	.dlx-pagehero--photo .dlx-pagehero__media { inset: 0 0 auto 0; height: clamp(260px, 72vw, 380px); }
	.dlx-hero--home .dlx-hero__inner,
	.dlx-pagehero--photo .dlx-pagehero__inner { padding-top: clamp(170px, 48vw, 270px); padding-bottom: 2.5rem; }
	.dlx-hero--home .dlx-hero__copy,
	.dlx-pagehero--photo .dlx-pagehero__copy { max-width: none; }
	.dlx-hero--home .dlx-hero__copy::before,
	.dlx-pagehero--photo .dlx-pagehero__copy::before {
		top: -5.5rem;
		right: -100vw;
		background: linear-gradient(180deg, var(--dlx-scrim-0) 0, var(--dlx-scrim) 5.5rem, var(--dlx-navy-950) 100%);
	}
	.dlx-hero--home::before,
	.dlx-pagehero--photo::before { display: none; }
	.dlx-hero--home h1 { font-size: clamp(2.2rem, 10vw, 3rem); }
	.dlx-pagehero h1 { font-size: clamp(1.9rem, 8.4vw, 2.5rem); }
	.dlx-hero__lede,
	.dlx-pagehero__lede { font-size: 1rem; }
	.dlx-hero__proof { grid-template-columns: 1fr; gap: .5rem; }
	.dlx-hero__note { display: none; }
}

/* ---------- breadcrumbs ---------- */
.dlx-breadcrumb { font-size: .8125rem; margin: 0 0 1.25rem; }
.dlx-breadcrumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.dlx-breadcrumb li { display: flex; align-items: center; gap: .35rem; color: var(--dlx-muted); }
.dlx-breadcrumb li + li::before { content: "\203A"; color: var(--dlx-border-strong); }
.dlx-breadcrumb a { color: var(--dlx-navy-700); text-decoration: none; }
.dlx-breadcrumb a:hover { text-decoration: underline; }
:is(.dlx-pagehero, .dlx-hero) .dlx-breadcrumb li { color: #C9D6E3; }
:is(.dlx-pagehero, .dlx-hero) .dlx-breadcrumb a { color: #fff; font-weight: 600; text-decoration: underline; text-decoration-color: rgba(247, 165, 90, .7); text-underline-offset: .2em; }
:is(.dlx-pagehero, .dlx-hero) .dlx-breadcrumb li + li::before { color: var(--dlx-orange-on-dark); }

/* ==========================================================================
   Figures - controlled image treatments
   ========================================================================== */
.dlx-figure { position: relative; margin: 0; }
.dlx-figure img { display: block; width: 100%; height: auto; border-radius: var(--dlx-radius-lg); aspect-ratio: var(--dlx-ratio-card); object-fit: cover; object-position: var(--dlx-focal, 50% 40%); }
.dlx-figure--portrait img { aspect-ratio: 4 / 5; }
.dlx-figure--square img { aspect-ratio: 1; }
.dlx-figure figcaption { margin-top: .75rem; font-size: .8125rem; color: var(--dlx-muted); }
.dlx-figure__dot { display: none; }

/* ==========================================================================
   Prose
   ========================================================================== */
.dlx-prose { max-width: 68ch; }
.dlx-prose > * { margin-block: 0; }
.dlx-prose > * + * { margin-block-start: 1rem; }
.dlx-prose > :is(h2, h3) + * { margin-block-start: .75rem; }
.dlx-prose h2 { margin-block-start: 2.5rem; font-size: clamp(1.5rem, 2.2vw, 1.875rem); }
.dlx-prose h3 { margin-block-start: 1.75rem; font-size: 1.25rem; }
.dlx-prose p { line-height: 1.75; }
.dlx-prose a { color: var(--dlx-navy-700); text-decoration-color: rgba(242, 140, 40, .75); text-decoration-thickness: 1.5px; text-underline-offset: .2em; }
.dlx-prose a:hover { color: var(--dlx-navy); }
.dlx-prose ul { list-style: none; padding: 0; }
.dlx-prose ul > li { position: relative; padding-left: 1.5rem; }
.dlx-prose ul > li::before { content: ""; position: absolute; left: .15rem; top: .7em; width: 7px; height: 7px; border-radius: var(--dlx-pill); background: var(--dlx-orange); }
/* Ordered lists are sequences: numbered steps joined by a line. */
.dlx-prose ol { list-style: none; padding: 0; counter-reset: dlx-step; }
.dlx-prose ol > li { position: relative; counter-increment: dlx-step; min-height: 2rem; padding: .2rem 0 .4rem 2.75rem; }
.dlx-prose ol > li::before {
	content: counter(dlx-step);
	position: absolute;
	left: 0;
	top: 0;
	z-index: 1;
	display: grid;
	place-items: center;
	width: 1.9rem;
	height: 1.9rem;
	border: 2px solid var(--dlx-orange);
	border-radius: var(--dlx-pill);
	background: var(--dlx-surface);
	color: var(--dlx-navy);
	font-size: .8125rem;
	font-weight: 700;
}
.dlx-prose ol > li:not(:last-child)::after { content: ""; position: absolute; left: .95rem; top: 1.9rem; bottom: -.5rem; width: 2px; margin-left: -1px; background: rgba(242, 140, 40, .35); }
.dlx-prose li + li { margin-block-start: .5rem; }
.dlx-prose img { border-radius: var(--dlx-radius); }
.dlx-prose figure { margin: 2rem 0; }
.dlx-prose figure img,
.dlx-prose > img,
.dlx-prose p > img:only-child {
	display: block;
	width: 100%;
	max-height: 520px;
	object-fit: cover;
	box-shadow: var(--dlx-shadow-sm);
}
.dlx-prose .wp-block-image { margin: 2rem 0; }
.dlx-prose table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.dlx-prose :where(th, td) { border: 1px solid var(--dlx-border); padding: .625rem .75rem; text-align: start; }
.dlx-prose th { background: var(--dlx-soft); color: var(--dlx-navy); font-weight: 700; }
.dlx-prose :where(table) { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.dlx-prose .alignwide { max-width: var(--dlx-container); }
.dlx-prose .alignfull { max-width: none; }
.dlx-tablewrap { overflow-x: auto; }
.wp-block-image figcaption { color: var(--dlx-muted); font-size: .8125rem; }

/* ==========================================================================
   Page story - chapters on the full 1160px canvas
   ========================================================================== */
.dlx-page-story { max-width: var(--dlx-container); margin-inline: auto; }
.dlx-page-story__intro { margin-bottom: clamp(2.5rem, 5vw, 3.5rem); }
.dlx-page-story__intro .dlx-prose { max-width: 64ch; padding-left: clamp(1rem, 2vw, 1.5rem); border-left: 3px solid var(--dlx-orange); font-size: clamp(1.125rem, 1.6vw, 1.3125rem); line-height: 1.6; color: var(--dlx-ink); }
.dlx-page-story__intro .dlx-prose > * { margin: 0; }

.dlx-chapter + .dlx-chapter {
	margin-top: clamp(2.5rem, 5vw, 4rem);
	padding-top: clamp(2.5rem, 5vw, 4rem);
	border-top: 1px solid var(--dlx-border);
}
.dlx-chapter__head h2 { margin: 0; font-size: clamp(1.6rem, 2.4vw, 2.125rem); line-height: 1.18; max-width: 20ch; }
.dlx-chapter__lead { color: var(--dlx-muted); font-size: 1.0625rem; }
.dlx-chapter__body > * + * { margin-top: clamp(1.5rem, 3vw, 2.25rem); }
.dlx-chapter__media .dlx-figure img { aspect-ratio: 4 / 3; box-shadow: var(--dlx-shadow); }

@media (min-width: 960px) {
	.dlx-chapter--prose,
	.dlx-chapter--solo {
		display: grid;
		grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
		column-gap: var(--dlx-col-gap);
	}
	.dlx-chapter--solo > .dlx-chapter__body { grid-column: 2; }
	.dlx-chapter--prose .dlx-chapter__head { align-self: start; position: sticky; top: calc(var(--dlx-header-h) + 3.5rem); }

	.dlx-chapter--wide .dlx-chapter__head {
		display: grid;
		grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
		column-gap: var(--dlx-col-gap);
		align-items: start;
	}
	.dlx-chapter--wide .dlx-chapter__body { margin-top: clamp(2rem, 4vw, 3rem); }
	.dlx-chapter--wide .dlx-chapter__prose { margin-left: calc(5 / 11 * 100% + var(--dlx-col-gap) * 5 / 11); }

	.dlx-chapter--media {
		display: grid;
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
		column-gap: var(--dlx-col-gap);
		align-items: start;
	}
	.dlx-chapter--media .dlx-chapter__head { grid-column: 1; margin-bottom: 1.25rem; }
	.dlx-chapter--media .dlx-chapter__body { grid-column: 1; }
	.dlx-chapter--media .dlx-chapter__media { grid-column: 2; grid-row: 1 / span 2; position: sticky; top: calc(var(--dlx-header-h) + 3.5rem); }
}
@media (max-width: 959px) {
	.dlx-chapter__head { margin-bottom: 1.25rem; }
	.dlx-chapter__lead { margin-top: .75rem; }
	.dlx-chapter--wide .dlx-chapter__body { margin-top: 1.75rem; }
	.dlx-chapter__media { margin-top: 1.75rem; }
}

/* ==========================================================================
   Cards and grids
   ========================================================================== */
.dlx-grid { display: grid; gap: var(--dlx-gap); }
@media (min-width: 700px) { .dlx-grid--2, .dlx-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 960px) { .dlx-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .dlx-grid--3:has(> :nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.dlx-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: .6rem;
	padding: 1.5rem;
	background: var(--dlx-surface);
	border: 1px solid var(--dlx-border-soft);
	border-radius: var(--dlx-radius);
	transition: box-shadow .24s ease-out, border-color .24s ease-out;
}
.dlx-card :where(h2, h3) { margin: 0; font-size: 1.125rem; line-height: 1.35; }
.dlx-card :where(h2, h3) a { color: var(--dlx-navy); text-decoration: none; }
.dlx-card :where(h2, h3) a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.dlx-card :where(h2, h3) a:focus-visible { box-shadow: none; }
.dlx-card:focus-within { box-shadow: 0 0 0 2px var(--dlx-orange), 0 0 0 4px var(--dlx-navy); }
.dlx-card p { margin: 0; color: var(--dlx-muted); font-size: .9375rem; line-height: 1.6; }
.dlx-card:hover { border-color: rgba(242, 140, 40, .55); box-shadow: var(--dlx-shadow); }
.dlx-card:hover :where(h2, h3) a { text-decoration: underline; }
.dlx-card__meta { font-size: .8125rem; color: var(--dlx-muted); }
.dlx-card__foot { margin-top: auto !important; padding-top: .35rem; }

.dlx-card--media { padding: 0 0 1.5rem; overflow: hidden; }
.dlx-card--media > :not(.dlx-card__media) { margin-inline: 1.5rem; }
.dlx-card__media { display: block; margin: 0 0 .65rem; overflow: hidden; background: var(--dlx-soft); }
.dlx-card__media img { display: block; width: 100%; height: auto; aspect-ratio: var(--dlx-ratio-card); object-fit: cover; object-position: var(--dlx-focal, 50% 40%); transition: transform .6s var(--dlx-ease); }
.dlx-card--media:hover .dlx-card__media img { transform: scale(1.03); }

/* ==========================================================================
   Services catalogue (the /services/ hub and company-page service sections)
   ========================================================================== */
.dlx-svc-grid,
.dlx-svc-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--dlx-gap); }
.dlx-svc-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dlx-svc {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--dlx-surface);
	border: 1px solid var(--dlx-border-soft);
	border-radius: var(--dlx-radius);
	overflow: hidden;
	transition: box-shadow .24s ease-out, border-color .24s ease-out;
}
.dlx-svc:hover { border-color: rgba(242, 140, 40, .6); box-shadow: var(--dlx-shadow); }
.dlx-svc:focus-within { box-shadow: 0 0 0 2px var(--dlx-orange), 0 0 0 4px var(--dlx-navy); }
.dlx-svc__media { display: block; overflow: hidden; background: var(--dlx-soft); }
.dlx-svc__media img { display: block; width: 100%; height: auto; aspect-ratio: var(--dlx-ratio-card); object-fit: cover; transition: transform .6s var(--dlx-ease); }
.dlx-svc:hover .dlx-svc__media img { transform: scale(1.03); }
.dlx-svc__body { display: flex; flex-direction: column; gap: .5rem; flex: 1; padding: 1.25rem 1.375rem 1.375rem; }
.dlx-svc__title { margin: 0; font-size: 1.1875rem; line-height: 1.3; }
.dlx-svc__title a { color: var(--dlx-navy); text-decoration: none; }
.dlx-svc__title a::after { content: ""; position: absolute; inset: 0; }
.dlx-svc__title a:focus-visible { box-shadow: none; }
.dlx-svc__body p { margin: 0; color: var(--dlx-muted); font-size: .9375rem; line-height: 1.6; }
.dlx-svc__go { margin-top: auto; padding-top: .5rem; font-size: .875rem; font-weight: 650; color: var(--dlx-navy-700); }
.dlx-svc__go::after { content: " \2192"; }
.dlx-svc:hover .dlx-svc__go { color: var(--dlx-orange-text); }

.dlx-svc-more {
	display: grid;
	gap: 1.25rem;
	margin-top: clamp(2rem, 4vw, 3rem);
	padding-top: clamp(1.75rem, 3vw, 2.25rem);
	border-top: 1px solid var(--dlx-border);
}
.dlx-svc-more__label { margin: 0; font-size: .8125rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; color: var(--dlx-navy-700); }
.dlx-svc-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dlx-svc--compact { flex-direction: row; align-items: stretch; }
.dlx-svc--compact .dlx-svc__media { position: relative; flex: none; width: 112px; min-height: 112px; }
.dlx-svc--compact .dlx-svc__media img { position: absolute; inset: 0; height: 100%; aspect-ratio: auto; }
.dlx-svc--compact .dlx-svc__body { padding: 1rem 1.125rem; }
.dlx-svc--compact .dlx-svc__title { font-size: 1.0625rem; }
.dlx-svc--compact .dlx-svc__body p { font-size: .875rem; }

@media (max-width: 959px) {
	.dlx-svc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dlx-svc-list { grid-template-columns: 1fr; }
}
@media (max-width: 599px) {
	.dlx-svc-grid { grid-template-columns: 1fr; }
	.dlx-svc--compact .dlx-svc__media { width: 96px; }
}

/* Typographic service rows (related sections on service pages). */
.dlx-services {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: var(--dlx-col-gap);
	border-top: 1px solid var(--dlx-border);
}
.dlx-service-row {
	position: relative;
	display: grid;
	grid-template-columns: 2.25rem minmax(0, 1fr);
	gap: .25rem .5rem;
	padding: 1.35rem 0;
	border-bottom: 1px solid var(--dlx-border);
	height: 100%;
}
.dlx-service-row > div { display: contents; }
.dlx-service-row__num { grid-row: 1; font-size: .8125rem; font-weight: 700; letter-spacing: .06em; color: var(--dlx-orange-text); padding-top: .2rem; }
.dlx-service-row h3 { grid-column: 2; margin: 0; font-size: 1.1875rem; }
.dlx-service-row h3 a { color: var(--dlx-navy); text-decoration: none; }
.dlx-service-row h3 a::after { content: ""; position: absolute; inset: 0; }
.dlx-service-row p { grid-column: 2; margin: 0; color: var(--dlx-muted); font-size: .9375rem; }
.dlx-service-row .dlx-link { grid-column: 2; font-size: .875rem; margin-top: .25rem; }
.dlx-service-row:hover h3 a { text-decoration: underline; }
@media (max-width: 781px) { .dlx-services { grid-template-columns: 1fr; } }

/* ==========================================================================
   Homepage
   ========================================================================== */
.dlx-story > .dlx-section--compact { background: var(--dlx-warm); }

/* The missing connections */
.dlx-storyblock { display: grid; gap: var(--dlx-col-gap); align-items: center; }
@media (min-width: 1000px) { .dlx-storyblock { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } }
.dlx-storyblock__anchor h2 { font-size: clamp(1.8rem, 2.8vw, 2.5rem); max-width: 20ch; }
.dlx-storyblock__anchor .dlx-lede { font-size: 1.0625rem; }
.dlx-storyblock__figure { margin-top: 1.75rem; }
.dlx-storyblock__figure .dlx-figure img { aspect-ratio: 3 / 2; box-shadow: var(--dlx-shadow); }
.dlx-challenges { display: grid; gap: var(--dlx-gap); align-items: stretch; }
@media (min-width: 640px) { .dlx-challenges { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.dlx-challenge {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: clamp(214px, 19vw, 252px);
	padding: 1.5rem;
	background: var(--dlx-surface);
	border: 1px solid var(--dlx-border-soft);
	border-radius: var(--dlx-radius);
	transition: border-color .3s ease-out, box-shadow .3s ease-out;
}
.dlx-challenge::before { content: ""; display: block; width: 10px; height: 10px; margin-bottom: 1rem; border-radius: var(--dlx-pill); background: var(--dlx-orange); box-shadow: 0 0 0 5px rgba(242, 140, 40, .16); }
.dlx-challenge h3 { margin: 0 0 .5rem; font-size: 1.125rem; line-height: 1.35; }
.dlx-challenge p { margin: 0; color: var(--dlx-muted); font-size: .9375rem; }

/* Connected services - navy band */
.dlx-services-home > .dlx-inner > .dlx-reveal:first-child { margin-bottom: clamp(2rem, 4vw, 3rem); }
@media (min-width: 960px) {
	.dlx-services-home > .dlx-inner > .dlx-reveal:first-child {
		display: grid;
		grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
		column-gap: var(--dlx-col-gap);
		align-items: end;
	}
	.dlx-services-home > .dlx-inner > .dlx-reveal:first-child .dlx-eyebrow { grid-column: 1 / -1; }
	.dlx-services-home > .dlx-inner > .dlx-reveal:first-child :is(h2, .dlx-lede) { margin: 0; }
}
.dlx-services-home .wp-block-buttons { margin-top: clamp(1.75rem, 3vw, 2.5rem); }


/* How we work */
.dlx-lede-media { display: grid; gap: var(--dlx-col-gap); align-items: center; }
@media (min-width: 900px) {
	.dlx-lede-media { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.dlx-lede-media--reverse > :first-child { order: 2; }
}
.dlx-lede-media .dlx-figure img { aspect-ratio: 3 / 2; box-shadow: var(--dlx-shadow); }
.dlx-lede-media + .dlx-process { margin-top: clamp(2.5rem, 5vw, 3.5rem); }

.dlx-process { position: relative; list-style: none; margin: 0; padding: 0; display: grid; gap: 1.75rem; }
.dlx-process__step { position: relative; }
/* The steps are a core group: flow layout would push steps 2-4 down 24px. */
.dlx-process > .dlx-process__step { margin-block: 0; }
.dlx-process__step > * { margin: 0; }
.dlx-process__step h3 { margin: 0 0 .4rem; font-size: 1.125rem; }
.dlx-process__step p:not(.dlx-process__num) { color: var(--dlx-muted); font-size: .9375rem; }
.dlx-process__num {
	position: relative;
	z-index: 1;
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	margin-bottom: 1rem !important;
	border-radius: var(--dlx-pill);
	background: var(--dlx-surface);
	border: 2px solid var(--dlx-orange);
	color: var(--dlx-navy);
	font-size: .8125rem;
	font-weight: 700;
}
@media (min-width: 860px) {
	.dlx-process {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: var(--dlx-gap);
		align-items: start;
	}
	/* Separate segments from one number's edge to the next number's edge, so no
	   line ever runs behind a number, lit or not. */
	.dlx-process::before,
	.dlx-process::after { display: none; }
	.dlx-process__step:not(:last-child)::after {
		content: "";
		position: absolute;
		top: 18px;
		left: 50px;
		right: calc(12px - var(--dlx-gap));
		height: 2px;
		border-radius: 2px;
		background: linear-gradient(var(--dlx-orange), var(--dlx-orange)) no-repeat 0 0 / 0% 100%, var(--dlx-border);
		transition: background-size .6s cubic-bezier(.22, 1, .36, 1);
	}
	.dlx-process__step {
		display: flex;
		flex-direction: column;
		min-height: 172px;
		padding-top: 0;
	}
	.dlx-process__num { margin-top: 0; }
}

/* Leadership */
.dlx-leader { display: grid; gap: var(--dlx-col-gap); align-items: center; }
@media (min-width: 900px) { .dlx-leader { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } }
.dlx-leader__portrait .dlx-figure img { aspect-ratio: 4 / 3; box-shadow: var(--dlx-shadow-lg); }
.dlx-leader__name { margin: 0; font-size: 1.5rem; font-weight: 700; color: var(--dlx-navy); }
.dlx-leader__role { margin: .25rem 0 1.25rem; font-size: .9375rem; color: var(--dlx-muted); }
.dlx-dark .dlx-leader__name { color: #fff; }
.dlx-dark .dlx-leader__role { color: var(--dlx-orange-on-dark); }
.dlx-leader__body > p + p { margin-top: 1rem; }
.dlx-leader__years { display: none; }

/* Insights rail */
.dlx-insights { display: grid; gap: var(--dlx-col-gap); margin-top: clamp(1.75rem, 3vw, 2.5rem); }
@media (min-width: 900px) { .dlx-insights { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: start; } }
.dlx-insight-feature { position: relative; background: var(--dlx-surface); border: 1px solid var(--dlx-border-soft); border-radius: var(--dlx-radius-lg); overflow: hidden; padding: 0 1.5rem 1.5rem; }
.dlx-insight-feature__media { display: block; margin: 0 -1.5rem 1.25rem; }
.dlx-insight-feature__media img { display: block; width: 100%; aspect-ratio: var(--dlx-ratio-wide); object-fit: cover; }
.dlx-insight-feature h3 { margin: .5rem 0; font-size: clamp(1.35rem, 2.2vw, 1.75rem); line-height: 1.25; }
.dlx-insight-feature h3 a { color: var(--dlx-navy); text-decoration: none; }
.dlx-insight-feature h3 a::after { content: ""; position: absolute; inset: 0; }
.dlx-insight-feature p { color: var(--dlx-muted); margin: 0 0 .75rem; }
.dlx-insight-list { list-style: none; margin: 0; padding: 0; }
.dlx-insight-list li { position: relative; display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 1rem; align-items: start; padding: 1.1rem 0; border-top: 1px solid var(--dlx-border); }
.dlx-insight-list li:first-child { border-top: 0; padding-top: 0; }
.dlx-insight-list__media img { display: block; width: 96px; height: 72px; border-radius: var(--dlx-radius-sm); object-fit: cover; }
.dlx-insight-list :where(h2, h3) { margin: .15rem 0 .25rem; font-size: 1.0625rem; line-height: 1.4; }
.dlx-insight-list :where(h2, h3) a { color: var(--dlx-navy); text-decoration: none; }
.dlx-insight-list :where(h2, h3) a:hover { text-decoration: underline; }
.dlx-insight-list .dlx-meta { margin: 0; }


/* ==========================================================================
   Industries
   ========================================================================== */
.dlx-sectors { display: grid; gap: clamp(2rem, 4vw, 3rem); }
.dlx-sector-tiles { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--dlx-gap); }
@media (min-width: 700px) { .dlx-sector-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.dlx-sector-tile {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--dlx-surface);
	border: 1px solid var(--dlx-border-soft);
	border-radius: var(--dlx-radius-lg);
	overflow: hidden;
	transition: box-shadow .24s ease-out, border-color .24s ease-out;
}
.dlx-sector-tile:hover { border-color: rgba(242, 140, 40, .6); box-shadow: var(--dlx-shadow); }
.dlx-sector-tile:focus-within { box-shadow: 0 0 0 2px var(--dlx-orange), 0 0 0 4px var(--dlx-navy); }
.dlx-sector-tile .dlx-figure img { border-radius: 0; aspect-ratio: var(--dlx-ratio-wide); transition: transform .6s var(--dlx-ease); }
.dlx-sector-tile:hover .dlx-figure img { transform: scale(1.03); }
.dlx-sector-tile__media { overflow: hidden; }
.dlx-sector-tile__body { display: flex; flex-direction: column; gap: .5rem; flex: 1; padding: 1.35rem 1.5rem 1.5rem; }
.dlx-sector-tile__kicker { margin: 0; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--dlx-orange-text); }
.dlx-sector-tile h3 { margin: 0; font-size: 1.3125rem; line-height: 1.3; }
.dlx-sector-tile h3 a { color: var(--dlx-navy); text-decoration: none; }
.dlx-sector-tile h3 a::after { content: ""; position: absolute; inset: 0; }
.dlx-sector-tile h3 a:focus-visible { box-shadow: none; }
.dlx-sector-tile__body p { margin: 0; color: var(--dlx-muted); font-size: .9375rem; }
.dlx-sector-tile .dlx-link { margin-top: auto; padding-top: .35rem; font-size: .875rem; }

.dlx-sectors__more { display: grid; gap: 1.25rem var(--dlx-col-gap); padding-top: clamp(1.75rem, 3vw, 2.25rem); border-top: 1px solid var(--dlx-border); }
@media (min-width: 960px) { .dlx-sectors__more { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); } }
.dlx-sectors__label { margin: 0 0 .5rem; font-size: .8125rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; color: var(--dlx-navy-700); }
.dlx-sectors__note { margin: 0 0 .75rem; color: var(--dlx-muted); font-size: .9375rem; }
/* Experience areas: equal tiles with the icon as the lead, closing into a clean
   rectangle - a short last row stretches instead of leaving a gap. */
.dlx-industries { --dlx-cols: 2; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(var(--dlx-cols), minmax(0, 1fr)); gap: .75rem; align-content: start; }
.dlx-industries > li { display: flex; }
.dlx-industries > li:nth-of-type(2n+1):last-of-type { grid-column: span 2; }
/* Three across on a six-track grid: a short ending is spread over two even rows
   of two (10 = 3+3+2+2) instead of one lonely stretched tile. */
@media (min-width: 600px) {
	.dlx-industries { --dlx-cols: 6; }
	.dlx-industries > li { grid-column: span 2; }
	.dlx-industries > li:nth-of-type(2n+1):last-of-type { grid-column: span 2; }
	.dlx-industries > li:nth-of-type(3n+1):nth-last-of-type(4),
	.dlx-industries > li:nth-of-type(3n+1):nth-last-of-type(4) ~ li,
	.dlx-industries > li:nth-of-type(3n+1):nth-last-of-type(2),
	.dlx-industries > li:nth-of-type(3n+1):nth-last-of-type(2) ~ li { grid-column: span 3; }
}
/* Four across only where the column is wide enough for the longest label; the
   Industries page map sits in a narrower column and stays at three. */
@media (min-width: 1100px) {
	.dlx-sectors__more .dlx-industries { --dlx-cols: 4; }
	.dlx-sectors__more .dlx-industries > li,
	.dlx-sectors__more .dlx-industries > li:is(:nth-of-type(3n+1), :nth-of-type(3n+2)) ~ li,
	.dlx-sectors__more .dlx-industries > li:nth-of-type(n) { grid-column: auto; }
	.dlx-sectors__more .dlx-industries > li:nth-of-type(4n+1):last-of-type { grid-column: span 4; }
	.dlx-sectors__more .dlx-industries > li:nth-of-type(4n+3):last-of-type,
	.dlx-sectors__more .dlx-industries > li:nth-of-type(4n+1):nth-last-of-type(2),
	.dlx-sectors__more .dlx-industries > li:nth-of-type(4n+2):last-of-type { grid-column: span 2; }
}
.dlx-industry {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: .75rem;
	min-height: 128px;
	padding: 1.25rem .75rem;
	border: 1px solid var(--dlx-border);
	border-radius: var(--dlx-radius);
	background: var(--dlx-surface);
	font-size: .9375rem;
	font-weight: 650;
	line-height: 1.3;
	text-align: center;
	color: var(--dlx-navy);
	text-decoration: none;
}
.dlx-industry__badge {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	flex: none;
	border-radius: var(--dlx-pill);
	background: rgba(242, 140, 40, .12);
	transition: background-color .3s ease-out;
}
.dlx-industry__icon { width: 26px; height: 26px; fill: var(--dlx-orange); transition: fill .3s ease-out; }
a.dlx-industry:hover { border-color: var(--dlx-orange); }
.dlx-industry:hover .dlx-industry__badge { background: var(--dlx-orange); }
.dlx-industry:hover .dlx-industry__icon { fill: #fff; }

/* ---------- proof ---------- */
.dlx-proof { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.dlx-proof__item { border-left: 3px solid var(--dlx-orange); padding-left: 1.125rem; }
.dlx-proof__value { display: block; font-size: 1.75rem; font-weight: 700; color: var(--dlx-navy); line-height: 1.2; }
.dlx-proof__label { display: block; margin-top: .35rem; color: var(--dlx-muted); font-size: .9375rem; }
.dlx-proof__source { display: block; margin-top: .35rem; font-size: .8125rem; color: var(--dlx-muted); }

/* ---------- client logos ---------- */
.dlx-clients { background: var(--dlx-surface); }
.dlx-client-logos {
	--dlx-logo-gap: clamp(1.25rem, 2.4vw, 2rem);
	overflow: hidden;
	margin-top: clamp(.5rem, 2vw, 1rem);
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.dlx-client-logos__track {
	display: flex;
	width: max-content;
	gap: var(--dlx-logo-gap);
	animation: dlx-client-marquee 42s linear infinite;
	will-change: transform;
}
.dlx-client-logos:focus-within .dlx-client-logos__track { animation-play-state: paused; }
.dlx-client-logos__set {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex: 0 0 auto;
	gap: var(--dlx-logo-gap);
}
.dlx-client-logos__item {
	display: grid;
	place-items: center;
	flex: 0 0 clamp(240px, 21vw, 320px);
	min-height: clamp(150px, 14vw, 190px);
	padding: clamp(1.35rem, 2.4vw, 2rem);
	border: 1px solid var(--dlx-border-soft);
	border-radius: var(--dlx-radius);
	background: #fff;
	box-shadow: 0 16px 40px rgba(17, 32, 46, .08);
}
.dlx-client-logos__item img {
	display: block;
	width: auto;
	height: 72px;
	max-width: 88%;
	object-fit: contain;
}
@keyframes dlx-client-marquee {
	from { transform: translateX(0); }
	to { transform: translateX(calc(-50% - var(--dlx-logo-gap) / 2)); }
}
@media (prefers-reduced-motion: reduce) {
	.dlx-client-logos { -webkit-mask-image: none; mask-image: none; }
	.dlx-client-logos__track { width: auto; animation: none; }
	.dlx-client-logos__set { flex-wrap: wrap; justify-content: center; }
	.dlx-client-logos__set[aria-hidden="true"] { display: none; }
}

/* ==========================================================================
   Insights archive - publication layout
   ========================================================================== */
.dlx-section-head { display: grid; gap: 1rem var(--dlx-col-gap); align-items: end; margin-bottom: clamp(1.75rem, 4vw, 2.75rem); }
.dlx-section-head h2 { margin: 0; max-width: 20ch; }
.dlx-section-head .dlx-lede { margin: 0; }
@media (min-width: 960px) { .dlx-section-head { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); } }

.dlx-pub-feature {
	position: relative;
	display: grid;
	background: var(--dlx-surface);
	border: 1px solid var(--dlx-border-soft);
	border-radius: var(--dlx-radius-lg);
	overflow: hidden;
	box-shadow: var(--dlx-shadow);
}
@media (min-width: 900px) { .dlx-pub-feature { grid-template-columns: minmax(0, 11fr) minmax(0, 9fr); min-height: 420px; } }
.dlx-pub-feature__media { position: relative; display: block; overflow: hidden; background: var(--dlx-soft); }
.dlx-pub-feature__media img { display: block; width: 100%; height: 100%; aspect-ratio: var(--dlx-ratio-card); object-fit: cover; transition: transform .6s var(--dlx-ease); }
@media (min-width: 900px) { .dlx-pub-feature__media img { position: absolute; inset: 0; aspect-ratio: auto; } }
.dlx-pub-feature:hover .dlx-pub-feature__media img { transform: scale(1.03); }
.dlx-pub-feature__body { display: flex; flex-direction: column; justify-content: center; gap: .85rem; padding: clamp(1.5rem, 3.5vw, 3rem); }
.dlx-pub-feature h2 { margin: 0; font-size: clamp(1.5rem, 2.5vw, 2.25rem); line-height: 1.16; max-width: 22ch; }
.dlx-pub-feature h2 a { color: var(--dlx-navy); text-decoration: none; }
.dlx-pub-feature h2 a::after { content: ""; position: absolute; inset: 0; }
.dlx-pub-feature h2 a:focus-visible { box-shadow: none; }
.dlx-pub-feature:focus-within { box-shadow: 0 0 0 2px var(--dlx-orange), 0 0 0 4px var(--dlx-navy); }
.dlx-pub-feature:hover h2 a { text-decoration: underline; }
.dlx-pub-feature p { margin: 0; color: var(--dlx-muted); }
.dlx-pub-feature .dlx-link { margin-top: .25rem; }

.dlx-filter { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 clamp(1.5rem, 3vw, 2rem); }
.dlx-filter button {
	min-height: 40px;
	padding: .45rem 1rem;
	border: 1px solid var(--dlx-border);
	border-radius: var(--dlx-pill);
	background: var(--dlx-surface);
	font: inherit;
	font-size: .875rem;
	font-weight: 650;
	color: var(--dlx-navy);
	cursor: pointer;
}
.dlx-filter button:hover { border-color: var(--dlx-orange); }
.dlx-filter button[aria-pressed="true"] { background: var(--dlx-navy); border-color: var(--dlx-navy); color: #fff; }

/* Six tracks so a short last row can widen instead of leaving a hole. */
.dlx-library { display: grid; gap: var(--dlx-gap); grid-template-columns: repeat(6, minmax(0, 1fr)); }
.dlx-library > * { grid-column: span 2; }
.dlx-library > .dlx-card--span-half { grid-column: span 3; }
.dlx-library > .dlx-card--span-full { grid-column: 1 / -1; }
@media (min-width: 900px) {
	.dlx-library > .dlx-card--span-full { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-content: center; column-gap: 0; padding: 0; }
	.dlx-library > .dlx-card--span-full > .dlx-card__media { grid-row: 1 / span 5; margin: 0; }
	.dlx-library > .dlx-card--span-full > .dlx-card__media img { height: 100%; }
	.dlx-library > .dlx-card--span-full > :not(.dlx-card__media) { margin-inline: 2rem; }
}
.dlx-library.is-filtered > * { grid-column: span 2; display: flex; }
.dlx-library.is-filtered > [hidden] { display: none; }
@media (max-width: 959px) {
	.dlx-library { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dlx-library > *,
	.dlx-library > .dlx-card--span-half,
	.dlx-library.is-filtered > * { grid-column: span 1; }
	.dlx-library > .dlx-card--span-full { grid-column: 1 / -1; }
}
@media (max-width: 599px) {
	.dlx-library { grid-template-columns: 1fr; }
	.dlx-library > * { grid-column: 1 / -1 !important; }
}

.dlx-notes { display: grid; gap: .75rem var(--dlx-col-gap); margin-top: clamp(2rem, 4vw, 2.75rem); padding-top: clamp(1.5rem, 3vw, 2rem); border-top: 1px solid var(--dlx-border); }
@media (min-width: 960px) { .dlx-notes { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); } }
.dlx-notes__label { margin: 0; font-size: .8125rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; color: var(--dlx-navy-700); }
.dlx-notes__list { list-style: none; margin: 0; padding: 0; }
.dlx-notes__list li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem 1.5rem; padding: .85rem 0; border-bottom: 1px solid var(--dlx-border); }
.dlx-notes__list li:first-child { padding-top: 0; }
.dlx-notes__list a { font-weight: 650; color: var(--dlx-navy); text-decoration: none; }
.dlx-notes__list a:hover { text-decoration: underline; }

.dlx-career-strip__inner { display: grid; gap: var(--dlx-col-gap); }
@media (min-width: 1000px) { .dlx-career-strip__inner { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); align-items: start; } }
.dlx-career-strip__inner h2 { max-width: 18ch; }
@media (min-width: 700px) { .dlx-career-strip .dlx-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ==========================================================================
   Related, FAQ, CTA
   ========================================================================== */
.dlx-related-story__head { display: grid; gap: 1.5rem var(--dlx-col-gap); align-items: center; margin-bottom: clamp(1.75rem, 4vw, 2.75rem); }
.dlx-related-story__head h2 { margin: 0 0 .75rem; }
.dlx-related-story__head .dlx-lede { margin: 0; }
.dlx-related-story__head .dlx-figure img { aspect-ratio: var(--dlx-ratio-wide); }
@media (min-width: 900px) { .dlx-related-story__head:has(.dlx-figure) { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } }

.dlx-faq-layout { display: grid; gap: 1.5rem var(--dlx-col-gap); }
.dlx-faq-layout h2 { margin: 0; max-width: 16ch; }
@media (min-width: 960px) { .dlx-faq-layout { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); align-items: start; } }
.dlx-faq { border-top: 1px solid var(--dlx-border); }
.dlx-faq__item { border-bottom: 1px solid var(--dlx-border); }
.dlx-faq__q { margin: 0; font-size: inherit; }
.dlx-faq__btn {
	width: 100%;
	min-height: 48px;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.15rem 0;
	background: none;
	border: 0;
	font: inherit;
	font-size: 1.0625rem;
	font-weight: 650;
	color: var(--dlx-navy);
	text-align: start;
	cursor: pointer;
}
.dlx-faq__icon { position: relative; flex: none; width: 20px; height: 20px; margin-top: .2rem; }
.dlx-faq__icon::before,
.dlx-faq__icon::after { content: ""; position: absolute; background: var(--dlx-orange-600); transition: transform .16s ease-out, opacity .16s ease-out; }
.dlx-faq__icon::before { left: 0; right: 0; top: 9px; height: 2px; }
.dlx-faq__icon::after { top: 0; bottom: 0; left: 9px; width: 2px; }
.dlx-faq__btn[aria-expanded="true"] .dlx-faq__icon::after { transform: scaleY(0); opacity: 0; }
.dlx-faq__panel { padding: 0 0 1.25rem; color: var(--dlx-muted); max-width: 68ch; }
.dlx-faq__panel > * { margin: 0; }

.dlx-cta {
	position: relative;
	overflow: hidden;
	width: min(100% - 2 * var(--dlx-gutter), var(--dlx-container-wide));
	margin: clamp(3.5rem, 6vw, 5rem) auto;
	border-radius: 24px;
	background: radial-gradient(120% 140% at 100% 0%, #274D70 0%, var(--dlx-navy) 46%, var(--dlx-navy-950) 100%);
	isolation: isolate;
	color: var(--dlx-on-dark);
}
.dlx-cta__inner { position: relative; max-width: var(--dlx-container); margin-inline: auto; padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3rem); }
.dlx-cta h2 { margin: 0 0 1rem; max-width: 20ch; }
.dlx-cta p { max-width: 58ch; margin: 0 0 1.5rem; }
.dlx-cta .wp-block-buttons,
.dlx-cta .dlx-actions { margin: 0; }
.dlx-cta + .dlx-footer,
.dlx-main .dlx-cta:last-child { margin-bottom: clamp(4rem, 7vw, 6rem); }
.home .dlx-story > .dlx-cta:last-child {
	margin-top: clamp(2.5rem, 5vw, 4rem);
	margin-bottom: clamp(4rem, 7vw, 6rem);
}
.home .dlx-story > .dlx-cta:last-child .dlx-cta__inner { padding-block: clamp(2.25rem, 4.5vw, 3.5rem); }
.home .dlx-story > .dlx-cta:last-child h2 { font-size: clamp(1.75rem, 3.2vw, 2.5rem); }
.dlx-cta .dlx-bgnet { opacity: .42; }

/* Closing CTA with image: the photograph is part of the navy shape, bleeding to
   its edges, with a navy gradient carrying it under the copy. */
.dlx-cta--media .dlx-cta__inner { position: static; }
.dlx-cta--media .dlx-cta__inner > * { position: relative; z-index: 2; }
.dlx-cta--media .dlx-cta__inner > :is(.dlx-figure, .dlx-hero__media) {
	position: absolute;
	z-index: 1;
	margin: 0;
	overflow: hidden;
	border-radius: 0;
	pointer-events: none;
}
.dlx-cta--media :is(.dlx-figure, .dlx-hero__media) :is(.dlx-figure, img) { margin: 0; border-radius: 0; }
.dlx-cta--media :is(.dlx-figure, .dlx-hero__media) img {
	width: 100%;
	height: 100%;
	aspect-ratio: auto;
	max-height: none;
	object-fit: cover;
	object-position: var(--dlx-focal, 50% 40%);
	box-shadow: none;
}
.dlx-cta--media .dlx-hero__media .dlx-figure { height: 100%; }
.dlx-cta--media .dlx-cta__inner > :is(.dlx-figure, .dlx-hero__media)::after { content: ""; position: absolute; inset: 0; pointer-events: none; }
@media (min-width: 900px) {
	.dlx-cta--media { min-height: clamp(360px, 30vw, 440px); display: flex; align-items: center; }
	.dlx-cta--media .dlx-cta__inner { flex: 1; }
	.dlx-cta--media .dlx-cta__inner > :not(.dlx-figure):not(.dlx-hero__media) { max-width: min(52%, 36rem); }
	.dlx-cta--media .dlx-cta__inner > :is(.dlx-figure, .dlx-hero__media) {
		top: 0;
		right: 0;
		bottom: 0;
		width: 60%;
		/* Faded by a mask, not painted over, so it melts into whatever the navy
		   gradient behind it is at that point - no seam. */
		-webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .35) 22%, rgba(0, 0, 0, .85) 48%, #000 70%);
		mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .35) 22%, rgba(0, 0, 0, .85) 48%, #000 70%);
	}
	.dlx-cta--media .dlx-cta__inner > :is(.dlx-figure, .dlx-hero__media)::after {
		background:
			linear-gradient(90deg, rgba(17, 42, 70, .55) 0%, rgba(17, 42, 70, .12) 60%, rgba(17, 42, 70, 0) 100%),
			linear-gradient(0deg, rgba(8, 24, 40, .4) 0%, rgba(8, 24, 40, 0) 40%);
	}
}
@media (max-width: 899px) {
	.dlx-cta--media .dlx-cta__inner { padding-top: 0; }
	.dlx-cta--media .dlx-cta__inner::before { content: ""; display: block; height: clamp(190px, 48vw, 280px); }
	.dlx-cta--media .dlx-cta__inner > :is(.dlx-figure, .dlx-hero__media) {
		top: 0;
		left: 0;
		right: 0;
		height: clamp(230px, 56vw, 330px);
		-webkit-mask-image: linear-gradient(0deg, transparent 0%, rgba(0, 0, 0, .5) 25%, #000 60%);
		mask-image: linear-gradient(0deg, transparent 0%, rgba(0, 0, 0, .5) 25%, #000 60%);
	}
	.dlx-cta--media .dlx-cta__inner > :is(.dlx-figure, .dlx-hero__media)::after { background: linear-gradient(0deg, rgba(17, 42, 70, .5) 0%, rgba(17, 42, 70, 0) 55%); }
}
@media (max-width: 781px) {
	.dlx-cta {
		width: min(100% - 2 * var(--dlx-gutter), var(--dlx-container-wide));
		border-radius: 20px;
		margin-bottom: clamp(3rem, 12vw, 4.5rem);
	}
}

/* ==========================================================================
   Articles
   ========================================================================== */
.dlx-article { display: grid; gap: var(--dlx-col-gap); }
@media (min-width: 1280px) {
	.dlx-article { grid-template-columns: minmax(0, var(--dlx-reading)) minmax(260px, 340px); align-items: start; justify-content: space-between; }
	.dlx-article__aside { position: sticky; top: calc(var(--dlx-header-h) + 3rem); }
}
.dlx-article__body { max-width: var(--dlx-reading); font-size: 1.0625rem; line-height: 1.78; }
.dlx-article__body > *:first-child { margin-top: 0; }
.dlx-article__body > h2 { scroll-margin-top: calc(var(--dlx-header-h) + 2rem); padding-top: 1.25rem; border-top: 1px solid var(--dlx-border); }
.dlx-article__body :where(h2, h3) { color: var(--dlx-navy); line-height: 1.2; }
.dlx-article__body h2 { margin: 2.4rem 0 1rem; font-size: clamp(1.6rem, 2.2vw, 2.05rem); }
.dlx-article__body h3 { margin: 1.8rem 0 .65rem; font-size: 1.25rem; }
.dlx-article__body :where(.dlx-rpo-article, .dfj-article, .dts-article, .dlx-article-content) { display: contents; }
.dlx-article__body :where(.dlx-kicker, .dfj-k, .dts-kicker, .dlx-section-label) {
	display: inline-flex;
	margin: 1.2rem 0 .35rem;
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--dlx-orange-text);
}
.dlx-article__aside { display: grid; gap: 1.25rem; }
.dlx-toc { padding: 1.35rem 1.5rem; border: 1px solid var(--dlx-border-soft); border-radius: var(--dlx-radius); background: var(--dlx-soft); }
.dlx-toc__title { margin: 0 0 .75rem; font-size: .8125rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--dlx-navy-700); }
.dlx-toc ol { margin: 0; padding-inline-start: 1.15rem; display: grid; gap: .5rem; font-size: .9375rem; }
.dlx-toc a { color: var(--dlx-navy); text-decoration: none; }
.dlx-toc a:hover { text-decoration: underline; }
.dlx-article__cta { padding: 1.5rem; border-radius: var(--dlx-radius); background: var(--dlx-navy); color: var(--dlx-on-dark-muted); }
.dlx-article__cta-title { margin: 0 0 .5rem; font-size: 1.125rem; font-weight: 700; color: #fff; }
.dlx-article__cta p { margin: 0 0 1.1rem; font-size: .9375rem; }
.dlx-storyline { opacity: .82; }
@media (max-width: 1279px) {
	.dlx-article__aside { max-width: var(--dlx-reading); }
	.dlx-toc { display: none; }
}

/* ==========================================================================
   Forms, contact, vacancies
   ========================================================================== */
.dlx-form { max-width: 640px; }
.dlx-prose .wpcf7,
.dlx-prose form:not(.dlx-form) {
	margin: 2rem 0;
	padding: 1.25rem;
	border: 1px solid var(--dlx-border-soft);
	border-radius: var(--dlx-radius);
	background: var(--dlx-soft);
}
.dlx-prose .wpcf7 p { margin: 0 0 1rem; }
.dlx-prose .wpcf7 :where(input, textarea, select),
.dlx-prose form:not(.dlx-form) :where(input, textarea, select) {
	width: 100%;
	min-height: 48px;
	margin: 0 0 .75rem;
	padding: .6875rem .875rem;
	font: inherit;
	font-size: 1rem;
	color: var(--dlx-ink);
	background: var(--dlx-surface);
	border: 1px solid var(--dlx-border-strong);
	border-radius: var(--dlx-radius-sm);
}
.dlx-prose .wpcf7 textarea,
.dlx-prose form:not(.dlx-form) textarea { min-height: 144px; }
.dlx-prose .wpcf7 input[type="submit"],
.dlx-prose form:not(.dlx-form) :where(button, input[type="submit"]) {
	width: auto;
	min-height: 48px;
	margin: .25rem 0 0;
	padding: .8rem 1.5rem;
	border: 0;
	border-radius: var(--dlx-pill);
	background: var(--dlx-orange);
	color: #11202E;
	font-weight: 650;
	cursor: pointer;
}
.dlx-form__grid { display: grid; gap: 1.25rem; }
@media (min-width: 640px) { .dlx-form__grid--2 { grid-template-columns: 1fr 1fr; } }
.dlx-field { display: grid; gap: .375rem; }
.dlx-field > label { font-weight: 600; font-size: .9375rem; color: var(--dlx-navy); }
.dlx-field .dlx-req { color: var(--dlx-error); }
.dlx-field .dlx-hint { font-size: .8125rem; color: var(--dlx-muted); }
.dlx-field :is(input, select, textarea) {
	width: 100%;
	min-height: 48px;
	padding: .6875rem .875rem;
	font: inherit;
	font-size: 1rem;
	color: var(--dlx-ink);
	background: var(--dlx-surface);
	border: 1px solid var(--dlx-border-strong);
	border-radius: var(--dlx-radius-sm);
}
.dlx-field textarea { min-height: 144px; resize: vertical; }
.dlx-field :is(input, select, textarea)[aria-invalid="true"] { border-color: var(--dlx-error); border-width: 2px; }
.dlx-field__error { font-size: .875rem; color: var(--dlx-error); font-weight: 600; }
.dlx-field__error:empty { display: none; }
.dlx-consent { display: flex; gap: .75rem; align-items: flex-start; }
.dlx-consent input { width: 20px; height: 20px; min-height: 20px; margin-top: .2rem; flex: none; }
.dlx-consent label { font-weight: 400; font-size: .9375rem; color: var(--dlx-muted); }
.dlx-form__summary { border: 2px solid var(--dlx-error); border-radius: var(--dlx-radius); padding: 1rem 1.25rem; background: #FEF3F2; color: #6B1610; }
.dlx-form__summary h2 { margin: 0 0 .5rem; font-size: 1rem; color: #6B1610; }
.dlx-form__summary ul { margin: 0; padding-inline-start: 1.125rem; }
.dlx-form__summary a { color: #6B1610; }
.dlx-form__success { border: 2px solid var(--dlx-success); border-radius: var(--dlx-radius); padding: 1rem 1.25rem; background: #F0F9F3; color: #14532D; }
.dlx-form__success h2 { margin: 0 0 .35rem; font-size: 1.0625rem; color: #14532D; }
.dlx-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.dlx-contactcards { display: grid; gap: var(--dlx-gap); }
@media (min-width: 640px) { .dlx-contactcards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.dlx-contactcard { border: 1px solid var(--dlx-border-soft); border-radius: var(--dlx-radius); padding: 1.25rem 1.375rem; background: var(--dlx-surface); }
.dlx-contactcard h3 { margin: 0 0 .35rem; font-size: .8125rem; letter-spacing: .08em; text-transform: uppercase; color: var(--dlx-navy-700); }
.dlx-contactcard p { margin: 0; }
.dlx-contactcard a { color: var(--dlx-navy); font-weight: 600; }

/* Floating WhatsApp and enquiry form */
.dlx-floating-contact {
	position: fixed;
	right: clamp(1rem, 2.5vw, 1.5rem);
	bottom: clamp(1rem, 2.5vw, 1.5rem);
	z-index: 80;
	display: grid;
	gap: .75rem;
	justify-items: end;
}
.dlx-floating-contact__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	text-decoration: none;
	cursor: pointer;
	box-shadow: 0 16px 34px rgba(8, 24, 40, .22);
	transition: transform .16s ease-out, box-shadow .16s ease-out;
}
.dlx-floating-contact__button:is(:hover, :focus-visible) { transform: translateY(-2px); box-shadow: 0 20px 42px rgba(8, 24, 40, .28); }
.dlx-floating-contact__button--form,
.dlx-floating-contact__button--whatsapp {
	width: 58px;
	height: 58px;
	padding: 0;
	border-radius: var(--dlx-pill);
	color: #fff;
	font: inherit;
}
.dlx-floating-contact__button--form { background: var(--dlx-orange); box-shadow: 0 0 0 3px rgba(255, 255, 255, .9), 0 16px 34px rgba(8, 24, 40, .22); }
.dlx-floating-contact__button--form:is(:hover, :focus-visible) { box-shadow: 0 0 0 3px #fff, 0 20px 42px rgba(8, 24, 40, .28); }
.dlx-floating-contact__button--whatsapp { background: #25D366; }
.dlx-floating-contact__button svg { width: 28px; height: 28px; fill: currentColor; flex: none; }
.dlx-floating-contact__button--whatsapp svg { width: 30px; height: 30px; }
.dlx-floating-modal {
	position: fixed;
	inset: 0;
	z-index: 100;
	display: grid;
	place-items: center;
	padding: clamp(1rem, 3vw, 2rem);
}
.dlx-floating-modal[hidden] { display: none !important; }
.dlx-floating-modal__backdrop {
	position: absolute;
	inset: 0;
	border: 0;
	background: rgba(8, 24, 40, .72);
	cursor: pointer;
}
.dlx-floating-modal__panel {
	position: relative;
	z-index: 1;
	width: min(100%, 760px);
	max-height: min(90vh, 860px);
	overflow: auto;
	padding: clamp(1.35rem, 3vw, 2.25rem);
	border-radius: var(--dlx-radius-lg);
	background: var(--dlx-surface);
	box-shadow: var(--dlx-shadow-lg);
}
.dlx-floating-modal__panel > h2 { margin: 0 0 .75rem; font-size: clamp(1.5rem, 2.5vw, 2rem); }
.dlx-floating-modal__panel > p { margin: 0 0 1.5rem; color: var(--dlx-muted); }
.dlx-floating-modal__close {
	position: absolute;
	top: .85rem;
	right: .85rem;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--dlx-border);
	border-radius: var(--dlx-pill);
	background: #fff;
	color: var(--dlx-navy);
	font: inherit;
	font-size: 1.6rem;
	line-height: 1;
	cursor: pointer;
}
.dlx-floating-open { overflow: hidden; }
@media (max-width: 640px) {
	.dlx-floating-contact { right: .9rem; bottom: .9rem; }
	.dlx-floating-contact__button:is(.dlx-floating-contact__button--form, .dlx-floating-contact__button--whatsapp) { width: 52px; height: 52px; }
}

.dlx-jobs { display: grid; gap: 1rem; }
.dlx-job { border: 1px solid var(--dlx-border-soft); border-radius: var(--dlx-radius); padding: 1.25rem 1.5rem; }
.dlx-job h3 { margin: 0 0 .35rem; font-size: 1.125rem; }
.dlx-job__tags { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 .75rem; padding: 0; list-style: none; }
.dlx-job__tags li { font-size: .75rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--dlx-navy-700); background: var(--dlx-soft); border: 1px solid var(--dlx-border); border-radius: var(--dlx-pill); padding: .25rem .625rem; }
.dlx-job details > summary { cursor: pointer; font-weight: 600; color: var(--dlx-navy-700); min-height: 44px; display: flex; align-items: center; }

.dlx-notice { border: 1px solid var(--dlx-border); border-left: 3px solid var(--dlx-orange); border-radius: var(--dlx-radius-sm); padding: 1rem 1.25rem; background: var(--dlx-soft); font-size: .9375rem; }

/* ==========================================================================
   Archives, pagination, search
   ========================================================================== */
.dlx-archive-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--dlx-gap); grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.dlx-archive-list .dlx-card__media { margin: 0 0 .65rem; }
.dlx-archive-list .wp-block-post-title { font-size: 1.125rem; line-height: 1.35; margin: 0; }
.dlx-archive-list .wp-block-post-title a { color: var(--dlx-navy); text-decoration: none; }
.dlx-archive-list .wp-block-post-title a:hover { text-decoration: underline; }
.dlx-archive-list .wp-block-post-excerpt { margin: 0; color: var(--dlx-muted); font-size: .9375rem; }
.dlx-archive-list .wp-block-post-excerpt__excerpt { margin: 0; }
.dlx-pagination { margin-top: 3rem; gap: .5rem; }
.wp-block-query-pagination-numbers .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 .5rem;
	border: 1px solid var(--dlx-border);
	border-radius: var(--dlx-pill);
	text-decoration: none;
	color: var(--dlx-navy);
}
.wp-block-query-pagination-numbers .page-numbers.current { background: var(--dlx-navy); color: #fff; border-color: var(--dlx-navy); }

.dlx-pagehero .wp-block-search { max-width: 34rem; margin-top: 1.5rem; }
.dlx-pagehero .wp-block-search__label { color: var(--dlx-on-dark); font-weight: 600; }
.wp-block-search__inside-wrapper { gap: .5rem; }
.wp-block-search__input { min-height: 48px; padding: .6rem 1rem; border: 1px solid var(--dlx-border-strong); border-radius: var(--dlx-pill); font: inherit; }
.wp-block-search__button { min-height: 48px; margin: 0; padding: .6rem 1.35rem; border: 0; border-radius: var(--dlx-pill); background: var(--dlx-orange); color: #11202E; font: inherit; font-weight: 650; cursor: pointer; }

/* ==========================================================================
   Footer
   ========================================================================== */
.dlx-footer { background: var(--dlx-navy-950); color: var(--dlx-on-dark-muted); }
.dlx-footer a { color: var(--dlx-on-dark); text-decoration: none; }
.dlx-footer a:hover { text-decoration: underline; }
.dlx-footer__inner { max-width: var(--dlx-container-wide); margin-inline: auto; padding: clamp(3rem, 6vw, 4.5rem) var(--dlx-gutter) 2rem; display: grid; gap: 2.5rem; }
@media (min-width: 780px) { .dlx-footer__inner { grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 2rem 2.5rem; } }
.dlx-footer h2 { margin: 0 0 .875rem; font-size: .8125rem; letter-spacing: .08em; text-transform: uppercase; color: var(--dlx-orange-on-dark); }
.dlx-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .625rem; font-size: .9375rem; }
.dlx-footer__brand img { width: 170px; height: auto; margin-bottom: 1rem; }
.dlx-footer__brand p { margin: 0; font-size: .9375rem; line-height: 1.7; max-width: 34ch; }
.dlx-footer .dlx-footer__social { display: flex; gap: .75rem; margin-top: 1.25rem; }
.dlx-footer__social a { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid rgba(255, 255, 255, .28); border-radius: var(--dlx-pill); }
.dlx-footer__social a:hover { border-color: var(--dlx-orange); }
.dlx-footer__social svg { width: 18px; height: 18px; fill: currentColor; }
.dlx-footer__bar {
	max-width: var(--dlx-container-wide);
	margin: 1rem auto 0;
	padding: 1.25rem var(--dlx-gutter);
	border-top: 1px solid var(--dlx-border-dark);
	display: flex;
	flex-wrap: wrap;
	gap: .5rem 1.5rem;
	justify-content: space-between;
	font-size: .8125rem;
}
.dlx-footer__bar p { margin: 0; }

/* ==========================================================================
   Layering, slider, Industries hub
   ========================================================================== */
:root { --dlx-pin-top: 104px; }
@media (max-width: 1023px) { :root { --dlx-pin-top: 73px; } }

/* Section content sits above the decorative background networks. */
.dlx-section > .dlx-inner,
.dlx-cta__inner { position: relative; z-index: 1; }

/* ---------- service slider: static list (no JS / reduced motion) ---------- */
.dlx-slider { position: relative; }
.dlx-slider__slides { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(2rem, 5vw, 3.5rem); }
.dlx-slide { display: grid; gap: 1.25rem var(--dlx-col-gap); align-items: center; }
@media (min-width: 900px) { .dlx-slide { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } }
.dlx-slide__media { margin: 0; overflow: hidden; border-radius: var(--dlx-radius-lg); background: var(--dlx-soft); }
@media (min-width: 900px) { .dlx-slide__media { grid-column: 2; grid-row: 1; } .dlx-slide__body { grid-column: 1; grid-row: 1; } }
.dlx-slide__media img { display: block; width: 100%; height: auto; aspect-ratio: var(--dlx-ratio-card); object-fit: cover; object-position: var(--dlx-focal, 50% 40%); }
.dlx-slide__count { margin: 0 0 1rem; font-size: .875rem; font-weight: 650; letter-spacing: .08em; color: var(--dlx-muted); font-variant-numeric: tabular-nums; }
.dlx-slide__count b { font-size: 2.5rem; line-height: 1; letter-spacing: 0; color: var(--dlx-orange-text); margin-right: .2rem; }
.dlx-slide__title { margin: 0 0 .85rem; font-size: clamp(1.6rem, 3vw, 2.5rem); line-height: 1.12; }
.dlx-slide__title a { color: inherit; text-decoration: none; }
.dlx-slide__title a:hover { text-decoration: underline; }
.dlx-slide__summary { margin: 0 0 1.25rem; font-size: 1.0625rem; line-height: 1.65; color: var(--dlx-muted); max-width: 42ch; }
.dlx-dark .dlx-slide__count { color: var(--dlx-on-dark-muted); }
.dlx-dark .dlx-slide__count b { color: var(--dlx-orange-on-dark); }
.dlx-dark .dlx-slide__summary { color: var(--dlx-on-dark-muted); }

.dlx-slider__rail { display: none; position: relative; height: 24px; }
@media (min-width: 900px) { .dlx-slider__rail { margin-left: calc(5 / 12 * (100% - var(--dlx-col-gap)) + var(--dlx-col-gap)); } }
.dlx-slider__track,
.dlx-slider__fill { position: absolute; left: 0; top: 50%; height: 2px; margin-top: -1px; border-radius: 2px; }
.dlx-slider__track { right: 0; background: rgba(39, 77, 112, .18); }
.dlx-slider__fill { width: calc(var(--dlx-p, 0) * 100%); background: var(--dlx-orange); }
.dlx-slider__node {
	position: absolute;
	top: 50%;
	left: calc(var(--k) / (var(--dlx-slides) - 1) * 100%);
	width: 11px;
	height: 11px;
	margin: -5.5px 0 0 -5.5px;
	border: 2px solid rgba(120, 142, 168, .8);
	border-radius: var(--dlx-pill);
	background: var(--dlx-surface);
	transition: background-color .3s ease-out, border-color .3s ease-out;
}
.dlx-slider__node.is-reached { background: var(--dlx-orange); border-color: var(--dlx-orange); }
.dlx-slider__dot {
	position: absolute;
	top: 50%;
	left: calc(var(--dlx-p, 0) * 100%);
	width: 18px;
	height: 18px;
	margin: -9px 0 0 -9px;
	border-radius: var(--dlx-pill);
	background: var(--dlx-orange);
	box-shadow: 0 0 0 7px rgba(242, 140, 40, .22), 0 0 28px rgba(242, 140, 40, .5);
}
.dlx-dark .dlx-slider__track { background: rgba(255, 255, 255, .22); }
.dlx-dark .dlx-slider__node { background: var(--dlx-navy); border-color: rgba(255, 255, 255, .5); }

/* ---------- Industries hub ---------- */
.dlx-sector-rows { display: grid; gap: clamp(2.5rem, 6vw, 5rem); }
.dlx-sector-row { display: grid; gap: 1.5rem var(--dlx-col-gap); align-items: center; }
@media (min-width: 900px) {
	.dlx-sector-row { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
	.dlx-sector-row:nth-child(even) { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
	.dlx-sector-row:nth-child(even) .dlx-sector-row__media { order: 2; }
}
.dlx-sector-row__media .dlx-figure img { aspect-ratio: 3 / 2; box-shadow: var(--dlx-shadow); }
.dlx-sector-row__kicker { margin: 0 0 .5rem; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--dlx-orange-text); }
.dlx-sector-row h3 { margin: 0 0 .75rem; font-size: clamp(1.45rem, 2.4vw, 2rem); line-height: 1.2; }
.dlx-sector-row h3 a { color: var(--dlx-navy); text-decoration: none; }
.dlx-sector-row h3 a:hover { text-decoration: underline; }
.dlx-sector-row__summary { margin: 0; color: var(--dlx-muted); }
.dlx-sector-row__label { margin: 1.35rem 0 .6rem; font-size: .9375rem; font-weight: 700; color: var(--dlx-navy); }
.dlx-sector-row__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.dlx-sector-row__list li { position: relative; padding-left: 1.4rem; color: var(--dlx-ink); }
.dlx-sector-row__list li::before { content: ""; position: absolute; left: .1rem; top: .65em; width: 7px; height: 7px; border-radius: var(--dlx-pill); background: var(--dlx-orange); }
.dlx-sector-row .dlx-actions { margin-top: 1.5rem; }

.dlx-sector-map__inner { display: grid; gap: 2rem var(--dlx-col-gap); align-items: center; }
@media (min-width: 960px) { .dlx-sector-map__inner { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } }
.dlx-sector-map__inner h2 { max-width: 16ch; }
.dlx-sector-map__list { position: relative; }
.dlx-sector-map__list li { position: relative; z-index: 1; }
.dlx-sector-map .dlx-sector-map__list { gap: 1rem; }
.dlx-sector-map .dlx-industry { background: #173a5c; border-color: rgba(255, 255, 255, .16); color: #fff; }
.dlx-sector-map .dlx-industry__badge { background: rgba(255, 255, 255, .08); box-shadow: inset 0 0 0 1px rgba(242, 140, 40, .35); }

.dlx-principles { display: grid; gap: var(--dlx-gap); }
@media (min-width: 900px) { .dlx-principles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.dlx-principle { padding: 1.75rem; background: var(--dlx-surface); border: 1px solid var(--dlx-border-soft); border-radius: var(--dlx-radius); }
.dlx-principle::before { content: ""; display: block; width: 10px; height: 10px; margin-bottom: 1rem; border-radius: var(--dlx-pill); background: var(--dlx-orange); box-shadow: 0 0 0 5px rgba(242, 140, 40, .16); }
.dlx-principle h3 { margin: 0 0 .75rem; font-size: 1.25rem; line-height: 1.3; }
.dlx-principle .dlx-prose { font-size: .9375rem; color: var(--dlx-muted); }

@media print {
	.dlx-header, .dlx-footer, .dlx-cta, .dlx-storyline { display: none !important; }
	.dlx-hero, .dlx-pagehero { background: none !important; color: #000; }
	body { color: #000; }
}

/* ==========================================================================
   Interaction polish (theme 3.2.3) - every page, not only pages with the
   motion layer. Transform, opacity and clip-path only.
   ========================================================================== */
@media (prefers-reduced-motion: no-preference) {
	/* Hero photographs settle into place instead of appearing. */
	.dlx-hero__media img,
	.dlx-pagehero__media img { animation: dlx-settle 2.4s cubic-bezier(.22, 1, .36, 1) both; }
	@keyframes dlx-settle { from { transform: scale(1.07); } to { transform: none; } }

	/* Buttons: lift, and a light sweep across the primary action. */
	:is(.dlx-btn, .wp-block-button__link) { position: relative; overflow: hidden; transition: background-color .2s ease-out, color .2s ease-out, border-color .2s ease-out, transform .25s cubic-bezier(.22, 1, .36, 1), box-shadow .25s ease-out; }
	:is(.dlx-btn, .wp-block-button__link):hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(17, 42, 70, .18); }
	:is(.dlx-btn, .wp-block-button__link):active { transform: translateY(0); box-shadow: none; }
	:is(.dlx-btn--primary, .wp-block-button:not(.is-style-dlx-secondary) .wp-block-button__link)::after {
		content: "";
		position: absolute;
		inset: 0;
		background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .38) 50%, transparent 70%);
		transform: translateX(-120%);
		pointer-events: none;
	}
	:is(.dlx-btn--primary, .wp-block-button:not(.is-style-dlx-secondary) .wp-block-button__link):hover::after { transform: translateX(120%); transition: transform .75s ease-out; }

	/* Cards lift toward the pointer. */
	:is(.dlx-card, .dlx-svc, .dlx-sector-tile, .dlx-challenge, .dlx-pub-feature, .dlx-client-logos__item, .dlx-contactcard) { transition: translate .35s cubic-bezier(.22, 1, .36, 1), box-shadow .35s ease-out, border-color .35s ease-out; }
	:is(.dlx-card, .dlx-svc, .dlx-sector-tile, .dlx-challenge, .dlx-pub-feature, .dlx-client-logos__item, .dlx-contactcard):hover { translate: 0 -5px; box-shadow: var(--dlx-shadow-lg); }
	:is(.dlx-card__media, .dlx-svc__media, .dlx-sector-tile .dlx-figure, .dlx-pub-feature__media) img { transition: transform .8s cubic-bezier(.22, 1, .36, 1), clip-path .9s var(--dlx-ease); }
	:is(.dlx-card, .dlx-svc, .dlx-sector-tile, .dlx-pub-feature):hover :is(.dlx-card__media, .dlx-svc__media, .dlx-figure, .dlx-pub-feature__media) img { transform: scale(1.06); }
	.dlx-client-logos:hover .dlx-client-logos__track { animation-play-state: paused; }
	.dlx-industry { transition: translate .25s ease-out, border-color .25s ease-out, background-color .25s ease-out; }
	a.dlx-industry:hover { translate: 0 -2px; }

	/* Mega menu and mobile drawer open with a short slide. */
	.dlx-nav__panel:not([hidden]) .dlx-nav__panel-inner { animation: dlx-drop .28s cubic-bezier(.22, 1, .36, 1) both; }
	.dlx-nav__panel:not([hidden]) .dlx-megalink { animation: dlx-drop .36s cubic-bezier(.22, 1, .36, 1) both; }
	.dlx-nav__panel:not([hidden]) .dlx-megalink:nth-child(2) { animation-delay: .03s; }
	.dlx-nav__panel:not([hidden]) .dlx-megalink:nth-child(3) { animation-delay: .06s; }
	.dlx-nav__panel:not([hidden]) .dlx-megalink:nth-child(4) { animation-delay: .09s; }
	.dlx-nav__panel:not([hidden]) .dlx-megalink:nth-child(5) { animation-delay: .12s; }
	.dlx-nav__panel:not([hidden]) .dlx-megalink:nth-child(n+6) { animation-delay: .15s; }
	.dlx-megalink strong { transition: color .2s ease-out, transform .25s cubic-bezier(.22, 1, .36, 1); }
	.dlx-megalink:hover strong { transform: translateX(4px); }
	@keyframes dlx-drop { from { opacity: 0; transform: translate3d(0, -8px, 0); } to { opacity: 1; transform: none; } }
	@media (max-width: 1023px) {
		.dlx-nav-open .dlx-nav { animation: dlx-drawer .32s cubic-bezier(.22, 1, .36, 1) both; }
		@keyframes dlx-drawer { from { opacity: 0; transform: translate3d(0, -12px, 0); } to { opacity: 1; transform: none; } }
	}

	/* Quick-contact buttons arrive after the page, and WhatsApp breathes once. */
	.dlx-floating-contact__button { animation: dlx-pop .5s cubic-bezier(.34, 1.56, .64, 1) 1.2s both; }
	.dlx-floating-contact__button--whatsapp { animation: dlx-pop .5s cubic-bezier(.34, 1.56, .64, 1) 1.35s both, dlx-wa 2.4s ease-out 2.2s 2; }
	@keyframes dlx-pop { from { opacity: 0; scale: .6; translate: 0 12px; } to { opacity: 1; scale: 1; translate: 0 0; } }
	@keyframes dlx-wa {
		0% { box-shadow: 0 16px 34px rgba(8, 24, 40, .22), 0 0 0 0 rgba(37, 211, 102, .5); }
		100% { box-shadow: 0 16px 34px rgba(8, 24, 40, .22), 0 0 0 16px rgba(37, 211, 102, 0); }
	}
}

/* Reading progress on articles, pinned to the top edge: native scroll-driven animation, no script.
   Browsers without animation-timeline simply never show the bar. */
@supports (animation-timeline: scroll()) {
	@media (prefers-reduced-motion: no-preference) {
		body.single-post::before {
			content: "";
			position: fixed;
			z-index: 95;
			left: 0;
			right: 0;
			top: 0;
			height: 3px;
			background: linear-gradient(90deg, var(--dlx-orange), #F7A55A);
			transform-origin: 0 50%;
			transform: scaleX(0);
			animation: dlx-progress linear both;
			animation-timeline: scroll(root);
		}
		@keyframes dlx-progress { to { transform: scaleX(1); } }
	}
}


/* ==========================================================================
   Careers - "Working at DotLynx" points beside the application form
   ========================================================================== */
.dlx-careers-apply { background: var(--dlx-navy); color: var(--dlx-on-dark); }
.dlx-careers-apply__grid { display: grid; gap: clamp(2.5rem, 5vw, 4rem); align-items: start; }
@media (min-width: 960px) { .dlx-careers-apply__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); } }
.dlx-careers-apply__points { display: grid; gap: clamp(1.75rem, 3.5vw, 2.5rem); }
.dlx-careers-point { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.dlx-careers-point__icon {
	display: grid;
	place-items: center;
	width: 72px;
	height: 72px;
	border-radius: var(--dlx-pill);
	background: radial-gradient(circle at 70% 75%, var(--dlx-orange) 0%, #7a5a6e 55%, #274D70 100%);
	box-shadow: 0 0 0 6px rgba(255, 255, 255, .04), 0 14px 34px rgba(0, 0, 0, .35);
}
.dlx-careers-point__icon svg { width: 32px; height: 32px; fill: #fff; }
.dlx-careers-point h2 { margin: .35rem 0 .5rem; font-size: 1.375rem; line-height: 1.3; color: var(--dlx-orange-on-dark); }
.dlx-careers-point p { margin: 0; color: var(--dlx-on-dark-muted); }
.dlx-careers-apply__card {
	padding: clamp(1.5rem, 3.5vw, 2.5rem);
	border-radius: var(--dlx-radius-lg);
	background: var(--dlx-surface);
	color: var(--dlx-ink);
	box-shadow: var(--dlx-shadow-lg);
}
.dlx-careers-apply__card .dlx-form { max-width: none; }
.dlx-careers-apply__card :is(p, .dlx-consent label) { color: var(--dlx-muted); }
.dlx-careers-apply__card .dlx-form__summary h2,
.dlx-careers-apply__card .dlx-form__success h2 { color: inherit; }
.dlx-careers-apply__card .dlx-form__success p { color: #14532D; }
.dlx-careers-apply__card .dlx-field__error { color: var(--dlx-error); }
.dlx-field input[type="file"] { padding: .5rem; cursor: pointer; }
.dlx-field input[type="file"]::file-selector-button {
	margin-right: .75rem;
	padding: .45rem 1rem;
	border: 0;
	border-radius: var(--dlx-pill);
	background: var(--dlx-navy);
	color: #fff;
	font: inherit;
	font-weight: 650;
	cursor: pointer;
}
.dlx-careers-apply__card .dlx-actions .dlx-btn { min-width: 11rem; }

/* Oct 2026 polish: denser sector grids on wide screens */
@media (min-width: 1100px) {
	.dlx-sector-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.dlx-sector-tiles:has(> :nth-child(8):last-child) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
	.dlx-industries:has(> li:nth-child(5):last-child) { --dlx-cols: 5; }
	.dlx-industries:has(> li:nth-child(5):last-child) > li:nth-child(n) { grid-column: auto; }
}
