:root{--site-service-height:calc(45px + env(safe-area-inset-bottom,0px))}
/* Reserve the same classic-scrollbar gutter on scrolling pages and the fixed map. */
html{scrollbar-gutter:stable}
@supports not (scrollbar-gutter:stable){html{overflow-y:scroll}}
/* Shared frame: service links stay reachable in scrolling search and map views. */
.siteFooter{box-sizing:border-box;border-top:1px solid #dce7eb;background:#fff;color:#536270;margin-top:36px;padding:28px 24px;font:14px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.siteFooter__inner{max-width:1160px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:24px}
.siteFooter__identity{margin:0;min-width:0}.siteFooter strong{color:#152b39;font-weight:650}.siteFooter a{color:#006883;text-decoration:none;text-underline-offset:3px}.siteFooter a:hover{text-decoration:underline}.siteFooter a:focus-visible{outline:3px solid #dc9e23;outline-offset:2px}
.siteFooter nav{display:flex;flex-wrap:wrap;gap:0 24px}.siteFooter nav a{display:inline-flex;align-items:center;min-height:44px}
.siteFooter--compact{position:fixed;bottom:0;left:0;right:0;z-index:80;margin:0;padding:0 16px env(safe-area-inset-bottom,0px);height:var(--site-service-height);font-size:12px}.siteFooter--compact .siteFooter__inner{justify-content:center;height:100%}.siteFooter--compact .siteFooter__identity{display:none}.siteFooter--compact nav{flex-wrap:nowrap;justify-content:center;gap:24px}
.searchPage:not(.mapSearchPage){padding-bottom:var(--site-service-height)}.searchPage #toTop{bottom:calc(60px + env(safe-area-inset-bottom,0px))}.mapSearchPage .searchMain{height:calc(100dvh - var(--site-header-height) - var(--site-service-height))}
.offerBrand{display:block;min-width:0;flex:0 1 280px;max-width:280px}.offerBrand img{display:block;width:100%;height:auto}.siteHeader .topbar>.textLink{flex-shrink:0}
@media(max-width:760px){.mapSearchPage .searchMain{height:calc(100dvh - var(--site-header-height) - var(--site-service-height))}}
@media(max-width:600px){.offerBrand{flex-basis:190px;max-width:190px}.siteFooter:not(.siteFooter--compact){padding:24px 20px}.siteFooter__inner{flex-direction:column;align-items:flex-start;gap:16px}.siteFooter--compact .siteFooter__inner{flex-direction:row;align-items:center}.siteFooter nav{gap:0 20px}}

/* Shared masthead for home, list, map, detail, registration and enquiry. */
:root{--site-header-height:80px}
.siteHeader.siteHeader--shared{box-sizing:border-box;height:var(--site-header-height);margin:0;padding:0;position:relative;z-index:700;border:0;border-bottom:1px solid #dde6e9;background:#fff;color:#152b39;font:16px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif}
.siteHeader--shared .siteHeader__inner{box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%;max-width:1240px;height:100%;margin:0 auto;padding:0 32px}
.siteHeader--shared .siteBrand{box-sizing:border-box;display:block;flex:0 1 240px;width:240px;min-width:100px;max-width:240px;margin:0;padding:0;text-decoration:none}
.siteHeader--shared .siteBrand img{display:block;width:100%;max-width:100%;height:auto;margin:0;padding:0;object-fit:contain}
.siteHeader--shared .siteNav{display:flex;flex:0 0 auto;align-items:center;gap:8px;margin:0;padding:0}
.siteHeader--shared .siteNav a{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;margin:0;padding:8px 12px;border:1px solid transparent;border-radius:7px;background:#fff;color:#006883;font-size:14px;font-weight:650;line-height:1.4;text-decoration:none;white-space:nowrap}
.siteHeader--shared .siteNav a:hover{background:#f1f7f8}.siteHeader--shared .siteNav a[aria-current=page]{background:#eaf4f7;border-color:#c7dfe5}
.siteHeader--shared a:focus-visible{outline:3px solid #006883;outline-offset:3px}
.mapSearchPage .searchMain{height:calc(100dvh - var(--site-header-height) - var(--site-service-height))}.mapSearchPage .searchFilters{top:var(--site-header-height)}.mapSearchPage .searchBackdrop{inset:var(--site-header-height) 0 0}
@media(max-width:600px){:root{--site-header-height:64px}.siteHeader--shared .siteHeader__inner{padding-inline:16px;gap:10px}.siteHeader--shared .siteBrand{flex-basis:160px;width:160px;max-width:160px}.siteHeader--shared .siteNav{gap:4px}.siteHeader--shared .siteNav a{padding-inline:6px;font-size:13px}}

/* Let the fixed filter drawer rise above the backdrop outside its mobile results panel. */
.mapSearchPage.drawer-open .searchLayout{z-index:auto}
