/* Mobile interaction layer. Loaded after the theme stylesheet. */
@media (max-width: 780px) {
  .mobile-buy{display:none!important}
  :root { --mobile-safe-bottom: env(safe-area-inset-bottom, 0px); }

  button,
  [role="button"],
  .icon-btn,
  .nav-tools a,
  .drawer a,
  .bundle-option,
  .faq summary {
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
  }

  .icon-btn,
  .hamburger,
  .cart-trigger,
  .search-close,
  .utility-head .icon-btn {
    min-width: 44px;
    min-height: 44px;
    display: inline-grid;
    place-items: center;
    padding: 8px;
  }

  .site-header .nav { grid-template-columns: 52px minmax(0, 1fr) 104px; gap: 4px; }
  .site-header .nav-tools { gap: 0; min-width: 0; }
  .site-header .nav-tools .icon-btn { flex: 0 0 44px; }
  .site-header .cart-trigger { font-size: 0; padding: 0; }
  .site-header .cart-trigger span { display: none; }
  .site-header .cart-trigger svg { width: 20px; height: 20px; }
  .site-header .cart-count { right: -2px; top: -2px; margin: 0; }
  .site-header .nav-tools { position: relative; }
  .site-header .brand { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }

  .drawer { padding: max(18px, env(safe-area-inset-top)) 22px calc(24px + var(--mobile-safe-bottom)); overflow-y: auto; }
  .drawer a { min-height: 52px; display: flex; align-items: center; }

  .single-gallery { overflow: hidden; margin-inline: -14px; }
  .mobile-gallery-track {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }
  .mobile-gallery-track::-webkit-scrollbar { display: none; }
  .mobile-gallery-slide { flex: 0 0 100%; scroll-snap-align: start; scroll-snap-stop: always; }
  .mobile-gallery-slide.single-main-image { border-radius: 0; }
  .mobile-gallery-dots { display: flex; justify-content: center; gap: 7px; padding: 12px 0 2px; }
  .mobile-gallery-dot { width: 7px; height: 7px; min-width: 7px; min-height: 7px; padding: 0; border: 0; border-radius: 50%; background: #c7c7c7; }
  .mobile-gallery-dot[aria-current="true"] { width: 20px; border-radius: 10px; background: var(--ink); }

  .review-grid,
  .product-grid.mobile-scroll {
    scrollbar-width: none;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }
  .review-grid::-webkit-scrollbar,
  .product-grid.mobile-scroll::-webkit-scrollbar { display: none; }
  .review { scroll-snap-stop: always; }

  .mobile-sticky-buy {
    position: fixed;
    z-index: 60;
    left: 0;
    right: 0;
    bottom: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(174px, 48%);
    gap: 10px;
    align-items: center;
    padding: 10px 14px calc(10px + var(--mobile-safe-bottom));
    background: rgba(255,255,255,.96);
    border-top: 1px solid #e5e2dc;
    box-shadow: 0 -10px 30px rgba(17,44,56,.12);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    transform: translateY(110%);
    transition: transform .24s ease;
  }
  .mobile-sticky-buy.is-visible { transform: translateY(0); }
  .mobile-sticky-buy__meta { min-width: 0; line-height: 1.15; }
  .mobile-sticky-buy__pack { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 12px; color: var(--muted); }
  .mobile-sticky-buy__price { display: block; margin-top: 4px; font-size: 16px; color: var(--ink); }
  .mobile-sticky-buy .btn { width: 100%; min-height: 48px; padding-inline: 14px; font-size: 12px; }
  body.has-mobile-sticky-buy { padding-bottom: calc(76px + var(--mobile-safe-bottom)); }

  .bundle-option { min-height: 64px; }
  .cart-drawer { width: min(94vw, 440px); }
  .cart-body { padding-bottom: calc(26px + var(--mobile-safe-bottom)); }
  .search-overlay button[type="submit"] { min-width: 68px; min-height: 48px; }
}

@media (max-width: 430px) {
  .product-grid.mobile-scroll {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 14px;
    margin-right: -14px;
    padding-right: 14px;
  }
  .product-grid.mobile-scroll .product-card { flex: 0 0 78%; scroll-snap-align: start; scroll-snap-stop: always; }
}

@media (prefers-reduced-motion: reduce) {
  .mobile-sticky-buy { transition: none; }
  .mobile-gallery-track, .review-grid, .product-grid.mobile-scroll { scroll-behavior: auto; }
}
