/* ==========================================================================
   Site footer (Elementor template 130) — redesign layer, loaded site-wide
   after style.css by cg_footer_assets() in functions.php.

   Structure (Elementor):
     .cgft (cgftr001)
       .cgft-band (cgftr100)        copy + buttons | animated SVG (.cgft-art)
       cgftr002 > cgftr003          brand column (cgftr004) + 3 menu columns
       cgftr020                     copyright + legal menu
   The animated drawing is an Image widget (uploads/2026/09/footer-gear-train.svg);
   its animation lives inside the SVG file, so swapping the image in Elementor
   swaps the artwork. Mobile: menu columns collapse into an accordion
   (cg_footer_accordion_script in functions.php).
   ========================================================================== */

.elementor-location-footer {
	--ft-navy: #07111F;
	--ft-accent: #1B3FA0;
	--ft-accent-2: #3563E0;
	--ft-ice: #9DB8FF;
	--ft-text: #9FB0C8;
	--ft-dim: #6E86B8;
	--ft-line: rgba(157, 184, 255, .14);
	--ft-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
	--ft-head: "Space Grotesk", Inter, sans-serif;
	--ft-ease: cubic-bezier(.2, .7, .2, 1);
}

/* Shell: navy + drafting grid + glow, accent hairline on top, watermark */
.elementor-location-footer .elementor-element.cgft {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background:
		radial-gradient(700px 420px at 12% 0%, rgba(53, 99, 224, .22), transparent 70%),
		radial-gradient(600px 400px at 100% 100%, rgba(53, 99, 224, .14), transparent 70%),
		linear-gradient(rgba(157, 184, 255, .045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(157, 184, 255, .045) 1px, transparent 1px),
		var(--ft-navy) !important;
	background-size: auto, auto, 56px 56px, 56px 56px, auto !important;
	--padding-top: 72px !important;
	padding-top: 72px !important;
}
.elementor-location-footer .elementor-element.cgft::before {
	content: "" !important;
	position: absolute !important;
	inset: 0 0 auto 0 !important;
	height: 2px !important;
	width: auto !important;
	opacity: 1 !important;
	background: linear-gradient(90deg, transparent, var(--ft-accent-2) 20%, var(--ft-ice) 50%, var(--ft-accent-2) 80%, transparent) !important;
	border: 0 !important;
}
.elementor-location-footer .cgft > .e-con,
.elementor-location-footer .cgft > .e-con-inner > .e-con { width: min(1248px, 100% - 40px) !important; max-width: none; margin-left: auto !important; margin-right: auto !important; }

/* ── Top band ─────────────────────────────────────────────────────────── */
.elementor-location-footer .elementor-element.cgft-band {
	position: relative;
	--padding-top: 44px !important;
	--padding-right: 44px !important;
	--padding-bottom: 44px !important;
	--padding-left: 52px !important;
	padding: 44px 44px 44px 52px !important;
	margin-bottom: 64px !important;
	border: 1px solid var(--ft-line);
	border-radius: 22px;
	background: linear-gradient(110deg, rgba(27, 63, 160, .28), rgba(12, 26, 46, .55) 55%, rgba(12, 26, 46, .3)) !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05);
	overflow: hidden;
}
.elementor-location-footer .cgft-band__copy { flex: 1 1 0 !important; min-width: 0; gap: 0 !important; }
.elementor-location-footer .cgft-band__art { flex: 0 0 min(44%, 480px) !important; width: min(44%, 480px) !important; }
.cgft-eyebrow .elementor-heading-title {
	display: inline-flex !important;
	align-items: center;
	gap: 12px;
	font: 500 11.5px/1.3 var(--ft-mono) !important;
	letter-spacing: .22em !important;
	text-transform: uppercase !important;
	color: var(--ft-ice) !important;
}
.cgft-eyebrow .elementor-heading-title::before { content: ""; width: 28px; height: 1px; background: currentColor; }
.cgft-band__title { margin-top: 16px !important; }
.cgft-band__title .elementor-heading-title {
	font: 600 clamp(24px, 2.4vw, 34px)/1.25 var(--ft-head) !important;
	letter-spacing: -.02em !important;
	color: #fff !important;
	text-wrap: balance;
	max-width: 620px;
}
.cgft-hl { background: linear-gradient(92deg, #9DB8FF, #DCE7FF 55%, #9DB8FF); -webkit-background-clip: text; background-clip: text; color: transparent; }
.cgft-band__actions { margin-top: 28px !important; }
.cgft-btn .elementor-button {
	display: inline-flex;
	align-items: center;
	padding: 15px 24px !important;
	border-radius: 8px !important;
	font: 600 13px/1 Inter, sans-serif !important;
	letter-spacing: .08em !important;
	text-transform: uppercase;
	transition: background-color .3s ease, border-color .3s ease, transform .3s var(--ft-ease) !important;
}
.cgft-btn--solid .elementor-button { background: var(--ft-accent) !important; color: #fff !important; box-shadow: 0 14px 28px -14px rgba(53, 99, 224, .9); }
.cgft-btn--solid .elementor-button:hover { background: var(--ft-accent-2) !important; transform: translateY(-2px); }
.cgft-btn--solid .elementor-button-icon svg { width: 12px; fill: currentColor; transition: transform .3s var(--ft-ease); }
.cgft-btn--solid .elementor-button:hover .elementor-button-icon svg { transform: translateX(3px); }
.cgft-btn--ghost .elementor-button { background: transparent !important; color: #fff !important; border: 1px solid rgba(255, 255, 255, .3) !important; }
.cgft-btn--ghost .elementor-button:hover { border-color: #fff !important; background: rgba(255, 255, 255, .06) !important; }
.cgft-art { margin: -10px -10px -10px 0 !important; }
.cgft-art img { display: block; width: 100% !important; height: auto !important; max-height: 300px; object-fit: contain; }

/* ── Brand column ─────────────────────────────────────────────────────── */
/* Logo + name side by side, everything else full width below. */
.elementor-location-footer .elementor-element.elementor-element-cgftr004 {
	display: grid !important;
	grid-template-columns: 56px minmax(0, 1fr);
	column-gap: 14px;
	row-gap: 18px;
	align-content: start;
	align-items: center;
}
.elementor-location-footer .elementor-element-cgftr004 > .elementor-widget:not(.elementor-element-f9c82ad):not(.elementor-element-a434f4d) { grid-column: 1 / -1; margin: 0 !important; }
.elementor-location-footer .elementor-element-f9c82ad { grid-column: 1; margin: 0 !important; width: 56px !important; }
.elementor-location-footer .elementor-element-f9c82ad img { width: 56px !important; height: 56px !important; max-width: none; object-fit: contain; }
.elementor-location-footer .elementor-element-a434f4d { grid-column: 2; margin: 0 !important; position: static !important; }
.elementor-location-footer .elementor-element-a434f4d .elementor-heading-title {
	font: 600 16px/1.3 var(--ft-head) !important;
	letter-spacing: .04em !important;
	-webkit-text-stroke: 0 !important;
	color: #fff !important;
}
/* Tagline under the logo. */
.elementor-location-footer .cgftr-tagline,
.elementor-location-footer .cgftr-tagline p {
	margin: 0 !important;
	max-width: 340px;
	font-size: 14.5px !important;
	line-height: 1.65 !important;
	color: var(--ft-text) !important;
}

/* Contact details: Icon List with a small icon tile per row. */
.elementor-location-footer .cgftr-contact { padding-top: 18px !important; border-top: 1px solid var(--ft-line); }
.elementor-location-footer .cgftr-contact .elementor-icon-list-items { display: grid; gap: 11px; }
.elementor-location-footer .cgftr-contact .elementor-icon-list-item { display: flex !important; margin: 0 !important; padding: 0 !important; align-items: flex-start !important; }
.elementor-location-footer .cgftr-contact .elementor-icon-list-item > a { display: flex !important; align-items: flex-start; }
/* Text always starts right after the icon tile (no hanging wrap, same indent on every row) */
.elementor-location-footer .cgftr-contact .elementor-icon-list-text { padding-left: 0 !important; padding-inline-start: 0 !important; }
.elementor-location-footer .cgftr-contact .elementor-icon-list-icon {
	flex: none;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	margin-right: 12px;
	border-radius: 8px;
	border: 1px solid var(--ft-line);
	background: rgba(157, 184, 255, .06);
	transition: background-color .3s ease, border-color .3s ease;
}
.elementor-location-footer .cgftr-contact .elementor-icon-list-icon i { font-size: 12px !important; color: var(--ft-ice) !important; }
.elementor-location-footer .cgftr-contact .elementor-icon-list-icon svg { width: 12px !important; height: 12px; fill: var(--ft-ice) !important; }
.elementor-location-footer .cgftr-contact .elementor-icon-list-text {
	padding-top: 5px;
	font-size: 14.5px !important;
	line-height: 1.45 !important;
	letter-spacing: 0 !important;
	color: var(--ft-text) !important;
	transition: color .3s ease;
}
.elementor-location-footer .cgftr-contact a:hover .elementor-icon-list-text { color: #fff !important; }
.elementor-location-footer .cgftr-contact a:hover .elementor-icon-list-icon { background: var(--ft-accent); border-color: var(--ft-accent); }
.elementor-location-footer .cgftr-contact a:hover .elementor-icon-list-icon i { color: #fff !important; }

.elementor-location-footer .cgftr-cta-btn { border-radius: 8px !important; transition: background-color .3s ease, border-color .3s ease !important; }
.elementor-location-footer .cgftr-cta-btn--solid { background: var(--ft-accent) !important; }
.elementor-location-footer .cgftr-cta-btn--solid:hover { background: var(--ft-accent-2) !important; }

/* Bottom bar, right side: legal menu | social icons (container .cgftr-legal). */
.elementor-location-footer .elementor-element.cgftr-legal.e-con { flex: 0 0 auto; }
.elementor-location-footer .cgftr-legal > .cgftr-social { position: relative; padding-left: 20px !important; }
.elementor-location-footer .cgftr-legal > .cgftr-social::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 1px;
	height: 20px;
	transform: translateY(-50%);
	background: var(--ft-line);
}
@media (max-width: 767px) {
	.elementor-location-footer .cgftr-legal > .cgftr-social { padding-left: 0 !important; }
	.elementor-location-footer .cgftr-legal > .cgftr-social::before { content: none; }
}

/* AGMA membership badge card. */
.elementor-location-footer .elementor-widget.cgftr-agma {
	position: relative;
	padding: 16px 18px 16px 62px !important;
	border: 1px solid var(--ft-line) !important;
	border-left: 1px solid var(--ft-line) !important;
	border-radius: 12px !important;
	background: linear-gradient(135deg, rgba(27, 63, 160, .22), rgba(157, 184, 255, .04)) !important;
}
.elementor-location-footer .elementor-widget.cgftr-agma::before {
	content: "AGMA";
	position: absolute;
	top: 16px;
	left: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	border: 1px solid rgba(157, 184, 255, .45);
	font: 600 8.5px/1 var(--ft-mono);
	letter-spacing: .06em;
	color: var(--ft-ice);
}
.elementor-location-footer .cgftr-agma p { margin: 0 !important; }
.elementor-location-footer .cgftr-agma,
.elementor-location-footer .cgftr-agma p { font-size: 13.5px !important; line-height: 1.6 !important; letter-spacing: 0 !important; color: var(--ft-text) !important; }
.elementor-location-footer .cgftr-agma a { color: #fff !important; text-decoration: none; }
.elementor-location-footer .cgftr-agma a:hover { color: var(--ft-ice) !important; }
.elementor-location-footer .cgftr-agma span { color: var(--ft-dim) !important; }

/* ── Menu columns ─────────────────────────────────────────────────────── */
.elementor-location-footer :is(.elementor-element-8206e13, .elementor-element-4b58758, .elementor-element-b15cb92) .elementor-heading-title {
	display: flex !important;
	align-items: center;
	gap: 10px;
	font: 500 11.5px/1.3 var(--ft-mono) !important;
	letter-spacing: .22em !important;
	text-transform: uppercase !important;
	color: var(--ft-ice) !important;
}
@media (min-width: 768px) {
	.elementor-location-footer :is(.elementor-element-8206e13, .elementor-element-4b58758, .elementor-element-b15cb92) .elementor-heading-title::before {
		content: "";
		width: 18px;
		height: 1px;
		background: currentColor;
	}
}
.elementor-location-footer :is(.elementor-element-366bc05, .elementor-element-b4ac75d, .elementor-element-9b331b9) .elementor-item {
	position: relative;
	display: inline-flex !important;
	align-items: center;
	padding-left: 0 !important;
	color: var(--ft-text) !important;
	transition: color .25s ease, transform .3s var(--ft-ease) !important;
}
.elementor-location-footer :is(.elementor-element-366bc05, .elementor-element-b4ac75d, .elementor-element-9b331b9) .elementor-item::before {
	content: "";
	width: 0;
	height: 1px;
	margin-right: 0;
	background: var(--ft-ice);
	transition: width .3s var(--ft-ease), margin .3s var(--ft-ease);
}
.elementor-location-footer :is(.elementor-element-366bc05, .elementor-element-b4ac75d, .elementor-element-9b331b9) .elementor-item:hover { color: #fff !important; }
.elementor-location-footer :is(.elementor-element-366bc05, .elementor-element-b4ac75d, .elementor-element-9b331b9) .elementor-item:hover::before { width: 12px; margin-right: 8px; }

/* ── Bottom bar ───────────────────────────────────────────────────────── */
.elementor-location-footer .elementor-element.elementor-element-cgftr020 {
	margin-top: 56px !important;
	border-top: 1px solid var(--ft-line) !important;
	padding-top: 24px !important;
	padding-bottom: 28px !important;
}
.elementor-location-footer .elementor-element.elementor-element-cgftr021 p { color: var(--ft-dim) !important; }
.elementor-location-footer .elementor-element-cgftr022 .elementor-item { color: var(--ft-text) !important; }
.elementor-location-footer .elementor-element-cgftr022 .elementor-item:hover { color: #fff !important; }

/* Main row starts right under the band (no extra inherited top padding). */
.elementor-location-footer .elementor-element.elementor-element-cgftr002 { --padding-top: 0px !important; padding-top: 0 !important; }

/* ── Tablet / mobile ──────────────────────────────────────────────────── */
@media (max-width: 1024px) {
	.elementor-location-footer .elementor-element.cgft { --padding-top: 56px !important; padding-top: 56px !important; }
	.elementor-location-footer .elementor-element.cgft-band { padding: 36px 32px !important; margin-bottom: 48px !important; }
	.elementor-location-footer .cgft-band__art { flex-basis: auto !important; width: 100% !important; max-width: 460px; align-self: center; }
}
@media (max-width: 767px) {
	.elementor-location-footer .elementor-element.cgft { --padding-top: 40px !important; padding-top: 40px !important; }
	.elementor-location-footer .cgft > .e-con,
	.elementor-location-footer .cgft > .e-con-inner > .e-con { width: calc(100% - 32px) !important; }
	.elementor-location-footer .elementor-element.cgft-band { padding: 28px 22px !important; margin-bottom: 36px !important; border-radius: 18px; }
	.cgft-band__actions > .elementor-widget { flex: 1 1 100%; }
	.cgft-btn .elementor-button { width: 100%; justify-content: center; }
	.cgft-art { margin: 0 !important; }
	.cgft-art img { max-height: 200px; }
	/* Accordion rows */
	.elementor-location-footer .cgftr-acc-toggle {
		padding: 16px 0 !important;
		border-bottom: 1px solid var(--ft-line);
		cursor: pointer;
	}
	.elementor-location-footer .cgftr-acc-toggle .elementor-heading-title { justify-content: space-between; width: 100%; }
	.elementor-location-footer .cgftr-acc-icon {
		display: grid !important;
		place-items: center;
		width: 28px;
		height: 28px;
		border-radius: 50%;
		border: 1px solid var(--ft-line);
		color: var(--ft-ice);
		transition: transform .35s var(--ft-ease), background-color .3s ease !important;
	}
	.elementor-location-footer .cgftr-acc-toggle.is-open .cgftr-acc-icon { transform: rotate(180deg); background: rgba(157, 184, 255, .1); }
	.elementor-location-footer .cgftr-acc-panel { transition: height .35s var(--ft-ease) !important; }
	.elementor-location-footer .cgftr-acc-panel .elementor-nav-menu { padding: 8px 0 14px !important; }
	/* One 16px gutter for band, brand block and accordion alike. */
	.elementor-location-footer :is(.elementor-element-cgftr003, .elementor-element-cgftr004, .elementor-element-153b90d, .elementor-element-a65cbd8, .elementor-element-90c88d2, .elementor-element-321b6c3, .elementor-element-36b0414, .elementor-element-d62d6f8).e-con {
		--padding-left: 0px !important;
		--padding-right: 0px !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
	.elementor-location-footer .elementor-element-cgftr003 { gap: 0 !important; }
	.elementor-location-footer .elementor-element-cgftr004 { margin-bottom: 28px !important; }
	.elementor-location-footer .elementor-element.elementor-element-cgftr002 { --padding-left: 0px !important; --padding-right: 0px !important; padding-left: 0 !important; padding-right: 0 !important; }
	.elementor-location-footer :is(.elementor-element-366bc05, .elementor-element-b4ac75d, .elementor-element-9b331b9) :is(li, .menu-item) { margin: 0 !important; padding: 0 !important; }
	.elementor-location-footer :is(.elementor-element-366bc05, .elementor-element-b4ac75d, .elementor-element-9b331b9) .elementor-item { padding: 8px 0 !important; min-height: 0 !important; font-size: 14.5px !important; line-height: 1.45 !important; }
	.elementor-location-footer .elementor-element.elementor-element-cgftr020 { margin-top: 32px !important; }

	/* ── Mobile polish ─────────────────────────────────────────────────── */
	/* Plain navy + soft glows: the drafting grid's lines read as clutter on a phone */
	.elementor-location-footer .elementor-element.cgft {
		background:
			radial-gradient(420px 320px at 0% 0%, rgba(53, 99, 224, .24), transparent 70%),
			radial-gradient(380px 300px at 100% 100%, rgba(53, 99, 224, .16), transparent 70%),
			var(--ft-navy) !important;
		background-size: auto !important;
	}

	/* Brand block → menus: one even 36px step */
	.elementor-location-footer .elementor-element.elementor-element-cgftr004 { --padding-bottom: 0px !important; padding-bottom: 0 !important; margin-bottom: 36px !important; }

	/* Call / Email: two equal buttons */
	.elementor-location-footer .cgftr-cta-row { display: grid !important; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0 !important; }
	.elementor-location-footer .cgftr-cta-row .cgftr-cta-btn {
		display: flex !important;
		align-items: center;
		justify-content: center;
		min-height: 48px;
		padding: 0 10px !important;
		font-size: 14px !important;
		white-space: nowrap;
		text-align: center;
	}

	/* Accordion: compact rows split by a single hairline */
	.elementor-location-footer :is(.elementor-element-321b6c3, .elementor-element-36b0414, .elementor-element-d62d6f8).e-con { --gap: 0px !important; --row-gap: 0px !important; gap: 0 !important; }
	.elementor-location-footer .elementor-element.cgftr-acc-toggle { padding: 0 !important; border-top: 0 !important; border-bottom: 1px solid var(--ft-line) !important; }
	.elementor-location-footer .elementor-element.elementor-element-8206e13 { border-top: 1px solid var(--ft-line) !important; }
	.elementor-location-footer .cgftr-acc-toggle .elementor-heading-title {
		min-height: 58px;
		padding: 0 !important;
		border: 0 !important;
		font-size: 12px !important;
		color: #DCE7FF !important;
		transition: color .25s ease;
	}
	.elementor-location-footer .cgftr-acc-toggle:focus-visible { outline: 2px solid var(--ft-ice); outline-offset: -2px; border-radius: 6px; }
	.elementor-location-footer .cgftr-acc-toggle.is-open .elementor-heading-title { color: #fff !important; }
	.elementor-location-footer .cgftr-acc-icon { width: 30px; height: 30px; background: rgba(157, 184, 255, .05); }
	.elementor-location-footer .elementor-element.cgftr-acc-panel { border: 0 !important; margin: 0 !important; }
	.elementor-location-footer .cgftr-acc-toggle.is-open + .cgftr-acc-panel { border-bottom: 1px solid var(--ft-line) !important; }
	.elementor-location-footer .cgftr-acc-panel .elementor-nav-menu { padding: 6px 0 14px !important; }

	/* Bottom bar: copyright, then Privacy Policy ←→ social icons on one line */
	.elementor-location-footer .elementor-element.elementor-element-cgftr003 { --padding-bottom: 0px !important; padding-bottom: 0 !important; }
	.elementor-location-footer .elementor-element.elementor-element-cgftr020 { border-top: 0 !important; margin-top: 12px !important; padding-top: 0 !important; padding-bottom: 32px !important; }
	.elementor-location-footer .elementor-element.elementor-element-cgftr021 { margin-bottom: 14px !important; }
	.elementor-location-footer .elementor-element-cgftr021 p { margin: 0 !important; font-size: 13px !important; line-height: 1.6 !important; }
	.elementor-location-footer .elementor-element.cgftr-legal.e-con {
		width: 100% !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		justify-content: space-between !important;
		padding-top: 16px !important;
		border-top: 1px solid var(--ft-line);
	}
	.elementor-location-footer .elementor-element-cgftr022 .elementor-nav-menu { margin: 0 !important; }
	.elementor-location-footer .elementor-element-cgftr022 .elementor-item { display: flex !important; align-items: center; min-height: 32px; padding: 0 !important; font-size: 14px !important; line-height: 1 !important; }
	.elementor-location-footer .elementor-element-cgftr022 :is(li, .menu-item) { margin: 0 !important; }
	.elementor-location-footer .cgftr-legal > .cgftr-social { margin: 0 !important; width: auto !important; }
}
@media (prefers-reduced-motion: reduce) {
	.cgft-btn .elementor-button,
	.elementor-location-footer .cgftr-acc-icon,
	.elementor-location-footer .cgftr-acc-panel { transition: none !important; }
}
