/* Stabilizes public pages while routes, images, maps, and sliders render. */
html {
    overflow-anchor: none;
    overflow-y: scroll;
    scrollbar-gutter: stable;
    scroll-behavior: auto !important;
    scroll-padding-top: 96px;
}

html:focus-within {
    scroll-behavior: auto !important;
}

body {
    overflow-x: hidden;
    overflow-anchor: none;
}

[id],
section,
article,
h1,
h2,
h3 {
    scroll-margin-top: 96px;
}

.public-site,
.site-shell,
.site-page,
.public-page,
.public-layout,
.site-main,
.public-content,
.site-content,
.public-home,
.public-services,
.public-contact,
.public-page-wrapper {
    min-height: 100dvh;
    overflow-anchor: none;
}

.public-site img,
.site-shell img,
.site-page img,
.public-page img,
.public-layout img,
.site-main img,
.public-content img,
.site-content img {
    display: block;
    max-width: 100%;
    height: auto;
}

.site-header,
.site-nav,
.public-header,
.public-nav {
    min-height: 72px;
}

.site-hero,
.site-slider,
.public-hero,
.public-hero-slider,
.public-hero-slide,
.public-slider,
.hero-slider,
.home-hero {
    overflow: hidden;
    overflow-anchor: none;
}

.site-hero img,
.site-slider img,
.public-hero img,
.public-hero-slide img,
.public-slider img,
.home-hero img {
    width: 100%;
}

.public-home,
.public-page,
.public-info-grid,
.public-contact-band,
.public-map-embed,
.public-footer {
    overflow-anchor: none;
}

iframe,
.map-frame,
.google-map,
.site-contact-map {
    display: block;
    max-width: 100%;
}

iframe[src*="google"],
.google-map iframe,
.site-contact-map iframe {
    width: 100%;
    min-height: 320px;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto !important;
    }
}
