:root {
  --stalkon-modal-ease: cubic-bezier(.16, 1, .3, 1);
  --stalkon-modal-soft: cubic-bezier(.22, .61, .36, 1);
}

/* Desktop request buttons are permanently visible. */
@media (min-width: 768px) {
  body .stalkon-contact-widget .stalkon-contact-widget__actions {
    display: flex !important;
    flex-direction: row !important;
    right: 72px !important;
    bottom: 2px !important;
    visibility: visible !important;
    opacity: 1 !important;
    filter: none !important;
    pointer-events: auto !important;
    transform: none !important;
    transition: none !important;
  }

  body .stalkon-contact-widget .stalkon-contact-widget__actions .stalkon-quick-action {
    visibility: visible !important;
    opacity: 1 !important;
    filter: none !important;
    pointer-events: auto !important;
    transform: none !important;
    transition: background-color .72s var(--stalkon-modal-ease),
      box-shadow .72s var(--stalkon-modal-ease),
      transform .72s var(--stalkon-modal-ease) !important;
  }

  body .stalkon-contact-widget .stalkon-contact-widget__actions .stalkon-quick-action:hover {
    transform: translateY(-2px) !important;
  }
}

/* Keep the scrollbar space stable while a modal is open. */
html {
  scrollbar-gutter: stable;
}

body.stalkon-native-modal-open {
  padding-right: 0 !important;
}

body.stalkon-native-modal-open > .Header {
  padding-right: 0 !important;
}

body > .Header,
body > main,
body > .Footer,
body > .Cookies,
body > #up-page,
body > .stalkon-contact-widget {
  transition: filter .58s var(--stalkon-modal-soft),
    opacity .58s var(--stalkon-modal-soft),
    transform .72s var(--stalkon-modal-ease) !important;
  will-change: filter;
}

body.stalkon-native-modal-open > .Header,
body.stalkon-native-modal-open > main,
body.stalkon-native-modal-open > .Footer,
body.stalkon-native-modal-open > .Cookies,
body.stalkon-native-modal-open > #up-page,
body.stalkon-native-modal-open > .stalkon-contact-widget {
  filter: blur(7px) !important;
}

/* Premium motion for the native WordPress theme modals. */
body .Modal {
  transition: visibility 0s linear .72s !important;
}

body .Modal.active {
  transition-delay: 0s !important;
}

body .Modal .overlay {
  opacity: 0 !important;
  background: rgba(2, 10, 16, .54) !important;
  -webkit-backdrop-filter: blur(0) !important;
  backdrop-filter: blur(0) !important;
  transition: opacity .58s var(--stalkon-modal-soft),
    -webkit-backdrop-filter .68s var(--stalkon-modal-ease),
    backdrop-filter .68s var(--stalkon-modal-ease) !important;
  will-change: opacity, backdrop-filter;
}

body .Modal.show-content .overlay {
  opacity: 1 !important;
  -webkit-backdrop-filter: blur(3px) !important;
  backdrop-filter: blur(3px) !important;
}

body .Modal .wrapper {
  opacity: 0 !important;
  filter: blur(5px) !important;
  transform: translateY(24px) scale(.975) !important;
  transition: opacity .58s var(--stalkon-modal-soft),
    transform .78s var(--stalkon-modal-ease),
    filter .58s var(--stalkon-modal-soft) !important;
  will-change: opacity, transform, filter;
}

body .Modal.show-content .wrapper {
  opacity: 1 !important;
  filter: blur(0) !important;
  transform: none !important;
}

/* The requested premium motion remains enabled for these controls even when
   the operating system advertises reduced motion. */
@media (prefers-reduced-motion: reduce) {
  body .Modal .overlay {
    transition-duration: .58s, .68s, .68s !important;
  }

  body .Modal .wrapper {
    transition-duration: .58s, .78s, .58s !important;
  }

  body > .Header,
  body > main,
  body > .Footer,
  body > .Cookies,
  body > #up-page,
  body > .stalkon-contact-widget {
    transition-duration: .58s, .58s, .72s !important;
  }
}
