/* In-flow sticky headers retain the initial viewport budget and native tab order. */
html {--site-header-height:64px;--site-brand-header-height:64px}
html[data-theme] body > :is(.masthead,.portal-header,.geo-header){position:sticky;top:0;z-index:1000;background:var(--surface,#fff);isolation:isolate}
html[data-theme] body > .geo-nav{position:sticky;top:var(--site-brand-header-height);z-index:999;background:var(--surface,#fff)}
:is(.listings-page,.property-page,.geo-page) :is([id],a,button,input,select,textarea,[tabindex]){scroll-margin-top:calc(var(--site-header-height) + 16px)}
/* Nav stays one touch-friendly row rather than consuming a phone's viewport. */
@media(max-width:760px){html{--site-header-height:120px}html[data-theme] body > .geo-nav{display:flex;flex-wrap:nowrap;overflow-x:auto;white-space:nowrap}html[data-theme] body > .geo-nav a{flex-shrink:0;min-height:44px}}
@media print{html[data-theme] body > :is(.masthead,.portal-header,.geo-header,.geo-nav){position:static}html{--site-header-height:0px}}
