/* Shared site footer — used on both the app pages (style.css) and the marketing
   pages (landing.css). Self-contained (own colors + logo + wrap) so it renders
   identically regardless of which page stylesheet is loaded. */

/* Global sticky footer: keep the dark footer pinned to the bottom on short
   pages (admin overview, account, billing result, empty dashboard). App +
   marketing-legal pages wrap content in <main>; the tall landing page has no
   <main> but is unaffected since its sections stack normally in the column.
   The position:sticky header is unaffected — it remains the first flex child. */
body { min-height: 100dvh; display: flex; flex-direction: column; }
body > main { flex: 1 0 auto; }
.site-foot { flex-shrink: 0; }

.site-foot {
    background: #0b2f56;
    color: #c3d4e8;
    padding: 56px 0 28px;
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
.site-foot a { color: #c3d4e8; text-decoration: none; }
.site-foot a:hover { color: #fff; }
.site-foot .ft-wrap { width: 100%; max-width: 1140px; margin: 0 auto; padding: 0 24px; }
.site-foot .ft-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 40px; padding-bottom: 32px; border-bottom: 1px solid rgba(255, 255, 255, .12); }
.site-foot .ft-logo { font-size: 21px; font-weight: 800; color: #fff; letter-spacing: -0.03em; display: inline-block; margin-bottom: 12px; }
.site-foot .ft-logo em { color: #00a0e3; font-style: normal; }
.site-foot .ft-brand p { color: #93a9c4; font-size: 14px; max-width: 38ch; margin: 0; }
.site-foot h4 { color: #fff; font-size: 14px; text-transform: uppercase; letter-spacing: .08em; margin: 0 0 14px; }
.site-foot ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; font-size: 14px; }
.site-foot .ft-copy { padding-top: 22px; color: #7f97b5; font-size: 13px; text-align: center; }
@media (max-width: 880px) {
    .site-foot .ft-grid { grid-template-columns: 1fr; gap: 28px; }
}
