/* Shine Suppliers – site-wide motion & header-stability layer
 * -----------------------------------------------------------
 * 1. Header stability: the theme's store-header[sticky] script hides the header
 *    by applying transform: translateY(-Npx) while scrolling DOWN (revealing it
 *    again on scroll up). That hide/reveal is the "glitch". We keep the header
 *    permanently pinned by neutralising that transform.
 * 2. Entrance / scroll-reveal animation primitives (paired with shine-motion.js).
 */

/* ---- Stable, always-visible sticky header ---- */
.shopify-section--header {
  transform: none !important;
  transition: background-color .3s ease, box-shadow .3s ease !important;
}

/* ---- Suppress the Orbe geolocation "Visiting from {country}?" popup ----
   (a third-party app modal that has no backend offline and shows a broken
   {country} placeholder). */
#md-app-embed__modal,
.md-modal__container,
.md-modal__overlay,
.md-modal__backdrop {
  display: none !important;
}

/* ---- Entrance reveal ---- */
.shine-reveal {
  opacity: 0;
  transform: translateY(26px);
  transition:
    opacity .75s cubic-bezier(.16, 1, .3, 1),
    transform .75s cubic-bezier(.16, 1, .3, 1);
  transition-delay: var(--shine-delay, 0s);
  will-change: opacity, transform;
}
.shine-reveal.is-in {
  opacity: 1;
  transform: none;
}

/* Animations run regardless of the OS "reduce motion" setting (per site-owner
   request), so no reduced-motion override here. The JS safety timeout still
   guarantees content is revealed even if the observer misfires. */

/* ---- Lenis smooth-scroll base (from Lenis docs) ---- */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }
.lenis.lenis-smooth iframe { pointer-events: none; }
