html { min-height: 100%; }
body.has-site-footer { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
body.has-site-footer > .home-header { width: 100%; margin: 0; flex: 0 0 auto; }
body.has-site-footer > main { width: 100%; flex: 1 0 auto; }
.site-footer { width: calc(100% - 48px); max-width: 1120px; margin: auto auto 0; padding: 25px 0 40px; border-top: 1px solid var(--line,#e4e7ef); display: grid; grid-template-columns: auto minmax(180px,1fr) auto; align-items: center; gap: 28px; color: var(--muted,#657087); font-size: .78rem; }
.site-footer .home-brand { display: flex; align-items: center; justify-self: start; gap: 10px; color: var(--ink,#172033); text-decoration: none; }
.site-footer .home-brand > span:last-child { display: flex; align-items: flex-start; flex-direction: column; }
.site-footer .home-brand strong { font-size: 1rem; }
.site-footer .home-brand small { color: var(--muted,#657087); font-size: .7rem; }
.site-footer .home-brand-mark,.site-footer .brand-mark { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: linear-gradient(135deg,#7154dc,#ec168c); color: #fff; font-weight: 900; box-shadow: 0 8px 20px #6544ca26; }
.site-footer > p { margin: 0; text-align: center; }
.site-footer-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px 18px; }
.site-footer-links a { color: var(--muted,#657087); font-weight: 700; text-decoration: none; }
.site-footer-links a:hover { color: var(--purple,#5b3cc4); }
@media (max-width:850px) { .site-footer { grid-template-columns: 1fr; align-items: flex-start; gap: 15px; } .site-footer > p { text-align: left; } .site-footer-links { justify-content: flex-start; } }
@media (max-width:560px) { .site-footer { width: calc(100% - 32px); padding: 23px 0 max(30px,env(safe-area-inset-bottom)); } }
@media print { .site-footer { display: none !important; } }
