/* Public footer: quiet spacing, clear groups and accessible touch targets. */
.site-footer { margin-top: 24px; padding: 40px 0 0; border-top: 1px solid #e6e9ef; color: #45434e; }
.site-footer .footer-main { display: grid; grid-template-columns: minmax(0,1fr); gap: 28px; padding-bottom: 28px; }
.site-footer .footer-brand { display: flex; justify-content: center; align-items: flex-start; }
.site-footer .footer-brand img { display: block; width: 144px; height: 60px; object-fit: contain; }
.site-footer .footer-links > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2px 20px; margin: 0; }
.site-footer .footer-links a { display: flex; align-items: center; min-height: 40px; font-size: 14px; font-weight: 500; line-height: 1.6; color: #54515f; border-radius: 6px; transition: color .15s; }
.site-footer .footer-links a:hover { color: #30216c; text-decoration: underline; text-underline-offset: 4px; }
.site-footer .footer-newsletter { align-self: start; padding: 20px; background: #fff; border: 1px solid #e5e8ed; border-radius: 14px; }
.site-footer .footer-newsletter h4 { margin: 0 0 16px; color: #30216c; font-size: 15px; font-weight: 600; line-height: 1.7; }
.site-footer .footer-subscribe-row { display: flex; overflow: hidden; border: 1px solid #dddce6; border-radius: 9px; background: #fff; }
.site-footer .footer-subscribe-row:focus-within { outline: 2px solid #30216c; outline-offset: 2px; }
.site-footer .footer-subscribe-row input { width: 0; min-width: 0; flex: 1; height: 46px; padding: 0 12px; border: 0; background: transparent; color: #333; font-size: 16px; text-align: right; outline: none; }
.site-footer .footer-subscribe-row button { flex: none; min-height: 46px; padding: 0 16px; border: 0; background: #30216c; color: #f7ec14; font-size: 14px; font-weight: 600; cursor: pointer; }
.site-footer .footer-subscribe-row button:hover { background: #23174f; }
.site-footer .footer-bottom { display: flex; flex-direction: column; align-items: center; gap: 18px; padding: 24px 0; border-top: 1px solid #dfe4eb; }
.site-footer .footer-copyright { margin: 0; color: #66636e; font-size: 12px; line-height: 1.9; text-align: center; }
.site-footer .footer-social nav { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; }
.site-footer .footer-social a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; min-width: 40px; color: #30216c; background: #fff; border: 1px solid #e1e5ec; border-radius: 50%; transition: background .15s, color .15s; }
.site-footer .footer-social a:hover { background: #30216c; color: #fff; }
.site-footer .footer-credits { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 12px; color: #706d79; font-size: 12px; line-height: 1.8; }
.site-footer .footer-made-in { display: inline-flex; align-items: center; gap: 8px; }
.site-footer .footer-made-in img { width: 24px; height: 16px; object-fit: cover; border-radius: 2px; box-shadow: 0 0 0 1px #00000012; }
.site-footer .footer-credit-divider { height: 14px; width: 1px; background: #d0d3dc; }
.site-footer .footer-by { display: inline-flex; align-items: center; gap: 5px; min-height: 28px; color: #706d79; }
.site-footer .footer-by strong { color: #30216c; font-weight: 600; }
.site-footer .footer-by:hover strong { text-decoration: underline; text-underline-offset: 3px; }
@media (min-width: 768px) {
  .site-footer { padding-top: 44px; }
  .site-footer .footer-main { grid-template-columns: 144px minmax(0,1fr); gap: 28px 36px; }
  .site-footer .footer-brand { justify-content: flex-start; padding-top: 4px; }
  .site-footer .footer-links > div { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .site-footer .footer-newsletter { grid-column: 2; max-width: 400px; width: 100%; }
}
@media (min-width: 1100px) {
  .site-footer .footer-main { grid-template-columns: 144px minmax(0,1fr) 300px; gap: 36px; }
  .site-footer .footer-newsletter { grid-column: auto; }
  .site-footer .footer-bottom { display: grid; grid-template-columns: 1fr auto 1fr; gap: 20px; }
  .site-footer .footer-copyright { text-align: right; }
  .site-footer .footer-credits { justify-content: flex-end; }
}
@media (max-width: 374px) {
  .site-footer .footer-newsletter { padding: 16px; }
  .site-footer .footer-subscribe-row button { padding: 0 12px; }
}
.site-footer .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
