@layer components {
	.klt-site-footer {
		background: var(--klt-footer-background, color-mix(in srgb, var(--klt-color-bg, Canvas) var(--klt-opacity, 76%), transparent));
		color: var(--klt-color-text, CanvasText);
	}

	.klt-site-footer__inner,
	.klt-site-footer__groups {
		display: grid;
	}

	.klt-site-footer__inner {
		grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
	}

	.klt-site-footer__groups {
		grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
	}

	.klt-site-footer__group {
		display: grid;
		align-content: start;
	}

	.klt-site-footer__groups .klt-nav__list,
	.klt-site-footer__groups .klt-utility-nav__list,
	.klt-site-footer__groups .klt-footer-nav__list {
		display: grid;
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.klt-site-footer__legal {
		display: flex;
		grid-column: 1 / -1;
		flex-wrap: wrap;
		justify-content: space-between;
	}

	.klt-site-footer--kiro-shell {
		position: relative;
	}

	.klt-site-footer__dock {
		position: fixed;
		z-index: var(--klt-z-sticky, 30);
		right: var(--klt-footer-dock-edge, var(--klt-space-s));
		bottom: var(--klt-footer-dock-edge, var(--klt-space-s));
		left: var(--klt-footer-dock-edge, var(--klt-space-s));
		max-width: var(--klt-footer-dock-width, 82rem);
		margin-inline: auto;
		padding: var(--klt-space-xs) var(--klt-space-s);
		background: var(--klt-footer-dock-background, Canvas);
		visibility: hidden;
		opacity: 0;
		pointer-events: none;
		transform: translateY(calc(100% + var(--klt-footer-dock-edge, var(--klt-space-s))));
	}

	.klt-site-footer--kiro-shell.is-dock-ready .klt-site-footer__dock {
		transition: opacity 200ms ease, transform 200ms cubic-bezier(0.22, 1, 0.36, 1), visibility 200ms;
	}

	.klt-site-footer--kiro-shell.is-dock-active .klt-site-footer__dock {
		visibility: visible;
		opacity: 1;
		pointer-events: auto;
		transform: translateY(0);
	}

	.klt-site-footer__dock-inner,
	.klt-footer-compact-nav__list {
		display: flex;
		align-items: center;
	}

	.klt-site-footer__dock-inner {
		gap: var(--klt-space-m);
		justify-content: space-between;
	}

	.klt-footer-compact-nav__list {
		flex-wrap: wrap;
		gap: var(--klt-space-s);
		margin: 0;
		padding: 0;
		list-style: none;
	}

	@media (max-width: 48rem) {
		.klt-site-footer__inner {
			grid-template-columns: minmax(0, 1fr);
		}

		.klt-site-footer__dock-inner {
			gap: var(--klt-space-s);
		}

		.klt-footer-compact-nav {
			display: none;
		}
	}

	@media (prefers-reduced-motion: reduce) {
		.klt-site-footer--kiro-shell.is-dock-ready .klt-site-footer__dock {
			transition: none;
		}
	}

}
