/**
 * PREXA365 base styles.
 *
 * Deliberately minimal: Elementor owns page layout. This file only normalises
 * typography, exposes the brand rhythm, and styles the non-Elementor fallbacks
 * (archives, search, 404, the temporary header/footer).
 */

/* ---------- Reset / base ---------- */

*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	margin: 0;
	font-family: var(--px-font-primary);
	font-size: 16px;
	line-height: 1.7;
	color: var(--px-text);
	background: var(--px-surface);
	-webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--px-font-primary);
	color: var(--px-navy);
	line-height: 1.2;
	margin: 0 0 0.5em;
	font-weight: 700;
}

h1 { font-size: clamp(2rem, 4vw, 3.25rem); letter-spacing: -0.02em; }
h2 { font-size: clamp(1.75rem, 3vw, 2.75rem); letter-spacing: -0.015em; }
h3 { font-size: clamp(1.25rem, 2vw, 1.5rem); }

p { margin: 0 0 1rem; }

a {
	color: var(--px-red);
	text-decoration: none;
}

a:hover,
a:focus {
	text-decoration: none;
}

img,
svg,
video {
	max-width: 100%;
	height: auto;
	display: block;
}

figure { margin: 0; }

/* ---------- Layout helpers ---------- */

.prexa365-container {
	width: 100%;
	max-width: 1360px;
	margin-inline: auto;
	padding-inline: 20px;
}

.prexa365-main {
	padding-block: 64px;
}

.prexa365-main--full {
	padding: 0;
}

.prexa365-site-content {
	min-height: 40vh;
}

.prexa365-page-title {
	margin-bottom: 24px;
}

/* ---------- Cards (archive / search / blog fallbacks) ---------- */

.prexa365-post-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 32px;
}

.prexa365-card {
	background: var(--px-surface);
	border: 1px solid var(--px-border);
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 8px 28px rgba(16, 27, 63, 0.05);
}

.prexa365-card__media img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.prexa365-card__body {
	padding: 24px;
}

.prexa365-card__title {
	font-size: 1.25rem;
	margin-bottom: 8px;
}

.prexa365-card__title a {
	color: var(--px-navy);
}

.prexa365-card__excerpt {
	color: var(--px-muted);
	font-size: 0.95rem;
}

.prexa365-card__link {
	font-weight: 600;
	font-size: 0.9rem;
}

.prexa365-entry-meta {
	color: var(--px-muted-soft);
	font-size: 0.85rem;
	margin-bottom: 8px;
}

/* ---------- Buttons ---------- */

.prexa365-button {
	display: inline-block;
	padding: 14px 28px;
	border-radius: 999px;
	background: var(--px-red);
	color: #fff;
	font-weight: 600;
	font-size: 0.95rem;
}

.prexa365-button:hover,
.prexa365-button:focus {
	background: var(--px-navy);
	text-decoration: none;
}

/* ---------- Pagination ---------- */

.pagination {
	margin-top: 48px;
	display: flex;
	justify-content: center;
}

.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding-inline: 12px;
	margin-inline: 4px;
	border-radius: 10px;
	border: 1px solid var(--px-border);
	color: var(--px-navy);
	font-weight: 600;
}

.pagination .page-numbers.current {
	background: var(--px-navy);
	border-color: var(--px-navy);
	color: #fff;
}

/* ---------- Fallback header / footer ---------- */

.prexa365-fallback--header {
	border-bottom: 1px solid var(--px-border);
	background: var(--px-surface);
}

.prexa365-fallback__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	min-height: 84px;
}

.prexa365-site-title {
	font-family: var(--px-font-primary);
	font-weight: 700;
	font-size: 1.35rem;
	color: var(--px-navy);
	letter-spacing: -0.01em;
}

.prexa365-fallback__menu {
	display: flex;
	gap: 28px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.prexa365-fallback__menu a {
	color: var(--px-navy);
	font-weight: 500;
	font-size: 0.95rem;
}

.prexa365-fallback--footer {
	background: var(--px-navy);
	color: #fff;
	padding-block: 40px;
	margin-top: 64px;
}

.prexa365-fallback--footer a { color: #fff; }

.prexa365-fallback__copy {
	margin: 0;
	font-size: 0.9rem;
	color: rgba(255, 255, 255, 0.7);
}

/* ---------- Accessibility ---------- */

.screen-reader-text {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.skip-link:focus {
	clip-path: none;
	height: auto;
	width: auto;
	left: 16px;
	top: 16px;
	z-index: 100000;
	padding: 12px 20px;
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 4px 16px rgba(16, 27, 63, 0.2);
}

/* HFE hides this duplicate title for us; keep it out of the flow. */
.bhf-hidden {
	display: none;
}
/* ------------------------------------------------------------- Home hero */

/*
 * The home hero is the one background the Elementor gradient control cannot
 * express: three stops on the diagonal, plus two soft radial glows bleeding in
 * from the corners. Reproduced here exactly as the Figma frame paints it
 * (02 · Hero, with "Blob TL" and "Blob BR").
 */
.home #hero {
	position: relative;
	isolation: isolate;
	background-color: #ffffff;
	background-image:
		radial-gradient(1000px 1000px at -20% -50%, rgba(31, 59, 138, 0.28) 0%, rgba(31, 59, 138, 0.08) 60%, rgba(31, 59, 138, 0) 100%),
		radial-gradient(800px 800px at 108% 62%, rgba(212, 13, 38, 0.24) 0%, rgba(212, 13, 38, 0.07) 60%, rgba(212, 13, 38, 0) 100%),
		linear-gradient(135deg, #f5f7ff 0%, #ffffff 50%, #fff7f7 100%);
	background-repeat: no-repeat;
	overflow: hidden;
}

/* ------------------------------------------------ Design-match details */

/* Accent-coloured word inside a heading ("with PREXA365"). */
.px-accent { color: var(--px-red, #d30d27); }

/* Header logo renders at the frame's native 393×56. */
#masthead .elementor-widget-image img { max-width: 393px; height: auto; }

/* The final CTA banner carries a soft purple radial glow left of centre. */
.px-cta-banner {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background-image: radial-gradient(520px 420px at 32% 55%, rgba(120, 60, 200, 0.35) 0%, rgba(120, 60, 200, 0.12) 45%, rgba(120, 60, 200, 0) 70%);
	background-repeat: no-repeat;
}

/* Hero slider: card shadow like the mockup, dots below. */
.px-hero-slider .px-swiper__slide img {
	box-shadow: 0 24px 60px rgba(16, 27, 63, 0.14);
}

.px-hero-slider .px-swiper__nav { margin-top: 20px; }

.px-hero-slider .px-swiper__btn { display: none; }

/* Nav CTAs never wrap; the hero carousel uses dots only, as the frame does. */
.px-nav__signin,
.px-nav__cta { flex: none; white-space: nowrap; }

.home #hero .px-swiper__btn { display: none; }
.home #hero .px-swiper__nav { margin-top: 20px; justify-content: center; }
.home #hero .px-swiper__slide img { box-shadow: 0 24px 60px rgba(16, 27, 63, 0.14); }

/* Process tabs (Elementor nested-tabs) styled as the frame's pill row:
   red active pill with white text, quiet grey inactive tabs. */
.home #how-it-works .e-n-tabs-heading {
	justify-content: center;
	gap: 8px;
	flex-wrap: wrap;
}

.home #how-it-works .e-n-tab-title {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 11px 22px;
	border: 0;
	border-radius: 10px;
	background: transparent;
	color: #6b7280;
	font-family: var(--px-font-primary);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}

.home #how-it-works .e-n-tab-title:hover { color: var(--px-navy, #101b3f); }

.home #how-it-works .e-n-tab-title[aria-selected="true"] {
	background: var(--px-red, #d30d27);
	color: #fff;
}

.home #how-it-works .e-n-tab-title .e-n-tab-icon svg,
.home #how-it-works .e-n-tab-title .e-n-tab-icon i {
	width: 14px;
	height: 14px;
	font-size: 14px;
	fill: currentColor;
	color: currentColor;
}

.home #how-it-works .e-n-tabs-content { margin-top: 12px; }

/* Split heads fit the frame's one-line headings; Swiper's pagination must
   stay in the flex row rather than absolutely positioning itself. */
.px-split-head .px-head { max-width: 760px; }

.px-swiper__dots.swiper-pagination-horizontal,
.px-swiper__dots.swiper-pagination-bullets {
	position: static;
	width: auto;
	transform: none;
}

/* Final CTA banner glow, scoped by section so it survives Elementor's class
   handling on containers. */
.home #get-started .e-con > .e-con > .e-con:first-child {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background-image: radial-gradient(520px 420px at 32% 55%, rgba(120, 60, 200, 0.38) 0%, rgba(120, 60, 200, 0.12) 45%, rgba(120, 60, 200, 0) 70%) !important;
	background-repeat: no-repeat !important;
}

/* Footer glow: the frame's "Glow" layer — an 800px red radial fading from
   15% to nothing, sitting behind the top of the footer. */
#colophon > .footer-width-fixer > .elementor > .e-con:first-child,
#colophon .elementor > .e-con:first-child {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background-image: radial-gradient(800px 800px at 82% 0%, rgba(212, 13, 38, 0.15) 0%, rgba(212, 13, 38, 0.04) 70%, rgba(212, 13, 38, 0) 100%) !important;
	background-repeat: no-repeat !important;
}

/* Nav row must fit the 1360 container: tighter gaps, links can shrink. */
.px-nav { gap: 20px; }
.px-nav__list { flex: 1 1 auto; min-width: 0; gap: 4px; }
.px-nav__link { padding: 10px 12px; }

/* The final CTA banner is the section's inner container's first (and only)
   child: #get-started > inner > banner. */
.home #get-started > .e-con > .e-con {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background-image: radial-gradient(520px 420px at 32% 55%, rgba(120, 60, 200, 0.38) 0%, rgba(120, 60, 200, 0.12) 45%, rgba(120, 60, 200, 0) 70%) !important;
	background-repeat: no-repeat !important;
}

/* Header logo: native 393px on desktop, never wider than its column. */
#masthead .elementor-widget-image,
#masthead .elementor-widget-image a,
#masthead .elementor-widget-image img {
	max-width: 100%;
}

@media (max-width: 1024px) {
	#masthead .elementor-widget-image img { width: 220px; }

	/* Collapsed nav: Sign in and Request Demo live inside the opened menu,
	   full width, instead of crowding the logo row. */
	/* #masthead raises specificity above .px-button, whose stylesheet may load later on some pages. */
	#masthead .px-nav__signin,
	#masthead .px-nav__cta { display: none; }

	#masthead .px-nav.is-open .px-nav__signin,
	#masthead .px-nav.is-open .px-nav__cta {
		display: inline-flex;
		order: 4;
		width: 100%;
		justify-content: center;
		margin: 6px 0 0;
	}
}

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

/* Pink gradient word inside the landing CTA heading ("Modernize"). */
.px-accent--pink {
	background: linear-gradient(90deg, #ff6b7d 0%, #a98bff 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: #ff6b7d;
}

/* Landing CTA banner: dot texture plus red (left, top-right) and purple
   (bottom-right) glows, as the frame's ellipse layers. */
body:not(.home) #get-started > .e-con > .e-con {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background-image:
		radial-gradient(760px 760px at 8% 45%, rgba(212, 13, 38, 0.09) 0%, rgba(212, 13, 38, 0) 70%),
		radial-gradient(1100px 1100px at 92% -20%, rgba(212, 13, 38, 0.13) 0%, rgba(212, 13, 38, 0.04) 50%, rgba(212, 13, 38, 0) 100%),
		radial-gradient(620px 620px at 95% 110%, rgba(115, 77, 235, 0.10) 0%, rgba(115, 77, 235, 0) 70%),
		radial-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px) !important;
	background-size: auto, auto, auto, 22px 22px !important;
	background-repeat: no-repeat, no-repeat, no-repeat, repeat !important;
}

/* Customer-success band: blue glow bottom-left, red glow top-right. */
#customer-success {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background-image:
		radial-gradient(420px 420px at 20% 90%, rgba(41, 117, 255, 0.10) 0%, rgba(41, 117, 255, 0) 70%),
		radial-gradient(380px 380px at 85% 25%, rgba(212, 13, 38, 0.08) 0%, rgba(212, 13, 38, 0) 70%),
		linear-gradient(180deg, #fbfbfe 0%, #eef2fb 100%) !important;
	background-repeat: no-repeat !important;
}

/* Glass testimonial cards blur what sits behind them. */
#customer-success > .e-con > .e-con > .e-con { backdrop-filter: blur(18px); }

/* Landing hero: the device mockup floats on a soft shadow like the frame. */
body:not(.home) #hero .elementor-widget-image img {
	filter: drop-shadow(0 30px 70px rgba(15, 20, 46, 0.20));
}

/* Icon-list pills (inline-width icon lists): dot and text on one line. */
.elementor-widget-icon-list.elementor-widget__width-auto .elementor-icon-list-items,
.elementor-widget-icon-list.elementor-widget__width-auto .elementor-icon-list-item {
	display: flex;
	align-items: center;
	margin: 0;
}

.elementor-widget-icon-list.elementor-widget__width-auto .elementor-icon-list-icon { line-height: 1; }

/* Solid coral word inside a dark heading ("your industry"). */
.px-accent--coral { color: #ff6b7d; }

/* Image widgets in landing cards must grow with the image, not the img's
   intrinsic height attribute. */
body:not(.home) .e-con > .elementor-widget-image { height: auto !important; min-height: 0 !important; }

/* Blue accent words ("tools you already use"). */
.px-accent--blue { color: #2975ff; }

/* ------------------------------------------------ Home deep-match pass 2 */

/* Eyebrow headings carry the frame's 24 × 3 red accent bar. */
.px-eyebrow-head .elementor-heading-title::before {
	content: '';
	display: inline-block;
	width: 24px;
	height: 3px;
	margin: 0 12px 4px 0;
	border-radius: 2px;
	background: var(--px-red, #d30d27);
	vertical-align: middle;
}

/* Hero slider column is the positioning context for the two float cards. */
.px-hero-slider { position: relative; }
.px-hero-slider > .elementor-widget-prexa365_slider { position: static; }

/* Trust logos: full-width auto-rotating Swiper, logos centred per slide. */
.px-logostrip__slider .swiper-slide {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 60px;
}

.px-logostrip__slider .px-logostrip__item img { height: 60px; width: auto; max-width: 160px; object-fit: contain; }

@media (max-width: 767px) {
	.px-logostrip__slider .px-logostrip__item img { height: 40px; max-width: 120px; }
}

/* Process tab feature list: 2 × 2 with tinted 40px icon tiles. */
.home #how-it-works .elementor-icon-list-items.elementor-inline-items {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px 24px;
	margin: 0;
}

.home #how-it-works .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item { margin: 0; }

.home #how-it-works .elementor-icon-list-icon {
	width: 40px;
	height: 40px;
	border-radius: 10px;
	background: rgba(211, 13, 39, 0.08);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-right: 12px;
}

/* Why Choose orbit cards: the label takes the slack, the tile never shrinks. */
.home #why-prexa365 .elementor-widget-heading { min-width: 0; }

/* Testimonials: join strip stacks the bold line and the link. */
.px-joinstrip { justify-content: center; gap: 24px; }
.px-joinstrip__body { display: flex; flex-direction: column; gap: 2px; }
.px-joinstrip__text { font-size: 1rem; }
.px-joinstrip__text strong { color: var(--px-navy, #101b3f); font-weight: 700; }
.px-joinstrip .px-link { font-size: 0.8125rem; }
.px-avatars .px-avatar--xs { width: 28px; height: 28px; font-size: 10px; }
/* Hero slides share slide one's box (1480 × 960) and letterbox inside it, so
   screenshots with other proportions are never cropped. */
.home #hero .px-swiper__slide img {
	width: 100%;
	aspect-ratio: 1480 / 960;
	object-fit: contain;
	object-position: center;
	box-shadow: none;
	filter: drop-shadow(0 24px 40px rgba(16, 27, 63, 0.14));
}

/* Nav links: no underline anywhere; hover = red text on a soft pill. */
.px-nav__link { transition: color 0.2s ease, background 0.2s ease; }
.px-nav__link:hover,
.px-nav__item.is-open > .px-nav__link { background: #f5f7fb; color: var(--px-red, #d30d27); text-decoration: none; }
.px-nav__link:hover .px-nav__chevron { transform: translateY(1px) rotate(225deg); }

/* Figma SVG icons inside Elementor icon / icon-list / button widgets: the
   glyph strokes use currentColor, so the widget colour controls apply. */
.elementor-icon .px-svg,
.elementor-icon-list-icon .px-svg,
.elementor-button-icon .px-svg { display: inline-block; width: 1em; height: 1em; }
.elementor-icon-list-icon { color: var(--e-icon-list-icon-color); }
.elementor-icon-list-icon .px-svg { width: var(--e-icon-list-icon-size, 14px); height: var(--e-icon-list-icon-size, 14px); }
.elementor-button-icon .px-svg { fill: none; }
.elementor-widget-icon .elementor-icon svg.px-svg { fill: none; }

/* ===================================================================
   Home · pixel pass against Figma frame 27:3 (1920 / 1360 container)
   =================================================================== */
/* Hero: the 740×480 window card (r24, shadow 0 24 48) and its dots. */
.home #hero .swiper { overflow: hidden; border-radius: 24px; box-shadow: 0 24px 48px rgba(16, 27, 63, 0.14); }
.home #hero .px-swiper__slide img { width: 100%; height: auto; aspect-ratio: 1520 / 960; object-fit: cover; object-position: left top; border-radius: 24px; filter: none; box-shadow: none; display: block; }
.home #hero .px-swiper__nav { margin-top: 20px; min-height: 44px; }
.home #hero .px-swiper__dots .swiper-pagination-bullet-active { width: 28px; }

/* Trust strip: 18px label, 32px gap, 116px logo row. */
.home .px-logostrip__heading { margin-bottom: 32px; font-size: 18px; letter-spacing: 1.8px; }
.home .px-logostrip__slider { min-height: 116px; display: flex; align-items: center; }

/* Services: pill tabs (6px well, 12/22 tabs, 15px) and 340px cards. */
.home #solutions .px-tabs__nav { gap: 12px; margin-bottom: 36px; }
.home #solutions .px-tab { padding: 12px 22px; font-size: 15px; font-weight: 600; }
.home #solutions .px-card--solution { height: 340px; padding: 28px; border-radius: 20px; }
.home #solutions .px-card--solution .px-card__icon { width: 52px; height: 52px; border-radius: 14px; margin-bottom: 14px; }
.home #solutions .px-card--solution .px-card__icon .px-svg { width: 22px; height: 22px; }
.home #solutions .px-card--solution .px-card__title { margin-bottom: 14px; font-size: 18px; line-height: 24px; letter-spacing: -0.3px; }
.home #solutions .px-card--solution .px-card__text { font-size: 13px; line-height: 20px; }
.home #solutions .px-card--solution .px-link { font-size: 12px; }
.home #solutions .px-tabs__foot, .home #solutions .px-section__note { margin-top: 36px; font-size: 14px; }

/* About: 48/56 heading, 17/28 intro, 243×100 stat tiles, 512×416 visual. */
.home #about .elementor-widget-heading h2.elementor-heading-title { font-size: 48px; line-height: 56px; letter-spacing: -1px; max-width: 500px; }
.home #about .elementor-widget-text-editor { font-size: 17px; line-height: 28px; max-width: 480px; }
.home #about .px-statbar--tiles { gap: 14px; }
.home #about .px-statbar--tiles .px-statbar__cell { padding: 18px 20px; border-radius: 14px; background: #f9fafb; border: 1px solid #e5e7eb; min-height: 100px; }
.home #about .px-statbar--tiles .px-statbar__value { font-size: 34px; line-height: 40px; letter-spacing: -0.8px; margin-bottom: 4px; }
.home #about .px-statbar--tiles .px-statbar__label { font-size: 13px; font-weight: 500; }
.home #about .elementor-widget-image img { width: 640px; height: auto; object-fit: contain; border-radius: 16px; border: 1px solid #e0e5f0; box-shadow: 0 12.8px 32px rgba(16, 27, 63, 0.14); }

/* Why Choose: 56px title, 96px cards with 20px padding, 720px diagram. */
.home #why-prexa365 h2.elementor-heading-title { font-size: 56px; letter-spacing: -2px; }
.home #why-prexa365 .e-con.e-child > .e-con-inner, .home #why-prexa365 .px-orbit-card { min-height: 96px; }
.home #why-prexa365 .elementor-widget-icon .elementor-icon { padding: 14px; border-radius: 14px; }
.home #why-prexa365 .elementor-widget-icon .elementor-icon .px-svg { width: 28px; height: 28px; }

/* Process: tabs → panel 40px, 42px tabs. */
.home #how-it-works .e-n-tabs-heading { margin-bottom: 40px; }
.home #how-it-works .e-n-tab-title { padding: 12px 22px; border-radius: 12px; font-size: 14px; }

/* Integrations: 520px panel, 32px gap, 184×133 logo tiles. */
.home .px-integrations__body { grid-template-columns: 520px minmax(0, 1fr); gap: 32px; }
.home .px-integrations__body .px-panel { padding: 36px; border-radius: 24px; }
.home .px-integrations__body .px-panel__title { font-size: 22px; line-height: 30px; }
.home .px-integrations__body .px-panel__text { font-size: 14px; line-height: 22px; }
.home .px-integrations__body .px-panel__row { min-height: 59px; padding: 16px 0; }
.home .px-integrations__wall .px-grid--tight { gap: 24px; }
.home .px-integrations__wall .px-logo { min-height: 133px; border-radius: 16px; }
.home .px-integrations__head .px-button, .home .px-button--outline { border-radius: 12px; padding: 14px 24px; font-size: 14px; border-color: #101b3f; color: #101b3f; }

/* Industries: 268px cards, 56px tinted tile, 19/26 title, 13/20 sub. */
.home #industries .px-card--industry { height: 268px; padding: 28px; border-radius: 20px; }
.home #industries .px-card--industry .px-card__icon { width: 56px; height: 56px; border-radius: 16px; }
.home #industries .px-card--industry .px-card__icon .px-svg { width: 26px; height: 26px; }
.home #industries .px-card--industry .px-card__title { font-size: 19px; line-height: 26px; letter-spacing: -0.3px; }
.home #industries .px-card--industry .px-card__text, .home #industries .px-card--industry .px-card__subs { font-size: 13px; line-height: 20px; }
.home #industries .px-section__cta { margin-top: 64px; }

/* Case studies: 432px cards on a 32px gap, 360px tall, 6px stripe. */
.home #case-studies .px-grid { gap: 32px; }
.home #case-studies .px-case { min-height: 360px; border-radius: 16px; padding: 30px 28px 24px; border: 1px solid #e0e5f0; box-shadow: 0 8px 24px rgba(16, 27, 63, 0.06); }
.home #case-studies .px-case::before { height: 6px; }

/* Testimonials: 123px stat bar, 420/460 cards, 48px rhythm, 88px strip. */
.home #testimonials .px-statbar--card { min-height: 123px; padding: 32px 56px; border-radius: 20px; margin-bottom: 48px; }
.home #testimonials .swiper-wrapper { align-items: center; }
.home #testimonials .px-quote { min-height: 420px; padding: 36px 32px 32px; border-radius: 24px; border-color: #e0e5f0; box-shadow: 0 8px 24px rgba(16, 27, 63, 0.06); }
.home #testimonials .px-quote.is-center { min-height: 460px; padding: 44px 36px 36px; border: 2px solid #d40d26; box-shadow: 0 16px 40px rgba(16, 27, 63, 0.10); }
.home #testimonials .px-quote { transition: min-height 0.35s ease, padding 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease; }
.home #testimonials .px-quote__mark { font-size: 56px; line-height: 36px; }
.home #testimonials .px-quote__text { font-size: 15px; line-height: 1.6; font-weight: 500; }
.home #testimonials .px-swiper__nav { margin-top: 48px; }
.home #testimonials .px-joinstrip { margin-top: 48px; min-height: 88px; padding: 24px 40px; border-radius: 16px; }

/* CTA banner glow + chips. */
.home .px-cta-banner { box-shadow: 0 24px 48px rgba(10, 18, 48, 0.24); }
.home .px-cta-banner .elementor-widget-icon-list { margin-top: 16px; }

/* Blog: 432px cards on 32px gap, r24, 228px image, 24/28 body. */
.home #blog .px-grid { gap: 32px; }
.home #blog .px-card--resource { border-radius: 24px; border: 1px solid #e5e7eb; }
.home #blog .px-card--resource .px-card__media img { height: 228px; }
.home #blog .px-card--resource .px-card__body { padding: 24px 28px; }
.home #blog .px-card--resource .px-card__title { font-size: 20px; line-height: 28px; margin: 12px 0; }
.home #blog .px-card--resource .px-card__text { font-size: 14px; line-height: 22px; }

/* Footer rhythm. */
/* (old dark footer: 12px heading override removed 2026-09-25) */

/* Home pixel pass 2: section head rhythm and remaining card metrics. */
.home #solutions .px-head, .home #how-it-works .px-head, .home #industries .px-head, .home #integrations .px-integrations__head { margin-bottom: 64px; }
.home #testimonials .px-head { margin-bottom: 56px; }
.home #case-studies .px-split-head, .home #blog .px-split-head { margin-bottom: 56px; }
.home .px-split-head .px-head__intro { max-width: 560px; font-size: 17px; line-height: 28px; }
.home #solutions .px-footnote { margin-top: 36px; }
.home #about .elementor-widget-heading:has(h2) { margin-top: 16px; margin-bottom: 20px; }
.home #about .elementor-button { min-height: 49px; line-height: 21px; }
.home .px-integrations__wall > p:last-child, .home .px-integrations__note { margin-top: 24px; }
.home #industries .px-head p { max-width: 860px; }
.home #testimonials .px-statbar--card { height: 123px; padding: 0 56px; display: flex; align-items: center; }
.home #testimonials .px-joinstrip { height: 88px; padding: 0 40px; align-items: center; }
.home .px-cta-banner .elementor-widget-icon-list, .home #get-started .elementor-widget-icon-list { margin-top: 16px; }
.home #blog .px-card--resource .px-card__foot { margin-top: 41px; }
#colophon .elementor-widget-heading .elementor-heading-title { white-space: nowrap; }
/* Home pixel pass 3. */
.home .px-cta-banner .elementor-widget-text-editor { max-width: 720px; }
.home .px-cta-banner .elementor-button { line-height: 24px; }
.home .px-cta-banner .px-eyebrow-head .elementor-heading-title { line-height: 17px; }
.home #about .px-statbar--tiles .px-statbar__cell { height: 100px; box-sizing: border-box; min-height: 0; }
.home #how-it-works .e-n-tab-title { line-height: 18px; font-size: 15px; }
.home #how-it-works .e-n-tabs-content { padding: 32px 0 24px; }
#colophon .px-footer-foot .elementor-heading-title { font-size: 11px; }
.home #blog .px-card--resource .px-card__foot { margin-top: 24px; padding-top: 20px; }
.home #blog .px-split-head .px-head__title { max-width: 540px; }
/* Home pixel pass 4. */
.home #testimonials .px-statbar--card { display: grid; grid-template-columns: repeat(4, 1fr); align-items: center; }
.home #how-it-works .e-n-tabs-content { padding: 20px 0 0; }
.home #blog .px-card--resource { height: 577px; }
.home #blog .px-card--resource .px-card__body { display: flex; flex-direction: column; flex: 1 1 auto; }
.home #blog .px-card--resource .px-card__foot { margin-top: auto; padding-top: 20px; }
.home #hero .px-swiper__slide { display: block; line-height: 0; font-size: 0; }
.home #hero .swiper-wrapper { align-items: flex-start; }
.home #hero .swiper { padding: 0; }
/* Why Choose: fixed 320×96 cards, labels wrap inside them, diagram behind. */
.home #why-prexa365 .px-orbit-card .elementor-widget-heading { min-width: 0; flex: 1 1 0%; }
.home #why-prexa365 .px-orbit-card .elementor-heading-title { overflow-wrap: anywhere; }
.home #why-prexa365 .px-orbit-card { position: relative; z-index: 1; }
.home #why-prexa365 .elementor-widget-prexa365_orbit_diagram { position: absolute; inset: 0; z-index: 0; }
.home #why-prexa365 .px-orbit-card { height: 96px; min-height: 0; }
.home #why-prexa365 .px-orbit-card .elementor-icon-wrapper { line-height: 0; }
.home #why-prexa365 .px-orbit-card .elementor-icon { display: flex; width: 56px; height: 56px; box-sizing: border-box; }
/* Process tabs: icon and label on one baseline, 16px glyph, 42px pill. */
.home #how-it-works .e-n-tab-title { display: inline-flex; align-items: center; gap: 8px; padding: 12px 22px; height: 42px; box-sizing: border-box; }
.home #how-it-works .e-n-tab-icon { display: flex; align-items: center; height: 16px; line-height: 0; }
.home #how-it-works .e-n-tab-icon svg { width: 16px; height: 16px; }
.home #how-it-works .e-n-tab-title-text { line-height: 18px; font-size: 15px; font-weight: 600; }
.home #how-it-works .e-n-tabs-content img { max-height: 460px; width: auto; max-width: 100%; margin: 0 auto; display: block; }
.home #how-it-works .e-n-tab-title[aria-selected="true"] .e-n-tab-icon > :first-child,
.home #how-it-works .e-n-tab-title[aria-selected="false"] .e-n-tab-icon > :last-child { display: none !important; }
.home #how-it-works .e-n-tab-icon { height: auto; }
.home #how-it-works .e-n-tabs-content .elementor-widget-image { width: 100%; }
.home #how-it-works .e-n-tabs-content .elementor-widget-image .elementor-widget-container { display: flex; justify-content: center; align-items: center; min-height: 460px; }

/* Footer contact items (Figma 174:76/84/91/98): 40px tile, 12px gap, 11/13 label over 14/17 value, 32px text block centred on the tile. */
#colophon .px-footer-foot { min-height: 40px; align-items: center; }
#colophon .px-footer-foot .elementor-widget-icon { flex: 0 0 40px; width: 40px; }
#colophon .px-footer-foot .elementor-widget-icon .elementor-icon-wrapper { line-height: 0; }
#colophon .px-footer-foot .elementor-widget-icon .elementor-icon { display: block; width: 40px; height: 40px; }
#colophon .px-footer-foot .elementor-widget-icon .elementor-icon svg { width: 40px; height: 40px; }
#colophon .px-footer-foot > .e-con { gap: 2px; }
#colophon .px-footer-foot .elementor-widget-heading .elementor-heading-title { font-size: 11px; line-height: 13px; }
#colophon .px-footer-foot .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title { font-size: 14px; line-height: 17px; }
#colophon .px-footer-foot .elementor-widget-heading .elementor-heading-title a { color: inherit; }

/* Keyboard focus: one visible ring everywhere (mouse clicks stay clean via :focus-visible). */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible, .elementor-button:focus-visible, .px-button:focus-visible { outline: 2px solid #1a8ced; outline-offset: 3px; border-radius: 6px; }
a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline: none; }
#colophon a:focus-visible, #masthead a:focus-visible { outline-color: #ffffff; }
#masthead .px-nav__link:focus-visible, .elementor-icon-list-item a:focus-visible { outline-offset: 4px; }
.px-subscribe__input:focus-visible, .px-form__input:focus-visible { outline-offset: 2px; border-radius: 10px; }

/* About hero (Figma 972:64): coverflow slider in a 672px box, white 36px arrows on the edges, dots 16px under. */
.px-about-hero .px-swiper { position: relative; }
.px-about-hero .swiper { overflow: hidden; padding: 0; }
.px-about-hero .px-swiper__slide { display: block; line-height: 0; }
.px-about-hero .px-swiper__slide img { width: 100%; height: auto; box-shadow: none; }
.px-about-hero .px-swiper__nav { position: static; margin-top: 16px; justify-content: center; }
.px-about-hero .px-swiper__btn { display: inline-flex; position: absolute; top: calc(50% - 20px); z-index: 6; width: 36px; height: 36px; border-radius: 50%; background: #fff; color: #0f1a40; box-shadow: 0 8px 20px rgba(16, 27, 63, 0.14); border: 1px solid #eef1f6; align-items: center; justify-content: center; }
.px-about-hero .px-swiper__prev { left: 8px; }
.px-about-hero .px-swiper__next { right: 8px; }
.px-about-hero .px-swiper__btn .px-svg { width: 14px; height: 14px; }
.px-flag .elementor-icon-wrapper { line-height: 0; }
.px-flag .elementor-icon svg.px-svg { width: 46px; height: 32px; }
#trust-strip .px-trust-cell { width: auto; }

/* About hero: the 2× dash-slide export carries ~60px of shadow bleed; clip it to the frame's 430px box (card at y23) with the dots at y425. */
.px-about-hero .swiper { margin: -37px 0 -22px; }
.px-about-hero .px-swiper__nav { margin-top: -12px; }
.px-about-hero .px-swiper__btn { top: calc(50% - 4px); }

.px-about-hero .px-swiper__nav { margin-top: -17px; }
@media (max-width: 767px) { .px-about-hero .swiper { margin: 0; } .px-about-hero .px-swiper__nav { margin-top: 12px; } .px-about-hero .px-swiper__btn { top: calc(50% - 26px); } }

/* About hero, pass 2: arrows off, shadows unclipped (the loop's far slides are clipped 40px outside the box). */
.px-about-hero .px-swiper__btn { display: none !important; }
.px-about-hero .swiper { overflow-x: clip; overflow-y: visible; padding: 0 40px; margin: -37px -40px -22px; }
.px-about-hero .px-swiper__nav { position: relative; z-index: 3; }
@media (max-width: 767px) { .px-about-hero .swiper { overflow: hidden; padding: 0; margin: 0; } }

/* ================================================ Footer (Figma 662:4) */
/* Light band: soft orbs + 32px dot grid behind everything. */
.px-footer2 { position: relative; overflow: hidden; background-color: #F9FAFC; background-image: radial-gradient(circle at 0% 45%, rgba(124, 98, 255, 0.035), transparent 38%), radial-gradient(circle at 92% 0%, rgba(212, 13, 38, 0.025), transparent 32%), radial-gradient(circle at 55% 100%, rgba(41, 117, 255, 0.03), transparent 30%), radial-gradient(circle, rgba(15, 20, 46, 0.09) 1px, transparent 1.5px); background-size: auto, auto, auto, 32px 32px; background-position: 0 0, 0 0, 0 0, 16px 16px; }
.px-footer2 > .e-con { position: relative; z-index: 1; }
/* Newsletter card: lavender orb top-left (430:1511/1512). */
.px-fnews { background-image: radial-gradient(circle at 0% 0%, rgba(124, 98, 255, 0.11), transparent 40%), radial-gradient(circle at 6% 10%, rgba(124, 98, 255, 0.06), transparent 34%); border: 1px solid #EEF1F6; }
.px-fnews .px-subscribe { max-width: none; width: 100%; }
.px-fnews .px-subscribe__form { display: flex; gap: 12px; align-items: stretch; background: none; border: 0; padding: 0; }
.px-fnews .px-subscribe__input { flex: 1 1 auto; height: 56px; padding: 0 16px 0 46px; border: 1px solid #D6DEE8; border-radius: 12px; background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2218%22%20height%3D%2218%22%20viewBox%3D%220%200%2018%2018%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cg%20id%3D%22Frame%22%3E%0A%3Cpath%20id%3D%22Vector%22%20d%3D%22M2.25%206L9%2010.5L15.75%206M2.25%206V13.5C2.25%2013.8978%202.40804%2014.2794%202.68934%2014.5607C2.97064%2014.842%203.35218%2015%203.75%2015H14.25C14.6478%2015%2015.0294%2014.842%2015.3107%2014.5607C15.592%2014.2794%2015.75%2013.8978%2015.75%2013.5V6M2.25%206C2.25%205.60218%202.40804%205.22064%202.68934%204.93934C2.97064%204.65804%203.35218%204.5%203.75%204.5H14.25C14.6478%204.5%2015.0294%204.65804%2015.3107%204.93934C15.592%205.22064%2015.75%205.60218%2015.75%206%22%20stroke%3D%22%238C94A8%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%0A%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A") 18px center / 18px 18px no-repeat; font-size: 15px; color: #0F142E; }
.px-fnews .px-subscribe__input::placeholder { color: #8C94A8; }
.px-fnews .px-subscribe__button { height: 59px; padding: 0 24px; border-radius: 12px; font-size: 15px; font-weight: 700; gap: 8px; background: linear-gradient(180deg, #D40D26 0%, #99081B 100%); box-shadow: 0 10px 22px rgba(212, 13, 38, 0.28); }
.px-fnews .px-subscribe__button:hover { background: linear-gradient(180deg, #BD0B22 0%, #7F0616 100%); }
.px-fnews .elementor-icon-list-icon .px-svg { width: 12px; height: 12px; }
/* Contact card flags: 34px white disc with a hairline ring around the 22px flag. */
.px-fflag .elementor-icon { width: 34px; height: 34px; padding: 5px; background: #fff; border: 1px solid #E8EDF5; box-sizing: border-box; display: flex; align-items: center; justify-content: center; }
.px-fflag .elementor-icon svg.px-svg { width: 22px; height: 22px; }
.px-fcontact .elementor-icon-list-item { display: flex; align-items: center; }
/* Link columns: no icons, 15px links on a 35px pitch. */
.px-footer2 .elementor-icon-list-icon:empty { display: none; }
/* Bottom bar. */
.px-footer2-bar .elementor-widget-image img { max-width: 194px; height: auto; }
.px-socials2 .elementor-social-icon { width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; }
.px-socials2 .elementor-social-icon .px-svg { width: 16px; height: 16px; }
#colophon .elementor-widget-heading .elementor-heading-title { white-space: normal; }
#colophon .px-footer2-bar .elementor-widget-heading .elementor-heading-title { white-space: nowrap; }
#colophon .elementor-widget-heading .elementor-heading-title a { color: inherit; }

.px-fpill .elementor-icon-list-icon .px-svg { width: 6px; height: 6px; }
.px-fpill .elementor-icon-list-item { display: flex; align-items: center; }
/* Footer v2: text-editor paragraphs carry no trailing margin (frame: 44px text block). */
.px-footer2 .elementor-widget-text-editor p { margin: 0; }
.px-fnews .elementor-widget-text-editor p { margin: 0; }
/* About hero: only the active card and its two neighbours show (frame 972:64 has three cards); the loop's outer slides fade out. */
.px-about-hero .swiper-slide { transition: opacity 0.35s ease; }
.px-about-hero .swiper-slide:not(.swiper-slide-active):not(.swiper-slide-prev):not(.swiper-slide-next) { opacity: 0; pointer-events: none; }
/* Leadership cards: the LinkedIn "in" is a 36px blue disc (frame 1014:15). */
.px-team-li .elementor-button { width: 36px; height: 36px; min-height: 0; padding: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; line-height: 1; }
.px-team-li .elementor-button-content-wrapper, .px-team-li .elementor-button-text { line-height: 1; }
/* Icon lists: Elementor colours an SVG via `fill` on the <svg>, but Figma glyphs carry fill="currentColor" on their paths; let filled glyphs take the widget's colour. */
.elementor-widget-icon-list .elementor-icon-list-icon svg.px-svg [fill="currentColor"] { fill: inherit; }
/* Integrations · Microsoft ecosystem rows: long names wrap instead of pushing the Synced pill out (frame: "Dynamics 365 Business Central" on two lines). */
#microsoft-ecosystem .elementor-widget-heading { min-width: 0; flex-shrink: 1; }
/* Home cards: every card's link/foot sits on the card bottom; solution copy clamps to 7 lines so tabs read alike. */
.home #solutions .px-card--solution .px-card__text { flex: 0 0 auto; max-height: 100px; display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
.home #solutions .px-card--solution .px-link { margin-top: auto; }
.home #blog .px-card--resource .px-card__text { flex: 1 1 auto; }
.home #blog .px-card--resource .px-card__foot { margin-top: auto; padding-top: 20px; }
.home #blog .px-card--resource .px-card__text { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.home #blog .px-card--resource .px-card__text { max-height: 66px; }

/* ============================================ Privacy Policy (Figma 1692:1743) */
.px-policy .elementor-widget-text-editor p { margin: 0; }
.px-policy .elementor-widget-text-editor strong { color: #0F142E; font-weight: 600; }
.px-policy-list .elementor-icon-list-item { align-items: flex-start; }
.px-policy-list .elementor-icon-list-icon { margin-top: 9px; }
.px-policy-list .elementor-icon-list-icon .px-svg { width: 6px; height: 6px; }
.px-policy-list .elementor-icon-list-text { line-height: 24px; }
.px-dpo-card .elementor-heading-title a { color: inherit; }
/* Platform hero CTAs (Figma 791:59/63): 16px white arrow on the red button, 24px tinted play disc on the tour button, 9px from the label. */
.page-id-308 #hero .elementor-button-icon .px-svg { width: 16px; height: 16px; }
.page-id-308 #hero .elementor-button-icon svg[viewBox="0 0 24 24"] { width: 24px; height: 24px; }
.page-id-308 #hero .elementor-button .elementor-button-icon { display: inline-flex; }

/* Fixed-width inner containers (1360 section content, 1200 CTA banner, 860
 * heads) never exceed their parent: Elementor has no max-width control for
 * containers, so between the tablet breakpoint and the design width they used
 * to overflow and scroll the page sideways. */
.elementor .e-con { max-width: 100%; }
/* Home integrations: the 520px panel column is desktop-only. */
@media (max-width: 1024px) {
	.home .px-integrations__body { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) {
	.home .px-integrations__body .px-panel { padding: 24px 20px; }
}
/* Home testimonials stat card: 2×2 on phones (the fixed 123px / 4-column desktop layout overflowed). */
@media (max-width: 767px) {
	.home #testimonials .px-statbar--card { grid-template-columns: repeat(2, minmax(0, 1fr)); height: auto; padding: 18px 12px; row-gap: 6px; }
	.home #testimonials .px-statbar--card .px-statbar__cell { padding-inline: 8px; }
	.home #testimonials .px-joinstrip { height: auto; padding: 18px 20px; }
}

/* Icon widgets: no text line box around the glyph, so an icon is exactly its
 * own size and sits dead-centre in its tile / circle / row (it used to ride
 * ~4px high because the wrapper kept a 1.x line-height below the SVG). */
.elementor-widget-icon .elementor-icon-wrapper { line-height: 0; }
.elementor-widget-icon .elementor-icon { display: inline-flex; align-items: center; justify-content: center; line-height: 0; vertical-align: middle; }
.elementor-widget-icon .elementor-icon svg { display: block; }

/* ---------------------------------------------------------------------------
 * Contact Form 7 — Contact page form (Figma 1253:2): 2-up rows, 12.5px labels,
 * 46px #FBFBFE inputs with a #E3E8F1 1px border, red pill submit with arrow.
 * ------------------------------------------------------------------------- */
.px-cf7-wrap, .px-cf7-wrap .elementor-shortcode { width: 100%; }
.px-cf7 { display: flex; flex-direction: column; gap: 18px; font-family: 'Inter', sans-serif; }
.px-cf7__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.px-cf7__field { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.px-cf7__label { font-size: 12.5px; font-weight: 600; line-height: 1.2; color: #3a4156; }
.px-cf7__req { color: #d40d26; font-weight: 700; }
.px-cf7 .wpcf7-form-control-wrap { display: block; }
.px-cf7 input[type="text"], .px-cf7 input[type="email"], .px-cf7 input[type="tel"], .px-cf7 input[type="url"],
.px-cf7 input[type="number"], .px-cf7 select, .px-cf7 textarea {
	width: 100%; box-sizing: border-box; height: 46px; padding: 13px 16px; margin: 0;
	font: 400 13.5px/1.2 'Inter', sans-serif; color: #0f142e;
	background: #fbfbfe; border: 1px solid #e3e8f1; border-radius: 10px; box-shadow: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}
.px-cf7 textarea { height: 96px; min-height: 96px; resize: vertical; line-height: 1.45; }
.px-cf7 select {
	appearance: none; -webkit-appearance: none; padding-right: 40px; color: #0f142e; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%238C94A8' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 16px center;
}
.px-cf7 select:invalid, .px-cf7 select option[value=""] { color: #9aa1b4; }
.px-cf7 ::placeholder { color: #9aa1b4; opacity: 1; }
.px-cf7 input:focus, .px-cf7 select:focus, .px-cf7 textarea:focus {
	outline: none; background-color: #fff; border-color: #d40d26; box-shadow: 0 0 0 3px rgba(212, 13, 38, 0.10);
}
.px-cf7 .wpcf7-not-valid { border-color: #d40d26 !important; }
.px-cf7 .wpcf7-not-valid-tip { margin-top: 5px; font-size: 11.5px; color: #d40d26; }
.px-cf7__submit { position: relative; display: flex; align-items: center; gap: 12px; }
.px-cf7 .wpcf7-submit {
	height: 48px; padding: 0 56px 0 30px; border: 0; border-radius: 999px; cursor: pointer;
	font: 600 15px/1 'Inter', sans-serif; color: #fff;
	background: #d40d26 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 12 10' fill='none'%3E%3Cpath d='M3.08334 5H8.91668' stroke='white' stroke-width='1.2' stroke-linecap='round'/%3E%3Cpath d='M6 2.08337L8.91667 5.00004L6 7.91671' stroke='white' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 30px center;
	box-shadow: 0 8px 20px rgba(212, 13, 38, 0.30);
	transition: background-color 0.2s ease, transform 0.2s ease, background-position 0.2s ease;
}
.px-cf7 .wpcf7-submit:hover { background-color: #b80a21; background-position: right 26px center; transform: translateY(-1px); }
.px-cf7 .wpcf7-spinner { margin: 0; }
.px-cf7__note { margin: 0; text-align: center; font-size: 12px; font-weight: 500; line-height: 1.3; color: #8c94a8; }
.px-cf7-wrap .wpcf7-response-output { margin: 16px 0 0 !important; padding: 12px 16px !important; border-radius: 10px; font-size: 13.5px; }
.px-cf7-wrap .wpcf7 form.sent .wpcf7-response-output { border-color: #0fa673 !important; background: #f3fbf7; color: #0a8a5f; }
@media (max-width: 767px) {
	.px-cf7__row { grid-template-columns: minmax(0, 1fr); }
	.px-cf7 .wpcf7-submit { width: 100%; }
}

/* Contact hero panel: blue glow bottom-right (Resources uses purple). */
.e-con.px-con-hub::after { background: rgba(41, 117, 255, 0.10); }
.px-con-chip .elementor-icon-list-icon svg { width: 14px; height: auto; border-radius: 2px; }
.e-con.px-res-hub > .e-con:last-child > .px-rlink { margin-left: auto; }
/* Contact: head-office tag hugs the card's right edge; flag chips stay compact. */
.elementor-element.px-con-tag { margin-left: auto !important; }
.px-con-chip .elementor-icon-list-icon { width: 16px !important; min-width: 16px; }
.px-con-chip .elementor-icon-list-icon svg { width: 16px !important; height: auto !important; }
.px-con-chip .elementor-icon-list-text { padding-inline-start: 6px !important; }
/* CF7 selects show the placeholder colour until a real option is picked. */
.px-cf7 select:has(option[value=""]:checked) { color: #9aa1b4; }
.px-cf7 select option { color: #0f142e; }

/* Book a Demo (Figma 1262:2). */
.e-con.px-demo-includes { position: relative; isolation: isolate; }
.e-con.px-demo-includes::before { content: ""; position: absolute; z-index: -1; width: 260px; height: 260px; left: -70px; top: -90px; border-radius: 50%; background: rgba(212, 13, 38, 0.35); filter: blur(70px); pointer-events: none; }
.px-demo-tick .elementor-icon { padding: 6.5px !important; }
.px-demo-tick .elementor-icon svg, .px-demo-tick .elementor-icon i { width: 11px; height: 11px; font-size: 11px; }
.px-cta-contacts { width: 100%; }
.px-cta-contacts .elementor-icon-list-items { justify-content: center; flex-wrap: wrap; row-gap: 8px; }
.px-cta-contacts .elementor-icon-list-icon svg { width: 14px; height: 14px; }
.px-cta-contacts .elementor-icon-list-icon svg path { stroke: #FF6B7D; }
/* Hero dashboard slider: the ±40px shadow bleed is desktop-only (it scrolled tablets sideways). */
@media (max-width: 1024px) and (min-width: 768px) { .px-about-hero .swiper { margin-inline: 0; padding-inline: 0; } }

/* CF7 submit keeps its red pill when focused after a click (the field focus
 * rule `.px-cf7 input:focus` turned it white with white text). */
.px-cf7 .wpcf7-submit:focus { outline: none; background-color: #d40d26; border: 0; box-shadow: 0 8px 20px rgba(212, 13, 38, 0.30); }
.px-cf7 .wpcf7-submit:focus-visible { outline: 2px solid #1a8ced; outline-offset: 3px; }
.px-cf7 .wpcf7-submit:hover, .px-cf7 .wpcf7-submit:focus:hover { background-color: #b80a21; background-position: right 26px center; transform: translateY(-1px); }
.px-cf7 .wpcf7-submit:active { transform: none; background-color: #a3091d; }
.px-cf7 .wpcf7-submit:disabled { opacity: 0.7; cursor: progress; }

/* CF7 response box in the form's type and colours (was the plugin's yellow box). */
.px-cf7-wrap .wpcf7-response-output {
	font: 500 13.5px/1.45 'Inter', sans-serif; border-width: 1px !important; border-style: solid !important;
	border-color: #f3c4cb !important; background: #fdf2f4; color: #b80a21;
}
.px-cf7-wrap .wpcf7 form.sent .wpcf7-response-output { border-color: #cdeeda !important; background: #f3fbf7; color: #0a8a5f; }
.px-cf7-wrap .wpcf7 form.failed .wpcf7-response-output,
.px-cf7-wrap .wpcf7 form.aborted .wpcf7-response-output,
.px-cf7-wrap .wpcf7 form.spam .wpcf7-response-output { border-color: #f3c4cb !important; background: #fdf2f4; color: #b80a21; }
.px-cf7 .wpcf7-not-valid-tip { font-family: 'Inter', sans-serif; font-weight: 500; }

/* ---------------------------------------------------------------------------
 * Industry detail pages (Figma Industries page 1699:2).
 * ------------------------------------------------------------------------- */
.single-px_industry #hero { position: relative; overflow: hidden; isolation: isolate;
	background: linear-gradient(160deg, #FFFFFF 0%, #EEF3FF 55%, #E6ECFF 100%) !important; }
.single-px_industry #hero::before, .single-px_industry #hero::after { content: ""; position: absolute; z-index: -1; border-radius: 50%; pointer-events: none; filter: blur(110px); background: rgba(41, 117, 255, 0.16); }
.single-px_industry #hero::before { width: 540px; height: 540px; left: -180px; top: -160px; }
.single-px_industry #hero::after { width: 460px; height: 460px; right: -120px; bottom: -200px; }

/* Hero visual: blue tile (−3°), photo card with 8px white frame (+2°), glass badge. */
.e-con.px-ind-visual { position: relative; min-height: 470px; display: block !important; }
.e-con.px-ind-tile { position: absolute !important; left: 12.7%; top: 50px; width: 85.1%; height: 380px; border-radius: 32px;
	background: linear-gradient(135deg, #2975FF 0%, #5B9DFF 100%); transform: rotate(-3deg); }
.elementor-element.px-ind-photo { position: absolute !important; left: 2.2%; top: 20px; width: 92.8% !important; z-index: 2; transform: rotate(2deg); }
.elementor-element.px-ind-photo img { width: 100% !important; aspect-ratio: 512 / 330; height: auto; object-fit: cover; display: block;
	border: 8px solid #fff; border-radius: 24px !important; box-shadow: 0 40px 90px rgba(10, 20, 48, 0.28); box-sizing: border-box; }
.e-con.px-ind-glass { position: absolute !important; left: 0; top: 372px; z-index: 3; width: auto !important; max-width: 100%;
	background: rgba(255, 255, 255, 0.66); border: 1px solid rgba(255, 255, 255, 0.7); border-radius: 16px;
	-webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); box-shadow: 0 14px 34px rgba(10, 20, 48, 0.18); }

/* Browser window beside the "Why PREXA365" checklist. */
.e-con.px-ind-wvisual { position: relative; min-height: 420px; display: flex !important; align-items: center; }
.e-con.px-ind-wtile { position: absolute !important; left: 10.3%; top: 46px; width: 75.3%; height: 330px; border-radius: 26px; background: linear-gradient(135deg, #2975FF 0%, #5B9DFF 100%); }
.e-con.px-ind-window { position: relative; z-index: 2; width: 80.5% !important; margin-top: -30px; }
.e-con.px-ind-window .elementor-widget-image img { width: 100%; aspect-ratio: 470 / 300; object-fit: cover; display: block; border-radius: 0; }
.e-con.px-ind-bar { gap: 14px !important; }
.e-con.px-ind-bar::before { content: ""; flex: none; width: 46px; height: 10px;
	background: radial-gradient(circle at 5px 5px, #FF5F57 4.6px, transparent 5px), radial-gradient(circle at 23px 5px, #FEBC2E 4.6px, transparent 5px), radial-gradient(circle at 41px 5px, #28C840 4.6px, transparent 5px); }
.e-con.px-ind-bar .elementor-widget-heading { background: #fff; border-radius: 6px; padding: 4px 40px 4px 12px; }

/* Check discs, image tiles. */
.px-ind-check .elementor-icon svg { width: 1em; height: 1em; }
.elementor-element.px-ind-itile img { width: 62px !important; height: 62px; border-radius: 16px; }
.elementor-element.px-ind-btile img { width: 50px !important; height: 50px; border-radius: 13px; box-shadow: 0 6px 14px rgba(41, 117, 255, 0.30); }
.px-ind-btn .elementor-button-icon svg { width: 8px; height: auto; }

/* CTA banner, blue variant (industry pages). */
body:not(.home) #get-started > .e-con > .e-con.px-cta-blue {
	background-image:
		radial-gradient(620px 620px at 18% 110%, rgba(41, 117, 255, 0.42) 0%, rgba(41, 117, 255, 0) 70%),
		radial-gradient(760px 760px at 92% 95%, rgba(41, 117, 255, 0.38) 0%, rgba(41, 117, 255, 0) 70%) !important;
	background-size: auto, auto !important; background-repeat: no-repeat, no-repeat !important;
}

@media (max-width: 1024px) {
	.e-con.px-ind-visual { margin-inline: auto; width: 552px !important; max-width: 100%; }
	.e-con.px-ind-wvisual { margin-inline: auto; }
}
@media (max-width: 767px) {
	.e-con.px-ind-visual { min-height: 0; display: flex !important; flex-direction: column; gap: 14px; }
	.e-con.px-ind-tile { display: none !important; }
	.elementor-element.px-ind-photo, .e-con.px-ind-glass { position: relative !important; left: auto; top: auto; width: 100% !important; transform: none; }
	.e-con.px-ind-wvisual { min-height: 0; }
	.e-con.px-ind-wtile { display: none !important; }
	.e-con.px-ind-window { width: 100% !important; margin-top: 0; }
}
/* Window bar: dots as a background (Elementor owns ::before on containers); no gap under the bar. */
.e-con.px-ind-window { gap: 0 !important; --gap: 0px; --row-gap: 0px; }
.e-con.px-ind-bar::before { content: none !important; }
.e-con.px-ind-bar { padding-left: 74px !important;
	background: radial-gradient(circle at 19px 50%, #FF5F57 4.6px, transparent 5px), radial-gradient(circle at 36px 50%, #FEBC2E 4.6px, transparent 5px), radial-gradient(circle at 53px 50%, #28C840 4.6px, transparent 5px), #F4F6FB !important; }
/* Why-PREXA365 window (Figma wR 584×420): window 470 wide at y10; blue tile
 * 440×330 at (60, 46) — it peeks ~30px right and ~32px below the window.
 * Both are sized from the same box so the offset holds at every width. */
.e-con.px-ind-wvisual { display: block !important; min-height: 0 !important; padding: 10px 0 44px !important; }
.e-con.px-ind-window { margin: 0 !important; width: 80.48% !important; }
.e-con.px-ind-wtile { left: 10.27% !important; top: 46px !important; width: 75.34% !important; height: auto !important; aspect-ratio: 440 / 330; }
@media (max-width: 767px) { .e-con.px-ind-wvisual { padding: 0 !important; } .e-con.px-ind-window { width: 100% !important; } }

/* ------------------------------------------------------------------------
 * Solution / AI-agent detail pages (Figma "Solutions & AI" 1699:3).
 * --------------------------------------------------------------------- */
.elementor-element.px-sol-tile img { display: block; height: auto; aspect-ratio: 1; object-fit: cover; }
.single-px_solution #hero {
	background-image:
		radial-gradient(520px 360px at 8% 58%, rgba(41, 117, 255, 0.10) 0%, rgba(41, 117, 255, 0) 70%),
		radial-gradient(560px 420px at 94% 18%, rgba(115, 77, 235, 0.07) 0%, rgba(115, 77, 235, 0) 70%),
		linear-gradient(180deg, #FFFFFF 0%, #EEF3FC 100%) !important;
}
/* App windows: bar with dots (background) over a screen image. */
.e-con.px-sol-win { gap: 0 !important; --gap: 0px; --row-gap: 0px; }
.e-con.px-sol-win .elementor-widget-image img { width: 100% !important; display: block; border-radius: 0; object-fit: cover; }
.e-con.px-sol-back { border-radius: 22px; background: linear-gradient(135deg, #2975FF 0%, #5B9DFF 100%); }
.e-con.px-sol-pw-back .elementor-widget-image img { aspect-ratio: 380 / 250; }
.e-con.px-sol-pw-front .elementor-widget-image img { aspect-ratio: 460 / 300; }
.e-con.px-sol-wf-win .elementor-widget-image img { aspect-ratio: 490 / 300; }
.e-con.px-ai-win .elementor-widget-image img { aspect-ratio: 500 / 330; }
/* Power visual (620×452): tile 470×330 @(140,50), back 380 @(230,0), front 460 @(20,120). */
.e-con.px-sol-pw { position: relative; display: block !important; aspect-ratio: 620 / 452; height: auto; }
.e-con.px-sol-pw > .e-con { position: absolute !important; margin: 0 !important; }
.e-con.px-sol-pw-tile { left: 22.58%; top: 11.06%; width: 75.81% !important; height: 73.01%; }
.e-con.px-sol-pw-back { left: 37.1%; top: 0; width: 61.29% !important; z-index: 1; }
.e-con.px-sol-pw-front { left: 3.23%; top: 26.55%; width: 74.19% !important; z-index: 2; }
/* Workflow visual (578×380): tile 470×310 @(60,56), window 490 @(0,16). */
.e-con.px-sol-wf { position: relative; display: block !important; aspect-ratio: 578 / 380; height: auto; flex: none; }
.e-con.px-sol-wf > .e-con { position: absolute !important; margin: 0 !important; }
.e-con.px-sol-wf-tile { left: 10.38%; top: 14.74%; width: 81.31% !important; height: 81.58%; border-radius: 20px; }
.e-con.px-sol-wf-win { left: 0; top: 4.21%; width: 84.78% !important; z-index: 2; }
/* AI hero visual (560×400): tile 470×320 @(70,40), window 500 @(10,20). */
.e-con.px-ai-visual { position: relative; display: block !important; aspect-ratio: 560 / 400; height: auto; }
.e-con.px-ai-visual > .e-con { position: absolute !important; margin: 0 !important; }
.e-con.px-ai-tile { left: 12.5%; top: 10%; width: 83.93% !important; height: 80%; border-radius: 24px; }
.e-con.px-ai-win { left: 1.79%; top: 5%; width: 89.29% !important; z-index: 2; }
.e-con.px-sol-panel { overflow: hidden; position: relative; }
.e-con.px-sol-panel > .e-con { position: relative; z-index: 1; }

@media (max-width: 1024px) {
	.e-con.px-sol-pw, .e-con.px-sol-wf, .e-con.px-ai-visual { width: 620px !important; max-width: 100% !important; margin-inline: auto; }
}
@media (max-width: 767px) {
	.e-con.px-sol-pw, .e-con.px-sol-wf, .e-con.px-ai-visual { aspect-ratio: auto; }
	.e-con.px-sol-pw > .e-con, .e-con.px-sol-wf > .e-con, .e-con.px-ai-visual > .e-con { position: relative !important; left: auto; top: auto; width: 100% !important; }
	.e-con.px-sol-back, .e-con.px-sol-pw-back { display: none !important; }
}
/* Frame text blocks carry no trailing paragraph margin. */
.single-px_solution .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.e-con.px-sol-chip { width: auto !important; flex: none; }
@media (max-width: 767px) { .single-px_solution .e-con.px-rcard .px-rshrink, .single-px_solution .e-con.px-rcard > .elementor-widget-heading { min-width: 0; flex: 1 1 0%; } }
.single-px_solution #get-started .elementor-button-icon svg { width: 12px; height: 12px; }

/* ------------------------------------------------------------------------
 * Integration detail pages (Figma "Integrations" 1699:4).
 * --------------------------------------------------------------------- */
.single-px_integration #hero {
	background-image:
		radial-gradient(280px 280px at 130px 140px, rgba(41, 117, 255, 0.14) 0%, rgba(41, 117, 255, 0) 100%),
		radial-gradient(250px 250px at calc(100% - 100px) 550px, rgba(41, 117, 255, 0.12) 0%, rgba(41, 117, 255, 0) 100%),
		radial-gradient(180px 180px at 51% 60px, rgba(52, 200, 255, 0.08) 0%, rgba(52, 200, 255, 0) 100%),
		linear-gradient(135deg, #FFFFFF 0%, #EEF3FF 55%, #E6ECFF 100%) !important;
}
.elementor-element.px-intd-chip img { display: block; filter: drop-shadow(0 6px 8px rgba(26, 42, 107, 0.07)); }
/* Visual (566×500): tile 486×404 @(90,41) −3°, photo 512×404 @(11,33) +2°,
 * glass 188 wide @(0,92) and @(330,400), dots/bars 360×170 @(260,−42). */
.e-con.px-intd-visual { position: relative; display: block !important; aspect-ratio: 566 / 500; height: auto; flex: none; }
.e-con.px-intd-visual > .e-con, .e-con.px-intd-visual > .elementor-widget { position: absolute !important; margin: 0 !important; }
.elementor-element.px-intd-deco { left: 45.94%; top: -8.4%; width: 63.6% !important; z-index: 0; pointer-events: none; }
.elementor-element.px-intd-deco img { width: 100% !important; display: block; }
/* The deco runs 54px past the visual; clip it at the hero edge so the page never scrolls sideways (1425–1450px windows). */
.elementor > .e-con:has(.px-intd-visual) { overflow-x: clip; }
.e-con.px-intd-tile { left: 15.9%; top: 8.2%; width: 85.87% !important; height: 80.8%; z-index: 1; border-radius: 34px; opacity: 0.95;
	background: linear-gradient(90deg, #2975FF 0%, #5B9DFF 100%); transform: rotate(-3deg); }
.elementor-element.px-intd-photo { left: 1.91%; top: 6.56%; width: 90.46% !important; z-index: 2; transform: rotate(2deg); }
.elementor-element.px-intd-photo img { width: 100% !important; aspect-ratio: 512 / 404; height: auto; object-fit: cover; display: block;
	border: 8px solid #FFFFFF; border-radius: 26px; box-sizing: border-box; box-shadow: 0 40px 90px rgba(10, 20, 48, 0.28); }
.e-con.px-intd-glass { z-index: 3; width: 188px !important; border-radius: 16px; background: rgba(255, 255, 255, 0.62);
	border: 1px solid rgba(255, 255, 255, 0.7); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); box-shadow: 0 14px 34px rgba(10, 20, 48, 0.18); }
.e-con.px-intd-glass--1 { left: 0; top: 18.4%; }
.e-con.px-intd-glass--2 { left: 58.3%; top: 80%; }
.e-con.px-intd-glass img { display: block; width: 30px !important; height: 30px; }
.single-px_integration .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-element.px-sol-tile img { border: 0; }
@media (max-width: 1024px) {
	.e-con.px-intd-visual { width: 566px !important; max-width: 100% !important; margin-inline: auto; }
}
@media (max-width: 767px) {
	.e-con.px-intd-visual { width: calc(100% - 20px) !important; margin: 0 auto 30px !important; }
	.e-con.px-intd-glass { width: auto !important; max-width: 60%; padding: 10px 12px !important; }
	.e-con.px-intd-glass--2 { left: auto; right: -10px; top: auto; bottom: -30px; }
	.e-con.px-intd-glass--1 { left: -10px; }
	.elementor-element.px-intd-deco { display: none; }
	.e-con.px-intd-dv { width: 56px !important; min-height: 1px !important; }
}
.e-con.px-intd-glass { width: auto !important; min-width: 188px; }
.e-con.px-intd-glass .elementor-heading-title { white-space: nowrap; }
.single-px_integration #hero .px-ind-btn .elementor-button-icon svg { width: 14px; height: 14px; }
@media (max-width: 767px) { .e-con.px-intd-glass { min-width: 0; } }

/* ------------------------------------------------------------------------
 * Resources sub-pages (Figma "Resources Menu" 1703:162129).
 * --------------------------------------------------------------------- */
.elementor-element.px-rx-img, .elementor-element.px-rx-img .elementor-widget-container { width: 100%; }
.elementor-element.px-rx-img a { display: block; }
.elementor-element.px-rx-img img { width: 100% !important; display: block; object-fit: cover; border-radius: 0; }
.px-rx-card-img img { height: 180px !important; }
.px-rx-rel-img img { height: 140px !important; }
.px-rx-rel2-img img { height: 130px !important; }
.px-rx-cs-hero img { aspect-ratio: 588 / 400; height: auto !important; border-radius: 22px !important; box-shadow: 0 22px 52px rgba(15, 20, 46, 0.16); }
.px-rx-art-feat img { aspect-ratio: 1200 / 520; height: auto !important; border-radius: 24px !important; box-shadow: 0 24px 56px rgba(15, 20, 46, 0.14); }
.elementor-element.px-rx-inline-dash { flex: none; width: 354px !important; max-width: 100%; }
.px-rx-inline-dash img { border-radius: 10px !important; }
/* Featured story card: image column 560 wide. */
.e-con.px-rx-feat > .elementor-element.px-rx-feat-img { flex: 0 0 46.67%; width: 46.67% !important; align-self: stretch; }
.e-con.px-rx-feat > .elementor-element.px-rx-feat-img .elementor-widget-container, .e-con.px-rx-feat > .elementor-element.px-rx-feat-img a { height: 100%; }
.e-con.px-rx-feat > .elementor-element.px-rx-feat-img img { height: 100% !important; min-height: 470px; }
@media (max-width: 767px) {
	.e-con.px-rx-feat > .elementor-element.px-rx-feat-img { flex-basis: auto; width: 100% !important; }
	.e-con.px-rx-feat > .elementor-element.px-rx-feat-img img { min-height: 0; aspect-ratio: 560 / 470; height: auto !important; }
}
/* Card media: tag pill over the image. */
.e-con.px-rx-media { position: relative; display: block !important; }
.e-con.px-rx-media > .elementor-widget-heading { position: absolute !important; top: 12px; left: 12px; z-index: 2; box-shadow: 0 2px 6px rgba(15, 20, 46, 0.08); }
.px-rx-darkbtn .elementor-button-icon svg, .px-rx-darkbtn .elementor-button-icon img { width: 13px; height: 13px; }
.elementor-element.px-rx-darkbtn { align-self: flex-start; }
.is-filtered-out { display: none !important; }
/* About-client facts: hairline dividers between cells. */
.e-con.px-rx-facts > .e-con.px-rx-fact + .e-con.px-rx-fact { border-left: 1px solid #EEF1F7; }
@media (max-width: 767px) { .e-con.px-rx-facts > .e-con.px-rx-fact { border-left: 0 !important; flex: 1 1 50% !important; } }
/* Implementation steps: arrows between cards. */
.elementor-element.px-rx-step-arrow { flex: 0 0 40px; width: 40px !important; align-self: flex-start; padding-top: 42px; }
@media (max-width: 767px) { .elementor-element.px-rx-step-arrow { display: none; } }
/* Testimonial card: red glow top-left. */
.e-con.px-rx-quote { position: relative; background-image: radial-gradient(260px 260px at 90px 50px, rgba(212, 13, 38, 0.35), rgba(212, 13, 38, 0) 70%), linear-gradient(135deg, #0A0F2E 0%, #1C1640 100%) !important; }
.px-rx-cta-line a { color: #D40D26; font-weight: 600; }
.px-rx-cta-line p { font-weight: 600; }
/* Share circles. */
.px-rx-share { display: flex; gap: 8px; align-items: center; }
.px-rx-share a { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 999px; background: #F4F6FB; border: 1px solid #E8EDF5; color: #59617A; font: 700 13px/1 Inter, sans-serif; text-decoration: none; transition: background .2s, color .2s; }
.px-rx-share a:hover { background: #0F142E; color: #fff; }
.px-rx-share--30 a { width: 30px; height: 30px; font-size: 11.5px; background: #fff; }
/* Table of contents. */
.e-con.px-rx-aside { position: sticky !important; top: 110px; }
.px-rx-toc__label { margin: 0 0 6px; font: 700 10.5px/1.2 Inter, sans-serif; letter-spacing: .6px; text-transform: uppercase; color: #8C94A8; }
.px-rx-toc__label--share { font-size: 11px; font-weight: 600; text-transform: none; letter-spacing: 0; margin: 0; }
.px-rx-toc ul { list-style: none; margin: 0; padding: 0; }
.px-rx-toc li a { display: block; position: relative; padding: 8px 0 8px 12px; font: 500 13px/17px Inter, sans-serif; color: #59617A; text-decoration: none; }
.px-rx-toc li a::before { content: ""; position: absolute; left: 0; top: 9px; width: 3px; height: 16px; border-radius: 2px; background: #E3E8F1; }
.px-rx-toc li.is-active a { color: #0F142E; font-weight: 600; }
.px-rx-toc li.is-active a::before { background: #D40D26; }
.px-rx-toc hr { border: 0; border-top: 1px solid #EEF1F7; margin: 10px 0 8px; }
.px-rx-aside--notoc .px-rx-toc ul, .px-rx-aside--notoc .px-rx-toc > .px-rx-toc__label:first-child, .px-rx-aside--notoc .px-rx-toc hr { display: none; }
@media (max-width: 1024px) { .e-con.px-rx-aside { position: static !important; width: 100% !important; } .e-con.px-rx-art-main { max-width: 100% !important; } }
/* Article body (live HTML styled to the Figma article). */
.px-art-body { font-family: Inter, sans-serif; color: #3F4759; }
.px-art-body p, .px-art-body li { font-size: 16px; line-height: 27px; }
.px-art-body p { margin: 0 0 22px; }
.px-art-body .elementor-widget-container > :last-child { margin-bottom: 0; }
.px-art-body h2 { font: 700 27px/34px Inter, sans-serif; color: #0F142E; margin: 34px 0 20px; scroll-margin-top: 110px; }
.px-art-body h3 { font: 700 20px/28px Inter, sans-serif; color: #0F142E; margin: 26px 0 12px; }
.px-art-body h4, .px-art-body h5, .px-art-body h6 { font: 700 17px/25px Inter, sans-serif; color: #0F142E; margin: 22px 0 10px; }
.px-art-body .elementor-widget-container > h2:first-child { margin-top: 0; }
.px-art-body a { color: #2975FF; text-decoration: underline; text-underline-offset: 2px; }

/* In-text links carried over from prexa365.com (_build/apply-inline-links.php). */
a.px-il, .elementor .elementor-heading-title a.px-il { color: #2975FF !important; text-decoration: underline; text-underline-offset: 2px; font-weight: inherit; }
a.px-il:hover, a.px-il:focus-visible, .elementor .elementor-heading-title a.px-il:hover { color: #cf011c !important; }
.px-art-body strong { color: #0F142E; font-weight: 600; }
.px-art-body img { display: block; max-width: 100%; height: auto; border-radius: 14px; margin: 8px 0 24px; }
.px-art-body ul { list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 9px; }
.px-art-body ul li { position: relative; padding-left: 30px; color: #28304A; }
.px-art-body ul li::before { content: ""; position: absolute; left: 0; top: 4px; width: 20px; height: 20px; border-radius: 999px; background: #0FA673 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 12px no-repeat; }
.px-art-body ol { list-style: none; counter-reset: pxol; margin: 0 0 22px; padding: 0; display: grid; gap: 14px; }
.px-art-body ol > li { counter-increment: pxol; position: relative; padding: 14px 18px 14px 62px; min-height: 62px; background: #FBFBFE; border: 1px solid #EEF1F7; border-radius: 13px; font-size: 15px; line-height: 23px; }
.px-art-body ol > li::before { content: counter(pxol); position: absolute; left: 14px; top: 14px; width: 34px; height: 34px; border-radius: 10px; background: #fff; border: 1px solid #E8EDF5; display: flex; align-items: center; justify-content: center; font: 700 14px/1 Inter, sans-serif; color: #D40D26; }
.px-art-body ol > li:nth-child(5n+2)::before { color: #2975FF; }
.px-art-body ol > li:nth-child(5n+3)::before { color: #0FA673; }
.px-art-body ol > li:nth-child(5n+4)::before { color: #734DEB; }
.px-art-body ol > li:nth-child(5n+5)::before { color: #FF8C1A; }
.px-art-body blockquote { margin: 0 0 22px; padding: 26px 30px 24px; border-radius: 16px; background: linear-gradient(135deg, #0A0F2E, #1C1640); color: #fff; font: 600 21px/29px Inter, sans-serif; }
.px-art-body blockquote p { font: inherit; margin: 0; color: inherit; }
.px-art-body table { width: 100%; border-collapse: separate; border-spacing: 0; margin: 0 0 24px; border: 1px solid #EEF1F7; border-radius: 12px; overflow: hidden; font-size: 14px; line-height: 21px; }
.px-art-body th { background: #F4F6FB; color: #0F142E; font-weight: 700; text-align: left; }
.px-art-body th, .px-art-body td { padding: 11px 14px; border-bottom: 1px solid #EEF1F7; vertical-align: top; }
.px-art-body tr:last-child td { border-bottom: 0; }
.px-art-body iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0; border-radius: 14px; margin: 0 0 22px; }
@media (max-width: 767px) { .px-art-body h2 { font-size: 23px; line-height: 30px; } .px-art-body table { display: block; overflow-x: auto; } }
/* Module chips row. */
.e-con.px-rx-mod .elementor-heading-title a { color: inherit; }
/* Reading progress bar (article / press / glossary detail). */
.px-rx-progress { position: fixed; left: 0; top: 0; height: 4px; width: 0; z-index: 9999; background: linear-gradient(90deg, #D40D26, #734DEB); pointer-events: none; }
.e-con.px-rx-feat > .elementor-element.px-rx-feat-img img { object-position: left center; }
/* CTA banner button arrows stay small (resources templates / pages). */
#get-started .elementor-button-icon svg, #get-started .elementor-button-icon img { width: 14px !important; height: 14px !important; }
#related > .e-con > .e-con > .e-con:first-child { width: auto; }
/* Resources: "View all …" link pinned right of the related head (Elementor injects <link> tags into rows). */
.elementor-element.px-rx-viewall { margin-left: auto; }
/* Gradient/flat icon tiles: centre the glyph. */
.e-con.px-rx-itile .elementor-widget-icon, .e-con.px-rx-itile .elementor-icon-wrapper, .e-con.px-rx-itile .elementor-icon { line-height: 0 !important; display: flex; align-items: center; justify-content: center; }
.e-con.px-rx-itile .elementor-icon svg { display: block; }
.e-con.px-rx-mod { align-items: center !important; }
.e-con.px-rx-itile > .elementor-widget { margin: auto !important; flex: none !important; }
.pxr-itile { display: inline-flex; align-items: center; justify-content: center; flex: none; box-sizing: border-box; } .pxr-itile svg { display: block; } .elementor-element.px-rx-itile-w { line-height: 0; }
.px-rx-moment img { height: 236px !important; } @media (max-width: 767px) { .px-rx-moment img { height: auto !important; aspect-ratio: 16 / 10; } } .px-rx-map img { width: 100%; height: auto; }

/* ---------------------------------------------------------------------
 * Sticky header: the whole masthead sticks — utility bar included (user
 * request 2026-10-21) — and once scrolled the nav row carries a shadow
 * (header.js toggles is-scrolled).
 * ------------------------------------------------------------------ */
body #masthead, #masthead.hfe-header { position: -webkit-sticky !important; position: sticky !important; top: 0 !important; z-index: 990 !important; }
#masthead .e-con.px-topbar { max-height: 60px; overflow: hidden; transition: max-height .3s ease, padding .3s ease, opacity .25s ease; }
#masthead .e-con.px-navbar { background-color: #fff; transition: box-shadow .3s ease; }
#masthead.is-scrolled .e-con.px-navbar { box-shadow: 0 6px 24px rgba(15, 20, 46, .10); }
/* Anchor targets and sticky sidebars clear the fixed nav (85px). */
html { scroll-padding-top: 100px; }
.e-con.px-rx-aside, .pxr-toc { top: 105px; }
.px-art-body h2, .pxr-art h2 { scroll-margin-top: 100px; }
.pxr-gl-letter { scroll-margin-top: 100px; }
.px-rx-progress, .pxr-progress { z-index: 99999; }

/* ---------- Wide comparison tables: swipe inside their card on tablet/phone ----------
   The site-wide `.elementor .e-con { max-width: 100% }` squeezed these 1000px tables into
   the screen, overlapping the column headings. They keep their width and scroll instead. */
@media (max-width: 1024px) {
	.elementor .e-con.px-xscroll {
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: thin;
		padding-bottom: 8px;
	}
	.elementor .e-con.px-xscroll__table { max-width: none; flex-shrink: 0; }
}
@media (max-width: 767px) {
	.elementor .e-con.px-xscroll__table { width: 760px; }
}

/* ---------- Check-mark circles (px_ind_check) stay circles when their row grows taller ---------- */
.e-con:has(> .elementor-widget.px-ind-check) {
	aspect-ratio: 1 / 1;
	align-self: center;
	height: auto;
	min-height: 0 !important;
	--padding-top: 0px; --padding-bottom: 0px;
}
.elementor-widget.px-ind-check { margin: 0 !important; }
.elementor-widget.px-ind-check .elementor-icon { display: flex; line-height: 0; }
/* The two-column integrations comparison fits a phone screen: narrower mark columns, label shrinks. */
@media (max-width: 767px) {
	.elementor .e-con.px-xscroll__table--compare { width: 100%; }
	.px-xscroll__table--compare > .e-con > .e-con { --width: 88px; width: 88px; }
	.px-xscroll__table--compare > .e-con > .elementor-widget-heading { flex: 1 1 0; min-width: 0; }
	.px-xscroll__table--compare > .e-con { --padding-left: 16px; --padding-right: 8px; }
}

/* ---------- Phone fixes: home solution tabs and stat tiles ---------- */
@media (max-width: 767px) {
	/* Wrapped tabs sit in a rounded card instead of a stretched oval. */
	.px-tabs__nav { width: 100%; border-radius: 22px; gap: 6px; padding: 8px; }
	.home #solutions .px-tabs__nav { gap: 6px; }
	.px-tab { padding: 9px 14px; }
	/* Tiles grow with their content; long values ("Power BI", "No-Code") no longer spill onto the buttons below. */
	.home #about .px-statbar--tiles .px-statbar__cell { height: auto; min-height: 96px; padding: 16px; }
	.home #about .px-statbar--tiles .px-statbar__value { font-size: 26px; line-height: 32px; letter-spacing: -0.4px; }
	.home #about .px-statbar--tiles .px-statbar__label { font-size: 12.5px; line-height: 1.35; }
}
@media (max-width: 767px) {
	/* Home integrations wall: 3 logos per row instead of a 12-tile column. */
	.px-integrations__wall .px-grid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
	.px-integrations__wall .px-logo { height: auto !important; min-height: 76px !important; aspect-ratio: auto !important; padding: 12px 10px !important; }
	.px-integrations__wall .px-logo__img { max-width: 100%; max-height: 34px; width: auto; height: auto; object-fit: contain; }
}

/* ---------- Home "Why Choose PREXA365" orbit cards on tablet/phone ----------
   Desktop places the cards around a centre visual; stacked, they became two half-width
   columns with big gaps. Below 1025px they form a tidy grid, icon first, text left. */
@media (max-width: 1024px) {
	.e-con:has(> .e-con > .px-orbit-card) { gap: 14px !important; --gap: 14px; min-height: 0 !important; --min-height: 0px; height: auto !important; }
	/* The centre visual is hidden below desktop; its empty 720px stage goes too. */
	.e-con:has(> .e-con > .px-orbit-card) > .e-con:not(:has(*)) { display: none !important; }
	.e-con:has(> .px-orbit-card) {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px !important;
		width: 100% !important; --width: 100%;
		height: auto !important; min-height: 0 !important;
		padding: 0 !important;
	}
	.px-orbit-card {
		width: auto !important; --width: auto; max-width: none !important;
		margin: 0 !important; position: static !important; transform: none !important;
		flex-direction: row !important; justify-content: flex-start !important; align-items: center !important;
	}
	.px-orbit-card > .elementor-widget, .px-orbit-card > .e-con { order: 0; }
	.px-orbit-card > .elementor-widget-icon, .px-orbit-card > .elementor-widget-html { order: -1; }
	.px-orbit-card .elementor-heading-title { text-align: left !important; }
	.px-orbit-card > .e-con { align-items: flex-start !important; text-align: left; }
}
@media (max-width: 767px) {
	.e-con:has(> .px-orbit-card) { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Phone/tablet: no text below 11px ---------- */
@media (max-width: 1024px) {
	.px-statbar--hero .px-statbar__label, .home .px-statbar--hero .px-statbar__label { font-size: 11px !important; }
	.px-badge, .pxr-dur, .pxr-card__eyebrow, .pxr-tag { font-size: 11px !important; }
}

/* ======================================================= UK landing pages */
/* Figma CA1OrmlDUF6Nnq8DfFZ5R2 page "UK" — _build/landing-parts-uk.php      */

/* Light utility bar: "Serving <b>London</b> Rental Businesses — areas". */
#masthead .e-con.px-topbar--light { background-color: #fff !important; border-bottom: 1px solid #eef1f7; }
#masthead .px-topbar--light .elementor-heading-title { color: #59617a !important; font-size: 13px !important; }
#masthead .px-topbar--light .elementor-heading-title strong { color: #0f142e; font-weight: 600; }
#masthead .px-topbar--light .px-topbar__areas { color: #0f142e; }
#masthead .px-topbar--light .elementor-icon-list-text { color: #0f142e !important; font-size: 13px !important; }
#masthead .px-topbar--light .elementor-icon-list-icon svg,
#masthead .px-topbar--light .elementor-icon-list-icon i { color: #59617a !important; fill: none; }
#masthead .px-topbar--light .elementor-icon-list-item + .elementor-icon-list-item { padding-left: 22px; border-left: 1px solid #e8edf5; }

/* Paragraph rhythm for multi-paragraph copy. */
.px-uk-text p { margin: 0 0 1em; }
.px-uk-text p:last-child { margin-bottom: 0; }

/* Tick lists: green tick in a tinted circle. */
.px-uk-checks .elementor-icon-list-icon,
.px-uk-badges .elementor-icon-list-icon {
	display: inline-flex; align-items: center; justify-content: center; flex: none;
	width: 20px; height: 20px; border-radius: 999px; background: rgba(15, 166, 115, .12);
}
.px-uk-checks .elementor-icon-list-item { align-items: flex-start !important; }
.px-uk-checks .elementor-icon-list-icon { margin-top: 1px; }
.px-uk-checks--red .elementor-icon-list-icon { background: rgba(212, 13, 38, .10); }
.px-uk-checks--red .elementor-icon-list-icon i,
.px-uk-checks--red .elementor-icon-list-icon svg { color: #d40d26 !important; fill: #d40d26 !important; }

/* Hero badges: white pills. */
.px-uk-badges .elementor-icon-list-items.elementor-inline-items { gap: 10px; margin: 0 !important; }
.px-uk-badges .elementor-icon-list-item.elementor-inline-item {
	margin: 0 !important; padding: 8px 14px 8px 10px !important; background: #fff;
	border: 1px solid #e8edf5; border-radius: 999px; box-shadow: 0 2px 6px rgba(26, 42, 107, .04);
}
.px-uk-badges .elementor-icon-list-item.elementor-inline-item::after { display: none !important; }

/* Solutions tabs restyled to the frame: tinted pill bar, 4 cards with gradient tiles. */
.px-uk-soltabs { width: 100%; }
.px-uk-soltabs .px-tabs__nav { background: #f6f8fc; border-color: #e8edf5; gap: 6px; margin-bottom: 40px; }
.px-uk-soltabs .px-tab { padding: 10px 18px; font-size: 14px; font-weight: 600; color: #59617a; font-family: 'Inter', sans-serif; }
.px-uk-soltabs .px-tab.is-active { color: #fff; background: #d40d26; box-shadow: 0 6px 14px rgba(212, 13, 38, .22); }
.px-uk-soltabs .px-grid { gap: 24px; }
.px-uk-soltabs .px-card { border-radius: 16px; border-color: #e8edf5; padding: 26px 24px; box-shadow: 0 12px 30px rgba(26, 42, 107, .06); font-family: 'Inter', sans-serif; }
.px-uk-soltabs .px-card__icon { width: 48px; height: 48px; border-radius: 13px; margin-bottom: 12px; background: linear-gradient(135deg, #d40d26, #f24d66); box-shadow: 0 5px 12px rgba(212, 13, 38, .28); }
.px-uk-soltabs .px-card:nth-child(4n+2) .px-card__icon { background: linear-gradient(135deg, #2975ff, #734deb); box-shadow: 0 5px 12px rgba(41, 117, 255, .28); }
.px-uk-soltabs .px-card:nth-child(4n+3) .px-card__icon { background: linear-gradient(135deg, #ff8c1a, #d40d26); box-shadow: 0 5px 12px rgba(255, 140, 26, .28); }
.px-uk-soltabs .px-card:nth-child(4n+4) .px-card__icon { background: linear-gradient(135deg, #0fa673, #1abf8c); box-shadow: 0 5px 12px rgba(15, 166, 115, .28); }
.px-uk-soltabs .px-card__icon svg, .px-uk-soltabs .px-card__icon .px-svg { color: #fff; width: 23px; height: 23px; }
.px-uk-soltabs .px-card__title { font-size: 17px; font-weight: 700; color: #0f142e; margin-bottom: 12px; line-height: 1.3; }
.px-uk-soltabs .px-card__text { font-size: 14.5px; line-height: 1.55; color: #59617a; margin-bottom: 14px; }
.px-uk-soltabs .px-link { font-size: 14px; font-weight: 600; color: #d40d26; }

/* Product overview dashboard mock. */
.px-dash { border: 1px solid #e8edf5; border-radius: 20px; overflow: hidden; background: #fff; box-shadow: 0 30px 60px rgba(26, 42, 107, .14); font-family: 'Inter', sans-serif; }
.px-dash__chrome { display: flex; align-items: center; gap: 8px; padding: 14px 18px; background: #0f142e; color: #fff; font-size: 13px; font-weight: 600; }
.px-dash__chrome i { width: 10px; height: 10px; border-radius: 50%; background: #ff5f57; }
.px-dash__chrome i:nth-child(2) { background: #febc2e; }
.px-dash__chrome i:nth-child(3) { background: #28c840; margin-right: 6px; }
.px-dash__body { display: flex; flex-direction: column; gap: 16px; padding: 22px; background: #f6f8fc; }
.px-dash__kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.px-dash__kpi { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; background: #fff; border: 1px solid #e8edf5; border-radius: 12px; }
.px-dash__label { font-size: 10.5px; font-weight: 600; letter-spacing: .4px; color: #8c94a8; }
.px-dash__kpi strong { font-size: 26px; font-weight: 700; line-height: 1.2; color: #0f142e; }
.px-dash__kpi em { font-style: normal; font-size: 11.5px; font-weight: 600; color: #0fa673; }
.px-dash__chart { display: flex; flex-direction: column; gap: 14px; padding: 16px 18px; background: #fff; border: 1px solid #e8edf5; border-radius: 12px; }
.px-dash__chart-head { display: flex; justify-content: space-between; align-items: baseline; font-size: 12.5px; color: #0f142e; }
.px-dash__chart-head span { font-size: 11px; font-weight: 500; color: #8c94a8; }
.px-dash__bars { display: flex; align-items: flex-end; gap: 10px; height: 110px; }
.px-dash__bars i { flex: 1; border-radius: 6px 6px 2px 2px; }
.px-dash__table { background: #fff; border: 1px solid #e8edf5; border-radius: 12px; overflow: hidden; }
.px-dash__th, .px-dash__tr { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: center; padding: 12px 16px; font-size: 12.5px; font-weight: 500; color: #0f142e; }
.px-dash__th { padding: 10px 16px; background: #f6f8fc; font-size: 10.5px; font-weight: 600; letter-spacing: .4px; color: #8c94a8; }
.px-dash__tr + .px-dash__tr { border-top: 1px solid #eef1f7; }
.px-dash__tr b { font-weight: 600; }
.px-dash__status { justify-self: start; display: inline-block; padding: 4px 10px; border-radius: 999px; font-style: normal; font-size: 11px; font-weight: 600; color: var(--c); background: color-mix(in srgb, var(--c) 12%, #fff); }

/* Integration chips. */
.px-uk-chip .elementor-heading-title { display: inline-flex; align-items: center; gap: 8px; padding: 5px 12px 5px 5px; background: #f6f8fc; border: 1px solid #e8edf5; border-radius: 999px; }
.px-uk-chip .elementor-heading-title a { display: inline-flex; align-items: center; gap: 8px; color: inherit; }
.px-uk-chip__logo { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 26px; height: 26px; border-radius: 999px; font-size: 9.5px; font-weight: 700; letter-spacing: .2px; color: #fff; }
.px-uk-chip:hover .elementor-heading-title { border-color: #d40d26; }
.px-uk-cathead > .elementor-widget-heading:nth-child(2) { flex: 1 1 auto; }

/* Sector sub-chips and region chips get the frame's hairline. */
.px-uk-subchip, .px-uk-region { border: 1px solid #e8edf5; border-radius: 999px; }
.px-uk-region.is-active { border-color: #fdecee; }

/* FAQ "−" marker. */
.px-uk-faq__q > .elementor-widget-heading:last-child { width: 26px !important; min-width: 26px; height: 26px; padding: 0 !important; display: flex; align-items: center; justify-content: center; }
.px-uk-faq__q > .elementor-widget-heading:last-child .elementor-heading-title { line-height: 26px; }

/* Direct-line phone keeps the white heading colour. */
.px-uk-direct a { color: #fff !important; }

/* Demo form card (CF7). */
.px-uk-form .px-cf7 { gap: 16px; }
.px-uk-form .px-cf7__row { gap: 14px; }
.px-uk-form .px-cf7__field { gap: 6px; }
.px-uk-form .px-cf7__label { font-size: 12.5px; font-weight: 600; color: #0f142e; }
.px-uk-form input[type="text"], .px-uk-form input[type="email"], .px-uk-form input[type="tel"], .px-uk-form select {
	width: 100%; height: 46px; padding: 0 14px; font-size: 14px; color: #0f142e;
	background: #f6f8fc; border: 1px solid #e8edf5; border-radius: 10px; box-shadow: none;
}
.px-uk-form input::placeholder { color: #8c94a8; }
.px-uk-form select { color: #59617a; }
.px-uk-form input:focus, .px-uk-form select:focus { outline: none; border-color: #d40d26; background: #fff; }
.px-uk-form .px-cf7__submit input[type="submit"] {
	width: 100%; height: 48px; padding: 0 28px; border: 0; border-radius: 999px; cursor: pointer;
	font-size: 15px; font-weight: 600; color: #fff; background: #d40d26; box-shadow: 0 8px 18px rgba(212, 13, 38, .28);
}
.px-uk-form .px-cf7__submit input[type="submit"]:hover { background: #b80a21; }

@media (max-width: 1024px) {
	.px-dash__kpi strong { font-size: 22px; }
}
@media (max-width: 767px) {
	.px-uk-form .px-cf7__row { grid-template-columns: minmax(0, 1fr); }
	.px-dash__body { padding: 14px; }
	.px-dash__kpis { grid-template-columns: minmax(0, 1fr); }
	.px-dash__th, .px-dash__tr { padding: 10px 12px; font-size: 11px; }
	.px-dash__bars { gap: 5px; }
	.px-uk-badges .elementor-icon-list-item.elementor-inline-item { padding: 6px 12px 6px 8px !important; }
}

/* Containers that take the remaining row width. */
.e-con.px-uk-grow { flex: 1 1 0 !important; min-width: 0; width: auto !important; }

/* UK pages: alignment fixes from the Figma side-by-side pass. */
.px-uk .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.px-uk-soltabs .px-section, .px-uk-soltabs .px-solutions-tabs { padding: 0 !important; margin: 0 !important; }
.px-uk-soltabs .px-section-head, .px-uk-soltabs .px-section__head { display: none; }
.px-uk-soltabs .px-tabs__nav { margin-top: 0; }
.px-uk-soltabs .px-card__title, .px-uk-soltabs .px-card__title a { font-family: 'Inter', sans-serif; }
.px-uk-stars p { letter-spacing: 3px; }
.px-uk-form select { appearance: none; -webkit-appearance: none; padding-right: 36px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%2359617a' d='M0 0h10L5 6z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; }
.px-dash__tr { padding: 11px 16px; }

/* UK reviews: round 44px initials avatar; person row pinned to the card bottom
   so the three cards line up (Figma "spacer"). */
.px-uk-avatar.elementor-widget { width: 44px !important; height: 44px; min-width: 44px; max-width: 44px; flex: 0 0 44px !important; align-self: center; display: flex; align-items: center; justify-content: center; border-radius: 50% !important; }
.px-uk-avatar .elementor-heading-title { line-height: 44px !important; }
.e-con.px-uk-review-foot { margin-top: auto !important; }

/* UK Locations (last section above the footer). */
.e-con.px-uk-overview { position: relative; overflow: hidden; background-image: radial-gradient(420px 220px at 92% 50%, rgba(212, 13, 38, .28), rgba(212, 13, 38, 0) 70%) !important; }
a.e-con.px-uk-loc { color: inherit; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
a.e-con.px-uk-loc:hover { transform: translateY(-3px); border-color: #d40d26; box-shadow: 0 16px 34px rgba(26, 42, 107, .10); }
a.e-con.px-uk-loc:hover .elementor-heading-title { color: #d40d26; }
.px-uk-loc__head > .elementor-widget-heading { flex: 1 1 auto; min-width: 0; }
.px-uk-here { margin-left: auto !important; }
.px-uk-loc__region p { letter-spacing: 1px; }
.px-uk-perks .elementor-icon-list-items { justify-content: center; }
.px-uk-overview .elementor-button { white-space: nowrap; }

.px-uk-loc__region { margin-top: auto !important; }

/* CF7 spinner sits inside the full-width submit instead of beside it. */
.px-uk-form .px-cf7__submit { position: relative; display: block; width: 100%; }
.px-uk-form .px-cf7__submit input[type="submit"] { display: block; width: 100% !important; }
.px-uk-form .px-cf7__submit .wpcf7-spinner { position: absolute; right: 14px; top: 50%; margin: -12px 0 0; }

/* UK Locations (site-wide before-footer block). Exact 5-up grid so the cards
   meet the overview bar's edges; current page marked by the theme at render. */
.e-con.px-uk-locgrid { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px !important; }
.e-con.px-uk-locgrid > .e-con { width: auto !important; max-width: none !important; }
@media (max-width: 1024px) { .e-con.px-uk-locgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .e-con.px-uk-locgrid { grid-template-columns: minmax(0, 1fr); } }
a.e-con.px-uk-loc { position: relative; }
a.e-con.px-uk-loc.is-current { background-color: #fdf3f4 !important; border-style: dashed !important; border-color: #d40d26 !important; box-shadow: none !important; }
a.e-con.px-uk-loc.is-current::after,
.e-con.px-uk-overview.is-current::after {
	content: 'HERE'; position: absolute; top: 22px; right: 18px; padding: 4px 8px; border-radius: 999px;
	background: #d40d26; color: #fff; font: 700 10.5px/1.2 'Inter', sans-serif; letter-spacing: .6px;
}
.e-con.px-uk-overview.is-current::after { top: 50%; right: 32px; transform: translateY(-50%); }
.e-con.px-uk-overview.is-current .elementor-widget-button { display: none; }
a.e-con.px-uk-loc.is-current .px-uk-loc__head { padding-right: 52px; }

/* ---------------------------------------------- UK pages: sticky + reveal */
/* Shorter column of a tall two-column section stays in view while the other
   side scrolls (desktop only; stacked layouts scroll normally). */
@media (min-width: 1025px) {
	.e-con.px-uk-sticky { position: sticky !important; top: 116px; align-self: flex-start !important; }
	.admin-bar .e-con.px-uk-sticky { top: 148px; }
}

/* Scroll reveal (classes added by assets/js/reveal.js, site-wide). Only the
   reveal is animated — the hidden start state applies instantly. */
html.px-rv-on .px-rv { opacity: 0; transform: translate3d(0, 48px, 0) scale(.97); will-change: opacity, transform; }
html.px-rv-on .px-rv.px-rv--x { transform: translate3d(56px, 0, 0); }
html.px-rv-on .px-rv.px-rv--soft { transform: translate3d(0, 24px, 0); }
html.px-rv-on .px-rv.is-in {
	opacity: 1;
	transform: none;
	transition: opacity .9s cubic-bezier(.16, 1, .3, 1), transform 1s cubic-bezier(.16, 1, .3, 1);
	transition-delay: calc(var(--rv-i, 0) * 110ms);
}

/* Dashboard mock: bars rise from the baseline. */
.px-dash.is-armed .px-dash__bars i { transform: scaleY(0); transform-origin: bottom; }
.px-dash.is-armed.is-live .px-dash__bars i { transform: scaleY(1); transition: transform .9s cubic-bezier(.22, .61, .36, 1); transition-delay: calc(var(--b, 0) * 55ms + 150ms); }

/* Gentle lift on UK cards. */
.px-uk-grid > .e-con { transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.px-uk-grid > .e-con:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(26, 42, 107, .10); }
.px-uk-stack--x > .e-con { transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.px-uk-stack--x > .e-con:hover { transform: translateX(4px); border-color: #f2b8c0; box-shadow: 0 10px 26px rgba(26, 42, 107, .07); }

@media (prefers-reduced-motion: reduce) {
	.px-dash.is-armed .px-dash__bars i { transform: none; transition: none; }
	.px-uk-grid > .e-con:hover, .px-uk-stack--x > .e-con:hover { transform: none; }
}

/* Image reveal (reveal.js adds .px-rv-img): unmask from a cropped frame while
   settling from a gentle zoom. Only the reveal is animated. */
html.px-rv-on .px-rv-img { opacity: 0; transform: scale(1.12); clip-path: inset(8% 8% 8% 8% round 24px); will-change: transform, clip-path, opacity; }
html.px-rv-on .px-rv-img.is-in {
	opacity: 1; transform: none; clip-path: inset(0 0 0 0 round 0);
	transition: clip-path 1.1s cubic-bezier(.16, 1, .3, 1), transform 1.4s cubic-bezier(.16, 1, .3, 1), opacity .6s ease;
	transition-delay: var(--rvi-d, 0ms);
}

/* ---------------------------------------- Home hero dashboard mockup motion */
/* .px-hero-slider = slider widget (dashboard images) + two floating cards:
   child 2 "Invoice paid" (left), child 3 "Deal closed" (right). */
@keyframes px-hero-rise { from { opacity: 0; transform: perspective(1400px) translate3d(0, 46px, 0) scale(.95) rotateX(6deg); } }
@keyframes px-pop-left { from { opacity: 0; transform: translate3d(-34px, 14px, 0) scale(.9); } }
@keyframes px-pop-right { from { opacity: 0; transform: translate3d(34px, -14px, 0) scale(.9); } }
@keyframes px-float-a { 0%, 100% { transform: translate3d(0, 0, 0); } 50% { transform: translate3d(0, -10px, 0); } }
@keyframes px-float-b { 0%, 100% { transform: translate3d(0, 0, 0); } 50% { transform: translate3d(0, 9px, 0); } }
@keyframes px-ring { 0% { opacity: .55; transform: scale(1); } 80%, 100% { opacity: 0; transform: scale(1.75); } }

@media (prefers-reduced-motion: no-preference) {
	.px-hero-slider > .elementor-widget {
		animation: px-hero-rise 1.1s cubic-bezier(.16, 1, .3, 1) .05s backwards;
		transform: perspective(1400px) rotateX(var(--px-rx, 0deg)) rotateY(var(--px-ry, 0deg));
		transition: transform .5s cubic-bezier(.16, 1, .3, 1);
		transform-style: preserve-3d;
	}
	.px-hero-slider > .e-con:nth-child(2) {
		animation: px-pop-left .9s cubic-bezier(.16, 1, .3, 1) .55s backwards, px-float-a 5.6s ease-in-out 1.5s infinite;
		translate: var(--px-tx2, 0) var(--px-ty2, 0);
		transition: translate .5s cubic-bezier(.16, 1, .3, 1);
	}
	.px-hero-slider > .e-con:nth-child(3) {
		animation: px-pop-right .9s cubic-bezier(.16, 1, .3, 1) .75s backwards, px-float-b 6.4s ease-in-out 1.7s infinite;
		translate: var(--px-tx3, 0) var(--px-ty3, 0);
		transition: translate .5s cubic-bezier(.16, 1, .3, 1);
	}
	/* Pulse ring behind the green check of "Invoice paid". */
	.px-hero-slider > .e-con:nth-child(2) .elementor-icon { position: relative; }
	.px-hero-slider > .e-con:nth-child(2) .elementor-icon::after {
		content: ''; position: absolute; inset: 0; border-radius: 50%; box-shadow: 0 0 0 2px rgba(16, 185, 129, .45);
		animation: px-ring 2.6s ease-out 2s infinite; pointer-events: none;
	}
	/* Slow zoom-out on the slide that is showing. */
	.px-hero-slider .swiper-slide img { transform: scale(1.06); transition: transform 6.5s cubic-bezier(.25, .1, .25, 1); }
	.px-hero-slider .swiper-slide-active img { transform: scale(1); }
}

/* Short side of a tall two-column row stays in view (desktop). Added by
   px_sticky_col() in the builders (Demo form, Contact form). */
@media (min-width: 1025px) {
	.e-con.px-sticky-col { position: sticky !important; top: 130px; align-self: flex-start !important; }
	.admin-bar .e-con.px-sticky-col { top: 162px; }
}

/* Live-only pages (build-live-pages.php): webinar recording embed + intro shots. */
.px-live-video { position: relative; aspect-ratio: 16 / 9; width: 100%; border-radius: 14px; overflow: hidden; background: #0b1435; }
.px-live-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.elementor-element.px-live-shot img { box-shadow: 0 30px 70px -30px rgba(10, 20, 48, 0.35); }
.px-cf7__consent { font-size: 13.5px; line-height: 1.5; color: #4B5468; }
.px-cf7__consent .wpcf7-list-item { margin: 0; }

/* Webinar pages (Figma 2436:2 — _build/landing-parts-webinar.php). */
.elementor-element.px-wb-avatar img { aspect-ratio: 1; object-fit: cover; border-radius: 50%; }
.e-con.px-wb-spacer { flex-grow: 1; min-height: 0; }
.px-wb-listcard h3 a { color: inherit; }
.px-wb-listcard h3 a:hover { color: var(--px-red, #d40d26); }
.elementor-element.px-wb-play a { position: relative; display: block; }
.elementor-element.px-wb-play a::after { content: ""; position: absolute; left: 50%; top: 50%; width: 68px; height: 68px; margin: -34px 0 0 -34px; border-radius: 50%; background: #d40d26 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M8 5v14l11-7z'/%3E%3C/svg%3E") center / 28px no-repeat; box-shadow: 0 10px 24px rgba(212, 13, 38, 0.4); transition: transform .2s ease; }
.elementor-element.px-wb-play a:hover::after { transform: scale(1.08); }
.px-wb-role .elementor-icon-list-item { align-items: flex-start; }
@media (max-width: 767px) {
	.e-con.px-wb-tabs { max-width: 100%; overflow-x: auto; }
	.e-con.px-wb-tabs .elementor-button { white-space: nowrap; }
	.e-con.px-wb-event { padding: 16px !important; }
}

/* Live landing pages (Figma 2448:2 — _build/landing-parts-landing.php). */
.e-con.px-ld-hero-visual { position: relative; }
.e-con.px-ld-chip { position: absolute !important; left: -14px; bottom: -22px; z-index: 2; }
.elementor-element.px-ld-shot img { box-shadow: 0 30px 70px -30px rgba(10, 20, 48, 0.35); }
.elementor-element.px-ld-logo img { height: 40px; width: auto; max-width: 100%; object-fit: contain; }
.elementor-element.px-ld-icon img { object-fit: contain; }
.e-con.px-ld-case .elementor-widget-image img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
@media (max-width: 767px) {
	.e-con.px-ld-chip { position: relative !important; left: 0; bottom: 0; margin-top: 12px; }
}
.e-con.px-ld-tile-photo { position: relative; }
.elementor-element.px-ld-caption { position: absolute !important; left: 12px; bottom: 12px; z-index: 1; }
.e-con.px-ld-tile-photo .elementor-widget-image img { width: 100%; aspect-ratio: 320 / 330; object-fit: cover; }
@media (max-width: 767px) { .e-con.px-ld-tilegrid { flex-direction: row !important; flex-wrap: wrap !important; } }

/* Solutions tabs: centre short rows (e.g. Finance = 3 cards) instead of leaving a gap on the right. */
.px-solutions-tabs .px-tabs__panel .px-grid--4 { display: flex; flex-wrap: wrap; justify-content: center; gap: 24px; }
.px-solutions-tabs .px-tabs__panel .px-grid--4 > * { flex: 0 0 calc((100% - 72px) / 4); min-width: 0; }
@media (max-width: 1024px) { .px-solutions-tabs .px-tabs__panel .px-grid--4 > * { flex-basis: calc((100% - 24px) / 2); } }
@media (max-width: 640px) { .px-solutions-tabs .px-tabs__panel .px-grid--4 > * { flex-basis: 100%; } }

/* Integrations logo wall: the logos are tight crops now — show them larger. */
.px-integrations__wall .px-logo__img { max-height: 58px; max-width: 86%; width: auto; height: auto; object-fit: contain; }
@media (max-width: 767px) { .px-integrations__wall .px-logo__img { max-height: 40px; max-width: 80%; } }

/* No lonely last word: fit-intros.js widens short-overflow centred intros
   (.px-fit-wide, centred over the narrower head block); everything else wraps
   with fewer orphans. */
.elementor-widget-text-editor p, .elementor-widget-heading .elementor-heading-title { text-wrap: pretty; }
.elementor-widget.px-fit-wide { flex-shrink: 0; align-self: flex-start; }
/* Coverflow hero slider (Book a Demo) reaches ~8px past the viewport: clip it at the section edge. */
.elementor > .e-con:has(.px-slider--coverflow) { overflow-x: clip; }
/* Slide-in reveals (px-rv--x) and decorative overhangs must never make the page
   scroll sideways. `clip` (not hidden) keeps position: sticky working. */
.prexa365-site { overflow-x: clip; }

/* Client feedback (2026-10): one-line heads on the home page, larger integration logos. */
.home #solutions .px-head { max-width: 1000px !important; }
.home #case-studies .px-head__intro { max-width: none !important; }
.home #integrations .px-integrations__head .px-head { max-width: 1100px !important; }
.home #integrations .px-head__intro { text-wrap: balance; }
.home #about .elementor-widget-heading .elementor-heading-title { max-width: none !important; }
@media (min-width: 768px) {
	.px-integrations__wall .px-logo { padding: 12px !important; }
	.px-integrations__wall .px-logo__img { max-height: 64px; max-width: 100%; }
}
#trusted-partner .elementor-widget-image img { width: auto !important; max-width: 100%; }
#trust-strip .elementor-widget-image img { width: auto !important; max-width: 100%; }

/* Resource listings (blog, case studies, press, videos, events): an incomplete
   last row sits centred instead of hugging the left edge. Same column widths. */
.pxr-grid { display: flex !important; flex-wrap: wrap; justify-content: center; }
.pxr-grid > * { flex: 0 0 calc((100% - 48px) / 3); min-width: 0; }
.pxr-grid--cols-4 > * { flex-basis: calc((100% - 60px) / 4); }
.pxr-grid--cols-2 > * { flex-basis: calc((100% - 24px) / 2); }
@media (max-width: 1024px) {
	.pxr-grid > * { flex-basis: calc((100% - 24px) / 2); }
	.pxr-grid--cols-4 > * { flex-basis: calc((100% - 20px) / 2); }
}
@media (max-width: 767px) { .pxr-grid > *, .pxr-grid--cols-4 > *, .pxr-grid--cols-2 > * { flex-basis: 100%; } }

/* Home sector cards: grow with long sector lists so every "Explore" link sits on one baseline. */
.home #industries .px-card--industry { height: auto; min-height: 268px; }
.home #industries .px-card--industry .px-link { margin-top: auto; padding-top: 14px; }
/* Related-integration logos (generic integration pages). */
.px-rel-logo img { width: auto !important; max-width: 100%; }
@media (min-width: 1025px) { .e-con:has(> .px-rel-logo) { flex: 1 1 0 !important; min-width: 0; max-width: 300px; } }
/* Integrations hero ring: logos fill their chips (larger marks). */
@media (min-width: 768px) {
	.px-iorbit .px-iorbit__chip--logo { padding: 7px 9px; }
	.px-iorbit .px-iorbit__chip img.px-iorbit__logo { width: 100%; max-width: 100%; height: 42px; }
}

/* Hero stat row: five equal columns, suffix attached to the number, labels on a common width. */
.px-statbar--hero { grid-auto-flow: column; grid-auto-columns: unset; grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: start; }
.px-statbar--hero .px-statbar__cell { padding: 2px 14px 2px 18px; min-width: 0; }
.px-statbar--hero .px-statbar__cell:first-child { padding-left: 0; }
.px-statbar--hero .px-statbar__value { gap: 0; align-items: flex-start; font-size: 28px; line-height: 1.1; letter-spacing: -0.6px; margin-bottom: 8px; white-space: nowrap; }
.px-statbar--hero .px-statbar__suffix { font-size: 17px; line-height: 1; margin: 1px 0 0 2px; vertical-align: baseline; letter-spacing: 0; }
.px-statbar--hero .px-statbar__label { max-width: none; font-size: 12px; line-height: 1.4; color: #6b7389; }
@media (max-width: 767px) {
	.px-statbar--hero { grid-auto-flow: row; grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 18px; }
	.px-statbar--hero .px-statbar__cell { padding: 0 10px; }
	.px-statbar--hero .px-statbar__cell:nth-child(3n+1) { padding-left: 0; border-left: 0 !important; }
	.px-statbar--hero.has-dividers .px-statbar__cell + .px-statbar__cell { border-left: 1px solid #e0e5f0; }
	.px-statbar--hero .px-statbar__value { font-size: 24px; margin-bottom: 4px; }
	.px-statbar--hero .px-statbar__suffix { font-size: 14px; }
}
/* Footer UK flag links to the UK hub. */
a.px-fflag-link { text-decoration: none; transition: transform .2s ease; }
a.px-fflag-link:hover { transform: translateY(-2px); }
a.px-fflag-link:hover .elementor-heading-title { color: var(--px-red, #d30d27) !important; }
/* About leadership cards: LinkedIn disc pinned to the header corner on phones. */
@media (max-width: 767px) {
	.px-team-head { position: relative; padding-right: 58px !important; }
	.px-team-head .px-team-li { position: absolute !important; top: 16px; right: 16px; margin: 0 !important; }
}
.px-team-head .px-rshrink { min-width: 0; }
@media (max-width: 767px) {
	.px-team-head .px-team-photo img { width: 84px !important; height: 84px !important; }
	.px-team-head .px-rshrink > .elementor-element:last-child .elementor-heading-title,
	.px-team-head .px-rshrink > .elementor-element:last-child { white-space: nowrap; font-size: 9.5px !important; letter-spacing: .3px !important; }
}
/* Outline buttons on the home page: keep the label readable on hover (white on navy). */
.home .px-integrations__head .px-button:hover, .home .px-integrations__head .px-button:focus-visible,
.home .px-button--outline:hover, .home .px-button--outline:focus-visible { background: #101b3f; border-color: #101b3f; color: #fff; }

/* The utility bar (40px, shown from 768px) now stays in the sticky header:
   anchors and sticky sidebars clear 125px instead of 85px. */
@media (min-width: 768px) {
	html { scroll-padding-top: 140px; }
	.e-con.px-rx-aside, .pxr-toc { top: 145px !important; }
	.px-art-body h2, .pxr-art h2, .pxr-gl-letter { scroll-margin-top: 140px; }
	.e-con.px-uk-sticky { top: 156px; }
}

/* Hide the CF7 response box until it actually has a message. */
.wpcf7 form .wpcf7-response-output:empty { display: none !important; }
