.footer { margin: 0; background: #fff; padding: 0 0 26px; }
.footer__line { height: 1px; background: rgba(27,27,27,.2); margin-bottom: 28px; }

/* CTA перед футером (на всех страницах, кроме «Контактов») */
.footer-cta { padding: 40px 0 28px; }
.footer .footer-cta h2 { margin: 0 0 12px; font-size: 24px; font-weight: 600; line-height: 1.2; }
.footer .footer-cta p { margin: 0 0 24px; font-size: 14px; line-height: 1.45; color: #1b1b1b; }
.footer .footer-cta .btn {
	min-height: 36px;
	padding: 8px 18px;
	border-radius: var(--r-pill);
	font-size: 13px;
}

.footer__grid { display: grid; grid-template-columns: 1.15fr 1.6fr 1.05fr .75fr; gap: 48px; align-items: start; }
.footer__brand img { width: 92px; height: 27px; margin-bottom: 44px; }
.footer__title { font-weight: 600; margin-bottom: 15px; }
.footer__title--spaced { margin-top: 42px; }
.footer p { font-size: 14px; line-height: 1.65; margin: 0 0 20px; }
.footer small { color: #717171; }
.footer__menu { display: flex; flex-direction: column; gap: 14px; }
.footer__menu a { font-size: 14px; }
.footer__social { display: flex; gap: 12px; }
.footer__social a { width: 50px; height: 50px; display: grid; place-items: center; border-radius: 50%; background: var(--c-accent); color: #fff; }
.footer__social a:hover { color: #fff; background: var(--c-accent-dark); }
.footer__map { width: 100%; height: 457px; object-fit: cover; margin-top: 36px; border: 0; display: block; border-radius: 0 0 28px 28px; }
.footer__bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 42px; font-size: 12px; color: #999; }
.footer__bottom a { color: #999; }

@media (max-width: 900px) {
	.footer__grid { grid-template-columns: repeat(2, 1fr); }
	.footer__map { height: 320px; }
}
@media (max-width: 560px) {
	.footer__grid { grid-template-columns: 1fr; gap: 30px; }
	.footer__brand img { margin-bottom: 26px; }
	.footer__title--spaced { margin-top: 24px; }
	.footer__map { height: 240px; }
	.footer__bottom { flex-direction: column; }
}

/* Контакты: только карта и нижняя строка */
.footer--contacts { padding-top: 0; padding-bottom: 24px; }
.footer--contacts .footer__map {
	margin-top: 0;
	height: 540px;
	border-radius: 24px 24px 0 0;
}
.footer--contacts .footer__bottom { margin-top: 22px; }
@media (max-width: 900px) {
	.footer--contacts .footer__map { height: 360px; }
}
@media (max-width: 560px) {
	.footer--contacts .footer__map { height: 260px; }
}

@media (max-width: 700px) {
	.footer-cta { padding: 32px 0 24px; }
}
