/* ==========================================================================
   Industry detail pages (Railcars & Track Equipment 1462, plus any page whose
   layout uses the cgin-* classes, e.g. a clone — see cg_is_industry_page()
   in functions.php). A light polish layer — the page
   layout stays as built in Elementor; these classes (Advanced -> CSS Classes)
   bring type and details in line with the product / capability pages:
   .cgin-eyebrow(--light), .cgin-title(--light), .cgin-text(--light),
   .cgin-hero-eyebrow/-title/-text, .cgin-hl, .cgin-btn, .cgin-checks,
   .cgin-card-title, .cgin-cardbtn, .cgin-ghost.
   ========================================================================== */

body.cg-industry-page {
	--in-navy: #07111F;
	--in-accent: #1B3FA0;
	--in-accent-2: #3563E0;
	--in-ice: #9DB8FF;
	--in-ink: #0C1825;
	--in-body: #5A6678;
	--in-line: #E1E5EB;
	--in-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
	--in-head: "Space Grotesk", Inter, sans-serif;
	--in-ease: cubic-bezier(.2, .7, .2, 1);
}

/* Eyebrows: mono + rule, as on the rest of the site */
.cgin-eyebrow .elementor-heading-title {
	display: inline-flex !important;
	align-items: center;
	gap: 12px;
	font: 500 11.5px/1.3 var(--in-mono) !important;
	letter-spacing: .2em !important;
	text-transform: uppercase !important;
	color: var(--in-accent) !important;
}
.cgin-eyebrow .elementor-heading-title::before { content: ""; width: 28px; height: 1px; background: currentColor; }
.cgin-eyebrow--light .elementor-heading-title { color: var(--in-ice) !important; }
.cgin-title .elementor-heading-title { font-family: var(--in-head) !important; font-weight: 600 !important; letter-spacing: -.02em !important; color: var(--in-ink) !important; text-wrap: balance; }
.cgin-title--light .elementor-heading-title { color: #fff !important; }
.cgin-text p, .cgin-text { color: var(--in-body) !important; font-size: 16.5px; line-height: 1.72; }
.cgin-text--light p, .cgin-text--light { color: #C9D5E6 !important; }

/* Breadcrumb: current page */
.cgin-crumb-current .elementor-heading-title { color: var(--in-ink) !important; font-weight: 600 !important; }

/* Hero */
body.cg-industry-page .elementor-element.cgin-hero-eyebrow { width: auto !important; max-width: none !important; --container-widget-width: auto !important; }
.cgin-hero-eyebrow .elementor-icon-list-items { justify-content: flex-start !important; }
.cgin-hero-eyebrow .elementor-icon-list-item { justify-content: flex-start !important; }
.cgin-hero-eyebrow .elementor-icon-list-text { white-space: nowrap; }
@media (max-width: 767px) {
	/* Long eyebrows (e.g. Machine Tool Builders) wrap instead of pushing past the gutter */
	body.cg-industry-page .elementor-element.cgin-hero-eyebrow { max-width: 100% !important; }
	.cgin-hero-eyebrow .elementor-icon-list-text { white-space: normal; }
}
.cgin-hero-eyebrow .elementor-icon-list-item { padding: 0 !important; border: 0 !important; background: none !important; }
.cgin-hero-eyebrow .elementor-icon-list-items { border: 0 !important; background: none !important; }
body.cg-industry-page .elementor-element.cgin-hero-eyebrow, body.cg-industry-page .cgin-hero-eyebrow > .elementor-widget-container { border: 0 !important; background: none !important; padding: 0 !important; }
.cgin-hero-eyebrow .elementor-icon-list-icon { display: none !important; }
.cgin-hero-eyebrow .elementor-icon-list-text {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding: 0 !important;
	font: 500 12px/1.3 var(--in-mono) !important;
	letter-spacing: .2em !important;
	text-transform: uppercase;
	color: var(--in-ice) !important;
}
.cgin-hero-eyebrow .elementor-icon-list-text::before { content: ""; width: 36px; height: 1px; background: currentColor; }
.cgin-hero-title .elementor-heading-title { font-family: var(--in-head) !important; font-weight: 600 !important; font-size: clamp(38px, 4.4vw, 60px) !important; line-height: 1.08 !important; letter-spacing: -.025em !important; }
.cgin-hl { background: linear-gradient(92deg, #9DB8FF 0%, #DCE7FF 55%, #9DB8FF 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.cgin-hero-text p { font-size: 18px !important; line-height: 1.65 !important; color: #C9D5E6 !important; max-width: 560px; }
.cgin-btn .elementor-button {
	border-radius: 8px !important;
	background: var(--in-accent) !important;
	color: #fff !important;
	border: 0 !important;
	font: 600 13px/1 Inter, sans-serif !important;
	letter-spacing: .08em !important;
	text-transform: uppercase;
	box-shadow: 0 14px 28px -14px rgba(53, 99, 224, .9);
	transition: background-color .3s ease, transform .3s var(--in-ease) !important;
}
.cgin-btn .elementor-button:hover { background: var(--in-accent-2) !important; transform: translateY(-2px); }
.cgin-btn .elementor-button-icon svg { fill: #fff !important; }

/* Checklist: two columns, square check chips, readable ink text */
.cgin-checks .elementor-icon-list-items { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; }
.cgin-checks .elementor-icon-list-item { align-items: flex-start !important; margin: 0 !important; padding: 13px 0 !important; border-bottom: 1px solid var(--in-line); }
.cgin-checks .elementor-icon-list-item::after { display: none !important; }
.cgin-checks .elementor-icon-list-icon { flex: none; display: grid !important; place-items: center; width: 22px; height: 22px; margin-top: 1px; border-radius: 6px; background: #EAF0FD; }
.cgin-checks .elementor-icon-list-icon svg { width: 10px !important; height: 10px !important; fill: var(--in-accent) !important; }
.cgin-checks .elementor-icon-list-text { padding-left: 12px !important; font-size: 15px !important; line-height: 1.5 !important; color: var(--in-ink) !important; }

/* Product cards */
.cgin-card-title .elementor-heading-title { font-family: var(--in-head) !important; font-size: 20px !important; font-weight: 600 !important; line-height: 1.3 !important; color: var(--in-ink) !important; }
body.cg-industry-page .cg-ind-card .elementor-widget-heading:has(+ .cgin-card-title) .elementor-heading-title {
	font: 500 11px/1.3 var(--in-mono) !important;
	letter-spacing: .18em !important;
	text-transform: uppercase;
	color: var(--in-accent) !important;
}
body.cg-industry-page .cg-ind-card { transition: transform .45s var(--in-ease), box-shadow .45s ease !important; }
body.cg-industry-page .cg-ind-card:hover { transform: translateY(-5px); box-shadow: 0 34px 60px -40px rgba(7, 17, 31, .7); }
body.cg-industry-page .cg-ind-card .cg-ind-image img { transition: transform 1s var(--in-ease); }
body.cg-industry-page .cg-ind-card:hover .cg-ind-image img { transform: scale(1.04); }
body.cg-industry-page .cg-ind-card .cg-ind-image { overflow: hidden; border-radius: 12px; }
.cgin-cardbtn .elementor-button {
	border-radius: 8px !important;
	border: 1px solid rgba(27, 63, 160, .3) !important;
	background: #fff !important;
	color: var(--in-accent) !important;
	font: 600 12px/1 Inter, sans-serif !important;
	letter-spacing: .08em !important;
	text-transform: uppercase;
	transition: background-color .3s ease, color .3s ease, border-color .3s ease !important;
}
.cgin-cardbtn .elementor-button:hover { background: var(--in-accent) !important; border-color: var(--in-accent) !important; color: #fff !important; }
.cgin-cardbtn .elementor-button-icon svg { fill: currentColor !important; }

/* "View all" buttons beside section headings (were near-invisible) */
.cgin-ghost .elementor-button {
	border-radius: 8px !important;
	border: 1px solid rgba(27, 63, 160, .35) !important;
	background: #fff !important;
	color: var(--in-accent) !important;
	font: 600 12px/1 Inter, sans-serif !important;
	letter-spacing: .08em !important;
	text-transform: uppercase;
	opacity: 1 !important;
	transition: background-color .3s ease, color .3s ease !important;
}
.cgin-ghost .elementor-button .elementor-button-text { color: inherit !important; opacity: 1 !important; }
.cgin-ghost .elementor-button:hover { background: var(--in-accent) !important; color: #fff !important; }
.cgin-ghost .elementor-button-icon svg { fill: currentColor !important; }

/* ── Capability list with custom SVG line icons (icon-list, class cgin-features) ── */
.cgin-features .elementor-icon-list-items { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px !important; }
.cgin-features .elementor-icon-list-item {
	position: relative;
	align-items: center !important;
	margin: 0 !important;
	padding: 16px 18px !important;
	border: 1px solid var(--in-line);
	border-radius: 16px;
	background: #fff;
	transition: border-color .35s ease, box-shadow .45s ease, transform .45s var(--in-ease);
}
.cgin-features .elementor-icon-list-item::after { display: none !important; }
.cgin-features .elementor-icon-list-item:hover { border-color: rgba(53, 99, 224, .35); box-shadow: 0 22px 44px -32px rgba(12, 24, 37, .45); transform: translateY(-3px); }
body.cg-industry-page .elementor-element.cgin-features .elementor-icon-list-icon {
	flex: none;
	display: grid !important;
	place-items: center;
	width: 48px !important;
	height: 48px;
	border-radius: 13px;
	background: linear-gradient(145deg, #EEF3FD, #DFE8FB);
	box-shadow: inset 0 0 0 1px rgba(27, 63, 160, .08);
	color: var(--in-accent);
	transition: background .4s ease, color .4s ease, transform .5s var(--in-ease);
}
body.cg-industry-page .elementor-element.cgin-features .elementor-icon-list-icon svg {
	width: 28px !important;
	height: 28px !important;
	fill: none !important;
	stroke: currentColor !important;
	color: inherit;
}
body.cg-industry-page .elementor-element.cgin-features .elementor-icon-list-icon svg * { fill: none !important; stroke: currentColor !important; }
.cgin-features .elementor-icon-list-item:hover .elementor-icon-list-icon { background: linear-gradient(145deg, var(--in-accent-2), var(--in-accent)); color: #fff; transform: rotate(-6deg); }
.cgin-features .elementor-icon-list-text { padding-left: 16px !important; font-size: 15px !important; line-height: 1.5 !important; font-weight: 500; color: var(--in-ink) !important; }
@media (max-width: 767px) {
	.cgin-features .elementor-icon-list-items { grid-template-columns: 1fr; gap: 10px !important; }
	.cgin-features .elementor-icon-list-item { padding: 14px !important; }
}

/* ── Feature cards with a short description (grid container .cgin-featgrid
   holding one Icon Box widget per feature, class cgin-feat). Icon, title and
   description are edited in the Icon Box panel; the 01–08 numbers count
   automatically, so duplicating a card keeps the sequence. ── */
body.cg-industry-page .elementor-element.cgin-featgrid { counter-reset: cgin-feat; margin-top: 12px; }
body.cg-industry-page .elementor-element.cgin-feat {
	counter-increment: cgin-feat;
	position: relative;
	height: 100%;
	padding: 22px 24px 22px 22px;
	border: 1px solid var(--in-line);
	border-radius: 16px;
	background: #fff;
	overflow: hidden;
	transition: border-color .35s ease, box-shadow .45s ease, transform .45s var(--in-ease);
}
/* Accent bar that slides in on hover */
body.cg-industry-page .elementor-element.cgin-feat::before {
	content: "";
	position: absolute;
	left: 0; top: 0; bottom: 0;
	width: 3px;
	background: linear-gradient(180deg, var(--in-accent-2), var(--in-accent));
	transform: scaleY(0);
	transform-origin: top;
	transition: transform .45s var(--in-ease);
}
/* Automatic 01–08 number */
body.cg-industry-page .elementor-element.cgin-feat::after {
	content: counter(cgin-feat, decimal-leading-zero);
	position: absolute;
	top: 20px; right: 22px;
	font: 500 11.5px/1 var(--in-mono);
	letter-spacing: .14em;
	color: #A5B0C0;
	transition: color .35s ease;
}
body.cg-industry-page .cgin-feat .elementor-icon-box-wrapper { display: flex !important; flex-direction: row !important; align-items: flex-start !important; gap: 18px; text-align: left !important; }
body.cg-industry-page .cgin-feat .elementor-icon-box-icon { flex: none; margin: 0 !important; }
body.cg-industry-page .cgin-feat .elementor-icon {
	display: grid !important;
	place-items: center;
	width: 48px;
	height: 48px;
	padding: 0 !important;
	border-radius: 13px;
	background: linear-gradient(145deg, #EEF3FD, #DFE8FB);
	box-shadow: inset 0 0 0 1px rgba(27, 63, 160, .08);
	color: var(--in-accent) !important;
	transition: background .4s ease, color .4s ease, transform .5s var(--in-ease);
}
body.cg-industry-page .cgin-feat .elementor-icon svg { width: 28px !important; height: 28px !important; fill: none !important; stroke: currentColor !important; }
body.cg-industry-page .cgin-feat .elementor-icon svg * { fill: none !important; stroke: currentColor !important; }
body.cg-industry-page .cgin-feat .elementor-icon-box-content { padding-right: 28px; }
body.cg-industry-page .cgin-feat .elementor-icon-box-title { margin: 2px 0 6px !important; font: 600 16.5px/1.35 var(--in-head) !important; letter-spacing: -.01em; color: var(--in-ink) !important; transition: color .3s ease; }
body.cg-industry-page .cgin-feat .elementor-icon-box-title :is(a, span) { color: inherit !important; }
body.cg-industry-page .cgin-feat .elementor-icon-box-description { margin: 0 !important; font-size: 14.5px !important; line-height: 1.6 !important; color: var(--in-body) !important; }
/* Mouse-over */
body.cg-industry-page .elementor-element.cgin-feat:is(:hover, :focus-within) {
	border-color: rgba(53, 99, 224, .35);
	box-shadow: 0 24px 46px -32px rgba(12, 24, 37, .5);
	transform: translateY(-4px);
}
body.cg-industry-page .elementor-element.cgin-feat:is(:hover, :focus-within)::before { transform: scaleY(1); }
body.cg-industry-page .elementor-element.cgin-feat:is(:hover, :focus-within)::after { color: var(--in-accent-2); }
body.cg-industry-page .cgin-feat:is(:hover, :focus-within) .elementor-icon { background: linear-gradient(145deg, var(--in-accent-2), var(--in-accent)); color: #fff !important; transform: rotate(-6deg); }
body.cg-industry-page .cgin-feat:is(:hover, :focus-within) .elementor-icon-box-title { color: var(--in-accent) !important; }
@media (prefers-reduced-motion: reduce) {
	body.cg-industry-page .elementor-element.cgin-feat,
	body.cg-industry-page .cgin-feat .elementor-icon { transition: none; transform: none !important; }
}
@media (max-width: 767px) {
	body.cg-industry-page .elementor-element.cgin-feat { padding: 18px 18px 18px 16px; }
	body.cg-industry-page .cgin-feat .elementor-icon-box-wrapper { gap: 14px; }
}

/* ── Sourcing options (Stock / Modified / Custom): grid container
   .cgin-srcgrid of card containers .cgin-src, each holding a Heading
   (.cgin-src-title), a lead-time Heading (.cgin-src-lead) and a Text
   Editor (.cgin-src-text). Cards number themselves 01–03. ── */
.cgin-srchead .elementor-heading-title { font: 600 clamp(20px, 1.8vw, 24px)/1.3 var(--in-head) !important; letter-spacing: -.015em !important; color: var(--in-ink) !important; }
body.cg-industry-page .elementor-element.cgin-srcgrid { counter-reset: cgin-src; }
body.cg-industry-page .elementor-element.cgin-src {
	counter-increment: cgin-src;
	position: relative;
	gap: 14px !important;
	padding: 26px 26px 24px !important;
	border: 1px solid var(--in-line);
	border-radius: 16px;
	background: #fff;
	overflow: hidden;
	transition: border-color .35s ease, box-shadow .45s ease, transform .45s var(--in-ease);
}
body.cg-industry-page .elementor-element.cgin-src::before {
	content: "";
	position: absolute;
	left: 0; right: 0; top: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--in-accent), var(--in-ice));
	transform: scaleX(.18);
	transform-origin: left;
	transition: transform .5s var(--in-ease);
}
body.cg-industry-page .elementor-element.cgin-src::after {
	content: counter(cgin-src, decimal-leading-zero);
	position: absolute;
	top: 24px; right: 24px;
	font: 500 11.5px/1 var(--in-mono);
	letter-spacing: .14em;
	color: #A5B0C0;
}
body.cg-industry-page .elementor-element.cgin-src:is(:hover, :focus-within) { border-color: rgba(53, 99, 224, .35); box-shadow: 0 26px 48px -34px rgba(12, 24, 37, .5); transform: translateY(-4px); }
body.cg-industry-page .elementor-element.cgin-src:is(:hover, :focus-within)::before { transform: scaleX(1); }
.cgin-src-title .elementor-heading-title { font: 600 19px/1.3 var(--in-head) !important; letter-spacing: -.01em !important; color: var(--in-ink) !important; padding-right: 36px; }
.cgin-src-lead .elementor-heading-title {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	padding: 6px 11px;
	border-radius: 999px;
	background: #EEF3FD;
	font: 500 11.5px/1.2 var(--in-mono) !important;
	letter-spacing: .06em !important;
	color: var(--in-accent) !important;
}
.cgin-src-lead .elementor-heading-title::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.cgin-src-text p { margin: 0 0 12px !important; font-size: 14.5px !important; line-height: 1.6 !important; color: var(--in-body) !important; }
.cgin-src-text p:last-child { margin-bottom: 0 !important; }
.cgin-src-text strong { display: block; margin-bottom: 3px; font: 500 11px/1.4 var(--in-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--in-ink); }
@media (prefers-reduced-motion: reduce) {
	body.cg-industry-page .elementor-element.cgin-src { transition: none; transform: none !important; }
}

/* ── "Explore Commercial Gear": split header + navy capability/product tiles ── */
@media (min-width: 1025px) {
	body.cg-industry-page .elementor-element.cgin-split {
		display: grid !important;
		grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
		column-gap: 72px !important;
		align-items: end;
	}
	body.cg-industry-page .cgin-split > .elementor-element:first-child { grid-column: 1 / -1; }
	body.cg-industry-page .cgin-split > .elementor-element:last-child { padding-bottom: 6px; }
}
body.cg-industry-page .elementor-element.cgin-nav {
	position: relative;
	--padding-top: 38px !important; --padding-right: 40px !important; --padding-bottom: 38px !important; --padding-left: 40px !important;
	gap: 0 !important;
	border: 1px solid rgba(157, 184, 255, .2);
	border-radius: 24px !important;
	overflow: hidden;
	isolation: isolate;
	box-shadow: 0 50px 90px -56px rgba(7, 17, 31, .8);
	transition: transform .5s var(--in-ease), border-color .4s ease, box-shadow .5s ease !important;
}
/* Theme overlay (replaces the maroon/purple radial): navy wash + blueprint grid */
body.cg-industry-page .elementor-element.cgin-nav::before {
	background: linear-gradient(90deg, rgba(7, 17, 31, .97) 0%, rgba(7, 17, 31, .92) 55%, rgba(7, 17, 31, .74) 100%),
		radial-gradient(420px 300px at 100% 0%, rgba(53, 99, 224, .45), transparent 70%) !important;
	opacity: 1 !important;
	z-index: 0 !important;
}
body.cg-industry-page .elementor-element.cgin-nav::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: linear-gradient(rgba(157, 184, 255, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(157, 184, 255, .05) 1px, transparent 1px);
	background-size: 28px 28px;
	pointer-events: none;
}
body.cg-industry-page .cgin-nav > .elementor-element { position: relative; z-index: 1; }
body.cg-industry-page .elementor-element.cgin-nav:hover { transform: translateY(-6px); border-color: rgba(157, 184, 255, .5); box-shadow: 0 60px 100px -56px rgba(7, 17, 31, .95), 0 0 0 1px rgba(53, 99, 224, .2); }
.cgin-navicon { margin: 0 0 22px !important; }
.cgin-navicon .elementor-icon { display: grid !important; place-items: center; width: 52px; height: 52px; padding: 0 !important; border-radius: 14px; font-size: 20px !important; background: rgba(157, 184, 255, .12) !important; color: var(--in-ice) !important; transition: background-color .4s ease, color .4s ease, transform .5s var(--in-ease); }
body.cg-industry-page .elementor-element.cgin-navicon .elementor-icon :is(svg, svg path) { width: 20px; height: 20px; fill: currentColor !important; }
body.cg-industry-page .cgin-nav:hover .cgin-navicon .elementor-icon { background: var(--in-accent-2) !important; color: #fff !important; transform: rotate(-8deg); }
.cgin-navlabel .elementor-heading-title { display: inline-flex !important; align-items: center; gap: 12px; font: 500 11.5px/1.3 var(--in-mono) !important; letter-spacing: .2em !important; text-transform: uppercase !important; color: var(--in-ice) !important; }
.cgin-navlabel .elementor-heading-title::before { content: ""; width: 28px; height: 1px; background: currentColor; }
.cgin-navtitle { margin-top: 12px !important; }
.cgin-navtitle .elementor-heading-title { font: 600 clamp(24px, 2.2vw, 30px)/1.2 var(--in-head) !important; letter-spacing: -.015em !important; color: #fff !important; }
.cgin-navtext { margin-top: 12px !important; }
.cgin-navtext p { margin: 0; max-width: 460px; font-size: 15.5px !important; line-height: 1.7 !important; color: #B4C1D4 !important; }
.cgin-navlinks { margin-top: 24px !important; }
.cgin-navlinks .elementor-icon-list-items { display: grid !important; gap: 0; border-top: 1px solid rgba(157, 184, 255, .16); }
.cgin-navlinks .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; border-bottom: 1px solid rgba(157, 184, 255, .16); }
.cgin-navlinks .elementor-icon-list-item::after { display: none !important; }
.cgin-navlinks .elementor-icon-list-item a { display: flex !important; flex-direction: row-reverse; justify-content: space-between; align-items: center; width: 100%; padding: 13px 0; }
.cgin-navlinks .elementor-icon-list-text { padding: 0 !important; font: 500 15px/1.35 var(--in-head) !important; color: #fff !important; transition: color .25s ease, transform .3s var(--in-ease); }
.cgin-navlinks .elementor-icon-list-icon svg { width: 12px !important; fill: var(--in-ice) !important; transition: transform .3s var(--in-ease); }
.cgin-navlinks a:hover .elementor-icon-list-text { color: var(--in-ice) !important; transform: translateX(4px); }
.cgin-navlinks a:hover .elementor-icon-list-icon svg { transform: translateX(4px); }
.cgin-navbtn { margin-top: 28px !important; }
.cgin-navbtn .elementor-button {
	display: inline-flex; align-items: center;
	padding: 15px 22px !important;
	border-radius: 8px !important;
	background: var(--in-accent) !important;
	color: #fff !important;
	font: 600 12.5px/1 Inter, sans-serif !important;
	letter-spacing: .08em !important;
	text-transform: uppercase;
	box-shadow: 0 14px 28px -14px rgba(53, 99, 224, .9);
	transition: background-color .3s ease, transform .3s var(--in-ease) !important;
}
.cgin-navbtn .elementor-button:hover { background: var(--in-accent-2) !important; transform: translateY(-2px); }
body.cg-industry-page .elementor-element.cgin-navbtn .elementor-button .elementor-button-icon :is(svg, svg path) { fill: #fff !important; }
@media (max-width: 767px) {
	body.cg-industry-page .elementor-element.cgin-nav { --padding-top: 28px !important; --padding-right: 22px !important; --padding-bottom: 28px !important; --padding-left: 22px !important; }
}

/* Button icons may be <i> font icons or inline SVG — colour both */
body.cg-industry-page .elementor-element:is(.cgin-ghost, .cgin-cardbtn, .cgin-btn) .elementor-button .elementor-button-icon :is(i, svg, svg path) { color: currentColor !important; fill: currentColor !important; opacity: 1 !important; }

@media (max-width: 767px) {
	.cgin-checks .elementor-icon-list-items { grid-template-columns: 1fr; }
	.cgin-hero-text p { font-size: 16px !important; }
}

/* ==========================================================================
   Extended industry components (first used on Machine Tool Builders).
   Every block is native Elementor containers + widgets; these classes are
   set in Advanced -> CSS Classes, so duplicating a card keeps its styling.
   ========================================================================== */

/* Hero: long H1 variant + a row of two buttons (primary + ghost) */
body.cg-industry-page .cgin-hero-title--long .elementor-heading-title { font-size: clamp(32px, 3.3vw, 46px) !important; line-height: 1.12 !important; }
body.cg-industry-page .elementor-element.cgin-btnrow { flex-direction: row !important; flex-wrap: wrap !important; gap: 14px !important; }
body.cg-industry-page .cgin-btnrow > .elementor-widget-button { width: auto !important; max-width: 100%; flex: 0 0 auto !important; }
/* Paragraph rhythm for multi-paragraph text on navy sections */
body.cg-industry-page .cgin-text--light p:not(:last-child) { margin-bottom: 12px !important; }
.cgin-btn--ghost .elementor-button {
	background: transparent !important;
	color: #fff !important;
	border: 1px solid rgba(255, 255, 255, .45) !important;
	box-shadow: none !important;
}
.cgin-btn--ghost .elementor-button:hover { background: rgba(255, 255, 255, .1) !important; border-color: #fff !important; }

/* Manufacturing-range stats: grid .cgin-statgrid of .cgin-stat cards (value + label headings) */
body.cg-industry-page .elementor-element.cgin-stat {
	gap: 10px !important;
	padding: 22px 22px 20px !important;
	border: 1px solid var(--in-line);
	border-radius: 14px;
	background: linear-gradient(180deg, #fff, #F7F9FD);
}
.cgin-stat-val .elementor-heading-title { font: 600 clamp(30px, 2.6vw, 38px)/1 var(--in-head) !important; letter-spacing: -.02em !important; color: var(--in-accent) !important; }
.cgin-stat-label .elementor-heading-title { font: 500 11.5px/1.45 var(--in-mono) !important; letter-spacing: .12em !important; text-transform: uppercase; color: var(--in-body) !important; }
/* Optional extra lines on a stat card: product name above the value, detail line below the label */
.cgin-stat-name .elementor-heading-title { font: 600 16px/1.3 var(--in-head) !important; color: var(--in-ink) !important; }
.cgin-stat-sub .elementor-heading-title { font: 400 13.5px/1.5 Inter, sans-serif !important; color: var(--in-body) !important; }

/* Hero tagline (a Heading widget under the hero text) */
.cgin-hero-tags .elementor-heading-title { font: 500 12px/1.6 var(--in-mono) !important; letter-spacing: .16em !important; text-transform: uppercase; color: var(--in-ice) !important; }

/* Cards that are links (container HTML tag = a): arrow label at the bottom */
body.cg-industry-page a.elementor-element:is(.cgin-app, .cgin-tile) { text-decoration: none; }
.cgin-linklabel { margin-top: auto !important; }
.cgin-linklabel .elementor-heading-title { font: 600 12px/1 Inter, sans-serif !important; letter-spacing: .08em !important; text-transform: uppercase; color: var(--in-accent) !important; transition: letter-spacing .3s ease; }
body.cg-industry-page a.elementor-element:hover .cgin-linklabel .elementor-heading-title { letter-spacing: .12em !important; }

/* Shared card motion for application cards, tiles and workflow steps */
body.cg-industry-page .elementor-element:is(.cgin-app, .cgin-tile, .cgin-wstep) {
	position: relative;
	border: 1px solid var(--in-line);
	border-radius: 16px;
	background: #fff;
	transition: border-color .35s ease, box-shadow .45s ease, transform .45s var(--in-ease);
}
body.cg-industry-page .elementor-element:is(.cgin-app, .cgin-tile, .cgin-wstep):is(:hover, :focus-within) {
	border-color: rgba(53, 99, 224, .35);
	box-shadow: 0 26px 48px -34px rgba(12, 24, 37, .5);
	transform: translateY(-4px);
}

/* Application cards: title, component line (mono), text + optional list */
body.cg-industry-page .elementor-element.cgin-app { gap: 12px !important; padding: 28px 28px 26px !important; overflow: hidden; }
body.cg-industry-page .elementor-element.cgin-app::before {
	content: "";
	position: absolute;
	left: 0; right: 0; top: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--in-accent), var(--in-ice));
	transform: scaleX(.18);
	transform-origin: left;
	transition: transform .5s var(--in-ease);
}
body.cg-industry-page .elementor-element.cgin-app:is(:hover, :focus-within)::before { transform: scaleX(1); }
.cgin-app-title .elementor-heading-title { font: 600 20px/1.3 var(--in-head) !important; letter-spacing: -.01em !important; color: var(--in-ink) !important; }
.cgin-app-parts .elementor-heading-title { font: 500 11.5px/1.55 var(--in-mono) !important; letter-spacing: .06em !important; color: var(--in-accent) !important; }
:is(.cgin-app-text, .cgin-tile-text) p { margin: 0 0 12px !important; font-size: 14.5px !important; line-height: 1.65 !important; color: var(--in-body) !important; }
:is(.cgin-app-text, .cgin-tile-text) p:last-child { margin-bottom: 0 !important; }
.cgin-app-text strong { display: block; margin-top: 4px; font: 500 11px/1.4 var(--in-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--in-ink); }
/* Bulleted lists inside Text Editor widgets: .cgin-app-text (cards) and .cgin-list (anywhere; add .cgin-list--2col for two columns) */
:is(.cgin-app-text, .cgin-list) ul { display: grid; gap: 6px; margin: 0 0 14px !important; padding: 0 !important; list-style: none; }
:is(.cgin-app-text, .cgin-list) ul:last-child { margin-bottom: 0 !important; }
:is(.cgin-app-text, .cgin-list) li { position: relative; padding-left: 16px; font-size: 14px; line-height: 1.5; color: var(--in-ink); }
:is(.cgin-app-text, .cgin-list) li::before { content: ""; position: absolute; left: 0; top: .6em; width: 6px; height: 6px; border-radius: 2px; background: var(--in-accent-2); }
.cgin-list li { font-size: 15px; }
/* Lists on navy sections */
.cgin-list--light li { color: #C9D5E6; }
.cgin-list--light li::before { background: var(--in-ice); }
.cgin-list--light strong { color: #fff !important; }
@media (min-width: 1025px) { .cgin-list.cgin-list--3col ul { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 768px) { .cgin-list--2col ul { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; } }

/* Tiles (title + short text); inside .cgin-tilegrid--num they number themselves */
body.cg-industry-page .elementor-element.cgin-tile { gap: 10px !important; padding: 24px 24px 22px !important; }
.cgin-tile-title .elementor-heading-title { font: 600 17px/1.35 var(--in-head) !important; letter-spacing: -.01em !important; color: var(--in-ink) !important; padding-right: 30px; }
body.cg-industry-page .elementor-element.cgin-tilegrid--num { counter-reset: cgin-tile; }
body.cg-industry-page .cgin-tilegrid--num > .elementor-element.cgin-tile { counter-increment: cgin-tile; }
body.cg-industry-page .cgin-tilegrid--num > .elementor-element.cgin-tile::after {
	content: counter(cgin-tile, decimal-leading-zero);
	position: absolute;
	top: 22px; right: 22px;
	font: 500 11.5px/1 var(--in-mono);
	letter-spacing: .14em;
	color: #A5B0C0;
}

/* Dark cards (engineering challenges) inside a navy section; grid .cgin-dgrid numbers them */
body.cg-industry-page .elementor-element.cgin-dgrid { counter-reset: cgin-d; }
body.cg-industry-page .elementor-element.cgin-dcard {
	counter-increment: cgin-d;
	position: relative;
	gap: 12px !important;
	padding: 30px 28px 28px !important;
	border: 1px solid rgba(157, 184, 255, .18);
	border-radius: 16px;
	background: rgba(255, 255, 255, .04);
	transition: border-color .35s ease, background-color .35s ease, transform .45s var(--in-ease);
}
/* Elementor draws container background overlays on ::before (absolute, full size); these
   counters reuse ::before, so put them back into the normal flow above the title. */
body.cg-industry-page .elementor-element:is(.cgin-dcard, .cgin-wstep)::before {
	position: relative !important;
	top: auto !important;
	left: auto !important;
	opacity: 1 !important;
	mix-blend-mode: normal !important;
}
body.cg-industry-page .elementor-element.cgin-dcard::before {
	width: auto !important;
	height: auto !important;
	content: counter(cgin-d, decimal-leading-zero);
	font: 500 12px/1 var(--in-mono);
	letter-spacing: .16em;
	color: var(--in-ice);
}
body.cg-industry-page .elementor-element.cgin-dcard:is(:hover, :focus-within) { border-color: rgba(157, 184, 255, .45); background: rgba(255, 255, 255, .07); transform: translateY(-4px); }
.cgin-dcard-title .elementor-heading-title { font: 600 19px/1.3 var(--in-head) !important; letter-spacing: -.01em !important; color: #fff !important; }
.cgin-dcard-text p { margin: 0 !important; font-size: 14.5px !important; line-height: 1.65 !important; color: #B4C1D4 !important; }
.cgin-dcard-text p:not(:last-child) { margin-bottom: 10px !important; }
.cgin-dcard-text strong { color: #fff; }

/* Statement line (a Heading widget) */
.cgin-statement .elementor-heading-title {
	padding-left: 18px;
	border-left: 3px solid var(--in-accent-2);
	font: 500 19px/1.5 var(--in-head) !important;
	letter-spacing: -.005em !important;
	color: var(--in-ink) !important;
}
.cgin-statement--light .elementor-heading-title { border-left-color: var(--in-ice); color: #fff !important; }

/* Side panel holding a checklist (Heading + Icon List .cgin-checks) */
body.cg-industry-page .elementor-element.cgin-panel {
	gap: 16px !important;
	padding: 30px !important;
	border: 1px solid var(--in-line);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 30px 60px -40px rgba(12, 24, 37, .35);
}
.cgin-panel-title .elementor-heading-title { font: 500 12px/1.4 var(--in-mono) !important; letter-spacing: .16em !important; text-transform: uppercase; color: var(--in-accent) !important; }
.cgin-panel .cgin-checks .elementor-icon-list-items { grid-template-columns: 1fr; }
@media (min-width: 1025px) { .cgin-panel--2col .cgin-checks .elementor-icon-list-items { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Small footnote under a grid */
.cgin-note p { margin: 0 !important; font-size: 14px !important; line-height: 1.6 !important; color: var(--in-body) !important; }

/* Product cards: Loop Grid .cgin-prodgrid using the "Products Card - Archive" template (995) */
.cgin-prodgrid .e-loop-item > .e-con {
	height: 100%;
	gap: 0 !important;
	padding: 14px !important;
	border: 1px solid var(--in-line);
	border-radius: 16px;
	background: #fff;
	text-decoration: none;
	transition: border-color .35s ease, box-shadow .45s ease, transform .45s var(--in-ease);
}
.cgin-prodgrid .e-loop-item > .e-con:hover { border-color: rgba(53, 99, 224, .35); box-shadow: 0 26px 48px -34px rgba(12, 24, 37, .5); transform: translateY(-4px); }
.cgin-prodgrid [data-id="prdfeat01"] { overflow: hidden; border-radius: 10px; }
.cgin-prodgrid [data-id="prdfeat01"] img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .9s var(--in-ease); }
.cgin-prodgrid .e-loop-item > .e-con:hover [data-id="prdfeat01"] img { transform: scale(1.04); }
.cgin-prodgrid [data-id="prdbody01"] { gap: 8px !important; padding: 18px 8px 8px !important; }
.cgin-prodgrid [data-id="prdtitl01"] .elementor-heading-title { font: 600 18px/1.3 var(--in-head) !important; color: var(--in-ink) !important; }
.cgin-prodgrid [data-id="prdsumm01"],
.cgin-prodgrid [data-id="prdsumm01"] p {
	margin: 0 !important;
	font-size: 14px !important;
	line-height: 1.6 !important;
	color: var(--in-body) !important;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.cgin-prodgrid [data-id="prdexpl01"] .elementor-heading-title { font: 600 12px/1 Inter, sans-serif !important; letter-spacing: .08em !important; text-transform: uppercase; color: var(--in-accent) !important; }

/* Workflow steps: grid .cgin-wsteps of .cgin-wstep cards (number badge + dashed connector) */
body.cg-industry-page .elementor-element.cgin-wsteps { counter-reset: cgin-w; }
body.cg-industry-page .elementor-element.cgin-wstep { counter-increment: cgin-w; gap: 10px !important; padding: 26px 24px 24px !important; }
body.cg-industry-page .elementor-element.cgin-wstep::before {
	content: counter(cgin-w, decimal-leading-zero);
	display: grid;
	place-items: center;
	width: 46px !important;
	height: 46px !important;
	margin-bottom: 8px;
	border-radius: 50% !important;
	background: linear-gradient(145deg, var(--in-accent-2), var(--in-accent));
	box-shadow: 0 10px 22px -10px rgba(53, 99, 224, .9);
	font: 500 13px/1 var(--in-mono);
	letter-spacing: .08em;
	color: #fff;
}
@media (min-width: 1025px) {
	body.cg-industry-page .cgin-wsteps > .elementor-element.cgin-wstep:not(:last-child)::after {
		content: "";
		position: absolute;
		top: 49px;
		left: 82px;
		right: -18px;
		border-top: 1px dashed rgba(53, 99, 224, .45);
	}
	/* 3-per-row variant (.cgin-wsteps--3): no connector leaving the end of a row */
	body.cg-industry-page .cgin-wsteps--3 > .elementor-element.cgin-wstep:nth-child(3n)::after,
	body.cg-industry-page .cgin-wsteps--4 > .elementor-element.cgin-wstep:nth-child(4n)::after { display: none; }
}

/* Centred call-to-action band inside a navy section */
.cgin-ctaband :is(.elementor-heading-title, .elementor-widget-text-editor) { text-align: center; }
.cgin-ctaband .cgin-text--light p { max-width: 720px; margin-left: auto !important; margin-right: auto !important; }

@media (prefers-reduced-motion: reduce) {
	body.cg-industry-page .elementor-element:is(.cgin-app, .cgin-tile, .cgin-wstep, .cgin-dcard),
	.cgin-prodgrid .e-loop-item > .e-con { transition: none; transform: none !important; }
}

/* ==========================================================================
   Overview image + callout (every industry page). Classes set in Elementor:
   .cgin-media on the image column, .cgin-callout on the callout container.
   Rounded photo with a soft lower shade and hover zoom, a blueprint dot-grid
   behind the top-right corner, and a navy glass callout with an accent line,
   an icon chip, a mono label and larger text.
   ========================================================================== */
body.cg-industry-page .elementor-element.cgin-media { position: relative; isolation: isolate; overflow: visible; }
/* Blueprint dot-grid peeking out behind the photo */
body.cg-industry-page .elementor-element.cgin-media::after {
	content: "";
	position: absolute;
	top: -22px;
	right: -22px;
	width: 46%;
	height: 52%;
	z-index: -1;
	border-radius: 22px;
	background-image: radial-gradient(rgba(53, 99, 224, .38) 1.2px, transparent 1.4px);
	background-size: 14px 14px;
	-webkit-mask-image: linear-gradient(225deg, #000 30%, transparent 85%);
	        mask-image: linear-gradient(225deg, #000 30%, transparent 85%);
	pointer-events: none;
}
body.cg-industry-page .cgin-media > .elementor-widget-image {
	position: relative;
	z-index: 1;
	overflow: hidden;
	border-radius: 22px;
	box-shadow: 0 44px 80px -44px rgba(7, 17, 31, .6), 0 0 0 1px rgba(12, 24, 37, .06);
}
body.cg-industry-page .cgin-media > .elementor-widget-image img {
	display: block;
	width: 100% !important;
	height: 520px !important;
	object-fit: cover;
	border-radius: 22px !important;
	transition: transform 1.2s cubic-bezier(.2, .7, .2, 1);
}
body.cg-industry-page .cgin-media:hover > .elementor-widget-image img { transform: scale(1.04); }
/* Soft lower shade so the callout reads as part of the photo */
body.cg-industry-page .cgin-media > .elementor-widget-image::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(7, 17, 31, 0) 45%, rgba(7, 17, 31, .55) 100%);
	pointer-events: none;
}

/* Callout: navy glass card overlapping the photo */
body.cg-industry-page .elementor-element.cgin-callout {
	position: relative;
	z-index: 2;
	align-items: center !important;
	gap: 18px !important;
	margin: -96px 26px 0 !important;
	padding: 22px 26px 22px 22px !important;
	border: 1px solid rgba(157, 184, 255, .28) !important;
	border-radius: 18px !important;
	background: linear-gradient(135deg, rgba(8, 19, 38, .9) 0%, rgba(17, 40, 92, .88) 60%, rgba(33, 86, 170, .85) 100%) !important;
	-webkit-backdrop-filter: blur(14px);
	        backdrop-filter: blur(14px);
	box-shadow: 0 34px 60px -30px rgba(7, 17, 31, .85), inset 0 1px 0 rgba(255, 255, 255, .08) !important;
	overflow: hidden;
	transition: transform .5s cubic-bezier(.2, .7, .2, 1), box-shadow .5s ease;
}
/* Ice accent line along the top edge */
body.cg-industry-page .elementor-element.cgin-callout::after {
	content: "";
	position: absolute;
	top: 0; left: 22px; right: 22px;
	height: 2px;
	background: linear-gradient(90deg, transparent, #9DB8FF 30%, #3563E0 70%, transparent);
	opacity: .9;
}
body.cg-industry-page .cgin-media:hover .elementor-element.cgin-callout { transform: translateY(-4px); }
/* Icon column shrinks to the chip */
body.cg-industry-page .cgin-callout > .e-con:first-child { width: auto !important; flex: none !important; --width: auto !important; }
body.cg-industry-page .cgin-callout .elementor-icon {
	display: grid !important;
	place-items: center;
	width: 56px;
	height: 56px;
	border-radius: 16px;
	background: rgba(157, 184, 255, .14);
	box-shadow: inset 0 0 0 1px rgba(157, 184, 255, .32);
	color: #9DB8FF !important;
}
body.cg-industry-page .cgin-callout .elementor-icon svg { width: 28px !important; height: 28px !important; }
body.cg-industry-page .cgin-callout .elementor-icon :is(svg, svg *) { fill: none !important; stroke: currentColor !important; }
/* Text column */
body.cg-industry-page .cgin-callout > .e-con:last-child { gap: 6px !important; flex: 1 1 auto !important; width: auto !important; }
body.cg-industry-page .cgin-callout .elementor-widget-heading .elementor-heading-title {
	font: 500 11.5px/1.4 "Geist Mono", ui-monospace, monospace !important;
	letter-spacing: .16em !important;
	text-transform: uppercase;
	color: #9DB8FF !important;
}
body.cg-industry-page .cgin-callout .elementor-widget-text-editor,
body.cg-industry-page .cgin-callout .elementor-widget-text-editor p {
	margin: 0 !important;
	font: 500 16.5px/1.5 "Space Grotesk", Inter, sans-serif !important;
	letter-spacing: -.005em;
	color: #fff !important;
}
@media (max-width: 1024px) {
	body.cg-industry-page .cgin-media > .elementor-widget-image img { height: 420px !important; }
}
@media (max-width: 767px) {
	body.cg-industry-page .elementor-element.cgin-media::after { display: none; }
	body.cg-industry-page .cgin-media > .elementor-widget-image img { height: 300px !important; }
	body.cg-industry-page .elementor-element.cgin-callout { margin: -56px 12px 0 !important; padding: 16px 18px 16px 16px !important; flex-direction: row !important; }
	body.cg-industry-page .cgin-callout .elementor-icon { width: 46px; height: 46px; border-radius: 13px; }
	body.cg-industry-page .cgin-callout .elementor-widget-text-editor p { font-size: 15px !important; }
}
@media (prefers-reduced-motion: reduce) {
	body.cg-industry-page .cgin-media > .elementor-widget-image img,
	body.cg-industry-page .elementor-element.cgin-callout { transition: none; transform: none !important; }
}
