/**
 * SourceWhale design-system bridge.
 *
 * Elementor Kit 12 owns colour and typography. The --sw-* aliases let theme
 * components consume those globals without repeating Elementor's generated IDs.
 * Fallbacks keep utility and preview markup usable before the Kit CSS arrives.
 * Elementor does not expose spacing, radius, focus or elevation tokens, so those
 * primitives remain theme-owned below.
 */

:root,
.elementor-kit-12 {
	--sw-color-navy: var(--e-global-color-text, #0e1433);
	--sw-color-heading: var(--e-global-color-text, #0e1433);
	--sw-color-royal: var(--e-global-color-primary, #152365);
	--sw-color-marine: var(--e-global-color-secondary, #1c90ff);
	--sw-color-sky: var(--e-global-color-164d2f1, #40c5ff);
	--sw-color-pink: var(--e-global-color-accent, #d9387c);
	--sw-color-pink-hover: var(--e-global-color-83a5652, #b42764);
	--sw-color-orange: var(--e-global-color-a1fc00a, #ff991f);
	--sw-color-tan: var(--e-global-color-ceaa880, #f1e9de);
	--sw-color-teal: var(--e-global-color-825057d, #0dada3);
	--sw-color-lime: var(--e-global-color-925f29b, #97fca0);
	--sw-color-purple: var(--e-global-color-e9f4584, #bf83ff);
	--sw-color-coral: var(--e-global-color-ff73541, #ff7354);
	--sw-color-body: var(--e-global-color-b06d743, #425466);
	--sw-color-body-dark: var(--e-global-color-7cc9f77, #b0b5bc);
	--sw-color-border: var(--e-global-color-9289b1f, #e6e8ef);
	--sw-color-white: var(--e-global-color-d07d852, #fff);
	--sw-color-surface: var(--e-global-color-d07d852, #fff);
	--sw-color-surface-muted: var(--e-global-color-f4f8fa1, #f4f8fa);
	--sw-color-surface-warm: var(--e-global-color-fbf9f71, #fbf9f7);

	--sw-font-heading: var(--e-global-typography-primary-font-family, "Gabarito"), sans-serif;
	--sw-font-body: var(--e-global-typography-text-font-family, "Onest"), sans-serif;
	--sw-font-eyebrow-mono: var(--e-global-typography-swmono01-font-family, "JetBrains Mono"), monospace;

	--sw-space-1: 4px;
	--sw-space-2: 8px;
	--sw-space-3: 12px;
	--sw-space-4: 16px;
	--sw-space-5: 20px;
	--sw-space-6: 24px;
	--sw-space-8: 32px;
	--sw-space-10: 40px;
	--sw-space-12: 48px;
	--sw-space-16: 64px;
	--sw-space-20: 80px;
	--sw-space-30: 120px;

	--sw-radius-control: 6px;
	--sw-radius-control-lg: 10px;
	--sw-radius-small: 10px;
	--sw-radius-card: 15px;
	--sw-radius-panel: 20px;
	--sw-radius-pill: 999px;

	--sw-border-quiet: 1px solid var(--sw-color-border);
	--sw-focus-ring: 2px solid var(--sw-color-marine);
	--sw-focus-offset: 2px;
	--sw-shadow-soft: 0 15px 20px rgba(165, 173, 221, 0.2), 0 2px 5px rgba(1, 85, 166, 0.15);
	--sw-shadow-elevated: 0 20px 40px rgba(165, 173, 221, 0.3), 0 1.344px 2.687px rgba(1, 85, 166, 0.1);

	--sw-content-max: 1240px;
	--sw-page-gutter: 64px;
}

@media (max-width: 1024px) {
	:root,
	.elementor-kit-12 {
		--sw-page-gutter: 24px;
	}
}

@media (max-width: 767px) {
	:root,
	.elementor-kit-12 {
		--sw-page-gutter: 16px;
	}
}

html,
body {
	width: 100%;
	overflow-x: hidden;
}

.elementor-kit-12 {
	color: var(--sw-color-body);
	font-family: var(--sw-font-body);
}

.elementor-kit-12 :is(h1, h2, h3, h4, h5, h6) {
	font-family: var(--sw-font-heading);
}

/* Crossfade Text-Image: keep the main copy aligned with Global / Body Normal. */
.elementor-kit-12 .crossfade-subtitle {
	font-family: var(--e-global-typography-bodyn01-font-family, var(--sw-font-body));
	font-size: var(--e-global-typography-bodyn01-font-size, 17px);
	font-weight: var(--e-global-typography-bodyn01-font-weight, 400);
	letter-spacing: var(--e-global-typography-bodyn01-letter-spacing, -0.17px);
	line-height: var(--e-global-typography-bodyn01-line-height, 24px);
}

/* Mega menu dropdown panels: allow full content height */
.elementor-widget-n-menu .e-n-menu[data-layout="dropdown"] .e-n-menu-content > .e-con {
	height: auto !important;
	max-height: none !important;
	overflow-y: unset !important;
}

.post-card__cats li {
	list-style-type: none;
}

.testimonial-quote {
	border-radius: var(--sw-radius-card);
	background: var(--sw-color-surface);
	box-shadow: var(--sw-shadow-soft);
}

/* Site-wide button component: Elementor Site Settings supply the same values. */
.elementor-kit-12 button,
.elementor-kit-12 input[type="button"],
.elementor-kit-12 input[type="submit"],
.elementor-kit-12 .elementor-button {
	box-shadow: none !important;
	border: none !important;
	border-radius: var(--sw-radius-control);
	font-family: var(--e-global-typography-484df4c-font-family, var(--sw-font-body));
	font-size: var(--e-global-typography-484df4c-font-size, 16px);
	font-weight: var(--e-global-typography-484df4c-font-weight, 600);
	letter-spacing: var(--e-global-typography-484df4c-letter-spacing, 0.16px);
	line-height: var(--e-global-typography-484df4c-line-height, 24px);
	padding: 10px 20px;
	transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.elementor-kit-12 :is(button, input[type="button"], input[type="submit"], .elementor-button):focus-visible,
.elementor-kit-12 a:focus-visible {
	outline: var(--sw-focus-ring);
	outline-offset: var(--sw-focus-offset);
}

.elementor-kit-12 :is(input:not([type="button"]):not([type="submit"]), textarea, select, .elementor-field-textual) {
	border: var(--sw-border-quiet);
	border-radius: var(--sw-radius-control);
	color: var(--sw-color-body);
	font-family: var(--e-global-typography-text-font-family, var(--sw-font-body));
	font-size: var(--e-global-typography-text-font-size, 17px);
	font-weight: var(--e-global-typography-text-font-weight, 400);
	letter-spacing: var(--e-global-typography-text-letter-spacing, -0.17px);
	line-height: var(--e-global-typography-text-line-height, 24px);
	padding: 10px 16px;
}

.elementor-kit-12 :is(input:not([type="button"]):not([type="submit"]), textarea, select, .elementor-field-textual):focus-visible {
	border-color: var(--sw-color-marine);
	outline: var(--sw-focus-ring);
	outline-offset: var(--sw-focus-offset);
}

.elementor-kit-12 label {
	color: var(--sw-color-body);
	font-family: var(--e-global-typography-c22d283-font-family, var(--sw-font-body));
	font-size: var(--e-global-typography-c22d283-font-size, 17px);
	font-weight: var(--e-global-typography-c22d283-font-weight, 600);
	letter-spacing: var(--e-global-typography-c22d283-letter-spacing, 0.17px);
	line-height: var(--e-global-typography-c22d283-line-height, 24px);
}

/* Embedded HubSpot and custom HTML forms cannot consume Elementor globals. */
.elementor-kit-12 .hs-form .hs-form-field label:not(.hs-error-msg) {
	font-family: var(--sw-font-body) !important;
	font-size: var(--e-global-typography-c22d283-font-size, 17px) !important;
	font-weight: var(--e-global-typography-c22d283-font-weight, 600) !important;
	letter-spacing: var(--e-global-typography-c22d283-letter-spacing, 0.17px) !important;
	line-height: var(--e-global-typography-c22d283-line-height, 24px) !important;
}

.elementor-kit-12 .hs-form .hs-form-field label.hs-error-msg {
	font-family: var(--sw-font-body) !important;
	font-size: var(--e-global-typography-9af314e-font-size, 12px) !important;
	font-weight: var(--e-global-typography-9af314e-font-weight, 400) !important;
	letter-spacing: var(--e-global-typography-9af314e-letter-spacing, 0.4px) !important;
	line-height: var(--e-global-typography-9af314e-line-height, 18px) !important;
}

.elementor-kit-12 .hs-form .hs-button,
.elementor-kit-12 .submit-form {
	background: var(--sw-color-pink) !important;
	border: 0 !important;
	border-radius: var(--sw-radius-control) !important;
	box-shadow: none !important;
	color: var(--sw-color-white) !important;
	font-family: var(--sw-font-body) !important;
	font-size: var(--e-global-typography-484df4c-font-size, 16px) !important;
	font-weight: var(--e-global-typography-484df4c-font-weight, 600) !important;
	letter-spacing: var(--e-global-typography-484df4c-letter-spacing, 0.16px) !important;
	line-height: var(--e-global-typography-484df4c-line-height, 24px) !important;
	padding: 10px 20px !important;
	text-transform: none !important;
}

.elementor-kit-12 .hs-form .hs-button:hover,
.elementor-kit-12 .submit-form:hover {
	background: var(--sw-color-pink-hover) !important;
}

.elementor-kit-12 :is(.elementor-widget-text-editor, .elementor-widget-theme-post-content) a:not(.elementor-button):hover,
.elementor-kit-12 :is(.elementor-widget-text-editor, .elementor-widget-theme-post-content) a:not(.elementor-button):focus-visible {
	text-decoration: underline;
	text-underline-offset: 0.14em;
}

/* Integration logo tiles (Integrate, Book a Demo, Refer a Friend, …) */
.integrate-icon {
	padding: 1rem 0.5rem;
	text-align: center;
	border-radius: var(--sw-radius-control);
	box-shadow:
		0 4px 12px 0 rgba(165, 173, 221, 0.35),
		0 1px 2px 0 rgba(1, 85, 166, 0.1);
}

.integrate-icon figure img {
	width: 48px;
}

.integrate-icon figcaption {
	font-family: var(--sw-font-heading) !important;
	color: var(--sw-color-royal) !important;
	font-weight: 600 !important;
	font-size: 16px !important;
	font-style: normal;
	margin-top: 0.5rem;
}

/* Integrate page used a tighter caption */
body.page-id-142 .integrate-icon figcaption {
	font-size: 12px !important;
}
