/* Site footer: logo and about, link columns, contact, legal row. */
.ex.footer { padding-top: 72px; background: var(--ex-ink); border-top: 1px solid var(--ex-line); color: var(--ex-text-dim); font-size: 15px; }
.ex.footer .ftr-top { display: grid; grid-template-columns: 1.5fr 1fr 1fr .8fr 1.2fr; gap: 40px; padding-bottom: 56px; }
.ex.footer .ftr-brand .logo { margin-bottom: 20px; }
.ex.footer .ftr-brand .logo img { height: 62px; }
.ex.footer .ftr-brand p { max-width: 34ch; }
.ex.footer .ftr-col { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.ex.footer .ftr-col h3 { margin-bottom: 6px; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #fff; }
.ex.footer .ftr-col a:hover, .ex.footer .ftr-col a:focus-visible { color: #fff; }
.ex.footer .ftr-contact a { font-weight: 600; color: #fff; overflow-wrap: anywhere; }
.ex.footer .ftr-legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; padding: 22px 0 28px; border-top: 1px solid var(--ex-line); font-size: 14px; }
.ex.footer .ftr-legal nav { display: flex; flex-wrap: wrap; gap: 22px; }
.ex.footer .ftr-legal a:hover, .ex.footer .ftr-legal a:focus-visible { color: #fff; }

@media (max-width: 1100px) {
	.ex.footer .ftr-top { grid-template-columns: 1fr 1fr 1fr; }
	.ex.footer .ftr-brand { grid-column: span 3; }
}
@media (max-width: 640px) {
	.ex.footer { padding-top: 48px; padding-bottom: 72px; }
	.ex.footer .ftr-top { grid-template-columns: 1fr 1fr; gap: 32px 20px; }
	.ex.footer .ftr-brand, .ex.footer .ftr-contact { grid-column: span 2; }
	.ex.footer .ftr-brand .logo img { height: 50px; }
}
