/**
 * PREXA365 widget styles.
 *
 * Colours come from the theme's :root tokens, with literal fallbacks so the
 * widgets still look right if the plugin is used with another theme.
 */

.px-section {
	--px-accent: var(--px-red, #d30d27);
	width: 100%;
}

/* ---------------------------------------------------------- Section heading */

.px-head {
	max-width: 820px;
	margin-bottom: 44px;
}

.px-head--center {
	margin-inline: auto;
	text-align: center;
}

.px-eyebrow {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 16px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--px-red, #d30d27);
}

.px-head--center .px-eyebrow,
.px-eyebrow--center {
	justify-content: center;
}

.px-eyebrow__bar {
	width: 24px;
	height: 3px;
	border-radius: 2px;
	background: currentColor;
	flex: none;
}

.px-head__title {
	margin: 0 0 16px;
	font-size: clamp(1.9rem, 3.2vw, 3.25rem);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.02em;
	color: var(--px-navy, #101b3f);
}

.px-head__intro {
	margin: 0;
	font-size: 1rem;
	line-height: 1.75;
	color: var(--px-muted, #6b7280);
}

.px-footnote {
	margin: 28px 0 0;
	text-align: center;
	font-size: 0.85rem;
	color: var(--px-muted, #6b7280);
}

.px-section__cta {
	margin-top: 44px;
	text-align: center;
}

/* ------------------------------------------------------------------- Grids */

.px-grid {
	display: grid;
	gap: 24px;
}

.px-grid--tight { gap: 16px; }

.px-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.px-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.px-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (max-width: 1024px) {
	.px-grid--3,
	.px-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
	.px-grid--2,
	.px-grid--3,
	.px-grid--4 { grid-template-columns: minmax(0, 1fr); }
}

/* ------------------------------------------------------------------- Cards */

.px-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--px-border, #e5e7eb);
	border-radius: 20px;
	padding: 28px;
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.px-card:hover {
	transform: translateY(-4px);
	border-color: color-mix(in srgb, var(--px-accent) 35%, var(--px-border, #e5e7eb));
	box-shadow: 0 18px 40px rgba(16, 27, 63, 0.08);
}

.px-card__top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 20px;
}

.px-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	margin-bottom: 20px;
	font-size: 18px;
	color: #fff;
	background: var(--px-accent);
	flex: none;
}

.px-card__top .px-card__icon { margin-bottom: 0; }

.px-card--industry .px-card__icon {
	color: var(--px-accent);
	background: color-mix(in srgb, var(--px-accent) 12%, #fff);
}

.px-card__title {
	margin: 0 0 12px;
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.35;
	color: var(--px-navy, #101b3f);
}

.px-card__title a { color: inherit; text-decoration: none; }
.px-card__title a:hover { color: var(--px-accent); }

.px-card__text {
	margin: 0 0 24px;
	font-size: 0.875rem;
	line-height: 1.7;
	color: var(--px-muted, #6b7280);
}

.px-card__text--list { font-size: 0.8125rem; }

.px-card__meta {
	margin: 0 0 10px;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--px-muted-soft, #737a8f);
}

.px-card__media { display: block; margin: -28px -28px 24px; }

.px-card__media img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: 20px 20px 0 0;
}

.px-card__body { display: contents; }

.px-card__stat {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin: 0 0 20px;
}

.px-card__stat-value {
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--px-accent);
}

.px-card__stat-label {
	font-size: 0.8125rem;
	color: var(--px-muted, #6b7280);
}

/* Push the "learn more" link to the bottom so cards in a row line up. */
.px-card .px-link { margin-top: auto; }

/* ------------------------------------------------------- Links and buttons */

.px-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--px-red, #d30d27);
	text-decoration: none;
}

.px-link:hover { text-decoration: none; }

.px-link__arrow { transition: transform 0.2s ease; display: inline-flex; align-items: center; }
.px-link__arrow .px-svg { width: 12px; height: 10px; }
.px-subscribe__button .px-svg { width: 14px; height: 14px; }
.px-link:hover .px-link__arrow { transform: translateX(4px); }

.px-button {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 26px;
	border-radius: 999px;
	font-size: 0.875rem;
	font-weight: 600;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.px-button--solid {
	background: var(--px-red, #d30d27);
	color: #fff;
	border: 1px solid var(--px-red, #d30d27);
}

.px-button--solid:hover { background: var(--px-navy, #101b3f); border-color: var(--px-navy, #101b3f); }

.px-button--outline {
	background: transparent;
	color: var(--px-navy, #101b3f);
	border: 1px solid var(--px-navy, #101b3f);
}

.px-button--outline:hover { background: var(--px-navy, #101b3f); color: #fff; }

.px-pill {
	display: inline-flex;
	align-items: center;
	padding: 5px 12px;
	border-radius: 999px;
	background: var(--px-surface-alt, #f7f7fb);
	font-size: 0.6875rem;
	font-weight: 500;
	color: var(--px-muted, #6b7280);
	white-space: nowrap;
}

.px-pill--dark {
	background: rgba(255, 255, 255, 0.12);
	color: rgba(255, 255, 255, 0.85);
}

.px-chip {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 14px 18px;
	border: 1px solid var(--px-border, #e5e7eb);
	border-radius: 14px;
	background: #fff;
	text-decoration: none;
	color: var(--px-navy, #101b3f);
	font-size: 0.875rem;
	font-weight: 500;
}

.px-chip:hover { border-color: var(--px-accent); }

.px-chip__icon { color: var(--px-accent); }

/* -------------------------------------------------------------------- Tabs */

.px-tabs__nav {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 4px;
	margin: 0 auto 40px;
	padding: 6px;
	border: 1px solid var(--px-border, #e5e7eb);
	border-radius: 999px;
	background: #fff;
	width: fit-content;
	max-width: 100%;
}

.px-tab {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 20px;
	border: 0;
	border-radius: 999px;
	background: transparent;
	font: inherit;
	font-size: 0.8125rem;
	font-weight: 500;
	color: var(--px-muted, #6b7280);
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}

.px-tab:hover { color: var(--px-navy, #101b3f); }

.px-tab.is-active {
	background: var(--px-red, #d30d27);
	color: #fff;
	font-weight: 600;
}

.px-tab__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 18px;
	padding-inline: 5px;
	border-radius: 999px;
	background: var(--px-surface-alt, #f7f7fb);
	font-size: 0.625rem;
	font-weight: 600;
	color: var(--px-muted, #6b7280);
}

.px-tab.is-active .px-tab__count {
	background: rgba(255, 255, 255, 0.25);
	color: #fff;
}

.px-tabs__panel[hidden] { display: none; }

/* ------------------------------------------------------------ Integrations */

.px-integrations__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 40px;
	margin-bottom: 44px;
}

.px-integrations__head .px-head { margin-bottom: 0; }

.px-integrations__body {
	display: grid;
	grid-template-columns: minmax(0, 0.38fr) minmax(0, 1fr);
	gap: 24px;
	align-items: start;
}

@media (max-width: 1024px) {
	.px-integrations__head { flex-direction: column; align-items: flex-start; }
	.px-integrations__body { grid-template-columns: minmax(0, 1fr); }
}

.px-panel {
	padding: 28px;
	border-radius: 20px;
	/* Figma "Categories Panel": linear #101b3f -> #1c2a5e on the 135deg diagonal. */
	background: linear-gradient(135deg, #101b3f 0%, #1c2a5e 100%);
	color: #fff;
}

.px-panel__title { margin: 0 0 8px; font-size: 1.1rem; color: #fff; }

.px-panel__text {
	margin: 0 0 22px;
	font-size: 0.8125rem;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.65);
}

.px-panel__list { list-style: none; margin: 0; padding: 0; }

.px-panel__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.px-panel__row:last-child { border-bottom: 0; }

.px-panel__name {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: #fff;
	font-size: 0.875rem;
	font-weight: 500;
	text-decoration: none;
}

.px-panel__name:hover { color: #fff; }

.px-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--px-red, #d30d27);
	flex: none;
}

.px-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 96px;
	padding: 18px;
	border: 1px solid var(--px-border, #e5e7eb);
	border-radius: 14px;
	background: #fff;
	text-decoration: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.px-logo:hover {
	border-color: color-mix(in srgb, var(--px-navy, #101b3f) 30%, #fff);
	box-shadow: 0 10px 24px rgba(16, 27, 63, 0.06);
}

.px-logo__img { max-height: 40px; width: auto; object-fit: contain; }

.px-logo__wordmark {
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
	color: var(--px-navy-soft, #1f3b8a);
}

/* ------------------------------------------------------------- Logo strip */

.px-logostrip { width: 100%; }

/* The marquee track is intentionally wider than the page (the logo row is
   duplicated for a seamless loop), so the strip itself does the clipping. */
.px-logostrip--marquee { overflow: hidden; }

.px-logostrip__track { max-width: 100%; }

.px-logostrip--marquee .px-logostrip__track {
	display: flex;
	width: max-content;
	max-width: none;
}

.px-logostrip__row {
	display: flex;
	align-items: center;
	gap: 64px;
}

.px-logostrip--row .px-logostrip__row {
	flex-wrap: wrap;
	justify-content: center;
	width: 100%;
}

.px-logostrip--marquee .px-logostrip__row {
	padding-right: 64px;
	animation: px-marquee 36s linear infinite;
}

.px-logostrip--marquee:hover .px-logostrip__row { animation-play-state: paused; }

@keyframes px-marquee {
	from { transform: translateX(0); }
	to { transform: translateX(-100%); }
}

@media (prefers-reduced-motion: reduce) {
	.px-logostrip--marquee .px-logostrip__row { animation: none; }
	.px-logostrip--marquee .px-logostrip__track { width: 100%; overflow-x: auto; }
}

.px-logostrip__item img { height: 40px; width: auto; object-fit: contain; }

.px-logostrip.is-grayscale .px-logostrip__item img {
	filter: grayscale(1);
	opacity: 0.65;
	transition: filter 0.25s ease, opacity 0.25s ease;
}

.px-logostrip.is-grayscale .px-logostrip__item img:hover { filter: none; opacity: 1; }

/* ---------------------------------------------------------------- Stat bar */

.px-statbar {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 1fr;
	margin-bottom: 44px;
}

@media (max-width: 768px) {
	.px-statbar {
		grid-auto-flow: row;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.px-statbar--card {
	padding: 28px;
	border: 1px solid var(--px-border, #e5e7eb);
	border-radius: 20px;
	background: #fff;
}

.px-statbar--navy {
	padding: 28px;
	border-radius: 20px;
	background: var(--px-navy, #101b3f);
	color: #fff;
}

.px-statbar__cell { padding-inline: 24px; text-align: center; }

.px-statbar.has-dividers .px-statbar__cell + .px-statbar__cell {
	border-left: 1px solid var(--px-border, #e5e7eb);
}

.px-statbar--navy.has-dividers .px-statbar__cell + .px-statbar__cell {
	border-left-color: rgba(255, 255, 255, 0.15);
}

@media (max-width: 768px) {
	.px-statbar.has-dividers .px-statbar__cell + .px-statbar__cell { border-left: 0; }
	.px-statbar__cell { padding-block: 14px; }
}

.px-statbar__value {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin: 0 0 4px;
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--px-navy, #101b3f);
}

.px-statbar--navy .px-statbar__value { color: #fff; }

.px-statbar__star { color: #f5b301; }

.px-statbar__label {
	margin: 0;
	font-size: 0.8125rem;
	color: var(--px-muted, #6b7280);
}

.px-statbar--navy .px-statbar__label { color: rgba(255, 255, 255, 0.7); }

/* ------------------------------------------------------------ Testimonials */

.px-quote {
	display: flex;
	flex-direction: column;
	height: 100%;
	margin: 0;
	padding: 28px;
	border: 1px solid var(--px-border, #e5e7eb);
	border-radius: 20px;
	background: #fff;
}

.px-quote.is-center { border: 2px solid var(--px-red, #d30d27); }
.px-swiper .swiper-wrapper { align-items: center; }

.px-quote__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-height: 24px;
	margin-bottom: 8px;
}

.px-badge {
	display: inline-flex;
	padding: 4px 10px;
	border-radius: 6px;
	background: var(--px-red, #d30d27);
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #fff;
}

.px-stars { margin-left: auto; color: #f5b301; font-size: 0.875rem; letter-spacing: 2px; }

.px-quote__mark {
	font-size: 2.5rem;
	line-height: 1;
	color: var(--px-red, #d30d27);
}

.px-quote__text {
	margin: 12px 0 28px;
	font-size: 0.9375rem;
	line-height: 1.75;
	color: var(--px-navy, #101b3f);
	border: 0;
	padding: 0;
	quotes: none;
}

.px-quote__foot {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: auto;
	padding-top: 20px;
	border-top: 1px solid var(--px-border, #e5e7eb);
}

.px-avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	overflow: hidden;
	flex: none;
	background: var(--px-accent);
	color: #fff;
	font-size: 0.75rem;
	font-weight: 700;
}

.px-avatar--xs { width: 28px; height: 28px; font-size: 0.625rem; }

.px-avatar__img { width: 100%; height: 100%; object-fit: cover; }

.px-quote__who { display: flex; flex-direction: column; gap: 2px; min-width: 0; }

.px-quote__name { font-size: 0.875rem; font-weight: 600; color: var(--px-navy, #101b3f); }

.px-quote__role,
.px-quote__company { font-size: 0.75rem; color: var(--px-muted, #6b7280); }

.px-quote__company { color: var(--px-red, #d30d27); font-weight: 600; }

.px-joinstrip {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 44px;
	padding: 20px 28px;
	border-radius: 16px;
	background: var(--px-surface-alt, #f7f7fb);
}

.px-avatars { display: inline-flex; }

.px-avatars .px-avatar { margin-right: -8px; border: 2px solid #fff; }

.px-joinstrip__text { font-size: 0.875rem; color: var(--px-muted, #6b7280); }

/* ------------------------------------------------------------------ Swiper */

.px-swiper { position: relative; }

.px-swiper .swiper { overflow: hidden; padding-block: 4px; }

.px-swiper .swiper-slide { height: auto; }

.px-swiper__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin-top: 32px;
}

.px-swiper__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1.5px solid var(--px-navy, #101b3f);
	border-radius: 50%;
	background: #fff;
	color: var(--px-navy, #101b3f);
	font-size: 1rem;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.px-swiper__btn:hover {
	background: var(--px-navy, #101b3f);
	border-color: var(--px-navy, #101b3f);
	color: #fff;
}

.px-swiper__dots { display: flex; align-items: center; gap: 6px; }

.px-swiper__dots .swiper-pagination-bullet {
	width: 8px;
	height: 8px;
	border-radius: 999px;
	background: var(--px-border-soft, #e0e5f0);
	opacity: 1;
	transition: width 0.25s ease, background 0.25s ease;
}

.px-swiper__dots .swiper-pagination-bullet-active {
	width: 24px;
	background: var(--px-red, #d30d27);
}

.px-slider__caption {
	margin: 12px 0 0;
	font-size: 0.8125rem;
	color: var(--px-muted, #6b7280);
}

/* --------------------------------------------------------------- Accordion */

.px-accordion {
	max-width: 860px;
	margin-inline: auto;
	border: 1px solid var(--px-border, #e5e7eb);
	border-radius: 18px;
	overflow: hidden;
	background: #fff;
}

.px-accordion__item + .px-accordion__item { border-top: 1px solid var(--px-border, #e5e7eb); }

.px-accordion__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 20px 24px;
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--px-navy, #101b3f);
	cursor: pointer;
	list-style: none;
}

.px-accordion__q::-webkit-details-marker { display: none; }

.px-accordion__icon {
	position: relative;
	width: 16px;
	height: 16px;
	flex: none;
}

.px-accordion__icon::before,
.px-accordion__icon::after {
	content: '';
	position: absolute;
	inset: 50% 0 auto 0;
	height: 2px;
	border-radius: 2px;
	background: var(--px-red, #d30d27);
	transform: translateY(-50%);
	transition: transform 0.2s ease, opacity 0.2s ease;
}

.px-accordion__icon::after { transform: translateY(-50%) rotate(90deg); }

.px-accordion__item[open] .px-accordion__icon::after { opacity: 0; transform: translateY(-50%); }

.px-accordion__a {
	padding: 0 24px 22px;
	font-size: 0.875rem;
	line-height: 1.75;
	color: var(--px-muted, #6b7280);
}

.px-accordion__a p:last-child { margin-bottom: 0; }

/* --------------------------------------------------------------- Mega menu */

.px-nav {
	display: flex;
	align-items: center;
	gap: 32px;
	width: 100%;
}

.px-nav__list {
	display: flex;
	align-items: center;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.px-nav__item { position: static; }

.px-nav__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 10px 14px;
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--px-navy, #101b3f);
	text-decoration: none;
	border-radius: 8px;
	transition: color 0.2s ease;
}

.px-nav__link:hover,
.px-nav__item.is-open > .px-nav__link { color: var(--px-red, #d30d27); }

.px-nav__chevron {
	width: 8px;
	height: 8px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	transition: transform 0.2s ease;
}

.px-nav__item.is-open .px-nav__chevron { transform: translateY(1px) rotate(225deg); }

.px-nav__cta { margin-left: auto; }

.px-nav__toggle { display: none; }

.px-megamenu {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	z-index: 900;
	background: #fff;
	border-top: 1px solid var(--px-border, #e5e7eb);
	box-shadow: 0 24px 48px rgba(16, 27, 63, 0.12);
}

.px-megamenu[hidden] { display: none; }

.px-megamenu__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 280px;
	gap: 40px;
	max-width: 1400px; /* header container (1360) + its 20px gutters: the panel content lines up with the logo and the CTA edge */
	margin-inline: auto;
	padding: 36px 20px 40px;
}

.px-megamenu__cols {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 8px;
}

.px-megamenu__col { padding-inline: 16px; }

.px-megamenu__col + .px-megamenu__col { border-left: 1px solid var(--px-border, #e5e7eb); }

.px-megamenu__eyebrow {
	margin: 0 0 14px;
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--px-muted-soft, #737a8f);
}

.px-megamenu__list { list-style: none; margin: 0; padding: 0; }

.px-megamenu__link {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 9px 12px;
	border-radius: 8px;
	font-size: 0.875rem;
	color: var(--px-navy, #101b3f);
	text-decoration: none;
	transition: background 0.18s ease, color 0.18s ease;
}

.px-megamenu__link:hover {
	background: color-mix(in srgb, var(--px-red, #d30d27) 7%, #fff);
	color: var(--px-red, #d30d27);
}

.px-megamenu__icon {
	display: inline-flex;
	width: 18px;
	justify-content: center;
	color: var(--px-muted, #6b7280);
	flex: none;
}

.px-megamenu__link:hover .px-megamenu__icon { color: var(--px-red, #d30d27); }

.px-megamenu__card {
	padding: 26px;
	border-radius: 16px;
	background: linear-gradient(160deg, #f7f8fc 0%, #eef1fb 100%);
}

.px-megamenu__card-icon {
	display: block;
	width: 24px;
	height: 24px;
	margin-bottom: 18px;
	color: var(--px-red, #d30d27);
}
.px-megamenu__card-icon .px-svg { width: 100%; height: 100%; }

.px-megamenu__card-title {
	margin: 0 0 10px;
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 1.35;
	color: var(--px-navy, #101b3f);
}

.px-megamenu__card-text {
	margin: 0 0 18px;
	font-size: 0.8125rem;
	line-height: 1.6;
	color: var(--px-muted, #6b7280);
}

@media (max-width: 1024px) {
	.px-nav__toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 42px;
		height: 42px;
		margin-left: auto;
		border: 1px solid var(--px-border, #e5e7eb);
		border-radius: 10px;
		background: #fff;
		cursor: pointer;
	}

	.px-nav__toggle span,
	.px-nav__toggle span::before,
	.px-nav__toggle span::after {
		display: block;
		width: 18px;
		height: 2px;
		border-radius: 2px;
		background: var(--px-navy, #101b3f);
	}

	.px-nav__toggle span { position: relative; }

	.px-nav__toggle span::before,
	.px-nav__toggle span::after {
		content: '';
		position: absolute;
		left: 0;
	}

	.px-nav__toggle span::before { top: -6px; }
	.px-nav__toggle span::after { top: 6px; }

	.px-nav__list {
		display: none;
		flex-direction: column;
		align-items: stretch;
		width: 100%;
		order: 3;
	}

	.px-nav.is-open .px-nav__list { display: flex; }

	.px-nav { flex-wrap: wrap; }

	.px-megamenu {
		position: static;
		box-shadow: none;
		border-top: 0;
	}

	.px-megamenu__inner {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
		padding: 8px 0 20px;
	}

	.px-megamenu__col { padding-inline: 0; }
	.px-megamenu__col + .px-megamenu__col { border-left: 0; }
}

/* -------------------------------------------------------------- Subscribe */

.px-subscribe { width: 100%; max-width: 420px; }

.px-subscribe__label { margin-bottom: 12px; }

.px-subscribe--dark .px-subscribe__label { color: rgba(255, 255, 255, 0.55); }

.px-subscribe__form {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 6px;
	border-radius: 12px;
	border: 1px solid var(--px-border, #e5e7eb);
	background: #fff;
}

.px-subscribe--dark .px-subscribe__form {
	border-color: rgba(255, 255, 255, 0.14);
	background: rgba(255, 255, 255, 0.05);
}

.px-subscribe__input {
	flex: 1 1 auto;
	min-width: 0;
	padding: 10px 12px;
	border: 0;
	background: transparent;
	font: inherit;
	font-size: 0.875rem;
	color: var(--px-navy, #101b3f);
}

.px-subscribe--dark .px-subscribe__input { color: #fff; }

.px-subscribe--dark .px-subscribe__input::placeholder { color: rgba(255, 255, 255, 0.45); }

.px-subscribe__input:focus { outline: 2px solid var(--px-red, #d30d27); outline-offset: 2px; }

.px-subscribe__button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex: none;
	padding: 11px 20px;
	border: 0;
	border-radius: 8px;
	background: var(--px-red, #d30d27);
	color: #fff;
	font: inherit;
	font-size: 0.8125rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s ease;
}

.px-subscribe__button:hover { background: #b00a20; }

.px-subscribe__note,
.px-subscribe__msg {
	margin: 12px 0 0;
	font-size: 0.75rem;
	color: var(--px-muted, #6b7280);
}

.px-subscribe--dark .px-subscribe__note { color: rgba(255, 255, 255, 0.45); }

.px-subscribe__msg.is-ok { color: #10b981; font-weight: 600; }
.px-subscribe__msg.is-error { color: var(--px-red, #d30d27); font-weight: 600; }

/* ------------------------------------------------------------- Enquiry form */

.px-form { width: 100%; }

.px-form__grid {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
}

.px-form__field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1 1 100%;
	min-width: 0;
}

@media (min-width: 640px) {
	.px-form__field--50 { flex: 1 1 calc(50% - 9px); }
}

.px-form__label {
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--px-navy, #101b3f);
}

.px-form__req { margin-left: 3px; color: var(--px-red, #d30d27); }

.px-form__input {
	width: 100%;
	padding: 13px 14px;
	border: 1px solid var(--px-border, #e5e7eb);
	border-radius: 10px;
	background: #fff;
	font: inherit;
	font-size: 0.875rem;
	color: var(--px-navy, #101b3f);
}

.px-form__input::placeholder { color: #9ca3af; }

.px-form__input:focus {
	outline: none;
	border-color: var(--px-red, #d30d27);
	box-shadow: 0 0 0 3px rgba(211, 13, 39, 0.12);
}

textarea.px-form__input { resize: vertical; min-height: 110px; }

.px-form__submit {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-top: 22px;
	padding: 15px 30px;
	border: 0;
	border-radius: 999px;
	background: var(--px-red, #d30d27);
	color: #fff;
	font: inherit;
	font-size: 0.875rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s ease;
}

.px-form__submit:hover { background: var(--px-navy, #101b3f); }

.px-form__note,
.px-form__msg {
	margin: 14px 0 0;
	font-size: 0.8125rem;
	color: var(--px-muted, #6b7280);
}

.px-form__msg {
	margin: 0 0 18px;
	padding: 14px 16px;
	border-radius: 10px;
	font-weight: 600;
}

.px-form__msg.is-ok { background: rgba(16, 185, 129, 0.1); color: #0f7a5a; }
.px-form__msg.is-error { background: rgba(211, 13, 39, 0.08); color: var(--px-red, #d30d27); }

/* Honeypot — hidden from people, reachable by bots. */
.px-form__hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}


/* ===================================================================== */
/* Deep-match pass against the Figma home frame (27:3)                    */
/* ===================================================================== */

/* ---------- Split section head: heading left, button right ---------- */

.px-split-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 40px;
	margin-bottom: 44px;
}

.px-split-head .px-head { margin-bottom: 0; max-width: 620px; }

@media (max-width: 1024px) {
	.px-split-head { flex-direction: column; align-items: flex-start; }
}

/* ---------- Stat bar: hero row + 2×2 tiles + red suffix ------------- */

.px-statbar__suffix {
	font-size: 13px;
	font-weight: 700;
	color: var(--px-red, #d30d27);
	vertical-align: super;
	margin-left: 2px;
	line-height: 1;
}

.px-statbar--hero {
	justify-content: flex-start;
	grid-auto-columns: max-content;
	margin-bottom: 0;
}

.px-statbar--hero .px-statbar__cell {
	text-align: left;
	padding-inline: 20px;
}

.px-statbar--hero .px-statbar__cell:first-child { padding-left: 0; }

.px-statbar--hero .px-statbar__value {
	justify-content: flex-start;
	font-size: 26px;
	color: #0f1a40;
	margin-bottom: 4px;
}

.px-statbar--hero .px-statbar__label {
	font-size: 10px;
	font-weight: 500;
	line-height: 1.4;
	max-width: 88px;
	color: #737a8f;
}

.px-statbar--hero.has-dividers .px-statbar__cell + .px-statbar__cell {
	border-left: 1px solid #e0e5f0;
}

.px-statbar--tiles {
	grid-auto-flow: row;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin-bottom: 0;
}

.px-statbar--tiles .px-statbar__cell {
	text-align: left;
	padding: 22px 18px 18px;
	border: 1px solid var(--px-border, #e5e7eb);
	border-radius: 16px;
	background: #fbfbfe;
}

.px-statbar--tiles.has-dividers .px-statbar__cell + .px-statbar__cell { border-left: 1px solid var(--px-border, #e5e7eb); }

.px-statbar--tiles .px-statbar__value {
	justify-content: flex-start;
	font-size: 26px;
	margin-bottom: 4px;
}

.px-statbar--tiles .px-statbar__value .px-statbar__suffix {
	vertical-align: baseline;
	font-size: 26px;
	color: inherit;
	margin-left: 0;
}

.px-statbar--tiles .px-statbar__label { font-size: 13px; }

/* ---------- Case study cards ---------------------------------------- */

.px-case {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 28px 24px 22px;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 8px 28px rgba(16, 27, 63, 0.05);
	overflow: hidden;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

/* Coloured top bar the design draws across the card. */
.px-case::before {
	content: '';
	position: absolute;
	inset: 0 0 auto 0;
	height: 5px;
	background: var(--px-accent, #d30d27);
}

.px-case:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 40px rgba(16, 27, 63, 0.09);
}

.px-case__media { display: block; margin: -28px -24px 20px; }

.px-case__media img { width: 100%; aspect-ratio: 16 / 7; object-fit: cover; }

.px-case__top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 14px;
}

.px-case__index {
	font-size: 40px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--px-accent, #d30d27);
	opacity: 0.35;
}

.px-case__tag {
	padding: 5px 10px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--px-accent, #d30d27);
	background: color-mix(in srgb, var(--px-accent, #d30d27) 12%, #fff);
	white-space: nowrap;
}

.px-case__title {
	margin: 0 0 10px;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--px-navy, #101b3f);
}

.px-case__title a { color: inherit; text-decoration: none; }

.px-case__text {
	margin: 0 0 auto;
	padding-bottom: 40px;
	font-size: 14px;
	line-height: 1.7;
	color: var(--px-muted, #6b7280);
}

.px-case__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding-top: 16px;
	border-top: 1px solid var(--px-border, #e5e7eb);
}

.px-case__loc {
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-size: 13px;
	font-weight: 600;
	color: var(--px-navy, #101b3f);
}

.px-case__loc-label {
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #9ea6bd;
}

.px-case__go {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	color: var(--px-accent, #d30d27);
	background: color-mix(in srgb, var(--px-accent, #d30d27) 12%, #fff);
	text-decoration: none;
	font-size: 15px;
	transition: transform 0.2s ease;
}

.px-case__go:hover { transform: translateX(3px); }

/* ---------- Blog cards: category dot, byline, accent read link ------ */

.px-card--resource { padding: 0; overflow: hidden; }

.px-card--resource .px-card__media { margin: 0; }

.px-card--resource .px-card__media img { border-radius: 0; aspect-ratio: 16 / 8.5; }

.px-card--resource .px-card__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: 22px 24px 20px;
}

.px-card__meta--dot {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 14px;
	text-transform: none;
	letter-spacing: 0;
}

.px-card__cat {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--px-accent, #d30d27);
}

.px-card__cat::before {
	content: '';
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--px-accent, #d30d27);
}

.px-card__when {
	font-size: 12px;
	color: var(--px-muted, #6b7280);
}

.px-card__when::before { content: '·'; margin-right: 10px; color: #c2c9de; }

.px-card--resource .px-card__title { font-size: 19px; }

.px-card--resource .px-card__text { margin-bottom: 20px; }

.px-card__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: auto;
	padding-top: 16px;
	border-top: 1px solid var(--px-border, #e5e7eb);
}

.px-byline { display: inline-flex; align-items: center; gap: 10px; }

.px-avatar--sm { width: 34px; height: 34px; font-size: 11px; background: var(--px-navy, #101b3f); }

.px-byline__who { display: flex; flex-direction: column; }

.px-byline__name { font-size: 13px; font-weight: 600; color: var(--px-navy, #101b3f); }

.px-byline__role { font-size: 11px; color: var(--px-muted, #6b7280); }

.px-link--accent { color: var(--px-accent, #d30d27); }

/* ---------- Nav: 14px links, rectangular CTA, sign-in link ---------- */

.px-nav__link { font-size: 14px; color: #111827; }

.px-nav__signin {
	margin-left: auto;
	font-size: 14px;
	font-weight: 500;
	color: var(--px-navy, #101b3f);
	text-decoration: none;
	white-space: nowrap;
}

.px-nav__signin + .px-nav__cta { margin-left: 0; }

.px-nav__cta.px-button--solid {
	padding: 12px 22px;
	border-radius: 10px;
	font-size: 14px;
}

/* ---------- Trust strip: full colour, spaced-out row ---------------- */

.px-logostrip__heading {
	margin: 0 0 40px;
	text-align: center;
	font-size: 18px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #6b7280;
}

.px-logostrip--row .px-logostrip__row { justify-content: space-between; gap: 40px; }

.px-logostrip--row .px-logostrip__item img { height: 60px; }

/* ================================================== Landing-page language */

/* Pill eyebrow: white capsule, coloured dot, tracked caps. */
.px-eyebrow--pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 16px;
	padding: 7px 15px;
	border: 1px solid #e8edf5;
	border-radius: 999px;
	background: #fff;
	font-family: var(--px-font-secondary, 'Inter', sans-serif);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.1em;
	line-height: 1.2;
	color: var(--px-eyebrow, #d40d26);
}

.px-eyebrow__dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--px-eyebrow, #d40d26);
	flex: none;
}

.px-head--landing .px-head__title {
	font-family: var(--px-font-secondary, 'Inter', sans-serif);
	font-size: 38px;
	line-height: 1.2;
	letter-spacing: -0.016em;
	color: #0f142e;
}

.px-head--landing .px-head__intro {
	font-family: var(--px-font-secondary, 'Inter', sans-serif);
	font-size: 17px;
	line-height: 1.6;
	color: #59617a;
}

.px-head--landing { max-width: 900px; margin-bottom: 46px; }

@media (max-width: 768px) {
	.px-head--landing .px-head__title { font-size: 28px; }
}

/* AI agent cards. */
.px-card--agent {
	gap: 12px;
	padding: 24px 22px 22px;
	border-color: #eef1f7;
	border-radius: 18px;
	box-shadow: 0 12px 30px rgba(26, 21, 69, 0.06);
	font-family: var(--px-font-secondary, 'Inter', sans-serif);
}

.px-card__tile {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: 13px;
	font-size: 20px;
	color: #fff;
	background: linear-gradient(135deg, var(--px-grad-a, #d40d26), var(--px-grad-b, #ff6b3d));
	box-shadow: 0 5px 12px color-mix(in srgb, var(--px-grad-a, #d40d26) 32%, transparent);
	flex: none;
}

.px-card--agent .px-card__title {
	margin: 0;
	font-size: 16px;
	line-height: 1.2;
	color: #0f142e;
}

.px-badge--ai {
	align-self: flex-start;
	padding: 3px 8px;
	border-radius: 999px;
	background: #f1ecfe;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	line-height: 1.2;
	color: #6d4bf0;
}

.px-card--agent .px-card__text {
	margin: 0;
	font-size: 14px;
	line-height: 1.45;
	color: #59617a;
}

/* Navy metrics band: transparent cells, coloured 46px values. */
.px-statbar--navy {
	padding: 0;
	border-radius: 0;
	background: transparent;
	margin-bottom: 0;
}

.px-statbar--navy .px-statbar__cell { padding: 13px 24px; }

.px-statbar--navy .px-statbar__value {
	font-family: var(--px-font-secondary, 'Inter', sans-serif);
	font-size: 46px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.02em;
	gap: 0;
	margin-bottom: 10px;
	color: var(--px-stat, #ff6b7d);
}

.px-statbar--navy .px-statbar__value .px-statbar__suffix {
	position: static;
	font-size: inherit;
	vertical-align: baseline;
	color: inherit;
}

.px-statbar--navy .px-statbar__label {
	font-family: var(--px-font-secondary, 'Inter', sans-serif);
	font-size: 14px;
	font-weight: 500;
	color: #aeb6d4;
}

.px-statbar--navy.has-dividers .px-statbar__cell + .px-statbar__cell { border-left-color: #2a3357; }

/* Boxed FAQ: 820px column of separate rounded rows; open row tinted lilac. */
.px-accordion--boxed {
	max-width: 860px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	border: 0;
	border-radius: 0;
	overflow: visible;
	background: transparent;
	font-family: var(--px-font-secondary, 'Inter', sans-serif);
}

.px-accordion--boxed .px-accordion__item {
	border: 1px solid #e8ecf3;
	border-radius: 14px;
	background: #fff;
	transition: background 0.2s ease, border-color 0.2s ease;
}

.px-accordion--boxed .px-accordion__item + .px-accordion__item { border-top: 1px solid #e8ecf3; }

.px-accordion--boxed .px-accordion__item[open] {
	background: #fbfafe;
	border-color: #e7defc;
}

.px-accordion--boxed .px-accordion__q {
	padding: 22px 26px;
	font-size: 17px;
	font-weight: 600;
	color: #0f142e;
}

.px-accordion--boxed .px-accordion__icon {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: #f0f2f7;
	transition: background 0.2s ease;
}

.px-accordion--boxed .px-accordion__icon::before,
.px-accordion--boxed .px-accordion__icon::after {
	inset: 50% 8px auto 8px;
	background: #8c94a8;
}

.px-accordion--boxed .px-accordion__item[open] .px-accordion__icon { background: #734deb; }

.px-accordion--boxed .px-accordion__item[open] .px-accordion__icon::before { background: #fff; }

.px-accordion--boxed .px-accordion__a {
	padding: 0 26px 22px;
	font-size: 15px;
	line-height: 1.5;
	color: #59617a;
}

/* Landing masonry: N columns of category cards, dealt top-to-bottom. */
.px-masonry {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	align-items: start;
}

.px-masonry--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.px-masonry--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.px-masonry__col {
	display: flex;
	flex-direction: column;
	gap: 24px;
	min-width: 0;
}

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

@media (max-width: 767px) {
	.px-masonry { grid-template-columns: minmax(0, 1fr); }
}

.px-card--cat {
	gap: 14px;
	padding: 24px 24px 22px;
	border-color: #eef1f7;
	border-radius: 16px;
	box-shadow: 0 12px 30px rgba(26, 42, 107, 0.06);
	font-family: var(--px-font-secondary, 'Inter', sans-serif);
}

.px-card--cat .px-card__hr {
	display: flex;
	align-items: center;
	gap: 12px;
	padding-bottom: 14px;
	border-bottom: 1px solid #eef1f7;
}

.px-card--cat .px-card__tile { border-radius: 12px; }

.px-card--cat .px-card__title {
	margin: 0;
	font-size: 17px;
	line-height: 1.3;
	color: #0f142e;
}

.px-card__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 9px;
}

.px-card__list li {
	display: flex;
	align-items: baseline;
	gap: 9px;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.25;
	color: #3a4156;
}

.px-card__list a { color: inherit; text-decoration: none; }
.px-card__list a:hover { color: var(--px-accent); }

.px-card__chev {
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	color: var(--px-accent);
}

.px-card--cat .px-link { margin-top: 2px; font-size: 13px; color: var(--px-accent); }

/* Landing logo wall: 160 × 86 cards, six per row, wrapping. */
.px-logowall {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

.px-logo--card {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 160px;
	height: 86px;
	padding: 10px 14px;
	border: 1px solid #eef1f7;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 10px 26px rgba(26, 42, 107, 0.05);
	text-decoration: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.px-logo--card:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(26, 42, 107, 0.10); }

.px-logo--card img { max-width: 120px; max-height: 34px; width: auto; height: auto; object-fit: contain; }

.px-logo--card .px-logo__wordmark {
	font-family: var(--px-font-secondary, 'Inter', sans-serif);
	font-size: 15px;
	font-weight: 700;
	color: var(--px-accent, #2975ff);
	text-align: center;
}

@media (max-width: 767px) {
	.px-logo--card { width: calc(50% - 8px); }
}

/* Continuous ticker sliders glide at a constant speed. */
.px-swiper--ticker .swiper-wrapper { transition-timing-function: linear !important; }
.px-swiper--ticker .swiper-slide { cursor: default; }

/* ================================================== Mega menu (pass 2) */

/* Panels sit under the whole header, edge to edge; --px-menu-top is set
   by widgets.js from the header's live bottom edge. */
.px-megamenu {
	position: fixed;
	left: 0;
	right: 0;
	top: var(--px-menu-top, 125px);
	z-index: 900;
	background: #fff;
	border-top: 1px solid #eef1f6;
	border-radius: 0;
	padding: 34px 0 38px;
	box-shadow: 0 28px 60px rgba(10, 20, 48, 0.16);
}

/* Invisible bridge over the gap between the nav link and the panel so the
   pointer can travel down without closing the menu. */
.px-megamenu::before {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: 100%;
	height: 28px;
}

.px-megamenu__inner {
	display: flex;
	align-items: flex-start;
	gap: 34px;
	max-width: 1400px; /* header container (1360) + its 20px gutters: the panel content lines up with the logo and the CTA edge */
	margin-inline: auto;
	padding: 0 20px;
}

.px-megamenu__cols {
	display: flex;
	align-items: stretch;
	gap: 0;
	flex: 1 1 auto;
	min-width: 0;
	padding-right: 34px;
	border-right: 1px solid #eef1f6;
}

.px-megamenu__col {
	flex: 1 1 0;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 22px;
	padding-inline: 0;
}

.px-megamenu__col + .px-megamenu__col {
	margin-left: 34px;
	padding-left: 34px;
	border-left: 1px solid #eef1f6;
}

.px-megamenu__group { display: flex; flex-direction: column; gap: 8px; }

.px-megamenu__eyebrow {
	margin: 0;
	font-family: var(--px-font-secondary, 'Inter', sans-serif);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #9aa3b2;
}

.px-megamenu__list { display: flex; flex-direction: column; gap: 1px; }

.px-megamenu__link {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 9px 10px;
	border-radius: 9px;
	font-family: var(--px-font-secondary, 'Inter', sans-serif);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.3;
	color: #0f142e;
}

.px-megamenu__link:hover {
	background: #f5f7fb;
	color: var(--px-red, #d40d26);
}

.px-megamenu__icon {
	width: 22px;
	height: 22px;
	align-items: center;
	font-size: 15px;
	color: #6b7280;
}

.px-megamenu__card {
	flex: none;
	width: 238px;
	padding: 24px 22px;
	border: 1px solid #e4e9f3;
	border-radius: 14px;
	background: linear-gradient(180deg, #f6f8ff 0%, #eef1fb 100%);
}

.px-megamenu__card-icon { width: 26px; height: 26px; margin-bottom: 12px; }

.px-megamenu__card-title {
	margin: 0 0 11px;
	font-family: var(--px-font-secondary, 'Inter', sans-serif);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.35;
	color: #0f142e;
}

.px-megamenu__card-text {
	margin: 0 0 11px;
	font-family: var(--px-font-secondary, 'Inter', sans-serif);
	font-size: 13px;
	line-height: 1.4;
	color: #6b7280;
}

.px-megamenu__card .px-link { font-family: var(--px-font-secondary, 'Inter', sans-serif); font-size: 13px; }

/* Compact dropdown (Resources): 330px card under its own nav item. */
.px-megamenu--dropdown {
	left: var(--px-menu-left, 0);
	right: auto;
	width: 330px;
	margin-top: 10px;
	padding: 14px;
	border: 0;
	border-radius: 14px;
	box-shadow: 0 26px 60px rgba(10, 20, 48, 0.18);
}

.px-megamenu--dropdown::before { height: 38px; }

.px-megamenu--dropdown .px-megamenu__list { gap: 2px; }

.px-megamenu__link--rich { align-items: center; }

.px-megamenu__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }

.px-megamenu__sub {
	font-size: 12px;
	font-weight: 400;
	color: #6b7280;
}

/* Page scrim while a panel is open. */
.px-menu-scrim {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	top: var(--px-menu-top, 125px);
	z-index: 899;
	background: rgba(10, 15, 46, 0.45);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s ease;
}

.px-menu-scrim.is-on { opacity: 1; }

@media (max-width: 1024px) {
	.px-megamenu,
	.px-megamenu--dropdown {
		position: static;
		width: auto;
		margin: 0;
		padding: 8px 0 12px;
		border: 0;
		box-shadow: none;
	}

	.px-megamenu::before { display: none; }
	.px-megamenu__inner { flex-direction: column; gap: 16px; padding: 0; }
	.px-megamenu__cols { flex-direction: column; gap: 16px; padding-right: 0; border-right: 0; }
	.px-megamenu__col + .px-megamenu__col { margin-left: 0; padding-left: 0; border-left: 0; }
	.px-megamenu__card { width: 100%; }
	.px-menu-scrim { display: none; }
}
/* Rows without an icon keep the label flush with the others. */
.px-megamenu__icon:empty { display: none; }

/* Figma SVG icons: sized by the box they sit in. */
.px-svg { width: 1em; height: 1em; display: block; flex: none; }
.px-card__tile .px-svg { width: 22px; height: 22px; }
.px-card__icon .px-svg { width: 26px; height: 26px; }
.px-chip__icon .px-svg { width: 1.1em; height: 1.1em; }
.px-megamenu__icon { color: #4b5468; }
.px-megamenu__icon .px-svg { width: 22px; height: 22px; }
.px-megamenu__link:hover .px-megamenu__icon,
.px-megamenu__link--rich:hover .px-megamenu__icon { color: #d40d26; }

.px-swiper__btn .px-svg { width: 12px; height: 10px; }
.px-case__go .px-svg { width: 12px; height: 10px; }

/* Orbit diagram (Why Choose): native SVG in the design's 1360×720 space. */
.px-orbit { position: relative; width: 100%; line-height: 0; }
.px-orbit__svg { display: block; width: 100%; height: auto; overflow: visible; }
.px-orbit__ms { width: 28px; height: 28px; }
.px-orbit--animated .px-orbit__line { animation: px-orbit-flow 1.4s linear infinite; }
.px-orbit--animated .px-orbit__marker { transform-box: fill-box; transform-origin: center; animation: px-orbit-pulse 2.4s ease-in-out infinite; }
.px-orbit--animated .px-orbit__ring { animation: px-orbit-spin 60s linear infinite; transform-box: fill-box; transform-origin: center; }
@keyframes px-orbit-flow { to { stroke-dashoffset: -24; } }
@keyframes px-orbit-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.35); } }
@keyframes px-orbit-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .px-orbit--animated .px-orbit__line, .px-orbit--animated .px-orbit__marker, .px-orbit--animated .px-orbit__ring { animation: none; } }

/* ============================================== Industry orbit (Figma 1184:106) */
.px-iorbit { width: 100%; max-width: 1100px; margin-inline: auto; }
.px-iorbit__stage { position: relative; width: 100%; aspect-ratio: 1100 / 620; }
.px-iorbit__spokes { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.px-iorbit__spoke { stroke: #CFD8EC; stroke-width: 2; stroke-linecap: round; }
.px-iorbit__hub {
	position: absolute; left: 42.27%; top: 36.29%; width: 15.45%; aspect-ratio: 1; border-radius: 50%;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
	background: linear-gradient(135deg, #D40D26 0%, #734DEB 100%); color: #fff; text-align: center;
	box-shadow: 0 0 44px rgba(115, 77, 235, 0.40);
	font-family: var(--px-font-secondary, 'Inter', sans-serif);
}
.px-iorbit__hub-title { font-size: 22px; font-weight: 700; line-height: 1.2; letter-spacing: -0.2px; }
.px-iorbit__hub-sub { font-size: 13px; font-weight: 500; line-height: 1.2; opacity: 0.92; }
.px-iorbit__chip {
	position: absolute; display: flex; align-items: center; gap: 10px; min-width: 150px; height: 64px;
	padding: 9px 16px 9px 9px; box-sizing: border-box; border-radius: 14px; background: #fff;
	border: 1px solid #EEF1F7; box-shadow: 0 12px 24px rgba(26, 42, 107, 0.10); color: #1A2348; text-decoration: none;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.px-iorbit__chip:hover { transform: translateY(-3px); box-shadow: 0 18px 32px rgba(26, 42, 107, 0.16); color: #1A2348; }
.px-iorbit__img { width: 44px; height: 44px; border-radius: 10px; object-fit: cover; flex: none; }
.px-iorbit__label { font-family: var(--px-font-secondary, 'Inter', sans-serif); font-size: 12.5px; font-weight: 600; line-height: 1.2; width: min-content; min-width: 78px; max-width: 120px; overflow-wrap: normal; word-break: keep-all; }
/* Scale the stage's absolute coordinates with its width. */
.px-iorbit__stage { --k: calc(100% / 1100); }
.px-iorbit__chip { left: calc(var(--x, 0) * 1px); }
/* Scroll entrance (widgets.js adds .is-in): hub scales up, spokes draw outward, chips pop in clockwise; then a slow float. */
.px-iorbit--animate .px-iorbit__hub { opacity: 0; transform: scale(0.6); transition: opacity 0.7s ease, transform 0.9s cubic-bezier(0.22, 1, 0.36, 1); will-change: transform, opacity; }
.px-iorbit--animate .px-iorbit__spoke { stroke-dasharray: 120; stroke-dashoffset: 120; transition: stroke-dashoffset 0.6s ease calc(0.35s + var(--i) * 0.08s); }
.px-iorbit--animate .px-iorbit__chip { opacity: 0; transform: translateY(18px) scale(0.9); transition: opacity 0.5s ease calc(0.55s + var(--i) * 0.09s), transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) calc(0.55s + var(--i) * 0.09s), box-shadow 0.25s ease; }
.px-iorbit--animate.is-in .px-iorbit__hub { opacity: 1; transform: none; animation: px-iorbit-glow 3.2s ease-in-out 1s infinite; }
.px-iorbit--animate.is-in .px-iorbit__spoke { stroke-dashoffset: 0; }
.px-iorbit--animate.is-in .px-iorbit__chip { opacity: 1; transform: none; animation: px-iorbit-float 5.5s ease-in-out calc(2.4s + var(--i) * 0.4s) infinite; will-change: transform, opacity; }
.px-iorbit--animate.is-in .px-iorbit__chip:hover { animation-play-state: paused; transform: translateY(-3px); }
/* The float animates the individual `translate` property so it composes with (never fights) the entrance transform. */
@keyframes px-iorbit-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -6px; } }
@keyframes px-iorbit-glow { 0%, 100% { box-shadow: 0 0 44px rgba(115, 77, 235, 0.40); } 50% { box-shadow: 0 0 64px rgba(212, 13, 38, 0.42); } }
@media (max-width: 767px) {
	.px-iorbit__stage { aspect-ratio: auto; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
	.px-iorbit__spokes, .px-iorbit__hub { display: none; }
	.px-iorbit__chip { position: static; width: calc(50% - 6px); min-width: 0; height: 56px; }
	.px-iorbit__img { width: 36px; height: 36px; }
}
@media (prefers-reduced-motion: reduce) {
	.px-iorbit--animate .px-iorbit__hub, .px-iorbit--animate .px-iorbit__chip { opacity: 1; transform: none; transition: none; animation: none !important; }
	.px-iorbit--animate .px-iorbit__spoke { stroke-dashoffset: 0; transition: none; }
}.elementor-widget-prexa365_industry_orbit, .elementor-widget-prexa365_industry_orbit > .elementor-widget-container { width: 100%; }
.px-iorbit__hub-logo { width: 118px; height: auto; display: block; margin-bottom: 2px; }

/* =========================================== Orbit scenes (px_orbit / px_ecosystem) */
.px-scene .px-scene__hub { opacity: 0; transform: scale(0.6); transition: opacity 0.6s ease, transform 0.7s cubic-bezier(0.22, 1, 0.36, 1); }
.px-scene .px-scene__ring { opacity: 0; transform: scale(0.85); transition: opacity 0.8s ease 0.2s, transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.2s; }
.px-scene .px-scene__spoke { opacity: 0; clip-path: inset(0 50% 0 50%); transition: opacity 0.4s ease calc(0.35s + var(--i, 0) * 0.07s), clip-path 0.6s ease calc(0.35s + var(--i, 0) * 0.07s); }
.px-scene .px-scene__chip { opacity: 0; transform: translateY(18px) scale(0.9); transition: opacity 0.5s ease calc(0.6s + var(--i, 0) * 0.09s), transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) calc(0.6s + var(--i, 0) * 0.09s), box-shadow 0.25s ease; }
.px-scene.is-in .px-scene__hub { opacity: 1; transform: none; animation: px-iorbit-glow 3.2s ease-in-out 1s infinite; }
.px-scene.is-in .px-scene__ring { opacity: 1; transform: none; }
.px-scene.is-in .px-scene__spoke { opacity: 1; clip-path: inset(0 0 0 0); }
.px-scene.is-in .px-scene__chip { opacity: 1; transform: none; animation: px-iorbit-float 5.5s ease-in-out calc(2.6s + var(--i, 0) * 0.4s) infinite; will-change: transform, opacity; }
.px-scene.is-in .px-scene__chip:hover { animation-play-state: paused; transform: translateY(-3px); }
@media (prefers-reduced-motion: reduce) {
	.px-scene .px-scene__hub, .px-scene .px-scene__ring, .px-scene .px-scene__chip { opacity: 1; transform: none; transition: none; animation: none !important; }
	.px-scene .px-scene__spoke { opacity: 1; clip-path: none; transition: none; }
}/* Orbit chip variants (Integrations ring, Figma 1164:120…142): contained logo or centred label in a 104×58 card. */
.px-iorbit__chip--logo, .px-iorbit__chip--text { justify-content: center; padding: 11px 10px; gap: 0; }
.px-iorbit__logo { width: 84px; height: 36px; object-fit: contain; }
.px-iorbit__chip--text .px-iorbit__label { width: auto; max-width: none; min-width: 0; text-align: center; font-size: 11.5px; }
.px-iorbit__ring { opacity: 0; transform-box: fill-box; transform-origin: center; transform: scale(0.85); transition: opacity 0.8s ease 0.2s, transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.2s; }
.px-iorbit.is-in .px-iorbit__ring, .px-iorbit:not(.px-iorbit--animate) .px-iorbit__ring { opacity: 1; transform: none; }
@media (max-width: 767px) { .px-iorbit__chip--logo, .px-iorbit__chip--text { width: calc(50% - 6px) !important; } }
/* FAQ: a fixed-width column — the widget is a flex item and otherwise shrinks to the open answer's text. */
.elementor-widget-prexa365_faq { width: 100%; align-self: stretch; }
.elementor-widget-prexa365_faq > .elementor-widget-container, .px-faq { width: 100%; }
.px-accordion { width: 100%; }
.px-accordion--boxed { max-width: 860px; margin-inline: auto; }
.px-accordion__item { width: 100%; box-sizing: border-box; }

/* Count-up stats: fixed-width digits so the number doesn't wobble while counting. */
.px-count__num { display: inline-block; font-variant-numeric: tabular-nums; text-align: right; }
.px-count .elementor-heading-title[style*="center"] .px-count__num, .px-statbar--center .px-count__num { text-align: center; }
/* Orbit "stack" chip: a brand mark over its name (e.g. D365 Finance). */
.px-iorbit__chip--stack { flex-direction: column; justify-content: center; gap: 4px; padding: 6px 8px; }
.px-iorbit__mark { width: auto; height: 24px; object-fit: contain; }
.px-iorbit__chip--stack .px-iorbit__label { width: auto; min-width: 0; max-width: none; text-align: center; font-size: 11px; line-height: 1.1; white-space: nowrap; }
/* Category logo chip with its name beside the mark. */
.px-logo-chip-named { display: inline-flex; }

/* Filter pills (px_filter_pills with targets). */
.px-filter-pill { cursor: pointer; user-select: none; transition: transform 0.15s ease; }
.px-filter-pill:hover { transform: translateY(-1px); }
.elementor-element.px-filter-pill:not(.is-active) > .elementor-widget-container { background-color: #FFFFFF !important; border-color: #E8EDF5 !important; }
.elementor-element.px-filter-pill:not(.is-active) .elementor-heading-title { color: #59617A !important; }
.elementor-element.px-filter-pill.is-active > .elementor-widget-container { background-color: #D40D26 !important; border-color: #D40D26 !important; box-shadow: 0 8px 18px rgba(212, 13, 38, 0.22); }
.elementor-element.px-filter-pill.is-active .elementor-heading-title { color: #FFFFFF !important; }
.px-filter-item { transition: opacity 0.3s ease, transform 0.3s ease; }
.px-filter-item.is-filtered-out { display: none !important; }/* Elementor's optimised markup puts the widget background on the element itself (no widget-container). */
.elementor-element.px-filter-pill:not(.is-active) { background-color: #FFFFFF !important; border-color: #E8EDF5 !important; box-shadow: none !important; }
.elementor-element.px-filter-pill.is-active { background-color: #D40D26 !important; border-color: #D40D26 !important; box-shadow: 0 8px 18px rgba(212, 13, 38, 0.22) !important; }
/* Beat Elementor's `.elementor img { height:auto }` so square logos stay inside their chip. */
.px-iorbit .px-iorbit__chip img.px-iorbit__logo { width: 84px; height: 36px; max-width: 84px; object-fit: contain; }
.px-iorbit .px-iorbit__chip img.px-iorbit__mark { width: 24px; height: 24px; max-width: 24px; object-fit: contain; }
.px-iorbit .px-iorbit__chip img.px-iorbit__img { width: 44px; height: 44px; max-width: 44px; object-fit: cover; }

/* ---------------------------------------------------------------------------
 * Resources landing (Figma 1206:2).
 * ------------------------------------------------------------------------- */
.px-accent--purple { color: #734deb; }

/* Knowledge Hub panel: soft red (top-left) and purple (bottom-right) glows. */
.e-con.px-res-hub { position: relative; isolation: isolate; }
.e-con.px-res-hub::before,
.e-con.px-res-hub::after {
	content: "";
	position: absolute;
	z-index: -1;
	border-radius: 50%;
	pointer-events: none;
	filter: blur(60px);
}
.e-con.px-res-hub::before { width: 300px; height: 300px; left: -80px; top: -110px; background: rgba(212, 13, 38, 0.10); }
.e-con.px-res-hub::after { width: 280px; height: 280px; right: -100px; bottom: -94px; background: rgba(115, 77, 235, 0.10); }
.e-con.px-res-tile { transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease; }
.e-con.px-res-tile:hover { transform: translateY(-2px); border-color: #dfe5f0; box-shadow: 0 10px 24px rgba(26, 42, 107, 0.08); }
.elementor-element.px-res-chip a,
.elementor-element.px-res-chip .elementor-heading-title a { color: inherit; }
.elementor-element.px-res-chip:hover { border-color: #cfd6e4 !important; }

/* Text links with the arrow nudge on hover. */
.px-rlink .elementor-button-icon { transition: transform 0.2s ease; }
.px-rlink .elementor-button:hover .elementor-button-icon { transform: translateX(3px); }
.px-rlink .elementor-button-icon svg { width: 1em; height: auto; }

/* Video thumbnails: play disc grows on hover. */
.e-con.px-rplay { transition: transform 0.25s ease; }
.px-rvideo-thumb:hover .px-rplay,
.px-rvideo-row:hover .px-rplay { transform: scale(1.08); }
.e-con.px-rvideo-row { transition: border-color 0.2s ease, box-shadow 0.2s ease; }
.e-con.px-rvideo-row:hover { border-color: #e2dbfb; box-shadow: 0 10px 24px rgba(26, 42, 107, 0.07); }

/* FAQ, green variant (Resources). */
.px-faq--green .px-accordion--boxed .px-accordion__item { border-color: #eef1f7; }
.px-faq--green .px-accordion--boxed .px-accordion__item + .px-accordion__item { border-top-color: #eef1f7; }
.px-faq--green .px-accordion--boxed .px-accordion__item[open] { background: #f3fbf7; border-color: #cdeeda; }
.px-faq--green .px-accordion--boxed .px-accordion__item[open] .px-accordion__icon { background: #0fa673; }
.px-faq--green .px-accordion--boxed .px-accordion__q { padding: 20px 26px; font-size: 16px; line-height: 1.3; }
.px-faq--green .px-accordion--boxed .px-accordion__item[open] .px-accordion__q { padding-bottom: 10px; }
.px-faq--green .px-accordion--boxed .px-accordion__a { padding: 0 26px 20px; font-size: 14px; line-height: 1.5; }
.elementor-widget-prexa365_faq.px-faq--green { width: 100%; max-width: 860px; }

/* Glossary A–Z: round letter pills, purple when active. */
.px-alpha-row > .elementor-element { height: 34px; display: flex; align-items: center; justify-content: center; padding-top: 0 !important; padding-bottom: 0 !important; }
.px-alpha-row .elementor-element.px-filter-pill.is-active { background-color: #734deb !important; border-color: #734deb !important; box-shadow: 0 6px 14px rgba(115, 77, 235, 0.25) !important; }
.px-alpha-row .elementor-element.px-filter-pill.is-active .elementor-heading-title { color: #fff !important; }
.px-alpha-row .elementor-element.px-alpha-link a { color: inherit; }
.px-alpha-row .elementor-element.px-alpha-link:hover,
.px-alpha-row .elementor-element.px-filter-pill:not(.is-active):hover { border-color: #c9bcf7 !important; }
.e-con.px-res-hub > .e-con:last-child > .px-rlink { margin-left: auto; }
/* Linked images inside Resources cards: the link must be a block so width:100% resolves. */
.e-con.px-rcard > .elementor-widget-image a { display: block; }
.e-con.px-rshrink { min-width: 0; flex: 1 1 0% !important; }
/* Resources cards: no trailing paragraph margin (Figma gaps come from the container). */
.e-con.px-rcard .elementor-widget-text-editor p:last-child,
.e-con.px-res-hub .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
/* Resources dropdown: 8px under its nav pill (was the header edge + 10px, a ~30px gap). */
.px-megamenu--dropdown { top: var(--px-menu-dd-top, var(--px-menu-top, 125px)); margin-top: 8px; }
.px-megamenu--dropdown::before { height: 12px; }
@media (max-width: 767px) {
	/* Hub header: title takes the row; "Updated weekly" drops under it. */
	.e-con.px-res-hub > .e-con:first-child { flex-wrap: wrap !important; }
	.e-con.px-res-hub > .e-con:first-child > .px-rshrink { flex: 1 1 calc(100% - 56px) !important; }
	.e-con.px-res-hub .px-res-live { margin-left: 56px; }
}

/* Orbit "tile" chips: gradient icon tile + two-line label (Book a Demo platform overview). */
.px-iorbit__chip--tile { gap: 11px; padding: 11px 14px 11px 11px; border-radius: 14px; }
.px-iorbit__tile { flex: none; width: 34px; height: 34px; border-radius: 10px; display: flex; align-items: center; justify-content: center; color: #fff; line-height: 0; box-shadow: 0 5px 12px rgba(26, 42, 107, 0.16); }
.px-iorbit__tile svg { width: 16px; height: 16px; display: block; }
.px-iorbit__tile svg path, .px-iorbit__tile svg circle, .px-iorbit__tile svg rect, .px-iorbit__tile svg line, .px-iorbit__tile svg polyline { stroke: currentColor; }
.px-iorbit__chip--tile .px-iorbit__label { min-width: 0; max-width: 110px; width: auto; font-size: 12.5px; }
@media (max-width: 767px) { .px-iorbit__chip--tile { width: calc(50% - 6px) !important; } }
/* ------------------------------------------------ Off-canvas mobile menu */
/* Desktop: the drawer wrappers vanish from layout; drawer-only parts hide. */
.px-nav__drawer,
.px-nav__drawer-body { display: contents; }
.px-nav__overlay,
.px-nav__drawer-head,
.px-nav__drawer-foot,
.px-nav__close { display: none; }

@media (max-width: 1024px) {
	.px-nav { flex-wrap: nowrap; }

	.px-nav__overlay:not([hidden]) {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 99998;
		background: rgba(10, 15, 46, 0.5);
		animation: px-fade 0.25s ease;
	}

	.px-nav__drawer {
		display: flex;
		flex-direction: column;
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		z-index: 99999;
		width: min(380px, 88vw);
		height: 100vh;
		height: 100dvh;
		background: #fff;
		box-shadow: -20px 0 50px rgba(10, 15, 46, 0.18);
		transform: translateX(100%);
		visibility: hidden;
		transition: transform 0.32s cubic-bezier(.2, .8, .2, 1), visibility 0s linear 0.32s;
		font-family: 'Inter', sans-serif;
	}

	.px-nav.is-open .px-nav__drawer {
		transform: none;
		visibility: visible;
		transition: transform 0.32s cubic-bezier(.2, .8, .2, 1);
	}

	/* Top: logo + close. */
	.px-nav__drawer-head {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 16px;
		flex: none;
		padding: 16px 20px;
		border-bottom: 1px solid #eef1f7;
	}
	.px-nav__drawer-logo { display: inline-flex; min-width: 0; }
	.px-nav__drawer-logo img { display: block; width: auto; max-width: 210px; height: 40px; object-fit: contain; object-position: left center; }

	.px-nav__close {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		flex: none;
		width: 40px;
		height: 40px;
		padding: 0;
		border: 1px solid #e8edf5;
		border-radius: 10px;
		background: #fff;
		cursor: pointer;
	}
	.px-nav__close span { position: relative; width: 16px; height: 16px; }
	.px-nav__close span::before,
	.px-nav__close span::after {
		content: '';
		position: absolute;
		top: 7px;
		left: 0;
		width: 16px;
		height: 2px;
		border-radius: 2px;
		background: var(--px-navy, #101b3f);
		transform: rotate(45deg);
	}
	.px-nav__close span::after { transform: rotate(-45deg); }
	.px-nav__close:hover { border-color: #d40d26; }

	/* Middle: scrollable menu. */
	.px-nav__drawer-body {
		display: flex;
		flex-direction: column;
		flex: 1 1 auto;
		min-height: 0;
		overflow-y: auto;
		overscroll-behavior: contain;
		padding: 8px 20px 20px;
	}

	.px-nav .px-nav__drawer .px-nav__list {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		width: 100%;
		margin: 0;
		padding: 0;
	}
	.px-nav__drawer .px-nav__item { border-bottom: 1px solid #eef1f7; }
	.px-nav__drawer .px-nav__link {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		padding: 15px 2px;
		border-radius: 0;
		font-size: 16px;
		font-weight: 600;
		color: var(--px-navy, #101b3f);
		background: none !important;
	}
	.px-nav__drawer .px-nav__item.is-open > .px-nav__link { color: var(--px-red, #d30d27); }
	.px-nav__drawer .px-nav__chevron { margin-left: auto; transition: transform 0.2s ease; }
	.px-nav__drawer .px-nav__item.is-open > .px-nav__link .px-nav__chevron { transform: translateY(2px) rotate(225deg); }
	.px-nav__drawer .px-megamenu,
	.px-nav__drawer .px-megamenu--dropdown { padding: 0 0 14px; background: none; }
	.px-nav__drawer .px-megamenu__link { padding: 9px 4px; }

	#masthead .px-nav__drawer .px-nav__signin,
	#masthead .px-nav__drawer .px-nav__cta,
	.px-nav__drawer .px-nav__signin,
	.px-nav__drawer .px-nav__cta {
		display: inline-flex;
		justify-content: center;
		width: 100%;
		margin: 18px 0 0;
	}
	.px-nav__drawer .px-nav__signin + .px-nav__cta { margin-top: 10px; }

	/* Bottom: social links. */
	.px-nav__drawer-foot {
		display: block;
		flex: none;
		padding: 16px 20px calc(18px + env(safe-area-inset-bottom));
		border-top: 1px solid #eef1f7;
		background: #fbfbfe;
	}
	.px-nav__social-title {
		margin: 0 0 10px;
		font-size: 11px;
		font-weight: 700;
		letter-spacing: 1px;
		text-transform: uppercase;
		color: #8c94a8;
	}
	.px-nav__social { display: flex; flex-wrap: wrap; gap: 10px; }
	.px-nav__social-link {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 40px;
		height: 40px;
		border-radius: 10px;
		background: var(--px-navy, #101b3f);
		color: #fff;
		transition: background 0.2s ease, transform 0.2s ease;
	}
	.px-nav__social-link:hover { background: var(--px-red, #d30d27); color: #fff; transform: translateY(-2px); }

	html.px-drawer-open,
	html.px-drawer-open body { overflow: hidden; }
}

@keyframes px-fade { from { opacity: 0; } to { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
	.px-nav__drawer, .px-nav.is-open .px-nav__drawer { transition: none; }
}
