/* The shell alone owns the rounded silhouette and expanding height. */
@media (max-width:984px) {
 .floating-navigation {
  position:fixed; z-index:1200; left:0; right:0;
  bottom:calc(var(--mobile-viewport-bottom-offset, 0px) + var(--floating-navigation-gap, 5px) + env(safe-area-inset-bottom));
  width:calc(100% - 40px); max-width:390px; height:62px; margin-inline:auto;
  border-radius:31px; background:#fff; overflow:hidden;
  box-shadow:0 5px 24px rgba(0,0,0,.16);
  transition:height 420ms cubic-bezier(.22,1,.36,1);
 }
 .floating-navigation.is-expanded { z-index:100110; }
 .floating-navigation .mobile-dock {
  position:absolute!important; inset:auto 0 0!important; width:100%!important;
  margin:0!important; max-width:none!important; height:62px!important; padding:4px 10px!important;
  border-radius:0!important; box-shadow:none!important; transition:none!important;
  background:#fff!important; transform:none!important;
 }
 .floating-navigation .floating-navigation__panel {
  position:absolute!important; top:auto!important; bottom:62px!important; left:0!important; right:0!important;
  width:100%!important; max-width:none!important; margin:0!important; height:auto!important;
  max-height:calc(100dvh - 112px - env(safe-area-inset-bottom))!important;
  border:0!important; border-radius:0!important; background:#fff!important;
  box-shadow:none!important; clip-path:none!important; transform:none!important;
  transition:none!important; overflow:hidden;
 }
 .floating-navigation #js-mini-basket { overflow-y:auto; }
 .floating-navigation #js-search-overlay { padding:0!important; }
 .floating-navigation #js-search-overlay>.container {
  position:relative!important; inset:auto!important; width:100%!important;
  height:auto!important; max-height:calc(100dvh - 112px - env(safe-area-inset-bottom))!important;
  padding:8px 20px 20px!important; border:0!important; border-radius:0!important;
  box-shadow:none!important; transform:none!important;
 }
 .floating-navigation #js-search-overlay .search__backdrop { display:none!important; }
 .floating-navigation__panel.is-retiring { visibility:visible!important; opacity:1!important; pointer-events:none!important; }
 .floating-navigation #mobile-favourites-panel:not(.is-open):not(.is-retiring),
 .floating-navigation #mobile-info-panel:not(.is-open):not(.is-retiring),
 .floating-navigation #wishlist-auth-panel:not(.is-open):not(.is-retiring),
 .floating-navigation #js-mini-basket:not(.mini-basket--active):not(.is-retiring),
 .floating-navigation #js-search-overlay:not(.search--active):not(.is-retiring) { display:none!important; }
 body:has(.floating-navigation) .mobile-favourites-panel__backdrop,
 body:has(.floating-navigation) .mobile-info-panel__backdrop,
 body:has(.floating-navigation) .wishlist-auth__backdrop,
 body:has(.floating-navigation) .mini-basket__backdrop { background:transparent!important; }
 .floating-navigation .mobile-dock__item[aria-expanded="true"] {
  background:#f2f1ee; border-radius:50%; width:48px; height:48px;
 }
 html.mobile-keyboard-open .floating-navigation:not(.is-expanded) { visibility:hidden; pointer-events:none; }
 body:has(#kabooki-size-guide[open]) .floating-navigation:not(.is-expanded),
 body:has(.add-to-basket__sticky--visible:not(.sg-mobile-collapsed)) .floating-navigation:not(.is-expanded),
 body:has(.product-quick-add--open .quick-purchase:not(.sg-mobile-collapsed)) .floating-navigation:not(.is-expanded) { visibility:hidden; pointer-events:none; }
}
@media (prefers-reduced-motion:reduce) { .floating-navigation { transition:none!important; } }

/* Installed home-screen apps retain only the system safe area. */
@media (display-mode:standalone) { .floating-navigation { --floating-navigation-gap:0px; } }
html.is-standalone-app .floating-navigation { --floating-navigation-gap:0px; }

@media (max-width:984px) {
 .floating-navigation {
  transform-origin:bottom center;
  transition:height 420ms cubic-bezier(.22,1,.36,1), transform 480ms cubic-bezier(.4,0,.2,1);
 }
 .floating-navigation.is-compact:not(.is-expanded) { transform:scale(.86); }
}
@media (prefers-reduced-motion:reduce) { .floating-navigation { transition:none!important; } }

/* Restore the locked page position without inheriting smooth scrolling. */
html.navbar-scroll-restore { scroll-behavior:auto!important; }

/* Keep the document in normal flow so browser chrome retains its backdrop. */
@media (max-width:984px) {
 body.search-open, body.mobile-layer-open, body.wishlist-auth-open {
  position:static!important;
  top:auto!important;
  overflow:visible!important;
  overscroll-behavior:auto!important;
 }
 .floating-navigation__panel { overscroll-behavior:contain; }
}

/* The mobile shell owns the white surface and soft surrounding shadow. */
@media (max-width:984px) {
 .floating-navigation {
  background:#fff!important;
  border:0!important;
  box-shadow:0 0 5px rgba(0,0,0,.20)!important;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
 }
 .floating-navigation .mobile-dock,
 .floating-navigation .floating-navigation__panel,
 .floating-navigation #js-search-overlay>.container {
  background:transparent!important;
  background-image:none!important;
 }
}
