/* ==========================================================================
   Custom Machining & Fabrication (page 2630) — page layer on top of
   product.css + capability.css. Loaded by cg_machining_page_assets().

   Elementor hooks:
   hero   .cgmc-hero, .cgmc-hero__copy, .cgmc-hero__visual, .cgmc-frame (Image),
          .cgmc-console__bar (Heading), .cgmc-console (Text: one line per <p>),
          .cgmc-snaps/.cgmc-snap
   body   .cgmc-gallery/.cgmc-panel(+__img/__icon/__title/__text),
          .cgmc-drawing, .cgmc-h3(--lg), .cgmc-bento/.cgmc-machine(--hero/--photo)
          (+__img/__cat/__model/__chips/__text), .cgmc-beyond,
          .cgmc-route-sec/.cgmc-route/.cgmc-stop, .cgmc-entries/.cgmc-entry,
          .cgmc-apps, .cgmc-inspect-photo, .cgmc-cta
   Without machining.js (and in the Elementor editor) every block is plain,
   stacked, editable content.
   ========================================================================== */

body.cg-machining-page :is(.cgmc-snap, .cgmc-panel, .cgmc-machine, .cgmc-stop, .cgmc-entry) { gap: 0 !important; }
.cgmc-h3 .elementor-heading-title { font: 600 22px/1.25 var(--pd-head) !important; letter-spacing: -.01em !important; color: var(--pd-ink) !important; }
.cgmc-h3--lg { margin-top: 14px !important; }
.cgmc-h3--lg .elementor-heading-title { font-size: clamp(24px, 2.2vw, 30px) !important; }
.cgpd-sec--navy .cgmc-h3 .elementor-heading-title { color: #fff !important; }

/* ── HERO: copy + machine viewport ───────────────────────────────────── */
body.cg-machining-page .elementor-element.cgmc-hero.e-con { min-height: 0; }
.cgmc-hero__copy > .elementor-widget { max-width: 640px; }
.cgmc-hero .cgh-hero__text p + p { margin-top: 14px; }
.cgmc-hero .cgh-hero__text { font-size: 17px !important; }
.cgmc-hero__visual { position: relative; }
/* Chamfered photo frame (machined-edge corners) */
.cgmc-frame { margin: 0 !important; }
.cgmc-frame, .cgmc-frame > .elementor-widget-container {
	--ch: 38px;
	position: relative;
	padding: 1.5px;
	clip-path: polygon(0 0, calc(100% - var(--ch)) 0, 100% var(--ch), 100% 100%, var(--ch) 100%, 0 calc(100% - var(--ch)));
	background: linear-gradient(140deg, rgba(157, 184, 255, .75), rgba(53, 99, 224, .25) 40%, rgba(157, 184, 255, .5));
	box-shadow: 0 60px 90px -50px rgba(0, 0, 0, .9);
}
.cgmc-frame img {
	display: block;
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 5 / 4;
	object-fit: cover;
	object-position: 78% 50%;
	clip-path: polygon(0 0, calc(100% - var(--ch) + 1px) 0, 100% calc(var(--ch) - 1px), 100% 100%, calc(var(--ch) - 1px) 100%, 0 calc(100% - var(--ch) + 1px));
	filter: saturate(.9) contrast(1.05);
	transition: transform 1.2s var(--pd-ease);
}
.cgmc-frame:hover img { transform: scale(1.035); }
.cgmc-frame::after {
	content: "";
	position: absolute;
	inset: 1.5px;
	clip-path: inherit;
	background: linear-gradient(200deg, transparent 40%, rgba(7, 17, 31, .75)), linear-gradient(90deg, rgba(7, 17, 31, .35), transparent 40%);
	pointer-events: none;
}
/* HUD overlay (added by machining.js) */
.cgmc-hud { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
.cgmc-hud__reticle {
	position: absolute;
	left: 58%;
	top: 38%;
	width: 64px;
	height: 64px;
	margin: -32px 0 0 -32px;
	border: 1.5px solid rgba(157, 184, 255, .9);
	border-radius: 50%;
	box-shadow: 0 0 0 6px rgba(53, 99, 224, .12), 0 0 30px rgba(53, 99, 224, .55);
	animation: cgmcAim 14s ease-in-out infinite;
}
.cgmc-hud__reticle::before, .cgmc-hud__reticle::after { content: ""; position: absolute; background: rgba(157, 184, 255, .85); }
.cgmc-hud__reticle::before { left: -18px; right: -18px; top: 50%; height: 1px; }
.cgmc-hud__reticle::after { top: -18px; bottom: -18px; left: 50%; width: 1px; }
.cgmc-hud__reticle i { position: absolute; left: 50%; top: 50%; width: 6px; height: 6px; margin: -3px 0 0 -3px; border-radius: 50%; background: #fff; box-shadow: 0 0 10px #fff; animation: cgmcBlink 1.2s ease-in-out infinite; }
@keyframes cgmcAim {
	0%, 100% { left: 58%; top: 38%; }
	22% { left: 70%; top: 30%; }
	45% { left: 66%; top: 58%; }
	70% { left: 45%; top: 64%; }
	85% { left: 50%; top: 44%; }
}
@keyframes cgmcBlink { 50% { opacity: .25; } }
.cgmc-hud__axes {
	position: absolute;
	top: 18px;
	left: 18px;
	display: grid;
	grid-template-columns: auto auto;
	gap: 3px 10px;
	padding: 10px 14px;
	border: 1px solid rgba(157, 184, 255, .3);
	border-radius: 10px;
	background: rgba(7, 17, 31, .72);
	-webkit-backdrop-filter: blur(8px);
	        backdrop-filter: blur(8px);
	font: 500 11.5px/1.35 var(--pd-mono);
	color: #fff;
	font-variant-numeric: tabular-nums;
}
.cgmc-hud__axes b { font-weight: 600; color: var(--pd-ice); }
/* G-code console: title bar (Heading) + lines (Text widget) */
.cgmc-console__bar, .cgmc-console { position: relative; z-index: 3; align-self: flex-start; width: min(400px, 82%) !important; }
.cgmc-console__bar { margin: -150px 0 0 -48px !important; }
.cgmc-console { margin: 0 0 0 -48px !important; }
.cgmc-console__bar .elementor-heading-title {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 11px 14px;
	border: 1px solid rgba(157, 184, 255, .28);
	border-bottom: 0;
	border-radius: 14px 14px 0 0;
	background: rgba(16, 32, 56, .96);
	font: 600 10.5px/1 var(--pd-mono) !important;
	letter-spacing: .14em !important;
	color: var(--pd-ice) !important;
}
.cgmc-console__bar .elementor-heading-title::before {
	content: "";
	flex: none;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #FF8A7A;
	box-shadow: 14px 0 0 #FFD27A, 28px 0 0 #7CE0B0;
	margin-right: 34px;
}
.cgmc-console__bar .elementor-heading-title::after {
	content: "";
	margin-left: auto;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #7CE0B0;
	box-shadow: 0 0 10px #7CE0B0;
	animation: cgmcBlink 1.4s ease-in-out infinite;
}
.elementor-widget.cgmc-console {
	padding: 14px 16px 16px;
	border: 1px solid rgba(157, 184, 255, .28);
	border-radius: 0 0 14px 14px;
	background: rgba(7, 17, 31, .95);
	-webkit-backdrop-filter: blur(10px);
	        backdrop-filter: blur(10px);
	box-shadow: 0 40px 70px -30px rgba(0, 0, 0, .9);
	max-height: 190px;
	overflow: hidden;
	font: 500 12px/1.7 var(--pd-mono) !important;
	color: #B4C1D4;
}
.cgmc-console p { font: inherit !important; color: inherit !important; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cgmc-console.is-ready p { display: none; }
.cgmc-console__screen { height: calc(7 * 1.7em); display: flex; flex-direction: column; justify-content: flex-end; }
.cgmc-ln { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #DCE7FF; }
.cgmc-ln b { font-weight: 600; }
.cgmc-ln .k-G, .cgmc-ln .k-O { color: var(--pd-ice); }
.cgmc-ln .k-M { color: #FFD27A; }
.cgmc-ln .k-T { color: #7CE0B0; }
.cgmc-ln .k-S, .cgmc-ln .k-F, .cgmc-ln .k-N { color: #C6B3FF; }
.cgmc-ln i { font-style: normal; color: #fff; }
.cgmc-ln em { font-style: normal; color: #6F83A3; }
.cgmc-ln.is-typing::after { content: "\258D"; margin-left: 2px; color: var(--pd-ice); animation: cgmcBlink .8s steps(1) infinite; }
/* Snapshot strip */
body.cg-machining-page .elementor-element.cgmc-snaps {
	position: relative;
	z-index: 2;
	display: grid !important;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 0 !important;
	width: 100%;
	margin-top: 64px;
	border: 1px solid rgba(157, 184, 255, .18);
	border-radius: 18px;
	background: rgba(7, 17, 31, .6);
	-webkit-backdrop-filter: blur(8px);
	        backdrop-filter: blur(8px);
	overflow: hidden;
}
.cgmc-snap {
	position: relative;
	--padding-top: 24px !important; --padding-right: 20px !important; --padding-bottom: 22px !important; --padding-left: 20px !important;
	border-right: 1px solid rgba(157, 184, 255, .12);
	background: radial-gradient(260px circle at var(--mx, -200px) var(--my, -200px), rgba(53, 99, 224, .25), transparent 60%) !important;
	animation: cgcgUp .9s var(--pd-ease) both;
	transition: background-color .3s ease;
}
.cgmc-snap:last-child { border-right: 0; }
.cgmc-snap:nth-child(1) { animation-delay: .55s; } .cgmc-snap:nth-child(2) { animation-delay: .65s; } .cgmc-snap:nth-child(3) { animation-delay: .75s; }
.cgmc-snap:nth-child(4) { animation-delay: .85s; } .cgmc-snap:nth-child(5) { animation-delay: .95s; } .cgmc-snap:nth-child(6) { animation-delay: 1.05s; }
.cgmc-snap__icon { margin: 0 !important; }
.cgmc-snap__icon .elementor-icon { display: grid !important; place-items: center; width: 36px; height: 36px; padding: 0 !important; border-radius: 10px; font-size: 15px !important; background: rgba(157, 184, 255, .12) !important; color: var(--pd-ice) !important; transition: background-color .3s ease, color .3s ease; }
.cgmc-snap__icon svg { width: 15px; height: 15px; fill: currentColor !important; }
.cgmc-snap:hover .cgmc-snap__icon .elementor-icon { background: var(--pd-accent) !important; color: #fff !important; }
.cgmc-snap__title { margin-top: 16px !important; }
.cgmc-snap__title .elementor-heading-title { font: 600 15px/1.3 var(--pd-head) !important; color: #fff !important; }
.cgmc-snap__text { margin-top: 6px !important; }
.cgmc-snap__text p { margin: 0; font-size: 12.5px; line-height: 1.5; color: #9FB0C8; }

/* ── 2. Components gallery ───────────────────────────────────────────── */
.cgmc-gallery-head { margin-top: 72px !important; }
body.cg-machining-page .elementor-element.cgmc-gallery {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px !important;
	margin-top: 24px;
}
.cgmc-panel {
	position: relative;
	justify-content: flex-end;
	min-height: 360px;
	--padding-top: 28px !important; --padding-right: 28px !important; --padding-bottom: 28px !important; --padding-left: 28px !important;
	border-radius: 22px;
	background: var(--pd-navy) !important;
	overflow: hidden;
	isolation: isolate;
	cursor: pointer;
	outline: none;
}
.cgmc-panel:focus-visible { box-shadow: 0 0 0 3px var(--pd-accent-2); }
.cgmc-panel > .elementor-element { position: relative; z-index: 2; }
body.cg-machining-page .cgmc-panel > .cgmc-panel__img { position: absolute !important; inset: 0; z-index: 0; margin: 0 !important; width: 100% !important; }
.cgmc-panel__img .elementor-widget-container, .cgmc-panel__img img { width: 100% !important; height: 100% !important; }
.cgmc-panel__img img { object-fit: cover; transform: scale(1.08); filter: grayscale(.4) brightness(.72); transition: transform 1.1s var(--pd-ease), filter .8s ease; }
.cgmc-panel::after {
	content: "" !important;
	position: absolute !important;
	inset: 0 !important;
	z-index: 1;
	background: linear-gradient(0deg, rgba(7, 17, 31, .96) 8%, rgba(7, 17, 31, .55) 50%, rgba(7, 17, 31, .15)) !important;
	pointer-events: none;
}
.cgmc-panel::before {
	content: "" !important;
	position: absolute !important;
	left: 0 !important; right: 0 !important; top: 0 !important;
	width: auto !important;
	height: 3px !important;
	opacity: 1 !important;
	z-index: 3;
	background: linear-gradient(90deg, var(--pd-accent), var(--pd-ice)) !important;
	transform: scaleX(0);
	transform-origin: 0 50%;
	transition: transform .8s var(--pd-ease);
}
.cgmc-panel__icon { margin: 0 0 auto !important; }
.cgmc-panel__icon .elementor-icon { display: grid !important; place-items: center; width: 46px; height: 46px; padding: 0 !important; border-radius: 50%; border: 1px solid rgba(157, 184, 255, .4); font-size: 17px !important; background: rgba(7, 17, 31, .55) !important; color: var(--pd-ice) !important; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); transition: background-color .4s ease, color .4s ease; }
.cgmc-panel__icon svg { width: 17px; height: 17px; fill: currentColor !important; }
.cgmc-panel__title .elementor-heading-title { font: 600 21px/1.25 var(--pd-head) !important; color: #fff !important; }
.cgmc-panel__text { margin-top: 10px !important; }
.cgmc-panel__text p { margin: 0; font-size: 15px; line-height: 1.65; color: #C9D5E6; }
.cgmc-panel:hover .cgmc-panel__img img, .cgmc-panel.is-open .cgmc-panel__img img { transform: scale(1); filter: grayscale(0) brightness(.85); }
.cgmc-panel.is-open::before { transform: scaleX(1); }
.cgmc-panel.is-open .cgmc-panel__icon .elementor-icon { background: var(--pd-accent) !important; color: #fff !important; border-color: var(--pd-accent); }
/* Expanding gallery (desktop, with JS) */
@media (min-width: 1025px) {
	body.cg-machining-page .elementor-element.cgmc-gallery.is-ready { display: flex !important; gap: 12px !important; height: 520px; }
	.cgmc-gallery.is-ready .cgmc-panel { flex: 1 1 0; min-width: 0; min-height: 0; transition: flex-grow .8s var(--pd-ease), opacity .8s ease, transform .9s var(--pd-ease) !important; }
	.cgmc-gallery.is-ready .cgmc-panel.is-open { flex-grow: 3.6; }
	.cgmc-gallery.is-ready .cgmc-panel:not(.is-open) { --padding-left: 0px !important; --padding-right: 0px !important; }
	.cgmc-gallery.is-ready .cgmc-panel:not(.is-open) .cgmc-panel__icon { align-self: center; }
	.cgmc-gallery.is-ready .cgmc-panel:not(.is-open) .cgmc-panel__title {
		position: absolute !important;
		left: 50%;
		bottom: 30px;
		width: 380px !important;
		max-width: none;
		transform: translateX(-50%) rotate(-90deg) translateX(50%);
		transform-origin: 50% 50%;
	}
	.cgmc-gallery.is-ready .cgmc-panel:not(.is-open) .cgmc-panel__title .elementor-heading-title { white-space: nowrap; font-size: 18px !important; }
	.cgmc-gallery.is-ready .cgmc-panel__text { max-width: 440px; }
	.cgmc-gallery.is-ready .cgmc-panel:not(.is-open) .cgmc-panel__text { position: absolute !important; opacity: 0; visibility: hidden; }
	.cgmc-gallery.is-ready .cgmc-panel.is-open .cgmc-panel__title, .cgmc-gallery.is-ready .cgmc-panel.is-open .cgmc-panel__text { animation: cgmcIn .7s var(--pd-ease) .25s both; }
	.cgmc-gallery.is-ready .cgmc-panel.is-open .cgmc-panel__text { animation-delay: .35s; }
}
@keyframes cgmcIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
/* Machined features */
.cgmc-feat { margin-top: 96px !important; }
.cgmc-drawing { margin-top: 0 !important; }
.cgmc-features { margin-top: 20px !important; }

/* ── 3. Machines bento (navy) ────────────────────────────────────────── */
body.cg-machining-page .elementor-element.cgmc-bento {
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	grid-template-rows: none !important;
	grid-auto-rows: minmax(270px, auto) !important;
	gap: 20px !important;
	margin-top: 56px;
}
.cgmc-machine {
	position: relative;
	justify-content: flex-end;
	--padding-top: 28px !important; --padding-right: 28px !important; --padding-bottom: 26px !important; --padding-left: 28px !important;
	border: 1px solid rgba(157, 184, 255, .16);
	border-radius: 22px;
	background: radial-gradient(420px circle at var(--mx, 100%) var(--my, 0%), rgba(53, 99, 224, .32), transparent 60%), rgba(12, 26, 46, .72) !important;
	overflow: hidden;
	isolation: isolate;
	transition: transform .5s var(--pd-ease), border-color .35s ease, box-shadow .5s ease, opacity .8s ease !important;
}
.cgmc-machine:hover { transform: translateY(-6px); border-color: rgba(157, 184, 255, .45); box-shadow: 0 40px 70px -40px rgba(0, 0, 0, .85); }
.cgmc-machine > .elementor-element { position: relative; z-index: 2; }
body.cg-machining-page .cgmc-machine > .cgmc-machine__img { position: absolute !important; inset: 0; z-index: 0; margin: 0 !important; width: 100% !important; }
.cgmc-machine__img .elementor-widget-container, .cgmc-machine__img img { width: 100% !important; height: 100% !important; }
.cgmc-machine__img img { object-fit: cover; opacity: .6; transition: transform 1.2s var(--pd-ease), opacity .6s ease; }
.cgmc-machine:hover .cgmc-machine__img img { transform: scale(1.05); opacity: .75; }
.cgmc-machine:has(.cgmc-machine__img)::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(0deg, rgba(7, 17, 31, .97) 18%, rgba(7, 17, 31, .55) 60%, rgba(7, 17, 31, .2));
	pointer-events: none;
}
.cgmc-machine__cat .elementor-heading-title { display: inline-flex; align-items: center; gap: 10px; font: 500 11px/1.2 var(--pd-mono) !important; letter-spacing: .18em !important; text-transform: uppercase; color: var(--pd-ice) !important; }
.cgmc-machine__cat .elementor-heading-title::before { content: ""; width: 20px; height: 1px; background: currentColor; }
.cgmc-machine__model { margin-top: 12px !important; }
.cgmc-machine__model .elementor-heading-title { font: 600 26px/1.1 var(--pd-head) !important; letter-spacing: -.02em !important; color: #fff !important; }
.cgmc-machine__chips { margin-top: 14px !important; }
.cgmc-machine__chips .elementor-icon-list-items { display: flex !important; flex-wrap: wrap; gap: 6px; }
.cgmc-machine__chips .elementor-icon-list-item { margin: 0 !important; padding: 6px 10px !important; border: 1px solid rgba(157, 184, 255, .28); border-radius: 99px; background: rgba(157, 184, 255, .08); }
.cgmc-machine__chips .elementor-icon-list-item::after { display: none !important; }
.cgmc-machine__chips .elementor-icon-list-icon svg { width: 9px !important; fill: #FFD27A !important; }
.cgmc-machine__chips .elementor-icon-list-text { padding-left: 6px !important; font: 500 11px/1 var(--pd-mono) !important; letter-spacing: .06em; color: #DCE7FF !important; }
.cgmc-machine__text { margin-top: 14px !important; }
.cgmc-machine__text p { margin: 0; font-size: 14.5px; line-height: 1.65; color: #B4C1D4; }
/* Featured card: 2×2 with photo + rotating index ring */
@media (min-width: 1025px) {
	.cgmc-bento > .cgmc-machine--hero { grid-column: span 2; grid-row: span 2; }
}
.cgmc-machine--hero .cgmc-machine__model .elementor-heading-title { font-size: clamp(30px, 3vw, 44px) !important; }
.cgmc-machine--hero .cgmc-machine__text p { font-size: 16px; max-width: 520px; }
.cgmc-machine--hero .cgmc-machine__img img { opacity: .7; }
.cgmc-machine--hero::before {
	content: "" !important;
	position: absolute !important;
	top: 26px !important; right: 26px !important; left: auto !important; bottom: auto !important;
	width: 86px !important; height: 86px !important;
	opacity: 1 !important;
	z-index: 2;
	border: 1.5px dashed rgba(157, 184, 255, .6) !important;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(157, 184, 255, .9) 0 3px, transparent 4px) !important;
	animation: cgcgSpin 16s linear infinite;
}
/* Beyond general machining band */
.cgmc-beyond {
	margin-top: 24px !important;
	--padding-top: 40px !important; --padding-right: 44px !important; --padding-bottom: 40px !important; --padding-left: 44px !important;
	border: 1px solid rgba(157, 184, 255, .22);
	border-radius: 24px;
	background: radial-gradient(520px 300px at 100% 0%, rgba(53, 99, 224, .35), transparent 70%), linear-gradient(110deg, rgba(27, 63, 160, .35), rgba(12, 26, 46, .6)) !important;
}
.cgmc-beyond .cgpd-text p { font-size: 16px; }

/* ── 4. Pinned horizontal route ──────────────────────────────────────── */
body.cg-machining-page .elementor-element.cgmc-route {
	position: relative;
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px !important;
	margin-top: 56px;
}
.cgmc-stop {
	position: relative;
	--padding-top: 30px !important; --padding-right: 30px !important; --padding-bottom: 30px !important; --padding-left: 30px !important;
	border: 1px solid var(--pd-line);
	border-radius: 22px;
	background: radial-gradient(400px circle at var(--mx, -200px) var(--my, -200px), rgba(53, 99, 224, .09), transparent 60%), #fff !important;
	transition: border-color .5s ease, box-shadow .5s ease, transform .5s var(--pd-ease) !important;
}
.cgmc-stop__icon { margin: 0 !important; }
.cgmc-stop__icon .elementor-icon { display: grid !important; place-items: center; width: 54px; height: 54px; padding: 0 !important; border-radius: 16px; font-size: 19px !important; background: #EAF0FD !important; color: var(--pd-accent) !important; transition: background-color .5s ease, color .5s ease, box-shadow .5s ease; }
.cgmc-stop__icon svg { width: 19px; height: 19px; fill: currentColor !important; }
.cgmc-stop.is-lit .cgmc-stop__icon .elementor-icon { background: var(--pd-accent) !important; color: #fff !important; box-shadow: 0 14px 26px -14px rgba(27, 63, 160, .9); }
.cgmc-stop__title { margin-top: 22px !important; }
.cgmc-stop__title .elementor-heading-title { font: 600 20px/1.3 var(--pd-head) !important; color: var(--pd-ink) !important; text-wrap: balance; transition: color .5s ease; }
.cgmc-stop__text { margin-top: 12px !important; }
.cgmc-stop__text p { margin: 0; font-size: 15.5px; line-height: 1.72; color: var(--pd-body); }
.cgmc-stop__link { margin-top: 18px !important; }
.cgmc-stop:hover { border-color: rgba(53, 99, 224, .3); }
.cgmc-rail { display: none; }
/* Pinned mode (desktop, set by machining.js) */
body.cg-machining-page .cgmc-route-sec.is-pinned { overflow-x: clip; }
body.cg-machining-page .cgmc-route-sec.is-pinned > .cgpd-in {
	position: sticky !important;
	display: flex !important;
	flex-direction: column;
	justify-content: center;
	align-self: stretch;
	max-width: 1200px;
	margin: 0 auto;
}
body.cg-machining-page .cgmc-route-sec.is-pinned .elementor-element.cgmc-route {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: stretch;
	width: max-content !important;
	max-width: none;
	gap: 24px !important;
	margin-top: 44px;
	padding-top: 58px;
	will-change: transform;
}
.cgmc-route-sec.is-pinned .cgmc-stop { flex: none; width: 380px !important; }
.cgmc-route-sec.is-pinned .cgmc-stop::before {
	content: "" !important;
	position: absolute !important;
	top: -44px !important; left: 30px !important;
	width: 14px !important; height: 14px !important;
	opacity: 1 !important;
	border-radius: 50%;
	border: 2px solid #CCD6E6 !important;
	background: #fff !important;
	transition: border-color .4s ease, background-color .4s ease, box-shadow .4s ease;
}
.cgmc-route-sec.is-pinned .cgmc-stop.is-lit::before { border-color: var(--pd-accent-2) !important; background: var(--pd-accent-2) !important; box-shadow: 0 0 0 5px rgba(53, 99, 224, .15); }
.cgmc-route-sec.is-pinned .cgmc-stop.is-active { border-color: rgba(53, 99, 224, .45); box-shadow: 0 40px 70px -46px rgba(12, 24, 37, .55), 0 0 0 4px rgba(53, 99, 224, .07); transform: translateY(-8px); }
.cgmc-route-sec.is-pinned .cgmc-stop.is-active .cgmc-stop__title .elementor-heading-title { color: var(--pd-accent) !important; }
.cgmc-route-sec.is-pinned .cgmc-rail {
	display: block;
	position: absolute;
	top: 20px;
	left: 30px;
	right: 0;
	height: 2px;
	background: repeating-linear-gradient(90deg, #CCD6E6 0 6px, transparent 6px 12px);
}
.cgmc-rail i { position: absolute; inset: 0; background: linear-gradient(90deg, var(--pd-accent), var(--pd-accent-2), var(--pd-ice)); box-shadow: 0 0 12px rgba(53, 99, 224, .6); transform: scaleX(var(--p, 0)); transform-origin: 0 50%; }
.cgmc-rail b {
	position: absolute;
	top: 50%;
	left: calc(var(--p, 0) * 100%);
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: #fff;
	border: 3px solid var(--pd-accent-2);
	box-shadow: 0 0 0 7px rgba(53, 99, 224, .14), 0 0 26px rgba(53, 99, 224, .8);
	transform: translate(-50%, -50%);
}
.cgmc-rail b::after { content: ""; position: absolute; inset: 5px; border-radius: 50%; border: 2px dashed var(--pd-accent); animation: cgcgSpin 4s linear infinite; }

/* ── 5. OEM / MRO entry points ───────────────────────────────────────── */
.cgmc-entries { margin-top: 56px !important; }
body.cg-machining-page .elementor-element.cgmc-entries { grid-template-rows: none !important; grid-auto-rows: auto !important; gap: 20px !important; }
.cgmc-entry {
	position: relative;
	--padding-top: 32px !important; --padding-right: 32px !important; --padding-bottom: 32px !important; --padding-left: 32px !important;
	border: 1px solid var(--pd-line);
	border-radius: 22px;
	background: radial-gradient(380px circle at var(--mx, -200px) var(--my, -200px), rgba(53, 99, 224, .1), transparent 60%), #fff !important;
	overflow: hidden;
	transition: transform .5s var(--pd-ease), border-color .35s ease, box-shadow .5s ease, opacity .8s ease !important;
}
.cgmc-entry::before {
	content: "" !important;
	position: absolute !important;
	left: 0 !important; right: 0 !important; top: 0 !important;
	width: auto !important; height: 3px !important;
	opacity: 1 !important;
	background: linear-gradient(90deg, var(--pd-accent), var(--pd-ice)) !important;
	transform: scaleX(0);
	transform-origin: 0 50%;
	transition: transform .6s var(--pd-ease);
}
.cgmc-entry::after {
	content: "";
	position: absolute;
	top: 30px;
	right: 30px;
	width: 10px;
	height: 10px;
	border-top: 2px solid var(--pd-accent);
	border-right: 2px solid var(--pd-accent);
	opacity: .35;
	transition: transform .5s var(--pd-ease), opacity .4s ease;
}
.cgmc-entry:hover { transform: translateY(-6px); border-color: rgba(53, 99, 224, .32); box-shadow: 0 34px 60px -40px rgba(12, 24, 37, .5); }
.cgmc-entry:hover::before { transform: scaleX(1); }
.cgmc-entry:hover::after { opacity: 1; transform: translate(4px, -4px); }
.cgmc-entry__icon { margin: 0 !important; }
.cgmc-entry__icon .elementor-icon { display: grid !important; place-items: center; width: 56px; height: 56px; padding: 0 !important; border: 1px solid var(--pd-line); border-radius: 16px; font-size: 20px !important; background: linear-gradient(135deg, #EAF0FD, #fff) !important; color: var(--pd-accent) !important; transition: background .45s ease, color .45s ease, transform .5s var(--pd-ease); }
.cgmc-entry__icon svg { width: 20px; height: 20px; fill: currentColor !important; }
.cgmc-entry:hover .cgmc-entry__icon .elementor-icon { background: var(--pd-accent) !important; color: #fff !important; transform: rotate(-8deg) scale(1.05); }
.cgmc-entry__title { margin-top: 24px !important; }
.cgmc-entry__title .elementor-heading-title { font: 600 19px/1.3 var(--pd-head) !important; color: var(--pd-ink) !important; text-wrap: balance; }
.cgmc-entry__text { margin-top: 10px !important; }
.cgmc-entry__text p { margin: 0; font-size: 15px; line-height: 1.7; color: var(--pd-body); }
.cgmc-apps {
	margin-top: 32px !important;
	--padding-top: 40px !important; --padding-right: 44px !important; --padding-bottom: 40px !important; --padding-left: 44px !important;
	border: 1px solid var(--pd-line);
	border-radius: 24px;
	background: #fff !important;
}
.cgmc-apps__tags .elementor-icon-list-item a { display: inline-flex; align-items: center; flex-direction: row-reverse; gap: 8px; }
.cgmc-apps__tags .elementor-icon-list-text { padding-left: 0 !important; }
.cgmc-apps__tags .elementor-icon-list-icon svg { transition: transform .3s var(--pd-ease); }
.cgmc-apps__tags .elementor-icon-list-item:hover .elementor-icon-list-icon svg { transform: translateX(3px); }

/* ── 6. Inspection ───────────────────────────────────────────────────── */
.cgmc-inspect-photo { gap: 0 !important; }
.cgmc-badges { margin-top: 40px !important; }
body.cg-machining-page #inspection .cgmc-h3 { margin-top: 36px !important; }
@media (min-width: 1025px) { body.cg-machining-page #inspection .cgmc-inspect-photo { position: sticky !important; top: 140px; align-self: flex-start; } }

/* ── 7. Quote ────────────────────────────────────────────────────────── */
.cgmc-cta .cgpd-panel__title .elementor-heading-title { color: var(--pd-ice) !important; }

/* ── Responsive ──────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
	.cgmc-hero__copy > .elementor-widget { max-width: none; }
	.cgmc-console__bar { margin: -110px 0 0 16px !important; }
	.cgmc-console { margin: 0 0 0 16px !important; }
	body.cg-machining-page .elementor-element.cgmc-snaps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.cgmc-snap:nth-child(3n) { border-right: 0; }
	.cgmc-snap:nth-child(-n+3) { border-bottom: 1px solid rgba(157, 184, 255, .12); }
	body.cg-machining-page .elementor-element.cgmc-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.cg-machining-page .elementor-element.cgmc-bento { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.cgmc-bento > .cgmc-machine--hero { grid-column: 1 / -1; min-height: 380px; }
	body.cg-machining-page .elementor-element.cgmc-route { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.cgmc-frame { --ch: 24px; }
	.cgmc-console__bar, .cgmc-console { width: 100% !important; }
	.cgmc-console__bar { margin: 18px 0 0 !important; }
	.cgmc-console { margin: 0 !important; }
	.cgmc-hud__axes { top: 12px; left: 12px; padding: 8px 10px; font-size: 10.5px; }
	body.cg-machining-page .elementor-element.cgmc-snaps { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 40px; }
	.cgmc-snap { --padding-right: 14px !important; --padding-left: 16px !important; border-bottom: 1px solid rgba(157, 184, 255, .12); }
	.cgmc-snap:nth-child(3n) { border-right: 1px solid rgba(157, 184, 255, .12); }
	.cgmc-snap:nth-child(2n) { border-right: 0; }
	.cgmc-snap:nth-last-child(-n+2) { border-bottom: 0; }
	body.cg-machining-page .elementor-element.cgmc-gallery,
	body.cg-machining-page .elementor-element.cgmc-bento,
	body.cg-machining-page .elementor-element.cgmc-route { grid-template-columns: minmax(0, 1fr) !important; }
	.cgmc-panel { min-height: 320px; }
	.cgmc-gallery-head { margin-top: 56px !important; }
	.cgmc-feat { margin-top: 64px !important; }
	.cgmc-machine--hero::before { width: 60px !important; height: 60px !important; }
	.cgmc-beyond, .cgmc-apps { --padding-right: 22px !important; --padding-left: 22px !important; --padding-top: 30px !important; --padding-bottom: 30px !important; }
	.cgmc-entry { --padding-right: 24px !important; --padding-left: 24px !important; }
}
@media (prefers-reduced-motion: reduce) {
	.cgmc-hud__reticle, .cgmc-hud__reticle i, .cgmc-snap, .cgmc-machine--hero::before, .cgmc-rail b::after, .cgmc-console__bar .elementor-heading-title::after { animation: none !important; }
	.cgmc-panel__img img, .cgmc-machine__img img { transition: none; }
}

/* Hero content above the effects layer (no blended photo on this hero) */
body.cg-machining-page .cgmc-hero > .cgh-hero__box { position: relative; z-index: 1; }
/* Hero buttons sit on one line on desktop */
@media (min-width: 1025px) {
	.cgmc-hero .cgpd-actions { flex-wrap: nowrap !important; }
	.cgmc-hero .cgpd-btn .elementor-button { padding: 16px 20px !important; letter-spacing: .06em !important; white-space: nowrap; }
}
/* Navy offset panel only behind the photo, not behind the badges below it */
.cgpd-photo.cgmc-inspect-photo::before { bottom: auto !important; height: 420px !important; }
@media (max-width: 1024px) { .cgpd-photo.cgmc-inspect-photo::before { height: 340px !important; } }
@media (max-width: 767px) { .cgpd-photo.cgmc-inspect-photo::before { height: 240px !important; } }

/* Open gallery panel = light card (desktop expanding gallery): bright photo
   fading into a white base with dark text; collapsed panels stay navy. */
@media (min-width: 1025px) {
	.cgmc-gallery.is-ready .cgmc-panel { transition: flex-grow .8s var(--pd-ease), background-color .6s ease, box-shadow .6s ease, opacity .8s ease, transform .9s var(--pd-ease) !important; }
	.cgmc-gallery.is-ready .cgmc-panel::after { transition: opacity .6s ease; }
	.cgmc-gallery.is-ready .cgmc-panel__img::after {
		content: "";
		position: absolute;
		inset: 0;
		background: linear-gradient(0deg, #fff 20%, rgba(255, 255, 255, .8) 30%, rgba(255, 255, 255, 0) 46%);
		opacity: 0;
		transition: opacity .6s ease;
		pointer-events: none;
	}
	.cgmc-gallery.is-ready .cgmc-panel.is-open { background: #fff !important; box-shadow: 0 40px 70px -44px rgba(12, 24, 37, .45), inset 0 0 0 1px var(--pd-line); }
	.cgmc-gallery.is-ready .cgmc-panel.is-open::after { opacity: 0; }
	.cgmc-gallery.is-ready .cgmc-panel.is-open .cgmc-panel__img::after { opacity: 1; }
	.cgmc-gallery.is-ready .cgmc-panel.is-open .cgmc-panel__img img { filter: brightness(.82) contrast(1.05); }
	.cgmc-gallery.is-ready .cgmc-panel.is-open::before { transform: scaleX(0); }
	.cgmc-gallery.is-ready .cgmc-panel.is-open .cgmc-panel__title .elementor-heading-title { color: var(--pd-ink) !important; }
	.cgmc-gallery.is-ready .cgmc-panel.is-open .cgmc-panel__text p { color: var(--pd-body); }
	.cgmc-gallery.is-ready .cgmc-panel .cgmc-panel__title .elementor-heading-title,
	.cgmc-gallery.is-ready .cgmc-panel .cgmc-panel__text p { transition: color .5s ease; }
	.cgmc-gallery.is-ready .cgmc-panel.is-open .cgmc-panel__icon .elementor-icon { box-shadow: 0 12px 24px -12px rgba(27, 63, 160, .8); }
}
