/* Plain (non-Tailwind) helpers for behaviors that don't need utilities. */

html { scroll-behavior: smooth; }

/* Desktop nav dropdowns: reveal on hover or keyboard focus. */
.nav-menu {
  opacity: 0;
  visibility: hidden;
  transition: opacity .15s ease, visibility .15s ease;
}
.nav-group:hover .nav-menu,
.nav-group:focus-within .nav-menu {
  opacity: 1;
  visibility: visible;
}

/* Share popover */
.share-menu[hidden] { display: none; }

/* Taller header row so the logo artwork (fine cat line detail) reads clearly.
   Overrides the Tailwind height utilities on the header bar and logo; the
   footer logo is untouched. */
header > div.h-16 { height: 5rem; }
header a[aria-label="Candy's Cats home"] img { height: 3.75rem; }
@media (min-width: 640px) {
  header > div.h-16 { height: 6rem; }
  header a[aria-label="Candy's Cats home"] img { height: 4.75rem; }
}

/* "Loading…" placeholder for live figures (home-page & kiosk stats) shown
   until the real number is fetched. Smaller and muted so it reads as a
   status message rather than a value; gently pulses (disabled under
   reduced-motion by the block below, leaving readable static text). */
.stat-loading {
  display: inline-block;
  font-family: "Inter", ui-sans-serif, system-ui, sans-serif;
  font-weight: 500;
  letter-spacing: .02em;
  color: #6b7280;
  vertical-align: middle;
  animation: stat-pulse 1.2s ease-in-out infinite;
}
@keyframes stat-pulse { 0%, 100% { opacity: .45; } 50% { opacity: 1; } }

/* Honor reduced-motion preferences */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; animation: none !important; }
}
