/* Variables fallback (reuse existing if present in style.css) */
	:root {
		--footer-bg: rgb(52, 73, 94);
		--footer-bg-alt: #112232;
		--footer-text: #c2ccd4;
		--footer-heading: #ffffff;
		--footer-border: rgba(255,255,255,0.12);
		--footer-link: #c2ccd4;
		--footer-link-hover: #ffffff;
		--footer-accent: #ffffff;
		--footer-font-stack: 'Public Sans', sans-serif;
	}

	/* Remove any extra vertical space above/below the footer */
	.site-footer.footer-dark {
		/* Use tiled icon background with dark overlay so the image remains visible */
		background: linear-gradient(0deg, rgba(17, 34, 50, 0.45), rgba(17, 34, 50, 0.45)), url('../bg_shapes.png');
		background-repeat: no-repeat, repeat;
		background-position: 0 0, 0 0;
		background-size: auto, auto;
		color: var(--footer-text);
		font-family: var(--footer-font-stack);
		padding-top: 0;
		padding-bottom: 0;
	}

	.site-footer a {
		color: var(--footer-link);
		text-decoration: none;
	}

	.site-footer a:hover,
	.site-footer a:focus {
		color: var(--footer-link-hover);
	}

	/* --- EXACT MATCH TO THE PROVIDED SCREENSHOT --- */

	/* Main grid: 4 columns, strong horizontal rhythm, no extra vertical gap */
	.footer-widgets {
		display: grid;
		grid-template-columns: 370px 1.1fr 1fr 1fr;
		column-gap: 72px;
		row-gap: 0;
		align-items: start;
		padding: 72px 40px 56px 40px;
		max-width: 1440px;
		margin: 0 auto;
		background: none;
	}

	/* Brand column: logo, tagline, grid-art */
	.footer-brand {
		display: flex;
		flex-direction: column;
		gap: 28px;
		padding: 0;
	}
	.footer-logo {
		max-width: 180px;
		height: auto;
		margin-bottom: 18px;
	}
	.footer-tagline {
		margin: 0;
		font-size: 1.08rem;
		line-height: 1.6;
		color: var(--footer-text, #c2ccd4);
		max-width: 340px;
		opacity: 0.92;
	}

	/* Menu columns */
	.footer-heading {
		margin: 0 0 26px 0;
		font-size: 1.18rem;
		font-weight: 700;
		letter-spacing: 0.01em;
		color: var(--footer-heading, #fff);
	}
	.footer-heading::after {
		content: '';
		display: block;
		width: 36px;
		height: 3px;
		background: var(--footer-accent, #fff);
		margin-top: 2px;
		margin-bottom: 8px;
	}

	.footer-menu {
		list-style: none;
		margin: 0;
		padding: 0;
		display: flex;
		flex-direction: column;
		font-size: 1.01rem;
	}
	.footer-menu li {
		line-height: 1.7;
	}
	.footer-menu a {
		color: var(--footer-link, #c2ccd4);
		font-weight: 400;
		transition: color .18s;
	}
	.footer-menu a:hover,
	.footer-menu a:focus {
		color: var(--footer-link-hover, #fff);
		text-decoration: underline;
	}

	/* Address column */
	.footer-contact {
		padding: 0;
	}
	.footer-address {
		margin: 0;
		font-size: 1.01rem;
		line-height: 1.7;
		color: var(--footer-text, #c2ccd4);
	}
	.footer-address .addr-block {
		margin-bottom: 22px;
	}
	.footer-address .addr-block:last-child {
		margin-bottom: 0;
	}
	.footer-address span,
	.footer-address a {
		display: block;
		margin: 0 0 3px 0;
		word-break: break-word;
	}
	.footer-address a {
		color: var(--footer-link, #c2ccd4);
		transition: color .18s;
		font-weight: 500;
	}
	.footer-address a:hover {
		color: var(--footer-link-hover, #fff);
		text-decoration: underline;
	}

	/* Social icons row (if present) */
	.footer-social {
		list-style: none;
		padding: 0;
		margin: 24px 0 0 0;
		display: flex;
		gap: 12px;
	}
	.footer-social a {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		border: 1.5px solid var(--footer-border, rgba(255,255,255,0.18));
		color: var(--footer-link, #c2ccd4);
		font-size: 1rem;
		font-weight: 600;
		letter-spacing: 0.5px;
		background: none;
		transition: background .2s, color .2s, border-color .2s;
		border-radius: 0;
	}
	.footer-social a:hover,
	.footer-social a:focus {
		background: var(--footer-link-hover, #fff);
		color: var(--footer-bg, #0f1d2a);
		border-color: var(--footer-link-hover, #fff);
	}

	/* Copyright and credit row: tight, muted, left/right */
	.footer-bottom {
		border-top: 1px solid var(--footer-border, rgba(255,255,255,0.12));
		margin-top: 0;
		background: var(--footer-bg-alt, #112232);
	}
	.footer-bottom-inner {
		max-width: 1440px;
		margin: 0 auto;
		padding: 18px 40px 14px 40px;
		display: flex;
		justify-content: space-between;
		align-items: center;
		font-size: 0.97rem;
		color: var(--footer-text, #c2ccd4);
		letter-spacing: 0.01em;
	}
	.footer-bottom a {
		color: var(--footer-link, #c2ccd4);
		text-decoration: underline;
	}
	.footer-bottom a:hover {
		color: var(--footer-link-hover, #fff);
	}

	/* Responsive: 2 columns on medium, stacked on small */
	@media (max-width: 1100px) {
		.footer-widgets {
			grid-template-columns: 1fr 1fr;
			column-gap: 36px;
			row-gap: 40px;
			padding: 48px 24px 32px 24px;
			max-width: 100%;
		}
	}
	@media (max-width: 700px) {
		.footer-widgets {
			grid-template-columns: 1fr;
			row-gap: 32px;
			padding: 36px 12px 18px 12px;
		}
		.footer-bottom-inner {
			padding: 14px 12px 10px 12px;
			flex-direction: column;
			gap: 8px;
			align-items: flex-start;
		}
		.footer-brand,
		.footer-contact,
		.footer-links,
		.footer-programs {
			padding: 0;
		}
		.footer-logo {
			max-width: 120px;
		}
	}

	/* Accessibility focus outline */
	.site-footer a:focus-visible {
		outline: 2px solid var(--footer-accent);
		outline-offset: 2px;
	}
