/*
 * SmartQCx theme styles.
 * Ported from the approved Next.js design (src/app/globals.css) and mapped onto core block markup.
 * Loaded on the front end and as the editor style, so the editor matches the site.
 */

:root {
	--sqx-navy: #0b1f3a;
	--sqx-navy-mid: #16324f;
	--sqx-navy-deep: #061422;
	--sqx-teal: #14b8a6;
	--sqx-teal-deep: #0d9488;
	--sqx-teal-soft: #ccfbf1;
	--sqx-teal-glow: #5eead4;
	--sqx-teal-ink: #7de0cb;
	--sqx-steel: #475569;
	--sqx-steel-dark: #334155;
	--sqx-mist: #e8f4f2;
	--sqx-line: rgba(11, 31, 58, 0.1);
	--sqx-line-strong: rgba(11, 31, 58, 0.16);
	--sqx-on-dark: #f8fafc;
	--sqx-on-dark-muted: rgba(248, 250, 252, 0.75);
	--sqx-radius-sm: 0.6rem;
	--sqx-display: var(--wp--preset--font-family--display, Outfit, "Segoe UI", sans-serif);
	--sqx-header-h: 4.35rem;

	/* Motion tokens. Movement only runs when <body> has .sqx-motion (front end, motion enabled)
	   and the visitor has not asked for reduced motion. */
	--sqx-ease: cubic-bezier(0.2, 0, 0, 1);
	--sqx-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
	--sqx-dur-fast: 160ms;
	--sqx-dur: 220ms;
	--sqx-dur-enter: 560ms;
	--sqx-dur-reveal: 520ms;
	--sqx-shift-enter: 16px;
	--sqx-shift-reveal: 14px;
	--sqx-stagger: 60ms;
	--sqx-stagger-reveal: 70ms;
	--sqx-lift-button: -1px;
	--sqx-lift-card: -3px;
	--sqx-focus-ring: 0 0 0 3px rgba(13, 148, 136, 0.22);
}

/* ——— Base ——— */
html {
	scroll-behavior: smooth;
	scroll-padding-top: 5rem;
}

body {
	background-color: #f2f6f9;
	background-image:
		radial-gradient(ellipse 80% 50% at 100% -10%, rgba(26, 168, 143, 0.18), transparent 55%),
		radial-gradient(ellipse 60% 40% at -10% 20%, rgba(10, 30, 54, 0.08), transparent 50%),
		radial-gradient(ellipse 50% 30% at 50% 100%, rgba(26, 168, 143, 0.06), transparent 60%),
		linear-gradient(180deg, #f7fafc 0%, #eef3f7 40%, #f2f6f9 100%);
	background-attachment: fixed;
	-webkit-font-smoothing: antialiased;
}

.wp-site-blocks {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

.wp-site-blocks > main {
	flex: 1;
}

img {
	max-width: 100%;
	height: auto;
}

:where(.wp-site-blocks, .editor-styles-wrapper) p,
:where(.wp-site-blocks, .editor-styles-wrapper) :is(h1, h2, h3, h4) {
	margin-top: 0;
	margin-bottom: 0;
}

:where(.wp-site-blocks, .editor-styles-wrapper) a:focus-visible,
:where(.wp-site-blocks, .editor-styles-wrapper) button:focus-visible,
:where(.wp-site-blocks, .editor-styles-wrapper) input:focus-visible,
:where(.wp-site-blocks, .editor-styles-wrapper) select:focus-visible,
:where(.wp-site-blocks, .editor-styles-wrapper) textarea:focus-visible {
	outline: 2px solid var(--sqx-teal-deep);
	outline-offset: 2px;
}

.skip-link.screen-reader-text:focus {
	z-index: 100000;
}

h2.wp-block-heading {
	font-size: clamp(1.7rem, 3.2vw, 2.35rem);
	letter-spacing: -0.02em;
	margin-bottom: 0.75rem;
}

h3.wp-block-heading {
	font-size: 1.2rem;
	letter-spacing: -0.015em;
}

/* Grids and wrappers keep their own spacing; core flow margins are reset inside them. */
.sqx-grid > *,
.sqx-hero-grid > *,
.sqx-split > *,
.sqx-band-inner > *,
.sqx-footer-grid > *,
.sqx-contact-layout > * {
	margin-block: 0 !important;
	min-width: 0;
}

/* ——— Header ——— */
.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 50;
	margin: 0;
}

.admin-bar .wp-site-blocks > header.wp-block-template-part {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .wp-site-blocks > header.wp-block-template-part {
		top: 46px;
	}
}

.sqx-site-header {
	backdrop-filter: blur(18px) saturate(1.35);
	-webkit-backdrop-filter: blur(18px) saturate(1.35);
	background: rgba(255, 255, 255, 0.72);
	border-bottom: 1px solid rgba(10, 30, 54, 0.08);
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.6) inset;
	transition: background-color var(--sqx-dur) var(--sqx-ease), border-color var(--sqx-dur) var(--sqx-ease), box-shadow var(--sqx-dur) var(--sqx-ease);
}

/* Set by interactions.js once the page scrolls; colour and shadow only, so the height never changes. */
.sqx-site-header.is-scrolled {
	background-color: rgba(255, 255, 255, 0.9);
	border-bottom-color: rgba(10, 30, 54, 0.12);
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.6) inset, 0 8px 24px rgba(6, 20, 34, 0.07);
}

/* backdrop-filter makes the header the containing block for the fixed mobile menu. */
.sqx-site-header:has(.is-menu-open) {
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	background: #fff;
}

.sqx-header-actions .wp-block-button__link {
	white-space: nowrap;
}

.sqx-header-inner {
	min-height: var(--sqx-header-h);
	gap: 1rem;
}

.sqx-brand {
	gap: 0.65rem !important;
	flex-wrap: nowrap !important;
}

.sqx-brand .wp-block-site-logo img {
	width: 160px;
	max-width: 100%;
	height: auto;
	object-fit: contain;
}

/* Also cover saved legacy branding groups in the Site Editor. */
.sqx-brand:has(.wp-block-site-logo img) .wp-block-site-title {
	display: none !important;
}

.wp-block-site-title.sqx-wordmark,
.sqx-wordmark {
	font-family: var(--sqx-display);
	font-weight: 700;
	font-size: 1.18rem;
	letter-spacing: -0.02em;
	line-height: 1.2;
	color: var(--sqx-navy);
}

.sqx-wordmark a {
	text-decoration: none;
	color: inherit;
}

.sqx-wordmark .sqx-wordmark-accent {
	color: var(--sqx-teal-deep);
}

.sqx-header-actions {
	gap: 0.55rem !important;
	flex-wrap: nowrap !important;
}

/* Primary navigation (core Navigation block) */
.sqx-site-header .wp-block-navigation {
	gap: 1.65rem;
	font-size: 0.92rem;
	font-weight: 560;
	letter-spacing: -0.01em;
}

.sqx-site-header .wp-block-navigation .wp-block-navigation__container {
	gap: 1.65rem;
}

.sqx-site-header .wp-block-navigation-item__content {
	position: relative;
	color: var(--sqx-steel);
	padding: 0.25rem 0;
	border-radius: 2px;
	transition: color var(--sqx-dur-fast) var(--sqx-ease);
}

.sqx-site-header .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -0.2rem;
	width: 100%;
	height: 2px;
	border-radius: 2px;
	background: var(--sqx-teal);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--sqx-dur) var(--sqx-ease), background-color var(--sqx-dur-fast) var(--sqx-ease);
}

/* Current page: navy text with a solid deep-teal underline (also shown in the mobile menu). */
.sqx-site-header .wp-block-navigation-item__content[aria-current="page"],
.sqx-site-header .current-menu-item > .wp-block-navigation-item__content {
	color: var(--sqx-navy);
}

.sqx-site-header .wp-block-navigation-item__content[aria-current="page"]::after,
.sqx-site-header .current-menu-item > .wp-block-navigation-item__content::after {
	transform: scaleX(1);
	background: var(--sqx-teal-deep);
}

/* Keyboard focus gets the same underline as hover, plus the global focus outline. */
.sqx-site-header .wp-block-navigation-item__content:focus-visible {
	color: var(--sqx-navy);
	outline-offset: 4px;
}

.sqx-site-header .wp-block-navigation-item__content:focus-visible::after {
	transform: scaleX(1);
}

@media (hover: hover) and (pointer: fine) {
	.sqx-site-header .wp-block-navigation-item__content:hover {
		color: var(--sqx-navy);
	}

	.sqx-site-header .wp-block-navigation-item__content:hover::after {
		transform: scaleX(1);
	}
}

.sqx-site-header .wp-block-navigation__responsive-container-open {
	width: 2.55rem;
	height: 2.55rem;
	border: 1px solid var(--sqx-line-strong);
	background: #fff;
	border-radius: var(--sqx-radius-sm);
	color: var(--sqx-navy);
	align-items: center;
	justify-content: center;
	-webkit-tap-highlight-color: transparent;
	transition: border-color var(--sqx-dur-fast) var(--sqx-ease), background-color var(--sqx-dur-fast) var(--sqx-ease);
}

.sqx-site-header :is(.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close):focus-visible {
	outline: 2px solid var(--sqx-teal-deep);
	outline-offset: 2px;
}

@media (hover: hover) and (pointer: fine) {
	.sqx-site-header .wp-block-navigation__responsive-container-open:hover {
		border-color: var(--sqx-navy);
		background-color: #f8fafc;
	}
}

.sqx-site-header .wp-block-navigation__responsive-container.is-menu-open {
	top: var(--sqx-header-h);
	bottom: auto;
	padding: 0.75rem 1.35rem 1.35rem;
	background: #fff !important;
	color: var(--sqx-navy) !important;
	border-top: 1px solid var(--sqx-line);
	box-shadow: 0 18px 40px rgba(6, 20, 34, 0.12);
	animation: none;
}

.admin-bar .sqx-site-header .wp-block-navigation__responsive-container.is-menu-open {
	top: calc(var(--sqx-header-h) + 32px);
}

@media (max-width: 782px) {
	.admin-bar .sqx-site-header .wp-block-navigation__responsive-container.is-menu-open {
		top: calc(var(--sqx-header-h) + 46px);
	}
}

.sqx-site-header .is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 0 !important;
	align-items: stretch !important;
}

.sqx-site-header .is-menu-open .wp-block-navigation__container {
	gap: 0.75rem !important;
	align-items: flex-start !important;
}

.sqx-site-header .is-menu-open .wp-block-navigation__responsive-container-close {
	top: 0.25rem;
	right: 0;
}

/* Core collapses the menu below 600px; the approved design collapses below 760px. */
@media (min-width: 600px) and (max-width: 759.98px) {
	.sqx-site-header .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.sqx-site-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}
}

@media (max-width: 759.98px) {
	.sqx-header-inner .wp-block-navigation {
		order: 3;
	}
}

/* ——— Buttons ——— */
.wp-block-buttons {
	gap: 0.75rem;
}

.wp-block-button[class*="is-style-sqx-"] .wp-block-button__link {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	min-height: 2.75rem;
	padding: 0.62rem 1.2rem;
	border-radius: var(--sqx-radius-sm);
	font-family: inherit;
	font-weight: 650;
	font-size: 0.93rem;
	line-height: 1.3;
	letter-spacing: -0.01em;
	text-decoration: none;
	border: 1px solid transparent;
	-webkit-tap-highlight-color: transparent;
	touch-action: manipulation;
	transition:
		transform var(--sqx-dur-fast) var(--sqx-ease),
		background-color var(--sqx-dur-fast) var(--sqx-ease),
		border-color var(--sqx-dur-fast) var(--sqx-ease),
		color var(--sqx-dur-fast) var(--sqx-ease),
		box-shadow var(--sqx-dur) var(--sqx-ease);
}

/*
 * Button states. "Active" styles (hover on mouse/trackpad, keyboard focus) share one look per style;
 * :hover is limited to devices that really hover so touch screens never keep a stuck hover state.
 */
.is-style-sqx-primary .wp-block-button__link {
	background: linear-gradient(165deg, #143555 0%, var(--sqx-navy) 55%, var(--sqx-navy-deep) 100%);
	color: #fff;
	box-shadow: 0 8px 24px rgba(10, 30, 54, 0.22);
}

.is-style-sqx-primary .wp-block-button__link:focus-visible {
	background: var(--sqx-navy-deep);
	color: #fff;
	box-shadow: 0 10px 28px rgba(10, 30, 54, 0.28);
}

.is-style-sqx-teal .wp-block-button__link {
	background: linear-gradient(165deg, #22c3a6 0%, var(--sqx-teal) 50%, var(--sqx-teal-deep) 100%);
	color: #fff;
	box-shadow: 0 8px 24px rgba(26, 168, 143, 0.28);
}

.is-style-sqx-teal .wp-block-button__link:focus-visible {
	background: var(--sqx-teal-deep);
	color: #fff;
	box-shadow: 0 10px 28px rgba(26, 168, 143, 0.34);
}

.is-style-sqx-primary .wp-block-button__link::after,
.is-style-sqx-teal .wp-block-button__link::after {
	content: "";
	position: absolute;
	inset: -1px;
	border-radius: inherit;
	background: linear-gradient(135deg, rgba(26, 168, 143, 0.45), transparent 55%);
	z-index: -1;
	opacity: 0;
	transition: opacity var(--sqx-dur) var(--sqx-ease);
}

.is-style-sqx-primary .wp-block-button__link:focus-visible::after,
.is-style-sqx-teal .wp-block-button__link:focus-visible::after {
	opacity: 1;
}

.wp-block-button.is-style-sqx-secondary .wp-block-button__link {
	background: transparent;
	color: var(--sqx-navy);
	border-color: var(--sqx-line-strong);
}

.wp-block-button.is-style-sqx-secondary .wp-block-button__link:focus-visible {
	border-color: var(--sqx-navy);
	background: rgba(10, 30, 54, 0.04);
	color: var(--sqx-navy);
}

.is-style-sqx-on-dark .wp-block-button__link {
	background: transparent;
	color: var(--sqx-on-dark);
	border-color: rgba(255, 255, 255, 0.35);
}

.is-style-sqx-on-dark .wp-block-button__link:focus-visible {
	border-color: var(--sqx-teal-glow);
	background: rgba(255, 255, 255, 0.08);
	color: var(--sqx-on-dark);
	outline-color: var(--sqx-teal-glow);
}

:is(.is-style-sqx-section-dark, .is-style-sqx-band, .is-style-sqx-aside) :is(a, button):focus-visible {
	outline-color: var(--sqx-teal-glow);
}

@media (hover: hover) and (pointer: fine) {
	.is-style-sqx-primary .wp-block-button__link:hover {
		background: var(--sqx-navy-deep);
		color: #fff;
		box-shadow: 0 10px 28px rgba(10, 30, 54, 0.28);
	}

	.is-style-sqx-teal .wp-block-button__link:hover {
		background: var(--sqx-teal-deep);
		color: #fff;
		box-shadow: 0 10px 28px rgba(26, 168, 143, 0.34);
	}

	.is-style-sqx-primary .wp-block-button__link:hover::after,
	.is-style-sqx-teal .wp-block-button__link:hover::after {
		opacity: 1;
	}

	.wp-block-button.is-style-sqx-secondary .wp-block-button__link:hover {
		border-color: var(--sqx-navy);
		background: rgba(10, 30, 54, 0.04);
		color: var(--sqx-navy);
	}

	.is-style-sqx-on-dark .wp-block-button__link:hover {
		border-color: var(--sqx-teal-glow);
		background: rgba(255, 255, 255, 0.08);
		color: var(--sqx-on-dark);
	}
}

/* Pressed: settles back down with a tighter shadow (works for touch, mouse, and Enter/Space). */
.wp-block-button[class*="is-style-sqx-"] .wp-block-button__link:active {
	transform: translateY(0);
	transition-duration: 60ms;
}

.is-style-sqx-primary .wp-block-button__link:active,
.is-style-sqx-teal .wp-block-button__link:active {
	box-shadow: 0 4px 12px rgba(10, 30, 54, 0.2);
}

/* Disabled (button blocks with aria-disabled, or real disabled buttons). */
.wp-block-button[class*="is-style-sqx-"] .wp-block-button__link:is([aria-disabled="true"], :disabled, .disabled) {
	opacity: 0.55;
	cursor: not-allowed;
	transform: none !important;
	box-shadow: none;
	pointer-events: none;
}

/* ——— Text styles ——— */
p.is-style-sqx-eyebrow {
	margin-bottom: 0.5rem;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	font-size: 0.7rem;
	font-weight: 750;
	color: var(--sqx-teal-deep);
}

p.is-style-sqx-kicker {
	display: inline-flex;
	align-items: center;
	margin-bottom: 1rem;
	padding: 0.35rem 0.75rem;
	border-radius: 0.45rem;
	border: 1px solid rgba(26, 168, 143, 0.28);
	background: rgba(255, 255, 255, 0.7);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--sqx-teal-deep);
}

p.is-style-sqx-brand {
	font-family: var(--sqx-display);
	font-size: clamp(2.6rem, 6vw, 4.1rem);
	font-weight: 800;
	letter-spacing: -0.035em;
	line-height: 1;
	margin-bottom: 0.9rem;
	color: var(--sqx-navy);
}

p.is-style-sqx-brand mark {
	background-color: transparent !important;
	background-image: linear-gradient(120deg, var(--sqx-teal-deep), #1aa88f 55%, #0f7a68) !important;
	-webkit-background-clip: text !important;
	background-clip: text !important;
	color: transparent !important;
}

p.is-style-sqx-index {
	display: inline-block;
	margin-bottom: 0.75rem;
	font-family: var(--sqx-display);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	color: var(--sqx-teal-deep);
}

p.is-style-sqx-lead {
	color: var(--sqx-steel-dark);
	font-size: 1.08rem;
	line-height: 1.65;
	max-width: 32rem;
	margin-bottom: 1.55rem;
}

/* Lists */
ul.is-style-sqx-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	list-style: none;
	margin: 1.35rem 0 0;
	padding: 0;
}

ul.is-style-sqx-chips li {
	padding: 0.4rem 0.7rem;
	border-radius: 0.45rem;
	border: 1px solid var(--sqx-line);
	background: rgba(255, 255, 255, 0.75);
	font-size: 0.78rem;
	font-weight: 650;
	line-height: 1.4;
	color: var(--sqx-steel-dark);
}

ul.is-style-sqx-checks {
	margin: 0.75rem 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.4rem;
}

ul.is-style-sqx-checks li {
	position: relative;
	padding-left: 1rem;
	color: var(--sqx-navy);
	font-size: 0.93rem;
	line-height: 1.45;
}

ul.is-style-sqx-checks li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.5rem;
	width: 0.4rem;
	height: 0.4rem;
	background: var(--sqx-teal);
	border-radius: 1px;
}

ul.is-style-sqx-marks {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.45rem;
}

ul.is-style-sqx-marks li {
	padding: 0.35rem 0.7rem;
	border-radius: 0.45rem;
	border: 1px solid var(--sqx-line);
	background: rgba(241, 245, 249, 0.9);
	font-size: 0.74rem;
	font-weight: 650;
	color: var(--sqx-steel-dark);
}

/* Feature icon */
.wp-block-image.is-style-sqx-icon {
	width: 2.55rem;
	height: 2.55rem;
	margin: 0;
	border-radius: 0.55rem;
	background: var(--sqx-teal-soft);
	display: grid;
	place-items: center;
	flex-shrink: 0;
}

.wp-block-image.is-style-sqx-icon img {
	width: 1.2rem !important;
	height: 1.2rem !important;
	object-fit: contain;
}

/* ——— Sections ——— */
.is-style-sqx-section {
	padding-block: 4.75rem;
}

.is-style-sqx-section-surface {
	padding-block: 4.75rem 5.25rem;
	background: rgba(255, 255, 255, 0.55);
	border-block: 1px solid var(--sqx-line);
}

.is-style-sqx-section-dark {
	position: relative;
	padding-block: 5rem 5.5rem;
	overflow: hidden;
	color: var(--sqx-on-dark);
	background:
		radial-gradient(ellipse 70% 80% at 100% 0%, rgba(20, 184, 166, 0.2), transparent 50%),
		linear-gradient(165deg, var(--sqx-navy-deep) 0%, var(--sqx-navy) 48%, #0a2a32 100%);
}

.is-style-sqx-section-dark::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
	background-size: 56px 56px;
	-webkit-mask-image: linear-gradient(180deg, #000, transparent 90%);
	mask-image: linear-gradient(180deg, #000, transparent 90%);
	pointer-events: none;
}

.is-style-sqx-section-dark > * {
	position: relative;
}

.sqx-section-head {
	max-width: 40rem;
	margin-bottom: 2.35rem !important;
}

.is-layout-constrained > .sqx-section-head {
	margin-left: max(0px, (100% - var(--wp--style--global--content-size)) / 2) !important;
	margin-right: auto !important;
}

.sqx-section-head.is-wide {
	max-width: 44rem;
}

.sqx-section-head h2 {
	line-height: 1.18;
	color: var(--sqx-navy);
	font-weight: 700;
}

.sqx-section-head > p:not([class*="is-style-"]) {
	color: var(--sqx-steel-dark);
	font-size: 1.05rem;
	line-height: 1.65;
	max-width: 42rem;
}

:is(.is-style-sqx-section-dark, .is-style-sqx-band, .is-style-sqx-aside) :is(h2, h3) {
	color: var(--sqx-on-dark);
}

:is(.is-style-sqx-section-dark, .is-style-sqx-band) .sqx-section-head > p:not([class*="is-style-"]),
.is-style-sqx-band .sqx-band-inner p:not([class*="is-style-"]) {
	color: var(--sqx-on-dark-muted);
}

:is(.is-style-sqx-section-dark, .is-style-sqx-band) p.is-style-sqx-eyebrow {
	color: var(--sqx-teal-glow);
}

.sqx-section-actions {
	margin-top: 2.25rem !important;
}

.is-style-sqx-section-dark .sqx-section-actions {
	margin-top: 2rem !important;
}

/* ——— Home hero ——— */
.is-style-sqx-hero,
.is-style-sqx-page-hero {
	position: relative;
	overflow: hidden;
	padding-block: 3rem 4rem;
}

.is-style-sqx-hero::before,
.is-style-sqx-page-hero::before {
	content: "";
	position: absolute;
	width: 28rem;
	height: 28rem;
	top: -8rem;
	right: -4rem;
	border-radius: 50%;
	background: rgba(26, 168, 143, 0.28);
	filter: blur(40px);
	opacity: 0.55;
	pointer-events: none;
}

.is-style-sqx-hero::after,
.is-style-sqx-page-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(10, 30, 54, 0.04) 1px, transparent 1px),
		linear-gradient(90deg, rgba(10, 30, 54, 0.04) 1px, transparent 1px);
	background-size: 48px 48px;
	-webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 30%, #000, transparent);
	mask-image: radial-gradient(ellipse 70% 60% at 50% 30%, #000, transparent);
	pointer-events: none;
}

.sqx-hero-grid {
	position: static;
	display: grid;
	gap: 2.5rem;
	align-items: center;
}

.sqx-hero-grid::before {
	content: "";
	position: absolute;
	width: 22rem;
	height: 22rem;
	bottom: -6rem;
	left: -6rem;
	border-radius: 50%;
	background: rgba(20, 53, 85, 0.18);
	filter: blur(40px);
	opacity: 0.55;
	pointer-events: none;
}

.is-style-sqx-hero .sqx-hero-grid::after {
	content: "";
	position: absolute;
	width: 14rem;
	height: 14rem;
	top: 40%;
	left: 42%;
	border-radius: 50%;
	background: rgba(26, 168, 143, 0.12);
	filter: blur(40px);
	opacity: 0.55;
	pointer-events: none;
}

.sqx-hero-copy {
	position: relative;
	z-index: 2;
	max-width: 34rem;
}

.sqx-hero-copy h1 {
	margin-bottom: 0.9rem;
	font-size: clamp(1.3rem, 2.6vw, 1.8rem);
	line-height: 1.28;
	letter-spacing: -0.02em;
	font-weight: 650;
	color: var(--sqx-navy-mid);
}

.sqx-hero-visual {
	position: relative;
	z-index: 1;
}

.sqx-hero-visual::before {
	content: "";
	position: absolute;
	inset: 8% -4% -4% 8%;
	border-radius: 1.25rem;
	background: linear-gradient(145deg, rgba(26, 168, 143, 0.22), rgba(10, 30, 54, 0.08));
	z-index: -1;
	transform: rotate(2deg);
}

/* ——— Inner page hero ——— */
.is-style-sqx-page-hero {
	padding-block: 2.75rem 2.5rem;
	border-bottom: 1px solid var(--sqx-line);
	background:
		radial-gradient(ellipse 60% 80% at 100% 0%, rgba(26, 168, 143, 0.1), transparent 55%),
		linear-gradient(180deg, rgba(255, 255, 255, 0.75), transparent 92%);
}

.is-style-sqx-page-hero.is-dense {
	padding-block: 2.5rem 3.25rem;
}

.is-style-sqx-page-hero::before {
	width: 22rem;
	height: 22rem;
	right: -2rem;
	background: rgba(26, 168, 143, 0.22);
	filter: blur(36px);
	opacity: 1;
}

.is-style-sqx-page-hero .sqx-hero-grid::before {
	width: 16rem;
	height: 16rem;
	left: 10%;
	background: rgba(20, 53, 85, 0.14);
	filter: blur(36px);
	opacity: 1;
}

.is-style-sqx-page-hero .sqx-hero-grid {
	gap: 2rem;
}

.is-style-sqx-page-hero .sqx-hero-copy {
	max-width: 46rem;
}

.is-style-sqx-page-hero h1 {
	font-size: clamp(2.1rem, 4.2vw, 3rem);
	max-width: 16ch;
	letter-spacing: -0.03em;
	line-height: 1.12;
	font-weight: 800;
	margin-bottom: 0.75rem;
	color: var(--sqx-navy);
}

.is-style-sqx-page-hero.is-dense h1 {
	max-width: 14ch;
}

.is-style-sqx-page-hero h1 + p {
	max-width: 40rem;
	margin-top: 0.85rem;
	color: var(--sqx-steel-dark);
	font-size: 1.05rem;
	line-height: 1.65;
}

.is-style-sqx-page-hero .wp-block-buttons {
	margin-top: 1.35rem;
}

.is-style-sqx-page-hero .sqx-hero-visual::before {
	inset: 10% -6% -6% 10%;
	background: linear-gradient(145deg, rgba(26, 168, 143, 0.2), rgba(10, 30, 54, 0.08));
}

/* ——— Proof bar ——— */
.is-style-sqx-proof {
	padding-block: 1.35rem;
	border-block: 1px solid var(--sqx-line);
	background: rgba(255, 255, 255, 0.72);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}

.is-style-sqx-proof > * + * {
	margin-top: 1.1rem !important;
}

.sqx-proof-label {
	font-size: 0.7rem;
	font-weight: 750;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--sqx-teal-deep);
	text-align: center;
}

.sqx-metrics {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.85rem;
}

.is-style-sqx-metric {
	text-align: center;
	padding: 0.65rem 0.5rem;
	border-radius: 0.75rem;
	border: 1px solid var(--sqx-line);
	background: rgba(255, 255, 255, 0.85);
}

.is-style-sqx-metric > p:first-child {
	font-family: var(--sqx-display);
	font-size: 1.15rem;
	font-weight: 750;
	letter-spacing: -0.02em;
	color: var(--sqx-navy);
	line-height: 1.2;
}

.is-style-sqx-metric > p + p {
	margin-top: 0.2rem !important;
	font-size: 0.72rem;
	font-weight: 600;
	color: var(--sqx-steel);
	line-height: 1.5;
}

/* ——— Cards ——— */
.sqx-grid {
	display: grid;
	gap: 1rem;
}

.is-style-sqx-card {
	padding: 1.55rem 1.45rem;
	border-radius: 1.15rem;
	border: 1px solid rgba(10, 30, 54, 0.1);
	background: rgba(255, 255, 255, 0.78);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	box-shadow: 0 12px 40px rgba(6, 19, 34, 0.06);
	transition: transform var(--sqx-dur) var(--sqx-ease), border-color var(--sqx-dur) var(--sqx-ease), box-shadow var(--sqx-dur) var(--sqx-ease);
}

.is-style-sqx-card-featured {
	padding: 1.55rem 1.45rem;
	border-radius: 1.15rem;
	border: 1px solid rgba(26, 168, 143, 0.28);
	background:
		linear-gradient(145deg, rgba(26, 168, 143, 0.12), rgba(255, 255, 255, 0.9) 45%),
		rgba(255, 255, 255, 0.9);
	box-shadow: 0 12px 40px rgba(6, 19, 34, 0.06);
	transition: transform var(--sqx-dur) var(--sqx-ease), border-color var(--sqx-dur) var(--sqx-ease), box-shadow var(--sqx-dur) var(--sqx-ease);
}

:is(.is-style-sqx-card, .is-style-sqx-card-featured) h3 {
	margin-bottom: 0.5rem;
	font-size: 1.3rem;
	letter-spacing: -0.02em;
	color: var(--sqx-navy);
}

:is(.is-style-sqx-card, .is-style-sqx-card-featured, .is-style-sqx-tile, .is-style-sqx-step) p:not([class*="is-style-"]) {
	color: var(--sqx-steel-dark);
	line-height: 1.55;
}

.is-style-sqx-glass {
	padding: 1.5rem 1.4rem;
	border-radius: 1.15rem;
	border: 1px solid rgba(255, 255, 255, 0.12);
	background: rgba(255, 255, 255, 0.06);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	transition: background-color var(--sqx-dur) var(--sqx-ease), border-color var(--sqx-dur) var(--sqx-ease), transform var(--sqx-dur) var(--sqx-ease);
}

.is-style-sqx-glass h3 {
	margin: 0.9rem 0 0.4rem;
	font-size: 1.15rem;
	color: #fff;
}

.is-style-sqx-glass p.is-style-sqx-index + h3 {
	margin-top: 0;
	font-size: 1.25rem;
	margin-bottom: 0.5rem;
}

.is-style-sqx-glass p:not([class*="is-style-"]) {
	color: rgba(255, 255, 255, 0.72);
	font-size: 0.98rem;
	line-height: 1.55;
}

.is-style-sqx-glass p.is-style-sqx-index {
	color: var(--sqx-teal-ink);
	letter-spacing: 0.08em;
}

.is-style-sqx-glass .wp-block-image.is-style-sqx-icon {
	background: rgba(26, 168, 143, 0.2);
}

/* Feature tile (features page) */
.is-style-sqx-tile {
	display: grid;
	gap: 0.85rem;
	align-content: start;
	padding: 1.55rem 1.5rem;
	border: 1px solid rgba(10, 30, 54, 0.1);
	border-radius: 1.15rem;
	background: rgba(255, 255, 255, 0.82);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	box-shadow: 0 12px 36px rgba(6, 19, 34, 0.06);
	transition: border-color var(--sqx-dur) var(--sqx-ease), transform var(--sqx-dur) var(--sqx-ease), box-shadow var(--sqx-dur) var(--sqx-ease);
}

.is-style-sqx-tile > * {
	margin: 0 !important;
}

/*
 * Card hover. Informational cards only get a quiet border accent and softer, deeper shadow (no lift,
 * no pointer), so they never look like links. A card becomes clickable when its heading contains a
 * link: the link then covers the whole card, and the card lifts slightly and shows a pointer.
 */
@media (hover: hover) and (pointer: fine) {
	:is(.is-style-sqx-card, .is-style-sqx-card-featured, .is-style-sqx-tile):hover {
		border-color: rgba(26, 168, 143, 0.32);
		box-shadow: 0 16px 44px rgba(6, 19, 34, 0.085);
	}

	.is-style-sqx-glass:hover {
		background-color: rgba(255, 255, 255, 0.09);
		border-color: rgba(94, 234, 212, 0.32);
	}
}

:is(.is-style-sqx-card, .is-style-sqx-card-featured, .is-style-sqx-tile, .is-style-sqx-glass):has(:is(h2, h3, h4) a) {
	position: relative;
}

:is(.is-style-sqx-card, .is-style-sqx-card-featured, .is-style-sqx-tile, .is-style-sqx-glass) :is(h2, h3, h4) a {
	color: inherit;
	text-decoration: none;
}

/* Front end only (.wp-site-blocks), so the overlay never blocks editing the card in the editor. */
.wp-site-blocks :is(.is-style-sqx-card, .is-style-sqx-card-featured, .is-style-sqx-tile, .is-style-sqx-glass) :is(h2, h3, h4) a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
}

:is(.is-style-sqx-card, .is-style-sqx-card-featured, .is-style-sqx-tile, .is-style-sqx-glass) :is(h2, h3, h4) a:focus-visible {
	outline: none;
}

:is(.is-style-sqx-card, .is-style-sqx-card-featured, .is-style-sqx-tile, .is-style-sqx-glass):has(:is(h2, h3, h4) a:focus-visible) {
	outline: 2px solid var(--sqx-teal-deep);
	outline-offset: 3px;
	border-color: rgba(26, 168, 143, 0.5);
}

@media (hover: hover) and (pointer: fine) {
	:is(.is-style-sqx-card, .is-style-sqx-card-featured, .is-style-sqx-tile):has(:is(h2, h3, h4) a):hover {
		border-color: rgba(26, 168, 143, 0.5);
		box-shadow: 0 18px 48px rgba(6, 19, 34, 0.11);
	}

	:is(.is-style-sqx-card, .is-style-sqx-card-featured, .is-style-sqx-tile, .is-style-sqx-glass):has(:is(h2, h3, h4) a):hover :is(h2, h3, h4) a {
		color: var(--sqx-teal-deep);
	}

	.is-style-sqx-glass:has(:is(h2, h3, h4) a):hover :is(h2, h3, h4) a {
		color: var(--sqx-teal-glow);
	}
}

.is-style-sqx-tile h3 {
	margin-bottom: 0.35rem;
	color: var(--sqx-navy);
}

.is-style-sqx-tile p:not([class*="is-style-"]) {
	font-size: 0.98rem;
}

/* ——— Workflow steps ——— */
.sqx-flow {
	gap: 1.15rem;
}

.is-style-sqx-step {
	display: grid;
	grid-template-columns: 3rem 1fr;
	gap: 1rem;
	align-items: start;
}

.is-style-sqx-step > * {
	margin: 0 !important;
}

.is-style-sqx-step > p:first-child {
	position: relative;
	display: grid;
	place-items: center;
	width: 2.6rem;
	height: 2.6rem;
	border-radius: 0.65rem;
	background: linear-gradient(165deg, #22c3a6, var(--sqx-teal-deep));
	color: #fff;
	font-family: var(--sqx-display);
	font-weight: 700;
	font-size: 0.85rem;
	box-shadow: 0 8px 20px rgba(26, 168, 143, 0.3);
}

.is-style-sqx-step > p:first-child::after {
	content: "";
	position: absolute;
	left: 50%;
	top: calc(100% + 0.45rem);
	width: 2px;
	height: 2.5rem;
	transform: translateX(-50%);
	background: linear-gradient(180deg, var(--sqx-teal), rgba(26, 168, 143, 0.1));
}

.is-style-sqx-step:last-child > p:first-child::after {
	display: none;
}

.is-style-sqx-step > .wp-block-group {
	padding: 1.45rem 1.4rem;
	border-radius: 1.15rem;
	border: 1px solid rgba(10, 30, 54, 0.1);
	background: rgba(255, 255, 255, 0.85);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	box-shadow: 0 12px 36px rgba(6, 19, 34, 0.06);
}

.is-style-sqx-step h3 {
	margin-bottom: 0.45rem;
	font-size: 1.25rem;
	letter-spacing: -0.02em;
}

/* ——— Product screenshot ——— */
.is-style-sqx-shot {
	position: relative;
	margin: 0;
	border-radius: 1rem;
	overflow: hidden;
	border: 1px solid rgba(11, 31, 58, 0.12);
	background: #fff;
	box-shadow: 0 4px 14px rgba(6, 20, 34, 0.06), 0 28px 60px rgba(6, 20, 34, 0.14);
}

.is-style-sqx-shot > * {
	margin: 0 !important;
}

.is-style-sqx-shot > p:first-child {
	display: flex;
	align-items: center;
	padding: 0.55rem 0.75rem;
	background: #eef2f6;
	border-bottom: 1px solid rgba(11, 31, 58, 0.08);
	font-size: 0.68rem;
	font-weight: 650;
	line-height: 1.2;
	color: var(--sqx-steel);
}

.is-style-sqx-shot > p:first-child::before {
	content: "";
	flex: none;
	width: 0.5rem;
	height: 0.5rem;
	margin-right: 2.2rem;
	border-radius: 50%;
	background: #ff6b6b;
	box-shadow: 0.85rem 0 0 #ffd166, 1.7rem 0 0 #06d6a0;
}

.is-style-sqx-shot .wp-block-image {
	overflow: hidden;
	background: #f8fafc;
	aspect-ratio: 16 / 10;
}

.is-style-sqx-shot.is-dense .wp-block-image {
	aspect-ratio: 16 / 9.5;
}

.is-style-sqx-shot .wp-block-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top left;
}

/* ——— Media band ——— */
.sqx-split {
	display: grid;
	gap: 2rem;
	align-items: center;
	padding-block: 0.5rem;
}

.sqx-split h2 {
	font-size: clamp(1.55rem, 3vw, 2.1rem);
	letter-spacing: -0.025em;
	margin-bottom: 0.65rem;
	color: var(--sqx-navy);
}

.sqx-split p:not([class*="is-style-"]) {
	margin-bottom: 1.25rem;
	color: var(--sqx-steel-dark);
	max-width: 34rem;
	line-height: 1.6;
}

/* ——— CTA band ——— */
.is-style-sqx-band {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	padding-block: 3.75rem;
	color: var(--sqx-on-dark);
	background:
		radial-gradient(ellipse 60% 80% at 0% 100%, rgba(20, 184, 166, 0.22), transparent 55%),
		linear-gradient(125deg, var(--sqx-navy-deep) 0%, var(--sqx-navy) 48%, #0a3d38 100%);
}

.is-style-sqx-band::before {
	content: "";
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(-28deg, transparent 0 26px, rgba(255, 255, 255, 0.03) 26px 27px);
	pointer-events: none;
}

.sqx-band-inner {
	position: relative;
	z-index: 1;
	display: grid;
	gap: 1.25rem;
	align-items: center;
}

.sqx-band-inner h2 {
	letter-spacing: -0.022em;
	margin-bottom: 0.65rem;
	font-size: clamp(1.55rem, 3vw, 2.1rem);
	max-width: 28rem;
}

.sqx-band-inner p:not([class*="is-style-"]) {
	max-width: 34rem;
	font-size: 1.02rem;
}

/* ——— Contact ——— */
.sqx-contact-layout {
	display: grid;
	gap: 1.25rem;
	align-items: stretch;
}

.is-style-sqx-panel {
	padding: 1.65rem 1.55rem 1.75rem;
	border: 1px solid rgba(10, 30, 54, 0.1);
	border-radius: 1rem;
	background: rgba(255, 255, 255, 0.9);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	box-shadow: 0 18px 50px rgba(6, 19, 34, 0.08);
}

.is-style-sqx-panel h2 {
	margin-bottom: 1.15rem;
	font-size: 1.2rem;
	letter-spacing: -0.02em;
}

.is-style-sqx-aside {
	display: flex;
	flex-direction: column;
	padding: 1.75rem 1.6rem;
	border-radius: 1rem;
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.08);
	background:
		radial-gradient(ellipse 80% 60% at 100% 0%, rgba(26, 168, 143, 0.25), transparent 55%),
		linear-gradient(165deg, #071526, #0a1e36 55%, #0c2f3a);
}

.is-style-sqx-aside > * {
	margin: 0 !important;
}

.is-style-sqx-aside p.is-style-sqx-eyebrow {
	margin-bottom: 0.45rem !important;
	letter-spacing: 0.14em;
	color: var(--sqx-teal-ink);
}

.is-style-sqx-aside h2 {
	margin-bottom: 0.65rem !important;
	font-size: 1.35rem;
	letter-spacing: -0.02em;
}

.is-style-sqx-aside p,
.is-style-sqx-aside li {
	color: rgba(255, 255, 255, 0.82);
	line-height: 1.55;
}

.is-style-sqx-aside ul {
	margin: 1.15rem 0 0 !important;
	padding-left: 1.1rem;
	display: grid;
	gap: 0.55rem;
	flex: 1;
}

.is-style-sqx-aside .sqx-aside-email {
	margin-top: 1.75rem !important;
	padding-top: 1.15rem;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	display: grid;
	gap: 0.3rem;
}

.is-style-sqx-aside .sqx-aside-email p:first-child {
	font-size: 0.78rem;
	color: rgba(255, 255, 255, 0.65);
}

.is-style-sqx-aside .sqx-aside-email a {
	color: var(--sqx-teal-ink);
	font-weight: 650;
	text-decoration: none;
}

.is-style-sqx-aside .sqx-aside-email a:hover,
.is-style-sqx-aside .sqx-aside-email a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Fluent Forms skin to match the approved form */
.is-style-sqx-panel .fluentform .ff-el-group {
	margin-bottom: 0.95rem;
}

.is-style-sqx-panel .fluentform .ff-t-container {
	gap: 0.95rem;
}

.is-style-sqx-panel .fluentform .ff-el-input--label label {
	font-weight: 650;
	font-size: 0.9rem;
	color: var(--sqx-navy);
}

.is-style-sqx-panel .fluentform .ff-el-form-control {
	width: 100%;
	border: 1px solid var(--sqx-line-strong);
	border-radius: var(--sqx-radius-sm);
	padding: 0.78rem 0.9rem;
	font: inherit;
	background: #fff;
	color: var(--sqx-navy);
	transition: border-color 150ms ease, box-shadow 150ms ease;
}

.is-style-sqx-panel .fluentform select.ff-el-form-control {
	height: auto;
}

.is-style-sqx-panel .fluentform .ff-el-form-control:focus {
	outline: none;
	border-color: var(--sqx-teal);
	box-shadow: 0 0 0 3px rgba(26, 168, 143, 0.18);
}

.is-style-sqx-panel .fluentform textarea.ff-el-form-control {
	min-height: 8rem;
	resize: vertical;
}

.is-style-sqx-panel .fluentform .ff-btn-submit,
.is-style-sqx-panel .fluentform .ff-btn-submit:not(.ff_btn_no_style) {
	width: 100%;
	min-height: 2.75rem;
	padding: 0.62rem 1.2rem;
	border: 0;
	border-radius: var(--sqx-radius-sm);
	background: linear-gradient(165deg, #143555 0%, var(--sqx-navy) 55%, var(--sqx-navy-deep) 100%) !important;
	color: #fff !important;
	font-family: inherit;
	font-weight: 650;
	font-size: 0.93rem;
	box-shadow: 0 8px 24px rgba(10, 30, 54, 0.22);
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	transition: transform var(--sqx-dur-fast) var(--sqx-ease), box-shadow var(--sqx-dur) var(--sqx-ease), opacity var(--sqx-dur-fast) var(--sqx-ease);
}

.is-style-sqx-panel .fluentform .ff-btn-submit:focus-visible {
	outline: 2px solid var(--sqx-teal-deep);
	outline-offset: 2px;
	box-shadow: 0 10px 28px rgba(10, 30, 54, 0.28);
}

@media (hover: hover) and (pointer: fine) {
	.is-style-sqx-panel .fluentform .ff-btn-submit:not(:disabled):hover {
		opacity: 1;
		box-shadow: 0 10px 28px rgba(10, 30, 54, 0.28);
	}
}

.is-style-sqx-panel .fluentform .ff-btn-submit:not(:disabled):active {
	transform: translateY(0);
	box-shadow: 0 4px 12px rgba(10, 30, 54, 0.2);
	transition-duration: 60ms;
}

/* Submitting: Fluent Forms disables the button and adds .ff-working while the request is pending. */
.is-style-sqx-panel .fluentform .ff-btn-submit:is(:disabled, .disabled) {
	opacity: 0.8;
	cursor: progress;
	transform: none !important;
	box-shadow: none;
}

.is-style-sqx-panel .fluentform .ff-btn-submit.ff-working {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
}

.is-style-sqx-panel .fluentform .ff-btn-submit.ff-working::before {
	content: "";
	flex: none;
	width: 0.95rem;
	height: 0.95rem;
	border: 2px solid rgba(255, 255, 255, 0.35);
	border-top-color: #fff;
	border-radius: 50%;
	animation: sqx-spin 0.8s linear infinite;
}

/* Fluent's own loader would duplicate the spinner. */
.is-style-sqx-panel .fluentform .ff-btn-submit.ff-working::after {
	display: none !important;
}

/* Invalid fields: red border and ring, kept visible while the field has focus. */
.is-style-sqx-panel .fluentform .ff-el-is-error .ff-el-form-control,
.is-style-sqx-panel .fluentform .ff-el-form-control[aria-invalid="true"] {
	border-color: #d92d20;
}

.is-style-sqx-panel .fluentform .ff-el-is-error .ff-el-form-control:focus,
.is-style-sqx-panel .fluentform .ff-el-form-control[aria-invalid="true"]:focus {
	border-color: #b42318;
	box-shadow: 0 0 0 3px rgba(217, 45, 32, 0.16);
}

.is-style-sqx-panel .fluentform .ff-el-is-error .ff-el-input--label label {
	color: #b42318;
}

.is-style-sqx-panel .fluentform .error.text-danger,
.is-style-sqx-panel .ff-errors-in-stack .error {
	color: #b42318;
	font-size: 0.85rem;
	font-weight: 600;
}

.is-style-sqx-panel .fluentform .ff-el-group .error.text-danger {
	margin-top: 0.35rem;
}

/* Form-level failure (for example, email delivery failed or too many requests). */
.is-style-sqx-panel .ff-errors-in-stack:not(:empty) {
	margin-top: 0.85rem;
	padding: 0.8rem 1rem;
	border: 1px solid rgba(217, 45, 32, 0.28);
	border-left: 3px solid #d92d20;
	border-radius: var(--sqx-radius-sm);
	background: #fef3f2;
}

.is-style-sqx-panel .ff-errors-in-stack .error {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
}

.is-style-sqx-panel .ff-errors-in-stack .error-clear {
	display: none;
}

.is-style-sqx-panel .ff-message-success {
	margin: 0;
	padding: 1rem 1.1rem;
	border: 1px solid rgba(26, 168, 143, 0.35);
	border-radius: var(--sqx-radius-sm);
	background: var(--sqx-mist);
	color: var(--sqx-teal-deep);
	font-weight: 600;
	box-shadow: none;
}

.is-style-sqx-panel .ff-message-success:focus {
	outline: 2px solid var(--sqx-teal-deep);
	outline-offset: 2px;
}

.sqx-form-status {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ——— Footer ——— */
.sqx-site-footer {
	margin-top: auto;
	padding-block: 3.25rem 1.5rem;
	border-top: 1px solid var(--sqx-line);
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.5), rgba(234, 242, 247, 0.9));
}

.sqx-footer-grid {
	display: grid;
	gap: 2rem;
}

.sqx-footer-grid > .wp-block-group > * + * {
	margin-top: 0.9rem;
}

.sqx-footer-tag {
	color: var(--sqx-steel);
	max-width: 22rem;
	font-size: 0.96rem;
}

.sqx-footer-grid h2 {
	margin-bottom: 0.7rem;
	font-size: 0.72rem !important;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: var(--sqx-steel);
	font-weight: 700;
	font-family: var(--wp--preset--font-family--body);
}

.sqx-footer-grid h2 + * {
	margin-top: 0.7rem !important;
}

.sqx-footer-grid .wp-block-navigation {
	gap: 0.45rem;
	font-size: 1rem;
}

.sqx-footer-grid .wp-block-navigation .wp-block-navigation__container {
	gap: 0.45rem;
}

.sqx-footer-grid .wp-block-navigation-item__content {
	color: var(--sqx-navy);
	padding: 0;
	text-decoration: underline;
	text-decoration-color: transparent;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
	transition: color var(--sqx-dur-fast) var(--sqx-ease), text-decoration-color var(--sqx-dur-fast) var(--sqx-ease);
}

.sqx-footer-grid .wp-block-navigation-item__content[aria-current="page"] {
	color: var(--sqx-teal-deep);
}

.sqx-footer-grid .wp-block-navigation-item__content:focus-visible {
	color: var(--sqx-teal-deep);
	text-decoration-color: currentColor;
}

@media (hover: hover) and (pointer: fine) {
	.sqx-footer-grid .wp-block-navigation-item__content:hover {
		color: var(--sqx-teal-deep);
		text-decoration-color: currentColor;
	}
}

.sqx-footer-bottom {
	margin-top: 2.15rem !important;
	padding-top: 1.1rem;
	border-top: 1px solid var(--sqx-line);
	display: grid;
	gap: 0.3rem;
	color: var(--sqx-steel);
	font-size: 0.88rem;
}

.sqx-footer-bottom > * {
	margin: 0 !important;
}

.sqx-footer-bottom p + p {
	font-size: 0.8rem;
	opacity: 0.85;
}

/* ——— Plain text pages and 404 ——— */
.sqx-prose > * + * {
	margin-top: 1rem !important;
}

.sqx-prose {
	padding-block: 3.5rem 4.75rem;
}

.sqx-prose h1 {
	font-size: clamp(2.1rem, 4.2vw, 3rem);
	letter-spacing: -0.03em;
	line-height: 1.12;
	font-weight: 800;
}

/* ——— Motion ———
 * Everything that moves is scoped to body.sqx-motion (added on the front end only, and only when
 * motion is enabled in Tools → SmartQCx) and to visitors without a reduced-motion preference.
 * The editors never get .sqx-motion, so editing stays still. Only transform and opacity animate.
 */
@keyframes sqx-enter {
	from {
		opacity: 0;
		transform: translate3d(0, var(--sqx-shift-enter), 0);
	}

	to {
		opacity: 1;
		transform: none;
	}
}

/* Headings stay fully opaque (readable at first paint, no LCP delay) and only settle into place. */
@keyframes sqx-settle {
	from {
		transform: translate3d(0, calc(var(--sqx-shift-enter) * 0.6), 0);
	}

	to {
		transform: none;
	}
}

@keyframes sqx-menu-in {
	from {
		opacity: 0;
		transform: translate3d(0, -6px, 0);
	}

	to {
		opacity: 1;
		transform: none;
	}
}

@keyframes sqx-spin {
	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: no-preference) {
	/* Hero entrance: one short, staggered sequence; finishes in under 0.85s. */
	.sqx-motion .sqx-hero-copy > * {
		animation: sqx-enter var(--sqx-dur-enter) var(--sqx-ease-out) both;
	}

	.sqx-motion .sqx-hero-copy > :is(h1, .is-style-sqx-brand) {
		animation-name: sqx-settle;
	}

	.sqx-motion .sqx-hero-copy > :nth-child(2) {
		animation-delay: calc(var(--sqx-stagger) * 1);
	}

	.sqx-motion .sqx-hero-copy > :nth-child(3) {
		animation-delay: calc(var(--sqx-stagger) * 2);
	}

	.sqx-motion .sqx-hero-copy > :nth-child(4) {
		animation-delay: calc(var(--sqx-stagger) * 3);
	}

	.sqx-motion .sqx-hero-copy > :nth-child(n + 5) {
		animation-delay: calc(var(--sqx-stagger) * 4);
	}

	.sqx-motion .sqx-hero-visual {
		animation: sqx-enter 600ms var(--sqx-ease-out) 40ms both;
	}

	/* Scroll reveal. interactions.js adds .sqx-reveal only to below-the-fold items it is observing,
	   so nothing is hidden without JavaScript, and it removes both classes once the item is shown. */
	.sqx-motion .sqx-reveal {
		opacity: 0;
		transform: translate3d(0, var(--sqx-shift-reveal), 0);
		transition:
			opacity var(--sqx-dur-reveal) var(--sqx-ease-out) var(--sqx-reveal-delay, 0ms),
			transform var(--sqx-dur-reveal) var(--sqx-ease-out) var(--sqx-reveal-delay, 0ms);
	}

	.sqx-motion .sqx-reveal.is-revealed {
		opacity: 1;
		transform: none;
	}

	/* Mobile menu (core Navigation overlay): brief fade in; closing stays instant. */
	.sqx-motion .sqx-site-header .wp-block-navigation__responsive-container.is-menu-open {
		animation: sqx-menu-in var(--sqx-dur) var(--sqx-ease-out);
	}

	/* Hover lift: buttons 1px, clickable cards 3px. Mouse and trackpad only. */
	@media (hover: hover) and (pointer: fine) {
		.sqx-motion .wp-block-button[class*="is-style-sqx-"] .wp-block-button__link:hover,
		.sqx-motion .is-style-sqx-panel .fluentform .ff-btn-submit:not(:disabled):hover {
			transform: translate3d(0, var(--sqx-lift-button), 0);
		}

		.sqx-motion :is(.is-style-sqx-card, .is-style-sqx-card-featured, .is-style-sqx-tile, .is-style-sqx-glass):has(:is(h2, h3, h4) a):hover {
			transform: translate3d(0, var(--sqx-lift-card), 0);
		}
	}

	.sqx-motion .wp-block-button[class*="is-style-sqx-"] .wp-block-button__link:focus-visible {
		transform: translate3d(0, var(--sqx-lift-button), 0);
	}

	.sqx-motion .wp-block-button[class*="is-style-sqx-"] .wp-block-button__link:active {
		transform: none;
	}
}

/* ——— Breakpoints (match the approved 760px layout switch) ——— */
@media (min-width: 760px) {
	.is-style-sqx-hero {
		padding-block: 3.5rem 4.25rem;
	}

	.is-style-sqx-hero .sqx-hero-grid {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
	}

	.is-style-sqx-page-hero .sqx-hero-grid {
		grid-template-columns: 0.95fr 1.15fr;
		gap: 2.25rem;
	}

	.is-style-sqx-page-hero .sqx-hero-grid:not(:has(> .sqx-hero-visual)) {
		grid-template-columns: minmax(0, 1fr);
	}

	.is-style-sqx-section-surface {
		padding-bottom: 5.5rem;
	}

	.sqx-metrics {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 1rem;
	}

	.is-style-sqx-proof > * + * {
		margin-top: 1.25rem !important;
	}

	.sqx-grid-bento {
		grid-template-columns: 1.2fr 1fr 1fr;
	}

	.sqx-grid-2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sqx-grid-2.sqx-tiles {
		gap: 1.1rem;
	}

	.sqx-grid-3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.sqx-flow {
		gap: 1.25rem;
	}

	.is-style-sqx-step {
		grid-template-columns: 1fr;
		gap: 0.35rem;
	}

	.is-style-sqx-step > p:first-child::after {
		left: calc(100% + 0.65rem);
		top: 50%;
		height: 2px;
		transform: translateY(-50%);
		background: linear-gradient(90deg, var(--sqx-teal), rgba(26, 168, 143, 0.15));
	}

	.is-style-sqx-step > p:first-child {
		margin-bottom: 0.35rem !important;
	}

	.sqx-split {
		grid-template-columns: 0.95fr 1.15fr;
		gap: 2.5rem;
	}

	.sqx-band-inner {
		grid-template-columns: 1fr auto;
		gap: 2rem;
	}

	.sqx-band-inner > .wp-block-buttons {
		justify-content: flex-end;
	}

	.sqx-contact-layout {
		grid-template-columns: 1.2fr 0.9fr;
	}

	.sqx-footer-grid {
		grid-template-columns: 1.45fr 1fr 1fr;
	}
}

@media (min-width: 760px) {
	/* Workflow connector spans the gap between step markers. */
	.sqx-flow .is-style-sqx-step > p:first-child {
		width: 2.6rem;
	}

	.sqx-flow .is-style-sqx-step > p:first-child::after {
		width: calc(((min(1180px, 100vw - 2.75rem) - 2.5rem) / 3) - 3.25rem);
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation: none !important;
		transition: none !important;
	}

	/* Safety net: anything marked for reveal is shown at once. */
	.sqx-reveal {
		opacity: 1 !important;
		transform: none !important;
	}

	/* Keep a clear (static) busy indicator on the submit button. */
	.is-style-sqx-panel .fluentform .ff-btn-submit.ff-working::before {
		border-color: rgba(255, 255, 255, 0.55);
		border-top-color: #fff;
	}
}

/* ——— Editor-only adjustments ——— */
.editor-styles-wrapper .wp-block-image.is-style-sqx-icon img {
	max-width: 1.2rem;
}
