/**
 * Global site footer.
 */

.site-footer {
	color: #dbe4ef;
	background: #07162a;
}

.site-footer__container {
	display: grid;
	width: min(100% - (2 * var(--ag-layout-gutter)), var(--ag-layout-wide));
	margin-inline: auto;
	gap: 2.5rem;
}

.site-footer > .site-footer__container {
	--ag-footer-block-start: clamp(3.5rem, 8vw, 5rem);

	padding-top: var(--ag-footer-block-start);
	padding-bottom: clamp(3rem, 7vw, 4rem);
}

.site-footer__brand,
.site-footer__navigation,
.site-footer__companies,
.site-footer__contact {
	min-width: 0;
}

.site-footer__brand {
	position: relative;
	padding-top: 5.5rem;
}

.footer-logo {
	position: absolute;
	top: calc(0rem - var(--ag-footer-block-start));
	left: 0;
	display: block;
	width: 5rem;
	height: auto;
}

.footer-logo img {
	display: block;
	width: 100%;
	height: auto;
}

.site-footer__brand p {
	max-width: 31rem;
	margin: 1.25rem 0 0;
	line-height: 1.7;
	overflow-wrap: anywhere;
}

.site-footer__brand .site-footer__brand-name {
	margin-top: 0;
	color: var(--ag-color-white);
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.3;
}

.site-footer__brand-name + p {
	margin-top: 0.875rem;
}

.site-footer__heading {
	margin: 0 0 1rem;
	color: var(--ag-color-white);
	font-size: 1rem;
	line-height: 1.4;
}

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

.footer-menu li + li,
.site-footer__companies li + li {
	margin-top: 0.5rem;
}

.footer-menu a,
.site-footer__contact a {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	color: #dbe4ef;
	line-height: 1.4;
	text-decoration: none;
	overflow-wrap: anywhere;
}

.footer-menu a:hover,
.site-footer__contact a:hover {
	color: var(--ag-color-white);
	text-decoration: underline;
	text-underline-offset: 0.25em;
}

.site-footer__companies li {
	line-height: 1.6;
	overflow-wrap: anywhere;
}

.site-footer__contact address {
	font-style: normal;
}

.site-footer__contact a {
	display: flex;
	width: fit-content;
}

.site-footer__contact p {
	max-width: 24rem;
	margin: 0.75rem 0 0;
	line-height: 1.65;
	overflow-wrap: anywhere;
}

.site-footer__bottom {
	border-top: 1px solid rgb(255 255 255 / 14%);
}

.site-footer__bottom .site-footer__container {
	padding-top: 1.25rem;
	padding-bottom: 1.25rem;
}

.site-footer__bottom p {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.5;
	overflow-wrap: anywhere;
}

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

	.site-footer__brand {
		grid-column: 1 / -1;
	}

	.site-footer__bottom .site-footer__container {
		grid-template-columns: 1fr;
	}
}

@media (min-width: 64rem) {
	.site-footer__container {
		grid-template-columns: minmax(16rem, 1.5fr) repeat(3, minmax(0, 1fr));
		gap: clamp(2rem, 4vw, 4rem);
	}

	.site-footer__brand {
		grid-column: auto;
	}
}
