{"title":"Replacement Mirrors Aftermarket","description":"","products":[{"product_id":"jeep-wrangler-2007-2017-mirror-rh-swing-away-type-full-half-doors-wrangler-07-17-ch1321271","title":"JEEP WRANGLER 2007-2017 — MIRROR RH; SWING AWAY TYPE; FULL\/HALF DOORS; WRANGLER 07-17\/ WRANGLER JK 2018","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Jeep","offers":[{"title":"Default Title","offer_id":48359444381888,"sku":"CH1321271","price":80.69,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/CH1321271.png?v=1780502993"},{"product_id":"hyundai-accent-2012-2017-door-mirror-lh-power-turn-signal-w-o-heated-accent-seda-hy1320182","title":"HYUNDAI ACCENT 2012-2017 — DOOR MIRROR LH; POWER\/TURN SIGNAL; W\/O HEATED; ACCENT SEDAN\/ HATCHBACK 2012-2017","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Hyundai","offers":[{"title":"Default Title","offer_id":48359444414656,"sku":"HY1320182","price":83.13,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/hy1320182_1.jpg?v=1780502993"},{"product_id":"toyota-camry-2002-2006-door-mirror-lh-power-heated-japan-built-2002-2006-to1320219","title":"TOYOTA CAMRY 2002-2006 — DOOR MIRROR LH; POWER\/ HEATED ; JAPAN BUILT; 2002-2006","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Toyota","offers":[{"title":"Default Title","offer_id":48359444578496,"sku":"TO1320219","price":73.35,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/106.jpg?v=1780502994"},{"product_id":"hyundai-elantra-2017-2018-door-mirror-lh-power-heated-blind-spot-manua-w-o-memor-hy1320226","title":"HYUNDAI ELANTRA 2017-2018 — DOOR MIRROR LH; POWER\/HEATED\/ BLIND SPOT\/MANUA; W\/O MEMORY \u0026 SIGNAL; SEDAN 2017-2018","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Hyundai","offers":[{"title":"Default Title","offer_id":48359444611264,"sku":"HY1320226","price":170.82,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/HY1320226.png?v=1780502993"},{"product_id":"nissan-altima-2007-2012-door-power-mirror-lh-2-5l-w-o-turn-signal-altima-coupe-2-ni1320186","title":"NISSAN ALTIMA 2007-2012 — DOOR POWER MIRROR LH; 2.5L; W\/O TURN-SIGNAL ; ALTIMA COUPE 2008-2013","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Nissan","offers":[{"title":"Default Title","offer_id":48359444644032,"sku":"NI1320186","price":70.91,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/71XYuFNebOL._AC_SL1500.jpg?v=1780502994"},{"product_id":"nissan-altima-2007-2012-door-power-mirror-rh-2-5l-w-o-turn-signal-altima-coupe-2-ni1321186","title":"NISSAN ALTIMA 2007-2012 — DOOR POWER MIRROR RH; 2.5L; W\/O TURN-SIGNAL ; ALTIMA COUPE 2008-2013","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Nissan","offers":[{"title":"Default Title","offer_id":48359444676800,"sku":"NI1321186","price":75.8,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/41Qi7w5jagL._AC_SY355.jpg?v=1780502995"},{"product_id":"dodge-journey-2009-2020-fender-liner-lh-tuse-w-2-piece-bumpers-journey-2011-2020-ch1248167","title":"DODGE JOURNEY 2009-2020 — FENDER LINER LH; TUSE W\/ 2-PIECE BUMPERS; JOURNEY 2011-2020","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Dodge","offers":[{"title":"Default Title","offer_id":48359444709568,"sku":"CH1248167","price":42.72,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/CH1248167.png?v=1780502996"},{"product_id":"chevrolet-silverado-pickup-2007-2013-l-mirror-lh-manua-folding-style-black-textu-gm1320332","title":"CHEVROLET SILVERADO PICKUP 2007-2013 — L MIRROR LH; MANUA\/FOLDING STYLE; BLACK TEXTURE; SILVERADO\/SIERRA 07-13 (DOUBLE CHECK IMAGE)","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Chevrolet","offers":[{"title":"Default Title","offer_id":48359446511808,"sku":"GM1320332","price":75.8,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/GM1320332N.png?v=1780502997"},{"product_id":"jeep-wrangler-2007-2017-manual-door-mirror-lh-wrangler-2007-2017-jk-2018-ch1320271","title":"JEEP WRANGLER 2007-2017 — MANUAL DOOR MIRROR LH; WRANGLER 2007-2017 \/ JK 2018","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Jeep","offers":[{"title":"Default Title","offer_id":48359446544576,"sku":"CH1320271","price":85.57,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/ch1320271-3.jpg?v=1780502997"},{"product_id":"chevrolet-express-van-2003-2025-manual-mirror-lh-single-glass-express-savana-200-gm1320284","title":"CHEVROLET EXPRESS VAN 2003-2025 — MANUAL MIRROR LH; SINGLE GLASS; EXPRESS\/ SAVANA 2003-2007","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Chevrolet","offers":[{"title":"Default Title","offer_id":48359448346816,"sku":"GM1320284","price":83.13,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/gm1320284.jpg?v=1780502998"},{"product_id":"ford-econoline-1997-2007-manual-mirror-rh-dual-glass-econoline-2003-2014-e350-e4-fo1321238","title":"FORD ECONOLINE 1997-2007 — MANUAL MIRROR RH; DUAL-GLASS; ECONOLINE 2003-2014 \u0026 E350\/E450 SUPER DUTY 2015-2025","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Ford","offers":[{"title":"Default Title","offer_id":48359448379584,"sku":"FO1321238","price":199.32,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/fo1321238-2.jpg?v=1780502998"},{"product_id":"ford-pickup-f150-1997-2005-mirror-lh-power-heated-signal-w-o-puddle-lamp-lightdu-fo1320242","title":"FORD PICKUP F150 1997-2005 — MIRROR LH; POWER\/HEATED\/SIGNAL; W\/O PUDDLE LAMP; LIGHTDUTY 2004-2006","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Ford","offers":[{"title":"Default Title","offer_id":48359448412352,"sku":"FO1320242","price":131.04,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/FO1320242uyt.jpg?v=1780503001"},{"product_id":"honda-civic-2012-2015-mirror-lh-power-heated-sedan-coupe-2012-2013-ho1320266","title":"HONDA CIVIC 2012-2015 — MIRROR LH; POWER\/HEATED; SEDAN\/COUPE 2012-2013","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Honda","offers":[{"title":"Default Title","offer_id":48359448445120,"sku":"HO1320266","price":90.47,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/HO1320266.png?v=1780503001"},{"product_id":"mazda-mz-3-2019-2025-mirror-lh-japan-built-power-blind-spot-turn-signal-2019-202-ma1320236","title":"MAZDA MZ 3 2019-2025 — MIRROR LH; JAPAN BUILT; POWER\/BLIND-SPOT\/TURN SIGNAL; 2019-2022","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Mazda","offers":[{"title":"Default Title","offer_id":48359448477888,"sku":"MA1320236","price":192.52,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/MA1320236.png?v=1780503003"},{"product_id":"volkswagen-jetta-2005-2010-mirror-lh-power-heated-signal-w-o-puddle-jetta-2005-2-vw1320122","title":"VOLKSWAGEN JETTA 2005-2010 — MIRROR LH; POWER\/HEATED\/ SIGNAL;; W\/O PUDDLE; JETTA 2005-2010","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Volkswagen","offers":[{"title":"Default Title","offer_id":48359448510656,"sku":"VW1320122","price":138.06,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/VW1320122.jpg?v=1780503006"},{"product_id":"mazda-cx-5-2017-2025-mirror-lh-power-heated-folding-turn-signal-blind-spot-2019-ma1320244","title":"MAZDA CX 5 2017-2025 — MIRROR LH; POWER\/HEATED\/FOLDING\/TURN-SIGNAL\/BLIND SPOT; 2019-2024","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Mazda","offers":[{"title":"Default Title","offer_id":48359448543424,"sku":"MA1320244","price":280.32,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/MA1320244.png?v=1780503005"},{"product_id":"volkswagen-jetta-2019-2025-mirror-lh-power-heated-signal-blind-memory-jetta-2019-vw1320175","title":"VOLKSWAGEN JETTA 2019-2025 — MIRROR LH; POWER\/HEATED\/SIGNAL\/BLIND\/MEMORY; JETTA 2019-2025","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Volkswagen","offers":[{"title":"Default Title","offer_id":48359448576192,"sku":"VW1320175","price":247.47,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/VW1320175.png?v=1780503008"},{"product_id":"nissan-rogue-2014-2020-mirror-lh-power-heated-turn-signal-side-view-camera-us-bu-ni1320271","title":"NISSAN ROGUE 2014-2020 — MIRROR LH; POWER\/HEATED\/TURN SIGNAL\/SIDE VIEW CAMERA; US BUILT; 2014-2017","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Nissan","offers":[{"title":"Default Title","offer_id":48359448608960,"sku":"NI1320271","price":291.27,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/NI1320271.png?v=1780503007"},{"product_id":"nissan-altima-2019-2025-mirror-lh-power-heated-turn-signal-gloss-black-cover-alt-ni1320313","title":"NISSAN ALTIMA 2019-2025 — MIRROR LH; POWER\/HEATED\/TURN SIGNAL; GLOSS BLACK COVER; ALTIMA 2019-2022","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Nissan","offers":[{"title":"Default Title","offer_id":48359448641728,"sku":"NI1320313","price":194.79,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/NI1320313.png?v=1780503008"},{"product_id":"honda-odyssey-2018-2025-mirror-lh-power-signal-heat-memory-power-fold-odyssey-20-ho1320322","title":"HONDA ODYSSEY 2018-2025 — MIRROR LH; POWER\/SIGNAL\/HEAT\/MEMORY\/POWER FOLD; ODYSSEY 2018-2020","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Honda","offers":[{"title":"Default Title","offer_id":48359448674496,"sku":"HO1320322","price":199.32,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/HO1320322.png?v=1780503008"},{"product_id":"kia-forte-2019-2024-mirror-lh-power-forte-2019-2023-hback-2020-2023-ki1320226","title":"KIA FORTE 2019-2024 — MIRROR LH; POWER; FORTE 2019-2023\/HBACK 2020-2023","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Kia","offers":[{"title":"Default Title","offer_id":48359448805568,"sku":"KI1320226","price":228.5,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/KI1320226.png?v=1780503010"},{"product_id":"honda-accord-2018-2022-mirror-lh-power-sedan-2018-2022-ho1320328","title":"HONDA ACCORD 2018-2022 — MIRROR LH; POWER; SEDAN 2018-2022","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Honda","offers":[{"title":"Default Title","offer_id":48359448838336,"sku":"HO1320328","price":131.04,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/HO1320328.png?v=1780503011"},{"product_id":"nissan-altima-2007-2012-mirror-lh-w-o-heated-signal-light-non-folding-w-cover-al-ni1320163","title":"NISSAN ALTIMA 2007-2012 — MIRROR LH; W\/O HEATED\/SIGNAL LIGHT\/NON-FOLDING; W\/COVER;ALTIMA 07-12\/HYBRID 07-11","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Nissan","offers":[{"title":"Default Title","offer_id":48359448871104,"sku":"NI1320163","price":70.91,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/31bkfHXlk1L._SL500_AC_SS350.jpg?v=1780503014"},{"product_id":"honda-crv-2017-2022-mirror-rh-power-heated-blind-monitor-signal-crv-2017-2022-ho1321318","title":"HONDA CRV 2017-2022 — MIRROR RH; POWER\/HEATED\/BLIND MONITOR\/SIGNAL; CRV 2017-2022","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Honda","offers":[{"title":"Default Title","offer_id":48359449002176,"sku":"HO1321318","price":147.42,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/HO1321318.png?v=1780503012"},{"product_id":"toyota-camry-2015-2017-mirror-rh-power-heated-blind-convex-glass-man-folding-cam-to1321375","title":"TOYOTA CAMRY 2015-2017 — MIRROR RH; POWER\/HEATED\/BLIND\/CONVEX GLASS\/MAN-FOLDING ; CAMRY\/HYB 2016-2017","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Toyota","offers":[{"title":"Default Title","offer_id":48359449034944,"sku":"TO1321375","price":308.52,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/TO1321375.png?v=1780503016"},{"product_id":"honda-crv-2017-2022-mirror-rh-power-heated-canada-only-market-crv-2017-2022-ho1321325","title":"HONDA CRV 2017-2022 — MIRROR RH; POWER\/HEATED; CANADA ONLY MARKET; CRV 2017-2022","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Honda","offers":[{"title":"Default Title","offer_id":48359449067712,"sku":"HO1321325","price":107.64,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/HO1321325.png?v=1780503014"},{"product_id":"lexus-rx330-2004-2006-mirror-rh-power-heated-w-o-memory-rx330-04-06-rx350-07-09-lx1321106","title":"LEXUS RX330 2004-2006 — MIRROR RH; POWER\/HEATED; W\/O MEMORY; RX330 04-06\/RX350 07-09\/ RX400H 06-08","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Lexus","offers":[{"title":"Default Title","offer_id":48359449198784,"sku":"LX1321106","price":128.7,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/lx1321106_1.jpg?v=1780503015"},{"product_id":"honda-crv-2012-2016-power-mirror-rh-textured-w-o-heated-crv-2012-2016-ho1321270","title":"HONDA CRV 2012-2016 — POWER MIRROR RH; TEXTURED W\/O HEATED ; CRV 2012-2016","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Honda","offers":[{"title":"Default Title","offer_id":48359451001024,"sku":"HO1321270","price":92.91,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/NI1321270.png?v=1780503017"},{"product_id":"hyundai-elantra-2011-2013-power-door-mirror-lh-heated-w-o-turn-signal-sedan-only-hy1320179","title":"HYUNDAI ELANTRA 2011-2013 — POWER DOOR MIRROR LH; HEATED; W\/O TURN SIGNAL ; SEDAN ONLY 2011-2013","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Hyundai","offers":[{"title":"Default Title","offer_id":48359452868800,"sku":"HY1320179","price":88.02,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/HY1320179.jpg?v=1780503017"},{"product_id":"nissan-sentra-2013-2015-power-door-mirror-lh-w-o-heated-and-signal-sentra-2013-2-ni1320238","title":"NISSAN SENTRA 2013-2015 — POWER DOOR MIRROR LH; W\/O HEATED AND SIGNAL; SENTRA 2013-2018","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Nissan","offers":[{"title":"Default Title","offer_id":48359452934336,"sku":"NI1320238","price":92.91,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/ni1320238-3gsrtwa.jpg?v=1780503018"},{"product_id":"nissan-altima-2002-2006-power-door-mirror-rh-w-o-heated-s-se-models-altima-2005-ni1321156","title":"NISSAN ALTIMA 2002-2006 — POWER DOOR MIRROR RH; W\/O HEATED; S\/SE MODELS; ALTIMA 2005-2006","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Nissan","offers":[{"title":"Default Title","offer_id":48359453032640,"sku":"NI1321156","price":63.57,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/81EamvTgOxL._SL1500.jpg?v=1780503018"},{"product_id":"hyundai-elantra-2011-2013-power-door-mirror-rh-heated-w-o-turn-signal-sedan-only-hy1321179","title":"HYUNDAI ELANTRA 2011-2013 — POWER DOOR MIRROR RH; HEATED; W\/O TURN SIGNAL ; SEDAN ONLY 2011-2013","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Hyundai","offers":[{"title":"Default Title","offer_id":48359453065408,"sku":"HY1321179","price":90.47,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/hy1321179.jpg?v=1780503020"},{"product_id":"nissan-sentra-2013-2015-power-door-mirror-rh-w-o-heated-and-signal-sentra-2013-2-ni1321238","title":"NISSAN SENTRA 2013-2015 — POWER DOOR MIRROR RH; W\/O HEATED AND SIGNAL; SENTRA 2013-2018","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Nissan","offers":[{"title":"Default Title","offer_id":48359453196480,"sku":"NI1321238","price":90.47,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/NI1321238.png?v=1780503020"},{"product_id":"toyota-camry-2002-2006-power-door-mirror-rh-w-o-heated-japan-built-non-foldaway-to1321210","title":"TOYOTA CAMRY 2002-2006 — POWER DOOR MIRROR RH; W\/O HEATED; JAPAN BUILT; NON FOLDAWAY; FLAT GLASS; 2002-2006","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Toyota","offers":[{"title":"Default Title","offer_id":48359453294784,"sku":"TO1321210","price":75.8,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/711xxELhyeL._AC_SL1500.jpg?v=1780503021"},{"product_id":"toyota-camry-2012-2014-power-mirror-lh-w-o-heated-for-camry-hyb-l-and-le-models-to1320275","title":"TOYOTA CAMRY 2012-2014 — POWER MIRROR LH ; W\/O HEATED ; FOR CAMRY \/ HYB L AND LE MODELS ONLY ; 2012-2014","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Toyota","offers":[{"title":"Default Title","offer_id":48359453327552,"sku":"TO1320275","price":61.41,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/101.jpg?v=1780503022"},{"product_id":"honda-crv-2012-2016-power-mirror-lh-textured-w-o-heated-crv-2012-2016-ho1320270","title":"HONDA CRV 2012-2016 — POWER MIRROR LH ;TEXTURED W\/O HEATED ; CRV 2012-2016","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Honda","offers":[{"title":"Default Title","offer_id":48359453360320,"sku":"HO1320270","price":102.69,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/HO1320270.jpg?v=1780503023"},{"product_id":"toyota-camry-2012-2014-power-mirror-rh-w-o-heated-for-camry-hyb-l-and-le-models-to1321275","title":"TOYOTA CAMRY 2012-2014 — POWER MIRROR RH ; W\/O HEATED ; FOR CAMRY \/ HYB L AND LE MODELS ONLY ; 2012-2014","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Toyota","offers":[{"title":"Default Title","offer_id":48359453786304,"sku":"TO1321275","price":61.41,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/83.jpg?v=1780503024"},{"product_id":"mazda-mz-6-2003-2008-power-side-mirror-rh-heated-non-foldaway-mazda-6-2003-2008-ma1321140","title":"MAZDA MZ 6 2003-2008 — POWER SIDE MIRROR RH; HEATED \/ NON-FOLDAWAY; MAZDA 6 2003-2008 ( W\/O SPEED )","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Mazda","offers":[{"title":"Default Title","offer_id":48359453851840,"sku":"MA1321140","price":92.91,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/ma1321140-2EFSD.jpg?v=1780503024"},{"product_id":"honda-accord-2008-2012-door-mirror-lh-usa-and-japan-built-power-heated-sedan-200-ho1320231","title":"HONDA ACCORD 2008-2012 — DOOR MIRROR LH ; USA AND JAPAN-BUILT; POWER\/HEATED; SEDAN 2008-2012","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Honda","offers":[{"title":"Default Title","offer_id":48359453884608,"sku":"HO1320231","price":88.02,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/ho1320231-2Z.jpg?v=1780503025"},{"product_id":"mazda-mz-3-2010-2013-door-mirror-lh-power-w-o-heat-w-folding-for-mazda-3-sport-2-ma1320162","title":"MAZDA MZ 3 2010-2013 — DOOR MIRROR LH ; POWER ; W\/O HEAT ; W\/FOLDING ; FOR MAZDA 3 \/ SPORT 2010-2013","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Mazda","offers":[{"title":"Default Title","offer_id":48359453917376,"sku":"MA1320162","price":100.25,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/81wTmev-HzL._AC_SL1500.jpg?v=1780503026"},{"product_id":"ford-focus-2008-2011-door-mirror-lh-power-heated-chrome-cover-focus-2008-2011-fo1320319","title":"FORD FOCUS 2008-2011 — DOOR MIRROR LH ; POWER\/HEATED\/CHROME COVER; FOCUS 2008-2011","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Ford","offers":[{"title":"Default Title","offer_id":48359454113984,"sku":"FO1320319","price":131.04,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/FO1320319LH.jpg?v=1780503027"},{"product_id":"toyota-corolla-2014-2019-door-mirror-lh-power-w-o-heated-sedan-2014-2019-to1320293","title":"TOYOTA COROLLA 2014-2019 — DOOR MIRROR LH ; POWER; W\/O HEATED ; SEDAN 2014-2019","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Toyota","offers":[{"title":"Default Title","offer_id":48359454245056,"sku":"TO1320293","price":75.8,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/r3.png?v=1780503030"},{"product_id":"toyota-camry-2002-2006-door-mirror-lh-w-o-heated-non-foldaway-style-usa-built-20-to1320167","title":"TOYOTA CAMRY 2002-2006 — DOOR MIRROR LH ; W\/O HEATED ; NON-FOLDAWAY-STYLE; USA BUILT; 2002-2006","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Toyota","offers":[{"title":"Default Title","offer_id":48359454277824,"sku":"TO1320167","price":58.74,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/109.jpg?v=1780503028"},{"product_id":"buick-lacrosse-2005-2009-door-mirror-lh-electric-w-o-heater-lacrosse-2005-2009-a-gm1320305","title":"BUICK LACROSSE 2005-2009 — DOOR MIRROR LH ; ELECTRIC;W\/O HEATER; LACROSSE 2005-2009 \u0026 ALLURE 2005-2008","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Buick","offers":[{"title":"Default Title","offer_id":48359454310592,"sku":"GM1320305","price":73.35,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/GM1320305.png?v=1780503030"},{"product_id":"toyota-corolla-2014-2019-door-mirror-lh-power-heaedt-turn-signal-sedan-2014-2019-to1320295","title":"TOYOTA COROLLA 2014-2019 — DOOR MIRROR LH ; POWER\/HEAEDT\/TURN SIGNAL; SEDAN 2014-2019","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Toyota","offers":[{"title":"Default Title","offer_id":48359454343360,"sku":"TO1320295","price":107.64,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/61Ai-6ptBLL._AC_SL1500.jpg?v=1780503030"},{"product_id":"toyota-yaris-2012-2014-door-mirror-lh-power-heated-textured-hatchback-2012-2014-to1320280","title":"TOYOTA YARIS 2012-2014 — DOOR MIRROR LH ; POWER\/HEATED\/ TEXTURED; HATCHBACK 2012-2014","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Toyota","offers":[{"title":"Default Title","offer_id":48359454376128,"sku":"TO1320280","price":66.18,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/98.jpg?v=1780503031"},{"product_id":"acura-ilx-2013-2018-door-mirror-lh-power-heated-folding-ilx-2013-2017-ilx-hybrid-ac1320116","title":"ACURA ILX 2013-2018 — DOOR MIRROR LH ; POWER\/HEATED\/FOLDING; ILX 2013-2017 \/ ILX HYBRID 2013-2015","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Acura","offers":[{"title":"Default Title","offer_id":48359454408896,"sku":"AC1320116","price":163.8,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/AC1320116.png?v=1780503030"},{"product_id":"ford-fusion-2006-2009-door-mirror-lh-power-heated-w-o-puddle-light-fusion-2006-2-fo1320266","title":"FORD FUSION 2006-2009 — DOOR MIRROR LH ; POWER\/HEATED; W\/O PUDDLE LIGHT ; FUSION 2006-2010 \u0026 MERCURY MILAN 2006-2009","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Ford","offers":[{"title":"Default Title","offer_id":48359454671040,"sku":"FO1320266","price":49.57,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/FO1320266ds.jpg?v=1780503032"},{"product_id":"honda-odyssey-2011-2017-door-mirror-lh-power-heated-w-o-turn-signals-for-ex-exl-ho1320278","title":"HONDA ODYSSEY 2011-2017 — DOOR MIRROR LH ; POWER\/HEATED; W\/O TURN SIGNALS; FOR EX\/EXL MODELS; ODYSSEY 2014-2017","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Honda","offers":[{"title":"Default Title","offer_id":48359454736576,"sku":"HO1320278","price":149.76,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/ho1320278_1.jpg?v=1780503033"},{"product_id":"toyota-yaris-2012-2014-door-mirror-lh-power-textured-w-o-heated-hatchback-2012-2-to1320279","title":"TOYOTA YARIS 2012-2014 — DOOR MIRROR LH ; POWER\/TEXTURED; W\/O HEATED ; HATCHBACK 2012-2014","description":"\u003cstyle\u003e\n\/* --- \n   ENTERPRISE HIGH-TECH THEME V4\n   Bright, Flawlessly Centered (Desktop \u0026 Mobile), No Black\n--- *\/\n\n:root {\n  --jd-bg-main: #ffffff;\n  --jd-bg-surface: #f8fafc;\n  --jd-text-heading: #0f172a; \n  --jd-text-body: #334155; \n  --jd-text-muted: #64748b;\n  --jd-accent: #2563eb; \n  --jd-accent-light: #60a5fa;\n  --jd-accent-gradient: linear-gradient(135deg, #1e40af, #3b82f6, #0ea5e9);\n  --jd-border: #e2e8f0;\n  \n  --jd-shadow-sm: 0 8px 24px rgba(15, 23, 42, 0.06);\n  --jd-shadow-lg: 0 20px 48px rgba(37, 99, 235, 0.12);\n  --jd-shadow-glow: 0 0 30px rgba(59, 130, 246, 0.15);\n  \n  --jd-ease: cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n@keyframes jd-fade-in {\n  0% { opacity: 0; transform: translateY(15px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes jd-gradient-bg {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n@keyframes jd-text-shine {\n  to { background-position: 200% center; }\n}\n\n.jd-wrapper {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  max-width: 1000px; \n  margin: 30px auto;\n  color: var(--jd-text-body);\n  background: var(--jd-bg-main);\n  border-radius: 20px;\n  box-shadow: 0 0 0 1px var(--jd-border), var(--jd-shadow-sm);\n  overflow: hidden;\n  text-align: center; \n}\n\n.jd-hero {\n  background: linear-gradient(120deg, #ffffff, #f1f5f9, #e0e7ff);\n  background-size: 200% 200%;\n  animation: jd-gradient-bg 10s ease infinite, jd-fade-in 0.8s var(--jd-ease) forwards;\n  position: relative;\n  padding: 80px 40px;\n  border-bottom: 4px solid var(--jd-accent);\n}\n\n.jd-hero::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-image: linear-gradient(var(--jd-border) 1px, transparent 1px), \n                    linear-gradient(90deg, var(--jd-border) 1px, transparent 1px);\n  background-size: 40px 40px;\n  opacity: 0.5;\n  pointer-events: none;\n}\n\n.jd-hero-content {\n  position: relative;\n  z-index: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-hero h2 {\n  margin: 0;\n  font-size: 42px;\n  font-weight: 800;\n  letter-spacing: -0.5px;\n  line-height: 1.2;\n  text-align: center;\n  text-wrap: balance;\n  background: linear-gradient(90deg, #0f172a, #2563eb, #0f172a);\n  background-size: 200% auto;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  animation: jd-text-shine 5s linear infinite;\n}\n\n.jd-hero p {\n  margin: 24px 0 0 0;\n  max-width: 650px;\n  font-size: 19px;\n  color: var(--jd-text-body);\n  line-height: 1.7;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-badges {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin: -25px auto 50px; \n  justify-content: center;\n  position: relative;\n  z-index: 2;\n  padding: 0 20px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.1s forwards;\n  opacity: 0;\n}\n\n.jd-badge {\n  background: var(--jd-bg-main);\n  border: 1px solid var(--jd-border);\n  border-radius: 50px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--jd-text-heading);\n  box-shadow: var(--jd-shadow-sm);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: relative;\n  overflow: hidden;\n  cursor: default;\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-badge::after {\n  content: \"\";\n  position: absolute;\n  top: 0; left: -100%; width: 50%; height: 100%;\n  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0) 100%);\n  transform: skewX(-25deg);\n  transition: all 0.6s ease;\n}\n\n.jd-badge:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--jd-shadow-lg);\n  border-color: var(--jd-accent-light);\n  color: var(--jd-accent);\n}\n\n.jd-badge:hover::after {\n  left: 150%;\n}\n\n.jd-content-wrapper {\n  padding: 20px 50px;\n}\n\n.jd-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 30px;\n  margin-top: 10px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.2s forwards;\n  opacity: 0;\n}\n\n.jd-card {\n  background: var(--jd-bg-surface);\n  border-radius: 16px;\n  padding: 40px 30px;\n  border: 1px solid var(--jd-border);\n  transition: all 0.5s var(--jd-ease);\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n}\n\n.jd-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 4px;\n  background: var(--jd-accent-gradient);\n  opacity: 0.5;\n  transition: all 0.5s var(--jd-ease);\n}\n\n.jd-card:hover {\n  transform: translateY(-8px) scale(1.01);\n  box-shadow: var(--jd-shadow-lg), var(--jd-shadow-glow);\n  background: var(--jd-bg-main);\n  border-color: #cbd5e1;\n}\n\n.jd-card:hover::before {\n  opacity: 1;\n  height: 6px;\n}\n\n.jd-title {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--jd-text-heading);\n  margin-bottom: 20px;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  text-align: center;\n}\n\n.jd-card-text {\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-specs-container {\n  display: flex;\n  justify-content: center;\n  width: 100%;\n}\n\n.jd-specs-list {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.jd-specs-list span {\n  display: flex;\n  align-items: flex-start;\n  text-align: left;\n  gap: 10px;\n}\n\n.jd-specs-list span::before {\n  content: \"•\";\n  color: var(--jd-accent);\n  font-size: 20px;\n  line-height: 1.4;\n}\n\n.jd-alert {\n  margin-top: 40px;\n  background: linear-gradient(135deg, #eff6ff, #f8fafc); \n  border: 1px solid #bfdbfe;\n  padding: 30px;\n  border-radius: 16px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 12px;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.3s forwards;\n  opacity: 0;\n  box-shadow: var(--jd-shadow-sm);\n}\n\n.jd-alert strong {\n  color: var(--jd-accent);\n  font-size: 18px;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n}\n\n.jd-alert p {\n  margin: 0;\n  color: var(--jd-text-heading);\n  font-size: 16px;\n  line-height: 1.6;\n  text-wrap: balance;\n}\n\n.jd-accordion {\n  margin-top: 50px;\n  border-top: 1px solid var(--jd-border);\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.4s forwards;\n  opacity: 0;\n}\n\n.jd-item {\n  border-bottom: 1px solid var(--jd-border);\n  transition: background 0.3s ease;\n}\n\n.jd-item:hover {\n  background: #f8fafc;\n}\n\n.jd-item summary {\n  padding: 30px 0;\n  cursor: pointer;\n  font-size: 18px;\n  font-weight: 700;\n  color: var(--jd-text-heading);\n  list-style: none;\n  position: relative;\n  outline: none;\n  display: flex;\n  justify-content: center; \n  align-items: center;\n  text-align: center;\n  transition: color 0.3s ease;\n}\n\n.jd-item[open] summary {\n  color: var(--jd-accent);\n}\n\n.jd-item summary::-webkit-details-marker {\n  display: none;\n}\n\n.jd-item summary::after {\n  content: \"+\";\n  position: absolute;\n  right: 20px;\n  font-size: 26px;\n  color: var(--jd-text-muted);\n  transition: all 0.4s var(--jd-ease);\n}\n\n.jd-item[open] summary::after {\n  content: \"−\";\n  color: var(--jd-accent);\n  transform: rotate(180deg);\n}\n\n.jd-item div {\n  padding: 0 40px 30px 40px;\n  font-size: 16px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  animation: jd-fade-in 0.4s var(--jd-ease) forwards;\n  margin: 0 auto;\n  max-width: 800px;\n  text-align: center;\n  text-wrap: balance;\n}\n\n.jd-footer {\n  margin-top: 40px;\n  background: linear-gradient(180deg, var(--jd-bg-surface), #e2e8f0);\n  border-top: 1px solid var(--jd-border);\n  padding: 60px 40px;\n  text-align: center;\n  animation: jd-fade-in 0.8s var(--jd-ease) 0.5s forwards;\n  opacity: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.jd-footer h3 {\n  margin: 0 0 20px 0;\n  font-size: 26px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  color: var(--jd-text-heading);\n}\n\n.jd-footer h3 span {\n  color: var(--jd-accent);\n}\n\n.jd-footer p {\n  margin: 0;\n  max-width: 650px;\n  color: var(--jd-text-body);\n  line-height: 1.8;\n  font-size: 16px;\n  font-weight: 500;\n  text-align: center;\n  text-wrap: balance;\n}\n\n@media(max-width: 768px) {\n  .jd-hero {\n    padding: 60px 20px;\n  }\n  .jd-hero h2 {\n    font-size: 32px;\n  }\n  .jd-hero p {\n    font-size: 16px;\n  }\n  .jd-content-wrapper {\n    padding: 20px;\n  }\n  .jd-badge {\n    width: 100%;\n  }\n  .jd-card {\n    padding: 30px 20px;\n  }\n  .jd-item div {\n    padding: 0 20px 30px 20px;\n  }\n  .jd-footer {\n    padding: 50px 20px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"jd-wrapper\"\u003e\n\n  \u003cdiv class=\"jd-hero\"\u003e\n    \u003cdiv class=\"jd-hero-content\"\u003e\n      \u003ch2\u003ePremium Aftermarket Parts\u003c\/h2\u003e\n      \u003cp\u003ePrecision-engineered replacement components designed for an exact fit, flawless appearance, and enduring performance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-badges\"\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🚚 Ships Across Canada\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e✔️ OEM-Grade Quality\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e📦 Secure Packaging\u003c\/div\u003e\n    \u003cdiv class=\"jd-badge\"\u003e🇨🇦 Canadian Warehouse\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-content-wrapper\"\u003e\n    \n    \u003cdiv class=\"jd-grid\"\u003e\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eVehicle Compatibility\u003c\/div\u003e\n        \u003cdiv class=\"jd-card-text\"\u003e\n          Always verify that your vehicle matches the compatibility specifications provided above prior to placing your order.\n          \u003cbr\u003e\u003cbr\u003e\n          If you require assistance, contact our technical support team with your VIN, and we will gladly confirm exact fitment.\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"jd-card\"\u003e\n        \u003cdiv class=\"jd-title\"\u003eProduct Specifications\u003c\/div\u003e\n        \u003cdiv class=\"jd-specs-container\"\u003e\n          \u003cdiv class=\"jd-specs-list\"\u003e\n            \u003cspan\u003eBrand new aftermarket component\u003c\/span\u003e\n            \u003cspan\u003eMeets or exceeds OEM standards\u003c\/span\u003e\n            \u003cspan\u003ePrecision-designed for proper fit\u003c\/span\u003e\n            \u003cspan\u003eProfessional installation recommended\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-alert\"\u003e\n      \u003cstrong\u003eImportant Shipping Notice\u003c\/strong\u003e\n      \u003cp\u003eThis product is exclusively available for shipping within \u003cstrong\u003eCanada\u003c\/strong\u003e. Orders containing delivery addresses outside of Canada are subject to cancellation.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"jd-accordion\"\u003e\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCondition \u0026amp; Quality\u003c\/summary\u003e\n        \u003cdiv\u003e\n          This item is a brand-new, premium aftermarket replacement part. It is not a used, refurbished, or OEM factory component unless explicitly stated within the listing details.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eShipping \u0026amp; Handling\u003c\/summary\u003e\n        \u003cdiv\u003e\n          All orders are meticulously packaged to ensure the protection of your purchase during transit. Please inspect your shipment immediately upon delivery and notify us promptly if any shipping damage has occurred.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eInstallation Guidelines\u003c\/summary\u003e\n        \u003cdiv\u003e\n          To ensure optimal performance, professional installation is strongly recommended. Select products may require the transfer of existing hardware, mounting clips, brackets, sensors, or trim from your original part.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"jd-item\"\u003e\n        \u003csummary\u003eCustomer Support\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Our dedicated team is available to assist you with compatibility checks, inventory availability, and any technical inquiries prior to your purchase.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jd-footer\"\u003e\n    \u003ch3\u003eJapan Direct \u003cspan\u003eJapanese\u003c\/span\u003e\n\u003c\/h3\u003e\n    \u003cp\u003eServing drivers across Canada with elite aftermarket automotive components. Committed to precision, dependability, and uncompromising customer service.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Toyota","offers":[{"title":"Default Title","offer_id":48359454802112,"sku":"TO1320279","price":64.4,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/1469\/3312\/files\/99.jpg?v=1780503033"}],"url":"https:\/\/japandirectjapanese.com\/collections\/replacement-mirrors-aftermarket\/pontiac.oembed","provider":"Japan Direct Japanese Auto Parts","version":"1.0","type":"link"}