.site-shell { min-height: 100vh; display: flex; flex-direction: column; }
.site-main { flex: 1 1 auto; padding: 2rem 0; }
.ri-container { width: min(1120px, calc(100% - 2rem)); margin: 0 auto; }
.ri-stack > * + * { margin-top: 1.5rem; }
.ri-stack-sm > * + * { margin-top: .75rem; }
.ri-site-header, .ri-site-footer {
  background: var(--ri-surface);
  border-bottom: 1px solid var(--ri-border);
}
.ri-site-footer { border-top: 1px solid var(--ri-border); border-bottom: 0; }
.ri-site-header__inner, .ri-site-footer__inner {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 0;
}
.ri-menu { list-style: none; margin: 0; padding: 0; display: flex; gap: 1rem; }
@media (max-width: 768px) {
  .ri-site-header__inner, .ri-site-footer__inner { flex-direction: column; align-items: flex-start; }
  .ri-menu { flex-wrap: wrap; }
}
