/* Footer styles — kept in their own file so page-level stylesheets
   (e.g. homepage.css) can never overwrite the footer. Selectors are
   scoped under .site-footer to keep specificity higher than generic
   element rules like "body:has(.hero) h3 { margin:0 }". */
.site-footer { color:#fff; background:#061b31; }
.site-footer .brand, .site-footer .brand:hover { color:#fff; }
.site-footer .brand svg { width: 39px; height: 39px; }
.site-footer .footer-top { display:grid; grid-template-columns:1.25fr repeat(3,0.55fr); gap:60px; padding:78px 0 55px; }
.site-footer .footer-brand p { max-width:390px; margin-top:18px; margin-bottom:0; color:rgba(255,255,255,0.62); }
.site-footer .footer-column h3 { margin-bottom:18px; color:#c4b5fd; font-size:13px; letter-spacing:0.03em; }
.site-footer .footer-column a { display:block; margin-top:10px; color:rgba(255,255,255,0.68); font-size:13px; text-decoration:none; }
.site-footer .footer-column a:hover { color:#fff; }
.site-footer .footer-bottom { display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid rgba(255,255,255,0.1); padding:22px 0; color:rgba(255,255,255,0.5); font-size:11px; }
.site-footer .footer-bottom a { color:#fff; text-decoration:none; }
.site-footer .footer-bottom a:hover { text-decoration:underline; }
@media (max-width:1080px) { .site-footer .footer-top { grid-template-columns:1fr repeat(3,0.5fr); gap:36px; } }
@media (max-width:900px) { .site-footer .footer-top { grid-template-columns:1fr 1fr; } }
@media (max-width:620px) { .site-footer .footer-top { grid-template-columns:1fr; padding:44px 0 90px; } .site-footer .footer-bottom { display:grid; } }