/* =====================================================================
   KS BADGE — fixed branded asset. NEVER restyle. Checksum-guarded.
   Self-contained: token fallbacks below make it work in any client site
   without depending on project token names. Extracted 1:1 from the
   shipped schweizerumzuege-site implementation (factory canonicalization,
   2026-08-04); only fallback values were added to external vars.
   ===================================================================== */

.site-footer__badge {
  --badge-orbit-duration: 6.8s;
  --badge-orbit-thickness: 1px;
  --badge-trace-length: 8;
  --badge-trace-opacity: 0.67;
  --badge-rail: color-mix(in srgb, var(--color-paper, #faf7f2) 90%, var(--color-ink, #141618) 10%);
  position: relative;
  display: inline-flex;
  justify-self: start;
  align-items: center;
  width: max-content;
  max-width: 100%;
  padding: 0.24rem;
  border: 0;
  border-radius: calc(0.52rem - 2px);
  background: transparent;
  box-shadow: 0 0.45rem 1.3rem -0.65rem var(--color-black-22, rgba(0, 0, 0, 0.22));
  isolation: isolate;
  overflow: visible;
  transition: transform var(--duration-base, 0.3s) var(--ease-out, cubic-bezier(0.22, 1, 0.36, 1));
}
.site-footer__badge-orbit {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}
.site-footer__badge-orbit-fill {
  fill: var(--color-paper, #faf7f2);
}
.site-footer__badge-orbit-rail,
.site-footer__badge-orbit-trace {
  fill: none;
  vector-effect: non-scaling-stroke;
}
.site-footer__badge-orbit-rail {
  stroke: var(--badge-rail);
  stroke-width: 1;
}
.site-footer__badge-orbit-trace {
  stroke: rgb(124, 58, 237);
  stroke-width: var(--badge-orbit-thickness);
  stroke-linecap: round;
  opacity: 0;
  filter: drop-shadow(0 0 1px var(--color-badge-accent-soft, rgba(124, 58, 237, 0.35)));
}
.site-footer__badge-orbit.is-ready .site-footer__badge-orbit-trace {
  opacity: var(--badge-trace-opacity);
}
.site-footer__badge-core {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 0.24em;
  min-height: 1.32rem;
  padding: 0.24rem 0.48rem;
  border-radius: 0.28rem;
  background: transparent;
  color: var(--color-graphite, #5a6169);
  font-size: calc(0.66rem + 2px);
  line-height: 1;
  letter-spacing: 0.035em;
  font-weight: 500;
  text-transform: none;
  white-space: nowrap;
}
.site-footer__badge-core strong {
  font-weight: 600;
}
.site-footer__badge:hover,
.site-footer__badge:focus-visible { transform: translateY(-2px); }
