/* Canonical public footer. Scope all rules so document bodies stay unchanged. */
.site-footer.canonical-footer {
  margin-top: 0;
  padding: 16px 0 14px;
  border-top: 1px solid #07324a;
  background: #00101d;
  color: #b1c6dd;
  /* The existing legal fallback keeps one actual font without loading fonts into legal bodies. */
  font-family: Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5;
}
.site-footer.canonical-footer .container {
  width: calc(100% - 64px);
  max-width: 1240px;
  margin-inline: auto;
}
.site-footer.canonical-footer .footer-grid {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 6px 16px;
  text-align: left;
}
.site-footer.canonical-footer .brand-footer { gap: 10px; align-items: center; min-height: 44px; margin-right: 8px; flex-shrink: 0; }
.site-footer.canonical-footer .brand-mark { width: 32px; height: 34px; border-radius: 6px; border-color: #00cee0; flex-shrink: 0; }
.site-footer.canonical-footer .brand-text { color: #f0f7ff; font-size: 16px; font-weight: 800; line-height: 24px; letter-spacing: normal; }
.site-footer.canonical-footer .brand-subtext { display: block; color: #b1c6dd; font-size: 13px; line-height: 20px; white-space: normal; }
.site-footer.canonical-footer .footer-navigation,
.site-footer.canonical-footer .footer-links,
.site-footer.canonical-footer .footer-actions { display: contents; }
.site-footer.canonical-footer .footer-links a,
.site-footer.canonical-footer .footer-actions a { display: inline-flex; flex-shrink: 0; align-items: center; min-height: 32px; padding: 4px 0; color: #b1c6dd; font-size: 15px; font-weight: 400; line-height: 24px; white-space: nowrap; }
.site-footer.canonical-footer a[aria-current="page"] { color: #00e4ef; text-decoration: underline; text-underline-offset: 5px; }
.site-footer.canonical-footer a:hover,
.site-footer.canonical-footer a:focus-visible { color: #eaf4ff; text-decoration: underline; text-underline-offset: 5px; }
.site-footer.canonical-footer a:focus-visible { outline: 3px solid #68f5ff; outline-offset: 4px; border-radius: 3px; }
.site-footer.canonical-footer .footer-legal { margin-top: 6px; padding-top: 0; border: 0; }
.site-footer.canonical-footer .footer-disclaimer { margin: 0; font-size: 12.5px; line-height: 21px; color: #b1c6dd; text-align: center; }
/* Wrappers remain in the DOM for navigation semantics and the existing translations. */
@media (max-width: 1279px) {
  .site-footer.canonical-footer .footer-grid { flex-wrap: wrap; }
  .site-footer.canonical-footer .brand-footer { flex-basis: 100%; margin-right: 0; }
}
@media (max-width: 640px) {
  .site-footer.canonical-footer .container { width: calc(100% - 40px); }
}
/* Keep the existing visibility threshold; reserve no document-flow space. */
body:has(.canonical-footer) .back-to-top {
  position: fixed;
  left: auto;
  right: 16px;
  bottom: var(--back-to-top-bottom, 16px);
  margin: 0;
  transform: translateY(10px);
  visibility: hidden;
}
body:has(.canonical-footer) .back-to-top.is-visible { visibility: visible; transform: none; }
