/* Core phone chrome shared by every theme. */
/* The install button and its iOS hint stay hidden until the script knows the app can be installed. */
[data-pwa-install][hidden], [data-pwa-ios-hint][hidden] { display: none !important; }

/* Notices ("Added to cart", "Removed from wishlist" ...) never cover the header or its account buttons: they appear at the bottom, centred on large screens and above the tab bar (and the buy bar) on phones. Shared by every theme. */
body.store-shell .wh-toast-wrap { top: auto; bottom: 28px; inset-inline: 16px; align-items: center; }
.store-shell .wh-toast, [dir="rtl"] .store-shell .wh-toast { max-width: min(420px, 100%); animation-name: wh-toast-up; }
@keyframes wh-toast-up { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 768px) {
  body.store-shell .wh-toast-wrap { bottom: calc(84px + env(safe-area-inset-bottom)); }
  body.store-shell:has(.whb:not([hidden])) .wh-toast-wrap { bottom: calc(150px + env(safe-area-inset-bottom)); }
  .store-shell .wh-toast { width: 100%; max-width: none; }
}

/* Text for screen readers only: stays in the page but takes no room. */
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
