/* V68: one header boundary on all 28 pages. This does not change glass colours,
   menu cards, content, photographs, booking markup or the native document scroll. */
:root{
 --f68-header-rest-height:92px;
 --f68-header-compact-height:76px;
 --f68-header-bottom:124px;
 --f68-scroll-safe:136px;
 --f68-toolbar-height:0px;
}
html{scroll-padding-top:var(--f68-scroll-safe);overflow-x:clip}
body{overflow-x:clip}
/* Isolate document content, not the viewport. Native dialogs remain in the top layer. */
body>main#main,body>footer.f54-footer{position:relative;isolation:isolate;z-index:0;min-width:0;max-width:100%}
html #site-header.f54-header{z-index:1000;isolation:isolate;max-width:100%}
.f54-topline.announcement{z-index:1001}
.skip-link,.mp-skip{z-index:1002}
/* Fixed headers do not reserve flow space. Keep the full resting height reserved,
   even when the header shrinks; this avoids scroll/layout feedback loops. */
html body.f54-inner main#main,
html[data-f54-theme^="editorial"] body.f54-home>main#main{
 padding-top:var(--f68-header-rest-height)!important;
}
/* Main/section anchors share one offset. Do not add legacy scroll margins twice. */
body>main#main,
body>main#main [id],
body>footer.f54-footer[id]{scroll-margin-top:0!important}
/* The only extra offset is the page's own toolbar, when targeting a menu section. */
body.m60-skin main#main .m60-section[id]{scroll-margin-top:calc(var(--f68-toolbar-height) + 12px)!important}
body.m60-skin main#main .m60-navigation,
body main#main .g63-filterbar{
 top:var(--f68-header-bottom)!important;
 z-index:18;
}
body main#main .v64-policy-index{top:calc(var(--f68-header-bottom) + 22px)}
/* Suppress a width-changing scrollbar hack in older modal styles without
   removing the real vertical scrollbar or introducing an inner-page scroller. */
.f54-header-inner,.f54-header-actions,.f54-desktop-nav{min-width:0}
@media(max-width:760px){
 :root{--f68-header-rest-height:82px;--f68-header-compact-height:72px;--f68-header-bottom:112px;--f68-scroll-safe:124px}
}
@media print{
 html{scroll-padding-top:0;overflow:visible}
 body{overflow:visible}
 html body.f54-inner main#main,
 html[data-f54-theme^="editorial"] body.f54-home>main#main{padding-top:0!important}
 body.m60-skin main#main .m60-navigation,body main#main .g63-filterbar,body main#main .v64-policy-index{position:static!important}
}
/* The editorial wordmark previously retained its 28px rule below 380px and
   collided with Book a table. Reserve separate brand/action columns at 320px. */
@media(max-width:380px){
 html #site-header.f54-header .f54-brand{gap:6px}
 html #site-header.f54-header .f54-brand .f54-logo{width:28px!important}
 html #site-header.f54-header .f54-wordmark strong{font-size:21px!important}
 html #site-header.f54-header .f54-menu-toggle{width:38px;height:42px;flex:none}
 html #site-header.f54-header .f54-button{min-height:42px;padding-inline:10px;gap:7px}
 html #site-header.f54-header .f54-header-actions{gap:6px}
}
