/**
 * Circuit Craftworks custom global footer.
 * Desktop, tablet, mobile, reduced-motion, and print styles.
 */

.cc-site-footer {
	--cc-footer-bg: #101d32;
	--cc-footer-bg-2: #172f52;
	--cc-footer-panel: rgba(39, 71, 110, 0.9);
	--cc-footer-blue: #4a86ff;
	--cc-footer-blue-2: #80b0ff;
	--cc-footer-purple: #7b68ee;
	--cc-footer-cta-1: #3d6ecf;
	--cc-footer-cta-2: #7059dd;
	--cc-footer-green: #39c9a5;
	--cc-footer-white: #fbfdff;
	--cc-footer-muted: #d1dbea;
	--cc-footer-muted-2: #91a2c1;
	--cc-footer-muted-3: #a3b1cd;
	--cc-footer-line: rgba(190, 211, 248, 0.26);
	--cc-footer-radius: 24px;
	--cc-footer-radius-small: 14px;
	--cc-footer-container: 1240px;
	--cc-footer-transition: 0.2s ease;

	position: relative;
	isolation: isolate;
	clear: both;
	width: 100%;
	overflow: hidden;
	padding: clamp(70px, 7vw, 104px) 24px 0;
	color: var(--cc-footer-white);
	/* Opaque dark base: the footer must stay dark even if the page body is cream, white or transparent. */
	background-color: #172b49;
	background-image:
		radial-gradient(circle at 8% 7%, rgba(74, 134, 255, 0.23), transparent 30%),
		radial-gradient(circle at 91% 12%, rgba(123, 104, 238, 0.2), transparent 29%),
		linear-gradient(180deg, #101d32 0%, #172f52 42%, #13233e 100%);
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	line-height: 1.5;
}

.cc-site-footer,
.cc-site-footer *,
.cc-site-footer *::before,
.cc-site-footer *::after {
	box-sizing: border-box;
}

.cc-site-footer h1,
.cc-site-footer h2,
.cc-site-footer h3,
.cc-site-footer h4,
.cc-site-footer p,
.cc-site-footer ul,
.cc-site-footer ol {
	max-width: none;
	margin-top: 0;
}

.cc-site-footer ul,
.cc-site-footer ol {
	margin: 0;
	padding: 0;
	list-style: none;
}

.cc-site-footer li {
	margin: 0;
	padding: 0;
}

.cc-site-footer a {
	color: inherit;
	text-decoration: none;
}

.cc-site-footer a:hover {
	color: inherit;
}

.cc-site-footer svg {
	display: block;
	max-width: 100%;
}

.cc-site-footer__background {
	position: absolute;
	inset: 0;
	z-index: -1;
	overflow: hidden;
	pointer-events: none;
}

.cc-site-footer__grid {
	position: absolute;
	inset: 0;
	opacity: 0.62;
	background-image:
		linear-gradient(rgba(137, 159, 219, 0.05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(137, 159, 219, 0.05) 1px, transparent 1px);
	background-size: 58px 58px;
	-webkit-mask-image: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, 0.86) 64%, transparent 100%);
	mask-image: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, 0.86) 64%, transparent 100%);
}

.cc-site-footer__glow {
	position: absolute;
	border-radius: 50%;
	filter: blur(24px);
}

.cc-site-footer__glow--blue {
	top: -270px;
	left: -230px;
	width: 620px;
	height: 620px;
	background: radial-gradient(circle, rgba(52, 120, 255, 0.24), transparent 68%);
}

.cc-site-footer__glow--purple {
	top: -260px;
	right: -250px;
	width: 650px;
	height: 650px;
	background: radial-gradient(circle, rgba(130, 86, 246, 0.22), transparent 68%);
}

.cc-site-footer__top-line {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(74, 134, 255, 0.52), rgba(170, 152, 255, 0.48), rgba(57, 201, 165, 0.3), transparent);
	box-shadow: 0 0 18px rgba(75, 132, 255, 0.38);
}

.cc-site-footer__container {
	position: relative;
	width: min(var(--cc-footer-container), 100%);
	margin-inline: auto;
}

.cc-site-footer__intro {
	display: grid;
	grid-template-columns: minmax(0, 1.12fr) minmax(380px, 0.88fr);
	align-items: stretch;
	gap: clamp(40px, 6vw, 82px);
}

.cc-site-footer__brand-column {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	min-width: 0;
}

.cc-site-footer__brand {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	color: var(--cc-footer-white);
	border-radius: var(--cc-footer-radius-small);
	outline: none;
	transition: transform var(--cc-footer-transition), filter var(--cc-footer-transition);
}

.cc-site-footer__brand:hover {
	color: var(--cc-footer-white);
	transform: translateY(-2px);
	filter: brightness(1.06);
}

.cc-site-footer__brand:focus-visible {
	outline: 3px solid var(--cc-footer-blue-2);
	outline-offset: 5px;
}

.cc-site-footer__logo {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
}

.cc-site-footer__logo-image {
	display: block;
	width: auto;
	max-width: 68px;
	height: 60px;
	object-fit: contain;
}

.cc-site-footer__fallback-mark {
	position: relative;
	isolation: isolate;
	display: grid;
	place-items: center;
	flex: 0 0 56px;
	width: 56px;
	height: 56px;
	overflow: hidden;
	color: #fff;
	background: linear-gradient(145deg, var(--cc-footer-blue), var(--cc-footer-purple));
	border: 1px solid rgba(202, 219, 251, 0.28);
	border-radius: 16px;
	box-shadow: 0 16px 35px rgba(55, 103, 255, 0.25);
}

.cc-site-footer__fallback-mark::before {
	content: "";
	position: absolute;
	inset: 1px;
	z-index: -1;
	border-radius: 14px;
	background: radial-gradient(circle at 23% 18%, rgba(255, 255, 255, 0.22), transparent 52%);
}

.cc-site-footer__fallback-mark svg {
	width: 30px;
	height: 30px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.7;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.cc-site-footer__brand-copy {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.cc-site-footer__brand-name {
	color: var(--cc-footer-white);
	font-size: clamp(21px, 2vw, 27px);
	font-weight: 850;
	line-height: 1.08;
	letter-spacing: -0.04em;
}

.cc-site-footer__brand-label {
	color: #9cb4dc;
	font-size: 10px;
	font-weight: 850;
	line-height: 1.3;
	letter-spacing: 0.105em;
	text-transform: uppercase;
}

.cc-site-footer__description {
	max-width: 650px;
	margin: 25px 0 0;
	color: var(--cc-footer-muted);
	font-size: 15px;
	line-height: 1.78;
}

.cc-site-footer__service-status {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: 12px;
	max-width: 610px;
	margin-top: 25px;
	padding: 14px 16px;
	background: linear-gradient(145deg, rgba(53, 211, 160, 0.055), rgba(52, 120, 255, 0.035));
	border: 1px solid rgba(53, 211, 160, 0.14);
	border-radius: 14px;
}

.cc-site-footer__status-dot {
	width: 10px;
	height: 10px;
	background: var(--cc-footer-green);
	border-radius: 50%;
	box-shadow: 0 0 16px rgba(57, 201, 165, 0.72);
}

.cc-site-footer__service-status strong,
.cc-site-footer__service-status small {
	display: block;
}

.cc-site-footer__service-status strong {
	color: #e7fbf5;
	font-size: 12px;
	font-weight: 800;
}

.cc-site-footer__service-status small {
	margin-top: 3px;
	color: #a2b7b6;
	font-size: 10px;
	line-height: 1.5;
}

.cc-site-footer__intake-card {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-width: 0;
	padding: clamp(26px, 3vw, 36px);
	overflow: hidden;
	background:
		radial-gradient(circle at 88% 10%, rgba(74, 134, 255, 0.18), transparent 36%),
		linear-gradient(145deg, rgba(48, 87, 133, 0.88), rgba(25, 49, 83, 0.94));
	border: 1px solid var(--cc-footer-line);
	border-radius: 24px;
	box-shadow: 0 34px 85px rgba(1, 6, 20, 0.34);
}

.cc-site-footer__intake-card::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	opacity: 0.58;
	background-image:
		linear-gradient(rgba(137, 159, 219, 0.05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(137, 159, 219, 0.05) 1px, transparent 1px);
	background-size: 42px 42px;
	pointer-events: none;
}

.cc-site-footer__intake-card::after {
	content: "";
	position: absolute;
	right: -105px;
	bottom: -120px;
	z-index: -1;
	width: 250px;
	height: 250px;
	background: radial-gradient(circle, rgba(123, 104, 238, 0.18), transparent 68%);
	border-radius: 50%;
}

.cc-site-footer__intake-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 16px;
	padding: 7px 10px;
	color: #dbe6ff;
	background: rgba(31, 59, 99, 0.72);
	border: 1px solid rgba(170, 194, 246, 0.24);
	border-radius: 999px;
	font-size: 9px;
	font-weight: 850;
	line-height: 1;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.cc-site-footer__intake-eyebrow-dot {
	width: 7px;
	height: 7px;
	background: var(--cc-footer-green);
	border-radius: 50%;
	box-shadow: 0 0 12px rgba(57, 201, 165, 0.72);
}

.cc-site-footer__intake-title {
	margin: 0;
	color: var(--cc-footer-white) !important;
	font-family: inherit !important;
	font-size: clamp(27px, 3vw, 39px);
	font-weight: 850;
	line-height: 1.08;
	letter-spacing: -0.045em;
	text-transform: none !important;
}

.cc-site-footer__intake-copy {
	margin: 15px 0 0;
	color: var(--cc-footer-muted);
	font-size: 13px;
	line-height: 1.72;
}

.cc-site-footer__intake-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 56px;
	margin-top: 23px;
	padding: 0 21px;
	color: #fff;
	background: linear-gradient(135deg, var(--cc-footer-cta-1), var(--cc-footer-cta-2));
	border: 1px solid transparent;
	border-radius: 14px;
	box-shadow: 0 16px 35px rgba(55, 103, 255, 0.32);
	font-size: 12px;
	font-weight: 850;
	line-height: 1;
	outline: none;
	transition: transform var(--cc-footer-transition), filter var(--cc-footer-transition), box-shadow var(--cc-footer-transition);
}

.cc-site-footer__intake-button svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: transform var(--cc-footer-transition);
}

.cc-site-footer__intake-button:hover {
	color: #fff;
	transform: translateY(-3px);
	filter: brightness(1.05);
	box-shadow: 0 21px 44px rgba(55, 103, 255, 0.4);
}

.cc-site-footer__intake-button:hover svg {
	transform: translateX(4px);
}

.cc-site-footer__intake-button:focus-visible {
	outline: 3px solid var(--cc-footer-blue-2);
	outline-offset: 4px;
}

.cc-site-footer__intake-note {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: start;
	gap: 9px;
	margin-top: 18px;
	padding: 12px;
	color: #a8bab7;
	background: rgba(53, 211, 160, 0.045);
	border: 1px solid rgba(53, 211, 160, 0.11);
	border-radius: 12px;
	font-size: 9px;
	line-height: 1.55;
}

.cc-site-footer__intake-note svg {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: var(--cc-footer-green);
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.cc-site-footer__divider {
	width: 100%;
	height: 1px;
	margin: clamp(50px, 6vw, 76px) 0;
	background: linear-gradient(90deg, transparent, rgba(190, 211, 248, 0.16) 12%, rgba(190, 211, 248, 0.23) 50%, rgba(190, 211, 248, 0.16) 88%, transparent);
}

.cc-site-footer__navigation-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.9fr) minmax(0, 0.95fr) minmax(270px, 1.1fr);
	align-items: start;
	gap: clamp(28px, 4vw, 56px);
}

.cc-site-footer__heading {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 18px;
	color: #a9bde4 !important;
	font-family: inherit !important;
	font-size: 10px;
	font-weight: 850;
	line-height: 1.2;
	letter-spacing: 0.12em;
	text-transform: uppercase !important;
}

.cc-site-footer__heading::before {
	content: "";
	flex: 0 0 25px;
	width: 25px;
	height: 1px;
	background: linear-gradient(90deg, var(--cc-footer-blue), var(--cc-footer-purple));
	box-shadow: 0 0 10px rgba(75, 132, 255, 0.46);
}

.cc-site-footer__menu {
	display: grid;
	gap: 3px;
}

.cc-site-footer__menu .menu-item {
	position: relative;
}

.cc-site-footer__menu a {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	min-height: 38px;
	padding: 6px 8px 6px 0;
	color: #c3cee3;
	font-size: 12px;
	font-weight: 650;
	line-height: 1.4;
	border-radius: 10px;
	outline: none;
	transition: color var(--cc-footer-transition), padding-left var(--cc-footer-transition), background-color var(--cc-footer-transition);
}

.cc-site-footer__menu a::before {
	content: "";
	flex: 0 0 6px;
	width: 6px;
	height: 6px;
	background: rgba(128, 176, 255, 0.42);
	border-radius: 50%;
	box-shadow: 0 0 0 3px rgba(74, 134, 255, 0.055);
	transition: background-color var(--cc-footer-transition), box-shadow var(--cc-footer-transition);
}

.cc-site-footer__menu a:hover,
.cc-site-footer__menu a:focus-visible,
.cc-site-footer__menu .current-menu-item > a {
	color: #fff;
	padding-left: 7px;
	background: rgba(255, 255, 255, 0.032);
}

.cc-site-footer__menu a:hover::before,
.cc-site-footer__menu a:focus-visible::before,
.cc-site-footer__menu .current-menu-item > a::before {
	background: var(--cc-footer-green);
	box-shadow: 0 0 12px rgba(57, 201, 165, 0.58);
}

.cc-site-footer__menu a:focus-visible {
	outline: 2px solid var(--cc-footer-blue-2);
	outline-offset: 2px;
}

.cc-site-footer__service-column {
	padding: 20px;
	background: linear-gradient(145deg, rgba(39, 71, 110, 0.88), rgba(21, 40, 70, 0.9));
	border: 1px solid var(--cc-footer-line);
	border-radius: 20px;
	box-shadow: 0 24px 60px rgba(1, 6, 20, 0.22);
}

.cc-site-footer__service-details {
	display: grid;
	gap: 10px;
}

.cc-site-footer__service-detail {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: 11px;
	padding: 11px;
	background: rgba(255, 255, 255, 0.025);
	border: 1px solid rgba(145, 171, 239, 0.1);
	border-radius: 13px;
}

.cc-site-footer__service-icon {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	color: #9bbaff;
	background: linear-gradient(145deg, rgba(52, 120, 255, 0.12), rgba(123, 104, 238, 0.07));
	border-radius: 11px;
}

.cc-site-footer__service-icon svg {
	width: 17px;
	height: 17px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.cc-site-footer__service-detail small,
.cc-site-footer__service-detail strong {
	display: block;
}

.cc-site-footer__service-detail small {
	color: var(--cc-footer-muted-3);
	font-size: 8px;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: 0.065em;
	text-transform: uppercase;
}

.cc-site-footer__service-detail strong {
	margin-top: 2px;
	color: #e9effd;
	font-size: 10px;
	font-weight: 750;
	line-height: 1.4;
}

.cc-site-footer__service-area-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 15px;
	padding: 10px 12px;
	color: #dfe9ff;
	background: linear-gradient(145deg, rgba(52, 120, 255, 0.1), rgba(123, 104, 238, 0.06));
	border: 1px solid rgba(145, 171, 239, 0.13);
	border-radius: 12px;
	font-size: 10px;
	font-weight: 850;
	outline: none;
	transition: color var(--cc-footer-transition), background-color var(--cc-footer-transition), border-color var(--cc-footer-transition), transform var(--cc-footer-transition);
}

.cc-site-footer__service-area-link svg {
	width: 14px;
	height: 14px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: transform var(--cc-footer-transition);
}

.cc-site-footer__service-area-link:hover {
	color: #fff;
	background: linear-gradient(145deg, rgba(52, 120, 255, 0.18), rgba(123, 104, 238, 0.11));
	border-color: rgba(145, 171, 239, 0.24);
	transform: translateY(-2px);
}

.cc-site-footer__service-area-link:hover svg {
	transform: translateX(3px);
}

.cc-site-footer__service-area-link:focus-visible {
	outline: 2px solid var(--cc-footer-blue-2);
	outline-offset: 3px;
}

.cc-site-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	min-height: 72px;
	padding-bottom: max(18px, env(safe-area-inset-bottom));
}

.cc-site-footer__copyright {
	margin: 0;
	color: #8092b5;
	font-size: 10px;
	line-height: 1.5;
}

.cc-site-footer__legal-links {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 8px 18px;
}

.cc-site-footer__legal-links a {
	position: relative;
	color: #94a5c5;
	font-size: 10px;
	font-weight: 700;
	outline: none;
	transition: color var(--cc-footer-transition);
}

.cc-site-footer__legal-links a:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 50%;
	right: -10px;
	width: 3px;
	height: 3px;
	background: rgba(190, 211, 248, 0.28);
	border-radius: 50%;
	transform: translateY(-50%);
}

.cc-site-footer__legal-links a:hover {
	color: #fff;
}

.cc-site-footer__legal-links a:focus-visible {
	color: #fff;
	outline: 2px solid var(--cc-footer-blue-2);
	outline-offset: 4px;
	border-radius: 3px;
}

@media (max-width: 1220px) and (min-width: 1101px) {
	.cc-site-footer {
		padding-right: 18px;
		padding-left: 18px;
	}

	.cc-site-footer__intro {
		grid-template-columns: minmax(0, 1fr) minmax(350px, 0.9fr);
		gap: 38px;
	}

	.cc-site-footer__navigation-grid {
		grid-template-columns: minmax(0, 1fr) minmax(0, 0.85fr) minmax(0, 0.9fr) minmax(245px, 1fr);
		gap: 26px;
	}

	.cc-site-footer__service-column {
		padding: 17px;
	}
}

@media (max-width: 1100px) {
	.cc-site-footer {
		padding: 76px 20px 0;
	}

	.cc-site-footer__intro {
		grid-template-columns: minmax(0, 1fr) minmax(340px, 0.9fr);
		gap: 32px;
	}

	.cc-site-footer__description {
		font-size: 14px;
	}

	.cc-site-footer__intake-card {
		padding: 26px;
	}

	.cc-site-footer__navigation-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 42px 36px;
	}

	.cc-site-footer__navigation-column,
	.cc-site-footer__service-column {
		min-width: 0;
	}

	.cc-site-footer__service-column {
		height: 100%;
	}

	.cc-site-footer__divider {
		margin-top: 58px;
		margin-bottom: 58px;
	}
}

@media (max-width: 900px) {
	.cc-site-footer {
		padding-top: 68px;
	}

	.cc-site-footer__intro {
		grid-template-columns: minmax(0, 1fr);
		gap: 34px;
	}

	.cc-site-footer__brand-column,
	.cc-site-footer__intake-card {
		width: 100%;
	}

	.cc-site-footer__description,
	.cc-site-footer__service-status,
	.cc-site-footer__intake-copy {
		max-width: 720px;
	}

	.cc-site-footer__intake-button {
		align-self: flex-start;
	}

	.cc-site-footer__navigation-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 38px 32px;
	}

	.cc-site-footer__bottom {
		align-items: flex-start;
		flex-direction: column;
		min-height: 0;
		padding-top: 4px;
		padding-bottom: 24px;
	}

	.cc-site-footer__legal-links {
		justify-content: flex-start;
	}
}

@media (max-width: 700px) {
	.cc-site-footer {
		padding: 60px 16px 0;
	}

	.cc-site-footer__grid {
		background-size: 48px 48px;
	}

	.cc-site-footer__glow--blue {
		top: -250px;
		left: -300px;
		width: 540px;
		height: 540px;
	}

	.cc-site-footer__glow--purple {
		top: 120px;
		right: -330px;
		width: 560px;
		height: 560px;
	}

	.cc-site-footer__intro {
		gap: 28px;
	}

	.cc-site-footer__brand {
		align-items: flex-start;
	}

	.cc-site-footer__logo-image {
		max-width: 56px;
		height: 51px;
	}

	.cc-site-footer__fallback-mark {
		flex-basis: 50px;
		width: 50px;
		height: 50px;
		border-radius: 15px;
	}

	.cc-site-footer__fallback-mark svg {
		width: 27px;
		height: 27px;
	}

	.cc-site-footer__brand-name {
		font-size: 21px;
	}

	.cc-site-footer__brand-label {
		font-size: 8px;
		letter-spacing: 0.09em;
	}

	.cc-site-footer__description {
		margin-top: 20px;
		font-size: 13px;
		line-height: 1.72;
	}

	.cc-site-footer__service-status {
		align-items: flex-start;
		margin-top: 20px;
		padding: 13px;
	}

	.cc-site-footer__service-status strong {
		font-size: 11px;
	}

	.cc-site-footer__service-status small {
		font-size: 9px;
	}

	.cc-site-footer__intake-card {
		padding: 22px;
		border-radius: 22px;
	}

	.cc-site-footer__intake-title {
		font-size: clamp(27px, 8vw, 36px);
	}

	.cc-site-footer__intake-copy {
		font-size: 12px;
	}

	.cc-site-footer__intake-button,
	.cc-site-footer__intake-note {
		width: 100%;
	}

	.cc-site-footer__intake-button {
		min-height: 58px;
	}

	.cc-site-footer__divider {
		margin-top: 46px;
		margin-bottom: 46px;
	}

	.cc-site-footer__navigation-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 36px;
	}

	.cc-site-footer__heading {
		margin-bottom: 12px;
	}

	.cc-site-footer__menu {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 5px 12px;
	}

	.cc-site-footer__menu a {
		width: 100%;
		min-height: 42px;
		padding: 7px 8px;
		background: rgba(255, 255, 255, 0.022);
		border: 1px solid rgba(145, 171, 239, 0.07);
		border-radius: 11px;
	}

	.cc-site-footer__menu a:hover,
	.cc-site-footer__menu a:focus-visible,
	.cc-site-footer__menu .current-menu-item > a {
		padding-left: 11px;
	}

	.cc-site-footer__service-column {
		padding: 18px;
	}

	.cc-site-footer__service-area-link {
		justify-content: center;
		width: 100%;
		min-height: 48px;
	}

	.cc-site-footer__bottom {
		gap: 18px;
		padding-bottom: max(24px, env(safe-area-inset-bottom));
	}

	.cc-site-footer__copyright {
		font-size: 9px;
	}

	.cc-site-footer__legal-links {
		align-items: flex-start;
		flex-direction: column;
		gap: 11px;
	}

	.cc-site-footer__legal-links a:not(:last-child)::after {
		display: none;
	}
}

@media (max-width: 460px) {
	.cc-site-footer {
		padding: 54px 12px 0;
	}

	.cc-site-footer__brand {
		gap: 10px;
	}

	.cc-site-footer__logo-image {
		max-width: 49px;
		height: 44px;
	}

	.cc-site-footer__fallback-mark {
		flex-basis: 44px;
		width: 44px;
		height: 44px;
		border-radius: 13px;
	}

	.cc-site-footer__fallback-mark svg {
		width: 24px;
		height: 24px;
	}

	.cc-site-footer__brand-name {
		font-size: 19px;
	}

	.cc-site-footer__brand-label {
		max-width: 230px;
		font-size: 7px;
		line-height: 1.45;
	}

	.cc-site-footer__description {
		font-size: 12px;
	}

	.cc-site-footer__service-status {
		grid-template-columns: auto minmax(0, 1fr);
		gap: 10px;
		padding: 12px;
	}

	.cc-site-footer__status-dot {
		width: 8px;
		height: 8px;
		margin-top: 4px;
	}

	.cc-site-footer__intake-card {
		padding: 18px;
		border-radius: 19px;
	}

	.cc-site-footer__intake-eyebrow {
		max-width: 100%;
		font-size: 8px;
	}

	.cc-site-footer__intake-title {
		font-size: clamp(25px, 9vw, 32px);
	}

	.cc-site-footer__intake-button {
		min-height: 56px;
		padding-inline: 16px;
		font-size: 11px;
	}

	.cc-site-footer__intake-note {
		font-size: 8px;
	}

	.cc-site-footer__menu {
		grid-template-columns: minmax(0, 1fr);
	}

	.cc-site-footer__menu a {
		min-height: 43px;
	}

	.cc-site-footer__service-column {
		padding: 15px;
		border-radius: 18px;
	}

	.cc-site-footer__service-detail {
		padding: 10px;
	}

	.cc-site-footer__service-icon {
		width: 34px;
		height: 34px;
	}

	.cc-site-footer__divider {
		margin-top: 40px;
		margin-bottom: 40px;
	}
}

@media (max-height: 540px) and (max-width: 900px) {
	.cc-site-footer__glow {
		opacity: 0.65;
	}

	.cc-site-footer__grid {
		opacity: 0.42;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cc-site-footer *,
	.cc-site-footer *::before,
	.cc-site-footer *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

@media print {
	.cc-site-footer {
		padding: 28px 0 0;
		color: #17243b;
		background: #fff;
		border-top: 1px solid #d8e0eb;
	}

	.cc-site-footer__background,
	.cc-site-footer__intake-button,
	.cc-site-footer__service-area-link {
		display: none !important;
	}

	.cc-site-footer__intro,
	.cc-site-footer__navigation-grid {
		grid-template-columns: 1fr 1fr;
	}

	.cc-site-footer__intake-card,
	.cc-site-footer__service-column,
	.cc-site-footer__service-status,
	.cc-site-footer__service-detail {
		color: #17243b;
		background: #fff;
		border-color: #d8e0eb;
		box-shadow: none;
	}

	.cc-site-footer__brand-name,
	.cc-site-footer__intake-title,
	.cc-site-footer__service-detail strong {
		color: #17243b !important;
	}

	.cc-site-footer__description,
	.cc-site-footer__intake-copy,
	.cc-site-footer__menu a,
	.cc-site-footer__copyright,
	.cc-site-footer__legal-links a {
		color: #52627b;
	}
}

/* CC-PATCH-FOOTER-HEADING
   The four footer column headings (Services, Explore, Support & Trust,
   Service Model) were set to #a9bde4, which read as muted grey against the
   footer panel. Re-pointed to the existing brighter blue accent token. The
   gradient rule above each heading and the rest of the footer design are
   unchanged, and no new colours are introduced. */
.cc-site-footer__heading {
	color: var(--cc-footer-blue-2) !important;
}

/* =========================================================================
   FROZEN CHASSIS INTEGRATION — footer
   =========================================================================
   Source of truth: cc-chassis-FINAL-BUNDLE.zip (cc-chassis-FINAL.css,
   prototype and pass-4 screenshots). Integration layer only.
   Integration corrections are marked [IC].
   ========================================================================= */

:root{
  --cc-foot-top:#123a58;
  --cc-foot-mid:#0f324d;
  --cc-foot-deep:#091f31;
  --cc-foot-ink:#071724;
  --cc-foot-panel:#181e25;
  --cc-foot-panel-2:#202730;
  --cc-foot-line:rgba(186,213,229,.15);
  --cc-foot-line-lit:rgba(85,200,239,.42);
  --cc-foot-text:#f5f8fa;
  --cc-foot-muted:#b9c7d0;
  --cc-foot-cyan:#55c8ef;
  --cc-foot-blue:#4a86ff;
  --cc-foot-purple:#7b68ee;
}

/* ---- lower chassis ---- */
.cc-footer-proto{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  color:var(--cc-foot-text);
  background:
    radial-gradient(980px 360px at 18% -80px,rgba(71,151,195,.12),transparent 67%),
    radial-gradient(840px 420px at 83% 24%,rgba(50,100,145,.09),transparent 68%),
    linear-gradient(180deg,var(--cc-foot-top) 0%,var(--cc-foot-mid) 42%,var(--cc-foot-deep) 100%);
  border-top:1px solid rgba(128,195,226,.22);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 -18px 52px rgba(0,9,18,.23);
}
.cc-footer-proto::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.3;
  background-image:
    linear-gradient(rgba(177,216,234,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(177,216,234,.042) 1px,transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.72),rgba(0,0,0,.38) 58%,rgba(0,0,0,.1));
  mask-image:linear-gradient(180deg,rgba(0,0,0,.72),rgba(0,0,0,.38) 58%,rgba(0,0,0,.1));
}
/* [IC] retire the previous footer's own painted layers and doubled rules */
.cc-footer-proto .cc-site-footer__background,
.cc-footer-proto .cc-site-footer__grid,
.cc-footer-proto .cc-site-footer__glow,
.cc-footer-proto .cc-site-footer__top-line,
.cc-footer-proto .cc-site-footer__divider{display:none!important}

/* ---- receiving edge connector ---- */
.cc-footer-interface{
  position:absolute;left:0;right:0;top:0;height:82px;z-index:4;pointer-events:none;
  background:linear-gradient(180deg,rgba(4,19,31,.72),rgba(7,28,43,.26) 48%,transparent 100%);
}
.cc-footer-interface__rail{
  position:absolute;left:0;right:0;top:0;height:2px;opacity:.62;
  background:linear-gradient(90deg,
    transparent 0 3%,
    rgba(74,134,255,.12) 7%,
    rgba(85,200,239,.28) 24%,
    rgba(85,200,239,.12) 50%,
    rgba(85,200,239,.28) 78%,
    rgba(74,134,255,.12) 93%,
    transparent 97%);
  box-shadow:none;
}
.cc-footer-interface__bank{position:absolute;top:0;height:34px;display:flex;gap:5px;align-items:flex-start}
.cc-footer-interface__bank span{width:12px;height:var(--h,22px);display:block;background:linear-gradient(180deg,rgba(113,201,236,.42),rgba(33,103,140,.12));border:1px solid rgba(128,215,246,.19);border-top:0;border-radius:0 0 2px 2px}
.cc-footer-interface__drop{position:absolute;top:0;width:1px;background:linear-gradient(180deg,rgba(85,200,239,.42),rgba(74,134,255,.15),transparent)}
.cc-footer-interface__drop::after{content:"";position:absolute;bottom:0;left:-3px;width:7px;height:7px;border-radius:50%;background:#0a263b;border:1px solid rgba(85,200,239,.58);box-shadow:0 0 10px rgba(85,200,239,.12)}
.cc-footer-interface__bank.b1{left:calc(var(--cc-rail-a) - 12px)}
.cc-footer-interface__bank.b2{left:calc(var(--cc-rail-b) - 20px)}
.cc-footer-interface__bank.b3{left:calc(var(--cc-rail-c) - 14px)}
.cc-footer-interface__bank.b4{left:auto;right:calc(100% - var(--cc-rail-d) - 8px)}
.cc-footer-interface__drop.d1{left:var(--cc-rail-a);height:66px}
.cc-footer-interface__drop.d2{left:var(--cc-rail-b);height:52px}
.cc-footer-interface__drop.d3{left:var(--cc-rail-c);height:72px}
.cc-footer-interface__drop.d4{left:var(--cc-rail-d);right:auto;height:48px}

/* ---- footer topology ---- */
.cc-footer__traces{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.62;overflow:hidden}
.cc-footer__traces svg{width:100%;height:100%;display:block}
.cc-footer__traces .trace{fill:none;stroke:rgba(91,170,207,.17);stroke-width:1}
.cc-footer__traces .trace2{fill:none;stroke:rgba(85,200,239,.105);stroke-width:1}
.cc-footer__traces .via{fill:#0d314a;stroke:rgba(85,200,239,.38);stroke-width:1.2}

/* ---- layout ---- */
.cc-footer__inner{
  position:relative;z-index:5;
  width:min(92vw,1500px);
  margin:0 auto;
  padding:118px clamp(20px,2vw,34px) 30px;
}
.cc-footer__upper{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(440px,.82fr);gap:clamp(54px,7vw,112px);align-items:start}

/* ---- brand station: open, not a card ---- */
.cc-footer-brand{max-width:670px;padding:24px 0 18px;position:relative;background:none;border:0}
.cc-footer-brand::before{content:"";position:absolute;left:0;top:0;width:112px;height:1px;background:linear-gradient(90deg,var(--cc-foot-cyan),transparent);opacity:.58}
.cc-footer-brand .cc-site-footer__brand{display:flex;align-items:center;gap:16px;text-decoration:none}
.cc-footer-brand .cc-site-footer__logo,
.cc-footer-brand .cc-site-footer__fallback-mark{
  width:50px;height:50px;flex:0 0 50px;border-radius:13px;border:1px solid rgba(190,225,242,.22);
  background:linear-gradient(145deg,rgba(73,136,209,.48),rgba(107,90,200,.34));
  box-shadow:inset 0 1px rgba(255,255,255,.1),0 12px 30px rgba(0,10,18,.2);
  position:relative;display:grid;place-items:center;overflow:hidden;contain:paint;
}
.cc-footer-brand .cc-site-footer__logo img,
.cc-footer-brand .cc-site-footer__fallback-mark svg{width:27px;height:27px;display:block}
.cc-footer-brand__name{font-size:22px;font-weight:810;letter-spacing:-.035em}
.cc-footer-brand__sub{margin-top:5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:#b8d2df;font-weight:700}
.cc-footer-brand__desc{max-width:650px;margin:20px 0 0;color:#d2dde3;font-size:15px;line-height:1.7}
.cc-footer-status{margin-top:24px;width:min(100%,560px);display:grid;grid-template-columns:auto 1fr;gap:13px;align-items:center;padding:14px 16px;border:1px solid rgba(179,212,229,.13);border-left-color:rgba(85,200,239,.42);background:linear-gradient(90deg,rgba(13,35,49,.56),rgba(13,35,49,.2));border-radius:0;clip-path:polygon(0 0,calc(100% - 11px) 0,100% 11px,100% 100%,0 100%)}
.cc-footer-status strong{display:block;font-size:12px;color:#f0f8fb}
.cc-footer-status small,.cc-footer-status p{display:block;margin-top:3px;color:#aebfc8;font-size:10px;line-height:1.45}

/* ---- CTA is graphite equipment mounted on the chassis ---- */
.cc-footer-terminal{
  position:relative;
  background:linear-gradient(155deg,#242b34 0%,#1a2027 55%,#141a20 100%);
  border:1px solid rgba(190,211,224,.2);
  border-top-color:rgba(216,232,240,.28);
  box-shadow:0 24px 58px rgba(0,10,18,.28),inset 0 1px 0 rgba(255,255,255,.035);
  padding:34px 34px 30px;
  border-radius:0;
  clip-path:polygon(0 15px,15px 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%);
}
.cc-footer-terminal::before{content:"";position:absolute;left:0;top:15px;width:3px;height:68px;background:linear-gradient(180deg,var(--cc-foot-cyan),rgba(85,200,239,.08));box-shadow:0 0 14px rgba(85,200,239,.14)}
.cc-footer-terminal::after{content:"";position:absolute;right:20px;top:16px;width:68px;height:1px;background:linear-gradient(90deg,transparent,rgba(85,200,239,.42))}
.cc-footer-terminal__kicker{display:flex;align-items:center;gap:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#abe5f7}
.cc-footer-terminal__kicker::before{content:"";width:7px;height:7px;border-radius:50%;background:#65e4bc;box-shadow:0 0 10px rgba(101,228,188,.38);flex:none}
.cc-footer-terminal .cc-site-footer__intake-title{font-size:clamp(29px,2.4vw,42px);line-height:1.02;letter-spacing:-.045em;margin:16px 0 13px;max-width:12ch;color:var(--cc-foot-text)}
.cc-footer-terminal .cc-site-footer__intake-copy{margin:0;color:#c6d1d7;line-height:1.62;font-size:14px;max-width:52ch}
.cc-footer-terminal__btn{
  display:inline-flex;align-items:center;gap:10px;margin-top:24px;
  padding:13px 18px;min-height:44px;
  text-decoration:none;color:#fff;font-size:13px;font-weight:760;border-radius:7px;
  background:linear-gradient(110deg,#4a86ff,#55c8ef 68%,#8e78ee);
  box-shadow:0 9px 24px rgba(49,113,192,.2);border:0;
}
.cc-footer-terminal__micro{margin-top:20px;padding:12px 13px;display:flex;gap:9px;align-items:flex-start;color:#aebec7;font-size:10px;line-height:1.5;border:0;border-top:1px solid rgba(190,211,224,.1);background:rgba(4,11,16,.16);border-radius:0}
.cc-footer-terminal__micro::before{content:"✓";color:#6ce6bd;font-weight:900}
.cc-footer-terminal__micro svg{display:none}

/* ---- link matrix ---- */
.cc-footer__links{margin-top:72px;padding-top:29px;border-top:1px solid rgba(184,212,226,.12);display:grid;grid-template-columns:1.25fr repeat(3,1fr);gap:38px}
.cc-footer-col{background:none;border:0;padding:0}
.cc-footer-col__label{display:flex;align-items:center;gap:10px;margin-bottom:15px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;font-weight:800;letter-spacing:.14em;color:#9ad9ee;text-transform:uppercase}
.cc-footer-col__label::before{content:"";width:22px;height:1px;background:linear-gradient(90deg,var(--cc-foot-cyan),transparent);flex:none}
.cc-footer-col ul{list-style:none;margin:0;padding:0}
.cc-footer-col a{display:flex;align-items:center;min-height:36px;width:max-content;max-width:100%;margin:9px 0;color:#c9d4da;text-decoration:none;font-size:12px;line-height:1.4;transition:color .18s ease,transform .18s ease}
.cc-footer-col a:hover,.cc-footer-col a:focus-visible{color:#fff;transform:translateX(2px);outline:none}
.cc-footer-col a:focus-visible{outline:2px solid var(--cc-focus);outline-offset:3px}
.cc-footer-col p,.cc-footer-col .cc-site-footer__service-details{margin:0;color:#98aab4;font-size:11px;line-height:1.6;max-width:39ch}

/* ---- bottom bar ---- */
.cc-footer__bottom{margin-top:42px;padding:18px 0 8px;border-top:1px solid rgba(184,212,226,.09);display:flex;justify-content:space-between;gap:20px;align-items:center;color:#8499a5;font-size:10px;flex-wrap:wrap}
.cc-footer__bottom p{margin:0;color:inherit;font-size:inherit}
.cc-footer__bottom strong{color:#b9c9d1;font-weight:650}
.cc-footer__bottom a{color:#9fb2bd;text-decoration:none}
.cc-footer__bottom a:hover{color:#fff}
.cc-footer-fab{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;text-transform:uppercase;font-size:8px;color:#718893}

/* ---- one-time receiving acknowledgement ---- */
.cc-footer-proto.is-receiving .cc-footer-terminal::before{animation:ccTerminalWake 780ms ease-out 1}
@keyframes ccTerminalWake{
  0%{opacity:.35;box-shadow:0 0 0 rgba(85,200,239,0)}
  34%{opacity:1;box-shadow:0 0 22px rgba(85,200,239,.28)}
  100%{opacity:1;box-shadow:0 0 14px rgba(85,200,239,.14)}
}

/* ---- responsive ---- */
@media (max-width:1100px){
  .cc-footer__inner{width:min(92vw,920px);padding-top:104px}
  .cc-footer__upper{grid-template-columns:1fr;gap:34px}
  .cc-footer-brand{max-width:760px}
  .cc-footer-brand__desc{max-width:680px}
  .cc-footer-terminal{max-width:760px;width:100%;justify-self:start}
  .cc-footer-terminal .cc-site-footer__intake-title{max-width:16ch}
  .cc-footer__links{grid-template-columns:1.25fr 1fr 1fr 1fr;gap:24px}
  .cc-footer-col a{min-height:44px}
  .cc-footer-interface__bank.b2 span:nth-child(even),
  .cc-footer-interface__bank.b3 span:nth-child(even){display:none}
}

@media (max-width:720px){
  .cc-footer__inner{width:92vw;padding:88px 0 24px}
  .cc-footer__upper{gap:28px}
  .cc-footer-brand{padding-top:10px}
  .cc-footer-brand .cc-site-footer__brand{gap:12px}
  .cc-footer-brand .cc-site-footer__logo,
  .cc-footer-brand .cc-site-footer__fallback-mark{width:44px;height:44px;flex-basis:44px}
  .cc-footer-brand__name{font-size:19px}
  .cc-footer-brand__desc{font-size:14px;line-height:1.62;margin-top:16px}
  .cc-footer-status{margin-top:18px}
  .cc-footer-terminal{padding:28px 24px 25px}
  .cc-footer-terminal .cc-site-footer__intake-title{font-size:clamp(28px,8vw,36px);max-width:15ch}
  .cc-footer-terminal__btn{min-height:46px}

  /* compact 2-column information matrix; no giant single-column stack.
     [IC] the frozen design hides its first column here because in the
     prototype it was a redundant explanatory paragraph. On the live site
     every column carries real business links, so all four are kept. */
  .cc-footer__links{grid-template-columns:1fr 1fr;gap:0;margin-top:42px;border-top:1px solid rgba(186,213,229,.12)}
  .cc-footer-col{padding:20px 12px 18px 0;border-bottom:1px solid rgba(186,213,229,.09)}
  .cc-footer-col:nth-child(even){padding-left:18px;border-left:1px solid rgba(186,213,229,.09)}
  .cc-footer-col__label{margin-bottom:10px}
  .cc-footer-col a{min-height:44px}
  .cc-footer__bottom{gap:12px;padding-top:20px}
  .cc-footer-fab{font-size:8px}
}

@media (max-width:560px){
  .cc-footer-interface__bank.b2,.cc-footer-interface__bank.b3,
  .cc-footer-interface__drop.d2,.cc-footer-interface__drop.d3{display:none}
}

@media (max-width:430px){
  .cc-footer__inner{width:90vw}
  .cc-footer-brand__sub{font-size:8.4px;letter-spacing:.1em}
  .cc-footer-status{padding:12px 13px}
  .cc-footer-terminal{padding:25px 20px 23px}
  .cc-footer-terminal__btn{width:100%;justify-content:center}
  .cc-footer-terminal__micro{font-size:10px;line-height:1.48}
  .cc-footer__links{grid-template-columns:1fr 1fr}
  .cc-footer-col{font-size:12px}
  .cc-footer__bottom{align-items:flex-start;flex-direction:column}
}

@media (prefers-contrast:more){
  .cc-footer-proto{border-color:rgba(215,239,250,.5)}
  .cc-footer-terminal{border-color:rgba(224,240,249,.48)}
  .cc-footer-brand__sub,.cc-footer-brand__desc,.cc-footer-terminal .cc-site-footer__intake-copy,.cc-footer-col p{color:#e3edf2}
}
@media (forced-colors:active){
  .cc-footer-interface,.cc-footer__traces{display:none!important}
  .cc-footer-proto,.cc-footer-terminal{background:Canvas!important;color:CanvasText!important;border:1px solid CanvasText!important;clip-path:none!important}
  .cc-footer-terminal__btn,.cc-footer-col a{color:LinkText!important}
}
@media (prefers-reduced-motion:reduce){
  .cc-footer-proto.is-receiving .cc-footer-terminal::before{animation:none!important}
}

/* [IC] footer brand copy bridges */
.cc-footer-brand .cc-site-footer__brand-copy > :first-child{font-size:22px;font-weight:810;letter-spacing:-.035em;display:block;color:var(--cc-foot-text)}
.cc-footer-brand .cc-site-footer__brand-copy > :last-child{margin-top:5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:#b8d2df;font-weight:700;display:block}
.cc-footer-status .cc-site-footer__status-dot{width:8px;height:8px;border-radius:50%;background:#62e6bd;box-shadow:0 0 12px rgba(98,230,189,.35);display:block}
@media (max-width:720px){
  .cc-footer-brand .cc-site-footer__brand-copy > :first-child{font-size:19px}
}
@media (max-width:430px){
  .cc-footer-brand .cc-site-footer__brand-copy > :last-child{font-size:8.4px}
}


.cc-footer-v2{
  --f2-shell:min(calc(100vw - 26px),1425px);
  --f2-steel:#173f5f;
  --f2-steel2:#123650;
  --f2-deep:#092438;
  --f2-deeper:#061b2a;
  --f2-blue:#087ab8;
  --f2-cyan:#55c8ef;
  --f2-ice:#f6fbfd;
  --f2-ice2:#eaf5fa;
  --f2-line:rgba(172,224,247,.17);
  position:relative!important;
  margin:0!important;padding:0!important;
  overflow:hidden!important;
  color:#e9f4f8!important;
  background:var(--f2-deep)!important;
  border:0!important;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif!important
}
.cc-footer-v2 *{box-sizing:border-box}
.cc-footer-v2 a{text-decoration:none}
.cc-footer-v2__tracefield{position:absolute;inset:0;pointer-events:none;opacity:.33;z-index:0}
.cc-footer-v2__tracefield svg{display:block;width:100%;height:100%}
.cc-footer-v2__tracefield path{fill:none;stroke:rgba(137,211,242,.16);stroke-width:1}
.cc-footer-v2__tracefield circle{fill:#123b58;stroke:rgba(101,209,247,.50);stroke-width:1.2}

/* TOP HANDOFF DOCK */
.cc-footer-v2__handoff-wrap{
  position:relative;z-index:3;
  padding:0 13px;
  background:linear-gradient(180deg,transparent 0 36%,var(--f2-steel) 36% 100%)
}
.cc-footer-v2__handoff{
  width:var(--f2-shell);margin:0 auto;
  display:grid;grid-template-columns:minmax(0,1.22fr) minmax(360px,.78fr);gap:36px;align-items:center;
  padding:28px 30px;
  border:1px solid rgba(8,122,184,.20);border-radius:16px;
  background:
    radial-gradient(520px 160px at 14% 0%,rgba(85,200,239,.10),transparent 72%),
    linear-gradient(145deg,#fff,#f0f8fb);
  box-shadow:0 22px 56px rgba(5,31,47,.23);
  color:#183d54
}
.cc-footer-v2__eyebrow{
  display:block;margin-bottom:7px;color:#087ab8;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:9px;font-weight:950;letter-spacing:.11em
}
.cc-footer-v2__handoff h2{
  margin:0 0 7px!important;color:#102f44!important;
  font-size:clamp(1.55rem,2.25vw,2.45rem)!important;line-height:1!important;letter-spacing:-.035em!important;font-weight:900!important
}
.cc-footer-v2__handoff p{
  max-width:760px;margin:0!important;color:#557182!important;font-size:13.5px!important;line-height:1.52!important
}
.cc-footer-v2__handoff-actions{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}
.cc-footer-v2__primary{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:50px;padding:0 17px;
  border-radius:10px;background:linear-gradient(135deg,#087ab8,#056da8);color:#fff!important;
  font-size:12px;font-weight:900;box-shadow:0 10px 24px rgba(2,70,108,.16);
  transition:transform .18s ease,filter .18s ease
}
.cc-footer-v2__primary:hover{transform:translateY(-2px);filter:brightness(1.04)}
.cc-footer-v2__primary svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}
.cc-footer-v2__secondary{
  display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 14px;border:1px solid rgba(8,122,184,.17);
  border-radius:10px;background:#fff;color:#1d5f85!important;font-size:11px;font-weight:900;white-space:nowrap
}
.cc-footer-v2__primary:focus-visible,.cc-footer-v2__secondary:focus-visible{outline:2px solid #087ab8;outline-offset:3px}
.cc-footer-v2__handoff-actions small{
  grid-column:1/3;color:#718895;font-size:9.5px;line-height:1.35
}

/* MAIN STEEL CHASSIS */
.cc-footer-v2__main{
  position:relative;z-index:2;padding:54px 13px 34px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.025),transparent 20%),
    radial-gradient(720px 240px at 10% 10%,rgba(85,200,239,.10),transparent 72%),
    radial-gradient(620px 240px at 88% 14%,rgba(92,166,210,.09),transparent 72%),
    linear-gradient(180deg,var(--f2-steel),var(--f2-steel2) 55%,var(--f2-deep))
}
.cc-footer-v2__main::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.19;
  background-image:
    linear-gradient(rgba(188,227,245,.08) 1px,transparent 1px),
    linear-gradient(90deg,rgba(188,227,245,.06) 1px,transparent 1px);
  background-size:52px 52px;
  mask-image:linear-gradient(90deg,transparent,black 10%,black 90%,transparent)
}
.cc-footer-v2__shell{
  position:relative;z-index:3;width:var(--f2-shell);margin:0 auto;
  display:grid;grid-template-columns:minmax(270px,.78fr) minmax(500px,1.35fr) minmax(330px,.87fr);
  gap:38px;align-items:start
}

/* BRAND */
.cc-footer-v2__brand-block{min-width:0}
.cc-footer-v2__brand{display:flex;align-items:center;gap:12px;color:#fff!important}
.cc-footer-v2__mark{
  position:relative;display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;
  border:1px solid rgba(197,235,251,.28);border-radius:11px;
  background:linear-gradient(150deg,#28658c,#123650);box-shadow:inset 0 1px rgba(255,255,255,.11)
}
.cc-footer-v2__mark>span{width:21px;height:21px;border:1px solid rgba(225,247,255,.74);border-radius:5px;box-shadow:0 0 0 4px rgba(85,200,239,.05)}
.cc-footer-v2__mark>span::after{content:"";position:absolute;left:50%;top:50%;width:5px;height:5px;margin:-2.5px;border-radius:50%;background:#e5faff;box-shadow:0 0 10px rgba(85,200,239,.7)}
.cc-footer-v2__mark i{position:absolute;background:rgba(150,222,250,.48)}
.cc-footer-v2__mark i:nth-of-type(1){width:7px;height:1px;left:5px;top:16px}
.cc-footer-v2__mark i:nth-of-type(2){width:1px;height:7px;left:16px;top:5px}
.cc-footer-v2__mark i:nth-of-type(3){width:7px;height:1px;right:5px;bottom:16px}
.cc-footer-v2__mark i:nth-of-type(4){width:1px;height:7px;right:16px;bottom:5px}
.cc-footer-v2__brand-copy{display:grid;gap:3px}
.cc-footer-v2__brand-copy strong{color:#fff;font-size:18px;line-height:1;font-weight:900;letter-spacing:-.035em}
.cc-footer-v2__brand-copy small{color:#bad2df;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px;font-weight:850;letter-spacing:.11em}
.cc-footer-v2__brand-block>p{margin:18px 0!important;max-width:330px;color:#bad1dd!important;font-size:11.5px!important;line-height:1.55!important}
.cc-footer-v2__coverage{
  padding:13px;border:1px solid rgba(167,222,246,.13);border-radius:10px;background:rgba(4,27,42,.20);
  display:grid;gap:3px
}
.cc-footer-v2__coverage span{color:#76ceeF;font-size:8px;font-weight:950;letter-spacing:.10em}
.cc-footer-v2__coverage strong{color:#edf9fd;font-size:12px}
.cc-footer-v2__coverage a{margin-top:3px;color:#9bdbf5!important;font-size:9.5px;font-weight:800}

/* SHARED SECTION HEAD */
.cc-footer-v2__section-head{
  display:flex;justify-content:space-between;gap:12px;padding-bottom:10px;margin-bottom:10px;
  border-bottom:1px solid rgba(168,222,245,.13)
}
.cc-footer-v2__section-head span{color:#72cef1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px;font-weight:950;letter-spacing:.11em}
.cc-footer-v2__section-head b{color:#aac7d6;font-size:9.5px;font-weight:750}

/* SERVICE BUS */
.cc-footer-v2__service-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.cc-footer-v2__service-grid>a{
  position:relative;display:grid;grid-template-columns:30px 1fr;gap:8px;align-items:center;
  min-height:57px;padding:9px 10px;border:1px solid rgba(161,220,244,.11);border-radius:9px;
  background:rgba(4,27,42,.16);color:#e8f5fa!important;
  transition:background .16s ease,border-color .16s ease,transform .16s ease
}
.cc-footer-v2__service-grid>a:hover{background:rgba(8,48,70,.36);border-color:rgba(112,207,244,.27);transform:translateY(-1px)}
.cc-footer-v2__service-grid>a:focus-visible{outline:2px solid #83daf9;outline-offset:2px}
.cc-footer-v2__service-grid i{
  display:grid;place-items:center;width:27px;height:27px;border-radius:7px;background:rgba(92,196,236,.10);
  border:1px solid rgba(122,211,246,.17);color:#8fdcf8;font-style:normal;font-size:8px;font-weight:950
}
.cc-footer-v2__service-grid span{display:grid;gap:2px}
.cc-footer-v2__service-grid b{color:#edf8fc;font-size:10.5px;line-height:1.2}
.cc-footer-v2__service-grid small{color:#97b7c7;font-size:8.5px;line-height:1.25}

/* CONSOLE */
.cc-footer-v2__console-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cc-footer-v2__links{display:grid;align-content:start;gap:6px}
.cc-footer-v2__links>span{margin-bottom:2px;color:#72cef1;font-size:8px;font-weight:950;letter-spacing:.09em}
.cc-footer-v2__links>a{
  position:relative;padding-left:12px;color:#cfE2eb!important;font-size:10px;font-weight:750;line-height:1.35
}
.cc-footer-v2__links>a::before{content:"";position:absolute;left:0;top:.55em;width:5px;height:1px;background:#5fc9ef}
.cc-footer-v2__links>a:hover{color:#fff!important}
.cc-footer-v2__links>a:focus-visible{outline:2px solid #83daf9;outline-offset:2px}
.cc-footer-v2__status{display:grid;grid-template-columns:1fr;gap:6px;margin-top:15px}
.cc-footer-v2__status>div{
  display:grid;grid-template-columns:100px 1fr;gap:8px;padding:8px 9px;border:1px solid rgba(160,218,242,.10);border-radius:8px;background:rgba(4,27,42,.18)
}
.cc-footer-v2__status span{color:#79ccec;font-size:7.5px;font-weight:950;letter-spacing:.08em}
.cc-footer-v2__status b{color:#d8e8ef;font-size:9.5px}

/* BOTTOM RAIL */
.cc-footer-v2__rail{
  position:relative;z-index:4;padding:0 13px;
  background:linear-gradient(180deg,var(--f2-deep),var(--f2-deeper));
  border-top:1px solid rgba(129,211,243,.12)
}
.cc-footer-v2__rail-shell{
  width:var(--f2-shell);min-height:58px;margin:0 auto;
  display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center
}
.cc-footer-v2__rail-status{display:flex;align-items:center;gap:7px;white-space:nowrap}
.cc-footer-v2__rail-status i{width:7px;height:7px;border-radius:50%;background:#75d8f7;box-shadow:0 0 10px rgba(85,200,239,.65)}
.cc-footer-v2__rail-status span{color:#6bc8ea;font-size:7.5px;font-weight:950;letter-spacing:.09em}
.cc-footer-v2__rail-status b{color:#b8ced9;font-size:9px}
.cc-footer-v2__rail-links{display:flex;justify-content:center;gap:17px;flex-wrap:wrap}
.cc-footer-v2__rail-links a{color:#9eb9c7!important;font-size:8.5px;font-weight:750}
.cc-footer-v2__rail-links a:hover{color:#e8f8fe!important}
.cc-footer-v2__copyright{color:#7595a5;font-size:8.5px;text-align:right;white-space:nowrap}

@media(max-width:1120px){
  .cc-footer-v2__handoff{grid-template-columns:1fr;gap:18px}
  .cc-footer-v2__shell{grid-template-columns:1fr 1.35fr;gap:30px}
  .cc-footer-v2__console{grid-column:1/3}
  .cc-footer-v2__console-grid{grid-template-columns:1fr 1fr}
  .cc-footer-v2__status{grid-template-columns:repeat(3,1fr)}
  .cc-footer-v2__status>div{grid-template-columns:1fr;gap:2px}
  .cc-footer-v2__rail-shell{grid-template-columns:1fr auto}
  .cc-footer-v2__rail-links{grid-column:1/3;grid-row:2;justify-content:flex-start;padding-bottom:12px}
}
@media(max-width:760px){
  .cc-footer-v2__handoff-wrap{padding:0 10px}
  .cc-footer-v2__handoff{width:100%;padding:22px 18px;border-radius:14px}
  .cc-footer-v2__handoff-actions{grid-template-columns:1fr}
  .cc-footer-v2__handoff-actions small{grid-column:auto}
  .cc-footer-v2__primary,.cc-footer-v2__secondary{width:100%}
  .cc-footer-v2__main{padding:46px 13px 28px}
  .cc-footer-v2__shell{grid-template-columns:1fr;gap:30px}
  .cc-footer-v2__console{grid-column:auto}
  .cc-footer-v2__service-grid{grid-template-columns:1fr}
  .cc-footer-v2__console-grid{grid-template-columns:1fr 1fr}
  .cc-footer-v2__status{grid-template-columns:1fr}
  .cc-footer-v2__status>div{grid-template-columns:100px 1fr}
  .cc-footer-v2__rail-shell{grid-template-columns:1fr;gap:8px;padding:15px 0}
  .cc-footer-v2__rail-links{grid-column:auto;grid-row:auto;justify-content:flex-start;padding:0;gap:10px}
  .cc-footer-v2__copyright{text-align:left;white-space:normal}
}
@media(max-width:480px){
  .cc-footer-v2__console-grid{grid-template-columns:1fr}
  .cc-footer-v2__handoff h2{font-size:1.6rem!important}
}
@media(prefers-reduced-motion:reduce){
  .cc-footer-v2 *,.cc-footer-v2 *::before,.cc-footer-v2 *::after{transition-duration:.01ms!important;animation:none!important}
}

/* =========================================================
   FOOTER V4 IMPROVEMENTS
   Appended from the approved prototype block id="cc-footer-v3-improvements".
   Nothing above this line was modified or removed in this pass.
   ========================================================= */
/* ==========================================================================
   FOOTER V3 — compact service dock
   Removes the oversized connector assembly, restores readable type, and keeps
   the footer useful instead of turning it into another full page.
   ========================================================================== */
.cc-footer-proto{
  --f3-bg:#0d151f;
  --f3-bg-2:#111d29;
  --f3-panel:#172431;
  --f3-panel-2:#1d2c3a;
  --f3-line:rgba(159,193,219,.17);
  --f3-line-live:rgba(85,200,239,.38);
  --f3-text:#f4f8fb;
  --f3-muted:#aebdca;
  --f3-blue:#4a86ff;
  --f3-purple:#7b68ee;
  --f3-cyan:#55c8ef;
  padding:0!important;
  background:
    radial-gradient(820px 260px at 12% 0%,rgba(85,200,239,.12),transparent 70%),
    radial-gradient(760px 300px at 86% 18%,rgba(104,166,255,.12),transparent 72%),
    linear-gradient(180deg,#0c2941 0%,#153956 54%,#1d4567 100%)!important;
  border-top:1px solid rgba(128,213,245,.36)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.035),0 -14px 42px rgba(2,8,18,.3)!important
}
.cc-footer-proto::before{
  opacity:.42!important;background-size:32px 32px!important;
  -webkit-mask-image:linear-gradient(180deg,#000,rgba(0,0,0,.58) 60%,rgba(0,0,0,.28))!important;
  mask-image:linear-gradient(180deg,#000,rgba(0,0,0,.58) 60%,rgba(0,0,0,.28))!important
}
.cc-footer-proto::after{
  content:"";position:absolute;left:0;right:0;top:0;height:9px;z-index:4;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(3,21,33,.68),rgba(3,21,33,.24)),
    linear-gradient(90deg,transparent 0 5%,rgba(85,200,239,.22) 5% 5.1%,transparent 5.1% 95%,rgba(85,200,239,.22) 95% 95.1%,transparent 95.1%);
  border-top:1px solid rgba(85,200,239,.28);border-bottom:1px solid rgba(153,218,244,.14)
}
.cc-footer-proto .cc-board-handoff--bottom,
.cc-footer-proto .cc-footer-interface{display:none!important}
.cc-footer__traces{
  inset:0!important;height:auto!important;bottom:0!important;opacity:.78!important;overflow:hidden!important;
  -webkit-mask-image:linear-gradient(180deg,#000,rgba(0,0,0,.82) 64%,rgba(0,0,0,.4))!important;
  mask-image:linear-gradient(180deg,#000,rgba(0,0,0,.82) 64%,rgba(0,0,0,.4))!important
}
.cc-footer__traces svg{width:100%!important;height:100%!important;display:block!important}
.cc-footer__traces .trace,.cc-footer__traces .trace2{
  vector-effect:non-scaling-stroke;shape-rendering:geometricPrecision
}
.cc-footer__traces .trace{stroke:rgba(137,206,236,.27)!important;stroke-width:1.05!important}
.cc-footer__traces .trace2{stroke:rgba(102,174,214,.16)!important;stroke-width:.85!important}
.cc-footer__traces .via{vector-effect:non-scaling-stroke;stroke:rgba(166,229,250,.58)!important;fill:#153f5f!important}
.cc-footer__traces .pad{vector-effect:non-scaling-stroke;stroke:rgba(128,213,245,.28)!important;stroke-width:1!important;fill:rgba(7,28,43,.35)!important}
.cc-footer__inner{
  width:min(94vw,1580px)!important;margin:0 auto!important;
  padding:clamp(54px,5vw,76px) clamp(8px,1.25vw,20px) 24px!important
}
.cc-footer__upper{
  display:grid!important;grid-template-columns:minmax(0,1fr) minmax(420px,.88fr)!important;
  gap:clamp(44px,6vw,92px)!important;align-items:center!important
}
.cc-footer-brand{max-width:720px!important;padding:0!important}
.cc-footer-brand::before{width:88px!important;top:-17px!important}
.cc-footer-brand .cc-site-footer__brand{gap:14px!important}
.cc-footer-brand .cc-site-footer__logo,
.cc-footer-brand .cc-site-footer__fallback-mark{
  width:48px!important;height:48px!important;flex-basis:48px!important;border-radius:12px!important;
  background:linear-gradient(145deg,rgba(74,134,255,.48),rgba(123,104,238,.31))!important
}
.cc-footer-brand .cc-site-footer__brand-copy>:first-child{font-size:21px!important;color:var(--f3-text)!important}
.cc-footer-brand .cc-site-footer__brand-copy>:last-child{font-size:10px!important;color:#b7cad8!important;letter-spacing:.1em!important}
.cc-footer-brand__desc{
  max-width:650px!important;margin:18px 0 0!important;color:#c5d1da!important;
  font-size:15px!important;line-height:1.68!important
}
.cc-footer-status{
  width:min(100%,610px)!important;margin-top:19px!important;padding:12px 14px!important;
  border:1px solid var(--f3-line)!important;border-left:3px solid var(--f3-cyan)!important;
  border-radius:10px!important;clip-path:none!important;background:rgba(6,27,42,.62)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.025)!important
}
.cc-footer-status strong{font-size:13px!important;color:#edf7fb!important}
.cc-footer-status small{margin-top:2px!important;color:#9fb2c0!important;font-size:12px!important;line-height:1.45!important}

.cc-footer-terminal{
  padding:clamp(24px,3vw,34px)!important;border-radius:16px!important;clip-path:none!important;
  background:
    radial-gradient(420px 170px at 8% 0%,rgba(85,200,239,.13),transparent 72%),
    linear-gradient(155deg,rgba(14,52,77,.92),rgba(8,34,53,.95) 64%,rgba(6,27,43,.97))!important;
  border:1px solid rgba(166,211,237,.22)!important;border-top-color:rgba(128,213,245,.43)!important;
  box-shadow:0 22px 52px rgba(0,9,18,.3),inset 0 1px rgba(255,255,255,.045)!important
}
.cc-footer-terminal::before{top:20px!important;height:52px!important;border-radius:0 3px 3px 0!important}
.cc-footer-terminal::after{display:none!important}
.cc-footer-terminal__kicker{
  color:#9ddff5!important;font-size:10px!important;letter-spacing:.12em!important
}
.cc-footer-terminal__kicker::before{display:none!important;content:none!important}
.cc-footer-terminal__kicker .cc-site-footer__intake-eyebrow-dot{
  display:block!important;width:7px!important;height:7px!important;flex:none!important;
  border-radius:50%!important;background:#65e4bc!important;box-shadow:0 0 10px rgba(101,228,188,.38)!important
}
.cc-footer-terminal .cc-site-footer__intake-title{
  max-width:18ch!important;margin:12px 0 10px!important;color:var(--f3-text)!important;
  font-size:clamp(25px,2vw,34px)!important;line-height:1.08!important;letter-spacing:-.035em!important
}
.cc-footer-terminal .cc-site-footer__intake-copy{
  max-width:58ch!important;color:#bdcad3!important;font-size:14px!important;line-height:1.58!important
}
.cc-footer-v3__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.cc-footer-terminal__btn,.cc-footer-v3__secondary{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:9px!important;
  min-height:48px!important;margin:0!important;padding:0 17px!important;border-radius:9px!important;
  font-size:13px!important;font-weight:780!important;text-decoration:none!important
}
.cc-footer-terminal__btn{
  color:#fff!important;background:linear-gradient(135deg,var(--f3-blue),var(--f3-purple))!important;
  box-shadow:0 10px 25px rgba(44,78,180,.25)!important
}
.cc-footer-v3__secondary{
  color:#dce8ef!important;background:rgba(128,176,255,.06)!important;
  border:1px solid rgba(128,176,255,.22)!important
}
.cc-footer-terminal__btn:hover,.cc-footer-v3__secondary:hover{transform:translateY(-2px)!important;filter:brightness(1.07)}
.cc-footer-terminal__micro{
  margin-top:17px!important;padding:11px 0 0!important;color:#9eafbb!important;
  font-size:11.5px!important;line-height:1.5!important;background:none!important
}

.cc-footer__links{
  margin-top:clamp(44px,5vw,64px)!important;padding-top:28px!important;
  grid-template-columns:minmax(250px,1.25fr) repeat(2,minmax(185px,.86fr)) minmax(250px,1.05fr)!important;
  gap:clamp(26px,3.5vw,56px)!important;border-top:1px solid var(--f3-line)!important
}
.cc-footer-col{position:relative!important;z-index:2!important}
.cc-footer-col__label{
  margin-bottom:13px!important;color:#9fdcf2!important;font-size:10px!important;letter-spacing:.13em!important
}
.cc-footer-col a{
  width:100%!important;min-height:38px!important;margin:2px 0!important;padding:6px 0!important;
  color:#c5d1d9!important;font-size:13px!important;line-height:1.4!important
}
.cc-footer-col a:hover,.cc-footer-col a:focus-visible{color:#fff!important;transform:translateX(3px)!important}
.cc-site-footer__service-column{
  padding:17px!important;border:1px solid var(--f3-line)!important;border-radius:12px!important;
  background:rgba(6,27,42,.56)!important;box-shadow:inset 0 1px rgba(255,255,255,.025)!important
}
.cc-site-footer__service-details{display:grid!important;gap:8px!important}
.cc-site-footer__service-detail{
  min-height:48px!important;padding:8px!important;border:0!important;border-bottom:1px solid rgba(159,193,219,.09)!important;
  border-radius:0!important;background:none!important
}
.cc-site-footer__service-detail:last-child{border-bottom:0!important}
.cc-site-footer__service-detail small{font-size:10px!important;color:#8ea3b3!important}
.cc-site-footer__service-detail strong{font-size:12.5px!important;color:#e0e9ee!important}
.cc-site-footer__service-icon{width:28px!important;height:28px!important;border-radius:8px!important}
.cc-site-footer__service-area-link{
  min-height:42px!important;margin-top:10px!important;padding:8px 10px!important;
  font-size:12px!important;border-radius:8px!important
}
.cc-footer__bottom{
  margin-top:34px!important;padding:17px 0 max(5px,env(safe-area-inset-bottom))!important;
  color:#8295a5!important;font-size:11px!important;border-top:1px solid rgba(159,193,219,.1)!important
}
.cc-site-footer__legal-links a{font-size:11px!important}
.cc-footer-fab{display:none!important}

@media(max-width:1100px){
  .cc-footer__inner{width:min(94vw,920px)!important;padding-top:58px!important}
  .cc-footer__upper{grid-template-columns:1fr!important;gap:30px!important}
  .cc-footer-terminal{max-width:none!important}
  .cc-footer__links{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:30px 36px!important}
}
@media(max-width:640px){
  .cc-footer__inner{width:calc(100% - 28px)!important;padding:48px 0 20px!important}
  .cc-footer__traces{height:auto!important;opacity:.52!important}
  .cc-footer-brand .cc-site-footer__brand{align-items:center!important}
  .cc-footer-brand .cc-site-footer__brand-copy>:first-child{font-size:19px!important}
  .cc-footer-brand .cc-site-footer__brand-copy>:last-child{font-size:8.5px!important}
  .cc-footer-brand__desc{font-size:14px!important;line-height:1.58!important}
  .cc-footer-status{grid-template-columns:auto 1fr!important}
  .cc-footer-terminal{padding:23px 19px!important;border-radius:13px!important}
  .cc-footer-terminal .cc-site-footer__intake-title{font-size:27px!important}
  .cc-footer-v3__actions{display:grid!important;grid-template-columns:1fr!important}
  .cc-footer-terminal__btn,.cc-footer-v3__secondary{width:100%!important}
  .cc-footer__links{grid-template-columns:1fr!important;gap:0!important;margin-top:36px!important;padding-top:12px!important}
  .cc-footer-col{padding:21px 0!important;border:0!important;border-bottom:1px solid rgba(159,193,219,.1)!important}
  .cc-footer-col:nth-child(even){padding-left:0!important;border-left:0!important}
  .cc-footer-col a{min-height:42px!important;font-size:14px!important}
  .cc-site-footer__service-column{margin-top:20px!important;padding:15px!important;border:1px solid var(--f3-line)!important}
  .cc-footer__bottom{align-items:flex-start!important;flex-direction:column!important;gap:10px!important}
}
@media(forced-colors:active){
  .cc-footer__traces{display:none!important}
  .cc-footer-terminal,.cc-site-footer__service-column{background:Canvas!important;border:1px solid CanvasText!important}
}

/* =========================================================
   FOOTER MARK — the circuitry C, energised once on arrival

   The same reconstructed C as the header, with its own gradient ids so the
   two never collide in one document. It fires a single time, when the footer
   is actually scrolled into view, then stays completely static. There is no
   loop, no timer and no scroll handler: one IntersectionObserver that
   disconnects after it fires, and nothing at all under reduced motion.
   ========================================================= */

.cc-site-footer__fallback-mark.cc-fmark {
	display: block !important;
	position: relative !important;
	width: 56px !important;
	height: 69px !important;
	flex: 0 0 56px !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	box-shadow: none !important;
	overflow: visible !important;
}

.cc-site-footer__fallback-mark.cc-fmark::before,
.cc-site-footer__fallback-mark.cc-fmark::after {
	content: none !important;
	display: none !important;
}

.cc-fmark__svg {
	display: block;
	width: 100%;
	height: 100%;
	overflow: visible;
}

.cc-fmark__frame {
	filter: drop-shadow(0 0 5px rgba(85, 200, 239, 0.4));
}

.cc-fmark__outer {
	stroke: url(#ccFtrEdge);
	stroke-width: 6.4;
	stroke-linejoin: round;
	stroke-linecap: round;
	opacity: 0.95;
}

.cc-fmark__inner {
	stroke: url(#ccFtrEdge);
	stroke-width: 3.9;
	stroke-linejoin: round;
	stroke-linecap: round;
	opacity: 0.9;
}

.cc-fmark__trace,
.cc-fmark__iotrace {
	fill: none;
	stroke: #cfe7f7;
	stroke-width: 2.5;
	stroke-linejoin: round;
	stroke-linecap: round;
	opacity: 0.8;
}

.cc-fmark__pad {
	fill: #0d2233;
	stroke: #e6f5ff;
	stroke-width: 2.2;
}

.cc-fmark__tool rect,
.cc-fmark__tool path {
	fill: url(#ccFtrTool);
}

/* Resting: the conductors are simply not drawn. */
.cc-fspark {
	fill: none;
	stroke: #ffffff;
	stroke-width: 7;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-dasharray: 13 100;
	stroke-dashoffset: 113;
	opacity: 0;
	filter:
		drop-shadow(0 0 3px #b9ecff)
		drop-shadow(0 0 10px rgba(96, 206, 255, 0.98))
		drop-shadow(0 0 20px rgba(60, 170, 235, 0.6));
}

.cc-fspark--inner { stroke-width: 4.6; }
.cc-fspark--tl,
.cc-fspark--bl,
.cc-fspark--br,
.cc-fspark--tr { stroke-width: 4; }
.cc-fspark--io1,
.cc-fspark--io2,
.cc-fspark--io3,
.cc-fspark--io4 { stroke-width: 5; }

/* ---- The single firing ---- */
.cc-fmark.is-charged .cc-fspark {
	animation: ccFtrFlow 900ms linear 1 both;
}

.cc-fmark.is-charged .cc-fspark--inner { animation-delay: 150ms; }
.cc-fmark.is-charged .cc-fspark--tl { animation-delay: 280ms; }
.cc-fmark.is-charged .cc-fspark--bl { animation-delay: 310ms; }
.cc-fmark.is-charged .cc-fspark--br { animation-delay: 370ms; }
.cc-fmark.is-charged .cc-fspark--tr { animation-delay: 400ms; }
.cc-fmark.is-charged .cc-fspark--io1 { animation-delay: 430ms; }
.cc-fmark.is-charged .cc-fspark--io2 { animation-delay: 460ms; }
.cc-fmark.is-charged .cc-fspark--io3 { animation-delay: 490ms; }
.cc-fmark.is-charged .cc-fspark--io4 { animation-delay: 520ms; }

@keyframes ccFtrFlow {
	0% { stroke-dashoffset: 113; opacity: 0; }
	8% { opacity: 1; }
	72% { opacity: 1; }
	100% { stroke-dashoffset: 0; opacity: 0; }
}

.cc-fmark.is-charged .cc-fmark__pad {
	animation: ccFtrPad 900ms linear 1 both;
	animation-delay: 340ms;
}

@keyframes ccFtrPad {
	0%, 22% { fill: #0d2233; stroke: #e6f5ff; }
	40% { fill: #c8ecff; stroke: #ffffff; }
	72% { fill: #0d2233; stroke: #e6f5ff; }
	100% { fill: #0d2233; stroke: #e6f5ff; }
}

.cc-fmark.is-charged .cc-fmark__frame {
	animation: ccFtrWake 1300ms ease-out 1 both;
}

@keyframes ccFtrWake {
	0% { filter: drop-shadow(0 0 5px rgba(85, 200, 239, 0.4)); }
	28% { filter: drop-shadow(0 0 12px rgba(120, 216, 255, 0.85)); }
	100% { filter: drop-shadow(0 0 5px rgba(85, 200, 239, 0.4)); }
}

/* A restrained reflection on the footer wordmark, never the letters flickering. */
.cc-site-footer__brand-copy { position: relative; }

.cc-fmark.is-charged ~ .cc-site-footer__brand-copy::after {
	content: "";
	position: absolute;
	/* Deliberately much larger than the text with the gradient fading out well
	   inside it: at a tighter size the falloff met the element's own edge and
	   the "glow" rendered as a visible rounded panel over the wordmark. */
	inset: -34px -70px;
	border-radius: 0;
	pointer-events: none;
	mix-blend-mode: screen;
	background: radial-gradient(
		34% 74% at 20% 50%,
		rgba(120, 206, 252, 0.34) 0%,
		rgba(78, 172, 228, 0.1) 38%,
		rgba(78, 172, 228, 0) 62%
	);
	animation: ccFtrGlow 1200ms ease-out 1 both;
	animation-delay: 380ms;
}

@keyframes ccFtrGlow {
	0% { opacity: 0; }
	26% { opacity: 1; }
	52% { opacity: 0.4; }
	100% { opacity: 0; }
}

@media (max-width: 620px) {
	.cc-site-footer__fallback-mark.cc-fmark {
		width: 46px !important;
		height: 57px !important;
		flex-basis: 46px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cc-fmark.is-charged .cc-fspark,
	.cc-fmark.is-charged .cc-fmark__pad,
	.cc-fmark.is-charged .cc-fmark__frame,
	.cc-fmark.is-charged ~ .cc-site-footer__brand-copy::after {
		animation: none !important;
	}

	.cc-fspark { opacity: 0 !important; }
}

@media print {
	.cc-fspark { display: none !important; }
}

/* =========================================================
   FOOTER MARK — SIZING FIX, WORDMARK, AND CONNECTED CIRCUITRY

   The mark was rendering at 27x27 inside its own 56x69 box: the theme sizes
   the placeholder icon with `.cc-footer-brand .cc-site-footer__fallback-mark
   svg`, a (0,3,1) selector that outranked the class I had used. At 27px a
   104x128 viewBox is unreadable, which is why the C looked absent. These
   overrides carry enough specificity to win, and the footer now also gets the
   real wordmark and its own connector board, so the bottom of the page reads
   the same way the top does.
   ========================================================= */

.cc-footer-brand .cc-site-footer__fallback-mark.cc-fmark svg.cc-fmark__svg,
.cc-site-footer .cc-site-footer__fallback-mark.cc-fmark svg.cc-fmark__svg {
	width: 100% !important;
	height: 100% !important;
	stroke: none !important;
	stroke-width: 0 !important;
	fill: none !important;
	display: block !important;
	overflow: visible !important;
}

/* The connector board is a second <svg> inside the same span, so the theme's
   27px icon sizing was clamping it too -- which is why its routes appeared to
   stop at the C instead of running out into the footer. */
.cc-footer-brand .cc-site-footer__fallback-mark.cc-fmark svg.cc-fbus,
.cc-site-footer .cc-site-footer__fallback-mark.cc-fmark svg.cc-fbus {
	width: 248px !important;
	height: 75px !important;
	max-width: none !important;
	min-width: 248px !important;
	stroke: none !important;
	stroke-width: 0 !important;
	fill: none !important;
	display: block !important;
	overflow: visible !important;
}

/* ---- The footer wordmark, matching the header ---- */
.cc-site-footer__wordmark {
	display: block !important;
	width: 218px !important;
	height: 37px !important;
	max-width: 100% !important;
	margin: 0 !important;
	border: 0 !important;
}

/* The brand name stays in the DOM for the footer's aria-labelledby target,
   but the artwork carries it visually. */
.cc-ftr-sr {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.cc-site-footer__brand-label { display: none !important; }

.cc-site-footer__brand { align-items: center !important; gap: 18px !important; }

/* ---- Connector board: anchored to the C's right edge, no JS needed ---- */
.cc-fbus {
	position: absolute;
	left: 100%;
	top: 50%;
	/* Fixed px rather than percentage calc: the mark is a known 56px wide, so
	   460 viewBox units at the same scale is 248px and 140 units is 75px. The
	   percentage form resolved inconsistently and collapsed the board to the
	   mark's own width. */
	width: 248px;
	height: 75px;
	max-width: none;
	transform: translateY(-50%);
	pointer-events: none;
	overflow: visible;
	z-index: 0;
}

.cc-fbus__trace {
	fill: none;
	stroke: rgba(168, 220, 248, 0.42);
	stroke-width: 2.6;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.cc-fbus__node {
	fill: #10293c;
	stroke: rgba(176, 220, 248, 0.44);
	stroke-width: 1.9;
}

.cc-fbus__via { fill: rgba(176, 218, 246, 0.3); }

/* They conduct only as part of the single footer event. */
.cc-fmark.is-charged .cc-fbus__node {
	animation: ccFtrBusNode 900ms linear 1 both;
	animation-delay: var(--s, 300ms);
}

@keyframes ccFtrBusNode {
	0%, 24% { fill: #10293c; stroke: rgba(176, 220, 248, 0.44); }
	42% { fill: #e4f7ff; stroke: #ffffff; }
	74% { fill: #10293c; stroke: rgba(176, 220, 248, 0.44); }
	100% { fill: #10293c; stroke: rgba(176, 220, 248, 0.44); }
}

.cc-fmark.is-charged .cc-fbus__via {
	animation: ccFtrBusVia 900ms linear 1 both;
	animation-delay: var(--s, 300ms);
}

@keyframes ccFtrBusVia {
	0%, 24% { fill: rgba(176, 218, 246, 0.3); }
	42% { fill: #dff5ff; }
	74% { fill: rgba(176, 218, 246, 0.3); }
	100% { fill: rgba(176, 218, 246, 0.3); }
}

@media (max-width: 620px) {
	.cc-site-footer__wordmark { width: 176px !important; height: 30px !important; }
	.cc-site-footer__brand { gap: 14px !important; }
	.cc-fbus { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
	.cc-fmark.is-charged .cc-fbus__node,
	.cc-fmark.is-charged .cc-fbus__via { animation: none !important; }
}

/* =========================================================
   FOOTER BOARD — the C's own network, radiating right and down

   Same construction language as the header: 45/90-degree routing, primaries
   off the C's I/O pads, branches at junctions, a quieter far field, dormant
   texture, vias and component footprints. The pattern itself is unique to the
   footer -- the header fans out sideways along a shallow band, while this one
   splits into a rightward group and a downward group that works its way to the
   bottom of the page.

   It is anchored to the C, not to the footer, because the mark's offset moves
   from 54px at desktop to 14px on a phone. The same observer that fires the
   one-shot writes the C's measured right edge and centre into custom
   properties, so every route starts exactly on its I/O pads.

   Conduction is by node sequence, matching the header: pads and vias light in
   turn, ordered by their distance from the core, and the whole thing runs
   exactly once.
   ========================================================= */

.cc-site-footer { position: relative; }

.cc-site-footer__container { position: relative; z-index: 2; }

.cc-fpcb {
	position: absolute;
	inset: 0;
	z-index: 1;
	overflow: hidden;
	pointer-events: none;
	contain: paint;
}

.cc-fpcb__net {
	position: absolute;
	left: var(--cc-fcore-r, 110px);
	top: calc(var(--cc-fcore-y, 175px) - 120px);
	width: 1500px;
	height: 900px;
	max-width: none;
	overflow: visible;
}

/* ---- Static board ---- */
.cc-fpcb__trace {
	fill: none;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.cc-fpcb__trace--primary { stroke: rgba(168, 220, 248, 0.42); stroke-width: 2.6; }
.cc-fpcb__trace--branch  { stroke: rgba(154, 206, 238, 0.3); stroke-width: 2; }
.cc-fpcb__trace--far     { stroke: rgba(142, 194, 228, 0.2); stroke-width: 1.7; }

.cc-fpcb__dorm {
	fill: none;
	stroke: rgba(134, 186, 222, 0.12);
	stroke-width: 1.4;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.cc-fpcb__comp {
	fill: rgba(20, 44, 64, 0.42);
	stroke: rgba(150, 200, 232, 0.22);
	stroke-width: 1.3;
}

.cc-fpcb__node--pad {
	fill: #10293c;
	stroke: rgba(178, 222, 250, 0.46);
	stroke-width: 1.9;
}

.cc-fpcb__node--via {
	fill: rgba(176, 218, 246, 0.32);
	stroke: none;
}

/* ---- The single firing: nodes light in sequence, outward ---- */
.cc-site-footer.is-charged .cc-fpcb__node--pad {
	animation: ccFPadHit 820ms linear 1 both;
	animation-delay: var(--s, 500ms);
}

@keyframes ccFPadHit {
	0%, 26% { fill: #10293c; stroke: rgba(178, 222, 250, 0.46); stroke-width: 1.9; }
	46% { fill: #e4f7ff; stroke: #ffffff; stroke-width: 2.5; }
	78% { fill: #10293c; stroke: rgba(178, 222, 250, 0.46); stroke-width: 1.9; }
	100% { fill: #10293c; stroke: rgba(178, 222, 250, 0.46); stroke-width: 1.9; }
}

.cc-site-footer.is-charged .cc-fpcb__node--via {
	animation: ccFViaHit 820ms linear 1 both;
	animation-delay: var(--s, 500ms);
}

@keyframes ccFViaHit {
	0%, 26% { fill: rgba(176, 218, 246, 0.32); }
	46% { fill: #dff5ff; }
	78% { fill: rgba(176, 218, 246, 0.32); }
	100% { fill: rgba(176, 218, 246, 0.32); }
}

/* ---- Responsive: explicit sizes, no percentage calc ---- */
@media (max-width: 1100px) {
	.cc-fpcb__net {
		width: 1080px;
		height: 648px;
		top: calc(var(--cc-fcore-y, 95px) - 86px);
	}
}

@media (max-width: 620px) {
	.cc-fpcb__net {
		width: 750px;
		height: 450px;
		top: calc(var(--cc-fcore-y, 78px) - 60px);
	}

	/* Phone keeps the core's own routes; the far field drops out. */
	.cc-fpcb__trace--far,
	.cc-fpcb__dorm,
	.cc-fpcb__comp {
		display: none !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cc-site-footer.is-charged .cc-fpcb__node--pad,
	.cc-site-footer.is-charged .cc-fpcb__node--via {
		animation: none !important;
	}
}

@media print {
	.cc-fpcb { display: none !important; }
}
