/* Mobile-first storefront polish. Keep this sheet last in the public cascade. */
:root {
  --tvc-tap: 44px;
  --tvc-mobile-gutter: clamp(16px, 4.5vw, 22px);
  --tvc-safe-bottom: env(safe-area-inset-bottom, 0px);
}
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h, 64px) + 12px); }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { max-width: 100%; }
:where(a, button, input, select, textarea) { touch-action: manipulation; }
:where(input, select, textarea) { font-size: max(16px, 1em); }
:where(button, [role="button"], input[type="button"], input[type="submit"], input[type="reset"]) { min-height: var(--tvc-tap); }
:where(a, button):focus-visible,
:where(input, select, textarea):focus-visible {
  outline: 3px solid rgba(16, 185, 129, .32);
  outline-offset: 3px;
}
@media (max-width: 768px) {
  body { overflow-x: clip; }
  main { min-width: 0; }
  .container { width: 100%; padding-inline: var(--tvc-mobile-gutter); }
  .mobile-bottom-nav { padding-bottom: var(--tvc-safe-bottom); }
  .mobile-bottom-nav a,
  .mobile-bottom-nav button { min-width: 64px; min-height: 52px; }
  .tvc-skip-link:focus { inset: 8px auto auto 8px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
