.bp-site-footer {
	width: 100%;
	padding-block: var(--bp-space-16) var(--bp-space-8);
	background: var(--bp-color-primary);
	color: var(--bp-color-border-strong);
}

.bp-site-footer__inner,
.bp-site-footer :is(a, span, p, summary, h2) {
	overflow-wrap: anywhere;
}

.bp-site-footer__grid {
	display: grid;
	gap: var(--bp-space-8);
}

.bp-site-footer__brand {
	display: grid;
	align-content: start;
	gap: var(--bp-space-4);
}

.bp-site-footer__brand-name,
.bp-site-footer__group-title {
	margin: 0;
	color: var(--bp-color-text-inverse);
	font-size: var(--bp-font-size-body-large);
	line-height: var(--bp-line-height-heading);
}

.bp-site-footer__brand-name a {
	display: inline-flex;
	align-items: center;
	gap: var(--bp-space-1);
	color: inherit;
	text-decoration: none;
}

.bp-site-footer__brand-name i {
	width: var(--bp-space-2);
	height: var(--bp-space-2);
	border-radius: var(--bp-radius-pill);
	background: var(--bp-color-accent);
}

.bp-site-footer__brand p {
	max-width: 19rem;
	margin: 0;
}

.bp-site-footer__contact {
	display: grid;
	gap: var(--bp-space-2);
	font-style: normal;
}

.bp-site-footer a {
	color: var(--bp-color-text-inverse);
	text-underline-offset: var(--bp-space-1);
}

.bp-site-footer a:hover {
	color: var(--bp-color-accent);
}

.bp-site-footer__reply-note {
	color: var(--bp-color-text-inverse);
	font-size: var(--bp-font-size-small);
}

.bp-site-footer__group {
	border-block-end: 1px solid var(--bp-color-secondary);
}

.bp-site-footer__summary {
	display: flex;
	min-height: var(--bp-target-min);
	align-items: center;
	justify-content: space-between;
	gap: var(--bp-space-4);
	color: var(--bp-color-text-inverse);
	font-size: var(--bp-font-size-body-large);
	font-weight: var(--bp-font-weight-bold);
	cursor: pointer;
	list-style: none;
}

.bp-site-footer__summary::-webkit-details-marker {
	display: none;
}

.bp-site-footer__summary::after {
	content: "+";
	color: var(--bp-color-accent);
	font-size: var(--bp-font-size-body-large);
}

.bp-site-footer__disclosure[open] > .bp-site-footer__summary::after {
	content: "−";
}

.bp-site-footer__summary:focus-visible,
.bp-site-footer a:focus-visible {
	border-radius: var(--bp-radius-sm);
}

.bp-site-footer__group-title {
	display: none;
}

.bp-site-footer__disclosure[open] + .bp-site-footer__links {
	display: grid;
}

.bp-site-footer__links {
	display: none;
	padding-block: var(--bp-space-3) var(--bp-space-5);
}

.bp-site-footer__links ul,
.bp-site-footer__legal ul {
	display: grid;
	gap: var(--bp-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.bp-site-footer__links a,
.bp-site-footer__links span,
.bp-site-footer__legal {
	font-size: var(--bp-font-size-small);
}

.bp-site-footer__links a {
	display: inline-block;
	min-height: var(--bp-target-min);
	padding-block: var(--bp-space-2);
}

.bp-site-footer a.bp-site-footer__action {
	color: var(--bp-color-accent);
	font-weight: var(--bp-font-weight-bold);
}

.bp-site-footer__unavailable {
	color: var(--bp-color-border-strong);
}

.bp-site-footer__legal {
	display: grid;
	gap: var(--bp-space-4);
	margin-block-start: var(--bp-space-8);
	padding-block-start: var(--bp-space-5);
	border-block-start: 1px solid var(--bp-color-secondary);
}

.bp-site-footer__legal ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--bp-space-3) var(--bp-space-5);
}

@media (min-width: 48rem) {
	.bp-site-footer {
		padding-block-start: var(--bp-space-20);
	}

	.bp-site-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--bp-space-10) var(--bp-space-16);
	}

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

	.bp-site-footer__group {
		border-block-end: 0;
	}

	.bp-site-footer__disclosure {
		display: none;
	}

	.bp-site-footer__group > .bp-site-footer__links {
		display: grid;
		padding-block: 0;
	}

	.bp-site-footer__group-title {
		display: block;
		margin-block-end: var(--bp-space-4);
	}

	.bp-site-footer__legal {
		grid-template-columns: auto minmax(0, 1fr);
		align-items: start;
	}

	.bp-site-footer__legal ul {
		justify-content: flex-end;
	}
}

@media (min-width: 64rem) {
	.bp-site-footer__grid {
		grid-template-columns: minmax(14rem, 1.35fr) repeat(3, minmax(9rem, 1fr)) minmax(10rem, 1fr);
		gap: var(--bp-space-8);
	}

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