/*
 * AutoBinder mobile stability layer.
 * Standard desktop (> 1100px wide and > 600px high) stays untouched.
 */

@media (max-width: 1100px) {
  .ab-header .wp-block-navigation__responsive-container-open {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
  }

  .ab-header .wp-block-navigation__responsive-container:not(.is-menu-open) {
    display: none !important;
  }

  .ab-header .wp-block-navigation__responsive-container.is-menu-open {
    position: fixed !important;
    inset: 0 !important;
    z-index: 100000 !important;
    display: flex !important;
    width: 100% !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-width: none !important;
    overflow-y: auto !important;
    padding:
      max(20px, env(safe-area-inset-top))
      max(20px, env(safe-area-inset-right))
      max(28px, env(safe-area-inset-bottom))
      max(20px, env(safe-area-inset-left)) !important;
    background: #070a0c !important;
    color: #fff !important;
  }

  .ab-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    margin-left: auto;
  }

  .ab-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    align-items: stretch !important;
    width: 100%;
    padding-top: clamp(38px, 8vh, 72px) !important;
  }

  .ab-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
  .ab-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    width: 100%;
  }

  .ab-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    width: 100%;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  }

  .ab-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    display: block;
    width: 100%;
    padding: 16px 2px;
    font-size: clamp(1.08rem, 3vw, 1.35rem) !important;
    line-height: 1.25;
  }

  .ab-header__inner > .wp-block-buttons {
    display: none !important;
  }

  .ab-review-prev,
  .ab-review-next,
  .ab-review-more,
  .ab-alex-float__close {
    min-width: 44px;
    min-height: 44px;
  }
}

@media (max-width: 900px) {
  .ab-service-video__grid > .wp-block-column {
    min-width: 0 !important;
    width: 100% !important;
  }

  .ab-service-video .ab-video {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    aspect-ratio: 16 / 9 !important;
  }

  .ab-service-video .ab-video iframe,
  .ab-service-video .ab-video > .ab-youtube-consent {
    display: block;
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
  }

  .ab-alex-frame {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: min(760px, 78dvh) !important;
    min-height: 520px !important;
  }
}

@media (max-width: 600px) {
  .ab-alex-float {
    right: max(8px, env(safe-area-inset-right)) !important;
    bottom: max(8px, env(safe-area-inset-bottom)) !important;
    left: auto !important;
    align-items: flex-end !important;
  }

  .ab-alex-float__launcher,
  .ab-alex-float__button {
    box-sizing: border-box !important;
    width: 56px !important;
    min-width: 56px !important;
    height: 56px !important;
    min-height: 56px !important;
    justify-content: center !important;
    padding: 6px !important;
    border-radius: 50% !important;
  }

  .ab-alex-float__label,
  .ab-alex-float__copy {
    display: none !important;
  }

  .ab-alex-float__icon,
  .ab-alex-float__mark {
    width: 44px !important;
    height: 44px !important;
    flex: 0 0 44px !important;
  }

  .ab-alex-float__panel {
    position: fixed !important;
    top: calc(var(--ab-vv-top, 0px) + max(8px, env(safe-area-inset-top))) !important;
    right: max(8px, env(safe-area-inset-right)) !important;
    bottom: auto !important;
    left: max(8px, env(safe-area-inset-left)) !important;
    box-sizing: border-box !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: calc(var(--ab-vv-height, 100dvh) - max(16px, env(safe-area-inset-top) + env(safe-area-inset-bottom))) !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    border-radius: 16px !important;
  }

  .ab-alex-float.is-open .ab-alex-float__launcher,
  .ab-alex-float.is-open .ab-alex-float__button {
    visibility: hidden;
    pointer-events: none;
  }

  .ab-alex-float__frame {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .ab-alex-embed {
    margin-top: 24px;
  }

  .ab-alex-frame {
    height: min(720px, 76dvh) !important;
    min-height: 500px !important;
  }
}

@media (max-width: 359px) {
  .ab-hero h1 {
    max-width: 100%;
    font-size: clamp(2.45rem, 13.6vw, 2.85rem) !important;
    line-height: 0.96 !important;
    hyphens: none !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  .ab-hero h1 mark {
    hyphens: none !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    white-space: nowrap !important;
  }

  .ab-service-hero .ab-kicker,
  .ab-page-intro .ab-kicker {
    box-sizing: border-box;
    max-width: 100%;
    white-space: normal;
  }

  .ab-service-hero h1,
  .ab-page-intro h1 {
    max-width: 100%;
    font-size: clamp(2.05rem, 12.5vw, 2.7rem) !important;
    hyphens: none;
    overflow-wrap: break-word;
  }
}

@media (max-height: 600px) and (orientation: landscape) {
  .ab-alex-float__panel {
    position: fixed !important;
    top: calc(var(--ab-vv-top, 0px) + max(6px, env(safe-area-inset-top))) !important;
    right: max(6px, env(safe-area-inset-right)) !important;
    bottom: auto !important;
    left: auto !important;
    box-sizing: border-box !important;
    width: min(430px, calc(100vw - max(12px, env(safe-area-inset-left) + env(safe-area-inset-right)))) !important;
    height: calc(var(--ab-vv-height, 100dvh) - max(12px, env(safe-area-inset-top) + env(safe-area-inset-bottom))) !important;
    min-height: 0 !important;
    max-height: none !important;
    border-radius: 14px !important;
  }

  .ab-alex-float.is-open .ab-alex-float__launcher,
  .ab-alex-float.is-open .ab-alex-float__button {
    visibility: hidden;
    pointer-events: none;
  }

  .ab-alex-float__head {
    height: 54px !important;
  }

  .ab-alex-float__frame {
    height: calc(100% - 92px) !important;
  }

  .ab-alex-frame {
    height: calc(100dvh - 120px) !important;
    min-height: 360px !important;
  }
}

html.ab-mobile-chat-open,
html.ab-mobile-chat-open body {
  overscroll-behavior: none;
}
