/* Public navigation: shared geometry and states; existing routes/handlers remain local. */
.public-nav-icon {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.public-dock.public-dock {
  --nav-paper: #fffaf2;
  --nav-line: #d9cfc0;
  --nav-ink: #584539;
  --nav-accent: #a9232c;
  position: fixed;
  z-index: 30;
  inset: 50% 12px auto auto !important;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: 8px;
  width: 88px;
  max-width: none;
  height: auto;
  padding: 8px;
  box-sizing: border-box;
  border: 1px solid var(--nav-line);
  border-radius: 16px;
  background: var(--nav-paper);
  box-shadow: 0 6px 18px rgb(65 40 23 / 12%);
  backdrop-filter: none;
  transform: translateY(-50%);
}
.public-dock.public-dock > :is(a, button) {
  position: relative;
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: none;
  height: auto;
  min-height: 64px;
  margin: 0;
  padding: 9px 2px;
  /* Own the paint cascade, including legacy ID and promotional selectors. */
  border: 1px solid transparent !important;
  border-radius: 10px;
  color: var(--nav-ink) !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  font: 700 11px/1.25 Arial, sans-serif;
  letter-spacing: 0;
  text-decoration: none;
  text-transform: none;
  cursor: pointer;
  transform: none !important;
  filter: none !important;
  animation: none !important;
  transition: background-color 150ms ease, color 150ms ease;
}
.public-dock.public-dock > :is(a, button)::before,
.public-dock.public-dock > :is(a, button)::after { content: none; }
.public-dock.public-dock :is(.dock-ico, .task-dock-icon, span[aria-hidden="true"]:has(svg)) {
  display: flex;
  flex: 0 0 24px;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  color: inherit;
  box-shadow: none;
  filter: none;
  animation: none;
}
.public-dock.public-dock svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: none;
}
.public-dock.public-dock :is(.dock-text, .task-dock-label, b) {
  display: block;
  font: inherit;
  letter-spacing: 0;
  color: inherit;
  white-space: nowrap;
}
.public-dock.public-dock :is(.dock-status-badge, .task-dock-badge) {
  position: absolute;
  top: -4px;
  right: -3px;
  padding: 2px 4px;
  border: 1px solid var(--nav-paper);
  border-radius: 4px;
  background: #a9232c;
  color: #fffaf2;
  box-shadow: none;
  font: 700 8px/1.2 Arial, sans-serif;
  letter-spacing: 0;
  animation: none;
  transform: none;
}
.public-dock.public-dock > :is(a, button):is(.active, [aria-current="page"], [aria-expanded="true"]) {
  background: var(--nav-accent) !important;
  color: #fffaf2 !important;
}
@media (hover: hover) {
  .public-dock.public-dock > :is(a, button):hover:not(:disabled, [aria-disabled="true"], .active, [aria-current="page"], [aria-expanded="true"]) { background: #f1e3d3 !important; color: #8c2027 !important; }
}
.public-dock.public-dock > :is(a, button):focus-visible {
  outline: 2px solid var(--nav-accent) !important;
  outline-offset: 2px !important;
}
.public-dock.public-dock > :is(a, button):active:not(:disabled, [aria-disabled="true"], .active, [aria-current="page"], [aria-expanded="true"]) { background: #ead5be !important; color: #8c2027 !important; }
.public-dock.public-dock > :is(a, button):is(:disabled, [aria-disabled="true"]) {
  opacity: .5;
  cursor: not-allowed;
}
.public-dock.public-dock--landing { display: none; }
body.shop-embedded .public-dock.public-dock { display: none; }
.spotlight-event-quicklink .public-nav-icon { width: 20px; height: 20px; }
@media (min-width: 1101px) {
  /* Reserve equal gutters on content, never on body or full-width headers.
     Keep each page's own width, max-width and auto margins intact. */
  :where(body:has(.public-dock:not(.public-dock--landing)):not(.shop-embedded)) > main {
    width: min(100%, calc(100vw - 224px));
  }
  body:has(> .page-widget.public-dock) > main {
    /* Event and Lucky Draw express their original limit through width. */
    width: min(1120px, calc(100vw - 224px));
  }
  body:has(> .page-widget.public-dock #shopBtn) > main {
    width: min(1400px, calc(100vw - 224px));
  }
  body:has(.quick-widgets.public-dock) > .app-shell > :is(.site-container, .promo) {
    max-width: calc(100vw - 224px);
  }
}
@media (max-width: 1100px) {
  .public-dock.public-dock {
    inset: auto 0 0 0 !important;
    flex-direction: row;
    width: 100%;
    max-width: 100%;
    gap: 8px;
    padding: 8px max(12px, env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
    border-width: 1px 0 0;
    border-radius: 0;
    transform: none;
  }
  .public-dock.public-dock > :is(a, button) { min-height: 56px; padding: 6px 2px; }
  body:has(.public-dock:not(.public-dock--landing)):not(.shop-embedded) { padding-bottom: calc(88px + env(safe-area-inset-bottom)); }
  html:has(.public-dock:not(.public-dock--landing)) { scroll-padding-bottom: calc(88px + env(safe-area-inset-bottom)); }
}
@media (max-width: 767px) {
  .public-dock.public-dock--landing { display: flex; }
  body:has(.public-dock--landing) { padding-bottom: calc(88px + env(safe-area-inset-bottom)); }
  html:has(.public-dock--landing) { scroll-padding-bottom: calc(88px + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  .public-dock.public-dock > :is(a, button) { transition: none; }
}
