/* SYPN site footer - Figma "Footer" (3001:4721) and the copyright band below it
   (3001:4722). Partial: Views/Partials/Site/Footer.cshtml */

.sypn-footer {
	background: var(--brand-asphalt-black);
	color: var(--neutral-white);
	font-family: var(--sypn-font);
}

.sypn-footer-columns {
	display: flex;
	gap: var(--sypn-space-md);
	align-items: flex-start;
	padding: 88px var(--sypn-gutter);
}

.sypn-footer-column {
	flex: 1 0 0;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: var(--sypn-space-xs);
}

.sypn-footer-column h2 {
	margin: 0;
	padding: 16px 0;
	border-bottom: 1px solid var(--neutral-white);
	font-size: 24px;
	font-weight: 700;
	line-height: 32px;
	color: var(--neutral-white);
}

.sypn-footer-column ul {
	display: flex;
	flex-direction: column;
	gap: var(--sypn-space-xs);
	list-style: none;
	margin: 0;
	padding: 0;
}

.sypn-footer-column li {
	display: flex;
}

.sypn-footer-column a {
	color: var(--neutral-white);
	font-size: 16px;
	line-height: 24px;
	text-decoration: none;
}

.sypn-footer-column a:hover {
	color: var(--neutral-white);
	text-decoration: underline;
}

/* ---------- Copyright band ---------- */

.sypn-footer-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sypn-space-xs);
	min-height: 76px;
	padding: 24px var(--sypn-gutter);
}

.sypn-footer-bar p {
	margin: 0;
	font-size: 16px;
	line-height: 24px;
}

.sypn-footer-external-icon {
	font-size: 14px;
	margin-left: 6px;
	vertical-align: -1px;
}

.sypn-social {
	display: flex;
	align-items: center;
	gap: 28px;
}

.sypn-social-icon {
	display: flex;
	color: var(--neutral-white);
}

.sypn-social-icon:hover {
	color: var(--neutral-white);
	opacity: 0.75;
}

.sypn-social-icon svg {
	width: 18px;
	height: 18px;
}

/* ---------- Back to top ---------- */

.btn-back-to-top {
	display: none;
	position: fixed;
	right: var(--sypn-space-sm);
	bottom: var(--sypn-space-sm);
	z-index: 1000;
	padding: 14px;
	box-shadow: 0 11px 33.5px -10px color-mix(in srgb, var(--brand-asphalt-black) 20%, transparent);
}

.btn-back-to-top.is-visible {
	display: inline-flex;
}

.btn-back-to-top-label {
	display: none;
}

.sypn-btn .btn-back-to-top-icon {
	font-size: 24px;
}

@media (min-width: 768px) {
	.btn-back-to-top {
		padding: 14px 16px;
	}

	.btn-back-to-top-label {
		display: inline;
	}

	.sypn-btn .btn-back-to-top-icon {
		font-size: 20px;
	}
}

/* ---------- Mobile ---------- */

@media (max-width: 991.98px) {
	.sypn-footer-columns {
		flex-direction: column;
		align-items: stretch;
		gap: var(--sypn-space-md);
		padding: 24px var(--sypn-gutter) 0;
	}

	.sypn-footer-column {
		flex: 0 0 auto;
	}

	.sypn-footer-column h2 {
		padding: 8px 0;
	}

	.sypn-footer-bar {
		flex-direction: column;
		align-items: stretch;
		gap: var(--sypn-space-sm);
		padding: 56px var(--sypn-gutter) 52px;
	}

	.sypn-social {
		justify-content: space-between;
	}

	.sypn-social-icon svg {
		width: 32px;
		height: 32px;
	}
}

/* ---------- Keyboard focus ---------- */

.sypn-footer-column a:focus-visible,
.sypn-social-icon:focus-visible {
	outline: 2px solid transparent;
	background: var(--utilities-focus);
	box-shadow: var(--sypn-focus-underline);
	color: var(--brand-asphalt-black);
	text-decoration: none;
	opacity: 1;
}
