/* 30I.3: preserve all 30I v1.0.0 width, menu, type and media rules.
   Only the outer document owns the transparent trailing scroll space.
   vh fallback; dvh follows the visible viewport on mobile browsers. */
body.st30i3-scroll{
 display:block!important;
 min-height:0!important;
 height:auto!important;
 padding-bottom:50vh!important;
 padding-bottom:50dvh!important;
 background:#212121 var(--st30i3-bg) center center/cover fixed no-repeat!important;
}
/* Preserve native modal-menu scroll locking while the menu is open. */
html:has(>body.st30i3-scroll):not(.has-modal-open):not(:has(.wp-block-navigation__responsive-container.is-menu-open)){
 min-height:0!important;height:auto!important;overflow:visible!important;
}
body.st30i3-scroll:not(:has(.wp-block-navigation__responsive-container.is-menu-open)){
 overflow:visible!important;
}
/* No viewport-height filler inside the dark frame, no independently scrolling frame. */
body.st30i3-scroll > .wp-site-blocks,
body.st30i3-scroll .st30f-frame,
body.st30i3-scroll.stc-song-template .stc-page-header,
body.st30i3-scroll.stc-song-template .stc-page-main.st19-page{
 min-height:0!important;height:auto!important;position:static!important;
 inset:auto!important;transform:none!important;overflow:visible!important;
}
body.st30i3-scroll .st30f-frame > main{
 min-height:0!important;height:auto!important;overflow:visible!important;
}
/* Header and menu scroll in normal flow; the native open menu remains untouched. */
body.st30i3-scroll .st30f-frame > header,
body.st30i3-scroll .st30f-frame > header nav,
body.st30i3-scroll.stc-song-template .stc-page-header{
 position:static!important;inset:auto!important;transform:none!important;
}
