.site-footer { padding-top: 34px; background: #fff; color: var(--pmsl-text); font-size: 14px; }
.footer-grid { display: grid; gap: 44px; padding-bottom: 32px; grid-template-columns: 190px .9fr 1.15fr 1.75fr 1fr; }
.footer-logo img { width: var(--pmsl-logo-width); height: auto; object-fit: contain; }
.site-footer h2 { margin-bottom: 12px; font: 700 14px/1.3 var(--font-body); letter-spacing: 0; }
.site-footer li, .site-footer a, .site-footer address, .site-footer p { font-size: 14px; }
.site-footer li { line-height: 1.7; }
.site-footer a:hover { color: var(--pmsl-blue); }
.pmsl-footer-links { display: flex; flex-direction: column; gap: 5px; }
.pmsl-footer-links li { margin: 0; line-height: 1.5; }
.footer-contact { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; }
.pmsl-footer-contact-row { display: flex; align-items: flex-start; gap: 7px; margin: 0; }
.pmsl-footer-contact-icon { width: 15px; height: 15px; flex: 0 0 15px; margin-top: 3px; color: var(--pmsl-blue); }
.footer-contact address { margin: 0; font-style: normal; line-height: 1.5; }
.pmsl-footer-contact-address { display: flex; flex-direction: column; gap: 0; margin: 0; }
.pmsl-footer-contact-address span { display: block; margin: 0; }
.pmsl-footer-contact-phones { display: flex; flex-direction: column; gap: 0; }
.footer-social > div { display: flex; gap: 16px; }
.footer-social a { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid rgba(6,37,79,.06); border-radius: 50%; background: #fff; color: var(--pmsl-blue); box-shadow: 0 3px 12px rgba(6,37,79,.1); transition: background-color .25s ease,color .25s ease,transform .25s ease,border-color .25s ease; }
.footer-social .social-link:hover, .footer-social .social-link:focus-visible { border-color: var(--pmsl-blue); background: var(--pmsl-blue); color: #fff; transform: translateY(-2px); }
.footer-social .social-link:focus-visible { outline: 2px solid var(--pmsl-blue); outline-offset: 3px; }
.footer-social svg { width: 20px; height: 20px; }
.footer-legal { border-top: 1px solid var(--pmsl-border); color: var(--pmsl-muted); }
.footer-legal > .pmsl-container { display: flex; min-height: 58px; align-items: center; justify-content: space-between; }
.footer-legal nav { display: flex; gap: 0; }
.footer-legal nav a { padding: 0 20px; border-right: 1px solid var(--pmsl-border); }
.footer-legal nav a:last-child { padding-right: 0; border-right: 0; }

@media (max-width: 1200px) {
    .footer-grid { grid-template-columns: 140px 1fr 1fr 1.55fr; }
    .footer-social { grid-column: 4; }
}

@media (max-width: 860px) {
    .footer-grid { grid-template-columns: repeat(2, 1fr); }
    .footer-logo { grid-column: 1 / -1; }
    .footer-social { grid-column: auto; }
    .pmsl-footer-contact-icon { width: 14px; height: 14px; flex-basis: 14px; }
}

@media (max-width: 680px) {
    .footer-grid { grid-template-columns: 1fr 1fr; gap: 30px; }
    .footer-contact { grid-column: 1 / -1; }
    .footer-legal > .pmsl-container { align-items: flex-start; flex-direction: column; gap: 12px; padding: 18px 0; }
    .footer-legal nav { flex-wrap: wrap; row-gap: 10px; }
    .footer-legal nav a:first-child { padding-left: 0; }
}

@media (max-width: 430px) {
    .footer-grid { grid-template-columns: 1fr; }
    .footer-logo, .footer-contact { grid-column: auto; }
}
