/* Site footer (v1). One stylesheet for every page; markup comes from scripts/build-footer.py.
   Every rule starts with footer.pf so the older per-page footer rules can't leak in. */
footer.pf{--pf-bg:#fff;--pf-tx:#16142A;--pf-tx2:#4A4862;--pf-mu:#6E6B84;--pf-line:#E6E8F0;--pf-chip:#F1F2F8;--pf-chip2:#E4E6F2;--pf-ac:#5466F2;
  display:block;max-width:none;margin:0;padding:0;border:0;border-top:1px solid var(--pf-line);background:var(--pf-bg);color:var(--pf-tx2);font-size:14px;line-height:1.45;text-align:left}
[data-theme=dark] footer.pf{--pf-bg:#0B1020;--pf-tx:#E8ECF5;--pf-tx2:#B4BCD0;--pf-mu:#8791AB;--pf-line:#25242F;--pf-chip:#15151C;--pf-chip2:#25242F;--pf-ac:#9AA6FF}
footer.pf *{box-sizing:border-box}
footer.pf a{margin:0;color:inherit;text-decoration:none}
footer.pf .pf-in{display:block;max-width:1180px;margin:0 auto;padding:0 24px}

/* top: logo + social */
footer.pf .pf-top{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:40px 0 30px;border-bottom:1px solid var(--pf-line)}
footer.pf .pf-brand{display:flex;flex-direction:column;gap:8px;min-width:0}
footer.pf .pf-logo{display:inline-flex;line-height:0}
footer.pf .pf-wm{display:block;height:34px;width:auto}
footer.pf .pf-wd{display:none}
[data-theme=dark] footer.pf .pf-wl{display:none}
[data-theme=dark] footer.pf .pf-wd{display:block}
footer.pf .pf-tag{margin:0;font-size:13.5px;color:var(--pf-mu);max-width:420px}
footer.pf .soc{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0}
footer.pf .soc a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;margin:0;border:0;border-radius:999px;background:var(--pf-chip);color:var(--pf-tx);transition:background .15s,color .15s,transform .15s}
footer.pf .soc .soc-i{width:44px;height:44px;padding:0;font-weight:700}
footer.pf .soc .soc-m{padding:0 16px 0 14px;font-size:13.5px;font-weight:600}
footer.pf .soc a:hover,footer.pf .soc a:focus-visible{background:var(--pf-chip2);color:var(--pf-ac);transform:translateY(-1px)}

/* link columns */
footer.pf .pf-cols{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:28px 24px;padding:34px 0 30px;border-bottom:1px solid var(--pf-line);margin:0;flex-wrap:nowrap;align-items:start;justify-content:stretch}
footer.pf .pf-col{min-width:0}
footer.pf .pf-h{margin:0 0 14px;font-size:15px;font-weight:700;letter-spacing:0;text-transform:none;color:var(--pf-tx)}
footer.pf .pf-h2{margin-top:26px}
footer.pf ul{list-style:none;margin:0;padding:0}
footer.pf .pf-col li{margin:0 0 4px}
footer.pf .pf-col a{display:inline-block;padding:5px 0;color:var(--pf-tx2);font-size:14px}
footer.pf .pf-col a:hover,footer.pf .pf-col a:focus-visible{color:var(--pf-ac)}
footer.pf .pf-all{font-weight:600;color:var(--pf-tx)!important}
footer.pf .pf-ext::after{content:"\2197";margin-left:4px;font-size:12px;opacity:.7}

/* featured-on badges */
footer.pf .pf-feat{padding:26px 0 24px;border-bottom:1px solid var(--pf-line);text-align:center}
footer.pf .pf-feat-t{margin:0 0 14px;font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--pf-mu)}
footer.pf .pf-feat ul{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px 16px}
footer.pf .pf-feat li{display:flex}
footer.pf .pf-feat a{display:inline-flex;align-items:center;line-height:0;border-radius:10px;opacity:.92;transition:opacity .15s,transform .15s}
footer.pf .pf-feat a:hover,footer.pf .pf-feat a:focus-visible{opacity:1;transform:translateY(-1px)}
footer.pf .pf-feat img{display:block;height:36px;width:auto;max-width:100%}

/* bottom: copyright + legal */
footer.pf .pf-bot{display:flex;align-items:center;justify-content:space-between;gap:10px 24px;flex-wrap:wrap;padding:20px 0 30px;font-size:13px;color:var(--pf-mu)}
footer.pf .pf-bot p{margin:0}
footer.pf .pf-legal{display:flex;flex-wrap:wrap;gap:4px 0;align-items:center}
footer.pf .pf-legal li{display:flex;align-items:center}
footer.pf .pf-legal li+li::before{content:"";width:1px;height:12px;margin:0 12px;background:var(--pf-line)}
footer.pf .pf-legal a{padding:6px 0;color:var(--pf-tx2)}
footer.pf .pf-legal a:hover,footer.pf .pf-legal a:focus-visible{color:var(--pf-ac)}

@media (max-width:1020px){footer.pf .pf-cols{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){
  footer.pf .pf-in{padding:0 16px}
  footer.pf .pf-top{flex-direction:column;align-items:flex-start;padding:30px 0 24px}
  footer.pf .pf-wm{height:30px}
  footer.pf .pf-cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px;padding:26px 0 22px}
  footer.pf .pf-col a{padding:6px 0;font-size:14px}
  footer.pf .pf-feat ul{gap:10px 12px}
  footer.pf .pf-feat img{height:32px}
  footer.pf .pf-bot{flex-direction:column;align-items:flex-start;padding-bottom:28px}
  footer.pf .pf-legal{gap:2px 18px}
  footer.pf .pf-legal li+li::before{display:none}
}
@media (max-width:420px){
  footer.pf .pf-feat li{flex:0 0 calc(50% - 6px);justify-content:center}
  footer.pf .pf-feat img{height:30px}
}
@media (prefers-reduced-motion:reduce){footer.pf .soc a,footer.pf .pf-feat a{transition:none}footer.pf .soc a:hover,footer.pf .pf-feat a:hover{transform:none}}
