/* CityPaws public-store loading screen. Kept intentionally isolated from the
   admin loader and the storefront's normal header/footer styling. */
body > #globalLoadingScreen.store-loading-screen {
  --store-loading-ink: #263b2d;
  --store-loading-muted: #827a6b;
  --store-loading-gold: #b9954e;
  --store-loading-green: #31583c;
  position: fixed;
  z-index: 2147483001;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: 100vh;
  min-height: 100dvh;
  padding: clamp(26px, 6vh, 56px) 18px calc(78px + env(safe-area-inset-bottom));
  overflow-x: hidden;
  overflow-y: auto;
  background: #faf8f5;
  color: var(--store-loading-ink);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 400ms ease, visibility 400ms ease;
  isolation: isolate;
  text-align: center;
}

body > #globalLoadingScreen.store-loading-screen[hidden],
body > #globalLoadingScreen.store-loading-screen .store-loading-error[hidden],
body > #globalLoadingScreen.store-loading-screen .store-loading-retry[hidden] {
  display: none !important;
}

body > #globalLoadingScreen.store-loading-screen.is-visible {
  opacity: 1;
  visibility: visible;
  transition: none;
  pointer-events: auto;
}

body > #globalLoadingScreen.store-loading-screen *,
body > #globalLoadingScreen.store-loading-screen *::before,
body > #globalLoadingScreen.store-loading-screen *::after {
  box-sizing: border-box;
}

body > #globalLoadingScreen.store-loading-screen .store-loading-paws {
  position: absolute;
  z-index: -1;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

body > #globalLoadingScreen.store-loading-screen .store-loading-paw {
  position: absolute;
  top: var(--paw-y);
  left: var(--paw-x);
  display: block;
  width: var(--paw-size);
  height: var(--paw-size);
  max-width: 16vw;
  max-height: 16vw;
  color: #b4955d;
  fill: currentColor;
  opacity: var(--paw-opacity, .2);
  transform: translate(-50%, -50%) rotate(var(--paw-rotation, 0deg));
  pointer-events: none;
}

body > #globalLoadingScreen.store-loading-screen .store-loading-content {
  position: relative;
  z-index: 1;
  display: flex;
  flex: 0 1 440px;
  flex-direction: column;
  align-items: center;
  width: min(100%, 440px);
  min-width: 0;
  margin: auto;
  padding: 10px 0;
  font-family: inherit;
}

body > #globalLoadingScreen.store-loading-screen .store-loading-emblem {
  display: block;
  flex: 0 0 140px;
  width: 140px !important;
  height: 140px !important;
  max-width: min(140px, 45vw);
  margin: 0 auto 14px;
  border: 0;
  border-radius: 0;
  object-fit: contain !important;
  object-position: center;
  filter: drop-shadow(0 8px 12px rgb(95 73 31 / 14%));
  animation: store-loading-breathe 3.8s ease-in-out infinite;
}

body > #globalLoadingScreen.store-loading-screen .store-loading-spinner {
  display: block;
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  margin: 1px auto 20px;
  border: 4px solid rgb(49 88 60 / 13%);
  border-top-color: var(--store-loading-green);
  border-right-color: var(--store-loading-gold);
  border-radius: 50%;
  animation: store-loading-spin 1.05s linear infinite;
}

body > #globalLoadingScreen.store-loading-screen .store-loading-title {
  display: block;
  width: 100%;
  margin: 0 0 6px;
  color: var(--store-loading-ink);
  font-size: clamp(21px, 5.8vw, 25px);
  font-weight: 750;
  line-height: 1.45;
  overflow-wrap: anywhere;
  text-wrap: pretty;
}

body > #globalLoadingScreen.store-loading-screen .store-loading-help {
  display: block;
  width: 100%;
  margin: 0;
  color: var(--store-loading-muted);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.7;
  overflow-wrap: anywhere;
}

body > #globalLoadingScreen.store-loading-screen .store-loading-brand {
  display: block;
  width: 100%;
  margin: 15px 0 0;
  color: #927742;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.6;
  overflow-wrap: anywhere;
}

body > #globalLoadingScreen.store-loading-screen .store-loading-error {
  display: block;
  width: 100%;
  margin: 15px 0 0;
  padding: 10px 12px;
  border: 1px solid rgb(153 74 54 / 22%);
  border-radius: 10px;
  background: rgb(153 74 54 / 6%);
  color: #793f30;
  font-size: 14px;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

body > #globalLoadingScreen.store-loading-screen .store-loading-retry {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 118px;
  min-height: 43px;
  margin: 12px 0 0;
  padding: 9px 22px;
  border: 1px solid var(--store-loading-green);
  border-radius: 999px;
  background: var(--store-loading-green);
  color: #faf8f5;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

body > #globalLoadingScreen.store-loading-screen .store-loading-retry:hover {
  background: #264a32;
  transform: translateY(-1px);
}

body > #globalLoadingScreen.store-loading-screen .store-loading-retry:focus-visible {
  outline: 3px solid var(--store-loading-gold);
  outline-offset: 4px;
}

body > #globalLoadingScreen.store-loading-screen .store-loading-trust {
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
  box-shadow: none;
  position: absolute;
  right: 16px;
  bottom: max(18px, env(safe-area-inset-bottom));
  left: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-width: 0;
  color: #927d4d;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

body > #globalLoadingScreen.store-loading-screen .store-loading-trust svg {
  display: block;
  flex: 0 0 15px;
  width: 15px;
  height: 17px;
  color: var(--store-loading-gold);
}

@keyframes store-loading-spin {
  to { transform: rotate(360deg); }
}

@keyframes store-loading-breathe {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.025); }
}

@media (max-width: 360px) {
  body > #globalLoadingScreen.store-loading-screen {
    padding-right: 14px;
    padding-left: 14px;
  }

  body > #globalLoadingScreen.store-loading-screen .store-loading-emblem {
    flex-basis: 126px;
    width: 126px !important;
    height: 126px !important;
    margin-bottom: 12px;
  }

  body > #globalLoadingScreen.store-loading-screen .store-loading-spinner {
    flex-basis: 44px;
    width: 44px;
    height: 44px;
    margin-bottom: 17px;
  }
}

@media (min-width: 768px) {
  body > #globalLoadingScreen.store-loading-screen {
    padding-bottom: calc(88px + env(safe-area-inset-bottom));
  }

  body > #globalLoadingScreen.store-loading-screen .store-loading-emblem {
    margin-bottom: 17px;
  }

  body > #globalLoadingScreen.store-loading-screen .store-loading-trust {
    bottom: max(24px, env(safe-area-inset-bottom));
  }
}

@media (prefers-reduced-motion: reduce) {
  body > #globalLoadingScreen.store-loading-screen,
  body > #globalLoadingScreen.store-loading-screen *,
  body > #globalLoadingScreen.store-loading-screen *::before,
  body > #globalLoadingScreen.store-loading-screen *::after {
    scroll-behavior: auto !important;
    animation: none !important;
    transition-duration: 0.01ms !important;
  }
}
