/**
 * Site footer — Figma Footer.
 */

.site-footer {
	--footer-bg: var(--color-navy);
	--footer-text: var(--color-white);
	--footer-muted: #c3c3c3;
	--footer-contact: var(--color-deck);
	--footer-border: rgba(195, 195, 195, 0.5);
	--footer-social-bg: var(--color-teal);
	--footer-pad-x: var(--container-pad-inline);
	--footer-pad-y: clamp(2.5rem, 5vw, 4.25rem);
	--footer-gap: clamp(2rem, 4vw, 2.6875rem);
	--footer-brand-max: calc(24.1875rem * var(--container-content-scale));
	--footer-logo-max: calc(21.625rem * var(--container-content-scale));
	--footer-contact-max: calc(19.25rem * var(--container-content-scale));
	--footer-nav-max: calc(51rem * var(--container-content-scale));
	--footer-legal-max: calc(58rem * var(--container-content-scale));

	background-color: var(--footer-bg);
	color: var(--footer-text);
	border-top: 5px solid var(--color-white);
}

.site-footer__inner {
	width: 100%;
	max-width: var(--container-outer-max);
	margin-inline: auto;
	padding-inline: var(--footer-pad-x);
}

.site-footer__main {
	display: flex;
	flex-direction: column;
	gap: var(--footer-gap);
	padding-block: var(--footer-pad-y);
}
 
.site-footer__brand {
	display: flex;
	flex-direction: column;
	gap: clamp(2rem, 4vw, 3.4375rem);
	max-width: var(--footer-brand-max);
	min-width: 0;
}

.site-footer__logo-link {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
	color: inherit;
	max-width: var(--footer-logo-max);
}

.site-footer__logo {
	display: block;
	width: auto;
	max-width: 100%;
	/* SVG logo has no WP width/height meta — height:auto alone collapses to 0. */
	height: clamp(5.8125rem, 8vw, 7.5rem) !important;
	object-fit: contain;
}

.site-footer__logo-text {
	font-family: var(--font-family-sans);
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--footer-text);
}

.site-footer__contact {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	max-width: var(--footer-contact-max);
}

.site-footer__contact-heading {
	margin: 0;
	font-family: var(--font-family-sans);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.4;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--footer-text);
}

.site-footer__contact-list {
	display: flex;
	flex-direction: column;
	gap: 1.125rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer__contact-item {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.site-footer__contact-icon {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 1.625rem;
	height: var(--icon-max-h, 1.625rem);
}

.site-footer__contact-icon img {
	display: block;
	width: auto;
	height: auto;
	max-height: var(--icon-max-h, 1.625rem);
}

.site-footer__contact-text {
	font-family: var(--font-family-sans);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
	color: var(--footer-contact);
	text-decoration: none;
}

a.site-footer__contact-text:hover,
a.site-footer__contact-text:focus-visible {
	color: var(--color-teal);
	outline: none;
}

.site-footer__socials {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.0625rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	border-radius: 0.25rem;
	background-color: var(--footer-social-bg);
	text-decoration: none;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.site-footer__social-link:hover,
.site-footer__social-link:focus-visible {
	opacity: 0.85;
	outline: none;
	transform: translateY(-1px);
}

.site-footer__social-icon {
	display: block;
	width: auto;
	height: auto;
	/* Header icons are light; darken for teal buttons. */
	filter: brightness(0) saturate(100%);
	opacity: 0.85;
}

.site-footer__description {
	margin: 0;
	font-family: var(--font-family-sans);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
	color: var(--footer-muted);
}

.site-footer__aside {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 2rem;
	flex: 1;
	min-width: 0;
}

.site-footer__nav {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(1.75rem, 4vw, 3.5rem);
	width: 100%;
	min-width: 0;
}

.site-footer__column {
	display: flex;
	flex-direction: column;
	gap: clamp(1.75rem, 3vw, 2.6875rem);
}

.site-footer__group {
	display: flex;
	flex-direction: column;
	gap: 1.125rem;
}

.site-footer__group-heading {
	margin: 0;
	font-family: var(--font-family-sans);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.4;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--footer-text);
	text-decoration: none;
}

a.site-footer__group-heading:hover,
a.site-footer__group-heading:focus-visible {
	color: var(--color-teal);
	outline: none;
}

.site-footer__links {
	display: flex;
	flex-direction: column;
	gap: 0.5rem; 
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer__link {
	font-family: var(--font-family-sans);
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.125;
	letter-spacing: 0.03em;
	color: var(--footer-muted);
	text-decoration: none;
}

.site-footer__link:hover,
.site-footer__link:focus-visible {
	color: var(--color-teal);
	outline: none;
}

.site-footer__accreditation {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	gap: 1.625rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer__accreditation-link {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
}

.site-footer__accreditation-image {
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
}

.site-footer__bottom {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	padding-block: 0.625rem;
	border-top: 0.5px solid var(--footer-border);
}

.site-footer__copyright {
	margin: 0;
	max-width: var(--footer-legal-max);
	font-family: var(--font-family-sans);
	font-size: 0.875rem;
	font-weight: 300;
	line-height: 1.735;
	color: var(--footer-text);
}

.site-footer__copyright-more {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.site-footer__copyright-more:hover,
.site-footer__copyright-more:focus-visible {
	color: var(--color-teal);
	outline: none;
}

.site-footer__legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer__legal-link {
	font-family: var(--font-family-sans);
	font-size: 0.875rem;
	font-weight: 300;
	line-height: 1;
	color: var(--footer-text);
	text-decoration: underline;
	text-underline-offset: 0.15em;
	white-space: nowrap;
}

.site-footer__legal-link:hover,
.site-footer__legal-link:focus-visible {
	color: var(--color-teal);
	outline: none;
}

@media (min-width: 48rem) {
	/*
	 * Tablet mid: logo full width, contact | description, then 3 nav columns.
	 */
	.site-footer__brand {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: start;
		gap: clamp(1.5rem, 3vw, 2.5rem) clamp(2rem, 4vw, 3.5rem);
		max-width: none;
		width: 100%;
	}

	.site-footer__logo {

		height: auto;
	}

	.site-footer__logo-link {
		grid-column: 1 / -1;
		max-width: var(--footer-logo-max);
	}

	.site-footer__contact {
		max-width: none;
	}

	.site-footer__description {
		max-width: none;
		min-width: 0;
	}

	.site-footer__nav {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: clamp(1.25rem, 2.5vw, 2rem);
		max-width: none;
		margin-left: 0;
	}

	.site-footer__bottom {
		flex-direction: row;
		align-items: center;
	}

	.site-footer__accreditation {
		justify-content: flex-end;
	}
}

@media (min-width: 64rem) {
	/* Wide tablet / laptop: brand | nav columns. */
	.site-footer__main {
		flex-direction: row;
		align-items: stretch;
		justify-content: space-between;
		gap: clamp(1.5rem, 3vw, 2.5rem);
	}

	.site-footer__brand {
		display: flex;
		flex: 0 0 17.5rem;
		flex-direction: column;
		gap: clamp(2rem, 4vw, 3.4375rem);
		max-width: 17.5rem;
		width: auto;
		padding-right: clamp(1.25rem, 2.5vw, 2rem);
		border-right: 1px solid var(--footer-border);
	}

	.site-footer__logo-link {
		grid-column: auto;
		max-width: var(--footer-logo-max);
	}

	.site-footer__contact {
		max-width: var(--footer-contact-max);
	}

	.site-footer__description {
		max-width: none;
	}

	.site-footer__aside {
		flex: 1 1 auto;
		min-width: 0;
		gap: clamp(1.75rem, 3vw, 2.5rem);
	}
	.site-footer__logo {

		height: auto;
	}
}

@media (min-width: 68.75rem) {
	.site-footer__main {
		gap: 0;
	}

	.site-footer__brand {
		flex: 0 0 var(--footer-brand-max);
		max-width: var(--footer-brand-max);
		padding-right: clamp(1.5rem, 3vw, 2.5rem);
	}

	.site-footer__aside {
		padding-left: clamp(1.5rem, 4vw, 3.5rem);
		min-height: 32.25rem;
	}

	.site-footer__nav {
		gap: clamp(2rem, 6vw, 7.75rem);
		max-width: var(--footer-nav-max);
		margin-left: auto;
	}
}

