/* The ONE site footer stylesheet. Used by every page, so the footer looks identical everywhere.
   Markup: src/lib/site-footer.ts. Particles + constellation: public/redesign/site-footer.js.
   Everything is scoped to footer.site-footer so it cannot leak into (or be changed by) page styles. */

@font-face{
  font-family:'Mozaic Footer'; src:url(/redesign/fonts/mozaic-regular.woff2) format('woff2');
  font-weight:400 600; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Mozaic Footer'; src:url(/redesign/fonts/mozaic-bold.woff2) format('woff2');
  font-weight:700 900; font-style:normal; font-display:swap;
}

footer.site-footer,
footer.site-footer *,
footer.site-footer *::before,
footer.site-footer *::after{ box-sizing:border-box; margin:0; padding:0; border-radius:0; }

footer.site-footer{
  --foot-font:'Mozaic Footer','Mozaic GEO','Mozaic Geo','Figtree',sans-serif;
  --foot-orange:#fd6420; --foot-ink:#0d1117;
  display:flex; flex-direction:column; justify-content:center;
  position:relative; overflow:hidden; width:100%; min-height:100vh;
  padding:96px 0 40px;
  background:#0d1117; color:#f4f4f4;
  border-top:1px solid rgba(244,244,244,0.12);
  font-family:var(--foot-font); font-size:17px; line-height:normal; font-weight:400; text-align:left;
  -webkit-font-smoothing:antialiased;
}
footer.site-footer ::selection{ background:#ffd9bd; color:#0d1117; }
footer.site-footer ::-moz-selection{ background:#ffd9bd; color:#0d1117; }
footer.site-footer a{ color:inherit; text-decoration:none; }
footer.site-footer img,
footer.site-footer svg{ display:block; max-width:100%; }

footer.site-footer .foot-glow{ position:absolute; inset:0; z-index:0; opacity:0.5; }
footer.site-footer .foot-particles{ position:absolute; inset:0; z-index:1; width:100%; height:100%; display:block; }
footer.site-footer .foot-wrap{ position:relative; z-index:2; width:100%; max-width:1240px; margin:0 auto; padding:0 32px; }

/* headline + buttons */
footer.site-footer .foot-lead{
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:40px; align-items:end;
  padding-bottom:56px; margin-bottom:56px; border-bottom:1px solid rgba(244,244,244,0.14);
}
footer.site-footer .foot-lead h2{
  font-family:var(--foot-font); font-weight:800; font-size:clamp(34px,5vw,68px); line-height:1.04;
  letter-spacing:-0.035em; color:#f4f4f4; max-width:15ch;
}
footer.site-footer .foot-lead-actions{ display:flex; gap:12px; flex-wrap:wrap; }
footer.site-footer .foot-btn{
  display:inline-flex; align-items:center; justify-content:center; text-align:center;
  font-family:var(--foot-font); font-size:17px; font-weight:700; line-height:normal; padding:11px 22px; white-space:nowrap;
  border:1px solid transparent; transition:all .15s; cursor:pointer;
}
footer.site-footer .foot-btn-solid{ background:var(--foot-orange); color:#ffffff; }
footer.site-footer .foot-btn-solid:hover{ background:#e2540f; }
footer.site-footer .foot-btn-light{ border:1px solid rgba(244,244,244,0.42); color:#f4f4f4; }
footer.site-footer .foot-btn-light:hover{ background:#f4f4f4; color:var(--foot-ink); }

/* columns */
footer.site-footer .foot-grid{ display:grid; grid-template-columns:1.15fr 0.7fr 0.7fr 0.8fr 0.85fr; gap:40px; margin-bottom:64px; }
footer.site-footer .foot-logo{ margin-bottom:20px; }
footer.site-footer .foot-logo img{ height:34px; width:auto; display:block; }
footer.site-footer .foot-addr{ font-size:17px; font-weight:500; color:rgba(244,244,244,0.72); line-height:1.6; margin-bottom:22px; }
footer.site-footer .foot-addr b{ display:block; color:#f4f4f4; font-weight:700; margin-bottom:5px; font-size:17px; }
footer.site-footer .foot-col .cap{ font-size:17px; font-weight:700; letter-spacing:0.04em; color:rgba(244,244,244,0.75); margin-bottom:20px; }
footer.site-footer .foot-col a{ display:block; font-size:17px; font-weight:500; color:rgba(244,244,244,0.82); margin-bottom:14px; }
footer.site-footer .foot-col a:hover{ color:var(--foot-orange); }
footer.site-footer .foot-social-icons{ display:flex; gap:10px; }
footer.site-footer .foot-col .foot-social-icons a{
  width:44px; height:44px; margin-bottom:0; display:grid; place-items:center;
  color:rgba(244,244,244,0.82); transition:color .18s ease;
}
footer.site-footer .foot-col .foot-social-icons a:hover{ color:var(--foot-orange); }
footer.site-footer .foot-social-icons svg{ width:38px; height:38px; display:block; }

/* bottom bar */
footer.site-footer .foot-bottom{
  border-top:1px solid rgba(244,244,244,0.14); padding-top:30px;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px;
}
footer.site-footer .foot-bottom .copy{ font-size:17px; font-weight:500; color:rgba(244,244,244,0.72); }

@media (max-width: 980px){
  footer.site-footer .foot-grid{ grid-template-columns:1fr 1fr; }
  footer.site-footer .foot-col:last-child{ grid-column:1 / -1; }
}
@media (max-width: 860px){
  footer.site-footer .foot-lead{ grid-template-columns:1fr; align-items:start; gap:28px; }
}
