/* Shared public footer. */
.site-footer { background: #fdfcfb; color: #213e4c; border-radius: 48px 48px 0 0; }
.footer-top { display: grid; grid-template-columns: 1.7fr 1fr 1fr 1.2fr; gap: 40px; padding: 40px 0 32px; }
.footer-top > * { min-width: 0; }
.footer-brand { display: grid; justify-items: start; align-content: start; gap: 20px; }
.footer-logo { width: 64px; height: 70px; }
.footer-logo img { width: 100%; height: 100%; object-fit: contain; }
.footer-description { max-width: 350px; margin: 0; color: #65717a; }
.footer-social { display: flex; gap: 16px; }
.footer-social a { display: grid; place-items: center; width: 48px; height: 48px; }
.footer-social svg { width: 24px; height: 24px; }
.footer-col h4 { margin: 8px 0 20px; font-size: 17px; }
.footer-col ul { display: grid; gap: 10px; padding: 0; margin: 0; list-style: none; }
.footer-col li a, .footer-service-toggle { display: inline-block; color: #65717a; }
.footer-service-toggle { padding: 0; border: 0; background: transparent; text-align: left; }
.site-footer a, .footer-service-toggle { transition: transform .25s ease, color .2s ease; }
.site-footer a:hover, .footer-service-toggle:hover { transform: translateX(4px); text-decoration: none; }
.footer-service-card { margin-top: 12px; padding: 16px; background: #f7f5f1; border: 1px solid #dedbd5; border-radius: 16px; }
.footer-service-card p { color: #65717a; }
.footer-col .footer-service-btn { display: inline-block; padding: 8px 16px; border-radius: 24px; color: #fff; background: #213e4c; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 20px; padding-block: 24px; border-top: 1px solid #dedbd5; }
#footerText { margin: 0; color: #65717a; font-size: 13px; }
.footer-dev-wrap, .footer-dev-link { display: inline-flex; align-items: center; gap: 10px; }
.footer-dev-wrap { order: 1; flex-wrap: wrap; }
.footer-dev-label, .footer-dev-name { font-size: 14px; font-weight: 600; }
.footer-dev-logo { width: 36px; height: 36px; }
@media (max-width: 1000px) {
  .footer-top { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
  .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .site-footer { border-radius: 32px 32px 0 0; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 32px 24px; }
  .footer-top > .footer-col:last-child { grid-column: 1 / -1; }
  .footer-bottom { flex-direction: column; align-items: flex-start; padding-bottom: 47px; }
}
