/* ==========================================================================
   Home page (page 16) — premium layer on top of style.css.
   Loaded on the front page only (cg_home_page_assets() in functions.php),
   after style.css, so it refines the existing home rules without touching them.

   Elementor hooks (Advanced → CSS Classes on the widget / container):
     .cgx-eyebrow      small mono label above a section title
     .cgx-title        section H2
     .cgx-lead         intro paragraph under a title
     .cgx-hero-title   hero H1 — wrap words in <span class="cgx-hl"> to highlight
     .cgx-about        About block (.cgx-about-photo, .cgx-about-card, .cgx-about-points)
     .cgx-dark         any navy section (labels/text switch to light)
     .cgx-cta--split   CTA: photo fades in from the right (Style → Background image)
     .cgx-cta--card    CTA: split card with an "inspection" photo frame
     .cgx-cta--panel   CTA: full-bleed parallax photo behind a glass panel
   Section CSS IDs (Advanced → CSS ID) feed the right-hand section navigator
   built by home.js: every top-level section with an ID gets a dot, labelled
   with its .cgx-eyebrow text.
   Motion is progressive: nothing is hidden unless home.js is running, never
   inside the Elementor editor, and never with reduced-motion.
   ========================================================================== */

body.home {
	--cgx-navy: #07111F;
	--cgx-navy-2: #0C1A2E;
	--cgx-accent: #1B3FA0;
	--cgx-accent-2: #3563E0;
	--cgx-ice: #9DB8FF;
	--cgx-ink: #0C1825;
	--cgx-body: #5A6678;
	--cgx-body-dark: #B4C1D4;
	--cgx-line: #E1E5EB;
	--cgx-mist: #F4F6F9;
	--cgx-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
	--cgx-head: "Space Grotesk", Inter, sans-serif;
	--cgx-ease: cubic-bezier(.2, .7, .2, 1);
	--cgx-grid:
		linear-gradient(rgba(157, 184, 255, .055) 1px, transparent 1px),
		linear-gradient(90deg, rgba(157, 184, 255, .055) 1px, transparent 1px);
}
body.home .elementor-16 > .e-con[id] { scroll-margin-top: 150px; }
/* Zooming slide photos / gear art can poke past the viewport edge; clip (not
   hidden) so the sticky header keeps working. */
body.home .elementor-16 { overflow-x: clip; }

/* One content edge (the logo's): Elementor's default 10px inner-container
   padding pushed some section headings 10–20px off the line. Desktop only —
   on phones that padding is part of the gutter. */
@media (min-width: 1025px) {
	body.home .elementor-16 :is(.elementor-element-a3a8529, .elementor-element-cgcapleft, .elementor-element-3f5e3b9,
		.elementor-element-c7a8a91, .elementor-element-2d5c897, .elementor-element-5ff974b, .elementor-element-442a888) {
		--padding-left: 0px !important;
		--padding-right: 0px !important;
	}
}
/* Process block carried a -10px side margin that clipped its title on phones. */
body.home .elementor-16 .elementor-element-1990eb6 { margin-left: 0 !important; margin-right: 0 !important; }
@media (max-width: 1024px) {
	body.home .elementor-16 .elementor-element-1990eb6 { --padding-left: 20px !important; --padding-right: 20px !important; }
	body.home .elementor-16 .elementor-element-1990eb6 .elementor-widget-html { --padding-left: 0px; padding-left: 0 !important; padding-right: 0 !important; }
}

/* ── Scroll progress (home.js) ──────────────────────────────────────────── */
.cgx-progress {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 10000;
	height: 3px;
	pointer-events: none;
	background: linear-gradient(90deg, var(--cgx-accent), var(--cgx-ice));
	transform: scaleX(var(--p, 0));
	transform-origin: 0 50%;
	box-shadow: 0 0 12px rgba(53, 99, 224, .55);
}
body.admin-bar .cgx-progress { top: 32px; }

/* ── Type system: eyebrow · title · lead ───────────────────────────────── */
body.home .cgx-eyebrow .elementor-heading-title {
	display: inline-flex !important;
	align-items: center;
	gap: 14px;
	font-family: var(--cgx-mono) !important;
	font-size: 12px !important;
	font-weight: 500 !important;
	line-height: 1.4 !important;
	letter-spacing: .2em !important;
	text-transform: uppercase !important;
	color: var(--cgx-accent) !important;
}
body.home .cgx-eyebrow .elementor-heading-title::before {
	content: "";
	flex: none;
	width: 36px;
	height: 1px;
	background: currentColor;
	transform-origin: 0 50%;
	transition: transform .9s var(--cgx-ease) .15s;
}
body.home .cgx-title .elementor-heading-title {
	color: var(--cgx-ink) !important;
	letter-spacing: -.022em !important;
	text-wrap: balance;
}
body.home .elementor-widget.cgx-lead,
body.home .cgx-lead p { color: var(--cgx-body) !important; }

/* Dark surfaces */
body.home :is([data-id="cghero01"], .cgx-dark, .cgx-cta, .cgx-cta--card) .cgx-eyebrow .elementor-heading-title { color: var(--cgx-ice) !important; }
body.home :is(.cgx-dark, .cgx-cta, .cgx-cta--card) .cgx-title .elementor-heading-title { color: #fff !important; }
body.home :is([data-id="cghero01"], .cgx-dark, .cgx-cta, .cgx-cta--card) .elementor-widget.cgx-lead,
body.home :is([data-id="cghero01"], .cgx-dark, .cgx-cta, .cgx-cta--card) .cgx-lead p { color: var(--cgx-body-dark) !important; }

/* ── Buttons: one radius, lift + light sweep ───────────────────────────── */
body.home .elementor-16 .elementor-button {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	border-radius: 4px !important;
	letter-spacing: .08em;
	transform: translate3d(var(--bx, 0), var(--by, 0), 0);
	transition: transform .35s var(--cgx-ease), box-shadow .35s ease, background-color .3s ease, border-color .3s ease, color .3s ease !important;
}
body.home .elementor-16 .elementor-button::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .28) 50%, transparent 70%);
	transform: translateX(-120%);
	transition: transform .8s var(--cgx-ease);
	pointer-events: none;
}
body.home .elementor-16 .elementor-button:hover::after { transform: translateX(120%); }
body.home .elementor-16 .elementor-button:hover { box-shadow: 0 14px 30px -14px rgba(27, 63, 160, .7); }
body.home .elementor-16 .elementor-button .elementor-button-icon { transition: transform .35s var(--cgx-ease); }
body.home .elementor-16 .elementor-button:hover .elementor-button-icon { transform: translateX(4px); }
/* Text-link buttons (See all / Browse all) — accent, no box */
body.home [data-id="cgcertseeall"] .elementor-button,
body.home [data-id="12d4073"] .elementor-button {
	color: var(--cgx-accent) !important;
	box-shadow: none !important;
	background: none !important;
	border-radius: 0 !important;
}
body.home [data-id="cgcertseeall"] .elementor-button::after,
body.home [data-id="12d4073"] .elementor-button::after { content: none; }
body.home [data-id="cgcertseeall"] .elementor-button-text { box-shadow: inset 0 -1px 0 rgba(27, 63, 160, .35); padding-bottom: 3px; }

/* ── 1. Hero ─────────────────────────────────────────────────────────────
   Same family as the About hero (navy, drafting grid, mono label, ice
   highlight) but its own layout: copy on the left, an Elementor Slides
   widget on the right framed as an engineering drawing sheet (chamfered
   corners, rulers, registration marks, title block). Background: a slowly
   panning grid, a light sweep, and meshing gear outlines (home.js).
   Slides are edited in Elementor → Hero → "Hero — image slider".
   ──────────────────────────────────────────────────────────────────────── */
body.home .elementor-element.cgx-hero {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background-color: var(--cgx-navy) !important;
}
/* Grid panning diagonally + glow (replaces the old Ken Burns photo layer). */
body.home .elementor-element.cgx-hero::before {
	content: "" !important;
	position: absolute !important;
	inset: 0 !important;
	width: auto !important;
	height: auto !important;
	z-index: 0 !important;
	opacity: 1 !important;
	transform: none !important;
	background:
		radial-gradient(820px 560px at 18% 40%, rgba(53, 99, 224, .26), transparent 70%),
		radial-gradient(640px 480px at 88% 70%, rgba(53, 99, 224, .16), transparent 70%),
		var(--cgx-grid) !important;
	background-size: auto, auto, 56px 56px, 56px 56px !important;
	animation: cgxGridPan 24s linear infinite !important;
}
@keyframes cgxGridPan { to { background-position: 0 0, 0 0, 56px 56px, 56px 56px; } }
/* Light sweep crossing the sheet every few seconds. */
body.home .elementor-element.cgx-hero::after {
	content: "" !important;
	display: block !important;
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background: linear-gradient(112deg, transparent 38%, rgba(157, 184, 255, .07) 48%, rgba(157, 184, 255, .12) 50%, rgba(157, 184, 255, .07) 52%, transparent 62%);
	background-size: 260% 100%;
	animation: cgxSweep 11s ease-in-out infinite;
}
@keyframes cgxSweep { 0% { background-position: 130% 0; } 60%, 100% { background-position: -30% 0; } }
body.home .cgx-hero > .e-con,
body.home .cgx-hero > .e-con-inner { position: relative; z-index: 2; }

/* Gear train (injected by home.js; purely decorative). */
.cgx-hero-fx {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	overflow: hidden;
	transform: translate3d(calc(var(--mx, 0) * 12px), calc(var(--my, 0) * 8px), 0);
	transition: transform .8s var(--cgx-ease);
}
.cgx-gear {
	position: absolute;
	color: rgba(157, 184, 255, .16);
	animation: cgxRotate var(--t, 90s) linear infinite;
	animation-direction: var(--dir, normal);
}
.cgx-gear--a { width: 620px; height: 620px; left: -250px; bottom: -300px; --t: 120s; }
.cgx-gear--b { width: 310px; height: 310px; left: 268px; bottom: 76px; --t: 60s; --dir: reverse; color: rgba(157, 184, 255, .12); }
.cgx-gear--c { width: 220px; height: 220px; right: 36%; top: -120px; --t: 45s; color: rgba(157, 184, 255, .09); }
@keyframes cgxRotate { to { transform: rotate(360deg); } }

/* Copy column */
body.home .cgx-hero-copy { position: relative; }
body.home .cgx-hero-copy::before,
body.home .cgx-hero-copy::after {
	content: "" !important;
	position: absolute !important;
	left: -28px !important;
	width: 16px !important;
	height: 16px !important;
	inset: auto;
	background: none !important;
	opacity: 1 !important;
	border: 0 solid rgba(157, 184, 255, .45) !important;
}
body.home .cgx-hero-copy::before { top: -26px !important; border-top-width: 1px !important; border-left-width: 1px !important; }
body.home .cgx-hero-copy::after { bottom: -26px !important; border-bottom-width: 1px !important; border-left-width: 1px !important; }
body.home [data-id="cghero06"] { margin-top: 34px; padding-bottom: 0 !important; }
body.home .cgx-hero-copy [data-id="cghero04"] { margin-top: 22px !important; }
body.home .cgx-hero-copy [data-id="cghero05"] { margin-top: 22px !important; max-width: 560px; }
body.home .cgx-hero-copy [data-id="cghero05"] p:last-child { margin-bottom: 0 !important; }
@media (min-width: 1025px) {
	body.home .elementor-16 .elementor-element-cghero02 { --padding-top: 72px !important; }
}
body.home .cgx-hero-trust { margin-top: 34px !important; }
body.home .cgx-hero-trust .elementor-icon-list-items { gap: 10px 26px; }
body.home .cgx-hero-trust .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
body.home .cgx-hero-trust .elementor-icon-list-item::after { display: none !important; }
body.home .cgx-hero-trust .elementor-icon-list-text {
	font: 500 11px/1.4 var(--cgx-mono) !important;
	letter-spacing: .16em !important;
	text-transform: uppercase;
	color: #9FB0C8 !important;
	padding-left: 8px !important;
}
body.home .cgx-hero-trust .elementor-icon-list-icon svg { width: 11px !important; height: 11px !important; fill: var(--cgx-ice) !important; }

/* Slider frame: drawing sheet with rulers + registration marks */
body.home .cgx-hero-media { position: relative; padding: 18px 0 0 18px !important; }
body.home .cgx-hero-media::before {
	content: "" !important;
	position: absolute !important;
	inset: 0 auto auto 18px !important;
	width: auto !important;
	right: 22px !important;
	height: 12px !important;
	background:
		repeating-linear-gradient(90deg, rgba(157, 184, 255, .5) 0 1px, transparent 1px 48px) bottom / 100% 12px no-repeat,
		repeating-linear-gradient(90deg, rgba(157, 184, 255, .22) 0 1px, transparent 1px 12px) bottom / 100% 6px no-repeat !important;
	opacity: 1 !important;
	border: 0 !important;
}
body.home .cgx-hero-media::after {
	content: "" !important;
	position: absolute;
	top: 18px;
	left: 0;
	bottom: 22px;
	width: 12px;
	background:
		repeating-linear-gradient(180deg, rgba(157, 184, 255, .5) 0 1px, transparent 1px 48px) right / 12px 100% no-repeat,
		repeating-linear-gradient(180deg, rgba(157, 184, 255, .22) 0 1px, transparent 1px 12px) right / 6px 100% no-repeat;
}
body.home .cgx-hero-slider { position: relative; }
body.home .cgx-hero-slider .elementor-slides-wrapper {
	--chamfer: 34px;
	clip-path: polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));
	background: var(--cgx-navy-2);
	box-shadow: 0 50px 90px -40px rgba(0, 0, 0, .8);
}
/* Chamfer outline echo + corner registration marks drawn around the sheet. */
body.home .cgx-hero-slider::before {
	content: "";
	position: absolute;
	inset: -10px;
	z-index: 3;
	pointer-events: none;
	--c: rgba(157, 184, 255, .55);
	background:
		linear-gradient(var(--c), var(--c)) 100% 0 / 20px 1px, linear-gradient(var(--c), var(--c)) 100% 0 / 1px 20px,
		linear-gradient(var(--c), var(--c)) 0 100% / 20px 1px, linear-gradient(var(--c), var(--c)) 0 100% / 1px 20px;
	background-repeat: no-repeat;
}
body.home .cgx-hero-slider::after {
	content: "";
	position: absolute;
	right: -10px;
	bottom: -10px;
	z-index: 3;
	width: 48px;
	height: 48px;
	pointer-events: none;
	background: linear-gradient(135deg, transparent calc(50% - .5px), rgba(157, 184, 255, .55) 50%, transparent calc(50% + .5px));
}
/* Photos: keep the subject in view, blend into the navy at the bottom-left. */
body.home .cgx-hero-slider .swiper-slide-bg { background-position: 72% center !important; }
body.home .cgx-hero-slider .swiper-slide::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background:
		linear-gradient(0deg, rgba(7, 17, 31, .92) 0%, rgba(7, 17, 31, .35) 36%, transparent 60%),
		linear-gradient(90deg, rgba(7, 17, 31, .45) 0%, transparent 45%);
}
body.home .cgx-hero-slider .swiper-slide-inner { z-index: 2; padding: 0 !important; }
/* Title block (slide heading + spec line) */
body.home .cgx-hero-slider .swiper-slide-contents {
	position: absolute;
	left: 28px;
	bottom: 28px;
	max-width: min(420px, calc(100% - 180px)) !important;
	padding: 16px 20px 16px 18px;
	background: rgba(7, 17, 31, .72);
	-webkit-backdrop-filter: blur(10px);
	        backdrop-filter: blur(10px);
	border: 1px solid rgba(157, 184, 255, .28);
	border-left: 2px solid var(--cgx-ice);
}
body.home .cgx-hero-slider .swiper-slide-contents::before {
	content: "SHEET " attr(data-sheet);
	display: block;
	margin-bottom: 8px;
	font: 500 10px/1 var(--cgx-mono);
	letter-spacing: .22em;
	color: #6E86B8;
}
body.home .cgx-hero-slider .elementor-slide-heading {
	margin: 0 0 6px !important;
	font-family: var(--cgx-head) !important;
	font-size: 22px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: -.01em !important;
	color: #fff !important;
}
body.home .cgx-hero-slider .elementor-slide-description {
	margin: 0 !important;
	font: 500 11px/1.5 var(--cgx-mono) !important;
	letter-spacing: .1em !important;
	text-transform: uppercase;
	color: var(--cgx-ice) !important;
}
body.home .cgx-hero-slider a.swiper-slide-inner .swiper-slide-contents { transition: border-color .3s ease, background-color .3s ease; }
body.home .cgx-hero-slider a.swiper-slide-inner:hover .swiper-slide-contents { border-color: rgba(157, 184, 255, .6); background: rgba(7, 17, 31, .85); }
body.home .cgx-hero-slider a.swiper-slide-inner .swiper-slide-contents::after {
	content: "View \2192";
	position: absolute;
	top: 14px;
	right: 16px;
	font: 500 10px/1 var(--cgx-mono);
	letter-spacing: .18em;
	text-transform: uppercase;
	color: #9FB0C8;
	transition: color .3s ease, transform .3s var(--cgx-ease);
}
body.home .cgx-hero-slider a.swiper-slide-inner:hover .swiper-slide-contents::after { color: #fff; transform: translateX(3px); }

/* Navigation: arrows grouped bottom-right; dots become timed progress segments. */
body.home .cgx-hero-slider .elementor-swiper-button {
	top: auto !important;
	bottom: 30px;
	transform: none !important;
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border: 1px solid rgba(157, 184, 255, .35);
	background: rgba(7, 17, 31, .6);
	-webkit-backdrop-filter: blur(8px);
	        backdrop-filter: blur(8px);
	color: #fff !important;
	font-size: 14px !important;
	transition: background-color .3s ease, border-color .3s ease;
}
body.home .cgx-hero-slider .elementor-swiper-button svg { width: 14px; height: 14px; fill: #fff !important; }
body.home .cgx-hero-slider .elementor-swiper-button:hover { background: var(--cgx-accent); border-color: var(--cgx-accent); }
body.home .cgx-hero-slider .elementor-swiper-button-prev { left: auto !important; right: 92px !important; }
body.home .cgx-hero-slider .elementor-swiper-button-next { right: 44px !important; }
body.home .cgx-hero-slider .swiper-pagination {
	top: 26px !important;
	bottom: auto !important;
	left: auto !important;
	right: 28px !important;
	width: auto !important;
	display: flex;
	gap: 6px;
}
body.home .cgx-hero-slider .swiper-pagination-bullet {
	position: relative;
	width: 30px !important;
	height: 3px !important;
	margin: 0 !important;
	border-radius: 0 !important;
	background: rgba(255, 255, 255, .28) !important;
	opacity: 1 !important;
	overflow: hidden;
}
body.home .cgx-hero-slider .swiper-pagination-bullet-active::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--cgx-ice);
	transform-origin: 0 50%;
	animation: cgxFill var(--cgx-autoplay, 5.5s) linear both;
}
body.home .cgx-hero-slider:hover .swiper-pagination-bullet-active::after { animation-play-state: paused; }
@keyframes cgxFill { from { transform: scaleX(0); } to { transform: scaleX(1); } }

body.home .cgx-hero-title .elementor-heading-title {
	font-size: clamp(34px, 3.4vw, 54px) !important;
	line-height: 1.07 !important;
	letter-spacing: -.028em !important;
	text-wrap: balance;
}
body.home .cgx-hl,
body.home .cgx-hl .cgx-w > span {
	background: linear-gradient(92deg, #9DB8FF 0%, #DCE7FF 50%, #9DB8FF 100%);
	background-size: 200% 100%;
	-webkit-background-clip: text;
	        background-clip: text;
	color: transparent;
	animation: cgxShimmer 6s ease-in-out infinite;
}
@keyframes cgxShimmer { 50% { background-position: 100% 0; } }
/* Once home.js splits the headline into words, each word carries the gradient itself. */
body.home .cgx-split .cgx-hl { background: none; animation: none; }
body.home [data-id="cghero05"] { font-size: 18px; }
body.home [data-id="cghero05"] p { color: #C3CEDD !important; }

/* ── Stats: four dial gauges ─────────────────────────────────────────────
   Each Elementor Counter sits inside a 270° gauge: a tick ring plus an
   accent arc that sweeps round on load. Values, suffixes, labels and notes
   are still edited on the Counter / Heading / Text widgets (cgs2*).
   ──────────────────────────────────────────────────────────────────────── */
@property --cgx-sweep { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
body.home [data-id="cgs2grid"] {
	counter-reset: cgx-stat;
	border-radius: 20px !important;
	overflow: hidden;
	box-shadow: 0 50px 80px -48px rgba(7, 17, 31, .6), 0 0 0 1px rgba(12, 24, 37, .04) !important;
}
body.home [data-id="cgs2grid"] > .e-con {
	position: relative;
	counter-increment: cgx-stat;
	justify-content: flex-start !important;
	--padding-top: 44px !important;
	--padding-bottom: 38px !important;
	transition: background-color .4s ease;
}
body.home [data-id="cgs2grid"] > .e-con::before {
	content: "";
	position: absolute;
	top: 0;
	left: 24px;
	right: 24px;
	height: 3px;
	border-radius: 0 0 3px 3px;
	background: linear-gradient(90deg, var(--cgx-accent), var(--cgx-ice));
	transform: scaleX(0);
	transition: transform .6s var(--cgx-ease);
}
body.home [data-id="cgs2grid"] > .e-con:hover { background-color: #F8FAFE !important; }
body.home [data-id="cgs2grid"] > .e-con:hover::before { transform: scaleX(1); }

/* The gauge */
body.home [data-id="cgs2grid"] > .e-con .elementor-widget-counter {
	position: relative;
	width: 160px;
	height: 160px;
	margin: 0 auto 6px !important;
	display: grid;
	place-items: center;
}
body.home [data-id="cgs2grid"] > .e-con .elementor-widget-counter::before,
body.home [data-id="cgs2grid"] > .e-con .elementor-widget-counter::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
	-webkit-mask-composite: source-in;
	        mask-composite: intersect;
}
/* Tick ring: minor ticks every 9°, majors every 45°, open at the bottom. */
/* Ticks are painted as full rays, then the centre disc and the bottom 90°
   are covered in the cell colour, leaving a 10px tick band open at the bottom. */
body.home [data-id="cgs2grid"] > .e-con { --cgx-cell: #FFFFFF; }
body.home [data-id="cgs2grid"] > .e-con:hover { --cgx-cell: #F8FAFE; }
body.home [data-id="cgs2grid"] > .e-con .elementor-widget-counter::before {
	inset: 0;
	background:
		radial-gradient(closest-side, var(--cgx-cell) calc(100% - 10px), transparent calc(100% - 10px + .5px)),
		conic-gradient(from 135deg, var(--cgx-cell) 0 90deg, transparent 90deg),
		repeating-conic-gradient(from -135deg, rgba(27, 63, 160, .6) 0 1.2deg, transparent 1.2deg 45deg),
		repeating-conic-gradient(from -135deg, rgba(27, 63, 160, .22) 0 .8deg, transparent .8deg 9deg);
	transition: background-color .4s ease;
}
/* Accent arc (track + sweep). */
body.home [data-id="cgs2grid"] > .e-con .elementor-widget-counter::after {
	inset: 15px;
	background:
		conic-gradient(from -135deg, var(--cgx-accent) 0, #5B84F0 var(--cgx-sweep), transparent var(--cgx-sweep)),
		conic-gradient(from -135deg, #E6EBF4 0 270deg, transparent 270deg);
	-webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 4px));
	        mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 4px));
	--cgx-sweep: 270deg;
	animation: cgxGauge 1.8s var(--cgx-ease) both;
}
body.home [data-id="cgs2grid"] > .e-con:nth-child(2) .elementor-widget-counter::after { animation-delay: .12s; }
body.home [data-id="cgs2grid"] > .e-con:nth-child(3) .elementor-widget-counter::after { animation-delay: .24s; }
body.home [data-id="cgs2grid"] > .e-con:nth-child(4) .elementor-widget-counter::after { animation-delay: .36s; }
html.cgx-intro body.home [data-id="cgs2grid"] > .e-con .elementor-widget-counter::after { animation-delay: 1.3s; }
@keyframes cgxGauge { from { --cgx-sweep: 0deg; } to { --cgx-sweep: 270deg; } }
body.home [data-id="cgs2grid"] > .e-con .elementor-widget-counter::after { transition: filter .4s ease; }
body.home [data-id="cgs2grid"] > .e-con:hover .elementor-widget-counter::after { filter: drop-shadow(0 0 6px rgba(53, 99, 224, .55)); }
body.home [data-id="cgs2grid"] > .e-con .elementor-counter { position: relative; z-index: 1; }
body.home [data-id="cgs2grid"] > .e-con .elementor-counter-number-wrapper {
	height: auto;
	display: flex !important;
	align-items: flex-start;
	justify-content: center;
	font-size: 31px !important;
	font-weight: 600 !important;
	letter-spacing: -.03em !important;
	font-variant-numeric: tabular-nums;
	color: var(--cgx-ink) !important;
	-webkit-text-fill-color: currentColor;
	background: none;
}
body.home [data-id="cgs2grid"] > .e-con .elementor-counter-number-wrapper[style] { font-size: 31px !important; color: var(--cgx-ink) !important; }
body.home [data-id="cgs2grid"] > .e-con .elementor-counter-number-suffix,
body.home [data-id="cgs2grid"] > .e-con .elementor-counter-number-prefix {
	font-size: .5em !important;
	margin: .2em 0 0 .08em;
	color: var(--cgx-accent) !important;
	letter-spacing: 0 !important;
}
body.home [data-id="cgs2grid"] > .e-con .elementor-widget-heading .elementor-heading-title {
	font-family: var(--cgx-head) !important;
	font-size: 17px !important;
	font-weight: 600 !important;
	-webkit-text-stroke: 0 !important;
	color: var(--cgx-ink) !important;
}
body.home [data-id="cgs2grid"] > .e-con .elementor-widget-text-editor { font-size: 14.5px !important; line-height: 1.55 !important; max-width: 220px; margin-left: auto !important; margin-right: auto !important; }

/* ── 2. About: copy + checklist | framed photo + sectors card ──────────── */
body.home .cgx-about { position: relative; overflow: hidden; }
body.home .cgx-about .cgx-title .elementor-heading-title { margin-top: 18px; max-width: 560px; }
body.home .cgx-hl2 {
	background: linear-gradient(92deg, var(--cgx-accent) 0%, #4C74E6 100%);
	-webkit-background-clip: text;
	        background-clip: text;
	color: transparent;
}
body.home .cgx-about-copy .cgx-lead { margin-top: 22px !important; }
body.home .cgx-about-copy .cgx-lead p { font-size: 17px; line-height: 1.75; margin: 0; }
body.home .cgx-about-points { width: 100%; margin-top: 28px !important; }
body.home .cgx-about-points .elementor-icon-list-items {
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	gap: 0 28px;
	border-top: 1px solid var(--cgx-line);
}
body.home .cgx-about-points .elementor-icon-list-item {
	align-items: flex-start !important;
	padding: 16px 0 !important;
	border-bottom: 1px solid var(--cgx-line);
	margin: 0 !important;
}
body.home .cgx-about-points .elementor-icon-list-item::after { display: none !important; }
body.home .cgx-about-points .elementor-icon-list-icon {
	flex: none;
	display: grid !important;
	place-items: center;
	width: 22px;
	height: 22px;
	margin-top: 1px;
	border-radius: 6px;
	background: #EAF0FD;
	transition: background-color .3s ease;
}
body.home .cgx-about-points .elementor-icon-list-icon svg { width: 10px !important; height: 10px !important; fill: var(--cgx-accent) !important; transition: fill .3s ease; }
body.home .cgx-about-points .elementor-icon-list-item:hover .elementor-icon-list-icon { background: var(--cgx-accent); }
body.home .cgx-about-points .elementor-icon-list-item:hover svg { fill: #fff !important; }
body.home .cgx-about-points .elementor-icon-list-text { padding-left: 12px !important; font-size: 15px !important; line-height: 1.5 !important; color: var(--cgx-ink) !important; }
body.home .cgx-link { margin-top: 28px !important; }
body.home .cgx-link .elementor-button {
	padding: 0 0 4px !important;
	color: var(--cgx-accent) !important;
	background: none !important;
	box-shadow: inset 0 -1px 0 rgba(27, 63, 160, .35) !important;
	border-radius: 0 !important;
	font-size: 13px !important;
	letter-spacing: .14em;
	text-transform: uppercase;
}
body.home .cgx-link .elementor-button::after { content: none; }
body.home .cgx-link .elementor-button:hover { box-shadow: inset 0 -2px 0 var(--cgx-accent) !important; }
body.home .cgx-link .elementor-button-icon svg { width: 12px; fill: currentColor; }

/* Photo: offset navy plate with drafting grid behind a clean frame. */
body.home .cgx-about-media { position: relative; padding: 0 0 36px 36px !important; }
body.home .cgx-about-media::before {
	content: "" !important;
	position: absolute !important;
	left: 0 !important;
	bottom: 0 !important;
	top: 56px !important;
	right: 56px !important;
	width: auto !important;
	height: auto !important;
	border-radius: 20px;
	background: var(--cgx-grid), var(--cgx-navy) !important;
	background-size: 28px 28px, 28px 28px, auto !important;
	opacity: 1 !important;
}
body.home .cgx-about-photo { position: relative; z-index: 1; overflow: hidden; border-radius: 18px; box-shadow: 0 40px 70px -40px rgba(7, 17, 31, .6); }
body.home .cgx-about-photo img {
	display: block;
	width: 100% !important;
	height: 480px !important;
	object-fit: cover;
	object-position: 55% 50%;
	border-radius: 18px !important;
	transition: transform 1.4s var(--cgx-ease) !important;
}
body.home .cgx-about-media:hover .cgx-about-photo img { transform: scale(1.04); }
/* Floating sectors card, bottom-left over the plate. */
body.home .cgx-about-card {
	position: absolute !important;
	left: 0;
	bottom: 0;
	z-index: 2;
	width: min(330px, 80%) !important;
	--padding-top: 20px !important;
	--padding-right: 22px !important;
	--padding-bottom: 20px !important;
	--padding-left: 22px !important;
	background: #fff !important;
	border-radius: 14px;
	border-left: 3px solid var(--cgx-accent);
	box-shadow: 0 30px 50px -24px rgba(7, 17, 31, .45);
}
body.home .cgx-about-card__label .elementor-heading-title {
	font: 500 11px/1 var(--cgx-mono) !important;
	letter-spacing: .2em !important;
	text-transform: uppercase;
	color: var(--cgx-accent) !important;
}
body.home .cgx-about-card { --gap: 10px !important; --row-gap: 10px !important; }
body.home .cgx-about-card__text { margin-top: 0 !important; }
body.home .cgx-about-card__text p { margin: 0; font-family: var(--cgx-head); font-size: 16px; font-weight: 500; line-height: 1.5; color: var(--cgx-ink); }
/* Reveal: photo wipes in, card rises after it. */
html.cgx-anim body.home .cgx-rv .cgx-about-photo { transition: clip-path 1.3s var(--cgx-ease) .15s; }
html.cgx-anim body.home .cgx-rv:not(.is-in) .cgx-about-photo { clip-path: inset(0 0 0 100% round 18px); }
html.cgx-anim body.home .cgx-rv .cgx-about-card { transition: opacity .8s var(--cgx-ease) .7s, transform .9s var(--cgx-ease) .7s; }
html.cgx-anim body.home .cgx-rv:not(.is-in) .cgx-about-card { opacity: 0; transform: translate3d(0, 24px, 0); }
@media (max-width: 1024px) {
	body.home .cgx-about-photo img { height: 400px !important; }
}
@media (max-width: 767px) {
	body.home .cgx-about-points .elementor-icon-list-items { grid-template-columns: 1fr; }
	body.home .cgx-about-media { padding: 0 0 26px 18px !important; }
	body.home .cgx-about-media::before { top: 40px !important; right: 30px !important; }
	body.home .cgx-about-photo img { height: 280px !important; }
	body.home .cgx-about-card { position: relative !important; margin: -48px 0 0 14px !important; }
	body.home [data-id="cgs2grid"] > .e-con .elementor-widget-counter { width: 112px; height: 112px; }
	body.home [data-id="cgs2grid"] > .e-con .elementor-counter-number-wrapper,
	body.home [data-id="cgs2grid"] > .e-con .elementor-counter-number-wrapper[style] { font-size: 23px !important; }
	body.home [data-id="cgs2grid"] > .e-con { --padding-top: 34px !important; --padding-bottom: 26px !important; }
}

/* ── Card system (products · capabilities · industries · blog · why-us) ── */
body.home :is(.cgprod-grid, .cgcap-grid, .cgind-grid, .cgblog-grid) h3.elementor-heading-title,
body.home .cgwhy-card-title {
	font-family: var(--cgx-head) !important;
	font-size: 18px !important;
	font-weight: 600 !important;
	line-height: 1.35 !important;
	letter-spacing: -.01em !important;
	text-transform: none !important;
	color: var(--cgx-ink) !important;
}
body.home :is(.cgprod-grid, .cgcap-grid, .cgind-grid, .cgblog-grid) .elementor-widget-text-editor,
body.home :is(.cgprod-grid, .cgcap-grid, .cgind-grid, .cgblog-grid) .elementor-widget-text-editor p,
body.home .cg-excerpt,
body.home .cgwhy-card-body {
	letter-spacing: normal !important;
	color: var(--cgx-body) !important;
	font-size: 15px !important;
	line-height: 1.65 !important;
}
body.home :is(.cgcap-grid, .cgind-grid, .cgblog-grid) .e-loop-item > a.e-con {
	height: 100%;
	border-color: var(--cgx-line) !important;
	border-radius: 14px !important;
	background-image: radial-gradient(420px circle at var(--sx, 50%) var(--sy, -40%), rgba(53, 99, 224, .08), transparent 60%);
	transition: transform .5s var(--cgx-ease), box-shadow .5s ease, border-color .4s ease !important;
}
body.home :is(.cgcap-grid, .cgind-grid, .cgblog-grid) .e-loop-item > a.e-con:hover {
	transform: translateY(-6px);
	border-color: rgba(27, 63, 160, .32) !important;
	box-shadow: 0 30px 50px -32px rgba(12, 24, 37, .45);
}
body.home :is(.cgcap-grid, .cgind-grid, .cgblog-grid) .e-loop-item > a.e-con:hover h3.elementor-heading-title { color: var(--cgx-accent) !important; }
body.home :is(.cgcap-grid, .cgind-grid, .cgblog-grid) .elementor-widget-image { overflow: hidden; border-radius: 10px; }
body.home :is(.cgcap-grid, .cgind-grid, .cgblog-grid) .elementor-widget-image img {
	transition: transform 1.2s var(--cgx-ease), filter .6s ease !important;
}
body.home :is(.cgcap-grid, .cgind-grid, .cgblog-grid) a.e-con:hover .elementor-widget-image img { transform: scale(1.06); }
body.home .cgind-arrow { color: var(--cgx-accent) !important; }
/* Blog: equal-height cards, link pinned to the bottom */
body.home .cgblog-grid .e-loop-item > a.e-con { display: flex !important; flex-direction: column; }
body.home .cgblog-grid .e-loop-item > a.e-con > :last-child { margin-top: auto !important; }

/* ── Products list ───────────────────────────────────────────────────────
   Same two-column list (ordinal · title · text · photo), refined:
   - Row divider is drawn by the item itself so it can "draft" in on load.
   - Hover: a soft panel slides in behind the row, the accent rule runs
     along the top, the title gains an arrow, the photo lifts with a ring.
   - Load: rules draw left→right, ordinals focus in, text rises, and each
     photo opens like an iris while turning into place — staggered per row.
   Photos are each product's Featured Image (Products → edit → Featured image).
   ──────────────────────────────────────────────────────────────────────── */
body.home .cgprod-grid .e-loop-item { position: relative; }
body.home .cgprod-grid .e-loop-item::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	z-index: 1;
	height: 1px;
	background: var(--cgx-line);
	transform-origin: 0 50%;
}
body.home .cgprod-grid .e-loop-item [data-id="1841676"] {
	position: relative;
	isolation: isolate;
	border-top-color: transparent !important;
	transition: background-color .4s ease;
}
/* Hover panel */
body.home .cgprod-grid .e-loop-item [data-id="1841676"]::before {
	content: "";
	position: absolute;
	top: 10px;
	bottom: 10px;
	left: -18px;
	right: -18px;
	z-index: -1;
	border-radius: 16px;
	background: linear-gradient(90deg, #F3F6FC, #F8FAFE 70%, rgba(248, 250, 254, 0));
	transform: scaleX(0);
	transform-origin: 0 50%;
	opacity: 0;
	transition: transform .6s var(--cgx-ease), opacity .4s ease;
}
body.home .cgprod-grid .e-loop-item:hover [data-id="1841676"]::before { transform: scaleX(1); opacity: 1; }
/* Accent rule along the top on hover */
body.home .cgprod-grid .e-loop-item [data-id="1841676"]::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	z-index: 2;
	height: 1px;
	background: linear-gradient(90deg, var(--cgx-accent), var(--cgx-ice));
	transform: scaleX(0);
	transform-origin: 0 50%;
	transition: transform .7s var(--cgx-ease);
}
body.home .cgprod-grid .e-loop-item:hover [data-id="1841676"]::after { transform: scaleX(1); }

/* Ordinal: mono number + rule that stretches on hover */
body.home .cgprod-ordinal { display: flex; align-items: center; gap: 12px; }
body.home .cgprod-ordinal::before {
	font-size: 13px !important;
	font-weight: 500 !important;
	letter-spacing: .16em;
	color: var(--cgx-accent) !important;
}
body.home .cgprod-ordinal::after {
	content: "";
	width: 28px;
	height: 1px;
	background: rgba(27, 63, 160, .35);
	transform-origin: 0 50%;
	transition: transform .5s var(--cgx-ease), background-color .3s ease;
}
body.home .cgprod-grid .e-loop-item:hover .cgprod-ordinal::after { transform: scaleX(2.4); background: var(--cgx-accent); }

/* Title arrow */
body.home .cgprod-grid h3.elementor-heading-title { display: inline-flex; align-items: center; gap: 10px; }
body.home .cgprod-grid h3.elementor-heading-title::after {
	content: "\2192";
	font-family: Inter, sans-serif;
	font-size: 16px;
	color: var(--cgx-accent);
	opacity: 0;
	transform: translateX(-8px);
	transition: opacity .3s ease, transform .4s var(--cgx-ease);
}
body.home .cgprod-grid .e-loop-item:hover h3.elementor-heading-title::after { opacity: 1; transform: none; }

/* Photo */
body.home .cgprod-grid .elementor-widget-image { flex: none; }
body.home .cgprod-grid .elementor-widget-image img {
	width: 140px !important;
	height: 140px !important;
	object-fit: cover;
	border-radius: 14px !important;
	box-shadow: 0 0 0 1px rgba(12, 24, 37, .06), 0 16px 28px -20px rgba(7, 17, 31, .55);
	transition: transform .9s var(--cgx-ease), box-shadow .5s ease !important;
}
body.home .cgprod-grid .e-loop-item:hover .elementor-widget-image img {
	transform: scale(1.06) rotate(-2deg);
	box-shadow: 0 0 0 3px rgba(53, 99, 224, .28), 0 22px 36px -18px rgba(7, 17, 31, .55);
}

/* Load animation (section gets .is-in from home.js; --d staggers each row) */
html.cgx-anim body.home .cgx-rv .cgprod-grid .e-loop-item::before { transition: transform 1s var(--cgx-ease) var(--d, 0ms); }
html.cgx-anim body.home .cgx-rv .cgprod-grid .cgprod-ordinal { transition: opacity .6s ease calc(var(--d, 0ms) + 250ms), filter .6s ease calc(var(--d, 0ms) + 250ms), transform .7s var(--cgx-ease) calc(var(--d, 0ms) + 250ms); }
html.cgx-anim body.home .cgx-rv .cgprod-grid :is([data-id="904880c"], [data-id="420e8e8"]) { transition: opacity .8s ease calc(var(--d, 0ms) + 330ms), transform .9s var(--cgx-ease) calc(var(--d, 0ms) + 330ms); }
html.cgx-anim body.home .cgx-rv .cgprod-grid [data-id="420e8e8"] { transition-delay: calc(var(--d, 0ms) + 420ms); }
html.cgx-anim body.home .cgx-rv .cgprod-grid [data-id="d73db53"] { transition: clip-path 1.1s var(--cgx-ease) calc(var(--d, 0ms) + 200ms), transform 1.3s var(--cgx-ease) calc(var(--d, 0ms) + 200ms); }
/* The row itself stays put; its parts animate instead of the generic fade-up. */
html.cgx-anim body.home .cgx-rv:not(.is-in) .cgprod-grid .e-loop-item { opacity: 1; transform: none; }
html.cgx-anim body.home .cgx-rv:not(.is-in) .cgprod-grid .e-loop-item::before { transform: scaleX(0); }
html.cgx-anim body.home .cgx-rv:not(.is-in) .cgprod-grid .cgprod-ordinal { opacity: 0; filter: blur(6px); transform: translateY(6px); }
html.cgx-anim body.home .cgx-rv:not(.is-in) .cgprod-grid :is([data-id="904880c"], [data-id="420e8e8"]) { opacity: 0; transform: translateY(16px); }
html.cgx-anim body.home .cgx-rv:not(.is-in) .cgprod-grid [data-id="d73db53"] { clip-path: circle(0% at 50% 50%); transform: rotate(-24deg) scale(.9); }
html.cgx-anim body.home .cgx-rv.is-in .cgprod-grid [data-id="d73db53"] { clip-path: circle(75% at 50% 50%); }
html.cgx-anim body.home .cgx-rv.is-done .cgprod-grid [data-id="d73db53"] { clip-path: none; }
@media (max-width: 767px) {
	body.home .cgprod-grid .elementor-widget-image img { width: 112px !important; height: 112px !important; }
	body.home .cgprod-grid .e-loop-item [data-id="1841676"]::before { left: -10px; right: -10px; }
}

/* ── Capabilities — list + photo showcase (desktop) ──────────────────────
   Same loop grid (Capabilities posts). On desktop the five items become a
   numbered list; the active one (hover / focus / auto-advance, home.js)
   opens its description and shows its photo in the large panel on the
   right. Tablet/phone keep the existing card slider.
   ──────────────────────────────────────────────────────────────────────── */
@media (min-width: 900px) {
	body.home [data-id="ed8de9e"] .elementor-loop-container {
		display: grid !important;
		grid-template-columns: minmax(0, 5fr) minmax(0, 7fr) !important;
		grid-auto-rows: auto;
		column-gap: 72px !important;
		row-gap: 0 !important;
		position: relative;
		min-height: 600px;
		align-content: start;
		counter-reset: cgx-cap;
	}
	body.home [data-id="ed8de9e"] .elementor-loop-container > .e-loop-item {
		grid-column: 1 !important;
		position: static !important;
		counter-increment: cgx-cap;
	}
	/* Rows stay unpositioned so each photo can fill the container's right column. */
	body.home [data-id="ed8de9e"] .e-loop-item > a.e-con {
		position: static !important;
		display: grid !important;
		grid-template-columns: 56px 1fr;
		align-items: start;
		height: auto !important;
		padding: 26px 0 26px 22px !important;
		border: 0 !important;
		border-bottom: 1px solid var(--cgx-line) !important;
		border-radius: 0 !important;
		background: linear-gradient(90deg, var(--cgx-accent), var(--cgx-ice)) no-repeat 0 100% / 0 2px !important;
		box-shadow: inset 0 0 0 transparent !important;
		transform: none !important;
		cursor: pointer;
		--min-height: 0px !important;
		min-height: 0 !important;
		transition: box-shadow .4s var(--cgx-ease) !important;
	}
	body.home [data-id="ed8de9e"] .elementor-loop-container > .e-loop-item { height: auto !important; }
	body.home [data-id="ed8de9e"] [data-id="0269ef9"] { padding: 0 !important; }
	body.home [data-id="ed8de9e"] .e-loop-item:first-of-type > a.e-con { border-top: 1px solid var(--cgx-line) !important; }
	/* Number: the row's ::before becomes the first grid cell */
	body.home [data-id="ed8de9e"] .e-loop-item > a.e-con::before {
		content: counter(cgx-cap, decimal-leading-zero) !important;
		position: static !important;
		inset: auto !important;
		width: auto !important;
		height: auto !important;
		grid-column: 1;
		grid-row: 1;
		padding-top: 7px;
		background: none !important;
		opacity: 1 !important;
		mix-blend-mode: normal !important;
		border: 0 !important;
		font: 500 12px/1 var(--cgx-mono);
		letter-spacing: .18em;
		color: #9AA6B8;
		transition: color .3s ease;
	}
	body.home [data-id="ed8de9e"] [data-id="0269ef9"],
	body.home [data-id="ed8de9e"] [data-id="5dd82c2"] { grid-column: 2; margin: 0 !important; }
	body.home [data-id="ed8de9e"] [data-id="0269ef9"] .elementor-heading-title {
		font-size: 21px !important;
		color: #7B8799 !important;
		transition: color .35s ease;
	}
	/* Description opens for the active item only */
	body.home [data-id="ed8de9e"] [data-id="5dd82c2"] {
		max-height: 0;
		opacity: 0;
		overflow: hidden;
		transition: max-height .6s var(--cgx-ease), opacity .4s ease, margin .5s var(--cgx-ease);
	}
	/* Active state: accent bar on the left, timed progress line along the bottom */
	body.home [data-id="ed8de9e"] .e-loop-item.is-active > a.e-con { box-shadow: inset 2px 0 0 var(--cgx-accent) !important; }
	body.home [data-id="ed8de9e"] .e-loop-item.is-active > a.e-con::before { color: var(--cgx-accent); }
	body.home [data-id="ed8de9e"] .e-loop-item.is-active [data-id="0269ef9"] .elementor-heading-title { color: var(--cgx-ink) !important; }
	body.home [data-id="ed8de9e"] .e-loop-item.is-active [data-id="5dd82c2"] { max-height: 160px; opacity: 1; margin-top: 10px !important; }
	body.home [data-id="ed8de9e"].is-cycling .e-loop-item.is-active > a.e-con { animation: cgxCapBar var(--cgx-cap-t, 6s) linear both; }
	body.home [data-id="ed8de9e"]:hover .e-loop-item.is-active > a.e-con { animation-play-state: paused; }
	@keyframes cgxCapBar { from { background-size: 0 2px; } to { background-size: 100% 2px; } }
	body.home [data-id="ed8de9e"] .e-loop-item:not(.is-active) > a.e-con:hover [data-id="0269ef9"] .elementor-heading-title { color: var(--cgx-ink) !important; }

	/* Photo panel: every item's image stacks in the right column; the active one shows. */
	body.home [data-id="ed8de9e"] [data-id="204e691"] {
		position: absolute !important;
		top: 0;
		bottom: 0;
		right: 0;
		left: calc((100% - 72px) * 5 / 12 + 72px);
		width: auto !important;
		max-width: none !important;
		margin: 0 !important;
		overflow: hidden;
		border-radius: 22px;
		/* Crossfade only (opacity is GPU-composited; no clip-path repaints). */
		opacity: 0;
		transition: opacity .9s ease;
		pointer-events: none;
		will-change: opacity;
		transform: translateZ(0);
		backface-visibility: hidden;
	}
	body.home [data-id="ed8de9e"] .e-loop-item.is-active [data-id="204e691"] {
		opacity: 1;
		pointer-events: auto;
		z-index: 1;
		box-shadow: 0 50px 80px -50px rgba(7, 17, 31, .6);
	}
	/* Smooth zoom: the active photo drifts from 1.0 to 1.1 for the whole time it's
	   shown (matches the 6s auto-advance); the outgoing one keeps its scale while it fades. */
	body.home [data-id="ed8de9e"] [data-id="204e691"] img {
		width: 100% !important;
		height: 100% !important;
		max-height: none !important;
		object-fit: cover;
		border-radius: 0 !important;
		transform: scale(1.06) translateZ(0);
		transition: transform 1.4s cubic-bezier(.22, .61, .36, 1) !important;
		will-change: transform;
		backface-visibility: hidden;
	}
	body.home [data-id="ed8de9e"] .e-loop-item.is-active [data-id="204e691"] img {
		transform: scale(1) translateZ(0);
	}
	@keyframes cgxCapZoom {
		from { transform: scale(1) translateZ(0); }
		to { transform: scale(1.1) translateZ(0); }
	}
	/* Panel chrome: navy fade, index + "Explore" tag */
	body.home [data-id="ed8de9e"] [data-id="204e691"]::after {
		content: "Explore capability  \2192";
		position: absolute;
		left: 28px;
		bottom: 26px;
		padding: 12px 18px;
		background: rgba(7, 17, 31, .72);
		-webkit-backdrop-filter: blur(10px);
		        backdrop-filter: blur(10px);
		border: 1px solid rgba(157, 184, 255, .3);
		border-left: 2px solid var(--cgx-ice);
		font: 500 11px/1 var(--cgx-mono);
		letter-spacing: .18em;
		text-transform: uppercase;
		color: #fff;
		white-space: pre;
	}
	body.home [data-id="ed8de9e"] [data-id="204e691"]::before {
		content: attr(data-cap);
		position: absolute;
		inset: 0;
		z-index: 1;
		padding: 26px 28px;
		text-align: left;
		font: 500 12px/1 var(--cgx-mono);
		letter-spacing: .2em;
		color: rgba(255, 255, 255, .85);
		background: linear-gradient(0deg, rgba(7, 17, 31, .55), transparent 40%), linear-gradient(180deg, rgba(7, 17, 31, .45), transparent 30%);
		pointer-events: none;
	}
	body.home [data-id="ed8de9e"] [data-id="204e691"]::after { z-index: 2; }
}

/* ── Industries — photo cards (desktop / tablet ≥ 900px) ────────────────
   3-column grid of image cards: photo fills the card, title sits on a
   navy fade at the bottom; on hover the photo zooms, the card lifts and
   the description + arrow slide up. Content: Industries posts (template 150).
   ──────────────────────────────────────────────────────────────────────── */
@media (min-width: 900px) {
	body.home [data-id="76f3c44"] .elementor-loop-container {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 20px !important;
	}
	body.home [data-id="76f3c44"] .elementor-loop-container > .e-loop-item { height: 100% !important; }
	body.home [data-id="76f3c44"] .e-loop-item > a[data-id="8e2e8fd"] {
		position: relative !important;
		display: flex !important;
		flex-direction: column !important;
		justify-content: flex-end !important;
		gap: 0 !important;
		height: 100% !important;
		min-height: 280px;
		padding: 26px !important;
		overflow: hidden;
		border: 0 !important;
		border-radius: 18px !important;
		background: var(--cgx-navy) !important;
		box-shadow: 0 24px 44px -30px rgba(7, 17, 31, .55) !important;
		transform: translateY(0) !important;
		transition: transform .5s var(--cgx-ease), box-shadow .5s ease !important;
	}
	body.home [data-id="76f3c44"] .e-loop-item > a[data-id="8e2e8fd"]:hover {
		transform: translateY(-6px) !important;
		box-shadow: 0 36px 60px -30px rgba(7, 17, 31, .7) !important;
	}
	/* Photo fills the card */
	body.home [data-id="76f3c44"] [data-id="cgindimg"] {
		position: absolute !important;
		inset: 0;
		width: auto !important;
		max-width: none !important;
		margin: 0 !important;
		overflow: hidden;
	}
	body.home [data-id="76f3c44"] [data-id="cgindimg"] img {
		width: 100% !important;
		height: 100% !important;
		aspect-ratio: auto !important;
		object-fit: cover;
		border-radius: 0 !important;
		transition: transform 1.2s var(--cgx-ease) !important;
	}
	body.home [data-id="76f3c44"] a.e-con:hover [data-id="cgindimg"] img { transform: scale(1.07); }
	body.home [data-id="76f3c44"] [data-id="cgindimg"]::after {
		content: "";
		position: absolute;
		inset: 0;
		background: linear-gradient(180deg, rgba(7, 17, 31, .05) 0%, rgba(7, 17, 31, .25) 40%, rgba(7, 17, 31, .92) 100%);
		transition: background-color .5s ease;
	}
	body.home [data-id="76f3c44"] a.e-con:hover [data-id="cgindimg"]::after { background-color: rgba(27, 63, 160, .18); }
	/* Accent rule that draws on hover */
	body.home [data-id="76f3c44"] .e-loop-item > a[data-id="8e2e8fd"]::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 3;
		height: 3px;
		background: linear-gradient(90deg, var(--cgx-accent), var(--cgx-ice));
		transform: scaleX(0);
		transform-origin: 0 50%;
		transition: transform .6s var(--cgx-ease);
	}
	body.home [data-id="76f3c44"] .e-loop-item > a[data-id="8e2e8fd"]:hover::after { transform: scaleX(1); }
	/* Title + arrow + description over the photo */
	body.home [data-id="76f3c44"] [data-id="2e51a2c"],
	body.home [data-id="76f3c44"] [data-id="db39314"] { position: relative; z-index: 2; }
	body.home [data-id="76f3c44"] [data-id="2e51a2c"] {
		--padding-left: 0px;
		--padding-right: 0px;
		width: 100%;
		justify-content: space-between;
		align-items: center;
		gap: 12px;
	}
	body.home [data-id="76f3c44"] .e-loop-item a.e-con h3.elementor-heading-title,
	body.home [data-id="76f3c44"] .e-loop-item a.e-con:hover h3.elementor-heading-title {
		color: #fff !important;
		font-size: 20px !important;
		line-height: 1.25 !important;
		text-shadow: 0 1px 12px rgba(0, 0, 0, .4);
	}
	body.home [data-id="76f3c44"] .cgind-arrow {
		display: grid !important;
		flex: none;
		width: 36px;
		height: 36px;
		padding: 9px;
		border-radius: 50%;
		background: rgba(255, 255, 255, .12);
		border: 1px solid rgba(255, 255, 255, .25);
		color: #fff !important;
		transition: background-color .3s ease, transform .4s var(--cgx-ease) !important;
	}
	/* White arrow on the blue chip (an older style.css hover rule turned the arrow blue too). */
	body.home [data-id="76f3c44"] .e-loop-item a.e-con:hover .cgind-arrow { background: var(--cgx-accent); border-color: var(--cgx-accent); color: #fff !important; transform: rotate(45deg) !important; }
	body.home [data-id="76f3c44"] [data-id="db39314"] {
		max-height: 0;
		opacity: 0;
		overflow: hidden;
		margin: 0 !important;
		padding: 0 !important;
		transition: max-height .5s var(--cgx-ease), opacity .35s ease, margin .5s var(--cgx-ease);
	}
	body.home [data-id="76f3c44"] [data-id="db39314"],
	body.home [data-id="76f3c44"] [data-id="db39314"] p { color: #D5DEEB !important; font-size: 14.5px !important; line-height: 1.6 !important; }
	body.home [data-id="76f3c44"] a.e-con:hover [data-id="db39314"],
	body.home [data-id="76f3c44"] a.e-con:focus-visible [data-id="db39314"] { max-height: 120px; opacity: 1; margin-top: 10px !important; }
}
@media (min-width: 900px) and (hover: none) {
	/* Touch tablets: show descriptions permanently */
	body.home [data-id="76f3c44"] [data-id="db39314"] { max-height: none; opacity: 1; margin-top: 10px !important; }
}

@media (min-width: 900px) and (prefers-reduced-motion: reduce) {
	body.home [data-id="76f3c44"] .elementor-loop-container > .e-loop-item,
	body.home [data-id="ed8de9e"] [data-id="204e691"] { transition: none !important; }
	body.home [data-id="ed8de9e"] .e-loop-item.is-active [data-id="204e691"] img { animation: none !important; transform: none; }
}

/* Why us */
body.home .cgwhy-card {
	border-color: var(--cgx-line) !important;
	border-radius: 14px !important;
	background-image: radial-gradient(380px circle at var(--sx, 50%) var(--sy, -40%), rgba(53, 99, 224, .09), transparent 60%);
}
body.home .cgwhy-card:hover { box-shadow: 0 30px 50px -32px rgba(12, 24, 37, .4); border-color: rgba(27, 63, 160, .3) !important; }
body.home .cgwhy-icon-wrap { transition: transform .5s var(--cgx-ease), box-shadow .5s ease; }
body.home .cgwhy-card:hover .cgwhy-icon-wrap { transform: rotate(-8deg) scale(1.06); box-shadow: 0 10px 22px -10px rgba(27, 63, 160, .8); }
body.home .cgwhy-num { font-family: var(--cgx-mono) !important; color: #E4E9F1 !important; transition: color .4s ease; }
body.home .cgwhy-card:hover .cgwhy-num { color: #CFDAF5 !important; }

/* ── CTA A · split photo ("Have a drawing ready?") ─────────────────────── */
body.home .elementor-element.cgx-cta--split {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background-color: var(--cgx-navy) !important;
}
body.home .elementor-element.cgx-cta--split::before {
	content: "" !important;
	position: absolute;
	inset: 0;
	z-index: 0;
	background:
		linear-gradient(100deg, transparent calc(50% - 1px), rgba(157, 184, 255, .4) 50%, transparent calc(50% + 1px)),
		linear-gradient(100deg, var(--cgx-navy) 0%, var(--cgx-navy) 40%, rgba(7, 17, 31, .82) 50%, rgba(7, 17, 31, .3) 76%, rgba(7, 17, 31, .12) 100%),
		var(--cgx-grid) !important;
	background-size: auto, auto, 56px 56px, 56px 56px !important;
	opacity: 1 !important;
}
body.home .elementor-element.cgx-cta--split > * { position: relative; z-index: 1; }
body.home .elementor-element.cgx-cta--split .cgx-title .elementor-heading-title { max-width: 620px; }
body.home .elementor-element.cgx-cta--split .elementor-widget.cgx-lead { max-width: 560px; }

/* ── CTA B · inspection card (Quality) ─────────────────────────────────── */
body.home .elementor-element.cgx-cta--card {
	border-radius: 20px !important;
	overflow: hidden;
	background: var(--cgx-navy) !important;
	box-shadow: 0 50px 80px -50px rgba(7, 17, 31, .7);
	transition: box-shadow .6s ease;
}
body.home [data-id="cgqccont1"] {
	background: radial-gradient(520px 360px at 0% 0%, rgba(53, 99, 224, .25), transparent 70%), var(--cgx-grid), var(--cgx-navy) !important;
	background-size: auto, 56px 56px, 56px 56px, auto !important;
}
body.home [data-id="cgqcimg01"] { position: relative; overflow: hidden; }
body.home [data-id="cgqcimgw1"] img {
	filter: saturate(.9) contrast(1.05);
	transition: transform 1.6s var(--cgx-ease) !important;
}
body.home .cgx-cta--card:hover [data-id="cgqcimgw1"] img { transform: scale(1.05); }
/* Corner brackets + a slow scan line: the photo reads as an inspection frame. */
body.home [data-id="cgqcimg01"]::before {
	content: "";
	position: absolute;
	inset: 22px;
	width: auto !important;
	height: auto !important;
	z-index: 2;
	pointer-events: none;
	--c: rgba(157, 184, 255, .9);
	background:
		linear-gradient(var(--c), var(--c)) 0 0 / 22px 1.5px, linear-gradient(var(--c), var(--c)) 0 0 / 1.5px 22px,
		linear-gradient(var(--c), var(--c)) 100% 0 / 22px 1.5px, linear-gradient(var(--c), var(--c)) 100% 0 / 1.5px 22px,
		linear-gradient(var(--c), var(--c)) 0 100% / 22px 1.5px, linear-gradient(var(--c), var(--c)) 0 100% / 1.5px 22px,
		linear-gradient(var(--c), var(--c)) 100% 100% / 22px 1.5px, linear-gradient(var(--c), var(--c)) 100% 100% / 1.5px 22px;
	background-repeat: no-repeat;
}
body.home [data-id="cgqcimg01"]::after {
	content: "";
	position: absolute;
	left: 22px;
	right: 22px;
	top: 22px;
	z-index: 2;
	width: auto !important;
	height: 2px !important;
	pointer-events: none;
	background: linear-gradient(90deg, transparent, var(--cgx-ice), transparent);
	box-shadow: 0 0 18px 2px rgba(157, 184, 255, .55);
	animation: cgxScan 4.8s ease-in-out infinite;
}
@keyframes cgxScan {
	0%, 100% { transform: translateY(0); opacity: 0; }
	10%, 90% { opacity: 1; }
	50% { transform: translateY(calc(var(--scan-h, 320px))); }
}
body.home [data-id="cgqcbtn02"] .elementor-button { background-color: var(--cgx-accent-2) !important; }

/* ── CTA C · parallax photo + glass panel ("No drawing?") ──────────────── */
body.home .elementor-element.cgx-cta--panel {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}
body.home .elementor-element.cgx-cta--panel::before {
	content: "" !important;
	position: absolute;
	inset: 0;
	z-index: 0;
	background:
		radial-gradient(ellipse 60% 70% at 50% 50%, rgba(7, 17, 31, .35), rgba(7, 17, 31, .9) 75%),
		var(--cgx-grid) !important;
	background-size: auto, 56px 56px, 56px 56px !important;
	opacity: 1 !important;
}
@media (min-width: 1025px) and (prefers-reduced-motion: no-preference) {
	body.home .elementor-element.cgx-cta--panel { background-attachment: fixed !important; }
}
body.home .elementor-element.cgx-cta--panel > * { position: relative; z-index: 1; }
/* Panel spans the page content width (same edge as every section):
   copy on the left, a divider, actions stacked on the right. */
body.home [data-id="bfdfd97"] {
	position: relative;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	justify-content: space-between !important;
	text-align: left;
	gap: 56px !important;
	width: min(1248px, 100vw - 40px) !important;
	max-width: none;
	margin: 0 auto;
	padding: 56px 60px !important;
	border-radius: 22px;
	background:
		linear-gradient(100deg, rgba(7, 17, 31, .9) 0%, rgba(7, 17, 31, .78) 55%, rgba(12, 26, 46, .55) 100%);
	-webkit-backdrop-filter: blur(10px) saturate(1.2);
	        backdrop-filter: blur(10px) saturate(1.2);
	box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .8);
}
body.home [data-id="3cbadac"] { flex: 1 1 auto !important; min-width: 0; max-width: 700px; }
body.home [data-id="a97b9a5"] {
	flex: none !important;
	width: auto !important;
	flex-direction: column !important;
	align-items: stretch !important;
	gap: 12px !important;
	padding-left: 56px !important;
	border-left: 1px solid rgba(157, 184, 255, .2);
}
body.home [data-id="a97b9a5"] .elementor-button { width: 100%; justify-content: center; min-width: 240px; }
/* Animated gradient hairline around the panel */
@property --cgx-a { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
body.home [data-id="bfdfd97"]::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	padding: 1px;
	background: conic-gradient(from var(--cgx-a), rgba(157, 184, 255, .08), rgba(157, 184, 255, .75), rgba(157, 184, 255, .08) 30%, rgba(157, 184, 255, .08) 70%, rgba(157, 184, 255, .6), rgba(157, 184, 255, .08));
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	        mask-composite: exclude;
	animation: cgxSpin 9s linear infinite;
	pointer-events: none;
}
@keyframes cgxSpin { to { --cgx-a: 360deg; } }
body.home [data-id="3cbadac"] { align-items: flex-start !important; text-align: left; }
body.home [data-id="3cbadac"] > .elementor-widget { width: 100% !important; max-width: none !important; }
body.home [data-id="3cbadac"] .elementor-heading-title { text-align: left !important; }
@media (max-width: 1024px) {
	body.home [data-id="bfdfd97"] { flex-direction: column !important; align-items: flex-start !important; gap: 28px !important; width: auto !important; align-self: stretch; }
	body.home [data-id="a97b9a5"] { flex-direction: row !important; flex-wrap: wrap; padding-left: 0 !important; border-left: 0; }
	body.home [data-id="a97b9a5"] .elementor-button { min-width: 0; }
}
body.home [data-id="782eee7"] .elementor-button {
	background: transparent !important;
	border: 1px solid rgba(255, 255, 255, .4) !important;
	color: #fff !important;
}
body.home [data-id="782eee7"] .elementor-button:hover { border-color: #fff !important; background: rgba(255, 255, 255, .08) !important; }

/* ── Our Process — navy production line ──────────────────────────────────
   Native Elementor: container .cgx-steps holds one .cgx-step per stage
   (Icon · Heading · Text). Duplicate a step to add one; numbers, the track
   and the lighting follow automatically. home.js sets --p (0→1) as the
   section scrolls and marks each step .is-lit when the fill reaches it.
   ──────────────────────────────────────────────────────────────────────── */
body.home .cgx-process .cgx-process-cta { align-self: flex-end; }
/* An older style.css rule zeroes this section's padding; restore it here. */
body.home .elementor-element.cgx-process { padding: 108px 0 !important; }
/* The inner box carried an extra 96px top padding on wide screens; spacing now lives on the section only. */
body.home .elementor-16 .elementor-element-1990eb6 { --padding-top: 0px !important; --padding-bottom: 0px !important; padding-top: 0 !important; padding-bottom: 0 !important; }
body.home .cgx-step { --gap: 0px !important; --row-gap: 0px !important; gap: 0 !important; }
@media (max-width: 1024px) { body.home .elementor-element.cgx-process { padding: 76px 0 !important; } }
@media (max-width: 767px) { body.home .elementor-element.cgx-process { padding: 60px 0 !important; } }
body.home .cgx-steps {
	position: relative;
	counter-reset: cgx-step;
	--node: 54px;
	--p: 1;
}
/* Track + fill (horizontal on desktop) */
body.home .cgx-steps::before,
body.home .cgx-steps::after {
	content: "" !important;
	position: absolute !important;
	top: calc(var(--node) / 2 - 1px) !important;
	left: calc(var(--node) / 2) !important;
	height: 2px !important;
	border-radius: 2px;
	pointer-events: none;
	opacity: 1 !important;
}
body.home .cgx-steps::before {
	right: 0 !important;
	width: auto !important;
	background: repeating-linear-gradient(90deg, rgba(157, 184, 255, .28) 0 8px, transparent 8px 14px) !important;
}
body.home .cgx-steps::after {
	width: calc((100% - var(--node) / 2) * var(--p)) !important;
	background: linear-gradient(90deg, var(--cgx-accent), var(--cgx-ice)) !important;
	box-shadow: 0 0 14px rgba(157, 184, 255, .55);
	transition: width .25s linear;
}
body.home .cgx-step {
	position: relative;
	z-index: 1;
	counter-increment: cgx-step;
	opacity: .5;
	transition: opacity .6s ease !important;
}
body.home .cgx-step.is-lit,
body.home .cgx-steps:not(.is-live) .cgx-step { opacity: 1; }
/* Node = the step's Icon widget */
body.home .cgx-step__node { margin: 0 !important; }
body.home .cgx-step__node .elementor-icon {
	display: grid !important;
	place-items: center;
	width: var(--node);
	height: var(--node);
	padding: 0 !important;
	border-radius: 50%;
	font-size: 19px !important;
	background: var(--cgx-navy-2) !important;
	border: 1px solid rgba(157, 184, 255, .35);
	color: var(--cgx-ice) !important;
	transition: background-color .5s ease, border-color .5s ease, box-shadow .5s ease, transform .5s var(--cgx-ease);
}
body.home .cgx-step__node .elementor-icon svg { width: 19px; height: 19px; fill: currentColor !important; transition: fill .4s ease; }
body.home .cgx-step.is-lit .cgx-step__node .elementor-icon,
body.home .cgx-steps:not(.is-live) .cgx-step__node .elementor-icon {
	background: var(--cgx-accent) !important;
	border-color: #5B84F0;
	color: #fff !important;
	box-shadow: 0 0 0 6px rgba(53, 99, 224, .18), 0 0 26px rgba(53, 99, 224, .55);
}
body.home .cgx-step:hover .cgx-step__node .elementor-icon { transform: translateY(-3px) rotate(-8deg); }
/* Copy */
body.home .cgx-step__title { margin-top: 22px !important; }
body.home .cgx-step__title .elementor-heading-title {
	font-family: var(--cgx-head) !important;
	font-size: 18px !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	color: #fff !important;
	transition: color .3s ease;
}
body.home .cgx-step__title .elementor-heading-title::before {
	content: "Step " counter(cgx-step, decimal-leading-zero);
	display: block;
	margin-bottom: 10px;
	font: 500 11px/1 var(--cgx-mono);
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--cgx-ice);
}
body.home .cgx-step:hover .cgx-step__title .elementor-heading-title { color: var(--cgx-ice) !important; }
body.home .cgx-step__text { margin-top: 10px !important; }
body.home .cgx-step__text,
body.home .cgx-step__text p { color: #9FB0C8 !important; font-size: 14.5px !important; line-height: 1.65 !important; margin: 0; }
/* Load reveal: steps rise one after another (the track then fills on scroll) */
html.cgx-anim body.home .cgx-rv .cgx-step { transition: opacity .8s ease var(--d, 0ms), transform .9s var(--cgx-ease) var(--d, 0ms) !important; }
html.cgx-anim body.home .cgx-rv:not(.is-in) .cgx-step { opacity: 0; transform: translate3d(0, 30px, 0); }
html.cgx-anim body.home .cgx-rv.is-done .cgx-step { transition: opacity .6s ease !important; }

/* Desktop: one step selected at a time. The row shows nodes + titles only;
   the selected step's description shows in a single panel under the row
   (home.js: hover / click / keyboard selects, auto-advances while in view). */
@media (min-width: 1025px) {
	body.home .cgx-steps { padding-bottom: 150px !important; }
	/* Step number above each node (automatic: add a step and it counts on). */
	body.home .cgx-step__node::before {
		content: counter(cgx-step, decimal-leading-zero);
		position: absolute;
		left: 0;
		width: var(--node);
		bottom: calc(100% + 12px);
		text-align: center;
		font: 500 13px/1 var(--cgx-mono);
		letter-spacing: .12em;
		color: #6E86B8;
		transition: color .4s ease;
	}
	body.home .cgx-step.is-lit .cgx-step__node::before { color: var(--cgx-ice); }
	body.home .cgx-step.is-active .cgx-step__node::before { color: #fff; }
	body.home .cgx-step { position: static !important; opacity: 1; cursor: pointer; outline: 0; }
	body.home .cgx-step__node,
	body.home .cgx-step__title { position: relative; z-index: 1; }
	body.home .cgx-step__title .elementor-heading-title::before { content: none; }
	body.home .cgx-step__title .elementor-heading-title { font-size: 17px !important; color: #8FA0BA !important; }
	body.home .cgx-step.is-active .cgx-step__title .elementor-heading-title,
	body.home .cgx-step:hover .cgx-step__title .elementor-heading-title { color: #fff !important; }
	body.home .cgx-step.is-active .cgx-step__node .elementor-icon { transform: scale(1.12); }
	body.home .cgx-step:focus-visible .cgx-step__node .elementor-icon { outline: 2px solid var(--cgx-ice); outline-offset: 4px; }
	/* Shared description panel */
	body.home .cgx-step__text {
		position: absolute !important;
		left: 0;
		right: 0;
		bottom: 0;
		min-height: 104px;
		margin: 0 !important;
		padding: 26px 32px 26px 150px;
		border: 1px solid rgba(157, 184, 255, .16);
		border-left: 2px solid var(--cgx-ice);
		border-radius: 14px;
		background: rgba(12, 26, 46, .7);
		opacity: 0;
		visibility: hidden;
		transform: translateY(8px);
		transition: opacity .45s ease, transform .5s var(--cgx-ease), visibility 0s linear .45s;
	}
	body.home .cgx-step__text { display: flex !important; align-items: center; }
	body.home .cgx-step__text::before {
		content: "Step " counter(cgx-step, decimal-leading-zero);
		position: absolute;
		left: 32px;
		top: 50%;
		transform: translateY(-50%);
		font: 500 15px/1 var(--cgx-mono);
		letter-spacing: .2em;
		text-transform: uppercase;
		color: var(--cgx-ice);
	}
	body.home .cgx-step__text p { font-size: 17px !important; line-height: 1.6 !important; color: #fff !important; max-width: 860px; }
	/* Highlighted panel: blue tint, bright border, glow */
	body.home .cgx-step__text {
		background: linear-gradient(100deg, rgba(27, 63, 160, .6) 0%, rgba(22, 44, 96, .55) 45%, rgba(12, 26, 46, .9) 100%) !important;
		border-color: rgba(157, 184, 255, .45) !important;
		border-left-width: 3px !important;
		box-shadow: 0 0 0 1px rgba(53, 99, 224, .25), 0 24px 60px -24px rgba(53, 99, 224, .75), inset 0 1px 0 rgba(255, 255, 255, .06);
	}
	body.home .cgx-step__text::before { color: #fff !important; }
	/* Pointer notch aimed at the selected node (home.js sets --nx on the track) */
	body.home .cgx-step__text::after {
		content: "";
		position: absolute;
		top: -8px;
		left: calc(var(--nx, 60px) - 8px);
		width: 14px;
		height: 14px;
		background: #1D3A86;
		border-left: 1px solid rgba(157, 184, 255, .45);
		border-top: 1px solid rgba(157, 184, 255, .45);
		transform: rotate(45deg);
		transition: left .6s var(--cgx-ease);
	}
	body.home .cgx-step.is-active .cgx-step__text p { animation: cgxUp .5s var(--cgx-ease) both; }
	body.home .cgx-step.is-active .cgx-step__text { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
	body.home .cgx-steps::after { transition: width .5s var(--cgx-ease); }
	/* Track ends at the last node's centre (home.js measures --tw / --fw) */
	body.home .cgx-steps.is-live::before,
	body.home .cgx-steps.is-live::after { left: var(--tx, calc(var(--node) / 2)) !important; right: auto !important; }
	body.home .cgx-steps.is-live::before { width: var(--tw, calc(100% - var(--node) / 2)) !important; }
	body.home .cgx-steps.is-live::after { width: var(--fw, 0px) !important; }
	/* Editor / no-JS: show the first step's description */
	body.home .cgx-steps:not(.is-live) .cgx-step:first-child .cgx-step__text { opacity: 1; visibility: visible; transform: none; }
}

/* Tablet / phone: vertical timeline */
@media (max-width: 1024px) {
	body.home .cgx-steps { display: flex !important; flex-direction: column; gap: 34px !important; }
	body.home .cgx-steps::before,
	body.home .cgx-steps::after {
		top: calc(var(--node) / 2) !important;
		left: calc(var(--node) / 2 - 1px) !important;
		right: auto !important;
		width: 2px !important;
	}
	body.home .cgx-steps::before {
		bottom: calc(var(--node) / 2) !important;
		height: auto !important;
		background: repeating-linear-gradient(180deg, rgba(157, 184, 255, .28) 0 8px, transparent 8px 14px) !important;
	}
	body.home .cgx-steps::after {
		height: calc((100% - var(--node)) * var(--p)) !important;
		background: linear-gradient(180deg, var(--cgx-accent), var(--cgx-ice)) !important;
		transition: height .25s linear;
	}
	body.home .cgx-step { padding-left: calc(var(--node) + 24px) !important; min-height: var(--node); }
	body.home .cgx-step__node { position: absolute !important; left: 0; top: 0; }
	body.home .cgx-step__title { margin-top: 4px !important; }
	body.home .cgx-step::after { display: none; }
	body.home .cgx-process .cgx-process-cta { align-self: flex-start; }
}
@media (max-width: 767px) {
	body.home .cgx-steps { --node: 46px; gap: 28px !important; }
	body.home .cgx-step__node .elementor-icon { font-size: 16px !important; }
}

/* ── Certifications — seal panel + credential cards + standards strip ────
   Native widgets: .cgx-seal (logo + two headings), .cgx-cred cards (Icon ·
   Heading · Text; duplicate one to add a credential), .cgx-chip badges.
   ──────────────────────────────────────────────────────────────────────── */
body.home .elementor-element.cgx-creds {
	position: relative;
	padding: 108px 0 !important;
	background:
		radial-gradient(700px 360px at 85% 0%, rgba(53, 99, 224, .06), transparent 70%),
		linear-gradient(rgba(27, 63, 160, .035) 1px, transparent 1px),
		linear-gradient(90deg, rgba(27, 63, 160, .035) 1px, transparent 1px),
		#fff !important;
	background-size: auto, 56px 56px, 56px 56px, auto !important;
}
body.home .cgx-creds .cgx-title .elementor-heading-title { margin-top: 16px; }
body.home .cgx-creds__grid { counter-reset: cgx-cred; }

/* Seal panel */
body.home .cgx-seal {
	position: relative;
	overflow: hidden;
	min-height: 330px;
	--padding-top: 40px !important;
	--padding-bottom: 36px !important;
	border-radius: 20px;
	background: radial-gradient(360px 260px at 50% 38%, rgba(53, 99, 224, .35), transparent 70%), var(--cgx-grid), var(--cgx-navy) !important;
	background-size: auto, 28px 28px, 28px 28px, auto !important;
	box-shadow: 0 40px 70px -40px rgba(7, 17, 31, .7);
	gap: 0 !important;
}
/* The AGMA mark is a wide logo (seal + "Member of American Gear
   Manufacturers Association"), so it sits on a white certificate plate at
   close to its natural size, never cropped to a circle. */
body.home .cgx-seal__logo {
	position: relative;
	z-index: 1;
	margin: 0 !important;
	width: min(100%, 280px) !important;
	max-width: 280px;
}
body.home .cgx-seal__logo img {
	display: block;
	width: 100% !important;
	height: auto !important;
	max-width: none;
	aspect-ratio: auto !important;
	object-fit: contain;
	padding: 18px 22px;
	border-radius: 14px !important;
	background: #fff;
	opacity: 1 !important;
	filter: none !important;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, .6), 0 24px 48px -16px rgba(0, 0, 0, .7);
	transition: transform .5s var(--cgx-ease);
}
/* Dashed "certificate" frame around the plate. */
body.home .cgx-seal__logo::before {
	content: "";
	position: absolute;
	inset: -10px;
	border: 1px dashed rgba(157, 184, 255, .5);
	border-radius: 20px;
	pointer-events: none;
}
body.home .cgx-seal:hover .cgx-seal__logo img { transform: translateY(-3px); }
/* Soft glow behind the plate (replaces the circular gauge rings). */
body.home .cgx-seal::before {
	content: "" !important;
	position: absolute !important;
	inset: 0 !important;
	width: auto !important;
	height: auto !important;
	margin: 0;
	border: 0 !important;
	border-radius: 0;
	pointer-events: none;
	opacity: 1 !important;
	animation: none;
	background: radial-gradient(260px 150px at 50% 36%, rgba(157, 184, 255, .22), transparent 72%) !important;
}
body.home .cgx-seal::after { content: none !important; }
body.home .cgx-seal__label { margin-top: 36px !important; position: relative; z-index: 1; }
body.home .cgx-seal__label .elementor-heading-title {
	font: 500 12px/1 var(--cgx-mono) !important;
	letter-spacing: .22em !important;
	text-transform: uppercase;
	color: var(--cgx-ice) !important;
	text-align: center;
}
body.home .cgx-seal__name { margin-top: 10px !important; position: relative; z-index: 1; }
body.home .cgx-seal__name .elementor-heading-title {
	font-family: var(--cgx-head) !important;
	font-size: 17px !important;
	font-weight: 600 !important;
	line-height: 1.35 !important;
	color: #fff !important;
	text-align: center;
	max-width: 240px;
	margin: 0 auto;
}

/* Credential cards */
body.home .cgx-cred {
	position: relative;
	counter-increment: cgx-cred;
	gap: 0 !important;
	--padding-top: 34px !important;
	--padding-right: 32px !important;
	--padding-bottom: 34px !important;
	--padding-left: 32px !important;
	border: 1px solid var(--cgx-line);
	border-radius: 20px;
	background: #fff !important;
	overflow: hidden;
	transition: transform .5s var(--cgx-ease), box-shadow .5s ease, border-color .4s ease !important;
}
/* Ruler ticks along the top edge + accent bar that draws on hover */
body.home .cgx-cred::before {
	content: "" !important;
	position: absolute !important;
	inset: 0 0 auto 0 !important;
	width: auto !important;
	height: 10px !important;
	opacity: 1 !important;
	background:
		repeating-linear-gradient(90deg, rgba(27, 63, 160, .22) 0 1px, transparent 1px 40px) top / 100% 10px no-repeat,
		repeating-linear-gradient(90deg, rgba(27, 63, 160, .12) 0 1px, transparent 1px 8px) top / 100% 5px no-repeat !important;
}
body.home .cgx-cred::after {
	content: counter(cgx-cred, decimal-leading-zero);
	position: absolute;
	top: 30px;
	right: 30px;
	font: 500 13px/1 var(--cgx-mono);
	letter-spacing: .16em;
	color: #9AA6B8;
	transition: color .3s ease;
}
body.home .cgx-cred:hover {
	transform: translateY(-6px);
	border-color: rgba(27, 63, 160, .3);
	box-shadow: 0 34px 60px -36px rgba(12, 24, 37, .45), inset 0 -3px 0 var(--cgx-accent);
}
body.home .cgx-cred:hover::after { color: var(--cgx-accent); }
body.home .cgx-cred__icon { margin: 0 !important; }
body.home .cgx-cred__icon .elementor-icon {
	display: grid !important;
	place-items: center;
	width: 56px;
	height: 56px;
	padding: 0 !important;
	border-radius: 14px;
	font-size: 22px !important;
	background: #EAF0FD !important;
	color: var(--cgx-accent) !important;
	transition: background-color .4s ease, color .4s ease, transform .5s var(--cgx-ease);
}
body.home .cgx-cred__icon svg { width: 22px; height: 22px; fill: currentColor !important; }
body.home .cgx-cred:hover .cgx-cred__icon .elementor-icon { background: var(--cgx-accent) !important; color: #fff !important; transform: rotate(-6deg); }
body.home .cgx-cred__title { margin-top: 30px !important; }
body.home .cgx-cred__title .elementor-heading-title {
	font-family: var(--cgx-head) !important;
	font-size: 21px !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	color: var(--cgx-ink) !important;
}
body.home .cgx-cred__text { margin-top: 12px !important; }
body.home .cgx-cred__text,
body.home .cgx-cred__text p { color: var(--cgx-body) !important; font-size: 15.5px !important; line-height: 1.7 !important; margin: 0; }

/* Standards strip */
body.home .cgx-creds__std {
	padding: 22px 26px !important;
	border: 1px solid var(--cgx-line);
	border-radius: 16px;
	background: rgba(244, 246, 249, .8) !important;
}
body.home .cgx-creds__stdlabel { margin-right: 10px !important; }
body.home .cgx-creds__stdlabel .elementor-heading-title {
	font: 500 12px/1 var(--cgx-mono) !important;
	letter-spacing: .2em !important;
	text-transform: uppercase;
	color: var(--cgx-body) !important;
}
body.home .cgx-chip .elementor-heading-title {
	display: inline-flex !important;
	align-items: center;
	gap: 9px;
	padding: 9px 16px;
	border-radius: 999px;
	border: 1px solid rgba(27, 63, 160, .22);
	background: #fff;
	font-family: Inter, sans-serif !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	color: var(--cgx-ink) !important;
	transition: border-color .3s ease, box-shadow .3s ease;
}
body.home .cgx-chip .elementor-heading-title::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--cgx-accent);
	box-shadow: 0 0 0 3px rgba(27, 63, 160, .15);
}
body.home .cgx-chip .elementor-heading-title:hover { border-color: var(--cgx-accent); box-shadow: 0 8px 18px -10px rgba(27, 63, 160, .6); }

html.cgx-anim body.home .cgx-rv :is(.cgx-seal, .cgx-cred, .cgx-creds__std) { transition: opacity .9s var(--cgx-ease) var(--d, 0ms), transform 1s var(--cgx-ease) var(--d, 0ms) !important; }
html.cgx-anim body.home .cgx-rv:not(.is-in) :is(.cgx-seal, .cgx-cred, .cgx-creds__std) { opacity: 0; transform: translate3d(0, 34px, 0); }
html.cgx-anim body.home .cgx-rv.is-done .cgx-cred { transition: transform .5s var(--cgx-ease), box-shadow .5s ease, border-color .4s ease !important; }

body.home .cgx-creds__grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
body.home .cgx-cred__title .elementor-heading-title { text-wrap: balance; }
body.home .cgx-creds [data-id="cgcrhl"],
body.home .cgx-creds [data-id="cgcrhl"] .elementor-heading-title { text-align: left !important; }
body.home .cgx-creds .cgx-link { flex: none; width: auto !important; }
body.home .cgx-creds .cgx-link .elementor-button { white-space: nowrap; }
@media (max-width: 1024px) {
	body.home .elementor-element.cgx-creds { padding: 76px 0 !important; }
}
@media (max-width: 899px) {
	body.home .cgx-creds__grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	body.home .cgx-seal { grid-column: 1 / -1; min-height: 300px; }
}
@media (max-width: 600px) {
	body.home .cgx-creds__grid { grid-template-columns: 1fr !important; }
}
@media (max-width: 767px) {
	body.home .elementor-element.cgx-creds { padding: 60px 0 !important; }
	body.home .cgx-cred { --padding-top: 28px !important; --padding-right: 24px !important; --padding-bottom: 28px !important; --padding-left: 24px !important; }
	body.home .cgx-creds__stdlabel { width: 100%; }
}

/* ── Testimonials — light section, featured quote on a stacked deck ──────
   Each .cgx-quote is native (Text · initials Heading · name/role Headings);
   duplicate one to add a testimonial. home.js rotates .is-active and adds
   the arrows + "01 / 03" counter under the heading.
   ──────────────────────────────────────────────────────────────────────── */
body.home .elementor-element.cgx-testi {
	padding: 108px 0 !important;
	background:
		radial-gradient(640px 380px at 90% 20%, rgba(53, 99, 224, .08), transparent 70%),
		linear-gradient(rgba(27, 63, 160, .035) 1px, transparent 1px),
		linear-gradient(90deg, rgba(27, 63, 160, .035) 1px, transparent 1px),
		var(--cgx-mist) !important;
	background-size: auto, 56px 56px, 56px 56px, auto !important;
}
body.home .cgx-testi .cgx-title .elementor-heading-title { color: var(--cgx-ink) !important; margin-top: 16px; }
body.home .cgx-testi .cgx-eyebrow .elementor-heading-title { color: var(--cgx-accent) !important; }
/* Controls injected by home.js */
.cgx-testi__nav { display: flex; align-items: center; gap: 12px; margin-top: 36px; }
.cgx-testi__nav button {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 1px solid rgba(27, 63, 160, .25);
	border-radius: 50%;
	background: #fff;
	color: var(--cgx-accent);
	cursor: pointer;
	transition: background-color .3s ease, color .3s ease, border-color .3s ease, transform .3s var(--cgx-ease);
}
.cgx-testi__nav button:hover { background: var(--cgx-accent); color: #fff; border-color: var(--cgx-accent); }
.cgx-testi__nav button:active { transform: scale(.94); }
.cgx-testi__nav svg { width: 16px; height: 16px; }
.cgx-testi__count { margin-left: 10px; font: 500 13px/1 var(--cgx-mono); letter-spacing: .18em; color: var(--cgx-body); }
.cgx-testi__count b { color: var(--cgx-ink); font-weight: 600; }
.cgx-testi__bar { flex: 1; max-width: 120px; height: 2px; margin-left: 6px; background: var(--cgx-line); overflow: hidden; }
.cgx-testi__bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--cgx-accent), var(--cgx-ice)); transform-origin: 0 50%; transform: scaleX(0); }
.cgx-testi__deck.is-cycling ~ * .cgx-testi__bar i,
.cgx-testi.is-cycling .cgx-testi__bar i { animation: cgxFill var(--cgx-testi-t, 7s) linear both; }
.cgx-testi:hover .cgx-testi__bar i { animation-play-state: paused; }

/* Deck: all cards share one grid cell; the tallest sets the height. */
body.home .cgx-testi__deck { display: grid !important; grid-template: 1fr / 1fr; padding: 0 28px 28px 0 !important; }
body.home .cgx-quote {
	grid-area: 1 / 1;
	position: relative;
	gap: 0 !important;
	--padding-top: 52px !important;
	--padding-right: 52px !important;
	--padding-bottom: 44px !important;
	--padding-left: 52px !important;
	border: 1px solid var(--cgx-line);
	border-radius: 24px;
	background: #fff !important;
	box-shadow: 0 40px 70px -44px rgba(12, 24, 37, .45);
	transition: transform .8s var(--cgx-ease), opacity .6s ease, visibility 0s linear .8s;
}
/* Resting positions behind the active card */
body.home .cgx-testi__deck.is-live .cgx-quote { opacity: 0; visibility: hidden; transform: translate(0, 0) scale(.94); }
body.home .cgx-testi__deck.is-live .cgx-quote.is-next { opacity: .7; visibility: visible; transform: translate(14px, 14px) scale(.985); z-index: 1; transition-delay: 0s; }
body.home .cgx-testi__deck.is-live .cgx-quote.is-after { opacity: .4; visibility: visible; transform: translate(28px, 28px) scale(.97); z-index: 0; transition-delay: 0s; }
body.home .cgx-testi__deck.is-live .cgx-quote.is-active { opacity: 1; visibility: visible; transform: none; z-index: 2; transition-delay: 0s; }
body.home .cgx-testi__deck.is-live .cgx-quote:not(.is-active) > * { opacity: 0; }
body.home .cgx-quote > * { transition: opacity .4s ease .2s; }
/* Big quote mark */
body.home .cgx-quote::before {
	content: "\201C" !important;
	position: absolute !important;
	top: 18px !important;
	right: 40px !important;
	left: auto !important;
	width: auto !important;
	height: auto !important;
	inset: auto;
	background: none !important;
	opacity: 1 !important;
	font: 700 150px/1 var(--cgx-head);
	color: #E3EAF9;
	pointer-events: none;
}
body.home .cgx-quote__text { position: relative; padding-right: 72px; }
@media (max-width: 767px) { body.home .cgx-quote__text { padding-right: 0; padding-top: 44px; } }
body.home .cgx-quote__text p {
	margin: 0;
	font-family: var(--cgx-head);
	font-size: clamp(19px, 1.6vw, 23px) !important;
	line-height: 1.55 !important;
	letter-spacing: -.01em;
	color: var(--cgx-ink) !important;
}
body.home .cgx-quote__author { margin-top: 34px !important; padding-top: 26px !important; border-top: 1px solid var(--cgx-line); }
body.home .cgx-quote__avatar .elementor-heading-title {
	display: grid !important;
	place-items: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--cgx-accent), #4C74E6);
	font: 600 15px/1 var(--cgx-mono) !important;
	letter-spacing: .06em;
	color: #fff !important;
}
body.home .cgx-quote__person { gap: 4px !important; }
body.home .cgx-quote__name .elementor-heading-title { font-family: var(--cgx-head) !important; font-size: 17px !important; font-weight: 600 !important; color: var(--cgx-ink) !important; }
body.home .cgx-quote__role .elementor-heading-title { font: 500 12px/1.3 var(--cgx-mono) !important; letter-spacing: .12em !important; text-transform: uppercase; color: var(--cgx-body) !important; }
html.cgx-anim body.home .cgx-rv .cgx-testi__deck { transition: opacity .9s var(--cgx-ease) .2s, transform 1s var(--cgx-ease) .2s; }
html.cgx-anim body.home .cgx-rv:not(.is-in) .cgx-testi__deck { opacity: 0; transform: translate3d(40px, 0, 0); }
@media (max-width: 1024px) {
	body.home .elementor-element.cgx-testi { padding: 76px 0 !important; }
}
@media (max-width: 767px) {
	body.home .elementor-element.cgx-testi { padding: 60px 0 !important; }
	body.home .cgx-testi__deck { padding: 0 16px 16px 0 !important; }
	body.home .cgx-quote { --padding-top: 36px !important; --padding-right: 26px !important; --padding-bottom: 30px !important; --padding-left: 26px !important; }
	body.home .cgx-quote::before { font-size: 110px; right: 20px !important; }
	body.home .cgx-testi__deck.is-live .cgx-quote.is-next { transform: translate(8px, 8px) scale(.985); }
	body.home .cgx-testi__deck.is-live .cgx-quote.is-after { transform: translate(16px, 16px) scale(.97); }
}

/* ── Process ───────────────────────────────────────────────────────────── */
body.home .cgproc-title { font-family: var(--cgx-head) !important; letter-spacing: -.01em !important; }
body.home .cgproc-body { color: var(--cgx-body) !important; letter-spacing: normal !important; }

/* ── Certifications ────────────────────────────────────────────────────── */
body.home [data-id="dc10db8"] {
	background: #fff !important;
	border: 1px solid var(--cgx-line);
	border-radius: 20px !important;
	box-shadow: 0 40px 70px -48px rgba(12, 24, 37, .35);
}
body.home [data-id="cgcertlist1"] .elementor-icon-list-icon svg { fill: var(--cgx-accent) !important; }
body.home [data-id="cgcertlist1"] .elementor-icon-list-text { color: var(--cgx-body) !important; }
body.home [data-id="cgcertlist1"] strong { color: var(--cgx-ink); }
body.home [data-id="cgcertpills"] > .e-con {
	border: 1px solid rgba(27, 63, 160, .22) !important;
	border-style: solid !important;
	background: #F3F6FD !important;
	transition: background-color .3s ease, border-color .3s ease;
}
body.home [data-id="cgcertpills"] > .e-con:hover { background: #E8EEFC !important; border-color: rgba(27, 63, 160, .45) !important; }
body.home [data-id="cgcertpills"] .elementor-heading-title { color: var(--cgx-accent) !important; }
body.home [data-id="cgcertlogoimg"] img { transition: transform .8s var(--cgx-ease); }
body.home [data-id="dc10db8"]:hover [data-id="cgcertlogoimg"] img { transform: rotate(-6deg) scale(1.04); }

/* ── Testimonials ──────────────────────────────────────────────────────── */
body.home .elementor-element.cgx-dark {
	background:
		radial-gradient(700px 420px at 85% 0%, rgba(53, 99, 224, .2), transparent 70%),
		radial-gradient(600px 380px at 0% 100%, rgba(53, 99, 224, .12), transparent 70%),
		var(--cgx-grid), var(--cgx-navy) !important;
	background-size: auto, auto, 56px 56px, 56px 56px, auto !important;
}
body.home .cgtest-marquee {
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
	        mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
body.home .cgtest-card {
	background: rgba(255, 255, 255, .035) !important;
	border: 1px solid rgba(157, 184, 255, .14) !important;
	border-radius: 16px !important;
	transition: border-color .4s ease, background-color .4s ease, transform .5s var(--cgx-ease);
}
body.home .cgtest-card:hover { border-color: rgba(157, 184, 255, .4) !important; background: rgba(255, 255, 255, .06) !important; transform: translateY(-4px); }
body.home .cgtest-quote { color: #C9D3E3 !important; letter-spacing: normal !important; }
body.home .cgtest-role { color: #8FA0BA !important; }
body.home .cgtest-avatar { background: linear-gradient(135deg, var(--cgx-accent), var(--cgx-accent-2)) !important; }
body.home .cgtest-card:nth-child(3n+2) .cgtest-avatar { background: linear-gradient(135deg, #2B3F5C, #4F6788) !important; }
body.home .cgtest-card:nth-child(3n) .cgtest-avatar { background: linear-gradient(135deg, #5C7BD6, #9DB8FF) !important; color: var(--cgx-navy) !important; }

/* ── FAQ ───────────────────────────────────────────────────────────────── */
body.home [data-id="f6997b1"] .elementor-accordion-item {
	border-color: var(--cgx-line) !important;
	transition: background-color .3s ease;
}
body.home [data-id="f6997b1"] .elementor-accordion-item:hover { background: #FAFBFD; }
body.home [data-id="f6997b1"] .elementor-accordion-icon svg { fill: var(--cgx-ink) !important; transition: transform .4s var(--cgx-ease), fill .3s ease; }
body.home [data-id="f6997b1"] .elementor-tab-title:hover .elementor-accordion-icon svg,
body.home [data-id="f6997b1"] .elementor-active .elementor-accordion-icon svg { fill: var(--cgx-accent) !important; }
body.home [data-id="f6997b1"] .elementor-tab-title:hover .elementor-accordion-icon svg { transform: rotate(90deg); }
body.home [data-id="f6997b1"] .elementor-tab-content { color: var(--cgx-body) !important; }

/* ── Contact: compact icon list + form card ────────────────────────────── */
body.home [data-id="bc3eec9"] { gap: 22px !important; margin-top: 12px; }
body.home [data-id="bc3eec9"] .elementor-icon-box-wrapper {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	gap: 18px;
	text-align: left !important;
}
body.home [data-id="bc3eec9"] .elementor-icon-box-icon { margin: 0 !important; flex: none; }
body.home [data-id="bc3eec9"] .elementor-icon {
	display: grid !important;
	place-items: center;
	width: 52px;
	height: 52px;
	padding: 0 !important;
	border-radius: 14px !important;
	font-size: 20px !important;
	background: var(--cgx-accent) !important;
	box-shadow: 0 12px 24px -14px rgba(27, 63, 160, .9);
	transition: transform .4s var(--cgx-ease);
}
body.home [data-id="bc3eec9"] .elementor-icon svg { width: 20px !important; height: 20px !important; fill: #fff !important; }
body.home [data-id="bc3eec9"] .elementor-widget-icon-box:hover .elementor-icon { transform: translateY(-3px) rotate(-6deg); }
body.home [data-id="bc3eec9"] .elementor-icon-box-title { margin: 0 0 2px !important; font-size: 17px !important; }
body.home [data-id="bc3eec9"] .elementor-icon-box-description { font-size: 15px !important; color: var(--cgx-body) !important; }
body.home [data-id="d444c84"] {
	border: 1px solid var(--cgx-line);
	border-radius: 20px !important;
	box-shadow: 0 40px 70px -48px rgba(12, 24, 37, .4);
}
body.home [data-id="ca68205"] .elementor-field {
	transition: border-color .25s ease, box-shadow .25s ease !important;
}
body.home [data-id="ca68205"] .elementor-field:focus {
	border-color: var(--cgx-accent) !important;
	box-shadow: 0 0 0 4px rgba(27, 63, 160, .12) !important;
	outline: 0;
}

/* Section navigator styles live in secnav.css (loaded on every page). */

/* ── Motion: hero intro (flag set in <head>, see functions.php) ────────── */
@keyframes cgxUp { from { opacity: 0; transform: translate3d(0, 26px, 0); } to { opacity: 1; transform: none; } }
@keyframes cgxWord { from { transform: translate3d(0, 105%, 0) rotate(4deg); } to { transform: none; } }
@keyframes cgxLine { from { transform: scaleX(0); } to { transform: scaleX(1); } }
html.cgx-intro body.home [data-id="cghero03"] { animation: cgxUp .9s var(--cgx-ease) .1s both; }
html.cgx-intro body.home [data-id="cghero03"] .elementor-heading-title::before { animation: cgxLine 1s var(--cgx-ease) .3s both; }
html.cgx-intro body.home .cgx-hero-title:not(.cgx-split) { opacity: 0; }
body.home .cgx-hero-title .cgx-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .1em; margin-bottom: -.1em; }
body.home .cgx-hero-title .cgx-w > span { display: inline-block; }
html.cgx-intro body.home .cgx-hero-title .cgx-w > span { animation: cgxWord 1s var(--cgx-ease) calc(.2s + var(--i, 0) * 55ms) both; }
html.cgx-intro body.home .cgx-hl .cgx-w > span { animation: cgxWord 1s var(--cgx-ease) calc(.2s + var(--i, 0) * 55ms) both, cgxShimmer 6s ease-in-out 1.5s infinite; }
html.cgx-intro body.home [data-id="cghero05"] { animation: cgxUp .9s var(--cgx-ease) .75s both; }
html.cgx-intro body.home [data-id="cghero07"] { animation: cgxUp .8s var(--cgx-ease) .9s both; }
html.cgx-intro body.home [data-id="cghero08"] { animation: cgxUp .8s var(--cgx-ease) 1s both; }
html.cgx-intro body.home .cgx-hero-trust { animation: cgxUp .8s var(--cgx-ease) 1.12s both; }
html.cgx-intro body.home .cgx-hero-media { animation: cgxFrame 1.5s var(--cgx-ease) .3s both; }
html.cgx-intro .cgx-hero-fx { animation: cgxFade 2.4s ease .2s both; }
@keyframes cgxFrame {
	from { opacity: 0; clip-path: inset(-60px -60px -60px 100%); transform: translate3d(40px, 0, 0); }
	to { opacity: 1; clip-path: inset(-60px -60px -60px -60px); transform: none; }
}
@keyframes cgxFade { from { opacity: 0; } to { opacity: 1; } }
/* Frame leans slightly toward the pointer (vars set on the hero by home.js). */
body.home .cgx-hero-slider {
	transform: perspective(1400px) rotateY(calc(var(--mx, 0) * -2.5deg)) rotateX(calc(var(--my, 0) * 2deg));
	transition: transform .8s var(--cgx-ease);
}
html.cgx-intro body.home [data-id="cgs2grid"] > .e-con { animation: cgxUp .9s var(--cgx-ease) both; }
html.cgx-intro body.home [data-id="cgs2grid"] > .e-con:nth-child(1) { animation-delay: 1.05s; }
html.cgx-intro body.home [data-id="cgs2grid"] > .e-con:nth-child(2) { animation-delay: 1.15s; }
html.cgx-intro body.home [data-id="cgs2grid"] > .e-con:nth-child(3) { animation-delay: 1.25s; }
html.cgx-intro body.home [data-id="cgs2grid"] > .e-con:nth-child(4) { animation-delay: 1.35s; }

/* ── Motion: scroll reveal (home.js adds .cgx-rv to sections, .is-in on view) ── */
html.cgx-anim body.home .cgx-rv :is(.cgx-eyebrow, .cgx-title, .cgx-lead, .elementor-widget-button, .e-loop-item, .cgwhy-card,
	.elementor-accordion-item, .elementor-widget-icon-box, [data-id="d444c84"], [data-id="dc10db8"], .cgx-cta--card, [data-id="bfdfd97"], .cgtest-marquee) {
	transition: opacity .9s var(--cgx-ease) var(--d, 0ms), transform 1s var(--cgx-ease) var(--d, 0ms) !important;
}
html.cgx-anim body.home .cgx-rv:not(.is-in) :is(.cgx-eyebrow, .cgx-title, .cgx-lead, .elementor-widget-button, .e-loop-item, .cgwhy-card,
	.elementor-accordion-item, .elementor-widget-icon-box, [data-id="d444c84"], [data-id="dc10db8"], .cgtest-marquee) {
	opacity: 0;
	transform: translate3d(0, 34px, 0);
}
html.cgx-anim body.home .cgx-rv:not(.is-in) :is(.cgx-cta--card, [data-id="bfdfd97"]) {
	opacity: 0;
	transform: translate3d(0, 40px, 0) scale(.97);
}
html.cgx-anim body.home .cgx-rv:not(.is-in) .cgx-eyebrow .elementor-heading-title::before { transform: scaleX(0); }
/* Transitions hand back to each card's own hover once the reveal is over. */
html.cgx-anim body.home .cgx-rv.is-done :is(.e-loop-item, .cgwhy-card, .elementor-widget-button, .cgx-cta--card, [data-id="bfdfd97"], .elementor-accordion-item, [data-id="d444c84"], [data-id="dc10db8"]) {
	transition: none !important;
}
html.cgx-anim body.home .cgx-rv.is-done .cgwhy-card { transition: transform .5s var(--cgx-ease), box-shadow .5s ease, border-color .4s ease !important; }
html.cgx-anim body.home .cgx-rv.is-done .cgx-cta--card { transition: box-shadow .6s ease !important; }

/* ── Responsive ────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
	/* Hero keeps the page gutter; captions stay visible (an older rule hid them). */
	body.home .elementor-16 .elementor-element-cghero02 { --padding-left: 20px !important; --padding-right: 20px !important; --gap: 40px !important; --column-gap: 40px !important; }
	body.home .cgx-hero-slider .swiper-slide-contents { display: block !important; }
}
@media (max-width: 880px) {
	/* Narrow screens: text first, then the slider sheet. */
	body.home .elementor-16 .elementor-element-cghero02 { --flex-direction: column !important; --align-items: stretch !important; }
	body.home .elementor-16 .elementor-element-cghero02 > .e-con-inner { flex-direction: column !important; align-items: stretch !important; }
	body.home .elementor-16 :is(.elementor-element-cghxcopy, .elementor-element-cghxmedi) { --width: 100% !important; width: 100% !important; }
}
@media (max-width: 1024px) {
	body.home .cgx-hero-copy::before,
	body.home .cgx-hero-copy::after { display: none; }
	.cgx-gear--a { width: 440px; height: 440px; left: -200px; bottom: auto; top: 40%; }
	.cgx-gear--b { width: 220px; height: 220px; left: auto; right: -70px; bottom: auto; top: 12%; }
	.cgx-gear--c { display: none; }
	body.home .cgx-hero-media { padding: 14px 0 0 14px !important; }
	body.home .elementor-element.cgx-cta--split::before {
		background:
			linear-gradient(180deg, rgba(7, 17, 31, .5) 0%, rgba(7, 17, 31, .88) 45%, var(--cgx-navy) 80%),
			var(--cgx-grid) !important;
		background-size: auto, 56px 56px, 56px 56px !important;
	}
	body.home [data-id="bfdfd97"] { padding: 40px 28px !important; margin: 0 20px; }
}
@media (max-width: 767px) {
	/* Keep the phone hero compact: trust points hide, text tightens. */
	body.home .cgx-hero-trust { display: none; }
	body.home .elementor-16 .elementor-element-cghero02 { --padding-top: 40px !important; --padding-bottom: 56px !important; --gap: 36px !important; --row-gap: 36px !important; }
	body.home .cgx-hero-title .elementor-heading-title { font-size: 31px !important; }
	body.home .cgx-hero-copy [data-id="cghero05"] { font-size: 16px; margin-top: 16px !important; }
	body.home [data-id="cghero06"] { margin-top: 26px; }
	body.home .cgx-hero-slider .elementor-slides-wrapper { --chamfer: 22px; }
	body.home .cgx-hero-slider .swiper-slide-contents { left: 14px; bottom: 14px; max-width: calc(100% - 28px) !important; padding: 12px 14px; }
	body.home .cgx-hero-slider a.swiper-slide-inner .swiper-slide-contents::after { display: none; }
	body.home .cgx-hero-slider .elementor-slide-heading { font-size: 18px !important; }
	body.home .cgx-hero-slider .elementor-slide-description { font-size: 10px !important; }
	body.home .cgx-hero-slider .elementor-swiper-button { display: none; }
	body.home .cgx-hero-slider .swiper-pagination { top: 16px !important; right: 16px !important; }
	body.home .cgx-hero-slider .swiper-pagination-bullet { width: 20px !important; }
	body.home .cgx-hero-slider { transform: none; }
	body.home .cgx-eyebrow .elementor-heading-title { font-size: 11px !important; letter-spacing: .14em !important; gap: 10px; }
	body.home .cgx-eyebrow .elementor-heading-title::before { width: 20px; }
	body.home .elementor-element.cgx-cta--split { background-position: top center !important; }
	body.home [data-id="bfdfd97"] { padding: 32px 20px !important; margin: 0 16px; }
	body.home [data-id="cgqcimg01"]::before { inset: 14px; }
	body.home [data-id="cgqcimg01"]::after { left: 14px; right: 14px; top: 14px; }
	body.home [data-id="bc3eec9"] .elementor-icon { width: 44px; height: 44px; }
	body.home [data-id="cgcertcontcol"],
	body.home [data-id="cgcertcontcol"] .elementor-heading-title { text-align: left !important; }
	body.home [data-id="cgcertcontcol"] > .cgx-eyebrow { align-self: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
	body.home .elementor-element.cgx-hero::before,
	body.home .elementor-element.cgx-hero::after,
	.cgx-gear,
	body.home .cgx-hero-slider .swiper-pagination-bullet-active::after { animation: none !important; }
	body.home .cgx-hl,
	body.home [data-id="cgqcimg01"]::after,
	body.home [data-id="bfdfd97"]::before { animation: none !important; }
	body.home [data-id="cgqcimg01"]::after { display: none; }
	body.home .elementor-16 .elementor-button,
	body.home :is(.cgcap-grid, .cgind-grid, .cgblog-grid) .e-loop-item > a.e-con,
	body.home :is(.cgcap-grid, .cgind-grid, .cgblog-grid) .elementor-widget-image img { transition: none !important; }
}

/* ── Hero stats — glass instrument strip inside the hero ─────────────────
   The Counter/Heading/Text widgets (cgs2*) moved into the hero; these rules
   override the old white gauge-card styling for that placement only.
   ──────────────────────────────────────────────────────────────────────── */
body.home .cgx-hero .elementor-element.cgx-hero-stats.e-con {
	position: relative;
	z-index: 2;
	width: min(1248px, 100%) !important;
	max-width: 100% !important;
	margin: 0 auto !important;
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: 0 !important;
	padding: 0 !important;
	border: 1px solid rgba(157, 184, 255, .18) !important;
	border-radius: 18px !important;
	overflow: hidden;
	background: linear-gradient(180deg, rgba(12, 26, 46, .72), rgba(7, 17, 31, .82)) !important;
	-webkit-backdrop-filter: blur(12px) saturate(1.2);
	        backdrop-filter: blur(12px) saturate(1.2);
	box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .7), inset 0 1px 0 rgba(255, 255, 255, .05) !important;
}
/* Ruler ticks along the top edge */
body.home .cgx-hero .cgx-hero-stats::before {
	content: "" !important;
	position: absolute !important;
	inset: 0 0 auto 0 !important;
	width: auto !important;
	height: 8px !important;
	opacity: 1 !important;
	border: 0 !important;
	border-radius: 0 !important;
	z-index: 1;
	pointer-events: none;
	background:
		repeating-linear-gradient(90deg, rgba(157, 184, 255, .4) 0 1px, transparent 1px 48px) top / 100% 8px no-repeat,
		repeating-linear-gradient(90deg, rgba(157, 184, 255, .18) 0 1px, transparent 1px 12px) top / 100% 4px no-repeat !important;
}
body.home .cgx-hero .cgx-hero-stats > .e-con {
	position: relative;
	display: grid !important;
	grid-template-columns: auto 1fr;
	grid-template-rows: auto auto;
	column-gap: 18px;
	row-gap: 4px;
	align-items: center !important;
	justify-content: stretch !important;
	text-align: left !important;
	--padding-top: 30px !important;
	--padding-bottom: 28px !important;
	--padding-left: 28px !important;
	--padding-right: 22px !important;
	padding: 30px 22px 28px 28px !important;
	background: transparent !important;
	border: 0 !important;
	border-left: 1px solid rgba(157, 184, 255, .14) !important;
	min-height: 0 !important;
	transition: background-color .4s ease !important;
}
body.home .cgx-hero .cgx-hero-stats > .e-con:first-child { border-left: 0 !important; }
/* Boxed cells wrap widgets in .e-con-inner; let the widgets join the cell grid. */
body.home .cgx-hero .cgx-hero-stats > .e-con > .e-con-inner { display: contents !important; }
body.home .cgx-hero .cgx-hero-stats > .e-con:hover { background: rgba(53, 99, 224, .1) !important; }
/* Glowing accent line that grows on hover */
body.home .cgx-hero .cgx-hero-stats > .e-con::before {
	content: "" !important;
	position: absolute !important;
	left: 28px !important;
	right: auto !important;
	top: auto !important;
	bottom: 0 !important;
	width: 32px !important;
	height: 2px !important;
	border-radius: 2px !important;
	background: linear-gradient(90deg, var(--cgx-accent-2), var(--cgx-ice)) !important;
	box-shadow: 0 0 12px rgba(157, 184, 255, .6);
	transform: none !important;
	opacity: 1 !important;
	transition: width .6s var(--cgx-ease) !important;
}
body.home .cgx-hero .cgx-hero-stats > .e-con:hover::before { width: calc(100% - 50px) !important; }
/* Number: spans both rows on the left */
body.home .cgx-hero .cgx-hero-stats .elementor-widget-counter {
	grid-row: 1 / span 2;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	display: block !important;
}
body.home .cgx-hero .cgx-hero-stats .elementor-counter { display: flex !important; justify-content: flex-start !important; align-items: flex-start !important; text-align: left !important; }
body.home .cgx-hero .cgx-hero-stats > .e-con .elementor-widget-counter,
body.home .cgx-hero .cgx-hero-stats > .e-con .elementor-widget-counter > .elementor-widget-container,
body.home .cgx-hero .cgx-hero-stats > .e-con .elementor-counter-number-wrapper { justify-self: start !important; margin-left: 0 !important; margin-right: auto !important; width: auto !important; text-align: left !important; }
body.home .cgx-hero .cgx-hero-stats .elementor-widget-counter::before,
body.home .cgx-hero .cgx-hero-stats .elementor-widget-counter::after { content: none !important; display: none !important; }
body.home .cgx-hero .cgx-hero-stats .elementor-counter-number-wrapper,
body.home .cgx-hero .cgx-hero-stats .elementor-counter-number-wrapper[style] {
	display: flex !important;
	align-items: flex-start;
	justify-content: flex-start !important;
	height: auto !important;
	font-family: var(--cgx-head) !important;
	font-size: clamp(38px, 3.4vw, 52px) !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	letter-spacing: -.04em !important;
	font-variant-numeric: tabular-nums;
	color: #fff !important;
	-webkit-text-fill-color: #fff;
	text-shadow: 0 0 24px rgba(157, 184, 255, .35);
}
body.home .cgx-hero .cgx-hero-stats .elementor-counter-number-suffix,
body.home .cgx-hero .cgx-hero-stats .elementor-counter-number-prefix {
	margin: .12em 0 0 .06em !important;
	font-size: .42em !important;
	letter-spacing: 0 !important;
	color: var(--cgx-ice) !important;
	-webkit-text-fill-color: var(--cgx-ice);
}
body.home .cgx-hero .cgx-hero-stats .elementor-widget-heading,
body.home .cgx-hero .cgx-hero-stats .elementor-widget-text-editor { margin: 0 !important; min-width: 0; }
body.home .cgx-hero .cgx-hero-stats .elementor-widget-heading { align-self: end; }
body.home .cgx-hero .cgx-hero-stats .elementor-widget-text-editor { align-self: start; max-width: none !important; }
body.home .cgx-hero .cgx-hero-stats .elementor-widget-heading .elementor-heading-title {
	font: 500 11.5px/1.35 var(--cgx-mono) !important;
	letter-spacing: .16em !important;
	text-transform: uppercase !important;
	text-align: left !important;
	-webkit-text-stroke: 0 !important;
	color: var(--cgx-ice) !important;
}
body.home .cgx-hero .cgx-hero-stats .elementor-widget-text-editor,
body.home .cgx-hero .cgx-hero-stats .elementor-widget-text-editor p {
	margin: 0 !important;
	font-size: 13.5px !important;
	line-height: 1.45 !important;
	text-align: left !important;
	color: #9FB0C8 !important;
}
/* Intro: strip rises in after the hero copy */
html.cgx-intro body.home .cgx-hero-stats { animation: cgxUp .9s var(--cgx-ease) 1.2s both; }
@media (max-width: 1100px) {
	body.home .cgx-hero .cgx-hero-stats > .e-con { grid-template-columns: 1fr; --padding-left: 22px !important; padding-left: 22px !important; }
	body.home .cgx-hero .cgx-hero-stats .elementor-widget-counter { grid-row: auto; margin-bottom: 8px !important; }
	body.home .cgx-hero .cgx-hero-stats > .e-con::before { left: 22px !important; }
}
@media (max-width: 767px) {
	body.home .cgx-hero .elementor-element.cgx-hero-stats.e-con { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	body.home .cgx-hero .cgx-hero-stats > .e-con { padding: 22px 16px 20px !important; }
	body.home .cgx-hero .cgx-hero-stats > .e-con:nth-child(3) { border-left: 0 !important; }
	body.home .cgx-hero .cgx-hero-stats > .e-con:nth-child(n+3) { border-top: 1px solid rgba(157, 184, 255, .14) !important; }
	body.home .cgx-hero .cgx-hero-stats > .e-con::before { left: 16px !important; }
	body.home .cgx-hero .cgx-hero-stats .elementor-counter-number-wrapper,
	body.home .cgx-hero .cgx-hero-stats .elementor-counter-number-wrapper[style] { font-size: 34px !important; }
	body.home .cgx-hero .cgx-hero-stats .elementor-widget-heading .elementor-heading-title { font-size: 10px !important; letter-spacing: .12em !important; }
	body.home .cgx-hero .cgx-hero-stats .elementor-widget-text-editor p { font-size: 12.5px !important; }
}

/* Load-flicker fix: a transform on an ancestor becomes the containing block
   for absolutely positioned children. The Capabilities photo panel and the
   Process description panel are positioned against their section grid, so
   their parents (loop items / steps) reveal with opacity only - never
   transform - or the panel renders in the wrong place until the reveal ends. */
@media (min-width: 900px) {
	html.cgx-anim body.home .cgx-rv [data-id="ed8de9e"] .elementor-loop-container > .e-loop-item { transform: none !important; }
}
@media (min-width: 1025px) {
	html.cgx-anim body.home .cgx-rv .cgx-steps > .cgx-step { transform: none !important; }
}

/* ══════════════════════════════════════════════════════════════════════
   PERFORMANCE — smooth scrolling and hover.
   Rule of thumb: only transform and opacity animate; nothing blurs what
   is behind it while the page scrolls; loops stop when off screen.
   ══════════════════════════════════════════════════════════════════════ */

/* 1. Looping animations pause in sections outside the viewport (home.js). */
body.home .cgx-paused,
body.home .cgx-paused *,
body.home .cgx-paused *::before,
body.home .cgx-paused *::after { animation-play-state: paused !important; }

/* 2. Hero grid: drift with transform (GPU) instead of background-position
      (a full-hero repaint every frame). */
body.home .elementor-element.cgx-hero::before {
	inset: -56px 0 0 -56px !important;
	animation: cgxGridDrift 24s linear infinite !important;
	will-change: transform;
}
@keyframes cgxGridDrift { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(56px, 56px, 0); } }
/* Light sweep: a narrow band moved with transform. */
body.home .elementor-element.cgx-hero::after {
	inset: 0 auto 0 0 !important;
	width: 40% !important;
	background: linear-gradient(100deg, transparent, rgba(157, 184, 255, .09) 50%, transparent) !important;
	background-size: auto !important;
	animation: cgxSweep2 11s ease-in-out infinite !important;
	will-change: transform;
}
@keyframes cgxSweep2 { 0% { transform: translate3d(-110%, 0, 0); } 60%, 100% { transform: translate3d(280%, 0, 0); } }

/* 3. Headline highlight: static gradient (the shimmer repainted text). */
body.home .cgx-hl,
body.home .cgx-hl .cgx-w > span { animation: none !important; }
html.cgx-intro body.home .cgx-hl .cgx-w > span { animation: cgxWord 1s var(--cgx-ease) calc(.2s + var(--i, 0) * 55ms) both !important; }

/* 4. CTA panel: static gradient border (the spinning conic border repainted
      the panel every frame) and no fixed-attachment background, which forces
      a repaint of the whole band on every scroll step. */
body.home [data-id="bfdfd97"]::before { animation: none !important; background: linear-gradient(120deg, rgba(157, 184, 255, .55), rgba(157, 184, 255, .08) 40%, rgba(157, 184, 255, .08) 70%, rgba(157, 184, 255, .45)) !important; }
body.home .elementor-element.cgx-cta--panel { background-attachment: scroll !important; }

/* 5. No backdrop blur on scrolling content — solid tints instead. */
body.home [data-id="bfdfd97"],
body.home .cgx-hero .cgx-hero-stats,
body.home .cgx-hero-slider .swiper-slide-contents,
body.home .cgx-hero-slider .elementor-swiper-button,
body.home [data-id="ed8de9e"] [data-id="204e691"]::after,
body.home [data-id="cgqcimg01"],
body.home .cgct-address {
	-webkit-backdrop-filter: none !important;
	        backdrop-filter: none !important;
}
body.home .cgx-hero .elementor-element.cgx-hero-stats.e-con { background: linear-gradient(180deg, rgba(12, 26, 46, .94), rgba(7, 17, 31, .96)) !important; }
body.home [data-id="bfdfd97"] { background: linear-gradient(100deg, rgba(7, 17, 31, .95) 0%, rgba(7, 17, 31, .86) 55%, rgba(12, 26, 46, .72) 100%) !important; }
body.home .cgx-hero-slider .swiper-slide-contents { background: rgba(7, 17, 31, .88) !important; }
body.home .cgx-hero-slider .elementor-swiper-button { background: rgba(7, 17, 31, .8) !important; }

/* 5b. Section navigator tint (no live blur) now lives in secnav.css. */

/* 5c. Reveal effects: opacity/transform instead of animated clip-paths. */
html.cgx-anim body.home .cgx-rv .cgx-about-photo { clip-path: none !important; transition: opacity 1s ease .15s, transform 1.2s var(--cgx-ease) .15s !important; }
html.cgx-anim body.home .cgx-rv:not(.is-in) .cgx-about-photo { opacity: 0; transform: translate3d(40px, 0, 0) scale(.98); }
html.cgx-anim body.home .cgx-rv .cgprod-grid [data-id="d73db53"] { clip-path: none !important; transition: opacity .8s ease calc(var(--d, 0ms) + 200ms), transform 1s var(--cgx-ease) calc(var(--d, 0ms) + 200ms) !important; }
html.cgx-anim body.home .cgx-rv:not(.is-in) .cgprod-grid [data-id="d73db53"] { opacity: 0; transform: rotate(-18deg) scale(.85); }
@keyframes cgxFrame {
	from { opacity: 0; transform: translate3d(40px, 0, 0); }
	to { opacity: 1; transform: none; }
}

/* 6. Hover: animate transform/opacity only; no layout-affecting transitions. */
body.home :is(.cgcap-grid, .cgind-grid, .cgblog-grid) .e-loop-item > a.e-con,
body.home .cgwhy-card,
body.home .cgx-cred,
body.home .cgx-quote { will-change: auto; }
body.home .elementor-16 .elementor-button { transition: transform .35s var(--cgx-ease), background-color .3s ease, border-color .3s ease, color .3s ease !important; }
