/* Shared compatibility for this site's custom overlay plugins.
 * Reserve a classic scrollbar's gutter before any overlay opens. Overlay scrollbars use no gutter.
 * Lock the root only: overflow:hidden on body creates a new scroll ancestor and unsticks #header.
 * Existing lock classes remain owned by their plugins, including nested overlays and close/focus logic. */
html { scrollbar-gutter: stable; }
html:is(.abhf-lock, .abhf-choice-open, .absc-locked, .aspd-lock, .abrv-lock, .abch-lock, .abpvc-lock, .abms-lock, .abtc-lock, .abco-lock) {
 overflow: hidden !important;
}
html:is(.abhf-lock, .abhf-choice-open, .absc-locked, .aspd-lock, .abrv-lock, .abch-lock, .abpvc-lock, .abms-lock, .abtc-lock, .abco-lock) body {
 /* Fallback for browsers without overflow:clip: do not introduce a body scroll container. */
 overflow: visible !important;
}
@supports (overflow: clip) {
 html:is(.abhf-lock, .abhf-choice-open, .absc-locked, .aspd-lock, .abrv-lock, .abch-lock, .abpvc-lock, .abms-lock, .abtc-lock, .abco-lock) body {
  overflow: clip !important;
 }
}
@supports (scrollbar-gutter: stable) {
 /* The side cart's JS compensation is redundant once the root keeps its native gutter. */
 html.absc-locked { padding-right: 0 !important; }
}
