/* FOOTER PRODUCED-BY LINK, engine part (not yet promoted to PLATFORM BUILD).
   "Produced by Next Step Media" in the site footer is a real link; hover and
   keyboard focus run the same underline sweep used elsewhere in the brand.
   Markup: .site-footer .footer-legal p > a.footer-produced__link
   Promote to assets/public-core/v1/parts/ when the engine goes canonical. */
.footer-produced__link {
  display: inline-block;
  padding: 16px 0;
  color: inherit;
  text-decoration: none;
  background-image: linear-gradient(currentColor, currentColor);
  background-size: 0% 1px;
  background-position: 0 calc(50% + 9px);
  background-repeat: no-repeat;
  transition: background-size 250ms ease, opacity 150ms ease;
}
.footer-produced__link:hover,
.footer-produced__link:focus-visible {
  background-size: 100% 1px;
  opacity: 1;
}
.footer-produced__link:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  .footer-produced__link { transition: none; }
}

/* Live pulls the follow column 20px up into the brand row. */
.footer-follow { margin-top: -20px !important; }

/* Footer stack (founder 2026-10-11): socials +30 logo +30 site nav +20
   legal links +16 copyright, copyright always its own row. Margins
   collapse against workshop-page.css (52px brands, 34+22px legal), so the
   brands gap rides on legal's padding: 8 + 22 = 30.
   Ported from event page-local.css - the baked page loads the generic
   runtime page-local.css which lacks this block. */
.site-footer .footer-brands { margin: 30px 0 8px; }
.site-footer .footer-legal { margin-top: 0; }
/* Founder 2026-10-11: 5px between every footer row/section. Legal links are
   real inline-flex hitboxes of at least 44px with centred text - the old
   padding+negative-margin tap-area trick let neighbouring boxes overlap
   (the produced-by link covered Cookie settings, Johan 2026-11-04). */
.footer-legal nav + nav { margin-top: 10px; }
.footer-legal nav { row-gap: 12px !important; }
.footer-legal nav a { display: inline-flex; align-items: center; min-height: var(--tap-min, 44px); padding: 0 !important; margin: 0; }
.footer-legal nav ~ p { margin: 5px 0 0; }

/* Footer legal nav links: same hover underline-sweep as the produced-by link
   (the founder ask: every footer link needs a mouseover state). */
.footer-legal nav a {
  background-image: linear-gradient(currentColor, currentColor);
  background-size: 0% 1px;
  background-position: 0 calc(50% + 9px);
  background-repeat: no-repeat;
  transition: background-size 250ms ease;
}
.footer-legal nav a:hover,
.footer-legal nav a:focus-visible { background-size: 100% 1px; }
@media (prefers-reduced-motion: reduce) { .footer-legal nav a { transition: none; } }
