/* Browser shell only: footer follows long content and fills short viewports. */
/* Home/filter desktop rows keep their width when a classic scrollbar appears
   or a modal temporarily locks scrolling. Browser-mobile is not changed. */
html:has(body.browser-desktop:is(.browser-homepage, .filter-ui-v2)) {
  scrollbar-gutter: stable;
}
body.browser-page {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
}
body.browser-page > * { flex-shrink: 0; }
body.browser-page > .content.site-shell {
  display: flex;
  flex-direction: column;
  flex: 1 0 auto;
  min-width: 0;
  margin-bottom: 0;
}
.site-shell > .site-page {
  display: flow-root;
  flex: 1 0 auto;
  min-width: 0;
}
.site-shell > .footer { flex: 0 0 auto; }
/* Intrinsic logo dimensions reserve its ratio before artwork arrives.
   Theme heights still determine the final size; narrow desktop keeps 170px. */
body.browser-mobile .header-top__logo img { width: auto; }
@media (min-width: 1025px) {
  body.browser-desktop .header-top__logo img { width: auto; }
}
