/* ==========================================================================
   Site Footer & Policy Pages — footer styles
   Colours are overridden by the plugin settings through the custom properties
   below, so do not hard-code them elsewhere.
   ========================================================================== */

.cb-footer {
	--cb-footer-bg: #f5f1e8;
	--cb-footer-ink: #0b1f33;
	--cb-footer-accent: #1c6e8c;
	width: 100%;
	box-sizing: border-box;
	padding: clamp(56px, 7vw, 96px) clamp(22px, 5vw, 72px) 26px;
	background: var(--cb-footer-bg);
	color: var(--cb-footer-ink);
}

.cb-footer *,
.cb-footer *::before,
.cb-footer *::after {
	box-sizing: border-box;
}

.cb-footer__grid {
	display: grid;
	grid-template-columns: 1.35fr .88fr .96fr 1.15fr;
	gap: clamp(28px, 4vw, 64px);
	max-width: 1240px;
	margin: 0 auto;
}

.cb-footer__logo {
	display: block;
	width: min(230px, 80%);
	height: auto;
	margin: 0 0 22px;
}

.cb-footer__logo svg {
	display: block;
	width: 100%;
	height: auto;
}

.cb-footer__brandname {
	margin: 0 0 18px;
	font-size: 24px;
	font-weight: 700;
	letter-spacing: .02em;
	line-height: 1.2;
}

.cb-footer__tagline {
	max-width: 32ch;
	margin: 0;
	font-size: 18px;
	font-weight: 400;
	line-height: 1.55;
	letter-spacing: .005em;
	opacity: .68;
}

.cb-footer h3 {
	margin: 5px 0 18px;
	color: var(--cb-footer-accent);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
}

.cb-footer ul {
	display: grid;
	gap: 11px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.cb-footer a {
	color: var(--cb-footer-ink) !important;
	text-decoration: none !important;
	opacity: .76;
	font-size: 14px;
	line-height: 1.45;
}

.cb-footer a:hover,
.cb-footer a:focus {
	opacity: 1;
	color: var(--cb-footer-accent) !important;
}

.cb-footer address {
	margin: 0;
	font-style: normal;
	font-size: 14px;
	line-height: 1.75;
	opacity: .76;
	white-space: pre-line;
}

.cb-footer__email {
	display: inline-block;
	margin-top: 8px;
	overflow-wrap: anywhere;
}

.cb-footer__bottom {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	max-width: 1240px;
	margin: 48px auto 0;
	padding-top: 22px;
	border-top: 1px solid currentColor;
	font-size: 11px;
	letter-spacing: .08em;
	text-transform: uppercase;
	opacity: .58;
}

@media (max-width: 960px) {
	.cb-footer__grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 560px) {
	.cb-footer__grid {
		grid-template-columns: 1fr;
		gap: 34px;
	}
	.cb-footer__bottom {
		flex-direction: column;
	}
}
