/* Shared footer: original mosaic artwork, softly joined to the indigo surface. */
.site-footer {
	isolation: isolate;
	padding: 4.875rem 0 1.5rem;
	background: radial-gradient(ellipse at 20% 0, #183a4d 0, #102e40 38%, #092536 90%);
	box-shadow: 0 -7px 22px rgba(9, 26, 36, .15);
	color: #cdd7db;
}

.site-footer__mosaic {
	z-index: -1;
	height: 4.375rem;
	background: var(--impc-asset-b40627b9727a, url("../images/metropolis-mosaic.webp")) center 92% / 100% auto no-repeat;
	opacity: .92;
	filter: brightness(1.65) saturate(.82);
	-webkit-mask-image: linear-gradient(180deg, #000 0, #000 10%, rgba(0, 0, 0, .7) 25%, transparent 55%);
	mask-image: linear-gradient(180deg, #000 0, #000 10%, rgba(0, 0, 0, .7) 25%, transparent 55%);
	pointer-events: none;
}

.site-footer .footer-grid {
	grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, .92fr);
	align-items: start;
	gap: clamp(1.5rem, 3vw, 3rem);
}

.site-footer .footer-brand {
	grid-column: span 2;
	max-width: 32rem;
	grid-template-columns: 76px minmax(0, 1fr);
	gap: .9rem 1.1rem;
	align-items: center;
}

.footer-brand__mark {
	display: block;
	width: 76px;
	text-decoration: none;
}

.footer-brand__mark img {
	display: block;
	width: 76px;
	height: 84px;
	object-fit: contain;
	filter: brightness(0) invert(.91) sepia(.18);
	opacity: .94;
}

.site-footer .footer-title {
	margin: 0 0 .45rem;
	font-size: .95rem;
	line-height: 1.55;
	font-weight: 400;
	color: #f0e7d7;
}

.site-footer .footer-brand p:not(.footer-title),
.site-footer .footer-column p,
.site-footer .footer-column a {
	font-size: .82rem;
	line-height: 1.85;
}

.site-footer .footer-brand p:not(.footer-title) {
	font-size: .76rem;
	color: #afc0c9;
}

.site-footer .footer-column:last-child {
	display: block;
}

.site-footer .footer-column h2 {
	margin: .25rem 0 1rem;
	color: #d8bf87;
	font-size: .75rem;
	letter-spacing: .045em;
}

.site-footer .footer-column p + p {
	margin-top: .7rem;
}

.site-footer a {
	text-decoration: none;
	text-underline-offset: .22em;
	transition: color .18s ease, border-color .18s ease, background-color .18s ease;
}

.site-footer a:hover {
	color: #e5c58a;
	text-decoration: underline;
}

.site-footer a:focus-visible {
	outline: 2px solid #e5c58a;
	outline-offset: 5px;
}

.site-footer .footer-social {
	grid-column: 2;
	gap: .65rem;
	margin-top: .2rem;
}

.site-footer .footer-social a {
	width: 2.35rem;
	height: 2.35rem;
	border-color: rgba(218, 193, 139, .3);
	color: #d9e0e3;
}

.site-footer .footer-social a:hover {
	background: rgba(219, 190, 132, .1);
	border-color: #d8bf87;
	text-decoration: none;
}

.footer-social svg {
	width: 16px;
	height: 16px;
	fill: currentColor;
}

.site-footer .footer-bottom {
	align-items: center;
	margin-top: 2.25rem;
	padding-top: 1.15rem;
	border-top-color: rgba(216, 191, 135, .19);
	font-size: .7rem;
	line-height: 1.7;
	color: #aebfc8;
}

@media (max-width: 1100px) {
	.site-footer .footer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2.1rem 2.75rem;
	}

	.site-footer .footer-brand {
		grid-column: 1 / -1;
		max-width: 27rem;
	}
}

@media (max-width: 560px) {
	.site-footer {
		padding-top: 4.35rem;
	}

	.site-footer__mosaic {
		height: 3.75rem;
	}

	.site-footer .footer-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.6rem;
		padding-inline: .4rem;
	}

	.site-footer .footer-column {
		padding-top: 1.4rem;
		border-top: 1px solid rgba(216, 191, 135, .13);
	}

	.site-footer .footer-column h2 {
		margin-bottom: .65rem;
	}

	.site-footer .footer-bottom {
		align-items: flex-start;
		gap: .65rem;
		padding-inline: .4rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.site-footer a {
		transition: none;
	}
}

/* 1.2.10: compact donation folder tab, aligned with the footer logo. */
.impc-footer-shell { margin-top: 2.75rem; }
.impc-support { position: relative; z-index: 1; background: #183a4d; }
.impc-support__disclosure { position: relative; }
.impc-support__tab {
	position: absolute;
	bottom: 100%;
	left: 0;
	z-index: 2;
	width: max-content;
	max-width: 100%;
	min-height: 35px;
	padding: 7px 23px 6px;
	border: 2px solid var(--impc-gold);
	border-bottom: 0;
	border-radius: 12px 12px 0 0;
	background: #183a4d;
	color: #f3d9a6;
	font-family: Arial, sans-serif;
	font-size: .875rem;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: .025em;
	list-style: none;
	cursor: pointer;
	overflow-wrap: anywhere;
}
.impc-support__tab::-webkit-details-marker { display: none; }
.impc-support__tab::marker { content: ''; }
.impc-support__tab::after { content: ''; position: absolute; inset: auto 0 -3px; height: 5px; background: #183a4d; }
.impc-support__tab:hover { color: #fffdfa; }
.impc-support__tab:focus-visible { outline: 3px solid var(--impc-gold); outline-offset: 4px; }
.impc-support__panel { margin: 0; padding: clamp(1.4rem, 3vw, 2.5rem); background: var(--impc-paper); color: var(--impc-ink); border-top: 3px solid var(--impc-gold); }
.impc-support__panel h2 { margin: 0 0 1.5rem; color: var(--impc-burgundy); font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.3; font-weight: 400; }
.impc-support__columns { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(14rem, 1fr); gap: clamp(1.5rem, 3vw, 2.5rem); align-items: start; }
.impc-support__copy p { margin: 0 0 1rem; font-size: 1.0625rem; line-height: 1.75; }
.impc-support__copy p:last-child { margin-bottom: 0; }
.impc-support__bank { padding: 1.5rem; background: var(--impc-white); border-top: 2px solid var(--impc-gold); min-width: 0; }
.impc-support__bank h3 { margin: 0 0 1rem; font: 700 1.25rem/1.4 Arial, sans-serif; color: var(--impc-blue); }
.impc-support__bank p { margin: 0 0 1rem; font-size: 1rem; line-height: 1.6; }
.impc-support__bank p:last-child { margin-bottom: 0; }
.impc-support__bank .impc-support__label { font: 400 .875rem/1.5 Arial, sans-serif; color: var(--impc-ink-soft); margin-bottom: .5rem; }
.impc-support__iban { font-family: ui-monospace, monospace; overflow-wrap: anywhere; user-select: all; }
.impc-support__pending { padding-top: .8rem; border-top: 1px solid var(--impc-line); }
.impc-support__pending a { color: var(--impc-burgundy); text-decoration: underline; text-underline-offset: .2em; }
@media (max-width: 700px) { .impc-support__columns { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) {
	.impc-support__alignment { padding-inline: .4rem; }
	.impc-support__tab { padding: 8px 18px; font-size: .8125rem; }
}
@media (pointer: coarse) { .impc-support__tab::before { content: ''; position: absolute; inset: -5px 0; } }
.impc-support__panel { overflow-wrap: anywhere; }
