.site-footer {
	position: relative;
	overflow: hidden;
	background: var(--color-black);
	color: var(--color-white);
	padding: 0 var(--gutter) var(--space-6);
}

.site-footer a {
	color: inherit;
}

/* ---------- background depth ---------- */

.site-footer__bg {
	position: absolute;
	inset: -10% -10%;
	z-index: 0;
	pointer-events: none;
	background:
		radial-gradient(circle at 22% 15%, rgba(255, 255, 255, 0.08), transparent 45%),
		radial-gradient(circle at 82% 75%, rgba(255, 255, 255, 0.05), transparent 50%),
		var(--color-black);
	will-change: transform;
}

.site-footer__bg::after {
	content: '';
	position: absolute;
	inset: 0;
	opacity: 0.05;
	mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.site-footer > *:not(.site-footer__bg) {
	position: relative;
	z-index: 1;
}

/* ---------- cta ---------- */
/* Osobny, pełnej szerokości blok na białym tle na samej górze stopki —
   celowo odcięty od ciemnego systemu poniżej (marginesy ujemne znoszą gutter stopki). */

.site-footer__cta {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 100vh;
	margin: 0 calc(-1 * var(--gutter));
	padding: clamp(var(--space-9), 6vw, var(--space-11)) var(--gutter);
	background: var(--color-white);
	color: var(--color-black);
}

.site-footer__cta-inner {
	max-width: var(--container-max);
	margin: 0 auto;
	text-align: center;
}

.site-footer__cta-title {
	margin: 0 0 var(--space-6);
	color: var(--color-black);
	font-family: var(--ff-heading);
	font-weight: 700;
	font-size: clamp(32px, 5vw, 64px);
	line-height: 1.1;
	letter-spacing: -0.01em;
}

.site-footer__cta-steps {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-8) 0;
	margin: 0 0 var(--space-6);
	padding: 0;
	list-style: none;
	color: var(--color-black);
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.site-footer__cta-steps li {
	position: relative;
	display: flex;
	align-items: center;
}

.site-footer__cta-steps li::before {
	content: '';
	width: 7px;
	height: 7px;
	margin-right: var(--space-3);
	background: var(--color-black);
}

.site-footer__cta-steps li:not(:last-child)::after {
	content: '';
	position: absolute;
	left: 50%;
	top: calc(100% + var(--space-3));
	width: 1px;
	height: var(--space-5);
	background: var(--color-neutral-300);
	transform: translateX(-50%);
}

.site-footer__cta-text {
	max-width: 52ch;
	margin: 0 auto var(--space-7);
	color: var(--color-neutral-500);
	font-size: clamp(16px, 1.2vw, 18px);
	line-height: 1.6;
}

.site-footer__cta-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: var(--space-5) var(--space-10);
	border: 1px solid var(--color-black);
	color: var(--color-black);
	font-weight: 600;
	font-size: 16px;
	text-decoration: none;
}

/* ---------- top columns ---------- */

.site-footer__top {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(var(--space-7), 6vw, var(--space-9));
	max-width: var(--container-max);
	margin: 0 auto;
	padding-bottom: clamp(var(--space-10), 8vw, var(--space-12));
}

/* kontakt zawsze pierwszy (lewo na desktopie, góra na mobile) — gradacja kontakt → menu → informacje */
.site-footer__col--contact {
	order: 1;
	grid-column: 1 / -1;
}

.site-footer__col--menu {
	order: 2;
}

.site-footer__col--info {
	order: 3;
}

.site-footer__label {
	margin: 0 0 var(--space-4);
	color: var(--color-neutral-300);
	font-family: var(--ff-body);
	font-weight: 500;
	font-size: clamp(11px, 1vw, 12px);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.site-footer__list {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	list-style: none;
}

.site-footer__list a {
	position: relative;
	display: inline-block;
	font-size: clamp(15px, 1.2vw, 16px);
	font-weight: 400;
	text-decoration: none;
	transition: opacity 0.3s var(--ease, ease);
}

.site-footer__list a:hover,
.site-footer__list a:focus-visible {
	opacity: 0.65;
}

.site-footer__list--contact a {
	font-size: clamp(20px, 2.6vw, 26px);
	font-weight: 500;
}

.site-footer__social {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	margin-top: var(--space-5);
	border: 1px solid var(--color-neutral-700);
	border-radius: 999px;
	transition: background-color 0.3s var(--ease, ease), border-color 0.3s var(--ease, ease);
}

.site-footer__social svg {
	fill: var(--color-white);
}

.site-footer__social:hover,
.site-footer__social:focus-visible {
	background: var(--color-white);
	border-color: var(--color-white);
}

.site-footer__social:hover svg,
.site-footer__social:focus-visible svg {
	fill: var(--color-black);
}

/* ---------- contact column ---------- */

.site-footer__col--contact {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

/* ---------- full-width statement banner ---------- */

.site-footer__statement-display {
	max-width: var(--container-max);
	margin: 0 auto;
	padding-top: clamp(100px, 14vw, 200px);
	padding-bottom: clamp(var(--space-9), 6vw, var(--space-11));
	color: var(--color-white);
	font-family: var(--ff-heading);
	font-weight: 700;
	font-size: clamp(28px, 4.5vw, 80px);
	line-height: 1.1;
	letter-spacing: -0.01em;
}

/* ---------- brand mark ---------- */

.site-footer__mark {
	display: flex;
	max-width: var(--container-max);
	margin: 0 auto;
	padding-bottom: clamp(var(--space-9), 6vw, var(--space-11));
	color: rgba(255, 255, 255, 0.16);
	font-family: var(--ff-heading);
	font-weight: 700;
	font-size: clamp(72px, 17vw, 340px);
	line-height: 0.85;
	letter-spacing: -0.03em;
	white-space: nowrap;
}

.site-footer__mark-mask {
	display: inline-block;
	overflow: hidden;
}

.site-footer__mark-char {
	display: inline-block;
	transform: translateY(105%);
	transition: transform 0.7s var(--ease, ease);
	transition-delay: calc(var(--char-index, 0) * 0.05s);
}

.site-footer__mark.is-visible .site-footer__mark-char {
	transform: translateY(0);
}

/* ---------- bottom bar ---------- */

.site-footer__bottom {
	max-width: var(--container-max);
	margin: 0 auto;
	padding-top: var(--space-5);
	text-align: center;
	border-top: 1px solid var(--color-neutral-800);
}

.site-footer__signature {
	margin: 0;
	color: var(--color-neutral-500);
	font-family: var(--ff-body);
	font-weight: 300;
	font-size: clamp(12px, 1vw, 13px);
	letter-spacing: 0.04em;
}

@media (min-width: 700px) {
	.site-footer__cta-steps {
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: center;
		gap: var(--space-2) 0;
	}

	.site-footer__cta-steps li:not(:last-child)::after {
		position: static;
		width: 48px;
		height: 1px;
		margin: 0 var(--space-4);
		transform: none;
	}

	.site-footer__top {
		grid-template-columns: repeat(3, 1fr);
	}

	.site-footer__col--contact {
		grid-column: auto;
	}

	.site-footer__mark {
		justify-content: flex-end;
	}

	.site-footer__bottom--right {
		text-align: right;
	}
}

@media (prefers-reduced-motion: reduce) {
	.site-footer__mark-char {
		transform: none;
		transition: none;
	}

	.site-footer__bg {
		transform: none !important;
	}
}
