/* Shared site footer — single source of truth for index.html and buy.html.
   Markup is injected by assets/site-footer.js into <footer class="ft" id="site-footer">.
   Relies on the brand CSS variables each page already defines
   (--accent, --ink, --line, --shadow-sm, --ease-spring) plus the page .wrap container. */
.ft{position:relative;overflow:hidden;padding:96px 0 40px;border-top:1px solid rgba(255,255,255,.08);background:radial-gradient(120% 80% at 50% 0%,rgba(48,127,226,.16),transparent 58%),linear-gradient(180deg,#0d1922,#091017);color:rgba(255,255,255,.62);font-size:14px}
.ft-top{display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:40px;align-items:start;padding-bottom:40px;position:relative;z-index:2}
.ft-brand .ft-mark{display:inline-block;margin-bottom:18px}
.ft-brand .ft-mark img{height:26px}
.ft-tagline{font-size:17px;color:#fff;max-width:30ch;line-height:1.45;margin:0 0 24px}
.ft-cta{display:inline-flex;align-items:center;gap:12px;text-decoration:none;font-weight:600;font-size:15px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:999px;padding:11px 14px 11px 22px;box-shadow:var(--shadow-sm);transition:transform .4s var(--ease-spring),box-shadow .4s var(--ease-spring),border-color .3s ease}
.ft-cta-i{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff;transition:transform .45s var(--ease-spring)}
.ft-cta:hover{transform:translateY(-2px);border-color:#c4d0db;box-shadow:0 14px 30px -14px rgba(13,25,34,.32)}
.ft-cta:hover .ft-cta-i{transform:translate(4px,-1px)}
.ft-connect{margin-top:30px}
.ft-connect h4{color:rgba(255,255,255,.72);font-size:12px;text-transform:uppercase;letter-spacing:.09em;margin:0 0 14px}
.ft-social{display:flex;gap:10px;flex-wrap:wrap;margin:0;padding:0;list-style:none}
.ft-social a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;color:rgba(255,255,255,.78);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);transition:transform .35s var(--ease-spring),color .2s ease,background .2s ease,border-color .2s ease}
.ft-social a:hover{color:#fff;background:var(--accent);border-color:var(--accent);transform:translateY(-3px);box-shadow:0 12px 24px -12px rgba(48,127,226,.6)}
.ft-social svg{width:17px;height:17px;display:block;fill:currentColor}
.ft-nav{display:contents}
.ft-col h4{color:rgba(255,255,255,.72);font-size:12px;text-transform:uppercase;letter-spacing:.09em;margin:6px 0 16px}
.ft-col ul{list-style:none;padding:0;margin:0}
.ft-col li{margin:.6em 0}
.ft-col a{color:rgba(255,255,255,.62);text-decoration:none;transition:color .2s ease}
.ft-col a:hover{color:#fff}
.ft-fine{position:relative;z-index:2;border-top:1px solid rgba(255,255,255,.1);padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:12.5px;color:rgba(255,255,255,.4)}
@media (max-width:960px){
  .ft-top{grid-template-columns:1fr 1fr;gap:32px}
  .ft-brand{grid-column:1 / -1}
}
@media (max-width:560px){
  .ft-top{grid-template-columns:1fr}
  .ft-fine{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){
  .ft-cta,.ft-social a{transition:none!important}
}
