.zn-site-footer {
	--zn-footer-brown: #b2654a;
	--zn-footer-sand: #ffc785;
	--zn-footer-gray: #5a5249;
	--zn-footer-white: #fff;
	padding: clamp(4rem, 8vw, 7rem) max(1.25rem, calc((100vw - 78rem) / 2)) 0;
	background: #ffdeb8;
	color: var(--zn-footer-gray);
}

.zn-site-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 2.75rem;
	width: min(100%, 78rem);
	margin-inline: auto;
}

.zn-site-footer p,
.zn-site-footer a,
.zn-site-footer h2 {
	color: inherit;
}

.zn-site-footer__brand p {
	max-width: 30rem;
	margin: 0 0 0.9rem;
	font-size: 0.92rem;
	line-height: 1.7;
}

.zn-site-footer__logo-link {
	display: inline-block;
	margin-bottom: 1.25rem;
}

.zn-site-footer__logo {
	display: block;
	width: clamp(9rem, 17vw, 12.5rem);
	height: auto;
	filter: none;
}

.zn-site-footer__logo-link:focus-visible {
	outline: 0.1875rem solid var(--zn-footer-brown);
	outline-offset: 0.35rem;
}

.zn-footer-column h2 {
	margin: 0 0 1.25rem;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.zn-footer-column ul {
	display: grid;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.zn-footer-column a,
.zn-site-footer__bottom a {
	position: relative;
	display: inline-block;
	font-size: 0.9rem;
	line-height: 1.45;
	text-decoration: none;
}

.zn-footer-column a::after,
.zn-site-footer__bottom a::after {
	position: absolute;
	right: 0;
	bottom: -0.2rem;
	left: 0;
	height: 0.1rem;
	background: var(--zn-footer-brown);
	content: '';
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 220ms ease;
}

.zn-footer-column a:hover,
.zn-footer-column a:focus-visible,
.zn-site-footer__bottom a:hover,
.zn-site-footer__bottom a:focus-visible {
	color: var(--zn-footer-brown);
}

.zn-footer-column a:hover::after,
.zn-footer-column a:focus-visible::after,
.zn-site-footer__bottom a:hover::after,
.zn-site-footer__bottom a:focus-visible::after {
	transform: scaleX(1);
	transform-origin: left;
}

.zn-footer-column a:focus-visible,
.zn-site-footer__bottom a:focus-visible {
	outline: 0.1875rem solid var(--zn-footer-brown);
	outline-offset: 0.3rem;
}

.zn-footer-column .zn-footer-column__social-title {
	margin-top: 2rem;
	margin-bottom: 0.75rem;
}

.zn-footer-column .zn-footer-social-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
}

.zn-social-icon {
	display: grid;
	place-items: center;
	width: 2.35rem;
	height: 2.35rem;
	border: 1px solid color-mix(in srgb, var(--zn-footer-brown) 48%, transparent);
	border-radius: 50%;
	background: color-mix(in srgb, var(--zn-footer-white) 26%, transparent);
	color: var(--zn-footer-brown);
}

.zn-social-icon svg {
	width: 1.2rem;
	height: 1.2rem;
	fill: currentColor;
}

.zn-social-icon svg :is(rect, circle) {
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
}

.zn-site-footer__bottom {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	width: min(100%, 78rem);
	margin: clamp(3.5rem, 7vw, 6rem) auto 0;
	padding-block: 1.5rem;
	border-top: 0.0625rem solid rgba(90, 82, 73, 0.24);
}

.zn-site-footer__bottom p,
.zn-site-footer__bottom a {
	margin: 0;
	font-size: 0.78rem;
}

@media (max-width: 39.99rem) {
	.zn-site-footer {
		padding: 2.75rem 1rem 0;
	}

	.zn-site-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.65rem 1.25rem;
	}

	.zn-site-footer__brand,
	.zn-footer-column--information-social {
		grid-column: 1 / -1;
	}

	.zn-footer-column--information-social {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.25rem;
	}

	.zn-footer-column--information-social .zn-footer-column__social-title {
		margin-top: 0;
	}

	.zn-site-footer__logo-link {
		margin-bottom: 0.9rem;
	}

	.zn-site-footer__logo {
		width: 8.5rem;
	}

	.zn-site-footer__brand p {
		margin-bottom: 0.55rem;
		font-size: 0.84rem;
		line-height: 1.55;
	}

	.zn-footer-column h2 {
		margin-bottom: 0.85rem;
	}

	.zn-footer-column ul {
		gap: 0.55rem;
	}

	.zn-footer-column a {
		font-size: 0.82rem;
	}

	.zn-footer-column .zn-footer-social-list {
		gap: 0.4rem;
	}

	.zn-social-icon {
		width: 2rem;
		height: 2rem;
	}

	.zn-site-footer__bottom {
		margin-top: 2rem;
		padding-block: 1rem;
	}
}

@media (min-width: 40rem) {
	.zn-site-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.zn-site-footer__bottom {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}
}

@media (min-width: 64rem) {
	.zn-site-footer__grid {
		grid-template-columns: minmax(0, 1.65fr) repeat(3, minmax(0, 1fr));
		gap: clamp(2rem, 5vw, 5rem);
	}
}

@media (prefers-reduced-motion: reduce) {
	.zn-footer-column a::after,
	.zn-site-footer__bottom a::after {
		transition-duration: 0.01ms;
	}
}
