/* Public header typography follows the viewport without enlarging its spacing. */
.topbar { font-size: clamp(14px, .84vw, 16px); }
.site-header .brand b { font-size: clamp(20px, 1.25vw, 24px); letter-spacing: .09em; }
.site-header .brand small { font-size: clamp(14px, .84vw, 16px); margin-top: 6px; }
.site-footer .brand b { font-size: clamp(22px, 1.25vw, 24px); }
.site-footer .brand small { font-size: 16px; margin-top: 7px; }
.site-footer .footer-brand p { font-size: 18px; line-height: 1.8; max-width: 380px; }
.site-footer .footer-column { font-size: 18px; line-height: 1.75; gap: 10px; overflow-wrap: anywhere; }
.site-footer .footer-column > b { font-size: 22px; margin-bottom: 10px; }
.site-footer .footer-grid-rich { grid-template-columns:minmax(0,1.15fr) minmax(180px,.55fr) minmax(0,1.3fr); gap:64px; }
.site-footer .footer-brand p { max-width:460px; }
@media (max-width:1000px) { .site-footer .footer-grid-rich { grid-template-columns:1fr 1fr; gap:32px; } }
@media (max-width:640px) { .site-footer .footer-grid-rich { grid-template-columns:1fr; gap:28px; } }
.site-footer .footer-bottom { font-size:15px; line-height:1.7; justify-content:center; align-items:center; flex-wrap:wrap; gap:8px 24px; text-align:center; }
@media (max-width: 640px) {
  .site-footer .footer-column, .site-footer .footer-brand p { font-size: 16px; }
  .site-footer .footer-column > b { font-size: 20px; }
  .site-footer .footer-bottom { font-size: 13px; }
  .site-header .brand b { font-size: 18px; }
  .site-header .brand small { font-size: 13px; }
  .topbar { font-size: 12px; }
}
