/* Frambini viewport / scrollbar stability.
   The document root is the only public scroll container. Body and runtime
   section wrappers must not become nested native scrollers, otherwise Chromium
   can draw a second vertical scroll thumb during hover/transition states. */
html:not(.fr-admin-mode) {
  overflow-x: hidden !important;
  overflow-y: auto;
}

html:not(.fr-admin-mode) body {
  overflow-x: clip !important;
  overflow-y: clip !important;
}

@supports not (overflow: clip) {
  html:not(.fr-admin-mode) body {
    overflow-x: hidden !important;
    overflow-y: hidden !important;
  }
}

html:not(.fr-admin-mode) .site-shell,
html:not(.fr-admin-mode) .site-shell > section,
html:not(.fr-admin-mode) .hero,
html:not(.fr-admin-mode) .experience,
html:not(.fr-admin-mode) .occasions,
html:not(.fr-admin-mode) .freezer-reviews,
html:not(.fr-admin-mode) .flavors-collection,
html:not(.fr-admin-mode) .contacts-window {
  max-width: 100%;
  overflow-x: clip;
}

@supports not (overflow: clip) {
  html:not(.fr-admin-mode) .site-shell,
  html:not(.fr-admin-mode) .site-shell > section,
  html:not(.fr-admin-mode) .hero,
  html:not(.fr-admin-mode) .experience,
  html:not(.fr-admin-mode) .occasions,
  html:not(.fr-admin-mode) .freezer-reviews,
  html:not(.fr-admin-mode) .flavors-collection,
  html:not(.fr-admin-mode) .contacts-window {
    overflow-x: hidden;
  }
}

/* Transition JS blocks wheel/key/touch input while an animation is running.
   CSS only prevents overscroll chaining; it does not create/remove scrollbars. */
html:not(.fr-admin-mode).fr-transition-active,
html:not(.fr-admin-mode).fr-site-scroll-suspend,
html:not(.fr-admin-mode).fr-hero-transition-lock,
html:not(.fr-admin-mode).fr-hero-transition-running,
html:not(.fr-admin-mode).fr-hero-transition-reverse-video,
html:not(.fr-admin-mode).fr-hero-transition-reverse-handoff,
html:not(.fr-admin-mode).fr-it-transition-lock,
html:not(.fr-admin-mode).fr-it-transition-preparing,
html:not(.fr-admin-mode).fr-it-transition-running,
html:not(.fr-admin-mode).fr-it-transition-handoff,
html:not(.fr-admin-mode).fr-it-transition-site-handoff,
html:not(.fr-admin-mode).fr-or-transition-lock,
html:not(.fr-admin-mode).fr-or-transition-running,
html:not(.fr-admin-mode).fr-rf-transition-lock,
html:not(.fr-admin-mode).fr-rf-transition-running,
html:not(.fr-admin-mode).fr-fc-transition-lock,
html:not(.fr-admin-mode).fr-fc-transition-running {
  overscroll-behavior: none !important;
}

html:not(.fr-admin-mode).fr-transition-active body,
html:not(.fr-admin-mode).fr-site-scroll-suspend body,
html:not(.fr-admin-mode).fr-hero-transition-lock body,
html:not(.fr-admin-mode).fr-hero-transition-running body,
html:not(.fr-admin-mode).fr-hero-transition-reverse-video body,
html:not(.fr-admin-mode).fr-hero-transition-reverse-handoff body,
html:not(.fr-admin-mode).fr-it-transition-lock body,
html:not(.fr-admin-mode).fr-it-transition-preparing body,
html:not(.fr-admin-mode).fr-it-transition-running body,
html:not(.fr-admin-mode).fr-it-transition-handoff body,
html:not(.fr-admin-mode).fr-it-transition-site-handoff body,
html:not(.fr-admin-mode).fr-or-transition-lock body,
html:not(.fr-admin-mode).fr-or-transition-running body,
html:not(.fr-admin-mode).fr-rf-transition-lock body,
html:not(.fr-admin-mode).fr-rf-transition-running body,
html:not(.fr-admin-mode).fr-fc-transition-lock body,
html:not(.fr-admin-mode).fr-fc-transition-running body {
  overflow-x: clip !important;
  overflow-y: clip !important;
  overscroll-behavior: none !important;
}

@supports not (overflow: clip) {
  html:not(.fr-admin-mode).fr-transition-active body,
  html:not(.fr-admin-mode).fr-site-scroll-suspend body,
  html:not(.fr-admin-mode).fr-hero-transition-lock body,
  html:not(.fr-admin-mode).fr-hero-transition-running body,
  html:not(.fr-admin-mode).fr-hero-transition-reverse-video body,
  html:not(.fr-admin-mode).fr-hero-transition-reverse-handoff body,
  html:not(.fr-admin-mode).fr-it-transition-lock body,
  html:not(.fr-admin-mode).fr-it-transition-preparing body,
  html:not(.fr-admin-mode).fr-it-transition-running body,
  html:not(.fr-admin-mode).fr-it-transition-handoff body,
  html:not(.fr-admin-mode).fr-it-transition-site-handoff body,
  html:not(.fr-admin-mode).fr-or-transition-lock body,
  html:not(.fr-admin-mode).fr-or-transition-running body,
  html:not(.fr-admin-mode).fr-rf-transition-lock body,
  html:not(.fr-admin-mode).fr-rf-transition-running body,
  html:not(.fr-admin-mode).fr-fc-transition-lock body,
  html:not(.fr-admin-mode).fr-fc-transition-running body {
    overflow-x: hidden !important;
    overflow-y: hidden !important;
  }
}
