/* Local footer takeover. Kept beside the script so the public-assets build copies both. */
.footer.motion-footer {
  position: relative;
  isolation: isolate;
  overflow: visible;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #cbd5e1;
}
.footer.motion-footer::before { content: none; }
.motion-footer .footer-cover-track { position: relative; pointer-events: none; }
.motion-footer .footer-stage { overflow: clip; background: #0b1120; }
.motion-footer .footer-scene {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 440px;
  padding: 64px 0;
  overflow: hidden;
  background: #0b1120;
}
.motion-footer .footer-emblem {
  width: clamp(180px, 24vw, 340px);
  height: auto;
  max-height: 65vh;
  object-fit: contain;
  opacity: .18;
  pointer-events: none;
}
.motion-footer .footer-information {
  position: relative;
  background: #0b1120;
  padding: 40px 0 28px;
  scroll-margin-top: 100px;
}
/* Information never fades or transforms: anchors and keyboard focus stay in normal flow. */
.motion-footer .footer-reveal { opacity: 1; transform: none; filter: none; }

.motion-footer a:focus-visible { outline: 2px solid #d6a85e; outline-offset: 5px; }
.motion-footer .footer-links a { display: inline-flex; align-items: center; min-height: 44px; }
.motion-footer .footer-links a:hover { color: #fff !important; text-decoration: underline; text-underline-offset: 5px; }
.motion-footer .footer-skip {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}
.motion-footer .footer-skip:focus {
  z-index: 3;
  top: 16px;
  left: 16px;
  width: auto;
  height: auto;
  padding: 12px 16px;
  clip-path: none;
  color: #0b1120;
  background: #edf2f7;
}
@media (min-width: 1000px) and (min-height: 600px) and (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .motion-footer.is-footer-layered { margin-top: calc(-1 * var(--footer-viewport, 100vh)); pointer-events: none; }
  .is-footer-layered .footer-information, .is-footer-layered .footer-skip { pointer-events: auto; }
  .is-footer-layered .footer-cover-track { height: calc(2 * var(--footer-viewport, 100vh)); }
  .is-footer-layered .footer-stage {
    position: sticky;
    top: 0;
    height: var(--footer-viewport, 100vh);
    /* Crop the underlay at the departing page's lower edge, never obscure its links. */
    clip-path: inset(var(--footer-cut, 100%) 0 0 0);
  }
  .is-footer-layered .footer-scene {
    height: 100%;
    min-height: 0;
    padding-block: 12vh;
    transform: translate3d(0, var(--footer-drift, 0px), 0);
    filter: blur(var(--footer-blur, 0px));
  }
  .is-footer-layered .footer-skip:focus { top: calc(var(--footer-viewport, 100vh) + 16px); }
}
@media (max-width: 600px) {
  .motion-footer .footer-scene { min-height: 320px; padding-block: 40px; }

  .motion-footer .footer-information { padding-top: 28px; }
  .motion-footer .footer-grid { grid-template-columns: minmax(0, 1fr) !important; }

}
@media (prefers-reduced-motion: reduce) {
  .motion-footer .footer-scene, .motion-footer .footer-emblem { transform: none; filter: none; }
}
@media print {
  .motion-footer .footer-cover-track, .motion-footer .footer-skip { display: none; }
  .footer.motion-footer { margin-top: 0; }
}
