@tokenoftrust/storefront-runner 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (337) hide show
  1. package/LICENSE +58 -0
  2. package/README.md +40 -0
  3. package/apps/storefront/.dev.vars.example +41 -0
  4. package/apps/storefront/.env.example +24 -0
  5. package/apps/storefront/astro.config.mjs +245 -0
  6. package/apps/storefront/env.d.ts +155 -0
  7. package/apps/storefront/lib/ensure-preview-reconcile-secret.sh +31 -0
  8. package/apps/storefront/lib/resolve-cf-token.sh +48 -0
  9. package/apps/storefront/lib/resolve-tot-credentials.sh +69 -0
  10. package/apps/storefront/migrations/0000_baseline.sql +54 -0
  11. package/apps/storefront/migrations/0001_products_fts.sql +9 -0
  12. package/apps/storefront/migrations/README.md +54 -0
  13. package/apps/storefront/migrations/meta/0000_snapshot.json +347 -0
  14. package/apps/storefront/migrations/meta/0001_snapshot.json +347 -0
  15. package/apps/storefront/migrations/meta/_journal.json +20 -0
  16. package/apps/storefront/package.json +41 -0
  17. package/apps/storefront/public/brand/northwind-logo-dark.svg +4 -0
  18. package/apps/storefront/public/brand/northwind-logo-light.svg +4 -0
  19. package/apps/storefront/public/brand/northwind-og.svg +13 -0
  20. package/apps/storefront/public/favicon.svg +5 -0
  21. package/apps/storefront/public/js/dashboard-team.js +147 -0
  22. package/apps/storefront/public/js/dashboard-vendor-search.js +115 -0
  23. package/apps/storefront/src/components/Badge.astro +34 -0
  24. package/apps/storefront/src/components/Breadcrumbs.astro +45 -0
  25. package/apps/storefront/src/components/CollectionCard.astro +56 -0
  26. package/apps/storefront/src/components/EmptyState.astro +35 -0
  27. package/apps/storefront/src/components/Img.astro +68 -0
  28. package/apps/storefront/src/components/ProductCard.astro +228 -0
  29. package/apps/storefront/src/components/Section.astro +39 -0
  30. package/apps/storefront/src/components/Seo.astro +70 -0
  31. package/apps/storefront/src/components/WidgetFrame.astro +34 -0
  32. package/apps/storefront/src/components/auth/AuthBadge.astro +44 -0
  33. package/apps/storefront/src/components/chrome/AnnouncementBar.astro +108 -0
  34. package/apps/storefront/src/components/chrome/MegaMenu.astro +26 -0
  35. package/apps/storefront/src/components/chrome/NavDropdown.astro +116 -0
  36. package/apps/storefront/src/components/chrome/SiteFooter.astro +181 -0
  37. package/apps/storefront/src/components/chrome/SiteHeader.astro +181 -0
  38. package/apps/storefront/src/components/chrome/UtilityNav.astro +79 -0
  39. package/apps/storefront/src/components/commerce/FoxyLoader.astro +23 -0
  40. package/apps/storefront/src/components/commerce/PriceDisplay.astro +91 -0
  41. package/apps/storefront/src/components/commerce/ProductCarousel.astro +197 -0
  42. package/apps/storefront/src/components/commerce/ProductGrid.astro +75 -0
  43. package/apps/storefront/src/components/commerce/RatingStars.astro +58 -0
  44. package/apps/storefront/src/components/compliance/NicotineWarning.astro +33 -0
  45. package/apps/storefront/src/components/home/Hero.astro +164 -0
  46. package/apps/storefront/src/components/islands/AgeGate.tsx +105 -0
  47. package/apps/storefront/src/components/islands/ImageGallery.tsx +237 -0
  48. package/apps/storefront/src/components/islands/IsolatedAgeGate.tsx +73 -0
  49. package/apps/storefront/src/components/islands/MobileNav.tsx +239 -0
  50. package/apps/storefront/src/components/islands/QuickView.tsx +138 -0
  51. package/apps/storefront/src/components/islands/RecentlyViewed.tsx +122 -0
  52. package/apps/storefront/src/components/islands/SavedList.tsx +99 -0
  53. package/apps/storefront/src/components/islands/SearchTypeahead.tsx +248 -0
  54. package/apps/storefront/src/components/islands/VariantSelector.tsx +378 -0
  55. package/apps/storefront/src/components/marketing/CardGrid.astro +72 -0
  56. package/apps/storefront/src/components/marketing/CodeSample.astro +20 -0
  57. package/apps/storefront/src/components/marketing/CtaBand.astro +24 -0
  58. package/apps/storefront/src/components/marketing/Faq.astro +37 -0
  59. package/apps/storefront/src/components/marketing/Integrations.astro +63 -0
  60. package/apps/storefront/src/components/marketing/MarketingBlocks.astro +53 -0
  61. package/apps/storefront/src/components/marketing/MarketingCtas.astro +48 -0
  62. package/apps/storefront/src/components/marketing/MarketingHero.astro +72 -0
  63. package/apps/storefront/src/components/marketing/ProofStrip.astro +37 -0
  64. package/apps/storefront/src/components/marketing/SplitCompare.astro +53 -0
  65. package/apps/storefront/src/components/marketing/Steps.astro +36 -0
  66. package/apps/storefront/src/components/marketing/Testimonials.astro +38 -0
  67. package/apps/storefront/src/components/marketing/TrustBar.astro +22 -0
  68. package/apps/storefront/src/components/nav/Footer.astro +148 -0
  69. package/apps/storefront/src/components/nav/Header.astro +190 -0
  70. package/apps/storefront/src/components/plp/ActiveFilters.astro +79 -0
  71. package/apps/storefront/src/components/plp/FacetSidebar.astro +146 -0
  72. package/apps/storefront/src/components/plp/Pagination.astro +99 -0
  73. package/apps/storefront/src/components/plp/SortSelect.astro +64 -0
  74. package/apps/storefront/src/config/devTenants.ts +16 -0
  75. package/apps/storefront/src/config/kvTenantResolver.ts +87 -0
  76. package/apps/storefront/src/config/resolver.ts +46 -0
  77. package/apps/storefront/src/config/tenants.ts +193 -0
  78. package/apps/storefront/src/layouts/Layout.astro +303 -0
  79. package/apps/storefront/src/lib/analytics/index.ts +47 -0
  80. package/apps/storefront/src/lib/auth/brokerAssertion.ts +136 -0
  81. package/apps/storefront/src/lib/auth/devAuth.ts +90 -0
  82. package/apps/storefront/src/lib/auth/gatePage.ts +81 -0
  83. package/apps/storefront/src/lib/auth/identityToken.ts +341 -0
  84. package/apps/storefront/src/lib/auth/loginGate.ts +107 -0
  85. package/apps/storefront/src/lib/auth/route.ts +146 -0
  86. package/apps/storefront/src/lib/auth/session.ts +203 -0
  87. package/apps/storefront/src/lib/auth/totAccessClient.ts +503 -0
  88. package/apps/storefront/src/lib/basePath.ts +41 -0
  89. package/apps/storefront/src/lib/cfImage.ts +55 -0
  90. package/apps/storefront/src/lib/chrome/model.ts +65 -0
  91. package/apps/storefront/src/lib/colors.ts +97 -0
  92. package/apps/storefront/src/lib/content-edit/client.ts +230 -0
  93. package/apps/storefront/src/lib/content-edit/index.ts +14 -0
  94. package/apps/storefront/src/lib/content-edit/route.ts +25 -0
  95. package/apps/storefront/src/lib/content-edit/types.ts +19 -0
  96. package/apps/storefront/src/lib/cspStaticHashes.ts +24 -0
  97. package/apps/storefront/src/lib/d1/catalog.ts +289 -0
  98. package/apps/storefront/src/lib/dashboard/staffAdmission.ts +43 -0
  99. package/apps/storefront/src/lib/dashboard/staffVendorAccess.ts +449 -0
  100. package/apps/storefront/src/lib/dashboard/tenantSelection.ts +136 -0
  101. package/apps/storefront/src/lib/dashboard/vendorQuery.ts +61 -0
  102. package/apps/storefront/src/lib/demoGate.ts +113 -0
  103. package/apps/storefront/src/lib/dev/ai-widget-client.js +127 -0
  104. package/apps/storefront/src/lib/dev/cliSignInCode.ts +132 -0
  105. package/apps/storefront/src/lib/diag/redact.ts +20 -0
  106. package/apps/storefront/src/lib/edgeCache.ts +128 -0
  107. package/apps/storefront/src/lib/email/magicLinkInviteEmail.ts +62 -0
  108. package/apps/storefront/src/lib/env.ts +60 -0
  109. package/apps/storefront/src/lib/fixtures/sampleProducts.ts +130 -0
  110. package/apps/storefront/src/lib/format.ts +29 -0
  111. package/apps/storefront/src/lib/foxyCommerce.ts +49 -0
  112. package/apps/storefront/src/lib/imageAttrs.ts +55 -0
  113. package/apps/storefront/src/lib/jsonld.ts +136 -0
  114. package/apps/storefront/src/lib/maintenance.ts +71 -0
  115. package/apps/storefront/src/lib/memoryKv.ts +32 -0
  116. package/apps/storefront/src/lib/messaging/messagesClient.ts +143 -0
  117. package/apps/storefront/src/lib/placeholder.ts +99 -0
  118. package/apps/storefront/src/lib/previewReload.ts +125 -0
  119. package/apps/storefront/src/lib/rawMarketingHtml.ts +133 -0
  120. package/apps/storefront/src/lib/search/index.ts +74 -0
  121. package/apps/storefront/src/lib/sections.ts +129 -0
  122. package/apps/storefront/src/lib/securityHeaders.ts +31 -0
  123. package/apps/storefront/src/lib/storyblok/content-model.ts +289 -0
  124. package/apps/storefront/src/lib/storyblok/provider.ts +524 -0
  125. package/apps/storefront/src/lib/tenantRouting.ts +91 -0
  126. package/apps/storefront/src/lib/tot/ToTClient.ts +177 -0
  127. package/apps/storefront/src/lib/tot/d1Client.ts +62 -0
  128. package/apps/storefront/src/lib/tot/query.ts +187 -0
  129. package/apps/storefront/src/lib/tot/totClientInterface.ts +30 -0
  130. package/apps/storefront/src/lib/url.ts +119 -0
  131. package/apps/storefront/src/lib/wishlist.ts +63 -0
  132. package/apps/storefront/src/middleware/index.ts +413 -0
  133. package/apps/storefront/src/pages/404.astro +61 -0
  134. package/apps/storefront/src/pages/[...slug].astro +90 -0
  135. package/apps/storefront/src/pages/api/auth/logout.ts +21 -0
  136. package/apps/storefront/src/pages/api/auth/magic-exchange.ts +107 -0
  137. package/apps/storefront/src/pages/api/auth/send.ts +85 -0
  138. package/apps/storefront/src/pages/api/auth/verify.ts +135 -0
  139. package/apps/storefront/src/pages/api/cache-purge.ts +44 -0
  140. package/apps/storefront/src/pages/api/content-edit/ai-edit.ts +64 -0
  141. package/apps/storefront/src/pages/api/csp-report.ts +25 -0
  142. package/apps/storefront/src/pages/api/dashboard/enter-vendor.ts +124 -0
  143. package/apps/storefront/src/pages/api/dashboard/vendor-search.ts +120 -0
  144. package/apps/storefront/src/pages/api/dev/cli-signin-code.ts +44 -0
  145. package/apps/storefront/src/pages/api/newsletter.ts +104 -0
  146. package/apps/storefront/src/pages/api/request-access.ts +172 -0
  147. package/apps/storefront/src/pages/auth/login.astro +149 -0
  148. package/apps/storefront/src/pages/auth/magic.astro +105 -0
  149. package/apps/storefront/src/pages/capabilities.astro +292 -0
  150. package/apps/storefront/src/pages/collections/[handle].astro +154 -0
  151. package/apps/storefront/src/pages/collections/index.astro +59 -0
  152. package/apps/storefront/src/pages/dashboard/[appDomain]/index.astro +100 -0
  153. package/apps/storefront/src/pages/dashboard/[appDomain]/team.astro +154 -0
  154. package/apps/storefront/src/pages/dashboard/index.astro +160 -0
  155. package/apps/storefront/src/pages/dev.astro +653 -0
  156. package/apps/storefront/src/pages/index.astro +290 -0
  157. package/apps/storefront/src/pages/llms.txt.ts +92 -0
  158. package/apps/storefront/src/pages/products/[handle].astro +443 -0
  159. package/apps/storefront/src/pages/robots.txt.ts +24 -0
  160. package/apps/storefront/src/pages/saved.astro +35 -0
  161. package/apps/storefront/src/pages/search.astro +150 -0
  162. package/apps/storefront/src/pages/sitemap.xml.ts +78 -0
  163. package/apps/storefront/src/pages/style-guide/[tenant]/[theme].astro +646 -0
  164. package/apps/storefront/src/pages/style-guide/[tenant]/index.astro +85 -0
  165. package/apps/storefront/src/pages/style-guide/index.astro +94 -0
  166. package/apps/storefront/src/pages/tenants/[id]/[...path].ts +57 -0
  167. package/apps/storefront/src/styles/global.css +277 -0
  168. package/apps/storefront/src/themes/reference.ts +61 -0
  169. package/apps/storefront/src/themes/schema.ts +111 -0
  170. package/apps/storefront/src/themes/tenants/index.ts +51 -0
  171. package/apps/storefront/tsconfig.json +16 -0
  172. package/apps/storefront/vitest.config.ts +22 -0
  173. package/apps/storefront/wrangler.toml +175 -0
  174. package/package.json +23 -0
  175. package/packages/public-runtime/LICENSE +58 -0
  176. package/packages/public-runtime/package.json +22 -0
  177. package/packages/public-runtime/src/binary-path.ts +68 -0
  178. package/packages/public-runtime/src/capabilities.ts +89 -0
  179. package/packages/public-runtime/src/catalog-api.ts +81 -0
  180. package/packages/public-runtime/src/catalog-d1.ts +192 -0
  181. package/packages/public-runtime/src/csp.ts +109 -0
  182. package/packages/public-runtime/src/customization-preview.ts +197 -0
  183. package/packages/public-runtime/src/customization-reconcile.ts +63 -0
  184. package/packages/public-runtime/src/customization-runtime.ts +157 -0
  185. package/packages/public-runtime/src/customization-scripts.ts +64 -0
  186. package/packages/public-runtime/src/customization-versioning.ts +95 -0
  187. package/packages/public-runtime/src/foxy.ts +184 -0
  188. package/packages/public-runtime/src/index.ts +30 -0
  189. package/packages/public-runtime/src/product.ts +159 -0
  190. package/packages/public-runtime/src/search.ts +45 -0
  191. package/packages/public-runtime/src/tenant-assets.ts +444 -0
  192. package/packages/public-runtime/src/tenant.ts +243 -0
  193. package/packages/public-runtime/tsconfig.json +8 -0
  194. package/packages/public-runtime/vitest.config.ts +8 -0
  195. package/pnpm-workspace.yaml +7 -0
  196. package/scripts/build/copy-tenant-assets.mjs +69 -0
  197. package/scripts/tot-dev.mjs +439 -0
  198. package/tenants/bigdvapor/content/blog.json +52 -0
  199. package/tenants/bigdvapor/content/chrome.html +149 -0
  200. package/tenants/bigdvapor/content/chrome.json +47 -0
  201. package/tenants/bigdvapor/content/home.html +463 -0
  202. package/tenants/bigdvapor/content/home.json +73 -0
  203. package/tenants/bigdvapor/content/pages/about.json +5 -0
  204. package/tenants/bigdvapor/content/pages/privacy.json +6 -0
  205. package/tenants/bigdvapor/content/pages/shipping-returns.json +6 -0
  206. package/tenants/bigdvapor/content/pages-html/blogs/news.html +86 -0
  207. package/tenants/bigdvapor/content/pages-html/pages/about-us.html +106 -0
  208. package/tenants/bigdvapor/content/pages-html/pages/contact-us.html +61 -0
  209. package/tenants/bigdvapor/content/pages-html/pages/privacy-policy.html +72 -0
  210. package/tenants/bigdvapor/content/pages-html/pages/shipping-returns.html +172 -0
  211. package/tenants/bigdvapor/content/themes/bigd-navy.json +109 -0
  212. package/tenants/bigdvapor/public/img/brands/adjust-vape-disposable.png +0 -0
  213. package/tenants/bigdvapor/public/img/brands/again-vape-disposable.png +0 -0
  214. package/tenants/bigdvapor/public/img/brands/al-fakher-vape-disposable.png +0 -0
  215. package/tenants/bigdvapor/public/img/brands/arro-vape-disposable.png +0 -0
  216. package/tenants/bigdvapor/public/img/brands/cookies-vape-disposable.png +0 -0
  217. package/tenants/bigdvapor/public/img/brands/core-vape-disposable.png +0 -0
  218. package/tenants/bigdvapor/public/img/brands/cyclone-vape-disposable.png +0 -0
  219. package/tenants/bigdvapor/public/img/brands/dinner-lady-vape-disposable.png +0 -0
  220. package/tenants/bigdvapor/public/img/brands/extre-bar-vape-disposable.png +0 -0
  221. package/tenants/bigdvapor/public/img/brands/fifty-bar-vape-disposable.jpg +0 -0
  222. package/tenants/bigdvapor/public/img/brands/firerose-vape-disposable.jpg +0 -0
  223. package/tenants/bigdvapor/public/img/brands/flavor-beast-vape-disposable.jpg +0 -0
  224. package/tenants/bigdvapor/public/img/brands/foger-vape-disposable.png +0 -0
  225. package/tenants/bigdvapor/public/img/brands/kk-energy-vape-disposable.png +0 -0
  226. package/tenants/bigdvapor/public/img/brands/kumi-vape-disposable.png +0 -0
  227. package/tenants/bigdvapor/public/img/brands/lost-vape-dispoable.png +0 -0
  228. package/tenants/bigdvapor/public/img/brands/melo-labs-vape-disposable.png +0 -0
  229. package/tenants/bigdvapor/public/img/brands/mixo-vape-disposable.webp +0 -0
  230. package/tenants/bigdvapor/public/img/brands/one-tank-vape-disposable.jpg +0 -0
  231. package/tenants/bigdvapor/public/img/brands/oxbar-vape-disposable.webp +0 -0
  232. package/tenants/bigdvapor/public/img/brands/pillow-talk-vape-disposable.jpg +0 -0
  233. package/tenants/bigdvapor/public/img/brands/pod-king-vape-disposable.jpg +0 -0
  234. package/tenants/bigdvapor/public/img/brands/raz-vape-disposable.png +0 -0
  235. package/tenants/bigdvapor/public/img/hero-texas.jpg +0 -0
  236. package/tenants/bigdvapor/public/img/og.jpg +0 -0
  237. package/tenants/bigdvapor/public/img/pages/AdobeStock_202106312_web.jpg +0 -0
  238. package/tenants/bigdvapor/public/img/pages/CREW_web.jpg +0 -0
  239. package/tenants/bigdvapor/public/img/pages/Hero-Image.jpg +0 -0
  240. package/tenants/bigdvapor/public/img/tiles/adjust.png +0 -0
  241. package/tenants/bigdvapor/public/img/tiles/again.png +0 -0
  242. package/tenants/bigdvapor/public/img/tiles/al-fakher.png +0 -0
  243. package/tenants/bigdvapor/public/img/tiles/arro.png +0 -0
  244. package/tenants/bigdvapor/public/img/tiles/cookies.png +0 -0
  245. package/tenants/bigdvapor/public/img/tiles/core.png +0 -0
  246. package/tenants/bigdvapor/public/img/tiles/cyclone.png +0 -0
  247. package/tenants/bigdvapor/public/img/tiles/disposables.svg +23 -0
  248. package/tenants/bigdvapor/public/logo-wordmark.png +0 -0
  249. package/tenants/bigdvapor/public/pages/home.css +118 -0
  250. package/tenants/bigdvapor/public/pages/mkt.css +185 -0
  251. package/tenants/bigdvapor/public/pages/page.css +148 -0
  252. package/tenants/bigdvapor/public/themes/bigd-navy.css +73 -0
  253. package/tenants/bigdvapor/theme.json +12 -0
  254. package/tenants/giantvapes/content/chrome.html +152 -0
  255. package/tenants/giantvapes/content/chrome.json +94 -0
  256. package/tenants/giantvapes/content/home.html +194 -0
  257. package/tenants/giantvapes/content/home.json +50 -0
  258. package/tenants/giantvapes/content/pages/about.json +10 -0
  259. package/tenants/giantvapes/content/pages/privacy.json +6 -0
  260. package/tenants/giantvapes/content/pages/shipping-returns.json +6 -0
  261. package/tenants/giantvapes/content/pages-html/blogs/news.html +68 -0
  262. package/tenants/giantvapes/content/pages-html/pages/about-us.html +95 -0
  263. package/tenants/giantvapes/content/pages-html/pages/contact-us.html +68 -0
  264. package/tenants/giantvapes/content/pages-html/pages/privacy-policy.html +65 -0
  265. package/tenants/giantvapes/content/pages-html/pages/shipping-returns.html +77 -0
  266. package/tenants/giantvapes/content/themes/giant-navy.json +73 -0
  267. package/tenants/giantvapes/public/img/hero-suicide-bunny.jpg +0 -0
  268. package/tenants/giantvapes/public/img/hero.webp +0 -0
  269. package/tenants/giantvapes/public/img/og.jpg +0 -0
  270. package/tenants/giantvapes/public/logo-wordmark.png +0 -0
  271. package/tenants/giantvapes/public/pages/home.css +120 -0
  272. package/tenants/giantvapes/public/pages/mkt.css +185 -0
  273. package/tenants/giantvapes/public/pages/page.css +155 -0
  274. package/tenants/giantvapes/public/themes/giant-navy.css +76 -0
  275. package/tenants/giantvapes/theme.json +39 -0
  276. package/tenants/home/content/chrome.json +11 -0
  277. package/tenants/home/content/home.html +304 -0
  278. package/tenants/home/content/home.json +13 -0
  279. package/tenants/home/public/js/storefront.js +210 -0
  280. package/tenants/home/public/logo-wordmark.png +0 -0
  281. package/tenants/home/public/pages/storefront.css +212 -0
  282. package/tenants/home/theme.json +6 -0
  283. package/tenants/tokenoftrust/.tot/config.json +9 -0
  284. package/tenants/tokenoftrust/content/chrome.json +55 -0
  285. package/tenants/tokenoftrust/content/home.html +723 -0
  286. package/tenants/tokenoftrust/content/home.json +233 -0
  287. package/tenants/tokenoftrust/content/pages-html/careers.html +231 -0
  288. package/tenants/tokenoftrust/content/pages-html/company.html +275 -0
  289. package/tenants/tokenoftrust/content/pages-html/contact/contact-sales.html +188 -0
  290. package/tenants/tokenoftrust/content/pages-html/contact/startup-apply.html +206 -0
  291. package/tenants/tokenoftrust/content/pages-html/contact.html +178 -0
  292. package/tenants/tokenoftrust/content/pages-html/industries/adult-content-age-verification.html +286 -0
  293. package/tenants/tokenoftrust/content/pages-html/industries/cannabis.html +277 -0
  294. package/tenants/tokenoftrust/content/pages-html/pact-act-pricing.html +289 -0
  295. package/tenants/tokenoftrust/content/pages-html/pricing.html +483 -0
  296. package/tenants/tokenoftrust/content/pages-html/product/age-assurance/age-estimation.html +278 -0
  297. package/tenants/tokenoftrust/content/pages-html/product/age-assurance/age-gate.html +279 -0
  298. package/tenants/tokenoftrust/content/pages-html/product/age-assurance/age-verification.html +265 -0
  299. package/tenants/tokenoftrust/content/pages-html/product/age-assurance.html +173 -0
  300. package/tenants/tokenoftrust/content/pages-html/product/compliance/aml.html +214 -0
  301. package/tenants/tokenoftrust/content/pages-html/product/compliance/pact-act.html +226 -0
  302. package/tenants/tokenoftrust/content/pages-html/product/fraud-prevention.html +254 -0
  303. package/tenants/tokenoftrust/content/pages-html/product/social-profile-verification.html +212 -0
  304. package/tenants/tokenoftrust/content/pages-html/product/tax/excise-tax.html +213 -0
  305. package/tenants/tokenoftrust/content/pages-html/product/verification/aml.html +259 -0
  306. package/tenants/tokenoftrust/content/pages-html/product/verification/biometric-selfie.html +305 -0
  307. package/tenants/tokenoftrust/content/pages-html/product/verification/coverage.html +254 -0
  308. package/tenants/tokenoftrust/content/pages-html/product/verification/document-verification.html +306 -0
  309. package/tenants/tokenoftrust/content/pages-html/product/verification/electronic-identity-verification.html +304 -0
  310. package/tenants/tokenoftrust/content/pages-html/product/verification/government-id-verification.html +308 -0
  311. package/tenants/tokenoftrust/content/pages-html/product/verification.html +183 -0
  312. package/tenants/tokenoftrust/content/pages-html/product.html +228 -0
  313. package/tenants/tokenoftrust/content/pages-html/resources/integrations/bigcommerce-integration.html +220 -0
  314. package/tenants/tokenoftrust/content/pages-html/resources/integrations/shopify-integration.html +221 -0
  315. package/tenants/tokenoftrust/content/pages-html/resources/integrations/wordpress.html +220 -0
  316. package/tenants/tokenoftrust/content/pages-html/resources/integrations.html +172 -0
  317. package/tenants/tokenoftrust/content/pages-html/resources/refer-a-friend-program.html +317 -0
  318. package/tenants/tokenoftrust/content/pages-html/resources.html +177 -0
  319. package/tenants/tokenoftrust/content/pages-html/reviews.html +273 -0
  320. package/tenants/tokenoftrust/content/pages-html/solutions.html +292 -0
  321. package/tenants/tokenoftrust/content/pages-html/vlp-alcohol.html +289 -0
  322. package/tenants/tokenoftrust/content/pages-html/vlp-cigars-and-tobacco.html +286 -0
  323. package/tenants/tokenoftrust/content/pages-html/vlp-firearm-accessories.html +267 -0
  324. package/tenants/tokenoftrust/content/pages-html/vlp-peptides.html +273 -0
  325. package/tenants/tokenoftrust/content/themes/tot-navy.json +88 -0
  326. package/tenants/tokenoftrust/public/favicon.png +0 -0
  327. package/tenants/tokenoftrust/public/logo-icon.png +0 -0
  328. package/tenants/tokenoftrust/public/logo-wordmark.png +0 -0
  329. package/tenants/tokenoftrust/public/pages/company.css +108 -0
  330. package/tenants/tokenoftrust/public/pages/home.css +457 -0
  331. package/tenants/tokenoftrust/public/pages/mkt.css +482 -0
  332. package/tenants/tokenoftrust/public/pages/pricing.css +214 -0
  333. package/tenants/tokenoftrust/public/pages/solutions.css +66 -0
  334. package/tenants/tokenoftrust/public/themes/tot-navy-1.0.0.css +136 -0
  335. package/tenants/tokenoftrust/public/themes/tot-navy.css +358 -0
  336. package/tenants/tokenoftrust/theme.json +31 -0
  337. package/tsconfig.base.json +20 -0
@@ -0,0 +1,289 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <link rel="icon" type="image/png" href="/tenants/tokenoftrust/favicon.png">
7
+ <title>Alcohol Tax &amp; Age Compliance Software | Token of Trust</title>
8
+ <meta name="description" content="Automate alcohol tax filing, excise and sales tax, real-time ID and age verification, and audit-ready compliance across all 50 states with Token of Trust.">
9
+ <link rel="canonical" href="https://tokenoftrust.com/vlp-alcohol/">
10
+ <meta name="robots" content="index,follow,max-image-preview:large">
11
+ <meta property="og:type" content="website">
12
+ <meta property="og:site_name" content="Token of Trust">
13
+ <meta property="og:title" content="Simplify Alcohol &amp; Hemp Tax Compliance — Token of Trust">
14
+ <meta property="og:description" content="Automated tax filing, real-time ID verification, and audit-ready compliance tools for alcohol businesses.">
15
+ <meta property="og:url" content="https://tokenoftrust.com/vlp-alcohol/">
16
+ <meta name="twitter:card" content="summary_large_image">
17
+ <meta name="twitter:title" content="Alcohol Compliance — Token of Trust">
18
+ <meta name="twitter:description" content="Automated tax filing and age verification for alcohol businesses.">
19
+ <script type="application/ld+json">
20
+ {
21
+ "@context": "https://schema.org",
22
+ "@graph": [
23
+ {
24
+ "@type": "Organization",
25
+ "@id": "https://tokenoftrust.com/#org",
26
+ "name": "Token of Trust",
27
+ "url": "https://tokenoftrust.com/",
28
+ "logo": "/tenants/tokenoftrust/logo-icon.png",
29
+ "slogan": "Real Customers. Less Fraud. More Trust."
30
+ },
31
+ {
32
+ "@type": "WebPage",
33
+ "name": "Simplify Alcohol & Hemp Tax Compliance",
34
+ "url": "https://tokenoftrust.com/vlp-alcohol/"
35
+ }
36
+ ]
37
+ }
38
+ </script>
39
+ <link rel="stylesheet" href="/tenants/tokenoftrust/themes/tot-navy.css">
40
+ <link rel="stylesheet" href="/tenants/tokenoftrust/pages/mkt.css">
41
+ </head>
42
+ <body>
43
+ <a class="skip-link" href="#main">Skip to main content</a>
44
+
45
+ <header class="site">
46
+ <div class="container nav-row">
47
+ <a class="brand" href="/" aria-label="Token of Trust home"><img src="/tenants/tokenoftrust/logo-wordmark.png" alt="Token of Trust" width="156" height="34" style="height:34px;width:auto;display:block"></a>
48
+ <nav class="primary" id="primaryNav" aria-label="Primary">
49
+ <ul>
50
+ <li><a href="/product/">Platform</a></li>
51
+ <li><a class="active" href="/solutions/" aria-current="page">Industries</a></li>
52
+ <li><a href="/company/">Company</a></li>
53
+ <li><a href="/resources/">Resources</a></li>
54
+ <li><a href="/pricing/">Pricing</a></li>
55
+ <li><a href="https://app.tokenoftrust.com">Login</a></li>
56
+ </ul>
57
+ </nav>
58
+ <div class="nav-cta">
59
+ <a class="btn btn-line" href="/contact/">Book Demo</a>
60
+ <a class="btn btn-green" href="https://app.tokenoftrust.com">Start For Free</a>
61
+ <button class="hamburger" id="hamburger" aria-label="Toggle navigation menu" aria-expanded="false" aria-controls="primaryNav"><span></span><span></span><span></span></button>
62
+ </div>
63
+ </div>
64
+ </header>
65
+
66
+ <main id="main">
67
+ <div class="container">
68
+ <nav class="crumbs" aria-label="Breadcrumb">
69
+ <a href="/">Home</a><span class="sep">&rsaquo;</span>
70
+ <a href="/solutions/">Industries</a><span class="sep">&rsaquo;</span>
71
+ <span aria-current="page">Wine &amp; Spirits</span>
72
+ </nav>
73
+ </div>
74
+
75
+ <section class="hero" aria-labelledby="hero-heading">
76
+ <div class="container">
77
+ <span class="eyebrow"><span class="dot"></span>Wine &amp; Spirits</span>
78
+ <h1 id="hero-heading">Simplify alcohol &amp; hemp <span class="grad">tax compliance.</span></h1>
79
+ <p class="lede">
80
+ All your alcohol compliance needs in one platform. We help alcohol businesses save time and avoid
81
+ penalties with automated tax filing, real-time ID verification, and audit-ready compliance tools.
82
+ </p>
83
+ <div class="cta-row">
84
+ <a class="btn btn-green" href="https://app.tokenoftrust.com">Start For Free</a>
85
+ <a class="btn btn-line" href="/contact/">Contact Sales</a>
86
+ </div>
87
+ </div>
88
+ </section>
89
+
90
+ <section aria-labelledby="challenge-heading">
91
+ <div class="container">
92
+ <div class="center reveal">
93
+ <span class="kicker">The challenge</span>
94
+ <h2 id="challenge-heading">Why alcohol compliance gets complicated</h2>
95
+ <p class="section-lede">
96
+ Running an alcohol business means keeping up with complex rules that change from state to state.
97
+ Every product and filing adds another layer of work — and it's easy for details to get lost along
98
+ the way.
99
+ </p>
100
+ </div>
101
+ <div class="feature-grid three">
102
+ <article class="feat-card reveal">
103
+ <h3>Disconnected systems, disconnected data</h3>
104
+ <p>Most teams still rely on spreadsheets, outdated portals, and manual reports. With each state using
105
+ its own formats and portals, it's hard to keep everything consistent or audit-ready.</p>
106
+ </article>
107
+ <article class="feat-card reveal">
108
+ <h3>Rules that change without notice</h3>
109
+ <p>Alcohol excise tax rates, renewal cycles, and filing formats shift frequently. New updates can roll
110
+ out mid-year, forcing businesses to adjust filings or rework previous reports.</p>
111
+ </article>
112
+ <article class="feat-card reveal">
113
+ <h3>Compounding compliance obligations</h3>
114
+ <p>Excise tax, sales tax, and license renewals often overlap — each with different deadlines and reporting
115
+ methods. Keeping them in sync across multiple states quickly turns into a full-time job.</p>
116
+ </article>
117
+ </div>
118
+ </div>
119
+ </section>
120
+
121
+ <section class="alt-bg" aria-labelledby="solution-heading">
122
+ <div class="container">
123
+ <div class="center reveal">
124
+ <span class="kicker">The solution</span>
125
+ <h2 id="solution-heading">Let us handle alcohol compliance for you</h2>
126
+ <p class="section-lede">
127
+ Compliance doesn't have to slow you down. We take the guesswork and spreadsheets off your hands —
128
+ so you can grow your business without drowning in paperwork.
129
+ </p>
130
+ </div>
131
+ <div class="feature-grid three">
132
+ <article class="feat-card accent reveal">
133
+ <h3>Excise tax automation</h3>
134
+ <p>Apply the right product-specific excise tax rates in real time and file accurately, without manual
135
+ updates or missed rate changes.</p>
136
+ </article>
137
+ <article class="feat-card accent reveal">
138
+ <h3>Sales &amp; use tax compliance</h3>
139
+ <p>Automatically calculate and apply the correct state, county, and city sales taxes for every transaction
140
+ — even across multiple locations or online channels.</p>
141
+ </article>
142
+ <article class="feat-card accent reveal">
143
+ <h3>Identity verification</h3>
144
+ <p>Ensure every buyer's identity and age are verified before checkout. Protect your business from underage
145
+ sales, fraud, and regulatory violations.</p>
146
+ </article>
147
+ <article class="feat-card accent reveal">
148
+ <h3>Compliance support</h3>
149
+ <p>Get expert assistance with tax regulations, reporting requirements, and audit preparation — built
150
+ specifically for alcohol retailers and wholesalers.</p>
151
+ </article>
152
+ <article class="feat-card accent reveal">
153
+ <h3>KYC / AML verification</h3>
154
+ <p>Verify customers, partners, and transactions with Know Your Customer and Anti-Money Laundering checks
155
+ that meet industry and state compliance standards.</p>
156
+ </article>
157
+ <article class="feat-card accent reveal">
158
+ <h3>One connected platform</h3>
159
+ <p>Bring excise tax, sales tax, verification, and audit records together — accurate taxes, verified buyers,
160
+ and zero manual busywork. <a class="card-link" href="/product/">Explore the platform &rarr;</a></p>
161
+ </article>
162
+ </div>
163
+ </div>
164
+ </section>
165
+
166
+ <section aria-labelledby="how-heading">
167
+ <div class="container">
168
+ <div class="center reveal">
169
+ <span class="kicker">How it works</span>
170
+ <h2 id="how-heading">How we simplify compliance</h2>
171
+ <p class="section-lede">
172
+ Every step works together to keep your alcohol business compliant automatically — accurate taxes,
173
+ verified buyers, and zero manual busywork.
174
+ </p>
175
+ </div>
176
+ <div class="steps three">
177
+ <div class="step reveal">
178
+ <span class="num">01</span>
179
+ <h3>Compliance review</h3>
180
+ <p>We review how your business handles sales tax, excise tax, and identity verification today — flagging
181
+ any compliance gaps or outdated workflows that could create risk.</p>
182
+ </div>
183
+ <div class="step reveal">
184
+ <span class="num">02</span>
185
+ <h3>Custom blueprint</h3>
186
+ <p>You'll get a tailored compliance plan built around your products, regions, and customers — combining
187
+ the right tax automation and verification tools for your operation.</p>
188
+ </div>
189
+ <div class="step reveal">
190
+ <span class="num">03</span>
191
+ <h3>Implementation &amp; support</h3>
192
+ <p>Our team helps you integrate, test, and launch your system. From there, we monitor for regulatory
193
+ updates and keep your compliance running smoothly as rules evolve.</p>
194
+ </div>
195
+ </div>
196
+ </div>
197
+ </section>
198
+
199
+ <section class="alt-bg" aria-labelledby="faq-heading">
200
+ <div class="container">
201
+ <div class="center reveal">
202
+ <span class="kicker">FAQ</span>
203
+ <h2 id="faq-heading">Alcohol compliance questions</h2>
204
+ </div>
205
+ <div class="faq reveal">
206
+ <details><summary>Do I need to collect both sales tax and excise tax on alcohol?</summary><p>In most cases,
207
+ yes. Sales tax applies at the state or local level, while excise tax is imposed specifically on alcohol
208
+ products. Retailers typically collect both at checkout, while wholesalers may collect excise tax differently
209
+ depending on exemptions and resale certificates.</p></details>
210
+ <details><summary>How do exemptions work for alcohol wholesalers?</summary><p>Wholesalers often sell alcohol
211
+ tax-free if the buyer provides a valid resale or exemption certificate. The seller is responsible for collecting,
212
+ validating, and securely storing these certificates to remain compliant and audit-ready.</p></details>
213
+ <details><summary>What happens if I misapply alcohol taxes?</summary><p>Misapplied tax can lead to underpayment
214
+ or overpayment. Underpayment creates liability, penalties, and audit risk. Overpayment hurts margins and
215
+ may be difficult to recover. Accurate, automated calculation helps avoid both.</p></details>
216
+ <details><summary>Do alcohol tax rules differ by state?</summary><p>Yes. Sales and excise tax rates, licensing
217
+ requirements, and exemption rules vary by state and sometimes by city or county. This complexity makes
218
+ a state-aware compliance system essential.</p></details>
219
+ <details><summary>Will Token of Trust work with my existing store or POS system?</summary><p>Yes. Token
220
+ of Trust integrates with leading ecommerce and point-of-sale platforms and can be customized for unique
221
+ workflows, ensuring compliance without disrupting sales.</p></details>
222
+ <details><summary>How does Token of Trust keep me audit-ready?</summary><p>Every transaction is logged
223
+ with the correct tax treatment and exemption documentation. Centralized, exportable records mean you can
224
+ respond to regulator requests quickly and confidently.</p></details>
225
+ </div>
226
+ </div>
227
+ </section>
228
+
229
+ <section aria-labelledby="cta-heading">
230
+ <div class="container">
231
+ <div class="cta-band reveal">
232
+ <span class="kicker">Have more questions? We're here to help.</span>
233
+ <h2 id="cta-heading">Automate alcohol tax compliance</h2>
234
+ <p>
235
+ Connect with us and learn how Token of Trust helps alcohol businesses automate tax compliance,
236
+ stay audit-ready, and scale with confidence. 256-bit SSL encryption, 100% of the time. We will
237
+ NEVER sell your data. Compliant with GDPR and global privacy laws.
238
+ </p>
239
+ <div class="cta-row">
240
+ <a class="btn btn-green" href="https://app.tokenoftrust.com">Start For Free</a>
241
+ <a class="btn btn-line" href="/contact/">Contact Sales</a>
242
+ </div>
243
+ </div>
244
+ </div>
245
+ </section>
246
+ </main>
247
+
248
+ <footer class="site">
249
+ <div class="container">
250
+ <div class="foot-grid">
251
+ <div>
252
+ <a class="brand" href="/" aria-label="Token of Trust home"><img src="/tenants/tokenoftrust/logo-wordmark.png" alt="Token of Trust" width="156" height="34" style="height:34px;width:auto;display:block"></a>
253
+ <p class="foot-note">Customer verification and compliance for regulated ecommerce. 256-bit SSL. We will
254
+ NEVER sell your data. GDPR · CCPA · PIPEDA.</p>
255
+ </div>
256
+ <nav aria-label="Platform footer"><h3>Platform</h3><ul>
257
+ <li><a href="/product/verification/">Identity Verification</a></li>
258
+ <li><a href="/product/age-assurance/">Age Assurance</a></li>
259
+ <li><a href="/product/fraud-prevention/">Fraud Prevention</a></li>
260
+ <li><a href="/product/">All products</a></li>
261
+ </ul></nav>
262
+ <nav aria-label="Industries footer"><h3>Industries</h3><ul>
263
+ <li><a href="/solutions/">All industries</a></li>
264
+ <li><a href="/vlp-cigars-and-tobacco/">Tobacco &amp; Vape</a></li>
265
+ <li><a href="/vlp-alcohol/">Wine &amp; Spirits</a></li>
266
+ <li><a href="/industries/cannabis/">Cannabis</a></li>
267
+ </ul></nav>
268
+ <nav aria-label="Company footer"><h3>Company</h3><ul>
269
+ <li><a href="/company/">Company</a></li>
270
+ <li><a href="/careers/">Careers</a></li>
271
+ <li><a href="/pricing/">Pricing</a></li>
272
+ <li><a href="/contact/">Contact Sales</a></li>
273
+ </ul></nav>
274
+ </div>
275
+ <p class="copyright">© 2026 Token of Trust®. All rights reserved.</p>
276
+ </div>
277
+ </footer>
278
+
279
+ <script>
280
+ (function(){
281
+ var burger = document.getElementById('hamburger');
282
+ var nav = document.getElementById('primaryNav');
283
+ burger.addEventListener('click', function(){ var open = nav.classList.toggle('open'); burger.setAttribute('aria-expanded', open ? 'true' : 'false'); });
284
+ var io = new IntersectionObserver(function(entries){ entries.forEach(function(e){ if(e.isIntersecting){ e.target.classList.add('in'); io.unobserve(e.target); } }); }, {threshold:.12});
285
+ document.querySelectorAll('.reveal').forEach(function(el){ io.observe(el); });
286
+ })();
287
+ </script>
288
+ </body>
289
+ </html>
@@ -0,0 +1,286 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <link rel="icon" type="image/png" href="/tenants/tokenoftrust/favicon.png">
7
+ <title>Cigar &amp; Tobacco Tax + PACT Act Compliance | Token of Trust</title>
8
+ <meta name="description" content="From sales and excise taxes to the PACT Act, Token of Trust helps cigar and tobacco businesses stay compliant across all 50 states — without the manual work.">
9
+ <link rel="canonical" href="https://tokenoftrust.com/vlp-cigars-and-tobacco/">
10
+ <meta name="robots" content="index,follow,max-image-preview:large">
11
+ <meta property="og:type" content="website">
12
+ <meta property="og:site_name" content="Token of Trust">
13
+ <meta property="og:title" content="Cigars, Tobacco &amp; Hemp Tax Compliance — Token of Trust">
14
+ <meta property="og:description" content="Excise tax, sales tax, and PACT Act reporting for cigar and tobacco businesses, in one platform.">
15
+ <meta property="og:url" content="https://tokenoftrust.com/vlp-cigars-and-tobacco/">
16
+ <meta name="twitter:card" content="summary_large_image">
17
+ <meta name="twitter:title" content="Cigars &amp; Tobacco Compliance — Token of Trust">
18
+ <meta name="twitter:description" content="Tobacco excise tax, sales tax, and PACT Act reporting in one platform.">
19
+ <script type="application/ld+json">
20
+ {
21
+ "@context": "https://schema.org",
22
+ "@graph": [
23
+ {
24
+ "@type": "Organization",
25
+ "@id": "https://tokenoftrust.com/#org",
26
+ "name": "Token of Trust",
27
+ "url": "https://tokenoftrust.com/",
28
+ "logo": "/tenants/tokenoftrust/logo-icon.png",
29
+ "slogan": "Real Customers. Less Fraud. More Trust."
30
+ },
31
+ {
32
+ "@type": "WebPage",
33
+ "name": "Cigars and Tobacco & Hemp Tax Compliance",
34
+ "url": "https://tokenoftrust.com/vlp-cigars-and-tobacco/"
35
+ }
36
+ ]
37
+ }
38
+ </script>
39
+ <link rel="stylesheet" href="/tenants/tokenoftrust/themes/tot-navy.css">
40
+ <link rel="stylesheet" href="/tenants/tokenoftrust/pages/mkt.css">
41
+ </head>
42
+ <body>
43
+ <a class="skip-link" href="#main">Skip to main content</a>
44
+
45
+ <header class="site">
46
+ <div class="container nav-row">
47
+ <a class="brand" href="/" aria-label="Token of Trust home"><img src="/tenants/tokenoftrust/logo-wordmark.png" alt="Token of Trust" width="156" height="34" style="height:34px;width:auto;display:block"></a>
48
+ <nav class="primary" id="primaryNav" aria-label="Primary">
49
+ <ul>
50
+ <li><a href="/product/">Platform</a></li>
51
+ <li><a class="active" href="/solutions/" aria-current="page">Industries</a></li>
52
+ <li><a href="/company/">Company</a></li>
53
+ <li><a href="/resources/">Resources</a></li>
54
+ <li><a href="/pricing/">Pricing</a></li>
55
+ <li><a href="https://app.tokenoftrust.com">Login</a></li>
56
+ </ul>
57
+ </nav>
58
+ <div class="nav-cta">
59
+ <a class="btn btn-line" href="/contact/">Book Demo</a>
60
+ <a class="btn btn-green" href="https://app.tokenoftrust.com">Start For Free</a>
61
+ <button class="hamburger" id="hamburger" aria-label="Toggle navigation menu" aria-expanded="false" aria-controls="primaryNav"><span></span><span></span><span></span></button>
62
+ </div>
63
+ </div>
64
+ </header>
65
+
66
+ <main id="main">
67
+ <div class="container">
68
+ <nav class="crumbs" aria-label="Breadcrumb">
69
+ <a href="/">Home</a><span class="sep">&rsaquo;</span>
70
+ <a href="/solutions/">Industries</a><span class="sep">&rsaquo;</span>
71
+ <span aria-current="page">Cigars &amp; Tobacco</span>
72
+ </nav>
73
+ </div>
74
+
75
+ <section class="hero" aria-labelledby="hero-heading">
76
+ <div class="container">
77
+ <span class="eyebrow"><span class="dot"></span>Tobacco &amp; Vape</span>
78
+ <h1 id="hero-heading">Cigars, tobacco &amp; hemp <span class="grad">tax compliance.</span></h1>
79
+ <p class="lede">
80
+ Cigarette and tobacco tax compliance — simplified in one platform. From sales and excise taxes to
81
+ the PACT Act, we help cigar and tobacco businesses stay compliant across all 50 states, without the
82
+ manual work.
83
+ </p>
84
+ <div class="cta-row">
85
+ <a class="btn btn-green" href="https://app.tokenoftrust.com">Start For Free</a>
86
+ <a class="btn btn-line" href="/contact/">Contact Sales</a>
87
+ </div>
88
+ </div>
89
+ </section>
90
+
91
+ <section aria-labelledby="challenge-heading">
92
+ <div class="container">
93
+ <div class="center reveal">
94
+ <span class="kicker">The challenge</span>
95
+ <h2 id="challenge-heading">Why tobacco compliance gets complicated</h2>
96
+ <p class="section-lede">
97
+ Tobacco compliance is one of the most complex areas of U.S. taxation. Each state — and sometimes
98
+ each product type — has its own rules, forms, and filing schedules.
99
+ </p>
100
+ </div>
101
+ <div class="feature-grid three">
102
+ <article class="feat-card reveal">
103
+ <h3>Regulatory complexity</h3>
104
+ <p>Every state enforces unique tobacco tax regulations, reporting formats, and filing deadlines. Businesses
105
+ must navigate inconsistent forms — PDFs, spreadsheets, portals — that vary from state to state.</p>
106
+ </article>
107
+ <article class="feat-card reveal">
108
+ <h3>Frequent law changes</h3>
109
+ <p>Tobacco tax laws, rates, and reporting requirements change often. Keeping up with the latest instructions
110
+ from multiple agencies requires constant monitoring and manual updates.</p>
111
+ </article>
112
+ <article class="feat-card reveal">
113
+ <h3>Technical filing issues</h3>
114
+ <p>Minor edits to official templates or submission errors can invalidate filings. Even small formatting
115
+ changes to agency-provided forms can cause rejections or delays.</p>
116
+ </article>
117
+ <article class="feat-card reveal">
118
+ <h3>Product-based variability</h3>
119
+ <p>Compliance requirements differ by product category — premium cigars, cigarettes, smokeless tobacco,
120
+ and e-cigarettes all have distinct reporting rules and tax treatments.</p>
121
+ </article>
122
+ <article class="feat-card reveal">
123
+ <h3>Tight filing timelines</h3>
124
+ <p>Most states require monthly or quarterly filings. Managing multiple due dates and form types increases
125
+ the risk of missed deadlines and costly penalties.</p>
126
+ </article>
127
+ <article class="feat-card reveal">
128
+ <h3>High administrative burden</h3>
129
+ <p>Most states apply general sales or use tax on top of tobacco excise tax, creating overlapping compliance
130
+ obligations.</p>
131
+ </article>
132
+ </div>
133
+ </div>
134
+ </section>
135
+
136
+ <section class="alt-bg" aria-labelledby="solution-heading">
137
+ <div class="container">
138
+ <div class="center reveal">
139
+ <span class="kicker">The solution</span>
140
+ <h2 id="solution-heading">Bring every part of your tobacco compliance together</h2>
141
+ <p class="section-lede">
142
+ Compliance doesn't have to slow you down. We take the guesswork and spreadsheets off your hands —
143
+ so you can grow your business without drowning in paperwork.
144
+ </p>
145
+ </div>
146
+ <div class="feature-grid three">
147
+ <article class="feat-card accent reveal">
148
+ <h3>Excise tax automation</h3>
149
+ <p>Automatically apply the right state and product-specific excise rates for cigars, cigarettes, and
150
+ smokeless tobacco — no manual updates or missed changes.</p>
151
+ </article>
152
+ <article class="feat-card accent reveal">
153
+ <h3>Sales &amp; use tax compliance</h3>
154
+ <p>Accurately apply state, county, and city sales taxes in real time across every order — even where
155
+ you don't have a physical location.</p>
156
+ </article>
157
+ <article class="feat-card accent reveal">
158
+ <h3>PACT Act reporting</h3>
159
+ <p>Automatically generate and file shipment reports, verify customer age, and maintain detailed records
160
+ to stay audit-ready and fully compliant. <a class="card-link" href="/product/">Explore the platform &rarr;</a></p>
161
+ </article>
162
+ </div>
163
+ </div>
164
+ </section>
165
+
166
+ <section aria-labelledby="how-heading">
167
+ <div class="container">
168
+ <div class="center reveal">
169
+ <span class="kicker">How it works</span>
170
+ <h2 id="how-heading">How we simplify compliance</h2>
171
+ <p class="section-lede">
172
+ Every step works together to keep your tobacco business compliant automatically — accurate taxes,
173
+ on-time reports, and zero manual busywork.
174
+ </p>
175
+ </div>
176
+ <div class="steps">
177
+ <div class="step reveal">
178
+ <span class="num">01</span>
179
+ <h3>Determination</h3>
180
+ <p>Product type, order details, and shipping destination are checked against current tax rules.</p>
181
+ </div>
182
+ <div class="step reveal">
183
+ <span class="num">02</span>
184
+ <h3>Collection</h3>
185
+ <p>Correct excise and sales/use tax rates are applied instantly at checkout.</p>
186
+ </div>
187
+ <div class="step reveal">
188
+ <span class="num">03</span>
189
+ <h3>Reporting</h3>
190
+ <p>Audit-ready reports cover excise, sales/use, and PACT Act obligations in one place.</p>
191
+ </div>
192
+ <div class="step reveal">
193
+ <span class="num">04</span>
194
+ <h3>Submission</h3>
195
+ <p>State and local filings are submitted on time, every time.</p>
196
+ </div>
197
+ </div>
198
+ </div>
199
+ </section>
200
+
201
+ <section class="alt-bg" aria-labelledby="faq-heading">
202
+ <div class="container">
203
+ <div class="center reveal">
204
+ <span class="kicker">FAQ</span>
205
+ <h2 id="faq-heading">Cigarette and tobacco compliance questions</h2>
206
+ </div>
207
+ <div class="faq reveal">
208
+ <details><summary>What is the PACT Act, and who needs to comply?</summary><p>The PACT Act regulates online
209
+ and interstate sales of cigars and tobacco products. Retailers and distributors must follow registration,
210
+ reporting, and shipping rules to stay compliant and avoid fines.</p></details>
211
+ <details><summary>Which products are subject to excise tax?</summary><p>Excise taxes apply to cigars, cigarettes,
212
+ and smokeless tobacco. Rates vary for premium versus mass-market products, and imported products may have
213
+ additional duties.</p></details>
214
+ <details><summary>How often do I need to pay taxes and submit reports?</summary><p>Excise taxes and PACT
215
+ Act reports are typically due monthly or quarterly, depending on federal and state requirements. Timely
216
+ submissions help avoid penalties and audit issues.</p></details>
217
+ <details><summary>Do I need to collect sales tax on cigars and tobacco?</summary><p>Yes. Most states require
218
+ sales tax on tobacco products. The rules vary by product type, state, and shipping destination, including
219
+ online orders.</p></details>
220
+ <details><summary>Can I ship cigars to any state?</summary><p>No. Some states restrict certain tobacco
221
+ shipments. Shipping to prohibited states can result in fines, license suspension, or other legal consequences.</p></details>
222
+ </div>
223
+ </div>
224
+ </section>
225
+
226
+ <section aria-labelledby="cta-heading">
227
+ <div class="container">
228
+ <div class="cta-band reveal">
229
+ <span class="kicker">Grow without compliance barriers</span>
230
+ <h2 id="cta-heading">Tax laws shouldn't limit where you sell</h2>
231
+ <p>
232
+ Tax laws and reporting obligations shouldn't limit where you sell. Our platform makes cigar and
233
+ tobacco compliance simple, accurate, and scalable. 256-bit SSL encryption, 100% of the time. We
234
+ will NEVER sell your data. Compliant with GDPR and global privacy laws.
235
+ </p>
236
+ <div class="cta-row">
237
+ <a class="btn btn-green" href="https://app.tokenoftrust.com">Start For Free</a>
238
+ <a class="btn btn-line" href="/contact/">Contact Sales</a>
239
+ </div>
240
+ </div>
241
+ </div>
242
+ </section>
243
+ </main>
244
+
245
+ <footer class="site">
246
+ <div class="container">
247
+ <div class="foot-grid">
248
+ <div>
249
+ <a class="brand" href="/" aria-label="Token of Trust home"><img src="/tenants/tokenoftrust/logo-wordmark.png" alt="Token of Trust" width="156" height="34" style="height:34px;width:auto;display:block"></a>
250
+ <p class="foot-note">Customer verification and compliance for regulated ecommerce. 256-bit SSL. We will
251
+ NEVER sell your data. GDPR · CCPA · PIPEDA.</p>
252
+ </div>
253
+ <nav aria-label="Platform footer"><h3>Platform</h3><ul>
254
+ <li><a href="/product/verification/">Identity Verification</a></li>
255
+ <li><a href="/product/age-assurance/">Age Assurance</a></li>
256
+ <li><a href="/product/fraud-prevention/">Fraud Prevention</a></li>
257
+ <li><a href="/product/">All products</a></li>
258
+ </ul></nav>
259
+ <nav aria-label="Industries footer"><h3>Industries</h3><ul>
260
+ <li><a href="/solutions/">All industries</a></li>
261
+ <li><a href="/vlp-cigars-and-tobacco/">Tobacco &amp; Vape</a></li>
262
+ <li><a href="/vlp-alcohol/">Wine &amp; Spirits</a></li>
263
+ <li><a href="/industries/cannabis/">Cannabis</a></li>
264
+ </ul></nav>
265
+ <nav aria-label="Company footer"><h3>Company</h3><ul>
266
+ <li><a href="/company/">Company</a></li>
267
+ <li><a href="/careers/">Careers</a></li>
268
+ <li><a href="/pricing/">Pricing</a></li>
269
+ <li><a href="/contact/">Contact Sales</a></li>
270
+ </ul></nav>
271
+ </div>
272
+ <p class="copyright">© 2026 Token of Trust®. All rights reserved.</p>
273
+ </div>
274
+ </footer>
275
+
276
+ <script>
277
+ (function(){
278
+ var burger = document.getElementById('hamburger');
279
+ var nav = document.getElementById('primaryNav');
280
+ burger.addEventListener('click', function(){ var open = nav.classList.toggle('open'); burger.setAttribute('aria-expanded', open ? 'true' : 'false'); });
281
+ var io = new IntersectionObserver(function(entries){ entries.forEach(function(e){ if(e.isIntersecting){ e.target.classList.add('in'); io.unobserve(e.target); } }); }, {threshold:.12});
282
+ document.querySelectorAll('.reveal').forEach(function(el){ io.observe(el); });
283
+ })();
284
+ </script>
285
+ </body>
286
+ </html>