:root {
	--xfr-navy: #233b5f;
	--xfr-navy-deep: #142742;
	--xfr-blue: #4679b9;
	--xfr-blue-bright: #1769d2;
	--xfr-ice: #edf2fa;
	--xfr-mist: #f5f7fa;
	--xfr-line: #d9e1ec;
	--xfr-white: #fff;
	--xfr-ink: #263a57;
	--xfr-muted: #617087;
	--xfr-radius: 28px;
	--xfr-shadow: 0 24px 70px rgba(24, 46, 77, .12);
	--xfr-text-body: clamp(16px, 1.1vw, 18px);
	--xfr-text-card: clamp(16px, 1vw, 17px);
	--xfr-text-small: 15px;
}

html {
	scroll-behavior: smooth;
}

body.xfr-body {
	margin: 0;
	background: var(--xfr-white);
	color: var(--xfr-ink);
	font-family: Montserrat, Inter, "Segoe UI", Arial, sans-serif;
}

.xfr-site,
.xfr-site * {
	box-sizing: border-box;
}

.xfr-site {
	overflow: clip;
	background: var(--xfr-white);
	color: var(--xfr-ink);
	font-size: var(--xfr-text-body);
	line-height: 1.65;
}

.xfr-site h1,
.xfr-site h2,
.xfr-site h3,
.xfr-site h4,
.xfr-site p,
.xfr-site blockquote {
	margin-top: 0;
}

/* Quotes are part of the content; suppress the theme's decorative duplicates. */
.xfr-site blockquote::before,
.xfr-site blockquote::after {
	content: none;
	display: none;
}

.xfr-site h1,
.xfr-site h2,
.xfr-site h3,
.xfr-site h4 {
	color: var(--xfr-ink);
	font-family: Montserrat, Inter, "Segoe UI", Arial, sans-serif;
	font-weight: 700;
	letter-spacing: -.035em;
	line-height: 1.12;
}

.xfr-site h1 {
	font-size: clamp(44px, 5.2vw, 88px);
	text-transform: none;
}

.xfr-site h2 {
	font-size: clamp(32px, 3.6vw, 60px);
}

.xfr-site h3 {
	font-size: clamp(22px, 1.7vw, 28px);
	line-height: 1.25;
}

.xfr-site a {
	color: inherit;
	text-decoration: none;
	transition: color .2s ease;
}

.xfr-site img,
.xfr-site video,
.xfr-site iframe {
	display: block;
	max-width: 100%;
}

.xfr-services-preview__photo,
.xfr-journal-lead__image,
.xfr-article__image { position: relative; overflow: hidden; }
.xfr-services-preview__photo > img,
.xfr-journal-lead__image > img,
.xfr-article__image > img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.xfr-container {
	width: min(1380px, calc(100% - 64px));
	margin-inline: auto;
}

.xfr-section {
	padding: clamp(88px, 9vw, 150px) 0;
}

.xfr-section-heading {
	max-width: 920px;
	margin-bottom: clamp(44px, 6vw, 82px);
}

.xfr-section-heading h2 {
	margin-bottom: 0;
}

.xfr-page-hero__lead,
.xfr-page-hero__copy {
	white-space: pre-line;
}

.xfr-section-heading--split {
	display: grid;
	max-width: none;
	grid-template-columns: minmax(0, 1.2fr) minmax(280px, .7fr);
	gap: clamp(40px, 7vw, 110px);
	align-items: end;
}

.xfr-section-heading--split > p {
	margin-bottom: .6rem;
	color: var(--xfr-muted);
	font-size: var(--xfr-text-body);
}

.xfr-header {
	position: sticky;
	z-index: 1000;
	top: 0;
	height: 84px;
	background: transparent;
	box-shadow: 0 8px 30px rgba(10, 28, 52, .13);
}

/* Keep the header blur on its own layer so dropdowns can blur the page below. */
.xfr-header::before {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(35, 59, 95, .96);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	content: "";
	pointer-events: none;
}

body.admin-bar .xfr-header {
	top: 32px;
}

.xfr-header__inner {
	display: flex;
	width: min(1460px, calc(100% - 48px));
	height: 100%;
	margin-inline: auto;
	align-items: center;
	justify-content: space-between;
}

.xfr-brand img {
	width: auto;
	height: 32px;
	filter: brightness(0) invert(1);
}

.xfr-nav {
	display: flex;
	align-items: center;
	gap: clamp(20px, 2.3vw, 40px);
}

.xfr-nav a {
	position: relative;
	color: rgba(255, 255, 255, .82);
	font-size: 16px;
	font-weight: 600;
}

.xfr-nav a::after {
	position: absolute;
	right: 0;
	bottom: -12px;
	left: 0;
	height: 2px;
	background: #fff;
	content: "";
	transform: scaleX(0);
	transition: transform .25s ease;
}

.xfr-nav a:hover,
.xfr-nav a.is-active {
	color: #fff;
}

.xfr-nav a:hover::after,
.xfr-nav a.is-active::after {
	transform: scaleX(1);
}

.xfr-nav__item {
	position: relative;
	display: flex;
	align-items: center;
	gap: 2px;
}

.xfr-nav__item.is-open::after {
	position: absolute;
	top: 100%;
	left: 0;
	width: 380px;
	max-width: calc(100vw - 48px);
	height: 26px;
	content: "";
}

.xfr-site .xfr-nav__toggle {
	display: inline-flex;
	width: 36px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 8px;
	background: transparent;
	box-shadow: none;
	color: #fff;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}

.xfr-nav__toggle svg { transition: transform .2s ease; }
.xfr-nav__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.xfr-site .xfr-nav__toggle:hover { background: rgba(255, 255, 255, .12); }
.xfr-nav a:focus-visible,
.xfr-nav__toggle:focus-visible { outline: 2px solid #a9cffd; outline-offset: 4px; }

.xfr-nav__submenu {
	position: absolute;
	top: calc(100% + 24px);
	left: 0;
	display: grid;
	width: 380px;
	max-width: calc(100vw - 48px);
	max-height: calc(100dvh - 134px);
	margin: 0;
	padding: 12px;
	overflow-y: auto;
	border: 1px solid rgba(255, 255, 255, .28);
	border-radius: 22px;
	background: linear-gradient(135deg, rgba(255, 255, 255, .16), rgba(255, 255, 255, .04)), rgba(20, 39, 66, .76);
	box-shadow: 0 20px 45px rgba(10, 28, 52, .2), inset 0 1px 0 rgba(255, 255, 255, .2), inset 0 -1px 0 rgba(255, 255, 255, .05);
	-webkit-backdrop-filter: blur(20px) saturate(155%);
	backdrop-filter: blur(20px) saturate(155%);
	list-style: none;
	transform-origin: top left;
	animation: xfr-dropdown-in .18s ease-out;
}

@keyframes xfr-dropdown-in {
	from { opacity: 0; transform: translateY(6px) scale(.98); }
	to { opacity: 1; transform: translateY(0) scale(1); }
}

.xfr-nav__submenu[hidden] { display: none; }
.xfr-nav__submenu li { margin: 0; padding: 0; }
.xfr-nav__nested { margin: 0; padding-left: 16px; list-style: none; }
.xfr-nav .xfr-nav__submenu a {
	display: block;
	padding: 8px 16px;
	border-radius: 8px;
	color: #fff;
	font-size: 16px;
	line-height: 1.45;
}
.xfr-nav .xfr-nav__submenu a::after { content: none; }
.xfr-nav .xfr-nav__submenu a:hover,
.xfr-nav .xfr-nav__submenu a:focus-visible { background: rgba(255, 255, 255, .1); }

.xfr-menu-button {
	display: none;
	width: 44px;
	height: 44px;
	padding: 10px;
	border: 0;
	background: transparent;
}

.xfr-menu-button span:not(.screen-reader-text) {
	display: block;
	height: 2px;
	margin: 5px 0;
	background: #fff;
}

.xfr-button,
.xfr-site button.xfr-button {
	display: inline-flex;
	min-height: 50px;
	padding: 14px 26px;
	border: 1px solid var(--xfr-blue-bright);
	border-radius: 999px;
	background: var(--xfr-blue-bright);
	box-shadow: 0 12px 34px rgba(23, 105, 210, .22);
	color: #fff;
	font-size: 16px;
	font-weight: 800;
	letter-spacing: .035em;
	align-items: center;
	justify-content: center;
	transition: transform .25s ease, background .25s ease, box-shadow .25s ease, color .2s ease;
}

.xfr-button:hover {
	background: var(--xfr-navy-deep);
	box-shadow: 0 16px 42px rgba(20, 39, 66, .25);
	color: #fff;
	transform: translateY(-2px);
}

.xfr-site a.xfr-button,
.xfr-site a.xfr-button:visited,
.xfr-site a.xfr-button:hover,
.xfr-site a.xfr-button:focus-visible,
.xfr-site button.xfr-button,
.xfr-contact-form-wrap input[type="submit"] {
	color: #fff;
}

.xfr-button--light {
	border-color: rgba(255, 255, 255, .45);
	background: #fff;
	box-shadow: none;
	color: var(--xfr-navy);
}

.xfr-site a.xfr-button--light,
.xfr-site a.xfr-button--light:visited,
.xfr-site a.xfr-button--light:hover,
.xfr-site a.xfr-button--light:focus-visible {
	color: var(--xfr-navy);
}

.xfr-button-row {
	display: flex;
	flex-wrap: wrap;
	gap: 22px;
	align-items: center;
}

.xfr-text-link,
.xfr-share-link {
	display: inline-flex;
	color: var(--xfr-blue-bright);
	font-size: 16px;
	font-weight: 800;
	gap: 10px;
	align-items: center;
}

/* Official LinkedIn blue [in] mark, shared by all LinkedIn links. */
.xfr-site .xfr-linkedin-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	vertical-align: middle;
}

.xfr-site .xfr-linkedin-link::before {
	content: "";
	display: inline-block;
	flex: none;
	width: 23px;
	height: 23px;
	border-radius: 2px;
	background: #fff url("linkedin-official-blue.svg") center / 23px 23px no-repeat;
}

.xfr-team-profile__links .xfr-linkedin-link {
	justify-content: center;
}

.xfr-article__header .xfr-linkedin-link::before {
	width: 31px;
	height: 31px;
	border-radius: 4px;
	background-color: #fff;
}

/* Linked article photos retain their original float and text wrapping. */
.xfr-article__body .xfr-linkedin-link:has(> img) {
	display: inline;
}

.xfr-article__body .xfr-linkedin-link:has(> img)::before {
	display: none;
}

.xfr-home-hero {
	position: relative;
	display: flex;
	min-height: max(980px, calc(100svh - 84px));
	padding: clamp(110px, 10vw, 180px) 0 300px;
	align-items: center;
	background: var(--xfr-navy-deep);
}

.xfr-home-hero.xfr-home-hero--revolution {
	display: block;
	height: auto;
	min-height: 0;
	padding: 0 0 32px;
	background: #fff;
}

.xfr-home-hero__revolution {
	position: relative;
	z-index: 1;
}

.xfr-home-hero--revolution .xfr-home-hero__facts {
	position: relative;
	right: auto;
	bottom: auto;
	left: auto;
	margin-top: 0;
}

.xfr-home-hero__slide,
.xfr-home-hero__veil {
	position: absolute;
	inset: 0;
}

.xfr-home-hero__slide {
	background-position: center;
	background-size: cover;
	opacity: 0;
	transform: scale(1.035);
	transition: opacity 1.3s ease, transform 8s linear;
}

.xfr-home-hero__slide.is-active {
	opacity: 1;
	transform: scale(1);
}

.xfr-home-hero__veil {
	background: linear-gradient(90deg, rgba(15, 34, 59, .95) 0%, rgba(18, 42, 73, .76) 48%, rgba(18, 42, 73, .24) 100%), linear-gradient(0deg, rgba(15, 34, 59, .45), transparent 55%);
}

.xfr-home-hero__content {
	position: relative;
	z-index: 2;
	margin-inline: max(32px, calc((100vw - min(1380px, calc(100vw - 64px))) / 2));
}

.xfr-home-hero__content h1 {
	max-width: 1160px;
	margin-bottom: 28px;
	color: #fff;
	font-size: clamp(44px, 5vw, 88px);
	line-height: 1.08;
}

.xfr-home-hero__content > p {
	max-width: 690px;
	margin-bottom: 38px;
	color: rgba(255, 255, 255, .85);
	font-size: clamp(18px, 1.2vw, 21px);
}

.xfr-home-hero .xfr-text-link {
	color: #fff;
}

.xfr-home-hero__facts {
	position: absolute;
	z-index: 3;
	right: 0;
	bottom: 36px;
	left: 0;
	display: grid;
	width: 100%;
	min-height: 172px;
	margin-inline: auto;
	padding-inline: max(32px, calc((100% - 1120px) / 2));
	overflow: hidden;
	border-radius: 0;
	background: var(--xfr-navy-deep);
	box-shadow: none;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	backdrop-filter: blur(18px);
}

.xfr-home-hero__facts div {
	display: flex;
	padding: 28px 30px;
	border-right: 1px solid rgba(255, 255, 255, .12);
	color: #fff;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 10px;
	text-align: center;
}

.xfr-home-hero__facts div:last-child {
	border: 0;
}

.xfr-home-hero__facts strong {
	font-size: clamp(30px, 2.4vw, 38px);
	line-height: 1.1;
}

.xfr-home-hero__facts span {
	max-width: 260px;
	color: rgba(255, 255, 255, .8);
	font-size: 16px;
	line-height: 1.5;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.xfr-about {
	position: relative;
	background: #fff;
}

.xfr-section.xfr-about,
.xfr-section.xfr-testimonials {
	display: flex;
	min-height: 780px;
	align-items: center;
}

.xfr-section.xfr-about {
	min-height: 0;
	margin-block: 0;
	padding-block: 64px;
}

.xfr-section.xfr-testimonials {
	min-height: 0;
	padding-block: clamp(120px, 12vw, 180px) 96px;
}

.xfr-about__grid {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
	gap: clamp(40px, 5vw, 80px);
	align-items: center;
}

.xfr-site .xfr-about h2 {
	margin-bottom: 24px;
	color: #455c7b;
	font-family: inherit;
	font-size: clamp(27px, 2.2vw, 35px);
	letter-spacing: -.02em;
	line-height: 1.35;
}

.xfr-about__copy {
	color: #455c7b;
	font-family: "Segoe UI", Arial, sans-serif;
	font-size: var(--xfr-text-body);
	line-height: 1.65;
}

.xfr-about__copy > p {
	margin-bottom: 16px;
}

.xfr-about__copy > p:last-child {
	margin-bottom: 0;
}

.xfr-about__audience {
	margin-bottom: 20px;
	font-size: clamp(18px, 1.2vw, 20px);
	font-style: italic;
	line-height: 1.5;
}

.xfr-about__audience p {
	margin-bottom: 6px;
}

.xfr-checkline {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	list-style: none;
	gap: 0 16px;
	flex-wrap: wrap;
	justify-content: flex-start;
}

.xfr-checkline li {
	display: flex;
	margin: 0;
	padding: 0;
	gap: 6px;
	align-items: baseline;
}

.xfr-checkline li::before {
	content: "✓";
	font-style: normal;
}

.xfr-about__logo {
	display: grid;
	place-items: center;
}

.xfr-about__logo img {
	width: 100%;
	height: auto;
}

.xfr-services-preview {
	background: var(--xfr-ice);
}

.xfr-services-preview__photo {
	height: clamp(360px, 47vw, 660px);
	border-radius: var(--xfr-radius);
	background-position: center 30%;
	background-size: cover;
	box-shadow: var(--xfr-shadow);
}

.xfr-service-cards {
	position: relative;
	display: grid;
	margin: -130px 46px 0;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
}

.xfr-service-card {
	display: grid;
	grid-template-rows: subgrid;
	grid-row: span 3;
	row-gap: 0;
	min-height: 430px;
	padding: 36px 30px;
	border: 1px solid rgba(44, 77, 119, .08);
	border-radius: 30px 30px 12px 12px;
	background: rgba(255, 255, 255, .96);
	box-shadow: 0 20px 54px rgba(35, 59, 95, .1);
}

.xfr-service-card > span {
	margin-bottom: 28px;
	color: var(--xfr-blue);
	font-size: clamp(42px, 3.8vw, 58px);
	font-weight: 800;
	letter-spacing: -.05em;
	line-height: 1;
}

.xfr-service-card h3 {
	display: flex;
	margin-bottom: 20px;
	align-items: center;
}

.xfr-service-card p {
	color: var(--xfr-muted);
	font-size: var(--xfr-text-card);
}

.xfr-service-card a {
	margin-top: auto;
	color: var(--xfr-blue-bright);
	font-size: 16px;
	font-weight: 800;
}

.xfr-section.xfr-sectors-preview {
	padding-block: clamp(72px, 7vw, 112px);
	padding-top: clamp(32px, 3.5vw, 48px);
}

.xfr-sectors-preview .xfr-section-heading {
	margin-bottom: 16px;
}

.xfr-sectors-preview .xfr-section-heading h2 {
	margin: 0;
	padding: 0;
}

.xfr-sectors-preview .xfr-sector-rail {
	padding-top: 0;
}

@media (min-width: 921px) {
	.xfr-section.xfr-services-preview { padding-bottom: 56px; }
	.xfr-section.xfr-sectors-preview { padding-block: 48px; }
	.xfr-sectors-preview .xfr-sector-tile { min-height: 180px; }
}

.xfr-sectors-preview > .xfr-container {
	width: 100%;
}

.xfr-sector-rail {
	display: flex;
	overflow-x: auto;
	padding: 8px 4px 18px;
	gap: 20px;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.xfr-sector-rail::-webkit-scrollbar {
	display: none;
}

.xfr-sector-rail[data-xfr-marquee] {
	scroll-behavior: auto;
	scroll-snap-type: none;
}

.xfr-sector-tile {
	display: flex;
	min-width: 0;
	min-height: 220px;
	padding: 24px 12px;
	border: 0;
	border-radius: 24px;
	background: transparent;
	flex: 0 0 calc((100% - 100px) / 6);
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	scroll-snap-align: start;
	transition: color .3s ease, transform .3s ease;
}

.xfr-sector-tile:hover {
	background: transparent;
	color: var(--xfr-blue-bright);
	transform: translateY(-4px);
}

.xfr-sector-tile:focus-visible {
	outline: 3px solid var(--xfr-blue-bright);
	outline-offset: 2px;
}

.xfr-sector-tile__icon {
	display: grid;
	width: 72px;
	height: 72px;
	margin-bottom: 14px;
	flex-shrink: 0;
	background: transparent;
	place-items: center;
}

.xfr-sector-tile svg {
	width: 44px;
	height: 44px;
	fill: var(--xfr-blue-bright);
	stroke: none;
}

.xfr-sector-tile__icon,
.xfr-sector-tile strong {
	font-size: 20px;
	font-weight: 600;
}

.xfr-sector-tile strong {
	margin-top: 0;
	line-height: 1.4;
}

.xfr-sector-tile svg {
	width: 72px;
	height: 72px;
}

.xfr-why {
	position: relative;
	background: var(--xfr-navy-deep);
}

.xfr-section.xfr-why {
	padding-block: clamp(104px, 10vw, 160px);
}

.xfr-why::before {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(20, 39, 66, .98), rgba(20, 39, 66, .78)), var(--xfr-why-bg) center/cover;
	content: "";
}

.xfr-why .xfr-container {
	position: relative;
}

.xfr-why h2 {
	color: #fff;
}

.xfr-why__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
}

.xfr-why__grid article {
	min-height: 240px;
	padding: 34px;
	border: 1px solid rgba(255, 255, 255, .13);
	border-radius: 24px;
	background: rgba(255, 255, 255, .08);
	backdrop-filter: blur(14px);
}

.xfr-why__grid h3 {
	margin: 0 0 14px;
	color: #fff;
}

.xfr-why__grid p {
	margin-bottom: 0;
	color: rgba(255, 255, 255, .69);
}

.xfr-testimonials {
	background: #fff;
}

.xfr-testimonials .xfr-section-heading {
	margin-bottom: 49px;
}

.xfr-testimonial {
	display: grid;
	min-height: 0;
	padding: 0 clamp(28px, 3vw, 44px);
	border: 0;
	border-radius: 26px;
	background: transparent;
	grid-row: span 3;
	grid-template-rows: subgrid;
	align-self: stretch;
}

.xfr-testimonial-pages {
	overflow: hidden;
	touch-action: pan-y;
	cursor: grab;
}

.xfr-testimonial-pages:focus-visible {
	outline: 2px solid var(--xfr-blue-bright);
	outline-offset: 4px;
}

.xfr-testimonial-pages.is-dragging {
	user-select: none;
	cursor: grabbing;
}

.xfr-testimonial-controls {
	display: flex;
	margin-top: 28px;
	gap: 10px;
	justify-content: flex-end;
}

.xfr-testimonial-controls[hidden] {
	display: none;
}

.xfr-testimonial-controls button {
	display: inline-flex;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--xfr-line);
	border-radius: 50%;
	background: #fff;
	color: var(--xfr-navy);
	font-size: 22px;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: border-color .2s ease, background-color .2s ease;
}

.xfr-testimonial-controls button:hover {
	border-color: var(--xfr-blue-bright);
	background: var(--xfr-ice);
}

.xfr-testimonial-controls button:focus-visible {
	outline: 2px solid var(--xfr-blue-bright);
	outline-offset: 4px;
}

.xfr-testimonial-track {
	display: flex;
	width: 100%;
	align-items: stretch;
	mix-blend-mode: multiply;
	transition: transform 700ms cubic-bezier(.22, .61, .36, 1);
}

.xfr-testimonial-page {
	display: grid;
	min-width: 0;
	flex: 0 0 100%;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-template-rows: auto 64px auto;
	align-items: start;
	align-content: start;
	gap: 16px 24px;
}

.xfr-testimonial-pages:not(.is-enhanced) > .xfr-testimonial-page:not(.is-active) {
	display: none;
}

.xfr-testimonial blockquote {
	margin: 0;
	padding: 0;
	border: 0;
	color: var(--xfr-navy);
	font-size: clamp(18px, 1.3vw, 21px);
	font-weight: 500;
	letter-spacing: -.015em;
	line-height: 1.65;
}

.xfr-testimonial__author {
	display: flex;
	margin: 0;
	flex-direction: column;
	gap: 6px;
}

.xfr-testimonial__brand {
	display: flex;
	height: 64px;
	background: transparent;
	mix-blend-mode: multiply;
	align-items: flex-start;
}

.xfr-testimonial__brand--original {
	mix-blend-mode: normal;
}

.xfr-testimonial__author strong {
	font-size: 18px;
}

.xfr-testimonial__author span {
	color: var(--xfr-muted);
	font-size: var(--xfr-text-small);
}

.xfr-testimonial .xfr-testimonial__logo {
	width: auto;
	max-width: min(200px, 100%);
	height: 64px;
	margin: 0;
	object-fit: contain;
	object-position: left top;
	align-self: flex-start;
}

.xfr-testimonials + .xfr-recent-posts {
	padding-top: 48px;
}

.xfr-action-box {
	display: flex;
	min-height: 440px;
	padding: clamp(96px, 8vw, 144px) 0;
	background: var(--xfr-navy);
	align-items: center;
}

.xfr-action-box__inner {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 40px;
	align-items: center;
}

.xfr-action-box h2 {
	margin-bottom: 8px;
	color: #fff;
	font-size: clamp(28px, 2.6vw, 44px);
}

.xfr-action-box p {
	margin-bottom: 0;
	color: rgba(255, 255, 255, .68);
}

.xfr-action-box__buttons {
	display: flex;
	gap: 14px;
}

.xfr-view-home .xfr-action-box {
	background: var(--xfr-ice);
}

.xfr-view-home .xfr-action-box h2 {
	color: var(--xfr-navy);
}

.xfr-view-home .xfr-action-box p {
	color: var(--xfr-muted);
}

.xfr-recent-posts {
	padding-block: clamp(48px, 5vw, 72px);
	background: var(--xfr-ice);
}

.xfr-recent-posts__header {
	display: flex;
	margin-bottom: 28px;
	gap: 24px;
	align-items: center;
	justify-content: space-between;
}

.xfr-recent-posts .xfr-recent-posts__header h2 {
	margin-bottom: 10px;
	padding: 0;
	font-size: clamp(30px, 2.6vw, 40px);
}

.xfr-recent-posts__header p {
	margin-bottom: 0;
	color: var(--xfr-muted);
}

.xfr-recent-posts__header > .xfr-button {
	flex-shrink: 0;
}

.xfr-post-rail {
	display: flex;
	gap: 20px;
	overflow-x: auto;
	padding: 4px 0 16px;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
}

.xfr-post-rail::-webkit-scrollbar {
	display: none;
}

.xfr-post-card {
	display: flex;
	min-width: 0;
	flex: 0 0 100%;
	scroll-snap-align: start;
}

.xfr-post-card__link {
	display: grid;
	width: 100%;
	overflow: hidden;
	border: 1px solid var(--xfr-line);
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 6px 14px rgba(24, 46, 77, .04);
	grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
	transition: border-color .2s ease, box-shadow .2s ease;
}

.xfr-post-card__link:hover {
	border-color: #a8bdd9;
	box-shadow: 0 6px 14px rgba(24, 46, 77, .1);
}

.xfr-post-card__image {
	position: relative;
	overflow: hidden;
	background: var(--xfr-mist);
	min-height: 300px;
}

.xfr-post-card__image img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.xfr-post-card__copy {
	display: flex;
	padding: clamp(24px, 3vw, 40px);
	flex: 1;
	flex-direction: column;
	justify-content: center;
	gap: 12px;
}

.xfr-post-card time {
	color: var(--xfr-muted);
	font-size: 13px;
	font-weight: 600;
}

.xfr-recent-posts .xfr-post-card h3 {
	margin: 0;
	padding: 0;
	font-size: clamp(22px, 2.1vw, 30px);
	letter-spacing: -.025em;
	line-height: 1.35;
}

.xfr-post-card p {
	margin: 0;
	color: var(--xfr-muted);
	font-size: 15px;
	line-height: 1.6;
}

.xfr-post-card__more {
	display: flex;
	margin-top: 0;
	padding-top: 8px;
	color: var(--xfr-ink);
	font-size: 15px;
	font-weight: 700;
	justify-content: space-between;
}

.xfr-post-controls {
	display: flex;
	margin-top: 12px;
	gap: 10px;
	align-items: center;
	justify-content: flex-end;
}

.xfr-post-controls[hidden] {
	display: none;
}

.xfr-post-status {
	margin-right: 8px;
	color: var(--xfr-muted);
	font-size: 14px;
	font-variant-numeric: tabular-nums;
}

.xfr-post-controls button {
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--xfr-line);
	border-radius: 50%;
	background: #fff;
	color: var(--xfr-navy);
	font-size: 22px;
	cursor: pointer;
}

.xfr-post-controls button:disabled {
	opacity: .35;
	cursor: default;
}

.xfr-post-card__link:focus-visible,
.xfr-post-controls button:focus-visible,
.xfr-post-rail:focus-visible {
	outline: 2px solid var(--xfr-blue-bright);
	outline-offset: -3px;
}

@media (max-width: 760px) {
	.xfr-post-card__link { grid-template-columns: 1fr; }
	.xfr-post-card__image { min-height: 0; aspect-ratio: 16 / 9; }
}

@media (max-width: 640px) {
	.xfr-video-poster__play { right: 12px; bottom: 12px; width: 40px; height: 40px; }
	.xfr-recent-posts__header { align-items: flex-start; flex-direction: column; gap: 18px; }
	.xfr-post-card__copy { padding: 20px; }
}

.xfr-page-hero {
	position: relative;
	overflow: hidden;
	padding: clamp(110px, 13vw, 210px) 0 clamp(80px, 9vw, 140px);
	background: var(--xfr-navy);
}

.xfr-page-hero::before {
	position: absolute;
	inset: 0;
	background: url("page-facets-texture.jpg") center / cover no-repeat;
	filter: grayscale(1) brightness(1.6);
	opacity: .2;
	mask-image: linear-gradient(to bottom, transparent, #000 18%, #000 82%, transparent);
	content: "";
	pointer-events: none;
}

.xfr-page-hero__inner {
	position: relative;
	z-index: 2;
}

.xfr-page-hero h1 {
	max-width: 1150px;
	margin-bottom: 28px;
	color: #fff;
}

.xfr-page-hero__copy {
	max-width: 780px;
	margin-bottom: 0;
	color: rgba(255, 255, 255, .72);
	font-size: clamp(18px, 1.2vw, 21px);
}

.xfr-view-services .xfr-page-hero {
	padding-block: clamp(64px, 7vw, 104px) clamp(48px, 6vw, 80px);
}

.xfr-view-services .xfr-page-hero__lead {
	max-width: 1000px;
	margin: 0 0 20px;
	color: #fff;
	font-size: clamp(22px, 2.4vw, 30px);
	font-weight: 600;
	line-height: 1.35;
}

.xfr-view-services .xfr-page-hero__copy {
	max-width: 1000px;
	margin-bottom: 16px;
	font-size: 18px;
	line-height: 1.65;
}

.xfr-view-services .xfr-page-hero__copy:last-child {
	margin-bottom: 0;
}

.xfr-orbit {
	position: absolute;
	border: 1px solid rgba(255, 255, 255, .12);
	border-radius: 50%;
}

.xfr-orbit--two {
	right: 4vw;
	top: -19vw;
	width: 41vw;
	height: 41vw;
}

.xfr-anchor-nav {
	position: sticky;
	z-index: 80;
	top: 84px;
	border-bottom: 1px solid var(--xfr-line);
	background: rgba(255, 255, 255, .96);
	box-shadow: 0 8px 28px rgba(35, 59, 95, .06);
	backdrop-filter: blur(14px);
}

body.admin-bar .xfr-anchor-nav {
	top: 116px;
}

.xfr-anchor-nav .xfr-container {
	display: flex;
	overflow-x: auto;
	scrollbar-width: none;
}

.xfr-anchor-nav a {
	display: flex;
	min-height: 72px;
	padding: 16px 24px;
	border-right: 1px solid var(--xfr-line);
	font-size: var(--xfr-text-small);
	font-weight: 800;
	align-items: center;
	gap: 10px;
	white-space: nowrap;
}

.xfr-anchor-nav a:hover {
	background: var(--xfr-ice);
	color: var(--xfr-blue-bright);
}

.xfr-anchor-nav a > span:not(.xfr-anchor-icon) {
	color: inherit;
	font-size: var(--xfr-text-small);
}

#service-experience,
#service-videos { scroll-margin-top: 168px; }

/* White page textures: only the decorative layer is filtered or faded. */
.xfr-site section[data-xfr-page-texture] {
	--xfr-page-edge-fade: clamp(100px, 12vw, 180px);
	position: relative;
	isolation: isolate;
	background: #fff;
}

.xfr-site section[data-xfr-page-texture]::before {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--xfr-page-texture-image) center / cover no-repeat;
	filter: var(--xfr-page-texture-filter);
	opacity: var(--xfr-page-texture-opacity);
	mask-image: linear-gradient(to bottom, transparent, #000 var(--xfr-page-edge-fade), #000 calc(100% - var(--xfr-page-edge-fade)), transparent);
	content: "";
	pointer-events: none;
}

.xfr-site section[data-xfr-texture-bands]::before {
	content: none;
}

.xfr-page-texture-bands {
	--xfr-texture-blend: clamp(240px, 28vw, 420px);
	position: absolute;
	inset: 0;
	z-index: -1;
	display: grid;
	/* Clip surplus decoration as filters reduce the content; never rescale it. */
	grid-auto-rows: clamp(900px, 100vw, 1400px);
	overflow: hidden;
	mask-image: linear-gradient(to bottom, transparent, #000 var(--xfr-page-edge-fade), #000 calc(100% - var(--xfr-page-edge-fade)), transparent);
	pointer-events: none;
}

.xfr-page-texture-bands > span {
	/* Overlap complementary fades instead of leaving a white seam between images. */
	margin-block: calc(var(--xfr-texture-blend) / -2);
	background: var(--xfr-page-texture-image) center / cover no-repeat;
	filter: var(--xfr-page-texture-filter);
	opacity: var(--xfr-page-texture-opacity);
	mask-image: linear-gradient(to bottom,
		transparent,
		rgba(0, 0, 0, .12) calc(var(--xfr-texture-blend) * .2),
		rgba(0, 0, 0, .5) calc(var(--xfr-texture-blend) * .5),
		rgba(0, 0, 0, .88) calc(var(--xfr-texture-blend) * .8),
		#000 var(--xfr-texture-blend),
		#000 calc(100% - var(--xfr-texture-blend)),
		rgba(0, 0, 0, .88) calc(100% - var(--xfr-texture-blend) * .8),
		rgba(0, 0, 0, .5) calc(100% - var(--xfr-texture-blend) * .5),
		rgba(0, 0, 0, .12) calc(100% - var(--xfr-texture-blend) * .2),
		transparent);
}

[data-xfr-page-texture="dunes"],
[data-xfr-texture-band="dunes"] {
	--xfr-page-texture-image: url("services-sectors-texture.jpg");
	--xfr-page-texture-filter: grayscale(1) contrast(1.15) brightness(1.02);
	--xfr-page-texture-opacity: .34;
}

[data-xfr-page-texture="curves"],
[data-xfr-texture-band="curves"] {
	--xfr-page-texture-image: url("portfolio-card-texture.jpg");
	--xfr-page-texture-filter: grayscale(1) brightness(2);
	--xfr-page-texture-opacity: .16;
}

[data-xfr-page-texture="facets"],
[data-xfr-texture-band="facets"] {
	--xfr-page-texture-image: url("page-facets-texture.jpg");
	--xfr-page-texture-filter: grayscale(1) brightness(1.6);
	--xfr-page-texture-opacity: .2;
}

.xfr-service-detail {
	padding: clamp(64px, 6vw, 88px) 0;
	scroll-margin-top: 155px;
	line-height: 1.55;
}

.xfr-service-detail__grid {
	display: grid;
	grid-template-columns: 1.15fr .85fr;
	grid-template-rows: auto 1fr;
	grid-template-areas: "capabilities summary" "capabilities testimonial";
	gap: clamp(32px, 4vw, 64px);
	row-gap: 0;
	align-items: stretch;
}

.xfr-service-detail__capabilities {
	grid-area: capabilities;
	display: grid;
	gap: 20px;
	grid-auto-rows: 1fr;
	align-content: stretch;
}

.xfr-capability {
	padding: 18px 22px;
	border-left: 4px solid var(--xfr-blue);
	border-radius: 0 18px 18px 0;
	background: #ced9ea;
}

.xfr-service-detail--alt .xfr-capability {
	background: #fff;
}

.xfr-capability h3 {
	margin: 0 0 8px;
	padding: 0;
	font-size: 22px;
	letter-spacing: -.015em;
}

.xfr-capability p {
	margin-bottom: 0;
	color: var(--xfr-muted);
	font-size: var(--xfr-text-card);
}

.xfr-service-detail__summary {
	grid-area: summary;
	display: flex;
	flex-direction: column;
}

.xfr-service-detail__summary > :last-child {
	margin-bottom: 0;
}

.xfr-service-detail__summary h2 {
	margin: 0 0 18px;
	padding: 0;
	font-size: clamp(34px, 3.4vw, 60px);
}

.xfr-service-detail__intro {
	position: relative;
	margin-bottom: 32px;
	padding: 20px;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 20px 48px rgba(35, 59, 95, .16), 0 4px 14px rgba(35, 59, 95, .08);
	color: var(--xfr-muted);
	font: inherit;
}

.xfr-service-detail:not(.xfr-service-detail--alt) .xfr-service-detail__intro {
	box-shadow: 0 20px 48px rgba(35, 59, 95, .2), 0 4px 14px rgba(35, 59, 95, .1);
}

.xfr-service-detail blockquote {
	position: relative;
	margin: 0 0 12px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	font-size: clamp(15px, 1.05vw, 16px);
	font-style: italic;
}

.xfr-quote-person {
	display: flex;
	font-size: var(--xfr-text-small);
	flex-direction: column;
}

.xfr-quote-person span {
	color: var(--xfr-muted);
}

.xfr-service-detail .xfr-quote-person {
	margin: 0;
}

.xfr-service-testimonial {
	grid-area: testimonial;
	align-self: end;
	margin-top: 32px;
}

.xfr-service-actions {
	display: flex;
	margin: 0 0 32px;
	gap: 10px;
	flex-wrap: wrap;
}

.xfr-service-actions .xfr-button {
	min-height: 48px;
	padding: 12px 14px;
	font-size: 13px;
	letter-spacing: 0;
}

.xfr-site section.xfr-video-section {
	--xfr-page-texture-opacity: .1;
	background: #f2f5fa;
}

.xfr-video-rail {
	display: flex;
	overflow-x: auto;
	padding-bottom: 14px;
	gap: 20px;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.xfr-video-card {
	min-width: min(560px, 76vw);
	scroll-snap-align: start;
}

.xfr-video-card__media {
	position: relative;
	overflow: hidden;
	border-radius: 24px;
	background: var(--xfr-navy-deep);
	box-shadow: var(--xfr-shadow);
}

.xfr-video-card video {
	width: 100%;
	aspect-ratio: 16/9;
	object-fit: contain;
	background: #fff;
}

.xfr-site button.xfr-video-poster {
	position: absolute;
	inset: 0;
	display: flex;
	width: 100%;
	height: 100%;
	padding: 16px 24px;
	border: 0;
	border-radius: inherit;
	background: #fff;
	box-shadow: none;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}

.xfr-site button.xfr-video-poster[hidden] {
	display: none;
}

.xfr-video-poster img {
	display: block;
	width: 38%;
	height: auto;
	max-height: 48%;
	object-fit: contain;
	object-position: center;
}

.xfr-video-poster__play {
	position: absolute;
	right: 16px;
	bottom: 16px;
	display: grid;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--xfr-blue-bright);
	color: #fff;
	place-items: center;
}

.xfr-video-poster:focus-visible {
	outline: 2px solid var(--xfr-blue-bright);
	outline-offset: -6px;
}

.xfr-video-card h3 {
	margin: 22px 0 0;
}

.xfr-rail-controls {
	display: flex;
	margin-top: 34px;
	gap: 10px;
}

.xfr-rail-controls button {
	width: 52px;
	height: 52px;
	border: 1px solid var(--xfr-line);
	border-radius: 50%;
	background: #fff;
	color: var(--xfr-navy);
	font-size: 1.2rem;
}

.xfr-rail-controls button.xfr-rail-toggle {
	width: auto;
	padding-inline: 20px;
	border-radius: 999px;
	font-size: var(--xfr-text-small);
	font-weight: 700;
}

.xfr-team-intro__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr);
	gap: clamp(50px, 8vw, 120px);
	align-items: center;
}

.xfr-team-intro__photo {
	overflow: hidden;
	border-radius: var(--xfr-radius);
	box-shadow: var(--xfr-shadow);
}

.xfr-team-intro__photo img {
	width: 100%;
	height: auto;
	object-fit: contain;
}

.xfr-site .xfr-team-intro h2 {
	font-size: clamp(26px, 2.6vw, 42px);
}

.xfr-section.xfr-team-list {
	padding-block: clamp(144px, 14vw, 224px);
	background: #fff;
}

.xfr-team-profiles {
	display: grid;
	gap: clamp(128px, 12vw, 176px);
}

.xfr-team-profile {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 2.15fr);
	gap: clamp(32px, 4vw, 56px);
	align-items: start;
}

.xfr-team-profile__portrait {
	aspect-ratio: 1;
	border-radius: 50%;
	overflow: hidden;
}

.xfr-team-profile__portrait img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.xfr-site .xfr-team-profile__name {
	margin: 0 0 6px;
	color: var(--xfr-ink);
	font-size: 30px;
	line-height: 1.25;
}

.xfr-team-profile__content {
	min-width: 0;
	color: #2b2c36;
	font-size: 17px;
	line-height: 1.4;
}

.xfr-team-profile__role {
	margin-bottom: 16px;
	font-size: 20px;
	line-height: 1.3;
}

.xfr-team-profile__bio p {
	margin-bottom: 24px;
}

.xfr-team-profile__bio ul {
	margin: 0 0 24px;
	padding-left: 24px;
	list-style: disc;
}

.xfr-team-profile__bio li {
	margin-bottom: 6px;
}

.xfr-team-profile__facts p {
	margin-bottom: 4px;
}

.xfr-team-profile__links {
	display: flex;
	margin-top: 16px;
	gap: 8px;
}

.xfr-team-profile__links a {
	display: grid;
	width: 44px;
	height: 44px;
	border-radius: 4px;
	place-items: center;
}

.xfr-team-profile__links a:hover {
	background: var(--xfr-ice);
}

.xfr-team-profile__links a:focus-visible {
	outline: 2px solid var(--xfr-blue-bright);
	outline-offset: 2px;
}

.xfr-team-profile__links img {
	width: auto;
	height: auto;
	max-width: 23px;
	max-height: 23px;
}

.xfr-sector-case {
	padding-bottom: 160px;
	scroll-margin-top: 155px;
}

.xfr-sector-case--heading-only {
	padding-bottom: 0;
}

.xfr-sector-case--heading-only .xfr-sector-case__header {
	min-height: 34vh;
	margin-bottom: 0;
	display: flex;
	align-items: center;
}

.xfr-sector-case__header {
	margin-bottom: clamp(68px, 8vw, 110px);
	padding: 42px 0;
	background: var(--xfr-blue);
}

.xfr-sector-case__header h2 {
	margin-bottom: 0;
	color: #fff;
	font-size: clamp(34px, 3.4vw, 60px);
}

.xfr-sector-case__intro {
	max-width: 980px;
	margin-bottom: 65px;
}

.xfr-sector-case__intro h3 {
	margin-bottom: 14px;
	font-size: clamp(28px, 2.9vw, 50px);
}

.xfr-sector-case__intro div > p {
	color: var(--xfr-blue-bright);
	font-weight: 700;
}

.xfr-sector-case__body {
	max-width: 980px;
}

.xfr-sector-block {
	padding: clamp(42px, 6vw, 74px) 0;
	border-top: 1px solid var(--xfr-line);
}

.xfr-sector-block:first-child {
	padding-top: 0;
	border-top: 0;
}

.xfr-sector-block h3 {
	margin-bottom: 26px;
	font-size: clamp(24px, 2.1vw, 36px);
}

.xfr-sector-block.xfr-sector-block--collapsible {
	padding: 0;
	border-top: 0;
}

.xfr-sector-block__summary {
	display: flex;
	padding: clamp(24px, 3vw, 36px) clamp(20px, 3vw, 32px);
	border-block: 2px solid #fff;
	background: transparent;
	color: var(--xfr-navy);
	list-style: none;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	cursor: pointer;
}

.xfr-sector-block__summary::-webkit-details-marker {
	display: none;
}

.xfr-sector-block__summary h3 {
	margin: 0;
	color: inherit;
}

.xfr-sector-block__summary:hover {
	color: var(--xfr-blue-bright);
}

.xfr-sector-block__summary:focus-visible {
	outline: 2px solid var(--xfr-blue-bright);
	outline-offset: 4px;
	border-radius: 4px;
}

.xfr-sector-block__summary svg {
	color: inherit;
	flex-shrink: 0;
	transition: transform .2s ease;
}

.xfr-sector-block__details[open] > .xfr-sector-block__summary svg {
	transform: rotate(180deg);
}

.xfr-sector-block__details > .xfr-sector-block__content {
	padding: 28px clamp(20px, 3vw, 32px) clamp(32px, 4vw, 48px);
}

.xfr-sector-block p,
.xfr-sector-block li {
	color: var(--xfr-muted);
	font-size: var(--xfr-text-body);
	line-height: 1.82;
}

.xfr-sector-block p:last-child {
	margin-bottom: 0;
}

.xfr-sector-block ul {
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
}

.xfr-sector-block li {
	position: relative;
	padding: 12px 0 12px 28px;
	border-top: 1px solid var(--xfr-line);
}

.xfr-sector-block li::before {
	position: absolute;
	left: 0;
	color: var(--xfr-blue-bright);
	content: "↗";
}

.xfr-partner-group {
	padding: clamp(144px, 12vw, 192px) 0;
	border-top: 1px solid var(--xfr-line);
}

.xfr-partner-group:nth-of-type(odd) {
	background: var(--xfr-mist);
}

.xfr-partner-group__heading {
	max-width: 900px;
	margin-bottom: clamp(64px, 6vw, 88px);
}

.xfr-partner-group__heading h2 {
	margin-bottom: 0;
	font-size: clamp(27px, 2.7vw, 48px);
}

.xfr-partner-group__heading p {
	max-width: 820px;
	margin: clamp(28px, 3vw, 40px) 0 0;
	color: var(--xfr-muted);
}

.xfr-logo-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
}

.xfr-logo-item {
	display: grid;
	min-width: 0;
	min-height: 150px;
	padding: 20px;
	border: 0;
	border-radius: 16px;
	background: #fff;
	place-items: center;
}

.xfr-logo-item--dark {
	background: var(--xfr-navy);
}

.xfr-logo-item img,
.xfr-logo-item svg {
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 80px;
	object-fit: contain;
	object-position: center;
}

.xfr-logo-item svg {
	display: block;
	overflow: hidden;
}

.xfr-logo-item strong {
	color: var(--xfr-navy);
	font-size: 16px;
	text-align: center;
}

.xfr-journal-lead {
	padding-bottom: 70px;
}

.xfr-journal-lead__grid {
	display: grid;
	grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
	gap: clamp(44px, 7vw, 100px);
	align-items: center;
}

.xfr-journal-lead__image {
	position: relative;
	min-height: 620px;
	border-radius: var(--xfr-radius);
	background-position: center;
	background-size: cover;
	box-shadow: var(--xfr-shadow);
}

.xfr-journal-lead__copy time,
.xfr-news-card time,
.xfr-article time {
	color: var(--xfr-muted);
	font-size: var(--xfr-text-small);
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.xfr-site .xfr-journal-lead__copy h2 {
	margin: 20px 0 28px;
	font-size: clamp(28px, 2.25vw, 40px);
	line-height: 1.25;
}

.xfr-journal-lead__copy > p {
	margin-bottom: 34px;
	color: var(--xfr-muted);
}

.xfr-news-list {
	background: var(--xfr-mist);
}

.xfr-news-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 48px;
}

.xfr-news-card {
	display: grid;
	overflow: hidden;
	min-height: 290px;
	border: 1px solid var(--xfr-line);
	border-radius: 22px;
	background: #fff;
	grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr);
}

.xfr-news-card__image {
	min-height: 100%;
	background-position: center;
	background-size: cover;
}

.xfr-news-card > div {
	display: flex;
	padding: 28px;
	flex-direction: column;
}

.xfr-news-card h3 {
	margin: 12px 0;
	font-size: 23px;
}

.xfr-news-card p {
	color: var(--xfr-muted);
	font-size: var(--xfr-text-card);
}

.xfr-news-card__links {
	display: flex;
	margin-top: auto;
	font-size: var(--xfr-text-small);
	font-weight: 800;
	align-items: center;
	justify-content: space-between;
}

.xfr-news-card__links a:first-child {
	color: var(--xfr-blue-bright);
}

.xfr-news-card__links a:last-child {
	display: grid;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: #0a66c2;
	color: #fff;
	font-size: var(--xfr-text-small);
	place-items: center;
}

/* Editorial cards belong only to the secondary article list on Blog. */
.xfr-blog-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	align-items: stretch;
}

.xfr-blog-card {
	display: flex;
	min-width: 0;
	overflow: hidden;
	flex-direction: column;
	border: 1px solid var(--xfr-line);
	border-radius: 18px;
	background: #fff;
}

.xfr-blog-card__image {
	display: block;
	flex: none;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #eaf0f7;
}

.xfr-blog-card__image .xfr-blog-card__thumbnail {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.xfr-blog-card__content {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 16px;
	padding: 24px;
}

.xfr-blog-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 12px;
	align-items: baseline;
	color: var(--xfr-muted);
	font-size: 12px;
	font-weight: 500;
	line-height: 1.5;
}

.xfr-blog-card__category {
	color: var(--xfr-blue-bright);
	font-weight: 700;
}

.xfr-site .xfr-blog-card__title {
	margin: 0;
	padding: 0;
	color: var(--xfr-navy);
	font-size: clamp(22px, 1.8vw, 26px);
	line-height: 1.28;
	overflow-wrap: anywhere;
}

.xfr-site .xfr-blog-card__excerpt {
	margin: 0;
	color: var(--xfr-muted);
	font-size: 15px;
	line-height: 1.7;
}

.xfr-blog-card__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 14px;
	margin-top: auto;
	padding-top: 10px;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.4;
}

.xfr-blog-card__read,
.xfr-blog-card__share {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 32px;
}

.xfr-site .xfr-blog-card__read {
	color: var(--xfr-blue-bright);
}

.xfr-site .xfr-blog-card__share {
	color: var(--xfr-muted);
	font-weight: 500;
}

.xfr-blog-card__title a:hover,
.xfr-blog-card__read:hover,
.xfr-blog-card__share:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.xfr-blog-card a:focus-visible {
	outline: 2px solid var(--xfr-blue-bright);
	outline-offset: 3px;
}

.xfr-blog-card__image:focus-visible {
	outline-offset: -4px;
}

@media (max-width: 1100px) {
	.xfr-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
	.xfr-blog-grid { grid-template-columns: minmax(0, 1fr); }
	.xfr-blog-card__content { padding: 22px; }
}

@media (pointer: coarse) {
	.xfr-blog-card__read,
	.xfr-blog-card__share { min-height: 44px; }
}

.xfr-article__header {
	padding: clamp(110px, 12vw, 190px) 0 90px;
	background: var(--xfr-navy);
}

.xfr-article__header time {
	color: rgba(255, 255, 255, .6);
}

.xfr-article__header h1 {
	max-width: 1100px;
	margin: 24px 0 32px;
	color: #fff;
	font-size: clamp(36px, 4.2vw, 76px);
}

.xfr-article__header .xfr-share-link {
	color: #fff;
}

.xfr-article__image {
	width: min(1380px, calc(100% - 64px));
	min-height: clamp(380px, 56vw, 760px);
	margin: 70px auto 0;
	border-radius: var(--xfr-radius);
	background-position: center;
	background-size: cover;
}

.xfr-article__body {
	width: min(860px, calc(100% - 64px));
	padding: 90px 0;
	font-size: var(--xfr-text-body);
}

.xfr-article__body h2,
.xfr-article__body h3 {
	margin: 2.2em 0 .7em;
}

.xfr-article__body p,
.xfr-article__body li {
	color: #43536a;
}

.xfr-article__body img {
	height: auto;
	margin: 38px auto;
	border-radius: 18px;
}

.xfr-article__footer {
	display: flex;
	padding-bottom: 100px;
	align-items: center;
	justify-content: space-between;
}

.xfr-contact-banner {
	position: relative;
	display: flex;
	min-height: 420px;
	background-position: center 35%;
	background-size: cover;
	align-items: end;
}

.xfr-contact-banner .xfr-container {
	position: relative;
	padding-bottom: 54px;
}

.xfr-contact-banner p {
	max-width: 700px;
	margin-bottom: 0;
	color: #fff;
	font-size: clamp(25px, 2.7vw, 46px);
	font-weight: 700;
	letter-spacing: -.035em;
	line-height: 1.2;
}

.xfr-contact-layout__grid {
	display: grid;
	grid-template-columns: .9fr 1.1fr;
	gap: clamp(50px, 8vw, 120px);
}

.xfr-contact-details address {
	margin-bottom: 18px;
	font-size: 17px;
	font-style: normal;
}

.xfr-contact-details > a {
	color: var(--xfr-blue-bright);
	font-weight: 800;
}

.xfr-map {
	overflow: hidden;
	height: 390px;
	margin-top: 44px;
	border-radius: 22px;
	background: var(--xfr-ice);
}

.xfr-map iframe {
	width: 100%;
	height: 100%;
	border: 0;
}

.xfr-map-directions {
	margin-top: 16px;
}

.xfr-contact-form-wrap > p {
	color: var(--xfr-muted);
}

.xfr-contact-form-wrap form {
	margin-top: 34px;
}

.xfr-contact-form-wrap label {
	display: block;
	margin-bottom: 16px;
	color: var(--xfr-navy);
	font-size: var(--xfr-text-small);
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.xfr-contact-form-wrap input,
.xfr-contact-form-wrap textarea {
	width: 100%;
	margin-top: 8px;
	padding: 15px 17px;
	border: 1px solid var(--xfr-line);
	border-radius: 10px;
	background: #ced9ea;
	color: var(--xfr-ink);
	font: inherit;
	text-transform: none;
}

.xfr-contact-form-wrap textarea {
	min-height: 150px;
	resize: vertical;
}

.xfr-contact-form-wrap .xfr-form-field {
	margin-bottom: 14px;
}

.xfr-contact-form-wrap .xfr-form-field input,
.xfr-contact-form-wrap .xfr-form-field textarea {
	margin-top: 0;
	padding: 17px 19px;
	border: 0;
	border-radius: 4px;
	background: #ced9ea;
}

.xfr-contact-form-wrap .xfr-form-field textarea {
	min-height: 180px;
}

.xfr-field-row {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}

.xfr-contact-form-wrap input[type="submit"] {
	width: auto;
	padding: 14px 26px;
	border-color: var(--xfr-blue-bright);
	border-radius: 999px;
	background: var(--xfr-blue-bright);
	color: #fff;
	font-size: var(--xfr-text-small);
	font-weight: 800;
	text-transform: none;
}

.xfr-footer {
	padding: 78px 0 calc(26px + var(--xfr-cookie-space, 0px));
	background: var(--xfr-navy-deep);
	color: rgba(255, 255, 255, .68);
}

.xfr-footer__top {
	display: grid;
	padding-bottom: 70px;
	grid-template-columns: 2fr .7fr .7fr;
	gap: 70px;
}

.xfr-footer__top > div:first-child {
	max-width: 520px;
}

.xfr-footer img {
	width: 255px;
	height: auto;
	margin-bottom: 28px;
	filter: brightness(0) invert(1);
}

.xfr-footer__top a {
	display: block;
	margin: 10px 0;
	color: #fff;
	font-size: 16px;
}

.xfr-footer__label {
	margin-bottom: 24px;
	color: #edf2fa;
	font-size: var(--xfr-text-small);
	font-weight: 800;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.xfr-footer__bottom {
	display: flex;
	padding-top: 24px;
	border-top: 1px solid rgba(255, 255, 255, .12);
	font-size: var(--xfr-text-small);
	justify-content: space-between;
}

.xfr-footer__legal {
	display: flex;
	padding-top: 18px;
	gap: 12px 28px;
	flex-wrap: wrap;
	font-size: var(--xfr-text-small);
}
.xfr-footer__legal a { padding-block: 8px; color: #fff; }
.xfr-footer__legal a:hover,
.xfr-footer__legal a[aria-current="page"] { text-decoration: underline; text-underline-offset: 5px; }
.xfr-footer__legal a:focus-visible { outline: 2px solid #a9cffd; outline-offset: 4px; }

.xfr-legal__content {
	max-width: 940px;
	font-size: 17px;
	line-height: 1.8;
	overflow-wrap: anywhere;
}
.xfr-legal__content p { margin-bottom: 24px; }
.xfr-legal__content ul,
.xfr-legal__content ol { margin: 24px 0; padding-left: 28px; }
.xfr-legal__content ul { list-style: disc; }
.xfr-legal__content ol { list-style: decimal; }
.xfr-legal__content li { margin-bottom: 14px; }
.xfr-legal__content p:has(> strong:only-child) { margin-top: 38px; margin-bottom: 18px; }
.xfr-site .xfr-legal__content a { color: #295b9a; text-decoration: underline; text-underline-offset: 3px; }
.xfr-legal__content a:focus-visible { outline: 2px solid var(--xfr-blue-bright); outline-offset: 3px; }
.xfr-site .xfr-legal__content h2,
.xfr-site .xfr-legal__content h3 { margin-block: 38px 20px; font-size: 28px; line-height: 1.3; }

/* Keep the original notice and consent behavior, styled for the refreshed site. */
.xfr-body .l-cookie {
	padding: 18px max(24px, calc((100vw - 1280px) / 2));
	border-top: 1px solid var(--xfr-line);
	background: #fff;
	color: var(--xfr-ink);
	font-family: Montserrat, Inter, "Segoe UI", Arial, sans-serif;
	font-size: 14px;
	line-height: 1.6;
	gap: 24px;
	box-shadow: 0 -8px 32px rgba(20, 39, 66, .12);
}
.xfr-body .l-cookie-message { max-width: 1080px; margin: 0; }
.xfr-body .l-cookie-message a { color: #295b9a; text-decoration: underline; text-underline-offset: 3px; }
.xfr-body .l-cookie-message .xfr-cookie-policy-link { margin-left: 14px; white-space: nowrap; }
.xfr-body .l-cookie #us-set-cookie {
	min-height: 44px;
	margin: 0;
	padding: 12px 24px;
	border-radius: 10px;
	background: var(--xfr-navy);
	color: #fff;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.5;
}
.xfr-body .l-cookie #us-set-cookie:hover { background: var(--xfr-navy-deep); }
.xfr-body .l-cookie a:focus-visible { outline: 2px solid var(--xfr-blue-bright); outline-offset: 4px; }
@media (max-width: 640px) {
	.xfr-body .l-cookie { padding: 16px 18px; flex-wrap: wrap; justify-content: flex-start; gap: 14px; }
	.xfr-body .l-cookie #us-set-cookie { margin-left: auto; }
}

.xfr-reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity .7s ease, transform .7s ease;
}

.xfr-reveal.is-visible {
	opacity: 1;
	transform: none;
}

@keyframes xfr-fade {
	from { opacity: 0; transform: translateY(10px); }
	to { opacity: 1; transform: none; }
}

/* Desktop layout with a readable heading and body-text hierarchy. */
@media (min-width: 1200px) and (min-aspect-ratio: 4/3) {
	.xfr-site h1 { font-size: clamp(48px, 3.8vw, 74px); }
	.xfr-site h2 { font-size: clamp(36px, 3vw, 56px); }
	.xfr-site h3 { font-size: clamp(22px, 1.7vw, 28px); }
	.xfr-container { width: min(1280px, calc(100% - 80px)); }
	.xfr-news-list > .xfr-container { width: min(1600px, calc(100% - 80px)); }
	.xfr-section { padding: 88px 0; }
	.xfr-section-heading { margin-bottom: 52px; }
	.xfr-section-heading--split { gap: 72px; }

	.xfr-header { height: 76px; }
	.xfr-header__inner { width: min(1360px, calc(100% - 64px)); }
	.xfr-brand img { height: 29px; }
	.xfr-nav { gap: 30px; }

	.xfr-home-hero {
		min-height: max(980px, calc(100svh - 76px));
		padding: 150px 0 300px;
	}
	.xfr-home-hero__content {
		margin-inline: max(40px, calc((100vw - min(1280px, calc(100vw - 80px))) / 2));
	}
	.xfr-home-hero__content h1 {
		max-width: 1160px;
		margin-bottom: 20px;
		font-size: clamp(58px, 5vw, 88px);
		line-height: 1.08;
	}
	.xfr-home-hero__content > p {
		margin-bottom: 28px;
		font-size: clamp(18px, 1.2vw, 21px);
	}

	.xfr-services-preview__photo { height: 640px; }
	.xfr-service-cards { margin-top: -104px; }
	.xfr-service-card { min-height: 360px; padding: 28px 25px; }
	.xfr-why__grid article { min-height: 205px; padding: 28px; }

	.xfr-page-hero { padding: 104px 0 82px; }
	.xfr-page-hero h1 { max-width: 1040px; }
	.xfr-anchor-nav { top: 76px; }
	body.admin-bar .xfr-anchor-nav { top: 108px; }
	.xfr-anchor-nav a { min-height: 60px; padding: 12px 20px; }
	.xfr-service-detail { scroll-margin-top: 136px; }
	.xfr-service-detail__grid { gap: 0 48px; }
	.xfr-service-detail__summary h2 { font-size: clamp(34px, 2.7vw, 50px); }
	.xfr-capability { padding: 18px 22px; }
	.xfr-video-card { min-width: min(500px, 58vw); }

	.xfr-team-intro__grid { gap: 84px; }
	.xfr-site .xfr-team-intro h2 { font-size: clamp(26px, 2.1vw, 38px); }

	.xfr-sector-case { scroll-margin-top: 136px; }
	.xfr-sector-case__header { margin-bottom: 64px; padding: 30px 0; }
	.xfr-sector-case__header h2 { font-size: clamp(34px, 2.6vw, 48px); }
	.xfr-sector-case__intro { margin-bottom: 46px; }
	.xfr-sector-case__intro h3 { font-size: clamp(28px, 2.3vw, 42px); }
	.xfr-sector-block { padding: 44px 0; }
	.xfr-sector-block h3 { font-size: clamp(22px, 1.7vw, 31px); }

	.xfr-logo-item { min-height: 128px; }
	.xfr-logo-item img, .xfr-logo-item svg { max-height: 68px; }
	.xfr-journal-lead { padding-bottom: 54px; }
	.xfr-journal-lead__grid { gap: 72px; }
	.xfr-journal-lead__image { min-height: 500px; }
	.xfr-news-card { min-height: 260px; }

	.xfr-article__header { padding: 104px 0 68px; }
	.xfr-article__header h1 { font-size: clamp(38px, 3.2vw, 60px); }
	.xfr-article__image { min-height: 580px; margin-top: 54px; }
	.xfr-article__body { padding: 70px 0; }
	.xfr-contact-banner { min-height: 360px; }
	.xfr-contact-layout__grid { gap: 84px; }
	.xfr-map { height: 340px; }
	.xfr-footer { padding-top: 60px; }
	.xfr-footer__top { padding-bottom: 54px; }
}

@media (max-width: 1180px) {
	.xfr-nav { gap: 18px; }
	.xfr-nav a { font-size: var(--xfr-text-small); }
	.xfr-service-cards { margin-inline: 20px; grid-template-columns: repeat(2, 1fr); }
	.xfr-service-card { min-height: 350px; }
	.xfr-sector-tile { flex-basis: calc((100% - 80px) / 5); }
	.xfr-logo-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Keep the full navigation readable with the Portfolio link on small desktops. */
@media (min-width: 921px) and (max-width: 1050px) {
	.xfr-header__inner { gap: 12px; }
	.xfr-brand { flex-shrink: 0; }
	.xfr-brand img { height: 25px; }
	.xfr-nav { gap: 8px; }
	.xfr-nav > a, .xfr-nav__item > a { white-space: nowrap; }
}

@media (max-width: 920px) {
	.xfr-container { width: min(100% - 36px, 1380px); }
	.xfr-news-grid { grid-template-columns: minmax(0, 1fr); }
	.xfr-header { height: 72px; }
	.xfr-brand img { height: 26px; }
	.xfr-menu-button { display: block; }
	.xfr-nav {
		position: fixed;
		top: 72px;
		right: 0;
		left: 0;
		display: none;
		padding: 24px;
		background: var(--xfr-navy-deep);
		box-shadow: 0 22px 44px rgba(0, 0, 0, .18);
		flex-direction: column;
		align-items: flex-start;
	}
	body.admin-bar .xfr-nav { top: 104px; }
	.xfr-nav.is-open { display: flex; }
	.xfr-nav a { width: 100%; padding: 9px 0; font-size: var(--xfr-text-small); }
	.xfr-nav { max-height: calc(100dvh - 72px); overflow-y: auto; }
	body.admin-bar .xfr-nav { max-height: calc(100dvh - 118px); }
	.xfr-nav__item { width: 100%; flex-wrap: wrap; }
	.xfr-nav__item.is-open::after { display: none; }
	.xfr-nav__item > a { width: auto; flex: 1; }
	.xfr-site .xfr-nav__toggle { width: 44px; }
	.xfr-nav__submenu {
		position: static;
		width: 100%;
		max-width: none;
		max-height: none;
		margin-top: 16px;
		padding: 8px;
		border-radius: 12px;
		box-shadow: none;
		flex-basis: 100%;
	}
	.xfr-home-hero { min-height: max(900px, calc(100svh - 72px)); padding-bottom: 300px; }
	.xfr-home-hero__veil { background: linear-gradient(90deg, rgba(15, 34, 59, .94), rgba(15, 34, 59, .52)); }
	.xfr-home-hero__facts { padding-inline: 18px; }
	.xfr-home-hero__facts div { padding: 26px 18px; }
	.xfr-section-heading--split,
	.xfr-about__grid,
	.xfr-service-detail__grid,
	.xfr-team-intro__grid,
	.xfr-journal-lead__grid,
	.xfr-contact-layout__grid { grid-template-columns: 1fr; }
	.xfr-service-detail__grid {
		grid-template-areas: "summary" "capabilities" "testimonial";
		grid-template-rows: auto;
		row-gap: 28px;
		align-items: start;
	}
	.xfr-service-detail__capabilities { grid-auto-rows: auto; align-content: start; }
	.xfr-service-testimonial { margin-top: 0; }
	.xfr-section.xfr-about,
	.xfr-section.xfr-testimonials { min-height: 0; }
	.xfr-section.xfr-about { padding-block: 48px; }
	.xfr-section.xfr-testimonials { padding-block: 110px 80px; }
	.xfr-sector-tile { flex-basis: calc((100% - 60px) / 4); }
	.xfr-about__grid { gap: 28px; }
	.xfr-about__logo { width: min(100%, 480px); margin-inline: auto; }
	.xfr-why__grid { grid-template-columns: 1fr; }
	.xfr-anchor-nav { top: 72px; }
	body.admin-bar .xfr-anchor-nav { top: 104px; }
	.xfr-sector-case { scroll-margin-top: 140px; }
	.xfr-logo-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.xfr-journal-lead__image { min-height: 500px; }
	.xfr-footer__top { grid-template-columns: 1.6fr 1fr 1fr; gap: 30px; }
}

@media (max-width: 640px) {
	body.admin-bar .xfr-header { top: 46px; }
	body.admin-bar .xfr-nav { top: 118px; }
	body.admin-bar .xfr-anchor-nav { top: 118px; }
	.xfr-site h1 { font-size: clamp(36px, 10vw, 52px); }
	.xfr-site h2 { font-size: clamp(28px, 8.5vw, 40px); }
	.xfr-section { padding: 76px 0; }
	.xfr-header__inner { width: calc(100% - 28px); }
	.xfr-home-hero { padding: 100px 0 460px; }
	.xfr-home-hero__content h1 { font-size: clamp(36px, 10.5vw, 50px); }
	.xfr-home-hero__facts { grid-template-columns: 1fr; }
	.xfr-home-hero__facts div { padding: 24px; border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, .1); }
	.xfr-home-hero__facts strong { font-size: 30px; }
	.xfr-home-hero__facts span { font-size: 16px; }
	.xfr-section.xfr-about { padding-block: 36px; }
	.xfr-section.xfr-testimonials { padding-block: 96px 64px; }
	.xfr-testimonials + .xfr-recent-posts { padding-top: 36px; }
	.xfr-site .xfr-about h2 { margin-bottom: 20px; }
	.xfr-checkline { gap: 0 16px; }
	.xfr-about__logo { width: min(100%, 360px); }
	.xfr-service-cards { margin: -72px 8px 0; grid-template-columns: 1fr; }
	.xfr-service-card { min-height: auto; }
	.xfr-services-preview__photo { height: 360px; }
	.xfr-sector-tile { flex-basis: calc((100% - 20px) / 2); min-height: 192px; padding: 20px 8px; }
	.xfr-sector-tile__icon,
	.xfr-sector-tile svg { width: 64px; height: 64px; }
	.xfr-action-box__inner { grid-template-columns: 1fr; }
	.xfr-action-box__buttons { flex-direction: column; align-items: stretch; }
	.xfr-page-hero { padding: 100px 0 80px; }
	.xfr-anchor-nav a { padding: 12px 16px; }
	.xfr-service-detail { padding-block: 48px; }
	.xfr-capability { padding: 18px 20px; }
	.xfr-team-profile { grid-template-columns: 1fr; gap: 32px; }
	.xfr-team-profile__portrait { width: min(100%, 360px); justify-self: center; }
	.xfr-logo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.xfr-logo-item { min-height: 120px; padding: 14px; }
	.xfr-news-card { grid-template-columns: 1fr; }
	.xfr-news-card__image { min-height: 230px; }
	.xfr-journal-lead__image { min-height: 380px; }
	.xfr-testimonial-page { grid-template-columns: 1fr; grid-template-rows: auto; row-gap: 32px; }
	.xfr-testimonial { min-height: auto; grid-row: auto; grid-template-rows: auto; row-gap: 16px; }
	.xfr-testimonial__brand[aria-hidden="true"] { display: none; }
	.xfr-article__image { width: calc(100% - 36px); }
	.xfr-article__body { width: calc(100% - 36px); }
	.xfr-article__footer { gap: 24px; flex-direction: column; align-items: flex-start; }
	.xfr-contact-banner { min-height: 320px; }
	.xfr-field-row { grid-template-columns: 1fr; gap: 0; }
	.xfr-footer__top { grid-template-columns: 1fr; }
	.xfr-footer__bottom { gap: 14px; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
	.xfr-nav__submenu { animation: none; }
	.xfr-nav__toggle svg { transition: none; }
	html { scroll-behavior: auto; }
	.xfr-reveal { opacity: 1; transform: none; transition: none; }
	.xfr-home-hero__slide { transition: none; }
	.xfr-testimonial-track { transition: none; }
}

/* Link colours follow their surface, including nested filled and white CTAs. */
.xfr-site {
	--xfr-link-color: var(--xfr-ink);
	--xfr-link-hover-color: var(--xfr-ink);
}

.xfr-site :is(.xfr-header, .xfr-footer, .xfr-page-hero, .xfr-article__header, .xfr-action-box, .xfr-why, .xfr-home-hero, .xfr-sector-case__header, .xfr-contact-banner) {
	--xfr-link-color: #fff;
	--xfr-link-hover-color: var(--xfr-ice);
}

.xfr-site .xfr-header { --xfr-link-color: rgba(255, 255, 255, .82); }
.xfr-site .xfr-nav__submenu { --xfr-link-color: #fff; }
.xfr-site .xfr-nav a.is-active { --xfr-link-color: #fff; }

.xfr-view-home .xfr-action-box,
.xfr-site .xfr-home-hero--revolution {
	--xfr-link-color: var(--xfr-ink);
	--xfr-link-hover-color: var(--xfr-ink);
}

.xfr-site a[href]:not(.xfr-button):not(.xfr-home-slides__button) {
	color: var(--xfr-link-color);
}

.xfr-site a[href]:not(.xfr-button):not(.xfr-home-slides__button):is(:hover, :focus-visible) {
	color: var(--xfr-link-hover-color);
}

.xfr-site a.xfr-button--light,
.xfr-site a.xfr-button--light:visited {
	color: var(--xfr-ink);
}

.xfr-site a.xfr-button[href]:is(:hover, :focus-visible),
.xfr-site a.xfr-home-slides__button[href]:is(:hover, :focus-visible) {
	color: var(--xfr-ice);
}

.xfr-site a.xfr-button--light[href]:is(:hover, :focus-visible) {
	background: var(--xfr-navy-deep);
}

.xfr-body .l-cookie-message a:not(#us-set-cookie),
.xfr-body .l-cookie-message a:not(#us-set-cookie):is(:hover, :focus-visible) {
	color: var(--xfr-ink);
}

.xfr-body .l-cookie #us-set-cookie:is(:hover, :focus-visible) {
	color: var(--xfr-ice);
}
