@import url('https://fonts.googleapis.com/icon?family=Material+Icons');

/* ============================================================
   AgileBrain — Design System
   Single stylesheet — all pages
   Palette:
     Deep Navy   #1e2445  var(--wpex-palette-9248-color)
     Lapis       #145A9F  var(--wpex-palette-8973-color)
     Seafoam     #35AFA1  var(--wpex-palette-8974-color)
     Linen       #F5F3F0  var(--wpex-palette-9681-color)
     White                var(--wpex-palette-8988-color)
   Fonts: Poppins (headlines) | Manrope (body)
   ============================================================ */


/* ══════════════════════════════════════════════════════════
   1. TYPE SCALE
   ══════════════════════════════════════════════════════════ */

.hero-1 {
	font-size: 3.3em;
	font-weight: 700;
	line-height: 1.0;
	margin-bottom: 20px;
}

.hero-2 {
	font-size: 2.9em;
	font-weight: 700;
	line-height: 1.15;
}

.body-xl {
	font-family: 'Manrope', sans-serif;
	font-size: 1.25em;
	line-height: 1.6;
}

.body-large {
	font-family: 'Manrope', sans-serif;
	font-size: 1.125em;
	line-height: 1.7;
}

.body-large-tight {
	font-family: 'Manrope', sans-serif;
	font-size: 1.125em;
	line-height: 1.1;
}

.body-small {
	font-family: 'Manrope', sans-serif;
	font-size: 0.925em;
	line-height: 1.6;
}

@media (min-width: 480px) and (max-width: 767px) {
	.hero-1 {
		font-size: 2.25em;
	}

	.hero-2 {
		font-size: 2.0em;
	}

	.body-xl {
		font-size: 1.125em;
	}

	.body-large {
		font-size: 1em;
	}

	.body-large-tight {
		font-size: 1em;
	}

	.body-small {
		font-size: 0.8125em;
	}
}

@media (max-width: 479px) {
	.hero-1 {
		font-size: 2.0em;
	}

	.hero-2 {
		font-size: 1.75em;
	}

	.body-xl {
		font-size: 1.125em;
	}

	.body-large {
		font-size: 1em;
	}

	.body-large-tight {
		font-size: 1em;
	}

	.body-small {
		font-size: 0.8125em;
	}
}


/* ══════════════════════════════════════════════════════════
   2. COLOR UTILITIES
   ══════════════════════════════════════════════════════════ */

.text-white,
.text-white * {
	color: var(--wpex-palette-8988-color) !important;
}

.text-white-75,
.text-white-75 * {
	color: rgba(255, 255, 255, 0.75) !important;
}

.text-lapis,
.text-lapis * {
	color: var(--wpex-palette-8973-color) !important;
}

.text-seafoam,
.text-seafoam * {
	color: var(--wpex-palette-8974-color) !important;
}

.ab-mt-24 {
	margin-top: 24px !important;
}

.text-navy,
.text-navy * {
	color: var(--wpex-palette-9248-color) !important;
}

.text-sienna,
.text-sienna * {
	color: #EB744E !important;
}

.text-highlights {
	background-color: rgba(53, 175, 161, 0.15);
	padding: 4px 10px;
	border-radius: 20px;
	font-weight: 600;
	display: inline-block;
	color: var(--wpex-palette-8973-color);
}

.lapis-celestial-gradient-text {
	background-color: #145A9F;
	background-image: linear-gradient(45deg, #1e2445, #145A9F);
	background-size: 100%;
	-webkit-background-clip: text;
	-moz-background-clip: text;
	-webkit-text-fill-color: transparent;
	-moz-text-fill-color: transparent;
}


/* ══════════════════════════════════════════════════════════
   3. BACKGROUND GRADIENTS
   ══════════════════════════════════════════════════════════ */

.bg-grad-lapis-seafoam {
	background: linear-gradient(135deg, #145A9F 0%, #35AFA1 100%);
}

.bg-grad-navy-lapis {
	background: linear-gradient(185deg, #1e2445 0%, #145A9F 100%);
}

.bg-grad-navy-lapis-seafoam {
	background: linear-gradient(25deg, #1e2445 0%, #145A9F 60%, #35AFA1 100%);
}

.bg-grad-linen-mist {
	background: linear-gradient(135deg, #F5F3F0 0%, #EEF5FB 100%);
}

.bg-grad-lt-seafoam-lapis-linen {
	background: linear-gradient(135deg, #F1FAF9 0%, #F0F7FC 50%, #FAF9F7 100%);
}

.bg-grad-lt-lapis {
	background: linear-gradient(135deg, #EEF5FB 0%, #ddeaf7 100%);
}

.bg-grad-lt-seafoam {
	background: linear-gradient(135deg, #F1FAF9 0%, #d8f2ef 100%);
}

.bg-grad-linen-seafoam {
	background: linear-gradient(135deg, #F5F3F0 0%, #F1FAF9 100%);
}

.bg-grad-white-lapis {
	background: linear-gradient(135deg, #ffffff 0%, #EEF5FB 100%);
}

.bg-grad-white-seafoam {
	background: linear-gradient(135deg, #ffffff 0%, #F1FAF9 100%);
}

.bg-grad-sienna {
	background: linear-gradient(135deg, #EB744E 0%, #f0956e 100%);
}

.lapis-celestial-gradient {
	background-image: linear-gradient(to right, #145A9F 0%, #1e2445 51%, #145A9F 100%);
	transition: 0.5s;
	background-size: 200% auto;
	box-shadow: 0 0 0px #eee;
	display: block;
}

.lapis-celestial-gradient-contained {
	background-image: linear-gradient(to right, #145A9F 0%, #1e2445 51%, #145A9F 100%);
	transition: 0.5s;
	background-size: 200% auto;
	box-shadow: 0 0 0px #eee;
	display: inline-block;
	border-radius: 10px;
	color: #fff;
}

.promotion-prevention-gradient {
	background-image: linear-gradient(to right, #145A9F 0%, #35AFA1 25%, #EB744E 60%);
	transition: 0.5s;
	background-size: 200% auto;
	box-shadow: 0 0 0px #eee;
	display: inline-block;
	border-radius: 10px;
	color: #fff;
	padding: 30px 30px 40px 30px;
}

.celestial-azure-gradient {
	background-image: linear-gradient(to right, #145A9F 0%, #35AFA1 51%, #4dc4b6 100%);
	transition: 0.5s;
	background-size: 200% auto;
	box-shadow: 0 0 0px #eee;
	display: block;
}

.orange-yellow-gradient {
	background-image: linear-gradient(to right, #EB744E 0%, #f0956e 51%, #EB744E 100%);
	transition: 0.5s;
	background-size: 200% auto;
	box-shadow: 0 0 0px #eee;
	display: block;
	padding: 16px;
}


/* ══════════════════════════════════════════════════════════
   4. BUTTONS
   ══════════════════════════════════════════════════════════ */

.theme-button {
	margin-top: 20px !important;
	margin-bottom: 20px;
	padding: 15px 45px;
	text-align: center;
	text-transform: none;
	transition: 0.5s;
	color: white;
	box-shadow: none;
	border-radius: 50px;
	border-width: 0px !important;
}

.theme-button:hover {
	color: #fff;
	text-decoration: none;
}

.ab-btn-outline {
	font-weight: 600;
	color: var(--wpex-palette-9248-color);
	background: transparent;
	border: 2px solid var(--wpex-palette-9248-color);
	border-radius: 50px;
	padding: 15px 45px;
	margin-top: 20px;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
	display: inline-block;
	box-sizing: border-box;
	line-height: 1.5;
	font-size: 1em;
}

.ab-btn-outline:hover {
	background: var(--wpex-palette-9248-color);
	color: var(--wpex-palette-8988-color);
	text-decoration: none;
}

.ab-btn-outline--sm {
	font-weight: 600 !important;
	font-family: inherit;
	font-size: 0.85em;
	color: var(--wpex-palette-9248-color) !important;
	background: transparent;
	border: 1.5px solid var(--wpex-palette-9248-color);
	border-radius: 50px;
	padding: 9px 24px;
	margin-top: 20px;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
	display: inline-block;
	box-sizing: border-box;
	line-height: 1.5;
	cursor: pointer;
}

.ab-btn-outline--sm:hover {
	background: var(--wpex-palette-9248-color);
	color: white !important;
	text-decoration: none;
}

.ab-btn-outline--xs {
	font-weight: 600 !important;
	font-family: inherit;
	font-size: 1em;
	color: var(--wpex-palette-9248-color) !important;
	background: var(--wpex-palette-9681-color);
	border: none;
	border-radius: 50px;
	padding: 2px 14px;
	margin-left: 20px;
	text-decoration: none;
	transition: background 0.2s;
	display: inline-block;
	line-height: 1.5;
	cursor: pointer;
}

.ab-btn-outline--xs:hover {
	background: var(--wpex-palette-9681-color);
	color: var(--wpex-palette-9248-color) !important;
	text-decoration: none;
}

.ab-intg-lw-card .ab-btn-outline--sm,
.ab-intg-lw-card button.ab-btn-outline--sm {
	align-self: flex-start;
	margin-top: auto;
}

.ab-btn-outline-white {
	font-weight: 600;
	color: var(--wpex-palette-8988-color);
	background: transparent;
	border: 2px solid var(--wpex-palette-8988-color);
	margin-top: 20px;
	border-radius: 50px;
	padding: 15px 45px;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
	display: inline-block;
	box-sizing: border-box;
	line-height: 1.5;
	font-size: 1em;
}

.ab-btn-outline-white:hover {
	background: var(--wpex-palette-8988-color);
	color: var(--wpex-palette-9248-color);
	text-decoration: none;
}

.ab-btn-outline-white--sm {
	font-weight: 600;
	color: var(--wpex-palette-8988-color);
	background: transparent;
	border: 1.5px solid var(--wpex-palette-8988-color);
	border-radius: 50px;
	padding: 9px 24px;
	margin-top: 20px;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
	display: inline-block;
	box-sizing: border-box;
	line-height: 1.5;
	font-size: 0.85em;
}

.ab-btn-outline-white--sm:hover {
	background: var(--wpex-palette-8988-color);
	color: var(--wpex-palette-9248-color);
	text-decoration: none;
}

.ab-btn-solid-white {
	display: inline-block;
	font-weight: 600;
	background: white;
	color: var(--wpex-palette-9248-color) !important;
	border: none;
	border-radius: 50px;
	padding: 15px 45px;
	margin-top: 20px;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
	box-sizing: border-box;
	line-height: 1.5;
	font-size: 1em;
}

.ab-btn-solid-white:hover {
	background: var(--wpex-palette-9248-color);
	color: white !important;
	text-decoration: none;
}

.ab-btn-solid-white--sm {
	display: inline-block;
	font-weight: 600;
	background: white;
	color: var(--wpex-palette-9248-color) !important;
	border: none;
	border-radius: 50px;
	padding: 9px 24px;
	margin-top: 20px;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
	box-sizing: border-box;
	line-height: 1.5;
	font-size: 0.85em;
}

.ab-btn-solid-white--sm:hover {
	background: var(--wpex-palette-9248-color);
	color: white !important;
	text-decoration: none;
}

@media (max-width: 1024px) {
	.ab-btn-outline-white {
		padding: 13px 32px;
		font-size: 0.95em;
	}
}

@media (max-width: 767px) {
	.ab-btn-outline-white {
		padding: 11px 24px;
		font-size: 0.9em;
		white-space: nowrap;
	}
}

/* Gradient buttons */
.btn-grad-lapis-celestial {
	background-image: linear-gradient(to right, #145A9F 0%, #1e2445 51%, #145A9F 100%);
	margin-top: 20px;
	margin-bottom: 20px;
	padding: 15px 45px;
	text-align: center;
	text-transform: none;
	transition: 0.5s;
	background-size: 200% auto;
	color: white;
	box-shadow: 2px 6px 24px rgba(0, 0, 0, 0.15);
	border-radius: 50px;
}

.btn-grad-lapis-celestial:hover {
	background-position: right center;
	color: #fff;
	text-decoration: none;
	transform: scale(1.07);
}

.btn-grad-lapis-celestial-sm {
	background-image: linear-gradient(to right, #145A9F 0%, #1e2445 51%, #145A9F 100%);
	margin-top: 10px;
	margin-bottom: 10px;
	padding: 10px 25px;
	text-align: center;
	text-transform: none;
	transition: 0.5s;
	background-size: 200% auto;
	color: white;
	box-shadow: 2px 6px 24px rgba(0, 0, 0, 0.15);
	border-radius: 50px;
}

.btn-grad-lapis-celestial-sm:hover {
	background-position: right center;
	color: #fff;
	text-decoration: none;
	transform: scale(1.1);
}

/* Legacy buttons */
.button-less-margin {
	margin-bottom: -40px;
}

.button-outline-AB {
	margin-top: 30px;
	margin-bottom: 30px;
	padding: 15px 25px;
	text-align: center;
	text-transform: none;
	font-family: Poppins;
	transition: 0.5s;
	box-shadow: 2px 6px 24px rgba(0, 0, 0, 0.15);
	background-color: transparent !important;
	border-radius: 50px;
	border-color: #fff;
	border-width: 2px;
}

.button-outline-AB:hover {
	color: var(--wpex-palette-8973-color);
	background-color: #fff !important;
	text-decoration: none;
	transform: scale(1.2);
}

.tiny-button-AB {
	margin-top: 20px;
	margin-bottom: 20px;
	padding: 6px 16px;
	text-align: center;
	text-transform: none;
	transition: 0.5s;
	background-color: #EEF5FB;
	border-radius: 50px;
	border-color: #828282;
	font-size: .8em;
	box-shadow: none;
	color: var(--wpex-palette-8973-color);
}

.btn-grad-orange-yellow {
	background-image: linear-gradient(to right, #F38F51 0%, #FCD354 51%, #F38F51 100%);
	margin: 10px;
	padding: 15px 45px;
	text-align: center;
	text-transform: none;
	transition: 0.5s;
	background-size: 200% auto !important;
	color: #fff;
	border-radius: 50px;
	border-color: #F38F51;
}

.btn-grad-orange-yellow:hover {
	background-position: right center !important;
	background-image: linear-gradient(to right, #F38F51 0%, #FCD354 51%, #F38F51 100%);
	color: #fff;
	font-weight: 600;
	text-decoration: none;
}

.btn-grad-orange-yellow-blk {
	background-image: linear-gradient(to right, #F38F51 0%, #FCD354 51%, #F38F51 100%);
	margin: 10px;
	padding: 15px 45px;
	text-align: center;
	text-transform: none;
	transition: 0.5s;
	background-size: 200% auto;
	color: #000;
	border-radius: 50px;
	border-color: #F38F51;
}

.btn-grad-orange-yellow-blk:hover {
	background-position: right center;
	color: #145A9F;
	font-weight: 600;
	text-decoration: none;
}

.vcex-button {
	margin-top: 20px !important;
	margin-bottom: 20px;
}

.vcex-button.theme-button.inline {
	margin-top: 20px !important;
}

.vcex-multi-buttons {
	margin-top: 10px !important;
	margin-bottom: 10px !important;
	box-shadow: none !important;
	border-width: .5px !important;
}

.MVCC-multi {
	margin-bottom: 0px !important;
	margin-top: 0px !important;
}


/* ══════════════════════════════════════════════════════════
   5. EYEBROW PILL
   ══════════════════════════════════════════════════════════ */

.ab-eyebrow-pill {
	display: inline-block;
	font-size: 0.65em;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase !important;
	color: var(--wpex-palette-8973-color);
	border: 1px solid var(--wpex-palette-8973-color);
	border-radius: 8px;
	padding: 5px 16px;
	width: fit-content;
	align-self: flex-start;
	margin-bottom: 0;
}

.ab-eyebrow-pill--filled {
	background: rgba(255, 255, 255, 0.12);
	color: var(--wpex-palette-8988-color);
	border-color: rgba(255, 255, 255, 0.2);
}

.ab-eyebrow-pill--seafoam {
	color: var(--wpex-palette-8974-color);
	border-color: var(--wpex-palette-8974-color);
}

.ab-eyebrow-pill--seafoam-filled {
	background: #F1FAF9;
	color: var(--wpex-palette-8974-color);
	border-color: rgba(53, 175, 161, 0.3);
}

.ab-eyebrow-pill--sienna {
	color: #EB744E;
	border-color: #EB744E;
}

.ab-eyebrow-pill--sienna-filled {
	background: #EB744E;
	color: white;
	border-color: #EB744E;
}

.ab-eyebrow-pill--white {
	color: var(--wpex-palette-8988-color);
	border-color: rgba(255, 255, 255, 0.4);
}

.ab-eyebrow-pill--center {
	display: block;
	width: fit-content;
	margin-left: auto;
	margin-right: auto;
	align-self: center;
}


/* ══════════════════════════════════════════════════════════
   6. LEGACY UTILITY CLASSES (existing pages)
   ══════════════════════════════════════════════════════════ */

.wpex-border-main {
	border-color: #aeaeae;
	border-radius: 10px;
}

.beta {
	background-color: var(--wpex-palette-9681-color);
	border-radius: 4px;
	line-height: 40px;
}

.add-outline {
	border-style: solid;
	border-width: 1px;
	border-color: var(--wpex-palette-8973-color);
}

.fb-ltblue {
	background-color: #F1FAF9;
	border: none;
	padding: 6%;
	margin: 20px 0;
	border-radius: 12px;
	line-height: 160%;
}

.fb-ltblue-bk {
	background-color: #F1FAF9;
	border: none;
	padding: 4%;
	margin: 20px 0;
	border-radius: 12px;
	line-height: 160%;
}

.fb-ltblue-onlyoutline {
	border-color: var(--wpex-palette-8974-color);
	padding: 4% 4% 6% 4%;
	border-width: 3px 1px 3px 1px;
	border-style: solid;
	border-radius: 12px;
	line-height: 160%;
	color: #fff;
	text-align: center;
	font-size: 1.2em;
}

.bullet-block {
	background-color: #F1FAF9;
	border: none;
	padding: 4%;
	margin: 20px 0;
	border-radius: 12px;
	line-height: 160%;
}

.needs-box {
	background-color: #F1FAF9;
	border: none;
	padding: 4%;
	margin: 20px 0;
	border-radius: 12px;
	line-height: 160%;
}

.fb-ltblue-bk-lp {
	background-color: #F1FAF9;
	border: none;
	padding: 12px;
	margin: 20px 0;
	border-radius: 12px;
	line-height: 160%;
}

.fb-ltblue-bk-20 {
	background-color: #F1FAF9;
	border: none;
	padding: 20px;
	margin: 20px 0;
	border-radius: 12px;
	line-height: 160%;
}

.fb-white-1pxborder {
	background-color: #fff;
	border-color: var(--wpex-palette-9681-color);
	padding: 8px 10px 12px 10px;
	border-width: 1px;
	border-style: solid;
	border-radius: 12px;
	line-height: 120%;
	font-size: .95em;
}

.fb-white-1pxborder-trnsp {
	background-color: rgba(215, 246, 169, 0.75);
	border-color: #a7f45e;
	margin: 0px 10px 0px 0px;
	padding: 10px 30px 0px 30px;
	border-width: 1px;
	border-style: solid;
	border-radius: 12px;
}

.background-ltblue-solid {
	background-color: var(--wpex-palette-8975-color);
	padding: 4% 30px;
	border-radius: 15px;
	line-height: 160%;
	justify-content: center;
}

.background-ltblue-solid-lt {
	background-color: var(--wpex-palette-9681-color);
	padding: 4% 30px;
	border-radius: 15px;
	line-height: 160%;
	justify-content: center;
}

.background-ltblue-solid-noheadline {
	background-color: var(--wpex-palette-9347-color);
	padding: 4% 30px 6% 30px;
	border-radius: 15px;
	line-height: 160%;
	justify-content: center;
}

.background-white-solid-noheadline {
	background-color: var(--wpex-palette-8988-color);
	padding: 4% 30px 6% 30px;
	border-radius: 15px;
	line-height: 160%;
	justify-content: center;
	align-items: center;
}

.background-white-solid-noheadline-px {
	background-color: var(--wpex-palette-8988-color);
	padding: 4% 30px 6% 30px;
	border-radius: 15px;
	line-height: 160%;
	justify-content: center;
	align-items: left;
	border-color: rgba(20, 90, 159, 0.2);
	border-style: solid;
	border-width: 1px;
	box-shadow: 0 4px 16px rgba(20, 90, 159, 0.1);
}

.background-modules-white-solid {
	background-color: var(--wpex-palette-8988-color);
	padding: 30px;
	border-radius: 15px;
	line-height: 150%;
	font-size: .95em;
	justify-content: top;
	align-items: center;
	border-color: rgba(20, 90, 159, 0.15);
	border-style: solid;
	border-width: 1px;
}

.background-modules-blue-solid {
	background-color: #F1FAF9;
	border: none;
	padding: 2% 1% 0px 1%;
	margin: 20px 0;
	border-radius: 12px;
	line-height: 160%;
}

.background-individualmodules-blue-solid {
	background-color: #F1FAF9;
	border: none;
	padding: 12px 0px;
	margin: 20px 0;
	border-radius: 12px;
	line-height: 160%;
}

.bkgd-ltblue-pixels {
	background-color: var(--wpex-palette-9681-color);
	padding: 30px;
	border-radius: 15px;
	line-height: 160%;
	justify-content: center;
}

.vcex-feature-box {
	border-radius: 20px;
	background: #EEF5FB !important;
	padding: 32px !important;
}

.text-shadow-header {
	text-shadow: 1px 1px 6px rgba(0, 0, 0, 0.6);
	margin-left: -14px;
	margin-right: -14px;
	padding-top: 12px;
	padding-bottom: 12px;
}

.white-text-outline {
	text-shadow: -1px -1px 0 #fff, 1px -1px 0 #fff, 1px 1px 0 #fff, 1px 1px 0 #fff;
}

.white-text-posts-column {
	color: #fff;
}

.ab-card-hover {
	transition: box-shadow 0.2s, transform 0.2s;
}

.ab-card-hover:hover {
	box-shadow: 0 8px 32px rgba(20, 90, 159, 0.12);
	transform: translateY(-2px);
}


/* ══════════════════════════════════════════════════════════
   7. TABLES
   ══════════════════════════════════════════════════════════ */

.tablepress .column-1 {
	width: 25%;
}

.tablepress .column-2 {
	width: 25%;
}

.tablepress .column-3 {
	width: 25%;
}

table.tablepress tfoot th,
table.tablepress thead th {
	color: var(--wpex-palette-8973-color);
	background: var(--wpex-palette-9681-color);
	font-weight: 700;
	font-size: 1.1em;
}

.tablepress {
	--text-color: #111;
	--head-bg-color: #d9edf7;
	--odd-bg-color: #fff;
	--even-bg-color: var(--wpex-palette-9347-color);
	--hover-bg-color: var(--wpex-palette-8975-color);
	--border-color: #ddd;
	--padding: 0.65rem;
	border: none;
	border-collapse: collapse;
	border-spacing: 0;
	clear: both;
	margin: 0 auto 1rem;
	table-layout: auto;
	width: 100%;
}


/* ══════════════════════════════════════════════════════════
   8. THEME & PLUGIN OVERRIDES
   ══════════════════════════════════════════════════════════ */


.site-content,
.content-area,
.site-main {
	padding-bottom: 0 !important;
	margin-bottom: 0 !important;
}

.site-footer,
#footer,
.wpex-footer,
.wpex-footer-bottom-bar-wrap,
.footer-inner {
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
}

#footer-inner {
	display: none !important;
}

.wpex-slider-thumbnails {
	visibility: hidden;
}

.sp-nc-thumbnails-container {
	visibility: hidden;
	margin-bottom: -60px;
}

.menu-button {
	margin-left: 30px;
}

.less-padding-section {
	padding: 0px;
}

.less-padding-row {
	padding: 0px;
}

.gt_float_switcher {
	border-radius: 8px !important;
	font-size: 1.1em !important;
}

.glink {
	padding-right: 16px !important;
	font-size: 0.5em !important;
}

.float-right {
	float: right !important;
}

.top-bar-wrap {
	z-index: 10000;
}

.gtranslate_wrapper {
	z-index: 10000;
}

.wpex-card-simple_1 {
	margin-bottom: 30px !important;
}

.less-row-padding {
	margin-bottom: -80px !important;
}

.less-column-space .vc_column-inner {
	padding-left: -20px;
}

.vcex-grid-container {
	margin-top: 10px !important;
}

.vcex-milestone-caption {
	line-height: 160%;
}

.vcex-teaser-text {
	line-height: 1.6em;
}

.vcex-divider {
	margin-top: 30px;
	margin-bottom: 30px;
}

.vcex-bullets {
	line-height: 200%;
	margin-bottom: 20px;
	font-size: 1.0em;
	color: #4E4E4E;
}

.vcex-pricing-style-default .vcex-pricing-header {
	border-radius: 20px 20px 0px 0px;
}

.vcex-pricing-style-default .vcex-pricing-button {
	border-radius: 0px 0px 20px 20px;
}

.page-numbers {
	background-color: rgba(30, 36, 69, 0.15);
	border-radius: 5px;
}

.single-line-title {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	overflow: hidden;
	-webkit-line-clamp: 2;
	text-overflow: ellipsis;
}

.single-line-title-shadow {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
	line-height: .9em;
	text-shadow: 1px 1px 6px rgba(0, 0, 0, 0.8);
}

.video-text-copy {
	font-size: .95em;
	line-height: 160%;
}

.video-callout-copy {
	display: flex;
	justify-content: center;
	align-items: center;
	vertical-align: middle;
}

.more {
	background-color: var(--wpex-palette-9833-color);
	padding: 6% 6px;
	border-radius: 8px;
	font-size: .95em;
}

.less {
	background-color: var(--wpex-palette-9832-color);
	padding: 6% 6px;
	border-radius: 8px;
	font-size: .95em;
}

li {
	margin-top: 10px;
	margin-bottom: 10px;
}

.blockquote::before {
	color: var(--wpex-palette-8974-color);
}

.wpforms-submit {
	border-radius: 50px !important;
	padding-left: 30px !important;
	padding-right: 30px !important;
	font-size: .9em !important;
	background-color: var(--wpex-palette-8973-color) !important;
}

.icf-converge {
	background-color: #EEF5FB;
	padding: 20px 10px 10px 10px;
	margin: -20px -20px 20px -20px;
	line-height: 110%;
}

.icf-headline {
	margin-bottom: -16px;
	color: var(--wpex-palette-8973-color);
}

.icf-price {
	color: var(--wpex-palette-8973-color);
	font-size: 4.0em;
	font-weight: 800;
	margin-bottom: -16px;
}

.icf-and {
	background-color: var(--wpex-palette-8973-color) !important;
	color: #fff;
	padding: 4px 18px;
	border-radius: 60px;
	display: inline-flex;
	font-weight: 900;
	font-size: 2em;
}


/* ══════════════════════════════════════════════════════════
   9. FOOTER
   ══════════════════════════════════════════════════════════ */

.ab-footer {
	background: var(--wpex-palette-8973-color);
	padding: 64px 0 0 0;
}

.ab-footer-inner {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.ab-footer-top {
	display: grid;
	grid-template-columns: 1.8fr 1fr 1fr 1fr;
	gap: 48px;
}

.ab-footer-logo {
	width: 160px;
	height: auto;
	margin-bottom: 20px;
	display: block;
}

.ab-footer-brand p {
	color: rgba(255, 255, 255, 0.75);
	font-size: 0.875em;
	line-height: 1.7;
	margin-bottom: 24px;
}

.ab-footer-email {
	display: flex;
	align-items: center;
	gap: 12px;
	width: fit-content;
}

.ab-footer-input {
	width: 200px;
	flex-shrink: 0;
	flex-grow: 0;
	padding: 10px 16px;
	font-size: 0.875em;
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 50px;
	color: white;
}

.ab-footer-input::placeholder {
	color: rgba(255, 255, 255, 0.5);
}

.ab-footer-subscribe {
	background: var(--wpex-palette-8974-color) !important;
	color: white !important;
	border: none !important;
	border-radius: 50px !important;
	padding: 10px 24px !important;
	font-weight: 600 !important;
	cursor: pointer;
	white-space: nowrap;
	flex-shrink: 0;
}

.ab-footer-social {
	display: flex;
	gap: 16px;
	margin-top: 20px;
}

.ab-footer-social a {
	opacity: 0.75;
	transition: opacity 0.2s;
}

.ab-footer-social a:hover {
	opacity: 1;
}

.ab-footer-col-heading {
	font-size: 0.75em;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.5);
	margin-bottom: 20px;
}

.ab-footer-col ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.ab-footer-col ul li {
	margin-bottom: 14px;
}

.ab-footer-col ul li a {
	color: rgba(255, 255, 255, 0.8);
	text-decoration: none;
	font-size: 0.925em;
	transition: color 0.2s;
}

.ab-footer-col ul li a:hover {
	color: white;
}

.ab-footer-divider {
	border: none;
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	margin: 0;
}

.ab-footer-subbrand {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 8px 0;
}

.ab-footer-powered {
	font-size: 0.75em;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.5);
	white-space: nowrap;
}

.ab-footer-subbrand-card {
	display: flex;
	flex-direction: column;
	gap: 6px;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 8px;
	padding: 16px 24px;
	text-decoration: none;
	transition: border-color 0.2s;
	min-width: 240px;
	align-items: flex-start;
}

.ab-footer-subbrand-card:hover {
	border-color: rgba(255, 255, 255, 0.4);
	text-decoration: none;
}

.ab-footer-subbrand-name--inspo {
	font-size: 1.5em;
	font-weight: 700;
	color: var(--wpex-palette-8974-color);
	font-style: italic;
}

.ab-footer-subbrand-logo {
	height: 44px;
	width: auto;
	max-width: 160px;
	object-fit: contain;
}

.ab-footer-subbrand-desc {
	color: rgba(255, 255, 255, 0.6);
	font-size: 0.8em;
}

.ab-footer-bottom {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0 0 24px;
}

.ab-footer-bottom p {
	color: rgba(255, 255, 255, 0.5);
	font-size: 0.875em;
	margin: 0;
}

.ab-footer-legal {
	display: flex;
	gap: 24px;
}

.ab-footer-legal a {
	color: rgba(255, 255, 255, 0.5);
	font-size: 0.875em;
	text-decoration: none;
	transition: color 0.2s;
}

.ab-footer-legal a:hover {
	color: white;
}

@media (max-width: 1024px) {
	.ab-footer-top {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 767px) {
	.ab-footer-top {
		grid-template-columns: 1fr;
	}

	.ab-footer-subbrand {
		flex-direction: column;
		align-items: flex-start;
	}

	.ab-footer-bottom {
		flex-direction: column;
		gap: 16px;
		text-align: center;
	}

	.ab-footer-legal {
		flex-wrap: wrap;
		justify-content: center;
	}
}


/* ══════════════════════════════════════════════════════════
   10. HERO — BASE
   ══════════════════════════════════════════════════════════ */

.ab-hero {
	position: relative;
	display: inline-flex;
	align-items: center;
	overflow: hidden;
}

/* .ab-hero is inline-flex by default, so it shrink-wraps to its
   content width — fine for two-column copy+visual heroes, but
   copy-only heroes (marked by .ab-hero-copy--full) need the row
   to actually be full-width, e.g. so an absolutely-positioned
   decorative background layer has real room to work with. */
.ab-hero:has(.ab-hero-copy--full) {
	display: flex;
	width: 100%;
}

.ab-hero-inner {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: 48px;
	max-width: 100%;
}

.ab-hero-copy {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.ab-hero-copy h1 {
	margin: 0;
}

.ab-hero-copy p {
	margin: 0;
}

.ab-hero-eyebrow {
	display: inline-block;
	font-size: 0.75em;
	font-weight: 700;
	letter-spacing: 2px;
	color: var(--wpex-palette-8973-color);
	background: rgba(20, 90, 159, 0.08);
	border-radius: 4px;
	padding: 5px 12px;
	text-transform: uppercase;
	align-self: flex-start;
	width: fit-content;
}

.ab-hero .hero-1 {
	color: var(--wpex-palette-9248-color);
	margin: 0;
}

.ab-hero-subhead {
	color: #555555;
	line-height: 1.7;
	margin: 0;
}

.ab-hero-ctas br {
	display: none;
}

.ab-hero-ctas .vcex-button,
.ab-hero-ctas .theme-button {
	margin-bottom: 0 !important;
}

.ab-hero-ctas .ab-btn-outline {
	margin-top: 0 !important;
	margin-left: 16px;
}

.ab-hero-ctas .ab-btn-outline:first-child {
	margin-left: 0;
}

@media (max-width: 767px) {
	.ab-hero-ctas br {
		display: block;
	}

	.ab-hero-ctas .ab-btn-outline {
		margin-left: 0;
		margin-top: 20px !important;
	}
}

.ab-hero-link {
	display: inline-block;
	font-weight: 600;
	color: var(--wpex-palette-8973-color);
	text-decoration: none;
	transition: opacity 0.2s;
	align-self: flex-start;
}

.ab-hero-link:hover {
	opacity: 0.75;
	text-decoration: none;
	color: var(--wpex-palette-8973-color);
}

.ab-hero-stats {
	display: flex;
	align-items: center;
	gap: 32px;
	flex-wrap: wrap;
}

.ab-hero-stat {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: baseline;
	gap: 6px;
}

.ab-stat-number {
	font-weight: 700;
	color: var(--wpex-palette-8973-color);
	white-space: nowrap;
}

.ab-stat-label {
	font-size: 0.875em;
	color: #555555;
	white-space: nowrap;
}

.ab-stat-divider {
	width: 1px;
	height: 20px;
	background: rgba(30, 36, 69, 0.15);
}

.ab-hero-visual {
	flex: 0 0 44%;
	max-width: 44%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ab-hero-visual img {
	width: 100%;
	height: auto;
	display: block;
}


/* — Dark hero variant (platform) — */
.ab-hero--dark {
	min-height: 600px;
	align-items: stretch;
}

.ab-hero--dark .ab-hero-inner {
	align-items: stretch;
	width: 100%;
}

.ab-hero--dark .ab-hero-copy {
	justify-content: center;
}

.ab-hero--dark .ab-hero-visual {
	flex-direction: column;
	justify-content: flex-end;
	align-items: center;
}

.ab-hero--dark .ab-hero-visual img {
	display: block;
}


/* — Light hero variant (science — video bg) — */
.ab-hero--light {
	min-height: 620px;
	align-items: stretch;
}

.ab-hero--light .ab-hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(245, 243, 240, 0.92) 0%, rgba(245, 243, 240, 0.55) 45%, rgba(245, 243, 240, 0) 80%);
	pointer-events: none;
	z-index: 0;
}

.ab-hero--light .ab-hero-inner {
	position: relative;
	z-index: 1;
	width: 100%;
}

/* .ab-hero-copy--full (used because Science's hero is copy-only)
   otherwise stretches the text column to the full 1200px row width,
   running the headline/body copy out past where .ab-hero-overlay's
   fade actually covers the grid graphic (opaque only up to ~45%,
   fully transparent by 80%) — text extending past that clashes
   visibly with the grid cells. Capping it keeps copy inside the
   faded zone, same as the narrower column this hero was clearly
   designed around. */
.ab-hero--light .ab-hero-copy--full {
	max-width: 640px;
}

.ab-hero--light .ab-hero-copy {
	flex: 0 0 60%;
	max-width: 60%;
}


/* — Contact hero variant — */
.ab-hero--contact .ab-hero-inner {
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.ab-hero--contact .ab-hero-copy {
	align-items: center;
}

.ab-hero--contact .ab-hero-copy p {
	opacity: 0.8;
}

/* Contact hero — forces the row to the true browser edge regardless
   of any ancestor container width, same breakout trick used for the
   Integrations hero. !important needed because this element also
   matches .ab-hero:has(.ab-hero-copy--full), which sets width:100%
   at higher specificity and would otherwise win, leaving the
   viewport-relative negative margins applied without the matching
   width (pulls the hero flush left instead of spanning edge to edge). */
.ab-contact-hero {
	width: 100vw !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	padding-top: 14%;
	padding-bottom: 14%;
}

.ab-contact-hero .ab-hero-inner {
	max-width: 1200px;
	width: 100%;
	margin: 0 auto;
}

/* Contact hero graphic — loaded from the media library as a
   background-image instead of inline SVG, same approach as the
   other heroes. Connector-line endpoint drift/draw-in/fade, chain-
   node ring-halo pulses, and filled-dot pulses were all converted to
   per-element CSS keyframes; the ambient dots' <animateMotion> paths
   survive Safe SVG untouched. */
.ab-contact-hero .ab-hero-bg-graphic--full {
	background: url("/wp-content/uploads/2026/07/contact-hero-bg-graphic.svg") center / 70% no-repeat;
}


/* — Research hero card — */
.ab-research-latest-card {
	background: #ffffff;
	border: 1px solid rgba(30, 36, 69, 0.10);
	box-shadow: 0 12px 30px rgba(30, 36, 69, 0.08);
	border-radius: 20px;
	padding: 32px 36px;
	margin-top: 32px;
}

.ab-research-latest-tag {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 14px;
}

.ab-research-latest-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #EB744E;
	box-shadow: 0 0 0 4px rgba(235, 116, 78, 0.25);
	flex-shrink: 0;
}

.ab-research-latest-label {
	font-size: 0.75em;
	font-weight: 700;
	letter-spacing: 0.12em;
	color: #EB744E;
}

.ab-research-latest-card h3 {
	color: var(--wpex-palette-9248-color);
	font-size: 1.5em;
	margin-bottom: 6px;
}

.ab-research-latest-card h4 {
	color: var(--wpex-palette-8974-color);
	font-weight: 600;
	font-size: 1em;
	margin-bottom: 14px;
}

.ab-research-latest-intro {
	color: rgba(30, 36, 69, 0.68);
	font-size: 0.94em;
	line-height: 1.6;
	margin-bottom: 18px;
}

.ab-research-bullets {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px 24px;
	margin-bottom: 24px;
}

.ab-research-bullet {
	display: flex;
	gap: 8px;
	font-size: 0.84em;
	line-height: 1.5;
	color: rgba(30, 36, 69, 0.78);
	margin: 0;
}

.ab-research-bullet i {
	color: var(--wpex-palette-8974-color);
	flex-shrink: 0;
	margin-top: 3px;
	font-size: 0.85em;
}

/* — Hero responsive — */
@media (max-width: 1024px) {
	.ab-hero-inner {
		flex-direction: column;
		gap: 40px;
	}

	.ab-hero-copy,
	.ab-hero-visual {
		flex: 0 0 100%;
		max-width: 100%;
	}

	/* .ab-hero-copy--full's flex-grow:1 stretches it to fill
	   .ab-hero-inner's full height, so centering has to happen
	   inside .ab-hero-copy itself. Confirmed via devtools: also
	   centering .ab-hero-inner (rather than leaving it at its
	   default flex-start) actively breaks this, so it's left
	   unset here. */
	.ab-hero--light .ab-hero-copy,
	.ab-integrations-hero .ab-hero-copy {
		justify-content: center;
	}
}

@media (max-width: 767px) {

	.ab-hero-inner {
		flex-direction: column;
		gap: 40px;
	}

	.ab-hero-copy,
	.ab-hero-visual {
		flex: 0 0 100%;
		max-width: 100%;
	}

	.ab-hero-visual {
		order: -1;
	}

	.ab-hero--dark .ab-hero-visual {
		order: 1 !important;
	}

	.ab-hero--light .ab-hero-copy {
		flex: 0 0 100%;
		max-width: 100%;
	}

	.ab-hero-copy {
		padding-left: 20px;
		padding-right: 20px;
		box-sizing: border-box;
	}

	/* See the identical comment in the 1024px block above. */
	.ab-hero--light .ab-hero-copy,
	.ab-integrations-hero .ab-hero-copy {
		justify-content: center;
	}

	.ab-research-bullets {
		grid-template-columns: 1fr;
	}

	/* Stack the hero stats vertically on mobile instead of wrapping
	   as a horizontal row — the vertical dividers only make sense
	   between side-by-side stats, so they're hidden here. */
	.ab-hero-stats {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}

	.ab-stat-divider {
		display: none;
	}
}

@media (max-width: 480px) {
	.ab-hero-subhead {
		font-size: 1em;
	}
}


/* ══════════════════════════════════════════════════════════
   11. CTA SECTION
   ══════════════════════════════════════════════════════════ */

.ab-cta {
	display: flex;
	width: 100%;
	justify-content: center;
	padding: 0;
}

.ab-cta--home .wpb_wrapper {
	text-align: center;
}

.ab-cta-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	box-sizing: border-box;
	padding: 8% 12% !important;
}

.ab-cta-header {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	width: 100%;
}

.ab-cta-header h2 {
	margin: 0;
}

.ab-cta-header p {
	margin: 0;
}

@media (max-width: 767px) {
	.ab-cta-inner {
		padding: 56px 20px;
	}
}


/* ══════════════════════════════════════════════════════════
   12. SECTION — shared page-section padding
   ══════════════════════════════════════════════════════════ */

.ab-row-pad {
	padding: 0px 0 !important;
}

/* Platform page sections — self-contained centering container */
.ab-section {
	padding: 8% 12% !important;
}

.ab-behavior {
	padding: 8% 12% !important;
}

.ab-measures {}

.ab-solutions {}

.ab-testimonials {}

.ab-stats {}

.ab-ai {}

.ab-flow {}

@media (max-width: 1024px) {
	.ab-section {
		padding: 72px 5% !important;
	}

	.ab-row-pad,
	.ab-behavior,
	.ab-measures,
	.ab-solutions,
	.ab-testimonials,
	.ab-stats,
	.ab-ai,
	.ab-flow {
		padding: 72px 0;
	}
}

@media (max-width: 767px) {
	.ab-section {
		padding: 56px 5% !important;
	}

	.ab-row-pad,
	.ab-behavior,
	.ab-measures,
	.ab-solutions,
	.ab-testimonials,
	.ab-stats,
	.ab-ai,
	.ab-flow {
		padding: 56px 0;
	}
}


/* ══════════════════════════════════════════════════════════
   13. SECTION HEADER — reusable header block inside a section
   ══════════════════════════════════════════════════════════ */

.ab-section-header {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin-bottom: 56px;
}

.ab-section-header h2 {
	margin: 0;
}

.ab-section-header p {
	margin: 0;
}

/* "With Knowledge Spaces" lockup */
.ab-with-ks {
	display: inline-flex !important;
	align-items: center !important;
	gap: 10px;
}

.ab-with-ks-label {
	font-size: 0.7em;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wpex-palette-9248-color);
	line-height: 1 !important;
}

.ab-ks-logo {
	height: 30px !important;
	max-height: 30px !important;
	width: auto !important;
	display: block !important;
}

.ab-section-header--center {
	align-items: center;
	text-align: center;
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 24px;
}

.ab-section-header--center h2 {
	margin-bottom: 16px;
}

.ab-section-header--center p {
	margin-top: 0;
}

@media (max-width: 767px) {
	.ab-section-header--center {
		padding-left: 20px;
		padding-right: 20px;
		box-sizing: border-box;
	}
}


/* ══════════════════════════════════════════════════════════
   14. GRID UTILITIES
   ══════════════════════════════════════════════════════════ */

.ab-grid-2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.ab-grid-3 {
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
}

.ab-grid-3>* {
	flex: 1 1 calc(33.333% - 28px);
	min-width: 240px;
}

.ab-grid-4 {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 40px;
}

.ab-grid-5 {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 40px;
}

@media (max-width: 1024px) {
	.ab-grid-5 {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 767px) {
	.ab-grid-5 {
		grid-template-columns: 1fr;
	}
}

.ab-grid--stats {
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
	margin-bottom: 64px;
	padding-bottom: 64px;
	border-bottom: 1px solid rgba(20, 90, 159, 0.12);
}

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

@media (max-width: 767px) {
	.ab-grid-2 {
		grid-template-columns: 1fr;
	}

	.ab-grid-3>* {
		flex: 0 0 100%;
		min-width: 0;
	}

	.ab-grid-4 {
		grid-template-columns: 1fr;
	}

	.ab-grid--stats {
		grid-template-columns: 1fr;
		gap: 32px;
	}
}


/* ══════════════════════════════════════════════════════════
   15. SPLIT LAYOUT — 2-col copy + visual
   ══════════════════════════════════════════════════════════ */

/* WPBakery split column blocks — section tag preserves class through TinyMCE */
.ab-split-col {
	padding: 5% 0px;
	box-sizing: border-box;
}

.ab-split-copy-col {
	display: flex;
	flex-direction: column;
	gap: 20px;
	justify-content: center;
}

.ab-split-visual-col {
	display: flex;
	align-items: center;
	justify-content: center;
}

@media (max-width: 1024px) {
	.ab-split-col {
		padding: 72px 5%;
	}
}

@media (max-width: 767px) {
	.ab-split-col {
		padding: 48px 5%;
	}
}

.ab-split {
	display: flex;
	align-items: center;
	gap: 64px;
	padding: 0px 0;
}

.ab-split--reverse {
	flex-direction: row-reverse;
}

.ab-split-copy {
	flex: 0 0 46%;
	max-width: 46%;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.ab-split-copy h2 {
	margin: 0;
}

.ab-split-copy p {
	margin: 0;
}

.ab-split-visual {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

.ab-split-visual img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 12px;
	box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);
}

@media (max-width: 767px) {

	.ab-split,
	.ab-split--reverse {
		flex-direction: column;
		gap: 40px;
	}

	.ab-split-copy {
		flex: 0 0 100%;
		max-width: 100%;
	}
}


/* ══════════════════════════════════════════════════════════
   16. BULLETS — ✦ list style (shared)
   ══════════════════════════════════════════════════════════ */

.ab-bullets {
	list-style: none;
	padding: 0;
	margin: 10px 0 20px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.ab-bullets li {
	padding-left: 24px;
	position: relative;
	margin: 0;
	line-height: 1.6;
}

.ab-bullets li::before {
	content: '✦';
	position: absolute;
	left: 0;
	color: var(--wpex-palette-8974-color);
	font-size: 0.75em;
	top: 50%;
	transform: translateY(-50%);
}

.ab-bullets--white li {
	color: rgba(255, 255, 255, 0.85);
}

.ab-bullets--white li::before {
	color: var(--wpex-palette-8974-color);
}


/* ══════════════════════════════════════════════════════════
   17. STAT BLOCKS — standalone metric with left border
   ══════════════════════════════════════════════════════════ */

.ab-stat {
	display: flex;
	flex-direction: column;
	gap: 10px;
	border-left: 3px solid var(--wpex-palette-8974-color);
	padding-left: 24px;
}

.ab-stat-num {
	font-family: 'Poppins', sans-serif;
	font-size: 3.2em;
	font-weight: 800;
	color: var(--wpex-palette-9248-color);
	line-height: 1;
}

.ab-stat-text {
	font-family: 'Manrope', sans-serif;
	font-size: 0.9em;
	line-height: 1.5;
	color: #555;
	max-width: 220px;
}


/* ══════════════════════════════════════════════════════════
   18. CARDS
   ══════════════════════════════════════════════════════════ */

/* Base */
.ab-card {
	background: white;
	border: 1px solid rgba(20, 90, 159, 0.1);
	border-radius: 10px;
	padding: 24px;
	box-shadow: none;
}

/* Seafoam highlight card */
.ab-card--seafoam {
	background: #F1FAF9;
	border-color: rgba(53, 175, 161, 0.2);
}

/* Sidebar / widget cards */
.ab-card--linen {
	background: #F5F3F0;
	border-radius: 16px;
	padding: 1.25rem;
	border: none !important;
	box-shadow: none !important;
}

.ab-card--accent.ab-linen,
.ab-integration-card.ab-linen {
	background: #F5F3F0;
	box-shadow: none;
}

.ab-card--navy {
	background: var(--wpex-palette-9248-color);
	border-radius: 16px;
	padding: 1.25rem;
	border: none !important;
	box-shadow: none !important;
}

.ab-card--navy,
.ab-card--navy * {
	color: white !important;
}

@media (max-width: 767px) {

	.ab-card--linen,
	.ab-card--navy {
		padding: 0.9375rem;
	}
}

/* Paper card (publications) */
.ab-card--paper {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.ab-card-tag {
	font-size: 0.625em;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--wpex-palette-8973-color);
}

.ab-card-title {
	font-family: 'Manrope', sans-serif;
	font-size: 0.9em;
	font-weight: 600;
	line-height: 1.45;
	color: var(--wpex-palette-9248-color);
	margin: 0;
}

.ab-card-author {
	font-family: 'Manrope', sans-serif;
	font-size: 0.8em;
	color: #888;
	font-style: italic;
	margin: 0;
}

/* Accent card (integrations — left border) */
.ab-card--accent,
.ab-integration-card {
	display: block;
	width: 100%;
	box-sizing: border-box;
	border: none;
	border-left: 3px solid #35AFA1;
	border-radius: 8px;
	padding: 24px 28px;
	background: #ffffff;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.ab-card--accent h3,
.ab-integration-card h3 {
	margin: 0 0 8px 0;
}

.ab-card--accent p,
.ab-integration-card p {
	margin: 0;
	color: #555;
}

.ab-card--accent.ab-sienna {
	border-left-color: #EB744E;
}

/* Image card */
.ab-card--image {
	display: flex;
	flex-direction: column;
	gap: 16px;
	border: none;
	padding: 0;
	background: transparent;
	box-shadow: none;
}

.ab-card--image img {
	width: 100%;
	aspect-ratio: 4/3;
	object-fit: cover;
	border-radius: 12px;
	display: block;
}

.ab-card-caption {
	font-size: 1em;
	font-weight: 700;
	color: var(--wpex-palette-9248-color);
	margin: 0;
}

.ab-card-body {
	font-family: 'Manrope', sans-serif;
	font-size: 0.9em;
	line-height: 1.65;
	color: #555;
	margin: 0;
}


/* Product/tier card heading */
.ab-card-heading {
	font-family: 'Poppins', sans-serif;
	font-size: 1.4em;
	font-weight: 600;
	color: var(--wpex-palette-9248-color);
	line-height: 1.2;
	margin: 4px 0 12px 0;
}

.ab-card-subtitle {
	font-family: 'Manrope', sans-serif;
	font-size: 0.9em;
	font-weight: 700;
	color: var(--wpex-palette-9248-color);
	margin: 0 0 12px 0;
}


/* Dark accent card (stacked list on dark bg) */
.ab-card-list {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.ab-card--dark-accent {
	background: rgba(255, 255, 255, 0.07);
	border: none;
	border-left: 3px solid var(--wpex-palette-8974-color);
	border-radius: 12px;
	padding: 32px 36px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	box-shadow: none;
}

.ab-card--dark-accent h3 {
	color: white;
	margin: 0;
}

.ab-card--dark-accent p {
	color: rgba(255, 255, 255, 0.75);
	margin: 0;
}


/* Stat card */
.ab-card--stat {
	background: #EEF5FB;
	border: none;
	border-radius: 16px;
	padding: 40px 32px;
	display: flex;
	flex-direction: column;
	gap: 16px;
	box-shadow: none;
}

.ab-stat-card-number {
	font-family: 'Poppins', sans-serif;
	font-size: 3.5em;
	font-weight: 700;
	color: var(--wpex-palette-9248-color);
	line-height: 1;
	margin: 0;
}

.ab-stat-card-label {
	font-weight: 700;
	font-size: 1em;
	color: var(--wpex-palette-9248-color);
	margin: 0;
}

.ab-stat-card-body {
	font-family: 'Manrope', sans-serif;
	font-size: 0.95em;
	color: #555;
	line-height: 1.65;
	margin: 0;
}


/* ══════════════════════════════════════════════════════════
   19. PULL QUOTE — inline testimonial with CTA
   ══════════════════════════════════════════════════════════ */

/* Dark background variant — no card, decorative quote mark */
.ab-quote--dark {
	position: relative;
	padding-top: 8px;
}

.ab-quote--dark-icon {
	display: block;
	width: 48px;
	height: auto;
	margin-top: 30px;
	margin-bottom: 30px;
}

.ab-quote--dark .ab-pull-quote-text {
	color: #ffffff;
	font-size: 1.15em;
	font-style: italic;
	line-height: 1.65;
	margin: 0 0 16px;
}

.ab-quote--dark .ab-pull-quote-attribution {
	color: var(--wpex-palette-8974-color);
	font-weight: 600;
	font-size: 0.875em;
	margin: 0;
}

.ab-pull-quote {
	background: #EEF5FB;
	border: none;
	border-left: 3px solid var(--wpex-palette-8973-color);
	border-radius: 12px;
	padding: 40px 48px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 48px;
}

.ab-pull-quote-content {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.ab-pull-quote-text {
	font-family: 'Manrope', sans-serif;
	font-size: 1.05em;
	line-height: 1.65;
	color: var(--wpex-palette-9248-color);
	margin: 0;
}

.ab-pull-quote-attribution {
	font-family: 'Manrope', sans-serif;
	font-size: 0.9em;
	font-weight: 600;
	color: var(--wpex-palette-9248-color);
	margin: 0;
}

.ab-btn-outline-lapis {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: fit-content;
	padding: 14px 28px !important;
	line-height: 1 !important;
	border: 2px solid var(--wpex-palette-8973-color);
	border-radius: 999px;
	color: var(--wpex-palette-8973-color) !important;
	font-size: 0.875em;
	font-weight: 700;
	text-decoration: none !important;
	transition: background 0.2s, color 0.2s;
}

.ab-btn-outline-lapis:hover {
	background: var(--wpex-palette-8973-color);
	color: white !important;
	text-decoration: none;
}

.ab-btn-outline-lapis--sm {
	display: inline-block;
	white-space: nowrap;
	padding: 9px 20px;
	margin-top: 20px;
	border: 1.5px solid var(--wpex-palette-8973-color);
	border-radius: 100px;
	color: var(--wpex-palette-8973-color);
	font-family: 'Manrope', sans-serif;
	font-size: 0.85em;
	font-weight: 600;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
}

.ab-btn-outline-lapis--sm:hover {
	background: var(--wpex-palette-8973-color);
	color: white;
	text-decoration: none;
}

.ab-btn-solid-sienna {
	display: inline-block;
	background: #EB744E;
	color: #ffffff;
	font-family: 'Manrope', sans-serif;
	font-size: 0.9em;
	font-weight: 700;
	letter-spacing: 0.5px;
	padding: 14px 28px;
	border-radius: 6px;
	border: 2px solid transparent;
	text-decoration: none;
	transition: background 0.2s;
}

.ab-btn-solid-sienna:hover {
	background: #d4663e;
	color: #ffffff;
	text-decoration: none;
}

@media (max-width: 767px) {
	.ab-pull-quote {
		flex-direction: column;
		align-items: flex-start;
		padding: 32px 28px;
		gap: 28px;
	}
}


/* ══════════════════════════════════════════════════════════
   20. QUOTE SECTION — centered large text on dark bg
   ══════════════════════════════════════════════════════════ */

.ab-quote {
	padding: 120px 0;
	position: relative;
	overflow: hidden;
}

.ab-quote-overlay {
	position: absolute;
	inset: 0;
	background: rgba(20, 36, 69, 0.65);
	pointer-events: none;
}

.ab-quote-inner {
	position: relative;
	z-index: 1;
	text-align: center;
	max-width: 860px;
	margin: 0 auto;
	padding-left: 5%;
	padding-right: 5%;
	box-sizing: border-box;
}

.ab-quote-text {
	font-size: 2.6em;
	font-weight: 700;
	line-height: 1.2;
	color: white;
	margin: 0;
}

.ab-quote-accent {
	color: var(--wpex-palette-8974-color);
}

@media (max-width: 767px) {
	.ab-quote-text {
		font-size: 1.9em;
	}
}

@media (max-width: 480px) {
	.ab-quote {
		padding: 80px 0;
	}
}


/* ══════════════════════════════════════════════════════════
   20. PLATFORM — overview icons (unique to platform)
   ══════════════════════════════════════════════════════════ */

.ab-platform-overview-inner {
	display: flex;
	align-items: center;
	gap: 64px;
}

.ab-platform-overview-copy {
	flex: 0 0 42%;
	max-width: 42%;
}

.ab-platform-overview-icons {
	flex: 1;
	display: flex;
	gap: 40px;
	justify-content: flex-end;
}

.ab-platform-icon-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 12px;
}

.ab-platform-icon-circle {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	background: var(--wpex-palette-9248-color);
	display: flex;
	align-items: center;
	justify-content: center;
}

.ab-platform-icon-circle i {
	color: var(--wpex-palette-8988-color);
	font-size: 1.75rem;
}

@media (max-width: 767px) {
	.ab-platform-overview-inner {
		flex-direction: column;
		gap: 40px;
		padding: 56px 5%;
	}

	.ab-platform-overview-copy {
		flex: 0 0 100%;
		max-width: 100%;
	}

	.ab-platform-overview-icons {
		justify-content: flex-start;
	}
}


/* ══════════════════════════════════════════════════════════
   21. PLATFORM — integrations (unique layout)
   ══════════════════════════════════════════════════════════ */

.ab-platform-integrations-inner {
	display: flex;
	align-items: flex-start;
	gap: 64px;
}

.ab-platform-integrations-copy {
	flex: 0 0 36%;
	max-width: 36%;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.ab-platform-integrations-copy h2 {
	margin: 0;
}

.ab-platform-integrations-copy p {
	margin: 0;
}

.ab-platform-integrations-cards {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

@media (max-width: 767px) {
	.ab-platform-integrations-inner {
		flex-direction: column;
		gap: 40px;
		padding: 56px 5%;
	}

	.ab-platform-integrations-copy {
		flex: 0 0 100%;
		max-width: 100%;
	}
}


/* ══════════════════════════════════════════════════════════
   22. SCIENCE — framework pyramid + video
   ══════════════════════════════════════════════════════════ */

.ab-science-pyramid {
	width: 100%;
	max-width: 420px;
	height: auto;
}

.ab-science-framework-video {
	margin-top: 24px;
	width: 100%;
	border-radius: 12px;
	overflow: hidden;
	aspect-ratio: 16/9;
	background: var(--wpex-palette-9681-color);
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}

.ab-science-framework-video iframe {
	width: 100%;
	height: 100%;
	display: block;
}


/* ══════════════════════════════════════════════════════════
   23. SCIENCE — scientists
   ══════════════════════════════════════════════════════════ */

.ab-scientist-card {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.ab-scientist-ident {
	display: flex;
	align-items: center;
	gap: 20px;
}

.ab-scientist-photo {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
	display: block;
	background: var(--wpex-palette-9681-color);
}

.ab-scientist-name {
	margin: 0 0 4px 0;
	font-size: 1.1em;
	font-weight: 700;
	color: var(--wpex-palette-9248-color);
}

.ab-scientist-role {
	margin: 0;
	font-family: 'Manrope', sans-serif;
	font-size: 0.85em;
	color: var(--wpex-palette-8973-color);
	font-weight: 600;
}

.ab-scientist-bio {
	font-family: 'Manrope', sans-serif;
	font-size: 0.9em;
	line-height: 1.7;
	color: #444;
	margin: 0;
}

.ab-scientist-research {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.ab-scientist-research-label {
	font-size: 0.625em;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--wpex-palette-8973-color);
}

.ab-scientist-paper {
	font-family: 'Manrope', sans-serif;
	font-size: 0.85em;
	line-height: 1.45;
	color: var(--wpex-palette-9248-color);
	border-left: 2px solid var(--wpex-palette-8974-color);
	padding-left: 12px;
	margin: 0;
}


/* ══════════════════════════════════════════════════════════
   24. SCIENCE — theory pillars
   ══════════════════════════════════════════════════════════ */

.ab-theory-quote {
	font-size: 2.4em;
	font-weight: 700;
	line-height: 1.2;
	color: var(--wpex-palette-9248-color);
	margin: 0;
}

.ab-theory-quote em {
	color: var(--wpex-palette-8974-color);
	font-style: normal;
}

.ab-theory-attribution {
	font-family: 'Manrope', sans-serif;
	font-size: 0.9em;
	font-style: italic;
	color: var(--wpex-palette-8973-color);
	margin: -8px 0 0 0;
}

.ab-theory-intro {
	max-width: 840px;
	margin-bottom: 64px;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.ab-theory-intro p {
	font-family: 'Manrope', sans-serif;
	font-size: 1em;
	line-height: 1.7;
	color: #555;
	margin: 0;
	max-width: 720px;
}

.ab-theory-pillar {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.ab-theory-pillar h3 {
	font-size: 1em;
	font-weight: 700;
	color: var(--wpex-palette-9248-color);
	margin: 0;
	line-height: 1.3;
}

.ab-theory-pillar ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.ab-theory-pillar ul li {
	font-family: 'Manrope', sans-serif;
	font-size: 0.875em;
	line-height: 1.55;
	color: #555;
	padding-left: 18px;
	position: relative;
	margin: 0;
}

.ab-theory-pillar ul li::before {
	content: '✦';
	position: absolute;
	left: 0;
	color: var(--wpex-palette-8974-color);
	font-size: 0.6em;
	top: 4px;
}

@media (max-width: 767px) {
	.ab-theory-quote {
		font-size: 1.75em;
	}
}


/* ══════════════════════════════════════════════════════════
   25. HOMEPAGE — behavior comparison (copy + insight cards)
   ══════════════════════════════════════════════════════════ */

.ab-behavior-inner {
	display: flex;
	align-items: center;
	gap: 64px;
}

.ab-behavior-copy {
	flex: 0 0 48%;
	max-width: 48%;
}

.ab-behavior-cards {
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.ab-insight-card {
	border-radius: 8px;
	padding: 20px 24px;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
	border-left: 3px solid transparent;
	background-color: #fff;
	width: 100%;
	box-sizing: border-box;
}

.ab-insight-card p {
	margin-bottom: 4px;
}

.ab-insight-card p:last-child {
	margin-bottom: 0;
}

.ab-insight-card--lapis {
	border-left-color: var(--wpex-palette-8973-color);
}

.ab-insight-card--seafoam {
	border-left-color: var(--wpex-palette-8974-color);
}

.ab-insight-card--sienna {
	border-left-color: #EB744E;
}

.ab-behavior-highlight {
	color: var(--wpex-palette-8973-color);
}

@media (max-width: 767px) {
	.ab-behavior-inner {
		flex-direction: column;
		gap: 40px;
	}

	.ab-behavior-copy,
	.ab-behavior-cards {
		flex: 0 0 100%;
		max-width: 100%;
	}
}


/* ══════════════════════════════════════════════════════════
   26. HOMEPAGE — measures (AgileBrain measures why)
   ══════════════════════════════════════════════════════════ */

.ab-measures-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 56px;
	padding: 8% 12% !important;
}

.ab-measures-header {
	text-align: center;
	max-width: 1000px;
}

.ab-measures-cards {
	display: flex;
	align-items: stretch;
	gap: 8px;
	width: 100%;
}

.ab-measures-card {
	flex: 1;
	display: flex;
	flex-direction: column;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 12px;
	padding: 32px;
}

.ab-measures-card-img {
	width: 100%;
	height: auto;
	display: block;
	margin-top: auto;
	padding-top: 24px;
	opacity: 0.9;
}

.ab-measures-arrow {
	font-size: 3.5em;
	flex-shrink: 0;
	padding: 0 4px;
	align-self: center;
	color: var(--wpex-palette-8974-color);
}

@media (max-width: 767px) {
	.ab-measures-inner {
		padding: 8% 5% !important;
	}

	.ab-measures-cards {
		flex-direction: column;
		gap: 16px;
	}

	.ab-measures-arrow {
		transform: rotate(90deg);
	}
}


/* ══════════════════════════════════════════════════════════
   27. HOMEPAGE — testimonials
   ══════════════════════════════════════════════════════════ */

.ab-testimonials-inner {
	display: flex;
	flex-direction: column;
	gap: 48px;
	padding: 8% 12% !important;
}

.ab-testimonials-header {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.ab-testimonials-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}

.ab-testimonial-card {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
	border-radius: 12px;
	padding: 32px;
	background: var(--wpex-palette-9681-color);
}

.ab-testimonial-content {
	flex: 1;
}

.ab-testimonial-content p {
	margin-bottom: 8px;
}

.ab-testimonial-logo {
	width: 80px;
	height: auto;
	object-fit: contain;
	flex-shrink: 0;
	border-radius: 8px;
}

@media (max-width: 767px) {
	.ab-testimonials-inner {
		padding: 8% 5% !important;
	}

	.ab-testimonials-grid {
		grid-template-columns: 1fr;
	}
}


/* ══════════════════════════════════════════════════════════
   28. HOMEPAGE — solutions grid
   ══════════════════════════════════════════════════════════ */

.ab-solutions-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 48px;
	text-align: center;
	padding: 8% 12% !important;
}

.ab-solutions-header {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	max-width: 1000px;
}

.ab-solutions-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	width: 100%;
}

.ab-solution-card {
	background: var(--wpex-palette-8988-color);
	border: 1px solid rgba(20, 90, 159, 0.1);
	border-radius: 12px;
	padding: 5% 32px;
	text-align: center;
	text-decoration: none;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.ab-solution-card:hover {
	text-decoration: none;
}

.ab-solution-card h3 {
	color: var(--wpex-palette-9248-color);
	margin: 0;
}

.ab-solution-card p {
	color: #555555;
	margin: 0;
}

@media (max-width: 1024px) {
	.ab-solutions-grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 767px) {
	.ab-solutions-inner {
		padding: 8% 5% !important;
	}

	.ab-solutions-grid {
		grid-template-columns: 1fr;
	}
}


/* ══════════════════════════════════════════════════════════
   29. HOMEPAGE — stats bar
   ══════════════════════════════════════════════════════════ */

.ab-stats-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	padding: 3% 12% 2% !important;
}

.ab-stat-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 12px;
}

.ab-stats-number {
	font-size: 3.3em;
	font-weight: 800;
	line-height: 1.0;
}

@media (max-width: 767px) {
	.ab-stats-inner {
		flex-wrap: wrap;
		justify-content: center;
		padding: 3% 5% 2% !important;
	}

	.ab-stat-item {
		flex: 0 0 45%;
	}
}


/* ══════════════════════════════════════════════════════════
   30. HOMEPAGE — AI powered section
   ══════════════════════════════════════════════════════════ */

.ab-ai-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 48px;
	text-align: center;
	padding: 8% 12% !important;
}

.ab-ai-header {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	max-width: 700px;
}

.ab-ai-illustration {
	width: 100%;
	height: auto;
	display: block;
}

@media (max-width: 767px) {
	.ab-ai-inner {
		padding: 8% 5% !important;
	}
}


/* ══════════════════════════════════════════════════════════
   31. HOMEPAGE — flow steps (see it in real time)
   ══════════════════════════════════════════════════════════ */

.ab-flow-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 56px;
	text-align: center;
	padding: 8% 12% !important;
}

.ab-flow-header {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	max-width: 720px;
}

.ab-flow-steps {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	width: 100%;
}

.ab-flow-step {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 20px;
	text-align: left;
}

.ab-flow-step-label {
	display: flex;
	align-items: center;
	gap: 16px;
}

.ab-flow-step-number {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 8px;
	font-weight: 700;
	font-size: 1em;
	color: var(--wpex-palette-8988-color);
	flex-shrink: 0;
}

.ab-flow-step-number--navy {
	background: var(--wpex-palette-9248-color);
}

.ab-flow-step-number--lapis {
	background: var(--wpex-palette-8973-color);
}

.ab-flow-step-number--seafoam {
	background: var(--wpex-palette-8974-color);
}

.ab-flow-step-number--sienna {
	background: #EB744E;
}

/* Vertical flow variant — used on AI Intelligence Layer path block */
.ab-flow-steps--vertical {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.ab-flow-step-v,
.ab-flow-step-content {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.ab-flow-step-title {
	font-family: 'Manrope', sans-serif;
	font-size: 1em;
	font-weight: 700;
	color: var(--wpex-palette-9248-color);
	margin: 0;
}

.ab-flow-step-body {
	font-family: 'Manrope', sans-serif;
	font-size: 0.9em;
	line-height: 1.6;
	color: var(--wpex-palette-9248-color);
	margin: 0;
}

.ab-flow-arrow-v {
	font-size: 1.1em;
	color: var(--wpex-palette-8973-color);
	padding: 8px 0;
	line-height: 1;
}

.ab-flow-step-label h3 {
	margin: 0;
}

.ab-flow-step-label p {
	margin: 0;
}

.ab-flow-step-img {
	width: 100%;
	height: 360px;
	object-fit: contain;
	border-radius: 8px;
}

.ab-flow-arrow {
	font-size: 2em;
	color: rgba(30, 36, 69, 0.3);
	flex-shrink: 0;
	padding: 0 8px;
	margin-top: 12px;
}

@media (max-width: 767px) {
	.ab-flow-inner {
		padding: 8% 5% !important;
	}

	.ab-flow-steps {
		flex-direction: column;
		gap: 40px;
	}

	.ab-flow-arrow {
		transform: rotate(90deg);
		align-self: center;
	}
}


/* ══════════════════════════════════════════════════════════
   32. HOMEPAGE — CTA (gradient card with mockup bleed)
       Set class ab-cta--home on the WPBakery ROW (extra class field).
   ══════════════════════════════════════════════════════════ */

.ab-cta--home .ab-cta-inner {
	background: linear-gradient(135deg, #1e2445 0%, #145A9F 60%, #35AFA1 100%);
	border-radius: 24px 24px 0 0;
	padding: 80px 60px 0 60px !important;
	overflow: hidden;
	gap: 40px;
	margin-bottom: 0px;
}

.ab-cta-mockup {
	width: 100%;
	max-width: 50%;
	height: auto;
	display: block;
}

@media (max-width: 767px) {
	.ab-cta--home .ab-cta-inner {
		border-radius: 16px;
		padding: 56px 24px 0 24px !important;
	}
}


/* ══════════════════════════════════════════════════════════
   33. PLATFORM / SCIENCE — CTA (gradient card, no image)
       Set class ab-cta--platform or ab-cta--science on the WPBakery ROW.
   ══════════════════════════════════════════════════════════ */

.ab-cta--platform .wpb_wrapper,
.ab-cta--science .wpb_wrapper {
	text-align: center;
}

.ab-cta--platform .ab-cta-inner,
.ab-cta--science .ab-cta-inner,
.ab-cta--book .ab-cta-inner {
	background: linear-gradient(135deg, #1e2445 0%, #145A9F 60%, #35AFA1 100%);
	border-radius: 24px 24px 0 0;
	padding: 80px 60px !important;
	overflow: hidden;
	width: 75%;
	margin: 0 auto;
}

.ab-cta--platform .wpb_wrapper,
.ab-cta--science .wpb_wrapper,
.ab-cta--book .wpb_wrapper {
	text-align: center;
}

.ab-cta--campus .ab-cta-inner {
	background: var(--wpex-palette-9248-color);
	border-radius: 24px 24px 0 0;
	padding: 56px 60px !important;
	overflow: hidden;
}

.ab-cta--about .wpb_wrapper {
	text-align: center;
}

.ab-cta--about .ab-cta-inner {
	background: linear-gradient(135deg, #F5F3F0 0%, #F1FAF9 100%);
	border-radius: 24px 24px 0 0;
	padding: 80px 60px !important;
	overflow: hidden;
}

@media (max-width: 767px) {

	.ab-cta--platform .ab-cta-inner,
	.ab-cta--science .ab-cta-inner,
	.ab-cta--book .ab-cta-inner {
		border-radius: 16px 16px 0 0;
		padding: 56px 24px !important;
		width: 90%;
		max-width: none;
	}

	.ab-cta--campus .ab-cta-inner {
		border-radius: 16px 16px 0 0;
		padding: 40px 24px !important;
	}

	.ab-cta--about .ab-cta-inner {
		border-radius: 16px 16px 0 0;
		padding: 56px 24px !important;
	}
}


/* ══════════════════════════════════════════════════════════
   33. APPROACH BLOCK — Capture → Measure → Activate
       Used on every vertical page. Background set in WPBakery
       (dark navy gradient). Inner layout only.
   ══════════════════════════════════════════════════════════ */

.ab-approach-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 56px;
	text-align: center;
}

.ab-approach-header {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	max-width: 800px;
}

.ab-approach-header--left {
	align-items: flex-start;
	align-self: flex-start;
	text-align: left;
}

.ab-approach-header h2 {
	margin: 0;
	color: white;
}

.ab-approach-header p {
	margin: 0;
	color: rgba(255, 255, 255, 0.8);
	font-family: 'Manrope', sans-serif;
	line-height: 1.7;
}

.ab-approach-steps {
	display: flex;
	align-items: stretch;
	gap: 8px;
	width: 100%;
}

.ab-approach-step {
	flex: 1;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 12px;
	padding: 32px;
	display: flex;
	flex-direction: column;
	gap: 16px;
	text-align: left;
}

.ab-approach-step-badge {
	display: flex;
	align-items: baseline;
	gap: 8px;
}

.ab-approach-step-num {
	font-family: 'Poppins', sans-serif;
	font-size: 0.7em;
	font-weight: 800;
	color: rgba(255, 255, 255, 0.2);
	letter-spacing: 1px;
}

.ab-approach-step-label {
	font-size: 0.625em;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--wpex-palette-8974-color);
}

.ab-approach-step h3 {
	margin: 0;
	font-size: 1.8em;
	font-weight: 500;
	color: white !important;
	line-height: 1.1;
}

.ab-approach-step p {
	margin: 0;
	font-family: 'Manrope', sans-serif;
	font-size: 0.875em;
	line-height: 1.65;
	color: rgba(255, 255, 255, 0.72);
}

.ab-approach-arrow {
	font-size: 2em;
	color: rgba(255, 255, 255, 0.5);
	flex-shrink: 0;
	padding: 0 4px;
	align-self: center;
}

.ab-approach-footer {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
}

.ab-approach-disclaimer {
	font-family: 'Manrope', sans-serif;
	font-size: 0.8em;
	color: rgba(255, 255, 255, 0.45);
	font-style: italic;
	text-align: center;
	max-width: 640px;
	margin: 0;
}

.ab-approach-ctas {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	justify-content: center;
}

@media (max-width: 767px) {
	.ab-approach-inner {
		gap: 40px;
	}

	.ab-approach-steps {
		flex-direction: column;
	}

	.ab-approach-arrow {
		transform: rotate(90deg);
		align-self: center;
	}
}


/* ══════════════════════════════════════════════════════════
   34. PROBLEM BLOCK — copy left + 3-col cards right
       Used on: Workforce, H&HS, Community & Non-Profit, Coach, inspo
   ══════════════════════════════════════════════════════════ */

.ab-problem-inner {
	display: flex;
	align-items: flex-start;
	gap: 64px;
}

.ab-problem-copy {
	flex: 0 0 36%;
	max-width: 36%;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.ab-problem-copy h2 {
	margin: 0;
}

.ab-problem-copy p {
	margin: 0;
	font-family: 'Manrope', sans-serif;
	line-height: 1.7;
	color: #555;
}

.ab-problem-cards {
	flex: 1;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.ab-problem-card {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.ab-problem-card-head {
	font-family: 'Poppins', sans-serif;
	font-weight: 700;
	font-size: 0.9em;
	color: var(--wpex-palette-9248-color);
	margin: 0;
	line-height: 1.3;
}

.ab-problem-card-body {
	font-family: 'Manrope', sans-serif;
	font-size: 0.875em;
	line-height: 1.6;
	color: #555;
	margin: 0;
}

@media (max-width: 1024px) {
	.ab-problem-inner {
		flex-direction: column;
		gap: 40px;
	}

	.ab-problem-copy {
		flex: 0 0 100%;
		max-width: 100%;
	}

	.ab-problem-cards {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 767px) {
	.ab-problem-cards {
		grid-template-columns: 1fr;
	}
}


/* ══════════════════════════════════════════════════════════
   35. PHOTO BANNER — full-width photo section with text overlay
       Background image set in WPBakery. Use this for the
       "When coaching starts from motivation..." style sections.
       Different from ab-quote (which is a blockquote on gradient bg).
   ══════════════════════════════════════════════════════════ */

.ab-photo-banner {
	position: relative;
	overflow: hidden;
	padding: 120px 0;
}

.ab-photo-banner-overlay {
	position: absolute;
	inset: 0;
	background: rgba(20, 36, 69, 0.60);
	pointer-events: none;
}

.ab-photo-banner-inner {
	position: relative;
	z-index: 1;
	max-width: 820px;
}

.ab-photo-banner--center .ab-photo-banner-inner {
	margin: 0 auto;
	text-align: center;
}

.ab-photo-banner-text {
	font-family: 'Poppins', sans-serif;
	font-size: 2.6em;
	font-weight: 700;
	line-height: 1.25;
	color: white;
	margin: 0;
}

.ab-photo-banner-text em {
	color: var(--wpex-palette-8974-color);
	font-style: normal;
}

@media (max-width: 767px) {
	.ab-photo-banner {
		padding: 80px 0;
	}

	.ab-photo-banner-text {
		font-size: 1.9em;
	}
}

@media (max-width: 480px) {
	.ab-photo-banner {
		padding: 60px 0;
	}

	.ab-photo-banner-text {
		font-size: 1.6em;
	}
}


/* ══════════════════════════════════════════════════════════
   36. STAT PCT — 2×2 percentage stat grid
       Used on: Performance, H&HS, Community & Non-Profit
       (70.5%, 74.1%, 87.5%, 65.2% style outcomes stats)
   ══════════════════════════════════════════════════════════ */

.ab-stat-pct-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
}

.ab-stat-pct {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.ab-stat-pct-num {
	font-family: 'Poppins', sans-serif;
	font-size: 3.2em;
	font-weight: 800;
	line-height: 1;
	color: var(--wpex-palette-9248-color);
}

.ab-stat-pct-num--lapis {
	color: var(--wpex-palette-8973-color);
}

.ab-stat-pct-num--white {
	color: white;
}

.ab-stat-pct-label {
	font-family: 'Manrope', sans-serif;
	font-size: 0.875em;
	line-height: 1.5;
	color: #555;
	margin: 0;
}

.ab-stat-pct-label--white {
	color: rgba(255, 255, 255, 0.75);
}

@media (max-width: 480px) {
	.ab-stat-pct-grid {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.ab-stat-pct-num {
		font-size: 2.6em;
	}
}


/* ══════════════════════════════════════════════════════════
   37. CASE STUDY — pull quote left + 2×2 stats right
       Used on: Performance, H&HS, Community & Non-Profit
   ══════════════════════════════════════════════════════════ */

.ab-case-study-inner {
	display: flex;
	align-items: center;
	gap: 64px;
}

.ab-case-study-quote {
	flex: 0 0 46%;
	max-width: 46%;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.ab-case-study-pull {
	font-family: 'Poppins', sans-serif;
	font-size: 1.4em;
	font-weight: 700;
	line-height: 1.35;
	color: var(--wpex-palette-9248-color);
	font-style: italic;
	border-left: 3px solid var(--wpex-palette-8974-color);
	padding-left: 24px;
	margin: 0;
}

.ab-case-study-attr {
	font-family: 'Manrope', sans-serif;
	font-size: 0.875em;
	color: #888;
	padding-left: 27px;
	margin: 0;
}

.ab-case-study-stats {
	flex: 1;
}

@media (max-width: 767px) {
	.ab-case-study-inner {
		flex-direction: column;
		gap: 40px;
	}

	.ab-case-study-quote {
		flex: 0 0 100%;
		max-width: 100%;
	}
}


/* ══════════════════════════════════════════════════════════
   38. MODULES GRID — 2-col module list with icons
       Used on: Workforce, inspo
   ══════════════════════════════════════════════════════════ */

.ab-modules-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}

.ab-module-item {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 18px 20px;
	border-radius: 10px;
	border: 1px solid rgba(20, 90, 159, 0.1);
	background: white;
}

.ab-module-icon {
	font-size: 1.25em;
	flex-shrink: 0;
	color: var(--wpex-palette-8974-color);
	margin-top: 2px;
}

.ab-module-copy {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.ab-module-title {
	font-family: 'Poppins', sans-serif;
	font-weight: 700;
	font-size: 0.9em;
	color: var(--wpex-palette-9248-color);
	margin: 0;
	line-height: 1.3;
}

.ab-module-desc {
	font-family: 'Manrope', sans-serif;
	font-size: 0.8em;
	line-height: 1.5;
	color: #666;
	margin: 0;
}

@media (max-width: 767px) {
	.ab-modules-grid {
		grid-template-columns: 1fr;
	}
}


/* ══════════════════════════════════════════════════════════
   39. TRUST STRIP — accreditation / partner logo badges
       Used on: Coach (ICF Accredited, Coaching Community)
   ══════════════════════════════════════════════════════════ */

.ab-trust-strip {
	display: flex;
	align-items: center;
	gap: 32px;
	flex-wrap: wrap;
	padding: 24px 0;
}

.ab-trust-item {
	display: flex;
	align-items: center;
	gap: 12px;
}

.ab-trust-logo {
	height: 44px;
	width: auto;
	object-fit: contain;
	flex-shrink: 0;
}

.ab-trust-text {
	font-family: 'Manrope', sans-serif;
	font-size: 0.8em;
	line-height: 1.45;
	color: #555;
	max-width: 200px;
	margin: 0;
}


/* ══════════════════════════════════════════════════════════
   40. TECH LOGOS — platform partner logo strip
       Used on: AI Intelligence Layer (OpenAI, Anthropic, etc.)
   ══════════════════════════════════════════════════════════ */

.ab-tech-logos {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.ab-tech-logo {
	height: 50px;
	width: auto;
	object-fit: contain;
	filter: grayscale(15%);
}

.ab-tech-logo:hover {
	filter: grayscale(0%);
}

@media (max-width: 767px) {
	.ab-tech-logos {
		gap: 20px;
		flex-wrap: wrap;
		justify-content: center;
	}

	.ab-tech-logo {
		height: 36px;
	}
}


.ab-stack {
	display: flex;
	flex-direction: column;
	gap: 16px;
}


/* ══════════════════════════════════════════════════════════
   NAVIGATION OVERRIDES
   ══════════════════════════════════════════════════════════ */

.ab-blog-cat-nav a.vcex-navbar-link {
	color: var(--wpex-palette-9248-color) !important;
}


/* ══════════════════════════════════════════════════════════
   BLOG — Category Nav
   ══════════════════════════════════════════════════════════ */

.ab-blog-nav {
	background: #ffffff;
	border-bottom: 1px solid rgba(30, 36, 69, 0.1);
	width: 100%;
}

.ab-blog-nav-scroll {
	display: flex;
	flex-direction: row;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	gap: 0;
}

.ab-blog-nav-scroll::-webkit-scrollbar {
	display: none;
}

.ab-blog-nav-item {
	display: inline-block;
	white-space: nowrap;
	flex-shrink: 0;
	padding: 16px 20px;
	font-family: 'Manrope', sans-serif;
	font-size: 0.9em;
	font-weight: 500;
	color: var(--wpex-palette-9248-color);
	text-decoration: none;
	border-bottom: 2px solid transparent;
	transition: color 0.2s, border-color 0.2s;
}

.ab-blog-nav-item:hover {
	color: var(--wpex-palette-8973-color);
	text-decoration: none;
}

.ab-blog-nav-item--active {
	font-weight: 600;
	border-bottom-color: var(--wpex-palette-8973-color);
}

/* Mobile: native select dropdown */
.ab-blog-nav-select {
	display: none;
}

@media (max-width: 767px) {
	.ab-blog-nav-scroll {
		display: none;
	}

	.ab-blog-nav-select {
		display: block;
		width: 100%;
		padding: 12px 40px 12px 16px;
		font-family: 'Manrope', sans-serif;
		font-size: 0.95em;
		font-weight: 500;
		color: var(--wpex-palette-9248-color);
		background: #ffffff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%231e2445' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 16px center;
		border: 1px solid rgba(30, 36, 69, 0.2);
		border-radius: 8px;
		appearance: none;
		-webkit-appearance: none;
		cursor: pointer;
	}
}


/* Blog card category pill — add class ab-card-cat-pill to the custom field element in WPBakery card builder */
.ab-card-cat-pill {
	display: inline-flex !important;
	align-items: center;
	width: fit-content !important;
	gap: 6px;
	background: color-mix(in srgb, var(--wpex-palette-8974-color) 18%, #ffffff);
	color: #1a5c53;
	font-size: 0.82em;
	font-weight: 600;
	padding: 6px 14px 6px 12px;
	border-radius: 999px;
	line-height: 1;
	letter-spacing: 0.01em;
	margin-bottom: 10px;
}


/* Equal-height card grid — add class ab-equal-height to the WPBakery Post Type Grid element */
.ab-equal-height .vcex-post-type-grid {
	align-items: stretch;
}

.ab-equal-height .vcex-post-type-grid-entry {
	display: flex !important;
	flex-direction: column;
}

.ab-equal-height .vcex-post-type-grid-entry-inner {
	display: flex;
	flex-direction: column;
	flex: 1;
}

.ab-equal-height .vcex-post-type-grid-entry-details {
	display: flex;
	flex-direction: column;
	flex: 1;
}


/* ══════════════════════════════════════════════════════════
   ICON LIST — two-column topic layout
   ══════════════════════════════════════════════════════════ */

.ab-icon-cols {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px 60px;
}

.ab-icon-cols--3 {
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
}

.ab-icon-cols--3 .ab-icon-item {
	flex-direction: column;
}

.ab-icon-cols--3 .ab-icon-item-icon {
	flex-shrink: 0;
}

/* Performance signals card internals */
.ab-perf-signal-card {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 32px !important;
}

.ab-perf-signal-card .ab-icon-item-icon {
	margin-bottom: 4px;
}

.ab-perf-signal-card .ab-icon-item-icon svg {
	color: var(--wpex-palette-8974-color);
}

.ab-perf-signal-card .ab-icon-item-title {
	font-size: 1.1em;
	margin: 0;
}

.ab-perf-signal-card .ab-icon-item-body {
	margin: 0;
}

.ab-icon-col-heading {
	font-family: 'Manrope', sans-serif;
	font-size: 1.05em;
	font-weight: 600;
	color: var(--wpex-palette-9248-color);
	margin: 0 0 24px 0;
}

.ab-icon-list {
	display: flex;
	flex-direction: column;
	gap: 28px;
}

.ab-icon-item {
	display: flex;
	align-items: flex-start;
	gap: 16px;
}

.ab-icon-item-icon {
	width: 56px;
	height: 56px;
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.ab-icon-item-icon--pink {
	background: #fce8ef;
}

.ab-icon-item-icon--sienna {
	background: #fce8e3;
}

.ab-icon-item-icon--seafoam {
	background: #e2f4f2;
}

.ab-icon-item-icon--lapis {
	background: #deeaf8;
}

.ab-icon-item-icon--navy {
	background: #d5d8e8;
}

.ab-icon-item-icon img {
	width: 28px;
	height: 28px;
	object-fit: contain;
}

.ab-icon-item-icon .material-icons {
	font-size: 26px;
}

.ab-icon-item-icon--pink .material-icons {
	color: #C94F7C;
}

.ab-icon-item-icon--sienna .material-icons {
	color: #EB744E;
}

.ab-icon-item-icon--seafoam .material-icons {
	color: var(--wpex-palette-8974-color);
}

.ab-icon-item-icon--lapis .material-icons {
	color: var(--wpex-palette-8973-color);
}

.ab-icon-item-icon--navy .material-icons {
	color: var(--wpex-palette-9248-color);
}

.ab-icon-item-content {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.ab-icon-item-title {
	font-family: 'Manrope', sans-serif;
	font-size: 1em;
	font-weight: 700;
	color: var(--wpex-palette-9248-color);
	margin: 0;
}

.ab-icon-item-body {
	font-family: 'Manrope', sans-serif;
	font-size: 0.9em;
	line-height: 1.6;
	color: var(--wpex-palette-9248-color);
	margin: 0;
}

.ab-module-note {
	background: #F5F3F0;
	border-radius: 12px;
	padding: 24px 32px;
	margin-top: 48px;
}

.ab-module-note p {
	font-family: 'Manrope', sans-serif;
	font-size: 0.95em;
	line-height: 1.7;
	color: var(--wpex-palette-9248-color);
	margin: 0;
}

@media (max-width: 767px) {
	.ab-icon-cols {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.ab-module-note {
		padding: 20px;
		margin-top: 32px;
	}
}


/* ══════════════════════════════════════════════════════════
   35. CONTACT — type-selector cards
   ══════════════════════════════════════════════════════════ */

.ab-connect-cards {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
	margin-bottom: 32px;
}

.ab-connect-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 6px;
	padding: 20px 16px;
	background: white;
	border: 1.5px solid rgba(20, 90, 159, 0.15);
	border-radius: 12px;
	cursor: pointer;
	transition: border-color 0.2s, box-shadow 0.2s;
	font-family: inherit;
}

.ab-connect-card:hover {
	border-color: var(--wpex-palette-8973-color);
	box-shadow: 0 4px 16px rgba(20, 90, 159, 0.1);
}

.ab-connect-card--active {
	border-color: var(--wpex-palette-8973-color);
	box-shadow: 0 0 0 3px rgba(20, 90, 159, 0.1);
	background: #EEF5FB;
}

.ab-connect-card-icon {
	font-size: 1.5em !important;
	color: var(--wpex-palette-8973-color);
}

.ab-connect-card-label {
	font-size: 0.95em;
	font-weight: 700;
	color: var(--wpex-palette-9248-color);
}

.ab-connect-card-sub {
	color: #888;
}

.ab-connect-context {
	border-left: 3px solid var(--wpex-palette-8973-color);
	background: #EEF5FB;
	border-radius: 0 8px 8px 0;
	padding: 20px 24px;
	margin-bottom: 32px;
}

.ab-connect-context-text {
	margin: 0;
}

.ab-connect-forms {
	border: 1.5px dashed rgba(20, 90, 159, 0.2);
	border-radius: 12px;
	padding: 40px;
	min-height: 200px;
}

@media (max-width: 767px) {
	.ab-connect-cards {
		grid-template-columns: 1fr 1fr;
	}

	.ab-connect-forms {
		padding: 24px 16px;
	}
}

@media (max-width: 480px) {
	.ab-connect-cards {
		grid-template-columns: 1fr;
	}
}


/* ══════════════════════════════════════════════════════════
   36. CONTACT — FAQ accordion
   ══════════════════════════════════════════════════════════ */

.ab-faq-list {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.ab-faq-item {
	border-bottom: 1px solid rgba(20, 90, 159, 0.12);
}

.ab-faq-item:first-child {
	border-top: 1px solid rgba(20, 90, 159, 0.12);
}

.ab-faq-question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 24px 0;
	font-weight: 700;
	color: var(--wpex-palette-9248-color);
	cursor: pointer;
	list-style: none;
	margin: 0;
}

.ab-faq-question::-webkit-details-marker {
	display: none;
}

.ab-faq-question::after {
	content: '›';
	font-size: 1.4em;
	font-weight: 400;
	color: var(--wpex-palette-8973-color);
	transform: rotate(90deg);
	transition: transform 0.2s;
	flex-shrink: 0;
	margin-left: 16px;
}

.ab-faq-item[open] .ab-faq-question::after {
	transform: rotate(270deg);
}

.ab-faq-answer {
	padding: 0 0 24px 0;
	margin: 0;
}


/* ══════════════════════════════════════════════════════════
   37. BLOG — sticky sidebar
   Add class ab-sticky-sidebar to the WPBakery column.

   position:sticky fails silently when ANY ancestor has
   overflow:hidden/auto/scroll. Three common culprits in WP:
     1. body — Total theme sets overflow-x:hidden to prevent
        horizontal scroll. overflow-x:clip does the same thing
        without creating a scroll container, fixing sticky.
     2. .vc_row — WPBakery adds overflow:hidden.
     3. .vc_column-inner — WPBakery adds overflow:hidden.

   If CSS sticky still doesn't work after this, use the JS
   fallback in blocks/blog/blog-sticky-sidebar-fallback.html
   as a Raw HTML block on the page.
   ══════════════════════════════════════════════════════════ */

body {
	overflow-x: clip !important;
}

.vc_row:has(.ab-sticky-sidebar),
.ab-sticky-row,
.ab-sticky-sidebar,
.ab-sticky-sidebar .vc_column-inner {
	overflow: visible !important;
}

.ab-sticky-sidebar .wpb_wrapper {
	position: sticky;
	top: 2rem;
}


/* ══════════════════════════════════════════════════════════
   38. BLOG — case study process nav
   Mobile: horizontal scroll, label hidden below 600px.
   ══════════════════════════════════════════════════════════ */

.ab-cs-nav {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 2px 0 !important;
	background: var(--wpex-palette-9681-color);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.ab-cs-nav::-webkit-scrollbar {
	display: none;
}

.ab-cs-nav-label {
	font-family: 'Manrope', sans-serif;
	font-size: 0.9em;
	font-weight: 700;
	color: var(--wpex-palette-9248-color);
	white-space: nowrap;
	flex-shrink: 0;
	padding-right: 12px;
	!important;
	margin: 0 !important;
	border-right: 1px solid rgba(0, 0, 0, 0.12);
}

.ab-cs-nav-steps {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-shrink: 0;
}

.ab-cs-nav-step {
	font-family: 'Manrope', sans-serif;
	font-size: 0.9em;
	font-weight: 500;
	color: var(--wpex-palette-9248-color);
	white-space: nowrap;
}

.ab-cs-nav-step--active {
	font-weight: 700;
	color: var(--wpex-palette-8973-color);
}

.ab-cs-nav-arrow {
	font-size: 0.85em;
	color: rgba(30, 36, 69, 0.3);
	flex-shrink: 0;
}

@media (max-width: 600px) {
	.ab-cs-nav {
		gap: 16px;
		padding: 6px 0;
	}

	.ab-cs-nav-label {
		display: none;
	}
}

/* ══════════════════════════════════════════════════════════
   39. BLOG — case study article body
   ══════════════════════════════════════════════════════════ */

.ab-cs-article {
	display: flex;
	flex-direction: column;
	gap: 0;
	padding: 0 0 40px 0;
	margin-top: 0 !important;
}

.ab-cs-section {
	padding: 44px 0;
}

.ab-cs-section--first {
	padding-top: 0 !important;
}

.ab-cs-divider {
	border: none;
	border-top: 1px solid rgba(30, 36, 69, 0.1);
	margin: 0;
}

.ab-cs-eyebrow {
	display: block;
	font-family: 'Manrope', sans-serif;
	font-size: 0.72em;
	font-weight: 700;
	color: var(--wpex-palette-8974-color);
	text-transform: uppercase;
	letter-spacing: 1.5px;
	margin-bottom: 8px;
}

.ab-cs-headline {
	font-family: 'Poppins', sans-serif;
	font-size: 1.5em;
	font-weight: 700;
	color: var(--wpex-palette-9248-color);
	line-height: 1.25;
	margin: 0 0 24px 0;
}

.ab-cs-body {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.ab-cs-quote {
	border-left: 3px solid var(--wpex-palette-8973-color);
	padding: 2px 0 2px 20px;
	margin: 28px 0;
	background: none !important;
}

.ab-cs-quote-text {
	font-family: 'Poppins', sans-serif;
	font-size: 1.05em;
	font-style: italic;
	color: var(--wpex-palette-9248-color);
	line-height: 1.65;
	margin: 0 0 10px 0 !important;
}

.ab-cs-cite {
	display: block;
	font-family: 'Manrope', sans-serif;
	font-size: 0.75em;
	font-style: normal;
	font-weight: 700;
	color: rgba(30, 36, 69, 0.45);
	letter-spacing: 0.5px;
	text-transform: uppercase;
}

.ab-cs-team-callout {
	border-left: 4px solid #a25d2a;
	background: rgba(162, 93, 42, 0.08);
	border-radius: 8px;
	padding: 14px 18px;
	margin: 20px 0;
	font-family: 'Manrope', sans-serif;
	font-size: 0.92em;
	line-height: 1.6;
	color: rgba(30, 36, 69, 0.8);
}

.ab-cs-team-callout strong {
	color: #a25d2a;
}

.ab-cs-placeholder {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	background: var(--wpex-palette-9681-color);
	border: 1.5px dashed rgba(20, 90, 159, 0.2);
	border-radius: 8px;
	padding: 16px 20px;
	font-family: 'Manrope', sans-serif;
	font-size: 0.875em;
	font-style: italic;
	color: rgba(30, 36, 69, 0.55);
	margin-top: 20px;
}

.ab-cs-placeholder .material-icons {
	font-size: 1em;
	color: rgba(20, 90, 159, 0.3);
	flex-shrink: 0;
	margin-top: 2px;
}

/* top 3 — card grid */
.ab-cs-stats-cards {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 14px;
	margin: 28px 0 0;
}

.ab-cs-stat-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 8px;
	padding: 28px 16px 24px;
	background: var(--wpex-palette-9681-color);
	border-radius: 12px;
}

.ab-cs-stat-card-num {
	font-family: 'Poppins', sans-serif;
	font-size: 2.6em;
	font-weight: 700;
	line-height: 1;
	color: var(--wpex-palette-8973-color);
}

.ab-cs-stat-card-label {
	font-family: 'Manrope', sans-serif;
	font-size: 0.82em;
	line-height: 1.4;
	color: rgba(30, 36, 69, 0.6);
}

/* bottom 2 — label / number rows */
.ab-cs-stats-rows {
	margin: 16px 0 28px;
	border-top: 1px solid rgba(30, 36, 69, 0.1);
}

.ab-cs-stat-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 16px 0;
	border-bottom: 1px solid rgba(30, 36, 69, 0.1);
}

.ab-cs-stat-row-label {
	font-family: 'Manrope', sans-serif;
	font-size: 1em;
	color: var(--wpex-palette-9248-color);
}

.ab-cs-stat-row-num {
	font-family: 'Poppins', sans-serif;
	font-size: 1.25em;
	font-weight: 700;
	color: var(--wpex-palette-8973-color);
	white-space: nowrap;
	flex-shrink: 0;
}

@media (max-width: 600px) {
	.ab-cs-stats-cards {
		grid-template-columns: 1fr;
	}

	.ab-cs-stat-card-num {
		font-size: 2em;
	}
}

.ab-cs-video {
	margin: 28px 0 0;
}

.ab-cs-video-embed {
	position: relative;
	padding-bottom: 56.25%;
	height: 0;
	overflow: hidden;
	border-radius: 8px;
}

.ab-cs-video-embed iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: 0;
}


/* ══════════════════════════════════════════════════════════
   40. INTEGRATIONS PAGE — type nav
   ══════════════════════════════════════════════════════════ */

.ab-intg-nav {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 2px 0 !important;
	background: var(--wpex-palette-9681-color);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.ab-intg-nav::-webkit-scrollbar {
	display: none;
}

.ab-intg-nav-label {
	font-family: 'Manrope', sans-serif;
	font-size: 0.9em;
	font-weight: 700;
	color: var(--wpex-palette-9248-color);
	white-space: nowrap;
	flex-shrink: 0;
	padding-right: 12px;
	margin: 0 !important;
	border-right: 1px solid rgba(0, 0, 0, 0.12);
}

.ab-intg-nav-items {
	display: flex;
	align-items: center;
	gap: 4px;
	flex-shrink: 0;
}

.ab-intg-nav-item {
	font-family: 'Manrope', sans-serif;
	font-size: 0.875em;
	font-weight: 500;
	color: var(--wpex-palette-9248-color);
	white-space: nowrap;
	text-decoration: none;
	padding: 6px 14px;
	border-radius: 100px;
	transition: background 0.15s, color 0.15s;
}

.ab-intg-nav-item:hover {
	background: rgba(0, 0, 0, 0.06);
	color: var(--wpex-palette-9248-color);
	text-decoration: none;
}

.ab-intg-nav-item--active {
	font-weight: 700;
	color: var(--wpex-palette-8973-color);
	background: rgba(20, 90, 159, 0.08);
}

.ab-intg-nav-item--active:hover {
	background: rgba(20, 90, 159, 0.12);
	color: var(--wpex-palette-8973-color);
}

@media (max-width: 600px) {
	.ab-intg-nav {
		gap: 12px;
		padding: 4px 0 !important;
	}

	.ab-intg-nav-label {
		display: none;
	}
}

/* ══════════════════════════════════════════════════════════
   41. INTEGRATIONS PAGE — sections & components
   ══════════════════════════════════════════════════════════ */

/* Intro */
.ab-intg-intro {
	text-align: center;
	padding: 56px 0 8px;
}

.ab-intg-intro .text-seafoam,
.ab-intg-intro .text-sienna {
	font-weight: 700;
}

/* Section wrapper — adds divider between split rows */
.ab-intg-section {
	padding: 80px 0;
	border-bottom: 1px solid rgba(30, 36, 69, 0.08);
}

.ab-intg-section:last-of-type {
	border-bottom: none;
}

/* Eyebrow + badge row (MCP) */
.ab-intg-eyebrow-row {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}

/* Meta row */
.ab-intg-meta {
	display: flex;
	gap: 32px;
	flex-wrap: wrap;
	margin-top: 4px;
}

.ab-intg-meta-item {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.ab-intg-meta-label {
	font-family: 'Manrope', sans-serif;
	font-size: 0.68em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.2px;
	color: rgba(30, 36, 69, 0.45);
}

.ab-intg-meta-value {
	font-family: 'Manrope', sans-serif;
	font-size: 0.875em;
	font-weight: 600;
	color: var(--wpex-palette-9248-color);
}

/* Dev effort / status badges */
.ab-intg-badge {
	display: inline-flex !important;
	align-items: center;
	font-family: 'Manrope', sans-serif;
	font-size: 0.72em;
	font-weight: 700;
	line-height: 1 !important;
	padding: 4px 10px !important;
	margin: 0 !important;
	border-radius: 100px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	white-space: nowrap;
	min-height: 0 !important;
	box-sizing: border-box;
}

.ab-intg-badge--none {
	background: #e4f4ec;
	color: #1a7a40;
}

.ab-intg-badge--light {
	background: #e6eef9;
	color: #2a5cb8;
}

.ab-intg-badge--eng {
	background: #fff0e0;
	color: #b85c00;
}

.ab-intg-badge--tbd {
	background: #f0f0f0;
	color: #888888;
}

.ab-intg-badge--dev {
	background: #fce8ee;
	color: #b02050;
}

/* Arrow text link */
.ab-link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-family: 'Manrope', sans-serif;
	font-size: 0.9em;
	font-weight: 700;
	color: var(--wpex-palette-8973-color);
	text-decoration: none;
	margin-top: 4px;
}

.ab-link-arrow:hover {
	text-decoration: underline;
	color: var(--wpex-palette-8973-color);
}

/* Illustration placeholder */
.ab-intg-visual {
	background: var(--wpex-palette-9681-color);
	border: 1.5px dashed rgba(20, 90, 159, 0.15);
	border-radius: 12px;
	min-height: 260px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'Manrope', sans-serif;
	font-size: 0.82em;
	color: #cccccc;
	font-style: italic;
	width: 100%;
	text-align: center;
	padding: 24px;
	box-sizing: border-box;
}

/* Comparison table section */
.ab-intg-compare {
	display: block;
}

.ab-intg-table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.ab-intg-table {
	width: 100%;
	min-width: 580px;
	border-collapse: collapse;
	font-family: 'Manrope', sans-serif;
	font-size: 0.9em;
	line-height: 1.3;
}

.ab-intg-table td {
	white-space: nowrap;
}

.ab-intg-table-head td {
	font-size: 0.9em !important;
	font-weight: 700 !important;
	text-transform: uppercase;
	letter-spacing: 1.2px;
	color: #ffffff !important;
	background: var(--wpex-palette-8973-color) !important;
	padding: 14px 12px !important;
}

/* Solid chip variants for dark table backgrounds */
.ab-intg-badge--none-s {
	background: #2a7a48;
	color: #ffffff;
}

.ab-intg-badge--light-s {
	background: #3f5fa0;
	color: #ffffff;
}

.ab-intg-badge--eng-s {
	background: #b86828;
	color: #ffffff;
}

.ab-intg-badge--tbd-s {
	background: #7a5238;
	color: #ffffff;
}

.ab-intg-table tbody tr {
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.ab-intg-table tbody tr:last-child {
	border-bottom: none;
}

.ab-intg-table td {
	padding: 16px 20px 16px 0;
	color: rgba(255, 255, 255, 0.8);
	vertical-align: middle;
}

.ab-intg-table td:last-child {
	padding-right: 0;
}

.ab-intg-table-name {
	font-weight: 700;
	color: #ffffff !important;
}

@media (max-width: 767px) {

	.ab-intg-section {
		padding: 56px 0;
	}

	.ab-intg-meta {
		gap: 20px;
	}
}

/* Lightweight integration cards (3-up) */
.ab-intg-lw-cards.ab-grid-3 {
	gap: 20px;
}

/* Built to Scale — stacked rows, 1/6 square thumb + 5/6 content */
.ab-scale-row {
	display: flex;
	gap: 24px;
	align-items: flex-start;
	margin-bottom: 40px;
}

.ab-scale-row:last-child {
	margin-bottom: 0;
}

.ab-scale-thumb {
	width: 16.666%;
	flex-shrink: 0;
	aspect-ratio: 1/1;
	object-fit: cover;
	border-radius: 8px;
}

.ab-scale-body {
	flex: 1;
}

.ab-h3-row {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	margin-bottom: 12px;
}

.ab-h3-row h3 {
	margin: 0;
}

@media (max-width: 767px) {
	.ab-scale-row {
		flex-direction: column;
	}

	.ab-scale-thumb {
		width: 100%;
		aspect-ratio: 16/9;
	}
}

.ab-intg-lw-card {
	background: white;
	border: 1px solid rgba(20, 90, 159, 0.1);
	border-radius: 12px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	box-shadow: 0 2px 12px rgba(20, 90, 159, 0.06);
}

.ab-intg-lw-card img {
	width: calc(100% - 24px);
	height: auto;
	display: block;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 8px;
	margin: 12px 12px 0;
}

.ab-intg-lw-card-body {
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 16px;
	flex: 1;
}

.ab-intg-lw-card-body h3 {
	margin: 0;
}

.ab-intg-lw-card-body p {
	margin: 0;
	color: #555555;
}

.ab-intg-lw-card-body .ab-intg-meta {
	gap: 16px;
}

.ab-intg-badge--linen {
	background: var(--wpex-palette-9681-color);
	color: var(--wpex-palette-9248-color);
}

/* API registration form fields */
.ab-api-form {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.ab-api-form-row {
	display: flex;
	gap: 12px;
}

.ab-api-input {
	width: 100%;
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 50px;
	padding: 10px 16px;
	font-size: 0.875em;
	color: white;
	outline: none;
	box-sizing: border-box;
	transition: border-color 0.2s, background 0.2s;
}

.ab-api-input::placeholder {
	color: rgba(255, 255, 255, 0.5);
}

.ab-api-input:focus {
	border-color: rgba(255, 255, 255, 0.5);
	background: rgba(255, 255, 255, 0.18);
}

/* API registration form actions */
.ab-api-form-actions {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	align-items: center;
	margin-top: 8px;
}

/* API code block */
.ab-api-code-block {
	background: #1a1f3a;
	border-radius: 12px;
	padding: 28px 32px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}

.ab-api-code-dots {
	display: flex;
	gap: 6px;
	margin-bottom: 20px;
}

.ab-api-code-dots span {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.2);
	display: inline-block;
}

.ab-api-code {
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	font-family: 'Courier New', Courier, monospace;
	font-size: 0.9em;
	line-height: 1.75;
	color: rgba(255, 255, 255, 0.85);
	white-space: pre;
}

.ab-code-method {
	color: #35AFA1;
	font-weight: 700;
}

.ab-code-key {
	color: #f0c070;
}

.ab-code-string {
	color: #EB744E;
}

@media (max-width: 767px) {
	.ab-api-form-actions {
		flex-direction: column;
		align-items: flex-start;
	}

	.ab-api-form-row {
		flex-direction: column;
	}

	.ab-api-code-block {
		padding: 20px;
	}

	.ab-api-code {
		font-size: 0.8em;
	}

	.ab-intg-table {
		font-size: 0.8em;
	}

	.ab-intg-table td {
		padding: 10px 8px !important;
	}

	.ab-intg-table-head td {
		padding: 10px 8px !important;
	}
}


/* ══════════════════════════════════════════════════════════
   42. CONTACT PAGE
   ══════════════════════════════════════════════════════════ */

/* Font Awesome loaded via <link> in contact-block-02-forms.html */

/* Utility */
.ab-hidden {
	display: none !important;
}

/* Section label */
.ab-ct-section-label {
	font-size: 0.68em;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--wpex-palette-8973-color);
	margin-bottom: 20px;
}

.ab-ct-segment {
	margin-bottom: 48px;
}

.ab-ct-segment:last-child {
	margin-bottom: 0;
}

/* Connection type cards */
.ab-connect-cards.ab-grid-4 {
	gap: 12px;
}

.ab-connect-card {
	border: 1.5px solid rgba(30, 36, 69, 0.12);
	border-radius: 12px;
	padding: 24px 20px 36px;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 6px;
	background: white;
	transition: border-color 0.2s, background 0.2s;
	user-select: none;
	font-family: inherit;
	width: 100%;
}

.ab-connect-card:hover {
	border-color: var(--wpex-palette-8973-color);
}

.ab-connect-card--active,
.ab-connect-card--active:hover {
	border: 2px solid var(--wpex-palette-8974-color);
	background: color-mix(in srgb, var(--wpex-palette-8974-color) 10%, transparent);
}

.ab-connect-card-icon {
	font-size: 2em;
	color: var(--wpex-palette-8973-color);
	line-height: 1;
	margin-bottom: 8px;
}

.ab-connect-card--active .ab-connect-card-icon {
	color: var(--wpex-palette-8974-color);
}

.ab-connect-card-label {
	color: var(--wpex-palette-9248-color);
	margin: 0;
}

.ab-connect-card-sub {
	color: rgba(30, 36, 69, 0.5);
	line-height: 1.3;
}

/* Form context copy — form sits centered at half the available
   width on desktop; widens on smaller screens so fields stay usable */
.ab-ct-form-wrap {
	width: 50%;
	margin-left: auto;
	margin-right: auto;
}

@media (max-width: 1024px) {
	.ab-ct-form-wrap {
		width: 75%;
	}
}

@media (max-width: 640px) {
	.ab-ct-form-wrap {
		width: 100%;
	}
}

#ab-connect-heading {
	margin-bottom: 8px;
}

#ab-connect-blurb {
	margin-bottom: 28px;
}

/* Contact forms */
.ab-ct-form {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.ab-ct-form-row {
	display: flex;
	gap: 12px;
}

.ab-ct-input,
.ab-ct-textarea,
.ab-ct-select {
	width: 100%;
	font-family: inherit;
	font-size: inherit;
	color: var(--wpex-palette-9248-color);
	background: #ffffff;
	border: 1px solid rgba(20, 90, 159, 0.18);
	outline: none;
	transition: border-color 0.2s;
}

.ab-ct-input,
.ab-ct-select {
	border-radius: 50px;
	padding: 10px 20px;
	height: 42px;
}

.ab-ct-textarea {
	border-radius: 12px;
	padding: 12px 20px;
	min-height: 120px;
	resize: vertical;
}

.ab-ct-select {
	appearance: none;
	cursor: pointer;
}

.ab-ct-input:focus,
.ab-ct-textarea:focus,
.ab-ct-select:focus {
	border-color: var(--wpex-palette-8973-color);
}

.ab-ct-form-actions {
	margin-top: 8px;
}

/* Solid Lapis button */
.ab-btn-solid-lapis {
	background: var(--wpex-palette-8973-color);
	color: #ffffff !important;
	border: none;
	border-radius: 50px;
	padding: 12px 28px;
	font-weight: 600;
	cursor: pointer;
	font-family: inherit;
	transition: background 0.2s;
	display: inline-block;
	text-decoration: none;
}

.ab-btn-solid-lapis:hover {
	background: var(--wpex-palette-9248-color);
	color: #ffffff !important;
	text-decoration: none;
}

/* HubSpot embedded forms — reskins HubSpot's own generic classes
   (hs-input, hs-button, hs-form-field, etc.) to match the ab-ct-*
   look above. Scope: wrap the embed's container div in class
   "ab-hs-form". HubSpot injects its own stylesheet dynamically
   after page load, so every rule here needs !important to win —
   without it, HubSpot's CSS (loaded later) takes precedence
   regardless of selector specificity. */
.ab-hs-form {
	text-align: left !important;
}

.ab-hs-form form.hs-form {
	font-family: 'Manrope', sans-serif !important;
	font-size: 16px !important;
	max-width: 100% !important;
	text-align: left !important;
}

.ab-hs-form .hs-form-field,
.ab-hs-form .hs-form-field label,
.ab-hs-form .legal-consent-container,
.ab-hs-form .hs-richtext,
.ab-hs-form .hs_submit .actions {
	text-align: left !important;
}

.ab-hs-form fieldset {
	max-width: 100% !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 12px !important;
}

.ab-hs-form fieldset.form-columns-2 {
	flex-direction: row !important;
	gap: 12px !important;
}

.ab-hs-form fieldset.form-columns-2>.hs-form-field {
	flex: 1 !important;
	min-width: 0 !important;
}

.ab-hs-form .hs-form-field {
	margin-bottom: 12px !important;
}

.ab-hs-form .hs-form-field label {
	display: block !important;
	font-family: 'Manrope', sans-serif !important;
	font-size: 0.95rem !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
	color: var(--wpex-palette-9248-color) !important;
	margin-bottom: 6px !important;
}

.ab-hs-form .hs-form-field label span {
	display: inline !important;
	font-family: inherit !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	color: inherit !important;
}

.ab-hs-form .hs-form-required {
	color: var(--wpex-palette-8973-color) !important;
}

.ab-hs-form input.hs-input:not([type="checkbox"]):not([type="radio"]),
.ab-hs-form select.hs-input {
	width: 100% !important;
	box-sizing: border-box !important;
	font-family: 'Manrope', sans-serif !important;
	font-size: 0.95rem !important;
	color: var(--wpex-palette-9248-color) !important;
	background: var(--wpex-palette-9681-color) !important;
	border: 1px solid rgba(20, 90, 159, 0.18) !important;
	border-radius: 50px !important;
	padding: 10px 20px !important;
	height: 42px !important;
	outline: none !important;
	box-shadow: none !important;
	transition: border-color 0.2s !important;
}

.ab-hs-form textarea.hs-input {
	width: 100% !important;
	box-sizing: border-box !important;
	font-family: 'Manrope', sans-serif !important;
	font-size: 0.95rem !important;
	color: var(--wpex-palette-9248-color) !important;
	background: var(--wpex-palette-9681-color) !important;
	border: 1px solid rgba(20, 90, 159, 0.18) !important;
	border-radius: 12px !important;
	padding: 12px 20px !important;
	min-height: 120px !important;
	resize: vertical !important;
	outline: none !important;
	box-shadow: none !important;
	transition: border-color 0.2s !important;
}

.ab-hs-form input.hs-input:focus,
.ab-hs-form textarea.hs-input:focus,
.ab-hs-form select.hs-input:focus {
	border-color: var(--wpex-palette-8973-color) !important;
}

.ab-hs-form .hs-form-booleancheckbox,
.ab-hs-form .hs-form-checkbox {
	display: flex !important;
	align-items: flex-start !important;
	gap: 8px !important;
}

.ab-hs-form .hs-form-booleancheckbox-display,
.ab-hs-form .hs-form-checkbox label {
	display: flex !important;
	align-items: flex-start !important;
	gap: 8px !important;
	font-family: 'Manrope', sans-serif !important;
	font-size: 0.9rem !important;
	font-weight: 400 !important;
	color: var(--wpex-palette-9248-color) !important;
}

.ab-hs-form .hs-form-booleancheckbox-display input,
.ab-hs-form .hs-form-checkbox input {
	margin: 3px 0 0 !important;
}

.ab-hs-form legend,
.ab-hs-form .hs-form-field.hs_communication_preferences legend {
	font-family: 'Manrope', sans-serif !important;
	font-size: 0.7rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase !important;
	color: rgba(30, 36, 69, 0.55) !important;
	margin-bottom: 8px !important;
}

.ab-hs-form .legal-consent-container,
.ab-hs-form .hs-richtext {
	font-family: 'Manrope', sans-serif !important;
	font-size: 0.8rem !important;
	line-height: 1.5 !important;
	color: rgba(30, 36, 69, 0.65) !important;
}

.ab-hs-form .legal-consent-container p,
.ab-hs-form .hs-richtext p {
	font-size: inherit !important;
	color: inherit !important;
	line-height: inherit !important;
}

.ab-hs-form .legal-consent-container a,
.ab-hs-form .hs-richtext a {
	color: var(--wpex-palette-8973-color) !important;
}

.ab-hs-form .hs_submit .actions {
	margin-top: 8px !important;
	display: flex !important;
}

.ab-hs-form input.hs-button,
.ab-hs-form .hs-button {
	background: var(--wpex-palette-8973-color) !important;
	color: #ffffff !important;
	border: none !important;
	border-radius: 50px !important;
	padding: 12px 28px !important;
	font-weight: 600 !important;
	font-family: 'Manrope', sans-serif !important;
	font-size: 1rem !important;
	cursor: pointer !important;
	transition: background 0.2s !important;
}

.ab-hs-form input.hs-button:hover,
.ab-hs-form .hs-button:hover {
	background: var(--wpex-palette-9248-color) !important;
}

.ab-hs-form ul.hs-error-msgs {
	list-style: none !important;
	margin: 4px 0 0 !important;
	padding: 0 !important;
}

.ab-hs-form .hs-error-msgs label {
	color: #c0392b !important;
	font-size: 0.8em !important;
	font-weight: 500 !important;
}

@media (max-width: 640px) {
	.ab-hs-form fieldset.form-columns-2 {
		flex-direction: column !important;
	}
}

/* Dark modifier — for forms on navy/lapis background rows (e.g. API Registration) */
.ab-hs-form--dark .hs-form-field label {
	color: #ffffff !important;
}

.ab-hs-form--dark input.hs-input:not([type="checkbox"]):not([type="radio"]),
.ab-hs-form--dark select.hs-input,
.ab-hs-form--dark textarea.hs-input {
	background: rgba(255, 255, 255, 0.12) !important;
	border-color: rgba(255, 255, 255, 0.2) !important;
	color: #ffffff !important;
}

.ab-hs-form--dark input.hs-input::placeholder,
.ab-hs-form--dark textarea.hs-input::placeholder {
	color: rgba(255, 255, 255, 0.5) !important;
}

.ab-hs-form--dark input.hs-input:focus,
.ab-hs-form--dark textarea.hs-input:focus,
.ab-hs-form--dark select.hs-input:focus {
	border-color: rgba(255, 255, 255, 0.5) !important;
	background: rgba(255, 255, 255, 0.18) !important;
}

.ab-hs-form--dark .hs-form-booleancheckbox-display,
.ab-hs-form--dark .hs-form-checkbox label,
.ab-hs-form--dark legend,
.ab-hs-form--dark .legal-consent-container,
.ab-hs-form--dark .hs-richtext {
	color: rgba(255, 255, 255, 0.75) !important;
}

.ab-hs-form--dark .legal-consent-container a,
.ab-hs-form--dark .hs-richtext a {
	color: #ffffff !important;
	text-decoration: underline;
}

.ab-hs-form--dark input.hs-button,
.ab-hs-form--dark .hs-button {
	background: #ffffff !important;
	color: var(--wpex-palette-9248-color) !important;
}

.ab-hs-form--dark input.hs-button:hover,
.ab-hs-form--dark .hs-button:hover {
	background: rgba(255, 255, 255, 0.85) !important;
}

.ab-hs-form--dark .hs-error-msgs label {
	color: #ffb4a8 !important;
}

/* Contact info + social card */
.ab-ct-info-card {
	background: var(--wpex-palette-9681-color);
	border-radius: 16px;
	padding: 32px 36px;
}

.ab-ct-info-cols {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
}

.ab-ct-info-col {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 0 36px;
}

.ab-ct-info-col:first-child {
	padding-left: 0;
}

.ab-ct-info-col:last-child {
	padding-right: 0;
}

.ab-ct-info-col+.ab-ct-info-col {
	border-left: 1px solid rgba(30, 36, 69, 0.12);
}

.ab-ct-info-icon-badge {
	width: 52px;
	height: 52px;
	border-radius: 10px;
	background: #ffffff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.25em;
	flex-shrink: 0;
	margin-bottom: 4px;
}

.ab-ct-info-icon-badge--navy {
	color: var(--wpex-palette-9248-color);
}

.ab-ct-info-icon-badge--seafoam {
	color: var(--wpex-palette-8974-color);
}

.ab-ct-info-icon-badge--sienna {
	color: #EB744E;
}

.ab-ct-info-label {
	display: block;
	font-size: 0.68em;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(30, 36, 69, 0.45);
}

.ab-ct-info-value {
	color: var(--wpex-palette-9248-color);
	font-weight: 500;
	line-height: 1.5;
	display: block;
}

.ab-ct-info-value a {
	color: var(--wpex-palette-8973-color);
	text-decoration: none;
}

/* Dividers */
.ab-ct-divider {
	border: none;
	border-top: 1px solid rgba(30, 36, 69, 0.1);
	margin: 0 0 48px;
}

.ab-ct-info-divider {
	border: none;
	border-top: 1px solid #dbdadc;
	margin: 28px 0;
}

/* Social row */
.ab-ct-social-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.ab-ct-social-label {
	color: rgba(30, 36, 69, 0.5);
}

.ab-ct-social-icons {
	display: flex;
	gap: 10px;
}

.ab-ct-social-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1.5px solid rgba(30, 36, 69, 0.2);
	color: var(--wpex-palette-9248-color);
	font-size: 1.1em;
	text-decoration: none;
	transition: border-color 0.2s, color 0.2s;
}

.ab-ct-social-btn:hover {
	border-color: var(--wpex-palette-8973-color);
	color: var(--wpex-palette-8973-color);
	text-decoration: none;
}

/* WPBakery accordion (vc_tta) */
.vc_tta-panel-heading {
	background-color: #f5f3f1 !important;
	margin-bottom: 6px;
}

/* FAQ accordion */
.ab-ct-faq-item {
	border-bottom: 1px solid rgba(30, 36, 69, 0.1);
}

.ab-ct-faq-item:first-child {
	border-top: 1px solid rgba(30, 36, 69, 0.1);
}

.ab-ct-faq-q {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 18px 0;
	cursor: pointer;
	font-weight: 600;
	color: var(--wpex-palette-9248-color);
	user-select: none;
	background: none;
	border: none;
	width: 100%;
	text-align: left;
	font-family: inherit;
}

.ab-ct-faq-chevron {
	font-size: 1.1em;
	color: rgba(30, 36, 69, 0.35);
	flex-shrink: 0;
	transition: transform 0.2s;
}

.ab-ct-faq-item.open .ab-ct-faq-chevron {
	transform: rotate(180deg);
}

.ab-ct-faq-a {
	display: none;
	padding-bottom: 20px;
	line-height: 1.75;
	color: rgba(30, 36, 69, 0.68);
}

.ab-ct-faq-item.open .ab-ct-faq-a {
	display: block;
}

@media (max-width: 767px) {
	.ab-ct-form-row {
		flex-direction: column;
	}

	.ab-ct-info-cols {
		grid-template-columns: 1fr;
	}

	.ab-ct-info-col {
		padding: 20px 0 0;
		border-left: none !important;
		border-top: 1px solid rgba(30, 36, 69, 0.12);
	}

	.ab-ct-info-col:first-child {
		padding-top: 0;
		border-top: none;
	}

	.ab-ct-social-row {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
	}
}


/* ══════════════════════════════════════════════════════════
   43. INSPO MODULES PAGE
   ══════════════════════════════════════════════════════════ */

/* Hero */
.ab-inspo-hero-copy h1 em {
	font-style: normal;
	color: var(--wpex-palette-8973-color);
}

/* Hero background — full-bleed wrapper for the animated
   constellation graphic. This hero never used the shared .ab-hero
   component, so it gets its own positioning context/breakout here
   instead of the .ab-hero:has(.ab-hero-copy--full) system. */
.ab-inspo-hero-bg {
	position: relative;
	overflow: hidden;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: 7% 0;
}

.ab-inspo-hero-bg .ab-inspo-hero-copy {
	position: relative;
	z-index: 1;
	max-width: 1200px;
	margin: 0 auto;
	padding-left: 5%;
	padding-right: 5%;
	box-sizing: border-box;
}

/* Modules hero graphic — loaded from the media library as a
   background-image instead of inline SVG, same approach as the
   other heroes. Its connector lines' endpoint drift, node
   pulse/drift, and traveling signal particles were all converted
   to CSS keyframes (per-line/per-node drift keyframes, a shared
   glowPulse for ambient dots, and offset-path + a shared
   moveAlong/fadeInOut pair for the traveling particles); the
   ambient dots' own <animateMotion> paths survive Safe SVG
   untouched, same as the other converted graphics. */
.ab-inspo-hero-bg .ab-hero-bg-graphic--full {
	background: url("/wp-content/uploads/2026/07/modules-hero-bg-graphic-v2.svg") center / cover no-repeat;
}

/* Kit strip */
.ab-kitstrip {
	margin-top: 44px;
	padding-top: 28px;
	border-top: 1px solid rgba(30, 36, 69, 0.1);
}

.ab-kitstrip-label {
	display: block;
	font-size: 0.68em;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(30, 36, 69, 0.45);
	margin-bottom: 14px;
}

.ab-kititems {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 0;
}

.ab-kititem {
	display: flex;
	align-items: center;
	gap: 9px;
	font-weight: 600;
	padding-right: 18px;
	margin-right: 18px;
	border-right: 1px solid rgba(30, 36, 69, 0.12);
}

.ab-kititem:last-child {
	border-right: none;
	padding-right: 0;
	margin-right: 0;
}

.ab-kititem-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--wpex-palette-8974-color);
	flex-shrink: 0;
}

/* App callout */
.ab-app-callout {
	background: color-mix(in srgb, var(--wpex-palette-8974-color) 10%, transparent);
	border-radius: 20px;
	padding: 28px 32px;
	display: flex;
	gap: 24px;
	align-items: center;
}

.ab-app-callout img {
	width: 64px;
	flex-shrink: 0;
}

/* Series grid */
.ab-series-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.ab-series-card {
	border: 1px solid rgba(30, 36, 69, 0.1);
	border-radius: 16px;
	padding: 30px 28px;
	position: relative;
	overflow: hidden;
	background: #fff;
	display: flex;
	flex-direction: column;
}

.ab-series-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 6px;
}

.ab-series-card--lapis::before {
	background: var(--wpex-palette-8973-color);
}

.ab-series-card--seafoam::before {
	background: var(--wpex-palette-8974-color);
}

.ab-series-card--sienna::before {
	background: #EB744E;
}

.ab-series-card--mauve::before {
	background: #ca4f7c;
}

.ab-series-card p {
	line-height: 1.6;
	margin-bottom: 12px;
}

.ab-series-includes {
	color: rgba(30, 36, 69, 0.5);
	margin-bottom: 16px;
}

.ab-series-price {
	font-family: 'Poppins', sans-serif;
	font-size: 1.75em;
	font-weight: 800;
	margin: 18px 0 16px;
	color: var(--wpex-palette-9248-color);
}

.ab-series-card .ab-btn-solid-lapis {
	margin-top: auto;
}

/* Modules head + legend */
.ab-modules-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: 32px;
	flex-wrap: wrap;
	gap: 12px;
}

.ab-modules-price-tag {
	font-family: 'Poppins', sans-serif;
	font-weight: 800;
	font-size: 1.75em;
	color: var(--wpex-palette-9248-color);
}

.ab-modules-legend {
	display: flex;
	gap: 22px;
	font-weight: 600;
	margin-bottom: 28px;
	flex-wrap: wrap;
}

.ab-modules-legend-item {
	display: flex;
	align-items: center;
	gap: 7px;
}

.ab-modules-legend-swatch {
	width: 10px;
	height: 10px;
	border-radius: 3px;
	flex-shrink: 0;
}

.ab-modules-legend-swatch--self {
	background: #ca4f7c;
}

.ab-modules-legend-swatch--others {
	background: var(--wpex-palette-8974-color);
}

/* Module cards */
.ab-module-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}

.ab-mod-card {
	border-radius: 14px;
	overflow: hidden;
	border: 1px solid rgba(30, 36, 69, 0.1);
	background: #fff;
	display: flex;
	flex-direction: column;
}

.ab-mod-thumb {
	aspect-ratio: 4/3;
	overflow: hidden;
}

.ab-mod-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ab-mod-body {
	padding: 18px 18px 20px;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.ab-mod-body h4 {
	margin-bottom: 8px;
}

.ab-mod-body p {
	flex: 1;
	margin-bottom: 12px;
}

.ab-mod-chip {
	display: inline-flex;
	align-items: center;
	font-weight: 700;
	font-size: 0.68em;
	letter-spacing: 0.08em;
	padding: 4px 12px;
	border-radius: 50px;
	margin-bottom: 10px;
	text-transform: uppercase;
	width: fit-content;
}

.ab-mod-chip--self {
	background: #fbe8ef;
	color: #ca4f7c;
}

.ab-mod-chip--others {
	background: color-mix(in srgb, var(--wpex-palette-8974-color) 10%, transparent);
	color: var(--wpex-palette-8974-color);
}

.ab-mod-meta {
	color: rgba(30, 36, 69, 0.45);
	margin-bottom: 14px;
	line-height: 1.7;
}

/* Full-width button modifier */
.ab-btn-full {
	display: block !important;
	width: 100%;
	text-align: center;
}

/* Campus CTA */
.ab-campus-cta {
	display: grid;
	grid-template-columns: 1.3fr 0.7fr;
	gap: 40px;
	align-items: center;
}

.ab-campus-cta h2 {
	color: #ffffff;
	margin-bottom: 16px;
}

.ab-campus-cta ul {
	margin: 0 0 22px;
	padding-left: 18px;
	line-height: 1.9;
	color: rgba(255, 255, 255, 0.75);
}

.ab-campus-cta-fees {
	font-family: 'Poppins', sans-serif;
	font-weight: 700;
	color: #ffffff;
	margin-bottom: 6px;
}

.ab-campus-cta-est {
	color: rgba(255, 255, 255, 0.55);
}

.ab-campus-cta-right {
	text-align: center;
}

@media (max-width: 1024px) {
	.ab-series-grid {
		grid-template-columns: 1fr 1fr;
	}

	.ab-module-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.ab-campus-cta {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 767px) {
	.ab-series-grid {
		grid-template-columns: 1fr;
	}

	.ab-module-grid {
		grid-template-columns: 1fr 1fr;
	}

	.ab-kititems {
		flex-direction: column;
	}

	.ab-kititem {
		border-right: none;
		padding-right: 0;
		margin-right: 0;
	}

	.ab-modules-head {
		flex-direction: column;
		align-items: flex-start;
	}

	.ab-campus-cta {
		padding: 32px 28px;
	}

	.ab-campus-cta-right {
		text-align: left;
	}
}


/* ══════════════════════════════════════════════════════════
   44. BOOK PAGE
   ══════════════════════════════════════════════════════════ */

/* Shared buttons */
.ab-btn-outline-white {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: fit-content;
	padding: 14px 28px;
	border-radius: 999px;
	font-weight: 700;
	font-size: 0.875em;
	background: transparent;
	color: #ffffff !important;
	border: 2px solid rgba(255, 255, 255, 0.4);
	text-decoration: none;
}

.ab-btn-outline-white:hover {
	border-color: #ffffff;
	background: rgba(255, 255, 255, 0.1);
	color: #ffffff !important;
}

/* Pull quote */
.ab-book-pullquote {
	text-align: center;
}

.ab-book-pullquote p {
	font-family: 'Poppins', sans-serif;
	font-size: 1.45em;
	font-weight: 500;
	font-style: italic;
	color: #ffffff;
	line-height: 1.45;
	margin-bottom: 0;
}

.ab-book-pullquote-attrib {
	color: rgba(255, 255, 255, 0.85);
	font-size: 0.9em;
}

.ab-book-pullquote-name {
	font-weight: 700;
	color: #ffffff;
}

/* Hero */
.ab-book-hero-wrap {
	padding: 56px 32px 80px;
}

.ab-book-hero-inner {
	max-width: 1180px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: 64px;
	align-items: center;
}

.ab-book-cover {
	display: flex;
	justify-content: center;
}

.ab-book-cover img {
	max-width: 340px;
	transform: rotate(-2deg);
}

.ab-book-hero-copy h1 {
	color: #ffffff;
	font-size: 2.6em;
	font-weight: 700;
	line-height: 1.05;
	margin-bottom: 12px;
}

.ab-book-subtitle {
	font-family: 'Poppins', sans-serif;
	color: rgba(255, 255, 255, 0.78);
	font-size: 1.1em;
	font-weight: 500;
	margin-bottom: 8px;
}

.ab-book-byline {
	color: rgba(255, 255, 255, 0.5);
	font-size: 0.875em;
	margin-bottom: 28px;
}

.ab-book-hero-actions {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	margin-bottom: 18px;
}

.ab-book-available {
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--wpex-palette-8974-color);
	font-weight: 700;
	font-size: 0.78em;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.ab-book-available::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--wpex-palette-8974-color);
	display: inline-block;
	flex-shrink: 0;
}

/* Framework (Navy row in WPBakery) */
.ab-book-framework {}

.ab-book-framework .ab-section-header--center {
	max-width: 100%;
}

.ab-book-framework .ab-section-header--center h2 {
	color: #ffffff;
}

.ab-book-framework .ab-section-header--center p {
	color: rgba(255, 255, 255, 0.65);
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
}

.ab-book-two-q {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
	margin-bottom: 48px;
}

.ab-book-q-card {
	background: rgba(255, 255, 255, .04);
	border: 1px solid rgba(255, 255, 255, .1);
	border-radius: 18px;
	padding: 32px;
}

.ab-book-qnum {
	color: #F09060;
	font-weight: 800;
	font-size: 0.75em;
	letter-spacing: .1em;
	text-transform: uppercase;
	margin-bottom: 14px;
}

.ab-book-q-card h3 {
	color: #ffffff;
	font-size: 1.2em;
	font-weight: 600;
	margin-bottom: 14px;
}

.ab-book-q-card p {
	color: rgba(255, 255, 255, .65);
	font-size: 0.9em;
	margin: 0;
}

.ab-book-theme-note {
	background: rgba(255, 255, 255, .04);
	border-left: 3px solid #EB744E;
	padding: 22px 28px;
	border-radius: 0 12px 12px 0;
	color: rgba(255, 255, 255, .72);
	font-size: 0.9em;
	margin-bottom: 56px;
}

.ab-book-fq {
	max-width: 760px;
	margin: 0 auto;
	text-align: center;
}

.ab-book-fq p {
	font-family: 'Poppins', sans-serif;
	font-size: 1.35em;
	font-weight: 500;
	line-height: 1.55;
	color: #ffffff;
	font-style: italic;
	margin-bottom: 20px;
}

.ab-book-fq-attrib {
	color: var(--wpex-palette-8974-color);
	font-weight: 700;
	font-size: 0.82em;
}

/* Quotes / Praise (White row) */
.ab-book-praise-features {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-bottom: 32px;
}

.ab-book-fcard {
	border-radius: 18px;
	padding: 28px 26px;
	border: 1px solid rgba(20, 90, 159, .08);
	display: flex;
	flex-direction: column;
}

.ab-book-fcard--lapis {
	background: color-mix(in srgb, var(--wpex-palette-8973-color) 8%, #ffffff);
}

.ab-book-fcard--seafoam {
	background: color-mix(in srgb, var(--wpex-palette-8974-color) 8%, #ffffff);
}

.ab-book-fcard--sienna {
	background: color-mix(in srgb, #EB744E 8%, #ffffff);
}

.ab-book-qm {
	font-family: 'Poppins', sans-serif;
	font-size: 2.4em;
	color: #EB744E;
	line-height: 1;
	margin-bottom: 4px;
	font-weight: 700;
}

.ab-book-fcard p {
	font-size: 0.875em;
	color: var(--wpex-palette-9248-color);
	flex: 1;
	margin-bottom: 16px;
}

.ab-book-fcard-attrib {
	border-top: 1px solid rgba(30, 36, 69, .12);
	padding-top: 12px;
	margin-top: auto;
}

.ab-book-fcard-name {
	font-weight: 700;
	font-size: 0.85em;
	display: block;
}

.ab-book-fcard-role {
	font-size: 0.75em;
	color: rgba(30, 36, 69, 0.55);
	margin-top: 3px;
	display: block;
}

.ab-book-praise-list {
	column-count: 2;
	column-gap: 56px;
}

.ab-book-praise-entry {
	break-inside: avoid;
	padding: 22px 0;
	border-bottom: 1px solid rgba(30, 36, 69, .1);
}

.ab-book-praise-entry:first-child {
	padding-top: 0;
}

.ab-book-praise-entry p {
	font-size: 0.875em;
	color: var(--wpex-palette-9248-color);
	margin: 0 0 8px;
	line-height: 1.55;
}

.ab-book-praise-name {
	font-weight: 700;
	font-size: 0.78em;
	color: var(--wpex-palette-9248-color);
}

.ab-book-praise-name::after {
	content: " \2014 ";
	color: rgba(30, 36, 69, 0.4);
	font-weight: 400;
}

.ab-book-praise-role {
	font-size: 0.78em;
	color: rgba(30, 36, 69, 0.55);
}

/* Author (White row) */
.ab-book-author-grid {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 56px;
	align-items: start;
}

.ab-book-author-photo img {
	border-radius: 16px;
	box-shadow: 0 20px 40px -16px rgba(30, 36, 69, .25);
	width: 100%;
}

.ab-book-author-name {
	margin-top: 20px;
}

.ab-book-author-copy p {
	color: rgba(30, 36, 69, 0.7);
	font-size: 0.95em;
	margin-bottom: 16px;
}

.ab-book-research {
	margin-top: 24px;
}

.ab-book-research h4 {
	font-weight: 700;
	font-size: 0.78em;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--wpex-palette-9248-color);
	margin-bottom: 16px;
}

.ab-book-research ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0;
}

.ab-book-research li {
	padding: 8px 14px;
	background: color-mix(in srgb, var(--wpex-palette-8973-color) 8%, #ffffff);
	border-radius: 8px;
	font-size: 1em;
	margin-top: 3px;
	margin-bottom: 3px;
	transition: transform 0.18s ease;
}

.ab-book-research li:hover {
	transform: scaleX(1.01);
}

.ab-book-research a {
	color: var(--wpex-palette-8973-color);
	font-weight: 400;
	text-decoration: none;
}

.ab-book-research a:hover {
	text-decoration: none;
}

/* Related articles (Linen row) */
.ab-book-related-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 22px;
}

.ab-book-related-card {
	background: #ffffff;
	border-radius: 16px;
	padding: 26px 24px;
	border: 1px solid rgba(30, 36, 69, .08);
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.ab-book-related-date {
	font-size: 0.72em;
	font-weight: 700;
	color: var(--wpex-palette-8974-color);
	text-transform: uppercase;
	letter-spacing: .06em;
}

.ab-book-related-card h4 {
	font-size: 1em;
	font-weight: 600;
	line-height: 1.35;
	margin: 0;
}

.ab-book-related-card p {
	font-size: 0.825em;
	color: rgba(30, 36, 69, 0.6);
	margin: 0;
}

/* CTA band */
.ab-book-cta {
	text-align: center;
}

.ab-book-cta h2 {
	font-size: 2em;
}

.ab-book-cta p {
	max-width: 520px;
	margin: 0 auto 32px;
}

.ab-book-cta-actions {
	display: flex;
	justify-content: center;
	gap: 16px;
	flex-wrap: wrap;
}

@media (max-width: 1024px) {
	.ab-book-hero-inner {
		grid-template-columns: 1fr;
		text-align: center;
	}

	.ab-book-cover {
		justify-content: center;
		margin-bottom: 24px;
		order: 2;
	}

	.ab-book-hero-copy {
		order: 1;
	}

	.ab-book-hero-actions {
		justify-content: center;
	}

	.ab-book-available {
		justify-content: center;
	}

	.ab-book-two-q {
		grid-template-columns: 1fr;
	}

	.ab-book-praise-features {
		grid-template-columns: 1fr;
	}

	.ab-book-praise-list {
		column-count: 1;
	}

	.ab-book-author-grid {
		grid-template-columns: 1fr;
	}

	.ab-book-author-photo {
		order: 2;
	}

	.ab-book-author-copy {
		order: 1;
	}

	.ab-book-related-grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 767px) {
	.ab-book-hero-wrap {
		padding: 40px 20px 56px;
	}

	.ab-book-hero-copy h1 {
		font-size: 2em;
	}

	.ab-book-related-grid {
		grid-template-columns: 1fr;
	}

	.ab-book-author-photo {
		max-width: 220px;
	}
}


/* ══════════════════════════════════════════════════════════
   45. ABOUT US PAGE
   ══════════════════════════════════════════════════════════ */

/* Origin story (Block 02) */
.ab-about-origin {
	display: grid;
	grid-template-columns: 1.3fr 1fr;
	gap: 32px;
	align-items: center;
}

/* Shared quote card */
.ab-about-quote-card {
	border-radius: 12px;
	padding: 20px 22px;
	background: #ffffff;
	border: 1px solid rgba(30, 36, 69, 0.1);
}

.ab-about-quote-card--sienna {
	border-left: 3px solid #EB744E;
}

.ab-about-quote-card--lapis {
	border-left: 3px solid var(--wpex-palette-8973-color);
}

.ab-about-quote-header {
	display: flex;
	gap: 10px;
	align-items: center;
	margin-bottom: 12px;
}

.ab-about-quote-photo {
	width: 40px;
	height: 48px;
	border-radius: 6px;
	flex-shrink: 0;
	overflow: hidden;
}

.ab-about-quote-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
	display: block;
}

.ab-about-quote-meta-name {
	font-weight: 600;
	font-size: 0.82em;
	color: var(--wpex-palette-9248-color);
}

.ab-about-quote-meta-role {
	font-size: 0.72em;
	color: rgba(30, 36, 69, 0.55);
	margin-top: 2px;
}

.ab-about-quote-text {
	font-family: 'Poppins', sans-serif;
	font-style: italic;
	font-size: 0.88em;
	line-height: 1.6;
	margin: 0;
}

.ab-about-quote-card--sienna .ab-about-quote-text {
	color: var(--wpex-palette-9248-color);
}

.ab-about-quote-card--lapis .ab-about-quote-text {
	color: var(--wpex-palette-9248-color);
}

/* Why Now body (Block 03) */
.ab-about-whynow-body {
	max-width: 67%;
	margin: 0 auto;
	text-align: center;
}

/* Principles (Block 04) */
.ab-about-principles {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
	margin-bottom: 28px;
}

.ab-about-principle {
	border-radius: 12px;
	padding: 22px;
	background: #ffffff;
	border: 1px solid rgba(30, 36, 69, 0.1);
}

.ab-about-principle--lapis {
	border-left: 4px solid var(--wpex-palette-8973-color);
}

.ab-about-principle--seafoam {
	border-left: 4px solid var(--wpex-palette-8974-color);
}

.ab-about-principle--sienna {
	border-left: 4px solid #EB744E;
}

.ab-about-principle h4 {
	font-size: 0.95em;
	font-weight: 700;
	margin-bottom: 8px;
	color: var(--wpex-palette-9248-color);
}

.ab-about-principle p {
	font-size: 0.875em;
	color: rgba(30, 36, 69, 0.65);
	line-height: 1.65;
	margin: 0;
}

.ab-about-bill-feature {
	text-align: center;
	padding: 72px 32px;
}

.ab-about-bill-feature-photo {
	width: 100px;
	height: 100px;
	border-radius: 50%;
	overflow: hidden;
	margin: 0 auto 28px;
	border: 3px solid rgba(255, 255, 255, 0.25);
}

.ab-about-bill-feature-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
	display: block;
}

.ab-about-bill-feature-quote {
	font-family: 'Poppins', sans-serif;
	font-size: 1.1em;
	font-weight: 500;
	font-style: normal;
	color: #ffffff;
	line-height: 1.55;
	max-width: 760px;
	margin: 0 auto 20px;
}

.ab-about-bill-feature-name {
	font-weight: 700;
	color: #ffffff;
	font-size: 0.9em;
}

.ab-about-bill-feature-role {
	color: rgba(255, 255, 255, 0.6);
	font-size: 0.82em;
	margin-top: 4px;
}

/* Leadership (Block 05) */
.ab-about-team-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 14px;
}

.ab-about-team-card {
	background: #ffffff;
	border-radius: 10px;
	overflow: hidden;
	text-align: center;
}

.ab-about-team-photo {
	aspect-ratio: 1 / 1;
	background: rgba(30, 36, 69, 0.07);
	overflow: hidden;
	border-radius: 50%;
	width: 80%;
	margin: 20px auto 0;
}

.ab-about-team-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
	display: block;
}

.ab-about-team-info {
	padding: 14px 12px;
}

.ab-about-team-name {
	font-weight: 600;
	font-size: 0.875em;
	color: var(--wpex-palette-9248-color);
	margin: 0;
}

.ab-about-team-title {
	font-size: 0.78em;
	color: rgba(30, 36, 69, 0.55);
	margin-top: 3px;
}

@media (max-width: 1024px) {
	.ab-about-origin {
		grid-template-columns: 1fr;
	}

	.ab-about-principles {
		grid-template-columns: 1fr;
	}

	.ab-about-team-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 767px) {
	.ab-about-team-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.ab-about-bill-feature-quote {
		font-size: 0.95em;
	}
}


/* ══════════════════════════════════════════════════════════
   46. RESEARCH PAGE
   ══════════════════════════════════════════════════════════ */

/* Hero (Block 01) — uses .ab-hero--research variant defined above in the hero section */

/* Workforce Listening Library (Block 02) — dark row */
.ab-research-library {
	padding: 0;
}

.ab-research-section-head {
	margin-bottom: 48px;
}

.ab-research-section-head h2 {
	font-size: 2em;
	font-weight: 700;
	letter-spacing: -0.01em;
	margin-bottom: 12px;
}

.ab-research-section-head p {
	font-size: 1em;
	line-height: 1.6;
}

.ab-research-section-eyebrow {
	font-size: 0.75em;
	font-weight: 700;
	letter-spacing: 0.14em;
	display: block;
	margin-bottom: 12px;
	color: var(--wpex-palette-8973-color);
}

.ab-research-section-eyebrow--light {
	color: var(--wpex-palette-8974-color);
}

.ab-research-study-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

.ab-research-study-card {
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 16px;
	padding: 26px 24px;
	transition: border-color 0.15s ease, background 0.15s ease;
}

.ab-research-study-card:hover {
	border-color: rgba(53, 175, 161, 0.5);
	background: rgba(255, 255, 255, 0.08);
}

.ab-research-study-num {
	font-family: 'Poppins', sans-serif;
	font-weight: 700;
	font-size: 0.78em;
	color: var(--wpex-palette-8974-color);
	margin-bottom: 14px;
	letter-spacing: 0.04em;
}

.ab-research-study-card h4 {
	font-size: 1.06em;
	line-height: 1.4;
	margin-bottom: 10px;
	font-weight: 600;
	color: #ffffff;
}

.ab-research-study-src {
	font-size: 0.81em;
	color: rgba(255, 255, 255, 0.55);
	font-style: italic;
}

.ab-research-btn-row {
	margin-top: 40px;
	display: flex;
	justify-content: center;
}

/* Peer-reviewed (Block 03) — linen row */
.ab-research-peer {
	padding: 0;
}

.ab-research-peer-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 22px;
}

.ab-research-peer-card {
	background: #ffffff;
	border-radius: 16px;
	padding: 28px;
	border: 1px solid rgba(30, 36, 69, 0.08);
	box-shadow: 0 2px 10px rgba(30, 36, 69, 0.04);
	display: flex;
	flex-direction: column;
	gap: 12px;
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.ab-research-peer-card:hover {
	box-shadow: 0 12px 28px rgba(20, 90, 159, 0.12);
	transform: translateY(-3px);
}

.ab-research-peer-date {
	font-size: 0.78em;
	font-weight: 700;
	color: #EB744E;
	letter-spacing: 0.04em;
}

.ab-research-peer-card h4 {
	font-size: 1.1em;
	line-height: 1.4;
	color: var(--wpex-palette-9248-color);
	margin: 0;
}

.ab-research-peer-card p {
	font-size: 0.9em;
	line-height: 1.6;
	color: rgba(30, 36, 69, 0.68);
	margin: 0;
}

.ab-research-peer-read {
	margin-top: auto;
	font-size: 0.84em;
	font-weight: 700;
	color: var(--wpex-palette-8973-color);
	display: inline-flex;
	align-items: center;
	gap: 6px;
	text-decoration: none;
}

.ab-research-peer-read:hover {
	color: var(--wpex-palette-9248-color);
}

@media (max-width: 1024px) {
	.ab-research-study-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 767px) {
	.ab-research-study-grid {
		grid-template-columns: 1fr;
	}

	.ab-research-peer-grid {
		grid-template-columns: 1fr;
	}
}


/* ══════════════════════════════════════════════════════════
   SECURITY PAGE
   ══════════════════════════════════════════════════════════ */

.ab-sec-eyebrow {
	font-weight: 700;
	font-size: 0.75em;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wpex-palette-8974-color);
	display: block;
	margin-bottom: 10px;
}

/* Hero */
.ab-sec-hero {
	text-align: center;
}

.ab-sec-hero h1 {
	font-size: 2.8em;
	font-weight: 600;
	margin: 18px 0 20px;
	line-height: 1.15;
	color: var(--wpex-palette-9248-color);
}

.ab-sec-hero p {
	font-size: 1.1em;
	color: rgba(30, 36, 69, 0.68);
	margin: 0 auto;
}

.ab-sec-hero-badges {
	display: flex;
	justify-content: center;
	gap: 12px;
	flex-wrap: wrap;
	margin-top: 44px;
}

.ab-sec-hero-badge {
	background: #ffffff;
	border: 1px solid rgba(30, 36, 69, 0.1);
	border-radius: 12px;
	padding: 16px 22px;
	text-align: center;
}

.ab-sec-hero-badge-name {
	font-size: 1em;
	font-weight: 700;
	color: var(--wpex-palette-9248-color);
	display: block;
	margin-bottom: 8px;
	letter-spacing: 0.02em;
}

.ab-sec-hero-badge-status {
	display: inline-block;
	font-size: 0.68em;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 100px;
	white-space: nowrap;
}

/* Section header */
.ab-sec-head {
	text-align: center;
	margin-bottom: 56px;
}

.ab-sec-head h2 {
	font-size: 2em;
	font-weight: 600;
	margin-top: 10px;
	color: var(--wpex-palette-9248-color);
}

.ab-sec-head p {
	margin-top: 14px;
	font-size: 1em;
	color: rgba(30, 36, 69, 0.68);
}

/* Card grids */
.ab-sec-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.ab-sec-grid--2 {
	grid-template-columns: repeat(2, 1fr);
}

/* Cards */
.ab-sec-card {
	background: #ffffff;
	border: 1px solid rgba(30, 36, 69, 0.1);
	border-radius: 14px;
	padding: 32px 28px;
}

.ab-sec-card-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 12px;
	background: rgba(20, 90, 159, 0.08);
	margin-bottom: 18px;
	font-size: 1.2em;
	color: var(--wpex-palette-8973-color);
}

.ab-sec-ai-gov .ab-sec-card-icon {
	background: rgba(53, 175, 161, 0.18);
	color: var(--wpex-palette-8974-color);
}

.ab-sec-card h3 {
	font-size: 1.1em;
	font-weight: 600;
	margin-bottom: 10px;
	color: var(--wpex-palette-9248-color);
}

.ab-sec-card p {
	font-size: 0.9em;
	color: rgba(30, 36, 69, 0.68);
	margin: 0;
}

/* Compliance list */
.ab-sec-compliance-list {
	display: flex;
	flex-direction: column;
	border: 1px solid rgba(30, 36, 69, 0.1);
	border-radius: 14px;
	overflow: hidden;
	background: #ffffff;
}

.ab-sec-compliance-row {
	display: grid;
	grid-template-columns: 160px 1fr;
	gap: 28px;
	padding: 26px 30px;
	border-bottom: 1px solid rgba(30, 36, 69, 0.08);
	align-items: start;
}

.ab-sec-compliance-row:last-child {
	border-bottom: none;
}

.ab-sec-status {
	display: inline-block;
	font-size: 0.72em;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 6px 12px;
	border-radius: 100px;
	white-space: nowrap;
}

.ab-sec-status--active {
	background: rgba(53, 175, 161, 0.14);
	color: #1e7d70;
}

.ab-sec-status--assessment {
	background: rgba(235, 116, 78, 0.14);
	color: #b2521f;
}

.ab-sec-status--aligned {
	background: rgba(20, 90, 159, 0.12);
	color: var(--wpex-palette-8973-color);
}

.ab-sec-status--certified {
	background: rgba(30, 36, 69, 0.10);
	color: var(--wpex-palette-9248-color);
}

.ab-sec-compliance-row h3 {
	font-size: 1.06em;
	font-weight: 600;
	margin-bottom: 6px;
	color: var(--wpex-palette-9248-color);
}

.ab-sec-compliance-row p {
	font-size: 0.9em;
	color: rgba(30, 36, 69, 0.68);
	margin: 0;
}

/* AI Governance dark block */
.ab-sec-ai-gov {
	background: var(--wpex-palette-9248-color);
	border-radius: 20px;
	padding: 56px 48px;
	margin-top: 64px;
}

.ab-sec-ai-gov .ab-sec-head h2 {
	color: #ffffff;
}

.ab-sec-ai-gov .ab-sec-head p {
	color: rgba(255, 255, 255, 0.75);
}

.ab-sec-ai-gov .ab-sec-eyebrow {
	color: var(--wpex-palette-8974-color);
}

.ab-sec-ai-gov .ab-sec-card {
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.12);
}

.ab-sec-ai-gov .ab-sec-card-icon {
	background: rgba(53, 175, 161, 0.18);
}

.ab-sec-ai-gov .ab-sec-card h3 {
	color: #ffffff;
}

.ab-sec-ai-gov .ab-sec-card p {
	color: rgba(255, 255, 255, 0.75);
}

/* Stat bar */
.ab-sec-stat-bar {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	background: linear-gradient(120deg, var(--wpex-palette-9248-color), var(--wpex-palette-8973-color) 55%, var(--wpex-palette-8974-color));
	border-radius: 16px;
	padding: 44px 24px;
	text-align: center;
	margin-bottom: 40px;
}

.ab-sec-stat-num {
	font-family: 'Poppins', sans-serif;
	font-size: 1.875em;
	font-weight: 600;
	color: #ffffff;
}

.ab-sec-stat-label {
	font-size: 0.78em;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.78);
	margin-top: 6px;
	font-weight: 600;
}

/* CTA */
.ab-sec-cta {
	text-align: center;
	border-radius: 20px;
	padding: 64px 24px;
	background: linear-gradient(135deg, #F5F3F0 0%, #F1FAF9 100%);
}

.ab-sec-cta h2 {
	font-size: 1.625em;
	font-weight: 600;
	color: var(--wpex-palette-9248-color);
	margin-bottom: 22px;
}

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

@media (max-width: 767px) {
	.ab-sec-grid {
		grid-template-columns: 1fr;
	}

	.ab-sec-grid--2 {
		grid-template-columns: 1fr;
	}

	.ab-sec-stat-bar {
		grid-template-columns: 1fr;
	}

	.ab-sec-compliance-row {
		grid-template-columns: 1fr;
		gap: 10px;
	}

	.ab-sec-hero h1 {
		font-size: 2em;
	}

	.ab-sec-ai-gov {
		padding: 40px 24px;
	}
}


/* ══════════════════════════════════════════════════════════
   LEGAL PAGES — Privacy Policy & Terms of Service
   Shared ab-legal-* system used by both pages
   ══════════════════════════════════════════════════════════ */

/* Page header */
.ab-legal-head {
	text-align: center;
	padding: 64px 24px 48px;
	background: var(--wpex-palette-9681-color);
}

.ab-legal-eyebrow {
	font-weight: 700;
	font-size: 0.75em;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wpex-palette-8974-color);
	display: block;
	margin-bottom: 10px;
}

.ab-legal-head h1 {
	font-size: 2.375em;
	font-weight: 600;
	margin: 10px 0 18px;
	color: var(--wpex-palette-9248-color);
}

.ab-legal-entity {
	font-family: 'Poppins', sans-serif;
	font-weight: 500;
	font-size: 0.94em;
	color: rgba(30, 36, 69, 0.55);
	margin-top: 14px;
}

.ab-legal-meta-row {
	display: flex;
	justify-content: center;
	gap: 10px;
	flex-wrap: wrap;
	margin-top: 18px;
}

.ab-legal-meta-pill {
	background: #ffffff;
	border: 1px solid rgba(30, 36, 69, 0.12);
	border-radius: 100px;
	padding: 7px 16px;
	font-size: 0.78em;
	font-weight: 600;
	color: var(--wpex-palette-9248-color);
}

/* Two-column layout */
.ab-legal-layout {
	display: grid;
	grid-template-columns: 250px 1fr;
	gap: 64px;
	align-items: start;
	padding: 56px 0 100px;
}

/* TOC sidebar */
.ab-legal-toc {
	position: sticky;
	top: 120px;
	border-left: 2px solid rgba(30, 36, 69, 0.1);
	padding-left: 20px;
	max-height: calc(100vh - 160px);
	overflow-y: auto;
}

.ab-legal-toc ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
	counter-reset: toc;
}

.ab-legal-toc a {
	display: flex;
	gap: 8px;
	text-decoration: none;
	color: rgba(30, 36, 69, 0.55);
	font-size: 0.84em;
	font-weight: 500;
	padding: 7px 0 7px 12px;
	border-left: 2px solid transparent;
	margin-left: -14px;
	transition: color .15s, border-color .15s;
}

.ab-legal-toc a::before {
	counter-increment: toc;
	content: counter(toc);
	font-size: 0.69em;
	font-weight: 700;
	color: rgba(30, 36, 69, 0.3);
	min-width: 14px;
}

.ab-legal-toc a:hover {
	color: var(--wpex-palette-9248-color);
}

.ab-legal-toc a.active {
	color: var(--wpex-palette-8973-color);
	border-left-color: var(--wpex-palette-8973-color);
	font-weight: 700;
}

.ab-legal-toc a.active::before {
	color: var(--wpex-palette-8973-color);
}

/* Content area */
.ab-legal-content {
	line-height: 1.7;
}

.ab-legal-content h2 {
	font-size: 1.5em;
	font-weight: 600;
	margin: 0 0 18px;
	padding-top: 6px;
	scroll-margin-top: 120px;
	color: var(--wpex-palette-9248-color);
}

.ab-legal-content h3 {
	font-size: 1.125em;
	font-weight: 600;
	margin: 36px 0 12px;
	scroll-margin-top: 120px;
	color: var(--wpex-palette-9248-color);
}

.ab-legal-content h4 {
	font-size: 1em;
	font-weight: 700;
	color: var(--wpex-palette-9248-color);
	margin: 28px 0 8px;
}

.ab-legal-content p {
	margin: 0 0 16px;
	font-size: 0.94em;
}

.ab-legal-content strong {
	color: var(--wpex-palette-9248-color);
}

.ab-legal-content a {
	color: var(--wpex-palette-8973-color);
}

.ab-legal-content ul {
	margin: 0 0 16px;
	padding-left: 22px;
}

.ab-legal-content ul li {
	font-size: 0.94em;
	margin-bottom: 10px;
}

.ab-legal-content ul li:last-child {
	margin-bottom: 0;
}

.ab-legal-lead {
	font-size: 1.03em !important;
	color: var(--wpex-palette-9248-color) !important;
}

.ab-legal-num {
	color: var(--wpex-palette-8974-color);
	margin-right: 8px;
}

/* Sections with dividers (Terms of Service) */
.ab-legal-section {
	margin-bottom: 52px;
	padding-bottom: 8px;
	border-bottom: 1px solid rgba(30, 36, 69, 0.08);
}

.ab-legal-section:last-child {
	border-bottom: none;
}

/* Address block */
.ab-legal-addr {
	background: #F5F3F0;
	border-radius: 10px;
	padding: 16px 20px;
	font-size: 0.91em;
	margin: 12px 0 16px;
	line-height: 1.8;
}

/* Definitions list (Terms of Service) */
.ab-legal-defn dt {
	font-weight: 700;
	color: var(--wpex-palette-9248-color);
	margin-top: 14px;
	font-size: 0.94em;
}

.ab-legal-defn dd {
	margin: 4px 0 0;
	font-size: 0.91em;
}

/* Misc */
.ab-legal-divider {
	border: none;
	border-top: 1px solid rgba(30, 36, 69, 0.1);
	margin: 48px 0;
}

.ab-legal-footnote {
	font-size: 0.84em;
	color: rgba(30, 36, 69, 0.45);
	margin-top: 40px;
}

.ab-legal-contact-cta {
	background: #F5F3F0;
	border-radius: 14px;
	padding: 32px 28px;
	margin-top: 8px;
}

.ab-legal-contact-cta a {
	font-weight: 600;
}

@media (max-width: 860px) {
	.ab-legal-layout {
		grid-template-columns: 1fr;
		gap: 32px;
		padding-top: 32px;
	}

	.ab-legal-toc {
		position: static;
		border-left: none;
		border-top: 1px solid rgba(30, 36, 69, 0.1);
		padding-left: 0;
		padding-top: 20px;
		max-height: none;
	}

	.ab-legal-toc ul {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 8px;
	}

	.ab-legal-toc a {
		border: 1px solid rgba(30, 36, 69, 0.12);
		border-radius: 100px;
		padding: 6px 14px;
		margin-left: 0;
	}

	.ab-legal-toc a::before {
		display: none;
	}

	.ab-legal-toc a.active {
		border-color: var(--wpex-palette-8973-color);
	}
}


/* ══════════════════════════════════════════════════════════
   COACHING PAGE — Pricing tiers
   ══════════════════════════════════════════════════════════ */

.ab-coach-pricing-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.ab-coach-pricing-card {
	background: var(--wpex-palette-9681-color);
	border-radius: 16px;
	padding: 36px 32px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.ab-coach-pricing-tag {
	font-size: 1em;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wpex-palette-8974-color);
}

.ab-coach-pricing-price {
	font-family: 'Poppins', sans-serif;
	font-size: 3em;
	font-weight: 700;
	color: var(--wpex-palette-9248-color);
	line-height: 1;
}

.ab-coach-pricing-period {
	font-size: 0.875em;
	color: rgba(30, 36, 69, 0.55);
	margin-top: 4px;
}

.ab-coach-pricing-desc {
	font-size: 0.9em;
	color: var(--wpex-palette-9248-color);
	line-height: 1.6;
	border-top: 1px solid rgba(30, 36, 69, 0.1);
	padding-top: 8px;
	margin-top: 0;
}

.ab-coach-pricing-features {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1;
}

.ab-coach-pricing-features li {
	padding-left: 20px;
	position: relative;
	font-size: 0.9em;
	color: var(--wpex-palette-9248-color);
	margin: 0;
	line-height: 1.5;
}

.ab-coach-pricing-features li::before {
	content: '✦';
	position: absolute;
	left: 0;
	color: var(--wpex-palette-8974-color);
	font-size: 0.7em;
	top: 4px;
}

@media (max-width: 1024px) {
	.ab-coach-pricing-grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}
}

/* ══════════════════════════════════════════════════════════
   COACHING PAGE — Trust badge strip (ICF + Community)
   ══════════════════════════════════════════════════════════ */

.ab-coach-trust {
	display: flex;
	gap: 48px;
	align-items: center;
}

.ab-coach-trust-item {
	display: flex;
	align-items: center;
	gap: 20px;
	flex: 1;
}

.ab-coach-trust-icon {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ab-coach-trust-icon img {
	height: 60px;
	width: auto;
}

.ab-coach-trust-icon svg {
	width: 48px;
	height: 48px;
}

.ab-coach-trust-heading {
	font-size: 1.05em;
	font-weight: 700;
	color: #fff;
	margin: 0 0 6px;
	line-height: 1.25;
}

.ab-coach-trust-body {
	font-size: 0.875em;
	color: rgba(255, 255, 255, 0.7);
	line-height: 1.6;
	margin: 0;
}

@media (max-width: 768px) {
	.ab-coach-trust {
		flex-direction: column;
		gap: 32px;
	}
}

@media (max-width: 1024px) {
	.ab-coach-pricing-grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}
}

/* ══════════════════════════════════════════════════════════
   GLOBAL — Book a Demo modal
   ══════════════════════════════════════════════════════════ */

.ab-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: none;
	overflow-y: auto;
}

.ab-modal.ab-modal--open {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
}

.ab-modal-overlay {
	position: fixed;
	inset: 0;
	background: rgba(30, 36, 69, 0.6);
	opacity: 0;
	animation: ab-modal-fade-in 0.2s ease forwards;
}

.ab-modal-panel {
	position: relative;
	z-index: 1;
	max-width: 560px;
	width: 100%;
	max-height: calc(100vh - 40px);
	overflow-y: auto;
	margin: auto;
	background: var(--wpex-palette-8988-color);
	border-radius: 16px;
	padding: 40px;
	box-shadow: 0 20px 60px rgba(30, 36, 69, 0.3);
	opacity: 0;
	transform: translateY(16px);
	animation: ab-modal-panel-in 0.25s ease forwards;
}

@keyframes ab-modal-fade-in {
	to {
		opacity: 1;
	}
}

@keyframes ab-modal-panel-in {
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.ab-modal-close {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: none;
	border-radius: 50%;
	font-size: 1.5rem;
	line-height: 1;
	color: var(--wpex-palette-9248-color);
	cursor: pointer;
	transition: background 0.2s;
}

.ab-modal-close:hover {
	background: var(--wpex-palette-9681-color);
}

.ab-modal-panel #ab-demo-modal-title {
	font-family: Poppins, sans-serif;
	color: var(--wpex-palette-9248-color);
	margin: 0 0 8px;
	padding-right: 24px;
}

.ab-modal-panel .body-small {
	font-family: 'Manrope', sans-serif;
	color: rgba(30, 36, 69, 0.7);
	margin: 0 0 20px;
}

body.ab-modal-lock {
	overflow: hidden;
}

/* Compact modifier — tighter than the full-page .ab-hs-form */
.ab-hs-form--compact .hs-form-field {
	margin-bottom: 8px !important;
}

.ab-hs-form--compact .hs-form-field label {
	font-size: 0.85rem !important;
	margin-bottom: 4px !important;
}

.ab-hs-form--compact input.hs-input:not([type="checkbox"]):not([type="radio"]),
.ab-hs-form--compact select.hs-input {
	height: 38px !important;
	padding: 8px 16px !important;
}

.ab-hs-form--compact textarea.hs-input {
	min-height: 80px !important;
}

.ab-hs-form--compact .hs_submit .actions {
	margin-top: 4px !important;
}

@media (max-width: 640px) {
	.ab-modal-panel {
		padding: 28px 20px;
		border-radius: 12px;
	}
}


/* ══════════════════════════════════════════════════════════
   WPFORMS — reskin to match .ab-hs-form design system
   WPForms loads its own CSS dynamically, same as HubSpot, so
   these need !important to reliably win regardless of load order.
   ══════════════════════════════════════════════════════════ */

.ab-wpforms {
	text-align: left !important;
}

.ab-wpforms form.wpforms-form {
	font-family: 'Manrope', sans-serif !important;
	font-size: 16px !important;
	max-width: 100% !important;
	text-align: left !important;
}

.ab-wpforms .wpforms-field,
.ab-wpforms .wpforms-field-label,
.ab-wpforms .wpforms-field-sublabel,
.ab-wpforms .wpforms-field-description,
.ab-wpforms .wpforms-submit-container {
	text-align: left !important;
}

.ab-wpforms .wpforms-field-container {
	display: flex !important;
	flex-direction: column !important;
	gap: 12px !important;
}

.ab-wpforms .wpforms-field {
	margin-bottom: 8px !important;
	padding: 0 !important;
}

.ab-wpforms .wpforms-field-label {
	display: block !important;
	font-family: 'Manrope', sans-serif !important;
	font-size: 0.85rem !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
	color: var(--wpex-palette-9248-color) !important;
	margin-bottom: 4px !important;
}

.ab-wpforms .wpforms-required-label {
	color: var(--wpex-palette-8973-color) !important;
}

.ab-wpforms .wpforms-field-description,
.ab-wpforms .wpforms-field-sublabel {
	font-family: 'Manrope', sans-serif !important;
	font-size: 0.8rem !important;
	color: rgba(30, 36, 69, 0.6) !important;
	margin-top: 4px !important;
}

.ab-wpforms input[type="text"],
.ab-wpforms input[type="email"],
.ab-wpforms input[type="tel"],
.ab-wpforms input[type="url"],
.ab-wpforms input[type="number"],
.ab-wpforms select,
.ab-wpforms textarea {
	width: 100% !important;
	box-sizing: border-box !important;
	font-family: 'Manrope', sans-serif !important;
	font-size: 0.95rem !important;
	color: var(--wpex-palette-9248-color) !important;
	background: var(--wpex-palette-9681-color) !important;
	border: 1px solid rgba(20, 90, 159, 0.18) !important;
	border-radius: 50px !important;
	padding: 8px 16px !important;
	height: 38px !important;
	outline: none !important;
	box-shadow: none !important;
	transition: border-color 0.2s !important;
}

.ab-wpforms textarea {
	border-radius: 12px !important;
	min-height: 80px !important;
	height: auto !important;
	padding: 10px 16px !important;
	resize: vertical !important;
}

.ab-wpforms input[type="text"]:focus,
.ab-wpforms input[type="email"]:focus,
.ab-wpforms input[type="tel"]:focus,
.ab-wpforms input[type="url"]:focus,
.ab-wpforms input[type="number"]:focus,
.ab-wpforms select:focus,
.ab-wpforms textarea:focus {
	border-color: var(--wpex-palette-8973-color) !important;
}

.ab-wpforms .wpforms-field-checkbox ul,
.ab-wpforms .wpforms-field-radio ul,
.ab-wpforms .wpforms-field-gdpr-checkbox ul {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 6px !important;
}

.ab-wpforms .wpforms-field-checkbox li label,
.ab-wpforms .wpforms-field-radio li label,
.ab-wpforms .wpforms-field-gdpr-checkbox li label {
	display: flex !important;
	align-items: flex-start !important;
	gap: 8px !important;
	font-family: 'Manrope', sans-serif !important;
	font-size: 0.9rem !important;
	font-weight: 400 !important;
	color: var(--wpex-palette-9248-color) !important;
}

.ab-wpforms .wpforms-field-checkbox input,
.ab-wpforms .wpforms-field-radio input,
.ab-wpforms .wpforms-field-gdpr-checkbox input {
	margin: 3px 0 0 !important;
}

.ab-wpforms .wpforms-submit-container {
	margin-top: 4px !important;
}

.ab-wpforms button.wpforms-submit,
.ab-wpforms input.wpforms-submit {
	background: var(--wpex-palette-8973-color) !important;
	color: #ffffff !important;
	border: none !important;
	border-radius: 50px !important;
	padding: 10px 24px !important;
	font-weight: 600 !important;
	font-family: 'Manrope', sans-serif !important;
	font-size: 0.95rem !important;
	cursor: pointer !important;
	transition: background 0.2s !important;
}

.ab-wpforms button.wpforms-submit:hover,
.ab-wpforms input.wpforms-submit:hover {
	background: var(--wpex-palette-9248-color) !important;
}

.ab-wpforms label.wpforms-error,
.ab-wpforms .wpforms-error {
	color: #c0392b !important;
	font-size: 0.8em !important;
	font-weight: 500 !important;
	font-family: 'Manrope', sans-serif !important;
}

.ab-wpforms input.wpforms-error,
.ab-wpforms textarea.wpforms-error,
.ab-wpforms select.wpforms-error {
	border-color: #c0392b !important;
}

/* ══════════════════════════════════════════════════════════
   GLOBAL — reusable decorative hero background graphic
   Reusable across any hero, not just the Solutions page. Drop an
   SVG (or other graphic) inside .ab-hero-bg-graphic as the first
   child of .ab-hero, before .ab-hero-inner. It sits behind the
   hero copy (.ab-hero-inner is z-index:1, this is z-index:0),
   fills the hero, and is pinned to the right edge here — adjust
   justify-content on a per-hero basis if a different position is
   needed. .ab-hero already has position:relative and
   overflow:hidden, so this just needs to fill it.

   Note: if the hero is copy-only (uses .ab-hero-copy--full, no
   visual/image column), .ab-hero itself needs to actually be
   full-width for this to reach real open space — see the
   .ab-hero:has(.ab-hero-copy--full) rule earlier in this file,
   which already handles that for any hero using that modifier.
   ══════════════════════════════════════════════════════════ */

.ab-hero-bg-graphic {
	position: absolute;
	inset: 0;
	z-index: 0;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	pointer-events: none;
}

.ab-hero-bg-graphic svg {
	width: auto;
	height: 90%;
	max-width: none;
	max-height: 100%;
}

/* Solutions page hero-specific vertical spacing — not part of the
   reusable background-graphic system, since it was sized for this
   hero's specific right-aligned accent graphic (which needs the
   extra height to have room to draw). Other heroes using
   .ab-hero-copy--full (e.g. Science) size themselves via their own
   min-height instead and don't need this. */
.ab-solutions-hero {
	padding-top: 10%;
	padding-bottom: 10%;
}

/* Solutions hero graphic — loaded from the media library as a
   background-image instead of inline SVG, same approach as the
   homepage hero. auto/90% mirrors the sizing the inline <svg> used
   to get from .ab-hero-bg-graphic svg (height:90%, width:auto),
   right-aligned as an accent rather than edge-to-edge. */
.ab-solutions-hero .ab-hero-bg-graphic {
	background: url("/wp-content/uploads/2026/07/solutions-hero-bg-graphic.svg") right center / auto 90% no-repeat;
}

/* Science hero graphic — loaded from the media library as a
   background-image instead of inline SVG, same approach as the
   homepage and Solutions heroes. --full variant: covers the whole
   row edge-to-edge, same as the inline <svg> did. */
.ab-hero--light .ab-hero-bg-graphic--full {
	background: url("/wp-content/uploads/2026/07/science-hero-bg-graphic.svg") center / cover no-repeat;
}

/* AI Intelligence Layer hero graphic — loaded from the media
   library as a background-image instead of inline SVG, same
   approach as the other three heroes. Its <animateMotion>/<mpath>
   particle-following was converted to CSS offset-path +
   offset-distance keyframes, and its SMIL radius pulses to a
   shared rPulse keyframe using --r0/--r1 custom properties, so
   nothing in the graphic depends on SMIL (<animate>/<animateMotion>)
   surviving the upload sanitizer. */
.ab-section--bg-graphic .ab-hero-bg-graphic--full {
	background: url("/wp-content/uploads/2026/07/ai-hero-bg-graphic.svg") center / cover no-repeat;
}

/* About Us hero — positioning context for the wave graphic, plus
   vertical padding so the graphic (wide/short aspect ratio) has
   enough room to read well. The SVG itself has a transparent
   background, so it layers over the row's existing
   bg-grad-linen-mist gradient rather than replacing it — no
   background-color needed here. */
.ab-about-hero-bg {
	position: relative;
	overflow: hidden;
	padding: 7% 0 12%;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.ab-about-hero-bg .ab-section-header--center {
	position: relative;
	z-index: 1;
}

.ab-about-hero-bg .ab-hero-bg-graphic--full {
	background: url("/wp-content/uploads/2026/07/aboutus-hero-bg-graphic-v2.svg") bottom / 100% auto no-repeat;
	margin-bottom: -40px;
}

/* Integrations page hero — forces the row to the true browser edge
   regardless of any ancestor container width, so the background
   graphic below can reach edge to edge (same breakout trick used
   for the About Us hero). !important is needed here because this
   same element also matches .ab-hero:has(.ab-hero-copy--full),
   which sets width:100% at higher specificity and was winning,
   leaving the viewport-relative negative margins applied without
   the matching width — that mismatch was pulling the whole hero
   flush left instead of spanning edge to edge. */
.ab-integrations-hero {
	width: 100vw !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
}

/* Integrations page hero graphic — loaded from the media library
   as a background-image instead of inline SVG, same approach as
   the other four heroes. Its fill-opacity pulses (three main
   shapes + 46 drifting glow dots) were converted to shared CSS
   keyframes (shapeGlow / glowPulse); the drifting <animateMotion>
   paths survive Safe SVG untouched, same as the About Us dots.
   Scoped to .ab-integrations-hero (not just .ab-hero--light) since
   the Science hero also uses .ab-hero--light with its own graphic. */
.ab-integrations-hero .ab-hero-bg-graphic--full {
	background: url("/wp-content/uploads/2026/07/partners-hero-bg-graphic.svg") center / cover no-repeat;
}

/* Homepage hero-specific vertical spacing — same pattern as
   .ab-solutions-hero above. */
.ab-homepage-hero {
	padding-top: 10%;
	padding-bottom: 10%;
}

/* Keeps the subhead from stretching all the way across the row —
   at full width it was running directly over the busiest part of
   the animated background, hurting legibility. Desktop only — see
   the mobile override right below, which must stay AFTER this rule
   in source order since both have identical specificity and an
   earlier mobile override was previously losing the cascade to
   this one. */
.ab-homepage-hero .ab-hero-subhead {
	max-width: 50%;
}

@media (max-width: 767px) {
	.ab-homepage-hero .ab-hero-subhead {
		max-width: 100%;
	}
}

/* Reusable modifier: for a hero whose row is stretched full-width
   (so its background graphic can reach the true browser edge), this
   re-boxes just the text content back to the site's standard 1200px
   width, centered, instead of letting it also stretch edge-to-edge.
   Apply to any hero using .ab-hero-bg-graphic--full on a stretched
   row. */
.ab-hero--boxed-content .ab-hero-inner {
	max-width: 1200px;
	width: 100%;
	margin: 0 auto;
}

/* Homepage hero graphic — loaded from the media library as a
   background-image instead of inline SVG (the inline markup was
   too large for the page builder to handle). SMIL animations
   inside the SVG file still play normally as a background image.
   It's purely decorative (.ab-hero-bg-graphic already carries
   aria-hidden="true"), so nothing is lost by not having it inline.
   -3.svg removed the SVG's own internal <mask> (previously used to
   fade the graphic out on the left third) — Safari has long-standing
   bugs where CSS animations on elements masked by an SVG <mask>
   silently freeze, which was why this hero (the only one of the
   eight using an internal mask instead of a CSS overlay) wasn't
   animating in Safari while every other hero worked fine. The fade
   is now replicated below via .ab-homepage-hero-overlay instead,
   the same external-CSS-overlay technique already used on Science. */
.ab-homepage-hero .ab-hero-bg-graphic--full {
	background: url("/wp-content/uploads/2026/07/homepage-hero-bg-graphic-3.svg") center / cover no-repeat;
}

/* Replicates the left-third fade that used to be baked into the SVG
   as an internal <mask> — same gradient stops (0%/32% fully
   opaque/hidden, 48%-100% fully transparent/visible), just done in
   plain CSS instead so it can't hit the Safari SVG-mask animation
   bug. Sits after .ab-hero-bg-graphic in the DOM so it paints on
   top of it at the same z-index:0, below .ab-hero-inner (z-index:1). */
.ab-homepage-hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, #fff 0%, #fff 32%, rgba(255, 255, 255, 0) 48%, rgba(255, 255, 255, 0) 100%);
	pointer-events: none;
	z-index: 0;
}

@media (max-width: 767px) {
	.ab-hero-bg-graphic {
		display: none;
	}
}

/* --full variant — graphic IS the row's entire background (edge to
   edge, no right-alignment/90%-height accent treatment), for cases
   where the SVG bakes in its own fill color and is meant to replace
   the row background outright rather than sit as a side accent. */
.ab-hero-bg-graphic--full {
	justify-content: stretch;
	align-items: stretch;
}

.ab-hero-bg-graphic--full svg {
	width: 100%;
	height: 100%;
	max-width: none;
	max-height: none;
}

@media (max-width: 767px) {
	.ab-hero-bg-graphic--full {
		display: flex;
	}
}

/* Section wrapper for a --full background graphic — gives the
   absolutely-positioned graphic a positioning context to fill, and
   lifts the real content (.ab-split) above it. Row-level padding
   should be removed in WPBakery for this section so the graphic
   truly reaches edge-to-edge; .ab-section's own 8%/12% padding
   doesn't block that, since an absolutely-positioned child with
   inset:0 already fills the padding box regardless. */
.ab-section--bg-graphic {
	position: relative;
	overflow: hidden;
	padding: 8% 0 !important;
}

.ab-section--bg-graphic .ab-split {
	position: relative;
	z-index: 1;
}

/* Reserves height for the worst-case 2-line wrap (longest word:
   "the people you support") so the H1's box never shrinks/grows
   as the word cycles — prevents the whole page shifting/bouncing
   every time a shorter word swaps in. line-height is 1.0 on
   .hero-1, so 2em = 2 lines; the extra 0.15em is a small buffer
   for font metrics. */
.ab-solutions-hero-h1 {
	min-height: 2.15em;
}

.ab-solutions-swap {
	display: block;
	width: 100%;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.4;
	color: var(--wpex-palette-9248-color);
	margin: 4px 0 0;
}

#ab-audience-word {
	color: var(--wpex-palette-8973-color);
	transition: opacity 0.2s ease;
}

.ab-solutions-period {
	color: var(--wpex-palette-8973-color);
}

.ab-solutions-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0;
	margin: 4px 0 0;
}

.ab-solutions-links a {
	font-size: 0.9em;
	font-weight: 600;
	color: var(--wpex-palette-9248-color);
	text-decoration: none;
	padding: 4px 0;
	transition: color 0.2s;
}

.ab-solutions-links a:hover,
.ab-solutions-links a:focus {
	color: var(--wpex-palette-8973-color);
}

.ab-solutions-links a:not(:last-child)::after {
	content: '·';
	display: inline-block;
	color: rgba(18, 15, 53, 0.25);
	font-weight: 400;
	margin: 0 12px;
}

@media (max-width: 640px) {
	.ab-solutions-links {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
	}

	.ab-solutions-links a:not(:last-child)::after {
		display: none;
	}
}

/* .ab-hero-copy defaults to shrink-to-fit inside the .ab-hero-inner
   flex row, which is fine when there's a visual/image sibling
   splitting the width, but collapses to an oddly narrow column on
   single-column heroes with no visual side. Use this modifier on
   any hero that's copy-only. */
.ab-hero-copy--full {
	flex: 1 1 100%;
	max-width: none;
	width: 100%;
}

/* ══════════════════════════════════════════════════════════
   SOLUTIONS (PARENT) PAGE — Explore the solutions (card grid)
   ══════════════════════════════════════════════════════════ */

.ab-solutions-explore-head {
	max-width: 640px;
	margin: 0 0 40px;
}

.ab-solutions-explore-head h2 {
	margin: 0 0 12px;
	color: var(--wpex-palette-9248-color);
}

.ab-solutions-explore-head p {
	margin: 0;
	color: #555555;
	line-height: 1.7;
}

/* This grid deliberately breaks from the site's usual breakpoints —
   2-column only at 1440px and up. Everything below that (including
   normal "desktop" widths) is single column, since the photo cards
   need real width per card to avoid the text/person overlap. */
.ab-solutions-explore-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
}

@media (min-width: 1440px) {
	.ab-solutions-explore-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

.ab-solutions-explore-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 10px;
	background: var(--wpex-palette-8988-color);
	border: 1px solid rgba(20, 90, 159, 0.1);
	border-radius: 14px;
	padding: 28px 28px 24px;
	text-align: left;
	overflow: hidden;
}

.ab-solutions-explore-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: var(--wpex-palette-8973-color);
}

/* Photo variant — uses the same hero banner image as the vertical's
   own page (person positioned on the right of the source image).
   A left-to-right gradient scrim keeps the text legible without
   hiding the person on the right side of the image. */
.ab-solutions-explore-card--photo {
	justify-content: flex-start;
	padding: 32px;
	background-size: cover;
	background-position: right top;
	border: none;
}


.ab-solutions-explore-card--photo::before {
	display: none;
}

.ab-solutions-explore-card--photo::after {
	display: none;
}

.ab-solutions-explore-card--photo>* {
	position: relative;
	z-index: 1;
	max-width: 62%;
}

/* Narrower text column — for photo cards where the person(s) sit
   further left than usual (e.g. Workforce, two people close together).
   Chained with --photo so specificity beats it regardless of source order. */
.ab-solutions-explore-card--photo.ab-solutions-explore-card--narrow>* {
	max-width: 50%;
}

.ab-solutions-explore-card--photo .ab-solutions-explore-label {
	color: var(--wpex-palette-9248-color);
}

.ab-solutions-explore-card--photo .ab-solutions-explore-body {
	color: #3a3d45;
}

.ab-solutions-explore-card--photo .ab-solutions-explore-meta {
	color: #6a6d75;
	border-top-color: rgba(20, 90, 159, 0.15);
}

@media (max-width: 640px) {
	.ab-solutions-explore-card--photo {
		background: linear-gradient(135deg, #F1FAF9 0%, #F0F7FC 50%, #FAF9F7 100%) !important;
	}

	.ab-solutions-explore-card--photo>* {
		max-width: 100%;
	}
}

.ab-solutions-explore-grid .ab-solutions-explore-card:nth-child(2)::before,
.ab-solutions-explore-grid .ab-solutions-explore-card:nth-child(5)::before {
	background: var(--wpex-palette-8974-color);
}

.ab-solutions-explore-grid .ab-solutions-explore-card:nth-child(3)::before,
.ab-solutions-explore-grid .ab-solutions-explore-card:nth-child(6)::before {
	background: #EB744E;
}

.ab-solutions-explore-label {
	font-size: 0.7em;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--wpex-palette-9248-color);
}

.ab-solutions-explore-hook {
	margin: 0;
	font-size: 1.35em;
	font-weight: 700;
	line-height: 1.25;
	color: var(--wpex-palette-9248-color);
}

.ab-solutions-explore-body {
	margin: 0;
	color: #555555;
}

.ab-solutions-explore-meta {
	margin-top: 6px;
	padding-top: 12px;
	border-top: 1px solid rgba(20, 90, 159, 0.1);
	font-size: 0.78em;
	color: rgba(30, 36, 69, 0.6);
}


/* ══════════════════════════════════════════════════════════
   SOLUTIONS (PARENT) PAGE — Problem section (50/50 split,
   text stacked in the left column, right column empty)
   ══════════════════════════════════════════════════════════ */

.ab-solutions-problem-text {
	flex: 1 1 50%;
	max-width: 50%;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.ab-solutions-problem-empty {
	flex: 1 1 50%;
	max-width: 50%;
}

.ab-solutions-problem-text h2 {
	margin: 0;
}

.ab-solutions-problem-text p {
	margin: 0;
	color: #555555;
	line-height: 1.7;
}

.ab-solutions-problem--dark .ab-solutions-problem-text h2 {
	color: var(--wpex-palette-8988-color);
}

.ab-solutions-problem--dark .ab-solutions-problem-text p {
	color: rgba(255, 255, 255, 0.75);
}

@media (max-width: 767px) {

	.ab-solutions-problem-text,
	.ab-solutions-problem-empty {
		max-width: 100%;
	}

	.ab-solutions-problem-empty {
		display: none;
	}
}