diff --git a/components.json b/components.json
index 7a63543..7d57192 100644
--- a/components.json
+++ b/components.json
@@ -17,4 +17,4 @@
     "lib": "@/lib",
     "hooks": "@/hooks"
   }
-}
\ No newline at end of file
+}
diff --git a/next.config.mjs b/next.config.mjs
index ba896f8..f3eeefe 100644
--- a/next.config.mjs
+++ b/next.config.mjs
@@ -1,19 +1,19 @@
 /** @type {import('next').NextConfig} */
 const nextConfig = {
-    output: 'standalone',
-    images: {
-        remotePatterns: [
-          {
-            protocol: 'https',
-            hostname: '**.amazonaws.com',
-          },
-          {
-            protocol: 'http',
-            hostname: 'localhost',
-          },
-        ],
-        unoptimized: true,
-    },
+  output: 'standalone',
+  images: {
+    remotePatterns: [
+      {
+        protocol: 'https',
+        hostname: '**.amazonaws.com',
+      },
+      {
+        protocol: 'http',
+        hostname: 'localhost',
+      },
+    ],
+    unoptimized: true,
+  },
 };
 
 export default nextConfig;
diff --git a/package-lock.json b/package-lock.json
index 0a1ee25..c725c98 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -15,6 +15,7 @@
         "@medusajs/product": "^0.3.13-preview-20241001060739",
         "@mikro-orm/core": "^5.9.7",
         "@mikro-orm/postgresql": "^5.9.7",
+        "@next/third-parties": "^14.2.15",
         "@radix-ui/react-checkbox": "^1.1.2",
         "@radix-ui/react-icons": "^1.3.0",
         "@radix-ui/react-label": "^2.1.0",
@@ -1882,51 +1883,6 @@
         "node": ">=8"
       }
     },
-    "node_modules/@medusajs/framework": {
-      "version": "0.0.2-preview-20241001060739",
-      "resolved": "https://registry.npmjs.org/@medusajs/framework/-/framework-0.0.2-preview-20241001060739.tgz",
-      "integrity": "sha512-QbYtHKMpM7HaM+301WzGSxO0OF26rCfczFQ/EWL+XQy0f+0xVnlDQVc+BFmIFfieyqUaEcO/eWgrs9K4ETHjDg==",
-      "peer": true,
-      "dependencies": {
-        "@medusajs/modules-sdk": "1.13.0-preview-20241001060739",
-        "@medusajs/orchestration": "0.5.8-preview-20241001060739",
-        "@medusajs/types": "1.12.0-preview-20241001060739",
-        "@medusajs/utils": "1.12.0-preview-20241001060739",
-        "@medusajs/workflows-sdk": "0.1.7-preview-20241001060739",
-        "@opentelemetry/api": "^1.9.0",
-        "connect-redis": "5.2.0",
-        "cookie-parser": "^1.4.6",
-        "cors": "^2.8.5",
-        "express": "^4.21.0",
-        "express-session": "^1.17.3",
-        "jsonwebtoken": "^9.0.2",
-        "medusa-telemetry": "0.0.18-preview-20241001060739",
-        "morgan": "^1.9.1",
-        "zod": "3.22.4"
-      },
-      "engines": {
-        "node": ">=20"
-      },
-      "peerDependencies": {
-        "@medusajs/medusa-cli": "1.3.23-preview-20241001060739",
-        "@mikro-orm/core": "5.9.7",
-        "@mikro-orm/knex": "5.9.7",
-        "@mikro-orm/migrations": "5.9.7",
-        "@mikro-orm/postgresql": "5.9.7",
-        "awilix": "^8.0.1",
-        "ioredis": "^5.4.1",
-        "pg": "^8.13.0",
-        "vite": "^5.2.11"
-      },
-      "peerDependenciesMeta": {
-        "ioredis": {
-          "optional": true
-        },
-        "vite": {
-          "optional": true
-        }
-      }
-    },
     "node_modules/@medusajs/js-sdk": {
       "version": "0.0.2-preview-20241001060739",
       "resolved": "https://registry.npmjs.org/@medusajs/js-sdk/-/js-sdk-0.0.2-preview-20241001060739.tgz",
@@ -2177,69 +2133,6 @@
       }
     },
     "node_modules/@medusajs/medusa-cli": {
-      "version": "1.3.23-preview-20241001060739",
-      "resolved": "https://registry.npmjs.org/@medusajs/medusa-cli/-/medusa-cli-1.3.23-preview-20241001060739.tgz",
-      "integrity": "sha512-dRUcHfXEUu+bmL4UJCqB6ipgHwYeGfHbOyrdxzp8Z7nAsXXqQm/aikEmUUqWNC/ZuHAMiZwNkrezBFpc45BfvA==",
-      "peer": true,
-      "dependencies": {
-        "@medusajs/utils": "1.12.0-preview-20241001060739",
-        "chalk": "^4.0.0",
-        "configstore": "5.0.1",
-        "dotenv": "^16.4.5",
-        "execa": "^5.1.1",
-        "express": "^4.21.0",
-        "fs-exists-cached": "^1.0.0",
-        "fs-extra": "^10.0.0",
-        "glob": "^7.1.6",
-        "hosted-git-info": "^4.0.2",
-        "inquirer": "^8.0.0",
-        "is-valid-path": "^0.1.1",
-        "meant": "^1.0.3",
-        "medusa-telemetry": "0.0.18-preview-20241001060739",
-        "ora": "^5.4.1",
-        "pg": "^8.11.3",
-        "pg-god": "^1.0.12",
-        "prompts": "^2.4.2",
-        "resolve-cwd": "^3.0.0",
-        "stack-trace": "^0.0.10",
-        "ulid": "^2.3.0",
-        "winston": "^3.8.2",
-        "yargs": "^15.3.1"
-      },
-      "bin": {
-        "medusa": "cli.js"
-      },
-      "engines": {
-        "node": ">=20"
-      },
-      "peerDependencies": {
-        "@mikro-orm/core": "5.9.7",
-        "@mikro-orm/knex": "5.9.7",
-        "@mikro-orm/migrations": "5.9.7",
-        "@mikro-orm/postgresql": "5.9.7",
-        "awilix": "^8.0.1",
-        "pg": "^8.13.0"
-      }
-    },
-    "node_modules/@medusajs/medusa-js": {
-      "version": "6.1.9",
-      "resolved": "https://registry.npmjs.org/@medusajs/medusa-js/-/medusa-js-6.1.9.tgz",
-      "integrity": "sha512-50JcZDZaqaMnTz6kiy958RAN6XAcBHyH5bvJOgb0bMHgybxZgHnjFCLNo0BNMNIIkevZA/9dEzVWfiN5Ge0Igg==",
-      "dependencies": {
-        "axios": "^0.24.0",
-        "cross-env": "^5.2.1",
-        "qs": "^6.10.3",
-        "retry-axios": "^2.6.0",
-        "uuid": "^9.0.0"
-      },
-      "engines": {
-        "node": ">=12.0.0"
-      },
-      "peerDependencies": {
-        "@medusajs/medusa": "^1.17.2"
-      }
-    },
-    "node_modules/@medusajs/medusa/node_modules/@medusajs/medusa-cli": {
       "version": "1.3.23",
       "resolved": "https://registry.npmjs.org/@medusajs/medusa-cli/-/medusa-cli-1.3.23.tgz",
       "integrity": "sha512-0kLG9OP3h9rXwE9QHYrB6Psi+85lFpyTwGUNZNxhD/duZiuGdvUOw4om95lr7dsDzyBUzGg+nDqRb/9XnHC/lA==",
@@ -2280,6 +2173,161 @@
         "node": ">=16"
       }
     },
+    "node_modules/@medusajs/medusa-cli/node_modules/@medusajs/types": {
+      "version": "1.11.17",
+      "resolved": "https://registry.npmjs.org/@medusajs/types/-/types-1.11.17.tgz",
+      "integrity": "sha512-EKrG1aU0b6es1KlKhCSU2ptwJuHVB0EEiHd35IaIcDyx8ZVjIMscpDOhCSl5efAiRlr3I5kqWIbdSakDIF2Smw==",
+      "engines": {
+        "node": ">=16"
+      }
+    },
+    "node_modules/@medusajs/medusa-cli/node_modules/@medusajs/utils": {
+      "version": "1.11.11",
+      "resolved": "https://registry.npmjs.org/@medusajs/utils/-/utils-1.11.11.tgz",
+      "integrity": "sha512-r4u1Ctgwt0LftnAHggTfU7RgNppdwY6DfQaefxSrPRSCBMniU6p7j9Lv1G7DkTXZd79V9UNJuixqtlFezGC1tA==",
+      "dependencies": {
+        "@medusajs/types": "^1.11.17",
+        "@mikro-orm/core": "5.9.7",
+        "@mikro-orm/migrations": "5.9.7",
+        "@mikro-orm/postgresql": "5.9.7",
+        "awilix": "^8.0.1",
+        "bignumber.js": "^9.1.2",
+        "knex": "2.4.2",
+        "ulid": "^2.3.0"
+      },
+      "engines": {
+        "node": ">=16"
+      }
+    },
+    "node_modules/@medusajs/medusa-cli/node_modules/axios": {
+      "version": "0.21.4",
+      "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
+      "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
+      "dependencies": {
+        "follow-redirects": "^1.14.0"
+      }
+    },
+    "node_modules/@medusajs/medusa-cli/node_modules/commander": {
+      "version": "9.5.0",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
+      "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
+      "engines": {
+        "node": "^12.20.0 || >=14"
+      }
+    },
+    "node_modules/@medusajs/medusa-cli/node_modules/debug": {
+      "version": "4.3.4",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+      "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+      "dependencies": {
+        "ms": "2.1.2"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@medusajs/medusa-cli/node_modules/knex": {
+      "version": "2.4.2",
+      "resolved": "https://registry.npmjs.org/knex/-/knex-2.4.2.tgz",
+      "integrity": "sha512-tMI1M7a+xwHhPxjbl/H9K1kHX+VncEYcvCx5K00M16bWvpYPKAZd6QrCu68PtHAdIZNQPWZn0GVhqVBEthGWCg==",
+      "dependencies": {
+        "colorette": "2.0.19",
+        "commander": "^9.1.0",
+        "debug": "4.3.4",
+        "escalade": "^3.1.1",
+        "esm": "^3.2.25",
+        "get-package-type": "^0.1.0",
+        "getopts": "2.3.0",
+        "interpret": "^2.2.0",
+        "lodash": "^4.17.21",
+        "pg-connection-string": "2.5.0",
+        "rechoir": "^0.8.0",
+        "resolve-from": "^5.0.0",
+        "tarn": "^3.0.2",
+        "tildify": "2.0.0"
+      },
+      "bin": {
+        "knex": "bin/cli.js"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "peerDependenciesMeta": {
+        "better-sqlite3": {
+          "optional": true
+        },
+        "mysql": {
+          "optional": true
+        },
+        "mysql2": {
+          "optional": true
+        },
+        "pg": {
+          "optional": true
+        },
+        "pg-native": {
+          "optional": true
+        },
+        "sqlite3": {
+          "optional": true
+        },
+        "tedious": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@medusajs/medusa-cli/node_modules/ms": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+    },
+    "node_modules/@medusajs/medusa-cli/node_modules/pg-connection-string": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz",
+      "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ=="
+    },
+    "node_modules/@medusajs/medusa-cli/node_modules/resolve-from": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+      "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/@medusajs/medusa-cli/node_modules/semver": {
+      "version": "7.6.3",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+      "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/@medusajs/medusa-js": {
+      "version": "6.1.9",
+      "resolved": "https://registry.npmjs.org/@medusajs/medusa-js/-/medusa-js-6.1.9.tgz",
+      "integrity": "sha512-50JcZDZaqaMnTz6kiy958RAN6XAcBHyH5bvJOgb0bMHgybxZgHnjFCLNo0BNMNIIkevZA/9dEzVWfiN5Ge0Igg==",
+      "dependencies": {
+        "axios": "^0.24.0",
+        "cross-env": "^5.2.1",
+        "qs": "^6.10.3",
+        "retry-axios": "^2.6.0",
+        "uuid": "^9.0.0"
+      },
+      "engines": {
+        "node": ">=12.0.0"
+      },
+      "peerDependencies": {
+        "@medusajs/medusa": "^1.17.2"
+      }
+    },
     "node_modules/@medusajs/medusa/node_modules/@medusajs/modules-sdk": {
       "version": "1.12.12",
       "resolved": "https://registry.npmjs.org/@medusajs/modules-sdk/-/modules-sdk-1.12.12.tgz",
@@ -2355,14 +2403,6 @@
         "node": ">=16"
       }
     },
-    "node_modules/@medusajs/medusa/node_modules/axios": {
-      "version": "0.21.4",
-      "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
-      "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
-      "dependencies": {
-        "follow-redirects": "^1.14.0"
-      }
-    },
     "node_modules/@medusajs/medusa/node_modules/commander": {
       "version": "9.5.0",
       "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
@@ -2437,35 +2477,6 @@
         }
       }
     },
-    "node_modules/@medusajs/medusa/node_modules/medusa-telemetry": {
-      "version": "0.0.18",
-      "resolved": "https://registry.npmjs.org/medusa-telemetry/-/medusa-telemetry-0.0.18.tgz",
-      "integrity": "sha512-WY/cTFoe9+5I8Ly/n614y2XruOUSX3ViL+KznY0xRaQERl/bnx1XAeJMNNnAXTYWaNvdVYwo6ur5qYKai7w/dA==",
-      "hasInstallScript": true,
-      "dependencies": {
-        "@babel/runtime": "^7.22.10",
-        "axios": "^0.21.4",
-        "axios-retry": "^3.1.9",
-        "boxen": "^5.0.1",
-        "ci-info": "^3.2.0",
-        "configstore": "5.0.1",
-        "global": "^4.4.0",
-        "is-docker": "^2.2.1",
-        "remove-trailing-slash": "^0.1.1",
-        "uuid": "^8.3.2"
-      },
-      "engines": {
-        "node": ">=16"
-      }
-    },
-    "node_modules/@medusajs/medusa/node_modules/medusa-telemetry/node_modules/uuid": {
-      "version": "8.3.2",
-      "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
-      "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
-      "bin": {
-        "uuid": "dist/bin/uuid"
-      }
-    },
     "node_modules/@medusajs/medusa/node_modules/ms": {
       "version": "2.1.2",
       "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -2484,17 +2495,6 @@
         "node": ">=8"
       }
     },
-    "node_modules/@medusajs/medusa/node_modules/semver": {
-      "version": "7.6.3",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
-      "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
-      "bin": {
-        "semver": "bin/semver.js"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
     "node_modules/@medusajs/modules-sdk": {
       "version": "1.13.0-preview-20241001060739",
       "resolved": "https://registry.npmjs.org/@medusajs/modules-sdk/-/modules-sdk-1.13.0-preview-20241001060739.tgz",
@@ -2540,33 +2540,352 @@
       }
     },
     "node_modules/@medusajs/pricing": {
-      "version": "0.1.13-preview-20241001060739",
-      "resolved": "https://registry.npmjs.org/@medusajs/pricing/-/pricing-0.1.13-preview-20241001060739.tgz",
-      "integrity": "sha512-mKUrrR+M2JuSbGINRv2pbH7mTe2gX8asf6+wwfdwjo8Wz8uPqc21waTks6s4SnROY6ZdGITBVoMXrtU4XdV8WA==",
-      "engines": {
-        "node": ">=20"
-      },
-      "peerDependencies": {
-        "@medusajs/framework": "0.0.2-preview-20241001060739",
+      "version": "0.1.13",
+      "resolved": "https://registry.npmjs.org/@medusajs/pricing/-/pricing-0.1.13.tgz",
+      "integrity": "sha512-rJX3tmxSO8MD4BTG7+Xdu9LNhRXTyiXVurx96epB6fj+0zDC72z4sK81gC9bRfwXdxonGCdheshbfu5V/CSFwQ==",
+      "dependencies": {
+        "@medusajs/modules-sdk": "^1.12.12",
+        "@medusajs/types": "^1.11.17",
+        "@medusajs/utils": "^1.11.10",
         "@mikro-orm/core": "5.9.7",
         "@mikro-orm/migrations": "5.9.7",
         "@mikro-orm/postgresql": "5.9.7",
-        "awilix": "^8.0.1"
+        "awilix": "^8.0.0",
+        "dotenv": "^16.4.5",
+        "knex": "2.4.2"
+      },
+      "bin": {
+        "medusa-pricing-seed": "dist/scripts/bin/run-seed.js"
+      },
+      "engines": {
+        "node": ">=16"
+      }
+    },
+    "node_modules/@medusajs/pricing/node_modules/@medusajs/modules-sdk": {
+      "version": "1.12.12",
+      "resolved": "https://registry.npmjs.org/@medusajs/modules-sdk/-/modules-sdk-1.12.12.tgz",
+      "integrity": "sha512-27Uc75N+pS490BL6/j8BeM4OyEFlSQQWq2UW07p9GEF7GXXdCJRM5p7S/ZcTAZ61pCKpnQBNiS4qOkb/vhnJwg==",
+      "dependencies": {
+        "@graphql-tools/merge": "^9.0.0",
+        "@graphql-tools/schema": "^10.0.0",
+        "@medusajs/orchestration": "^0.5.8",
+        "@medusajs/types": "^1.11.17",
+        "@medusajs/utils": "^1.11.10",
+        "awilix": "^8.0.0",
+        "graphql": "^16.6.0",
+        "knex": "2.4.2",
+        "pg": "^8.11.2",
+        "resolve-cwd": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=16"
+      }
+    },
+    "node_modules/@medusajs/pricing/node_modules/@medusajs/orchestration": {
+      "version": "0.5.8",
+      "resolved": "https://registry.npmjs.org/@medusajs/orchestration/-/orchestration-0.5.8.tgz",
+      "integrity": "sha512-jCBo6rbfQ6rQCKMarK5K+Lc/Dgq0Ddzqs5FIpFklHTd34gvsjtSAt0W+V9x9P9xwrDN0gNEoGXwTSXihNqrJVQ==",
+      "dependencies": {
+        "@medusajs/types": "^1.11.17",
+        "@medusajs/utils": "^1.11.10",
+        "awilix": "^8.0.0",
+        "graphql": "^16.6.0"
+      },
+      "engines": {
+        "node": ">=16"
+      }
+    },
+    "node_modules/@medusajs/pricing/node_modules/@medusajs/types": {
+      "version": "1.11.17",
+      "resolved": "https://registry.npmjs.org/@medusajs/types/-/types-1.11.17.tgz",
+      "integrity": "sha512-EKrG1aU0b6es1KlKhCSU2ptwJuHVB0EEiHd35IaIcDyx8ZVjIMscpDOhCSl5efAiRlr3I5kqWIbdSakDIF2Smw==",
+      "engines": {
+        "node": ">=16"
+      }
+    },
+    "node_modules/@medusajs/pricing/node_modules/@medusajs/utils": {
+      "version": "1.11.11",
+      "resolved": "https://registry.npmjs.org/@medusajs/utils/-/utils-1.11.11.tgz",
+      "integrity": "sha512-r4u1Ctgwt0LftnAHggTfU7RgNppdwY6DfQaefxSrPRSCBMniU6p7j9Lv1G7DkTXZd79V9UNJuixqtlFezGC1tA==",
+      "dependencies": {
+        "@medusajs/types": "^1.11.17",
+        "@mikro-orm/core": "5.9.7",
+        "@mikro-orm/migrations": "5.9.7",
+        "@mikro-orm/postgresql": "5.9.7",
+        "awilix": "^8.0.1",
+        "bignumber.js": "^9.1.2",
+        "knex": "2.4.2",
+        "ulid": "^2.3.0"
+      },
+      "engines": {
+        "node": ">=16"
+      }
+    },
+    "node_modules/@medusajs/pricing/node_modules/commander": {
+      "version": "9.5.0",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
+      "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
+      "engines": {
+        "node": "^12.20.0 || >=14"
+      }
+    },
+    "node_modules/@medusajs/pricing/node_modules/debug": {
+      "version": "4.3.4",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+      "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+      "dependencies": {
+        "ms": "2.1.2"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@medusajs/pricing/node_modules/knex": {
+      "version": "2.4.2",
+      "resolved": "https://registry.npmjs.org/knex/-/knex-2.4.2.tgz",
+      "integrity": "sha512-tMI1M7a+xwHhPxjbl/H9K1kHX+VncEYcvCx5K00M16bWvpYPKAZd6QrCu68PtHAdIZNQPWZn0GVhqVBEthGWCg==",
+      "dependencies": {
+        "colorette": "2.0.19",
+        "commander": "^9.1.0",
+        "debug": "4.3.4",
+        "escalade": "^3.1.1",
+        "esm": "^3.2.25",
+        "get-package-type": "^0.1.0",
+        "getopts": "2.3.0",
+        "interpret": "^2.2.0",
+        "lodash": "^4.17.21",
+        "pg-connection-string": "2.5.0",
+        "rechoir": "^0.8.0",
+        "resolve-from": "^5.0.0",
+        "tarn": "^3.0.2",
+        "tildify": "2.0.0"
+      },
+      "bin": {
+        "knex": "bin/cli.js"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "peerDependenciesMeta": {
+        "better-sqlite3": {
+          "optional": true
+        },
+        "mysql": {
+          "optional": true
+        },
+        "mysql2": {
+          "optional": true
+        },
+        "pg": {
+          "optional": true
+        },
+        "pg-native": {
+          "optional": true
+        },
+        "sqlite3": {
+          "optional": true
+        },
+        "tedious": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@medusajs/pricing/node_modules/ms": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+    },
+    "node_modules/@medusajs/pricing/node_modules/pg-connection-string": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz",
+      "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ=="
+    },
+    "node_modules/@medusajs/pricing/node_modules/resolve-from": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+      "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+      "engines": {
+        "node": ">=8"
       }
     },
     "node_modules/@medusajs/product": {
-      "version": "0.3.13-preview-20241001060739",
-      "resolved": "https://registry.npmjs.org/@medusajs/product/-/product-0.3.13-preview-20241001060739.tgz",
-      "integrity": "sha512-DdavWtAHUP4T4+Od3jQVCg9ohsjDtd6SW3lX86wSzKRIv+ee3yZVZTISlH/YdyIpuzBeQaQ4uGSpTtLC8OOE5g==",
-      "engines": {
-        "node": ">=20"
-      },
-      "peerDependencies": {
-        "@medusajs/framework": "0.0.2-preview-20241001060739",
+      "version": "0.3.13",
+      "resolved": "https://registry.npmjs.org/@medusajs/product/-/product-0.3.13.tgz",
+      "integrity": "sha512-qBVKXIc9qP49DC7Rm++Y1sagc/KaWtR2y29nWQ5Xdk6JgqqU+gxC2a0MbTi/HFAlAgOT9/usbdA7P+FBB6OQSw==",
+      "dependencies": {
+        "@medusajs/modules-sdk": "^1.12.12",
+        "@medusajs/types": "^1.11.17",
+        "@medusajs/utils": "^1.11.10",
         "@mikro-orm/core": "5.9.7",
         "@mikro-orm/migrations": "5.9.7",
         "@mikro-orm/postgresql": "5.9.7",
-        "awilix": "^8.0.1"
+        "awilix": "^8.0.0",
+        "dotenv": "^16.4.5",
+        "knex": "2.4.2",
+        "lodash": "^4.17.21"
+      },
+      "bin": {
+        "medusa-product-seed": "dist/scripts/bin/run-seed.js"
+      },
+      "engines": {
+        "node": ">=16"
+      }
+    },
+    "node_modules/@medusajs/product/node_modules/@medusajs/modules-sdk": {
+      "version": "1.12.12",
+      "resolved": "https://registry.npmjs.org/@medusajs/modules-sdk/-/modules-sdk-1.12.12.tgz",
+      "integrity": "sha512-27Uc75N+pS490BL6/j8BeM4OyEFlSQQWq2UW07p9GEF7GXXdCJRM5p7S/ZcTAZ61pCKpnQBNiS4qOkb/vhnJwg==",
+      "dependencies": {
+        "@graphql-tools/merge": "^9.0.0",
+        "@graphql-tools/schema": "^10.0.0",
+        "@medusajs/orchestration": "^0.5.8",
+        "@medusajs/types": "^1.11.17",
+        "@medusajs/utils": "^1.11.10",
+        "awilix": "^8.0.0",
+        "graphql": "^16.6.0",
+        "knex": "2.4.2",
+        "pg": "^8.11.2",
+        "resolve-cwd": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=16"
+      }
+    },
+    "node_modules/@medusajs/product/node_modules/@medusajs/orchestration": {
+      "version": "0.5.8",
+      "resolved": "https://registry.npmjs.org/@medusajs/orchestration/-/orchestration-0.5.8.tgz",
+      "integrity": "sha512-jCBo6rbfQ6rQCKMarK5K+Lc/Dgq0Ddzqs5FIpFklHTd34gvsjtSAt0W+V9x9P9xwrDN0gNEoGXwTSXihNqrJVQ==",
+      "dependencies": {
+        "@medusajs/types": "^1.11.17",
+        "@medusajs/utils": "^1.11.10",
+        "awilix": "^8.0.0",
+        "graphql": "^16.6.0"
+      },
+      "engines": {
+        "node": ">=16"
+      }
+    },
+    "node_modules/@medusajs/product/node_modules/@medusajs/types": {
+      "version": "1.11.17",
+      "resolved": "https://registry.npmjs.org/@medusajs/types/-/types-1.11.17.tgz",
+      "integrity": "sha512-EKrG1aU0b6es1KlKhCSU2ptwJuHVB0EEiHd35IaIcDyx8ZVjIMscpDOhCSl5efAiRlr3I5kqWIbdSakDIF2Smw==",
+      "engines": {
+        "node": ">=16"
+      }
+    },
+    "node_modules/@medusajs/product/node_modules/@medusajs/utils": {
+      "version": "1.11.11",
+      "resolved": "https://registry.npmjs.org/@medusajs/utils/-/utils-1.11.11.tgz",
+      "integrity": "sha512-r4u1Ctgwt0LftnAHggTfU7RgNppdwY6DfQaefxSrPRSCBMniU6p7j9Lv1G7DkTXZd79V9UNJuixqtlFezGC1tA==",
+      "dependencies": {
+        "@medusajs/types": "^1.11.17",
+        "@mikro-orm/core": "5.9.7",
+        "@mikro-orm/migrations": "5.9.7",
+        "@mikro-orm/postgresql": "5.9.7",
+        "awilix": "^8.0.1",
+        "bignumber.js": "^9.1.2",
+        "knex": "2.4.2",
+        "ulid": "^2.3.0"
+      },
+      "engines": {
+        "node": ">=16"
+      }
+    },
+    "node_modules/@medusajs/product/node_modules/commander": {
+      "version": "9.5.0",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
+      "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
+      "engines": {
+        "node": "^12.20.0 || >=14"
+      }
+    },
+    "node_modules/@medusajs/product/node_modules/debug": {
+      "version": "4.3.4",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+      "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+      "dependencies": {
+        "ms": "2.1.2"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@medusajs/product/node_modules/knex": {
+      "version": "2.4.2",
+      "resolved": "https://registry.npmjs.org/knex/-/knex-2.4.2.tgz",
+      "integrity": "sha512-tMI1M7a+xwHhPxjbl/H9K1kHX+VncEYcvCx5K00M16bWvpYPKAZd6QrCu68PtHAdIZNQPWZn0GVhqVBEthGWCg==",
+      "dependencies": {
+        "colorette": "2.0.19",
+        "commander": "^9.1.0",
+        "debug": "4.3.4",
+        "escalade": "^3.1.1",
+        "esm": "^3.2.25",
+        "get-package-type": "^0.1.0",
+        "getopts": "2.3.0",
+        "interpret": "^2.2.0",
+        "lodash": "^4.17.21",
+        "pg-connection-string": "2.5.0",
+        "rechoir": "^0.8.0",
+        "resolve-from": "^5.0.0",
+        "tarn": "^3.0.2",
+        "tildify": "2.0.0"
+      },
+      "bin": {
+        "knex": "bin/cli.js"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "peerDependenciesMeta": {
+        "better-sqlite3": {
+          "optional": true
+        },
+        "mysql": {
+          "optional": true
+        },
+        "mysql2": {
+          "optional": true
+        },
+        "pg": {
+          "optional": true
+        },
+        "pg-native": {
+          "optional": true
+        },
+        "sqlite3": {
+          "optional": true
+        },
+        "tedious": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@medusajs/product/node_modules/ms": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+    },
+    "node_modules/@medusajs/product/node_modules/pg-connection-string": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz",
+      "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ=="
+    },
+    "node_modules/@medusajs/product/node_modules/resolve-from": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+      "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+      "engines": {
+        "node": ">=8"
       }
     },
     "node_modules/@medusajs/types": {
@@ -2625,31 +2944,6 @@
         "pg": "^8.13.0"
       }
     },
-    "node_modules/@medusajs/workflows-sdk": {
-      "version": "0.1.7-preview-20241001060739",
-      "resolved": "https://registry.npmjs.org/@medusajs/workflows-sdk/-/workflows-sdk-0.1.7-preview-20241001060739.tgz",
-      "integrity": "sha512-NvODZiWewE5wgmSJrN9qoYXJt+ApX+Fj66dOHBwVHjwHx1ndGeTaS/BTjM2Z4i94afBWg1yccE+CKmQSU5iztw==",
-      "peer": true,
-      "dependencies": {
-        "@medusajs/modules-sdk": "1.13.0-preview-20241001060739",
-        "@medusajs/orchestration": "0.5.8-preview-20241001060739",
-        "@medusajs/types": "1.12.0-preview-20241001060739",
-        "@medusajs/utils": "1.12.0-preview-20241001060739",
-        "ulid": "^2.3.0"
-      },
-      "engines": {
-        "node": ">=20.0.0"
-      },
-      "peerDependencies": {
-        "@mikro-orm/core": "5.9.7",
-        "@mikro-orm/knex": "5.9.7",
-        "@mikro-orm/migrations": "5.9.7",
-        "@mikro-orm/postgresql": "5.9.7",
-        "awilix": "^8.0.1",
-        "express": "^4.21.0",
-        "pg": "^8.13.0"
-      }
-    },
     "node_modules/@mikro-orm/core": {
       "version": "5.9.7",
       "resolved": "https://registry.npmjs.org/@mikro-orm/core/-/core-5.9.7.tgz",
@@ -3160,6 +3454,18 @@
         "node": ">= 10"
       }
     },
+    "node_modules/@next/third-parties": {
+      "version": "14.2.15",
+      "resolved": "https://registry.npmjs.org/@next/third-parties/-/third-parties-14.2.15.tgz",
+      "integrity": "sha512-15CvipE1p1GtlzVfbDfXPrAGIhzJJe75Yy6+GIBRTd36lu95BegRsUJwCxJYoKz47Q09stcU2gJDMduMGqrikw==",
+      "dependencies": {
+        "third-party-capital": "1.0.20"
+      },
+      "peerDependencies": {
+        "next": "^13.0.0 || ^14.0.0",
+        "react": "^18.2.0"
+      }
+    },
     "node_modules/@nodelib/fs.scandir": {
       "version": "2.1.5",
       "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -3489,6 +3795,7 @@
       "version": "1.9.0",
       "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz",
       "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==",
+      "optional": true,
       "peer": true,
       "engines": {
         "node": ">=8.0.0"
@@ -6328,19 +6635,19 @@
       "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
     },
     "node_modules/cookie": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
-      "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==",
+      "version": "0.7.2",
+      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
+      "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
       "engines": {
         "node": ">= 0.6"
       }
     },
     "node_modules/cookie-parser": {
-      "version": "1.4.6",
-      "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz",
-      "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==",
+      "version": "1.4.7",
+      "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.7.tgz",
+      "integrity": "sha512-nGUvgXnotP3BsjiLX2ypbQnWoGUPIIfHQNZkkC668ntrzGWEZVW70HDEB1qnNGMicPje6EttlIgzo51YSwNQGw==",
       "dependencies": {
-        "cookie": "0.4.1",
+        "cookie": "0.7.2",
         "cookie-signature": "1.0.6"
       },
       "engines": {
@@ -7645,16 +7952,16 @@
       }
     },
     "node_modules/express": {
-      "version": "4.21.0",
-      "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz",
-      "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==",
+      "version": "4.21.1",
+      "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz",
+      "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==",
       "dependencies": {
         "accepts": "~1.3.8",
         "array-flatten": "1.1.1",
         "body-parser": "1.20.3",
         "content-disposition": "0.5.4",
         "content-type": "~1.0.4",
-        "cookie": "0.6.0",
+        "cookie": "0.7.1",
         "cookie-signature": "1.0.6",
         "debug": "2.6.9",
         "depd": "2.0.0",
@@ -7686,11 +7993,11 @@
       }
     },
     "node_modules/express-session": {
-      "version": "1.18.0",
-      "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.18.0.tgz",
-      "integrity": "sha512-m93QLWr0ju+rOwApSsyso838LQwgfs44QtOP/WBiwtAgPIo/SAh1a5c6nn2BR6mFNZehTpqKDESzP+fRHVbxwQ==",
+      "version": "1.18.1",
+      "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.18.1.tgz",
+      "integrity": "sha512-a5mtTqEaZvBCL9A9aqkrtfz+3SMDhOVUnjafjo+s7A9Txkq+SVX2DLvSp1Zrv4uCXa3lMSK3viWnh9Gg07PBUA==",
       "dependencies": {
-        "cookie": "0.6.0",
+        "cookie": "0.7.2",
         "cookie-signature": "1.0.7",
         "debug": "2.6.9",
         "depd": "~2.0.0",
@@ -7703,14 +8010,6 @@
         "node": ">= 0.8.0"
       }
     },
-    "node_modules/express-session/node_modules/cookie": {
-      "version": "0.6.0",
-      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
-      "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
-      "engines": {
-        "node": ">= 0.6"
-      }
-    },
     "node_modules/express-session/node_modules/cookie-signature": {
       "version": "1.0.7",
       "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz",
@@ -7749,9 +8048,9 @@
       ]
     },
     "node_modules/express/node_modules/cookie": {
-      "version": "0.6.0",
-      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
-      "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
+      "version": "0.7.1",
+      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
+      "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
       "engines": {
         "node": ">= 0.6"
       }
@@ -9964,11 +10263,10 @@
       }
     },
     "node_modules/medusa-telemetry": {
-      "version": "0.0.18-preview-20241001060739",
-      "resolved": "https://registry.npmjs.org/medusa-telemetry/-/medusa-telemetry-0.0.18-preview-20241001060739.tgz",
-      "integrity": "sha512-IQklFo4F/PMhQP1Ppt8wb9pX5SeXpuiyQk1sD0bHEXX6QdMga4E69bRhw8iKn1OHst+HUNYdub7MrWLcrS+Ubg==",
+      "version": "0.0.18",
+      "resolved": "https://registry.npmjs.org/medusa-telemetry/-/medusa-telemetry-0.0.18.tgz",
+      "integrity": "sha512-WY/cTFoe9+5I8Ly/n614y2XruOUSX3ViL+KznY0xRaQERl/bnx1XAeJMNNnAXTYWaNvdVYwo6ur5qYKai7w/dA==",
       "hasInstallScript": true,
-      "peer": true,
       "dependencies": {
         "@babel/runtime": "^7.22.10",
         "axios": "^0.21.4",
@@ -9989,7 +10287,6 @@
       "version": "0.21.4",
       "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
       "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
-      "peer": true,
       "dependencies": {
         "follow-redirects": "^1.14.0"
       }
@@ -9998,7 +10295,6 @@
       "version": "8.3.2",
       "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
       "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
-      "peer": true,
       "bin": {
         "uuid": "dist/bin/uuid"
       }
@@ -12855,6 +13151,11 @@
         "node": ">=0.8"
       }
     },
+    "node_modules/third-party-capital": {
+      "version": "1.0.20",
+      "resolved": "https://registry.npmjs.org/third-party-capital/-/third-party-capital-1.0.20.tgz",
+      "integrity": "sha512-oB7yIimd8SuGptespDAZnNkzIz+NWaJCu2RMsbs4Wmp9zSDUM8Nhi3s2OOcqYuv3mN4hitXc8DVx+LyUmbUDiA=="
+    },
     "node_modules/through": {
       "version": "2.3.8",
       "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
diff --git a/package.json b/package.json
index 46747e3..602d834 100644
--- a/package.json
+++ b/package.json
@@ -16,6 +16,7 @@
     "@medusajs/product": "^0.3.13-preview-20241001060739",
     "@mikro-orm/core": "^5.9.7",
     "@mikro-orm/postgresql": "^5.9.7",
+    "@next/third-parties": "^14.2.15",
     "@radix-ui/react-checkbox": "^1.1.2",
     "@radix-ui/react-icons": "^1.3.0",
     "@radix-ui/react-label": "^2.1.0",
diff --git a/src/app/(static)/layout.tsx b/src/app/(static)/layout.tsx
index b5d03e4..ff8885b 100644
--- a/src/app/(static)/layout.tsx
+++ b/src/app/(static)/layout.tsx
@@ -1,5 +1,6 @@
 import '../globals.css';
 
+import { GoogleAnalytics } from '@next/third-parties/google';
 import { ReactNode } from 'react';
 
 import { Footer } from '@/components/footer';
@@ -27,6 +28,7 @@ export default function RootLayout({ children }: RootLayoutProps) {
         </RegionProvider>
         <Footer />
       </body>
+      <GoogleAnalytics gaId='G-R3FGFLLVRX' />
     </html>
   );
 }
diff --git a/src/app/(storefront)/layout.tsx b/src/app/(storefront)/layout.tsx
index b5d03e4..ff8885b 100644
--- a/src/app/(storefront)/layout.tsx
+++ b/src/app/(storefront)/layout.tsx
@@ -1,5 +1,6 @@
 import '../globals.css';
 
+import { GoogleAnalytics } from '@next/third-parties/google';
 import { ReactNode } from 'react';
 
 import { Footer } from '@/components/footer';
@@ -27,6 +28,7 @@ export default function RootLayout({ children }: RootLayoutProps) {
         </RegionProvider>
         <Footer />
       </body>
+      <GoogleAnalytics gaId='G-R3FGFLLVRX' />
     </html>
   );
 }
diff --git a/src/components/PillButton.module.css b/src/components/PillButton.module.css
index fffdc24..743db06 100644
--- a/src/components/PillButton.module.css
+++ b/src/components/PillButton.module.css
@@ -1,23 +1,22 @@
 .pillButton {
-    @apply relative bg-white text-black rounded-full px-6 py-2 text-lg font-sans flex items-center justify-center shadow-md transition duration-300 ease-in-out;
-  }
-  
-   .pillButton:not(:hover) .arrow {
-    @apply hidden
-  } 
-  
-  .arrow {
-    @apply ml-2 transform -translate-x-5 opacity-0 transition-transform duration-300 ease-in-out;
-  }
-  
-  .pillButton:hover .arrow {
-    @apply transform duration-300 translate-x-0 opacity-100 transition-transform ease-in-out;
-  }
-  
-  .pillButton:hover {
-    @apply  shadow-lg transform duration-300 transition-transform ease-in-out;
-  }
-  
+  @apply relative bg-white text-black rounded-full px-6 py-2 text-lg font-sans flex items-center justify-center shadow-md transition duration-300 ease-in-out;
+}
+
+.pillButton:not(:hover) .arrow {
+  @apply hidden;
+}
+
+.arrow {
+  @apply ml-2 transform -translate-x-5 opacity-0 transition-transform duration-300 ease-in-out;
+}
+
+.pillButton:hover .arrow {
+  @apply transform duration-300 translate-x-0 opacity-100 transition-transform ease-in-out;
+}
+
+.pillButton:hover {
+  @apply shadow-lg transform duration-300 transition-transform ease-in-out;
+}
 
 /* Button style */
 /* .pillButton {
@@ -36,17 +35,17 @@
     transition: background-color 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
     box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
   } */
-  
-  /* Arrow style */
-  /* .arrow {
+
+/* Arrow style */
+/* .arrow {
     margin-left: 10px;
     transform: translateX(-20px);
     opacity: 0;
     transition: transform 0.3s ease, opacity 0.3s ease;
   } */
-  
-  /* Hover effect */
-  /* .pillButton:hover {
+
+/* Hover effect */
+/* .pillButton:hover {
     background-color: black;
     color: white;
     box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3); 
@@ -56,4 +55,4 @@
     transform: translateX(0);
     opacity: 1;
   }
-   */
\ No newline at end of file
+   */
diff --git a/src/components/category-slider.module.css b/src/components/category-slider.module.css
index d1808ec..cc6b7e1 100644
--- a/src/components/category-slider.module.css
+++ b/src/components/category-slider.module.css
@@ -1,16 +1,16 @@
-  .productImage {
-    width: 100%; /* Set the width of the image */
-    height: auto;
-    aspect-ratio: 1;
-    border-radius: 50%; /* Make the image circular */
-    object-fit: cover; /* Ensure the image covers the container */
-    margin-right: 1.5rem; /* Space between image and product name */
-    display: inline-block;
-    box-shadow: .5rem .5rem 1rem rgba(0,0,0,.1);
-  }
+.productImage {
+  width: 100%; /* Set the width of the image */
+  height: auto;
+  aspect-ratio: 1;
+  border-radius: 50%; /* Make the image circular */
+  object-fit: cover; /* Ensure the image covers the container */
+  margin-right: 1.5rem; /* Space between image and product name */
+  display: inline-block;
+  box-shadow: 0.5rem 0.5rem 1rem rgba(0, 0, 0, 0.1);
+}
 
-  @media screen and (width >= 768px) {
-    .productImage {
-      display: none;
-    }
+@media screen and (width >= 768px) {
+  .productImage {
+    display: none;
   }
+}
diff --git a/src/components/footer.module.css b/src/components/footer.module.css
index 38ba015..faa167d 100644
--- a/src/components/footer.module.css
+++ b/src/components/footer.module.css
@@ -1,22 +1,21 @@
+.grid {
+  display: grid;
+  gap: 2rem /* 32px */;
+  /* grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); */
+  grid-template-columns: repeat(4, 1fr); /* 4 columns */
+
+  padding-top: 3rem /* 48px */;
+  padding-bottom: 3rem /* 48px */;
+  padding-left: 1rem /* 16px */;
+  padding-right: 1rem /* 16px */;
+
+  border-top-width: 2px;
+  border-color: hsl(0, 0%, 0%);
+  background-color: hsl(20, 18%, 97%);
+}
+
+@media (max-width: 768px) {
   .grid {
-    display: grid;
-    gap: 2rem /* 32px */;
-    /* grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); */
-    grid-template-columns: repeat(4, 1fr); /* 4 columns */
-
-    padding-top: 3rem /* 48px */;
-    padding-bottom: 3rem /* 48px */;
-    padding-left: 1rem /* 16px */;
-    padding-right: 1rem /* 16px */;
-
-
-    border-top-width: 2px;
-    border-color: hsl(0, 0%, 0%);
-    background-color: hsl(20, 18%, 97%);
+    grid-template-columns: repeat(2, 1fr); /* Still 4 columns */
   }
-
-  @media (max-width: 768px) {
-    .grid {
-      grid-template-columns: repeat(2, 1fr); /* Still 4 columns */
-    }
-    }
+}
diff --git a/src/components/navbar.module-old.css b/src/components/navbar.module-old.css
index 9a21e2d..97a3ea1 100644
--- a/src/components/navbar.module-old.css
+++ b/src/components/navbar.module-old.css
@@ -1,81 +1,80 @@
 .navbar {
-    position: fixed;
-    top: 1.5em;
-    left: 2em;
-    right: 2em;
-    background-color: white;
-    border-radius: 0px;
-    padding: 1em 2em;
-    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
-    z-index: 1000;
-  }
-  
-  .navbar a {
-    color: black;
-    text-decoration: none;
-    margin: 0 0.5em;
-    font-size: 1em;
-  }
-  
-  .navbar a:hover {
-    color: #555;
-  }
-  
-  .left,
-  .right {
-    display: flex;
-    align-items: center;
-  }
-  
-  .navbar .center a {
-    color: black;
-    text-decoration: none;
-    margin: 0 0;
-    font-size: 1em;
-  }
-  .center .logo {
-    height: 50px; /* Adjust the logo size as needed */
-  }
-  
-  .navbar-center .logo {
-    height: 50px; /* Adjust the logo size as needed */
-  }
-  
-  .fa-search,
-  .fa-user {
-    font-size: 1.2em;
-  }
-  
-  @media screen and (max-width: 768px) {
-    .navbar {
-      top: 1em;
-      left: 1em;
-      right: 1em;
-      flex-direction: column;
-      align-items: flex-start;
-    }
-  
-    .navbar-center {
-      margin: 1em 0;
-      align-self: center;
-    }
-  }
-  
-  .navbar a.active {
-    font-weight: bold;
-    border-bottom: 2px solid black;
-  }
-  
+  position: fixed;
+  top: 1.5em;
+  left: 2em;
+  right: 2em;
+  background-color: white;
+  border-radius: 0px;
+  padding: 1em 2em;
+  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
+  z-index: 1000;
+}
+
+.navbar a {
+  color: black;
+  text-decoration: none;
+  margin: 0 0.5em;
+  font-size: 1em;
+}
+
+.navbar a:hover {
+  color: #555;
+}
+
+.left,
+.right {
+  display: flex;
+  align-items: center;
+}
+
+.navbar .center a {
+  color: black;
+  text-decoration: none;
+  margin: 0 0;
+  font-size: 1em;
+}
+.center .logo {
+  height: 50px; /* Adjust the logo size as needed */
+}
+
+.navbar-center .logo {
+  height: 50px; /* Adjust the logo size as needed */
+}
+
+.fa-search,
+.fa-user {
+  font-size: 1.2em;
+}
+
+@media screen and (max-width: 768px) {
   .navbar {
-    border-radius: 25px; /* Makes the corners more rounded */
+    top: 1em;
+    left: 1em;
+    right: 1em;
+    flex-direction: column;
+    align-items: flex-start;
   }
-  
-  .navbar a {
-    font-size: 1.1em;
+
+  .navbar-center {
+    margin: 1em 0;
+    align-self: center;
   }
-  
-  .fa-search,
-  .fa-user {
-    font-size: 1.4em;
-  }
-  
\ No newline at end of file
+}
+
+.navbar a.active {
+  font-weight: bold;
+  border-bottom: 2px solid black;
+}
+
+.navbar {
+  border-radius: 25px; /* Makes the corners more rounded */
+}
+
+.navbar a {
+  font-size: 1.1em;
+}
+
+.fa-search,
+.fa-user {
+  font-size: 1.4em;
+}
diff --git a/src/components/navbar.module.css b/src/components/navbar.module.css
index c8c4a13..21c1ceb 100644
--- a/src/components/navbar.module.css
+++ b/src/components/navbar.module.css
@@ -1,78 +1,76 @@
 .navBar {
-    @apply transition-all duration-300;
-    display: flex;
-    align-items: center;
-    justify-content: space-between;
-    position: fixed;
-    align-items: stretch;
-    top: 0;
-    left: 0;
-    padding: 2rem;
-    z-index: 1000;
-    background: hsl(0 0% 100% / 1);
-    /* background: hsl(0 0% 100% / .2);
+  @apply transition-all duration-300;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  position: fixed;
+  align-items: stretch;
+  top: 0;
+  left: 0;
+  padding: 2rem;
+  z-index: 1000;
+  background: hsl(0 0% 100% / 1);
+  /* background: hsl(0 0% 100% / .2);
     backdrop-filter: blur(1rem); */
-    font-size: 1.25rem;
-    line-height: 1.75rem;
-  }
+  font-size: 1.25rem;
+  line-height: 1.75rem;
+}
 
+@media screen and (width < 768px) {
+  .navBar {
+    flex-direction: column;
+    right: 30%;
+    bottom: 0;
+    transform: translateX(-100%);
+    transition: transform 350ms ease-out;
+    padding: min(30vh, 16rem) 2em;
+  }
+  .mobileNavToggle {
+    position: absolute;
+    display: block;
+    width: 2rem;
+    top: 2rem;
+    left: 2rem;
+    aspect-ratio: 1;
+    z-index: 9999;
+    background-image: url('/icons/menu.svg');
+    background-repeat: no-repeat;
+    background-size: contain; /* Adjust as needed: cover, 100% 100%, etc. */
+    background-position: center;
+  }
+  .navBar[data-visible='true'] {
+    transform: translateX(0);
+  }
+  .mobileNavToggle[aria-expanded='true'] {
+    background-image: url('/icons/close.svg');
+  }
+}
+@media screen and (width >= 768px) {
+  .navBar {
+    right: 0;
+    flex-direction: row;
+    height: 5rem;
+    border-radius: 0 0 0.5rem 0.5rem;
+  }
+}
+.navBar > div {
+  display: flex;
+  align-items: center;
+  gap: var(--gap, 2rem);
+}
 
-  @media screen and (width < 768px) {
-    .navBar {
-      flex-direction: column;
-      right: 30%;
-      bottom: 0;
-      transform: translateX(-100%);
-      transition: transform 350ms ease-out;
-      padding: min(30vh, 16rem) 2em;
-    }
-    .mobileNavToggle {
-      position: absolute;
-      display: block;
-      width: 2rem;
-      top: 2rem;
-      left: 2rem;
-      aspect-ratio: 1;
-      z-index: 9999;
-      background-image: url('/icons/menu.svg');
-      background-repeat: no-repeat;
-      background-size: contain; /* Adjust as needed: cover, 100% 100%, etc. */
-      background-position: center;
-    }
-    .navBar[data-visible="true"] {
-      transform: translateX(0);
-    }
-    .mobileNavToggle[aria-expanded="true"] {
-      background-image: url('/icons/close.svg');
-    }
-    
-  }
-  @media screen and (width >= 768px) {
-    .navBar {
-      right: 0;
-      flex-direction: row;
-      height: 5rem;
-      border-radius:0 0 0.5rem 0.5rem;
-      }
-  }
-  .navBar > div {
-    display: flex;
-    align-items: center;
-    gap: var(--gap, 2rem);
-  }
-  
-  /* .navBarInitial {
+/* .navBarInitial {
     @apply bg-white/30 text-black rounded-lg shadow-lg absolute;
   }
   
   .navBarScrolledUp {
     @apply bg-gradient-to-b from-black/30 to-black/10 text-white  rounded-lg fixed;
   } */
-  
-  /* Custom style */
-  .navBarScrolledUp {
-    backdrop-filter: blur(10px); /* Adds a blur effect */
-  }
+
+/* Custom style */
+.navBarScrolledUp {
+  backdrop-filter: blur(10px); /* Adds a blur effect */
+}
 
 /* Transparent / almost transparent to white
   .navBarInitial {
@@ -82,4 +80,4 @@
   .navBarScrolledUp {
     @apply bg-white text-black rounded-lg shadow-lg fixed;
   }
-*/
\ No newline at end of file
+*/
diff --git a/src/components/our-collection.module.css b/src/components/our-collection.module.css
index d8a6f09..073d5b7 100644
--- a/src/components/our-collection.module.css
+++ b/src/components/our-collection.module.css
@@ -3,5 +3,4 @@
   transition-property: transform;
   transition-duration: 1400ms;
   transition-timing-function: linear;
-  }
-  
\ No newline at end of file
+}