.zbf { width: 100%; box-sizing: border-box; color: #111; }
.zbf *, .zbf *::before, .zbf *::after { box-sizing: border-box; }

.zbf .zbf-inner,
.zbf .zbf-bottom-inner {
	width: 100%; max-width: 1200px; margin: 0 auto; padding-left: 20px; padding-right: 20px;
}
.zbf .zbf-inner { padding-top: 60px; padding-bottom: 50px; }

/* Top area: brand column + link columns */
.zbf .zbf-top { display: flex; flex-wrap: wrap; gap: 30px; align-items: flex-start; }
.zbf .zbf-brand { flex: 0 0 33%; max-width: 33%; min-width: 0; }
.zbf .zbf-links {
	flex: 1 1 360px; min-width: 0; display: grid;
	grid-template-columns: repeat(var(--zbf-count, 4), minmax(0, 1fr)); gap: 24px 20px;
}
.zbf .zbf-brand:empty + .zbf-links { flex-basis: 100%; }

/* Brand */
.zbf .zbf-logo { display: inline-block; margin: 0 0 22px; line-height: 0; }
.zbf .zbf-logo img { display: block; width: 125px; max-width: 100%; height: auto; margin: 0; }
.zbf .zbf-about { margin: 0 0 20px; font-size: 13px; line-height: 1.6; color: #222; }
.zbf .zbf-contact { list-style: none; margin: 0; padding: 0; }
.zbf .zbf-contact li { margin: 0 0 20px; padding: 0; font-size: 13px; line-height: 1.45; color: #222; }
.zbf .zbf-contact li:last-child { margin-bottom: 0; }
.zbf .zbf-contact strong { font-weight: 700; color: #111; }
.zbf .zbf-contact a { color: inherit; text-decoration: none; transition: color .2s; }
.zbf .zbf-contact a:hover, .zbf .zbf-contact a:focus-visible { color: #1e9e3a; text-decoration: underline; }

/* Link columns */
.zbf .zbf-title { margin: 0 0 36px; padding: 0; font-size: 18px; line-height: 1.3; font-weight: 400; color: #111; text-transform: none; }
.zbf .zbf-list { list-style: none; margin: 0; padding: 0; }
.zbf .zbf-list li { margin: 0 0 18px; padding: 0; line-height: 1.4; }
.zbf .zbf-list li:last-child { margin-bottom: 0; }
.zbf .zbf-list a { font-size: 15px; color: #6b6b6b; text-decoration: none; transition: color .2s; }
.zbf .zbf-list a:hover, .zbf .zbf-list a:focus-visible { color: #1e9e3a; }

/* Bottom bar: the line spans the full width, the text lines up with the content */
.zbf .zbf-bottom { width: 100%; border-top: 1px solid #e6e6e6; }
.zbf .zbf-bottom-inner { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 20px; padding-top: 14px; padding-bottom: 14px; }
.zbf .zbf-copy, .zbf .zbf-bottom-right { margin: 0; font-size: 14px; line-height: 1.5; color: #111; }

/* Tablet and mobile */
@media (max-width: 1024px) {
	.zbf .zbf-inner { padding-top: 44px; padding-bottom: 36px; }
	.zbf .zbf-brand { flex-basis: 100%; max-width: 100%; }
	.zbf .zbf-links { flex-basis: 100%; }
}
@media (max-width: 767px) {
	.zbf .zbf-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.zbf .zbf-title { margin-bottom: 22px; font-size: 17px; }
	.zbf .zbf-list li { margin-bottom: 14px; }
	.zbf .zbf-bottom-inner { justify-content: flex-start; }
}
