/* HomeLynx V8.1.51 — motion-only chrome: visible physical travel in/out.
   Parent: V8.1.50. Mobile presentation only; state law unchanged.

   TOP      full HomeLynx identity / product tabs / thumb controls.
   EXPLORE  property/content owns the viewport; all cosmetic chrome retracts.
   NAVIGATE reverse intent; compact product tabs + thumb controls return.
            Logo, hamburger, Neo and identity chrome wait for the true top.

   Search-sheet correction: an expanded property rail is full-scroll mode even
   when scrollTop is zero. In EXPLORE it grows into the vacated header area; in
   NAVIGATE it leaves only a compact tab strip at the top. */

:root{
  --hlx-mobile-chrome-ms:340ms;
  --hlx-mobile-chrome-ease:cubic-bezier(.20,.80,.20,1);
  --hlx-mobile-peek-top:56px;
}
.hlx-mobile-hydrator{display:none}

@media(max-width:767px){
  /* Keep the structural shell mounted, but never let it paint a white slab when
     the visible top chrome is away. The omnibox is independently reparented. */
  .hlx-v8-head{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:none!important;
    background-image:none!important;
    transition:background-color var(--hlx-mobile-chrome-ms) ease!important;
  }

  .hlx-v8-brand,
  .hlx-v8-head .hlx-intent-tabs,
  .hlx-menu-trigger,
  .hlx-neo-float,
  .hlx-os-top,
  .hlx-os-segments,
  .hlx-owner-topline,
  .hlx-finance-brand,
  .hlx-owner-auth-brand,
  .hlx-v8-searchrow.hlx-bottom-dock,
  .hlx-neo-attach-chiphost.hlx-bottom-dock-chiphost,
  #tabbar,
  .hlx-pd-dock,
  body.hlx-sheet-full .hlx-search-head{
    will-change:transform;
    transition:
      transform var(--hlx-mobile-chrome-ms) var(--hlx-mobile-chrome-ease),
      visibility 0s linear 0s!important;
    backface-visibility:hidden;
  }

  /* ---------- TOP: full orientation ---------- */
  body.hlx-mobile-chrome-top .hlx-v8-head{
    background:#fff!important;
    box-shadow:none!important;
  }
  body.hlx-mobile-chrome-top .hlx-v8-brand,
  body.hlx-mobile-chrome-top .hlx-v8-head .hlx-intent-tabs,
  body.hlx-mobile-chrome-top .hlx-menu-trigger,
  body.hlx-mobile-chrome-top .hlx-neo-float,
  body.hlx-mobile-chrome-top .hlx-os-top,
  body.hlx-mobile-chrome-top .hlx-os-segments,
  body.hlx-mobile-chrome-top .hlx-owner-topline,
  body.hlx-mobile-chrome-top .hlx-finance-brand,
  body.hlx-mobile-chrome-top .hlx-owner-auth-brand,
  body.hlx-mobile-chrome-top .hlx-v8-searchrow.hlx-bottom-dock,
  body.hlx-mobile-chrome-top .hlx-neo-attach-chiphost.hlx-bottom-dock-chiphost,
  body.hlx-mobile-chrome-top #tabbar,
  body.hlx-mobile-chrome-top .hlx-pd-dock{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }

  /* ---------- EXPLORE: nothing cosmetic ---------- */
  body.hlx-mobile-chrome-explore .hlx-v8-head,
  body.hlx-mobile-chrome-navigate .hlx-v8-head{
    background:transparent!important;
    box-shadow:none!important;
    pointer-events:none!important;
  }
  body.hlx-mobile-chrome-explore .hlx-v8-brand,
  body.hlx-mobile-chrome-explore .hlx-v8-head .hlx-intent-tabs,
  body.hlx-mobile-chrome-explore .hlx-menu-trigger,
  body.hlx-mobile-chrome-explore .hlx-neo-float,
  body.hlx-mobile-chrome-explore .hlx-os-top,
  body.hlx-mobile-chrome-explore .hlx-os-segments,
  body.hlx-mobile-chrome-explore .hlx-owner-topline,
  body.hlx-mobile-chrome-explore .hlx-finance-brand,
  body.hlx-mobile-chrome-explore .hlx-owner-auth-brand{
    opacity:1!important;
    transform:translate3d(0,-118%,0)!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transition:
      transform var(--hlx-mobile-chrome-ms) var(--hlx-mobile-chrome-ease),
      visibility 0s linear var(--hlx-mobile-chrome-ms)!important;
  }
  body.hlx-mobile-chrome-explore .hlx-neo-float{
    transform:translate3d(-50%,-118%,0)!important;
  }
  body.hlx-mobile-chrome-explore .hlx-v8-searchrow.hlx-bottom-dock,
  body.hlx-mobile-chrome-explore .hlx-neo-attach-chiphost.hlx-bottom-dock-chiphost,
  body.hlx-mobile-chrome-explore #tabbar,
  body.hlx-mobile-chrome-explore .hlx-pd-dock{
    opacity:1!important;
    transform:translate3d(-50%,calc(100% + 34px),0)!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transition:
      transform var(--hlx-mobile-chrome-ms) var(--hlx-mobile-chrome-ease),
      visibility 0s linear var(--hlx-mobile-chrome-ms)!important;
  }
  /* Controls that are not centered with left:50% keep their own X axis. */
  body.hlx-mobile-chrome-explore #tabbar,
  body.hlx-mobile-chrome-explore .hlx-pd-dock,
  body.hlx-mobile-chrome-explore .hlx-neo-attach-chiphost.hlx-bottom-dock-chiphost{
    transform:translate3d(0,calc(100% + 34px),0)!important;
  }

  /* ---------- NAVIGATE: YouTube-like compact peek ---------- */
  body.hlx-mobile-chrome-navigate .hlx-v8-brand,
  body.hlx-mobile-chrome-navigate .hlx-menu-trigger,
  body.hlx-mobile-chrome-navigate .hlx-neo-float,
  body.hlx-mobile-chrome-navigate .hlx-os-top,
  body.hlx-mobile-chrome-navigate .hlx-owner-topline,
  body.hlx-mobile-chrome-navigate .hlx-finance-brand,
  body.hlx-mobile-chrome-navigate .hlx-owner-auth-brand{
    opacity:1!important;
    transform:translate3d(0,-118%,0)!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
  body.hlx-mobile-chrome-navigate .hlx-neo-float{
    transform:translate3d(-50%,-118%,0)!important;
  }
  body.hlx-mobile-chrome-navigate .hlx-v8-head .hlx-intent-tabs,
  body.hlx-mobile-chrome-navigate .hlx-os-segments{
    opacity:1!important;
    transform:none!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }
  body.hlx-search-active.hlx-mobile-chrome-navigate .hlx-v8-head .hlx-intent-tabs{
    position:fixed!important;
    z-index:2147481100!important;
    top:max(4px,env(safe-area-inset-top,0px))!important;
    left:8px!important;
    right:8px!important;
    width:auto!important;
    max-width:none!important;
    margin:0!important;
    padding:5px 4px!important;
    min-height:48px!important;
    transform:none!important;
    border:0!important;
    border-radius:0 0 16px 16px!important;
    background:rgba(255,255,255,.96)!important;
    box-shadow:0 1px 0 rgba(11,13,12,.08),0 8px 24px rgba(11,13,12,.06)!important;
    -webkit-backdrop-filter:blur(18px)!important;
    backdrop-filter:blur(18px)!important;
  }
  body.hlx-mobile-chrome-navigate .hlx-v8-searchrow.hlx-bottom-dock,
  body.hlx-mobile-chrome-navigate .hlx-neo-attach-chiphost.hlx-bottom-dock-chiphost,
  body.hlx-mobile-chrome-navigate #tabbar,
  body.hlx-mobile-chrome-navigate .hlx-pd-dock{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }
  body.hlx-mobile-chrome-navigate .hlx-v8-searchrow.hlx-bottom-dock{
    transform:translateX(-50%)!important;
  }
  body.hlx-mobile-chrome-navigate .hlx-neo-attach-chiphost.hlx-bottom-dock-chiphost,
  body.hlx-mobile-chrome-navigate #tabbar,
  body.hlx-mobile-chrome-navigate .hlx-pd-dock{
    transform:none!important;
  }

  /* The live Buy/Rent full-results rail has a second legacy fixed search head
     and an inner #hlx-sheet-scroll. Remove that utility head during deep and
     compact-peek states, and reclaim the spacer it normally reserves. */
  body.hlx-sheet-full.hlx-mobile-chrome-explore .hlx-search-head,
  body.hlx-sheet-full.hlx-mobile-chrome-navigate .hlx-search-head{
    opacity:1!important;
    transform:translate3d(0,-118%,0)!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transition:
      transform var(--hlx-mobile-chrome-ms) var(--hlx-mobile-chrome-ease),
      visibility 0s linear var(--hlx-mobile-chrome-ms)!important;
  }
  body.hlx-sheet-full .hlx-sheet-grab{
    transition:padding-top var(--hlx-mobile-chrome-ms) var(--hlx-mobile-chrome-ease)!important;
    will-change:padding-top;
  }

  body.hlx-sheet-full.hlx-mobile-chrome-explore{
    --hlx-full-search-h:0px!important;
  }
  body.hlx-sheet-full.hlx-mobile-chrome-navigate{
    --hlx-full-search-h:var(--hlx-mobile-peek-top)!important;
  }

  /* Search sheet owns the pixels released by the full header. This is the
     missing geometry half of the V8.1.48 behavior. */
  body.hlx-search-active.hlx-mobile-chrome-explore .hlx-v8-sheet.is-slidable.is-expanded{
    height:calc(100dvh - max(8px,var(--hlx-dock-bottom,8px)))!important;
    max-height:none!important;
    border-radius:0!important;
    transition:height var(--hlx-mobile-chrome-ms) var(--hlx-mobile-chrome-ease),border-radius var(--hlx-mobile-chrome-ms) ease!important;
  }
  body.hlx-search-active.hlx-mobile-chrome-navigate .hlx-v8-sheet.is-slidable.is-expanded{
    height:calc(100dvh - var(--hlx-mobile-peek-top) - max(8px,var(--hlx-dock-bottom,8px)))!important;
    max-height:none!important;
    border-radius:0!important;
    transition:height var(--hlx-mobile-chrome-ms) var(--hlx-mobile-chrome-ease),border-radius var(--hlx-mobile-chrome-ms) ease!important;
  }

  /* Persistent escape route law. */
  body.hlx-property-detail-route .hlx-pd-back-wrap,
  .hlx-v8-results-head [data-hlx-close-results],
  [aria-modal="true"] [data-close],
  [aria-modal="true"] [aria-label*="Close" i]{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }

  .hlx-mobile-hydrator{
    position:fixed;z-index:2147481200;left:50%;
    bottom:max(16px,calc(env(safe-area-inset-bottom,0px) + 12px));
    width:30px;height:30px;margin-left:-15px;display:grid;place-items:center;
    opacity:0;transform:translateY(10px);pointer-events:none;
    transition:opacity 150ms ease,transform 190ms var(--hlx-mobile-chrome-ease);
  }
  .hlx-mobile-hydrator__ring{
    width:20px;height:20px;box-sizing:border-box;border-radius:50%;
    border:2px solid rgba(11,13,12,.18);border-top-color:#0B0D0C;
    animation:hlx-mobile-hydrator-spin .72s linear infinite;
    box-shadow:0 4px 18px rgba(11,13,12,.08);background:rgba(255,255,255,.28);
    -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  }
  body.hlx-mobile-at-bottom .hlx-mobile-hydrator{opacity:1;transform:none}
  body.hlx-mobile-bottom-settled .hlx-mobile-hydrator__ring{
    width:7px;height:7px;border:0;background:#0B0D0C;animation:none;box-shadow:none;
    transition:width 160ms ease,height 160ms ease,background 160ms ease;
  }
  @keyframes hlx-mobile-hydrator-spin{to{transform:rotate(360deg)}}
}

@media(prefers-reduced-motion:reduce){
  :root{--hlx-mobile-chrome-ms:1ms}
  .hlx-mobile-hydrator__ring{animation-duration:1.4s}
}
