/* Site footer — shared by the landing (Footer in site/app.jsx) and the static subpages.
   Reading order everywhere: logo → menu → Privacy policy → copyright.
   Desktop: two rows mirroring the header (logo | menu, then privacy | copyright).
   Mobile: a single left-aligned column. */
.rh-footer { border-top: 1px solid var(--border-subtle); padding: 40px 0 48px; display: flex; flex-direction: column; gap: 28px; }
/* products thrown off the hero shelf lie under the copyright line (landing only) */
.rh-footer { position: relative; }
.rh-footer-top, .rh-footer-bottom { position: relative; z-index: 1; }
.rh-pile { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 0; }
.rh-footer.rh-has-pile { padding-bottom: 120px; }
.rh-footer-top { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.rh-footer-logo { display: block; line-height: 0; }
.rh-footer-logo img { height: 24px; opacity: 0.85; display: block; }
.rh-footer-nav { display: flex; align-items: center; gap: 30px; flex-wrap: wrap; }
.rh-footer a { text-decoration: none; transition: color .2s; }
.rh-footer-nav a { font-family: var(--font-brand); font-size: 15px; font-weight: 500; line-height: 1.4; color: var(--text-secondary); }
.rh-footer-bottom {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  padding-top: 24px; border-top: 1px solid var(--border-subtle);
  font-family: var(--font-brand); font-size: 13px; line-height: 1.5; color: var(--text-dim);
}
.rh-footer-bottom a { color: var(--text-secondary); }
/* Back to top: a quiet pill at the end of the bottom row, arrow + "Top" */
.rh-footer-end { display: inline-flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.rh-top {
  display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px 6px 10px;
  border: 1px solid var(--border-subtle); border-radius: var(--radius-pill);
  font-family: var(--font-mono); font-size: 12px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; line-height: 1;
}
.rh-top svg { width: 14px; height: 14px; transition: transform .2s; }
.rh-top:hover { border-color: var(--border-blue); }
.rh-top:hover svg { transform: translateY(-2px); }
.rh-top:focus-visible { outline: 2px solid var(--blue-500); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .rh-top svg { transition: none; } }
.rh-footer a:hover, .rh-footer a[aria-current="page"] { color: var(--blue-300); }

@media (max-width: 860px) {
  .rh-footer { padding: 32px 0 40px; gap: 24px; }
  .rh-footer-top { flex-direction: column; align-items: flex-start; gap: 24px; }
  .rh-footer-nav { flex-direction: column; align-items: flex-start; gap: 16px; }
  .rh-footer-nav a { font-size: 16px; }
  .rh-footer-bottom { flex-direction: column; align-items: flex-start; gap: 10px; }
}
