{"product_id":"purrspin-smart-cat-self-groomer","title":"PurrSpin Smart Cat Self-Groomer","description":"\u003cdiv class=\"ps-desc\"\u003e\n\n  \u003c!-- OPENER --\u003e\n  \u003cdiv class=\"ps-opener\"\u003e\n    \u003cp class=\"ps-lead\"\u003eYour cat already grooms against every corner in the house. This one grooms back.\u003c\/p\u003e\n    \u003cp class=\"ps-sub\"\u003ePurrSpin senses your cat, starts spinning, and does the brushing for them. Wall-mounted or handheld. Soft silicone. No noise. No effort. Just less fur on your sofa.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- HERO --\u003e\n  \u003cdiv class=\"ps-hero\"\u003e\n    \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0961\/5163\/4262\/files\/White_cat_reaching_up_to_rub_against_the_PurrSpin_groomer_mounted_on_furniture.webp?v=1772581713\" alt=\"White cat reaching up to rub against the PurrSpin groomer mounted on furniture\" width=\"680\" height=\"680\" fetchpriority=\"high\" decoding=\"async\"\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- NUMBERED FLOW: HOW IT WORKS --\u003e\n  \u003cdiv class=\"ps-flow\"\u003e\n    \u003ch2 class=\"ps-section-title\"\u003eHow It Works\u003c\/h2\u003e\n    \u003cdiv class=\"ps-steps\"\u003e\n      \u003cdiv class=\"ps-step\"\u003e\n        \u003cspan class=\"ps-step-num\"\u003e1\u003c\/span\u003e\n        \u003cdiv class=\"ps-step-body\"\u003e\n          \u003ch3\u003eMount it. Turn it on.\u003c\/h3\u003e\n          \u003cp\u003eStick it on a wall, furniture leg, or cabinet side with the included adhesive pad — or screw it in permanently. Long-press the button for three seconds. Done.\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"ps-step\"\u003e\n        \u003cspan class=\"ps-step-num\"\u003e2\u003c\/span\u003e\n        \u003cdiv class=\"ps-step-body\"\u003e\n          \u003ch3\u003eCat walks by. Brush starts.\u003c\/h3\u003e\n          \u003cp\u003eA motion sensor picks up your cat from half a metre away. The silicone roller begins spinning. When they leave, it stops after ten seconds. Completely automatic.\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"ps-step\"\u003e\n        \u003cspan class=\"ps-step-num\"\u003e3\u003c\/span\u003e\n        \u003cdiv class=\"ps-step-body\"\u003e\n          \u003ch3\u003eFur out. Cat happy. You did nothing.\u003c\/h3\u003e\n          \u003cp\u003eLoose hair sticks to the bristles. Your cat gets a massage. Pop the roller off, rinse it, click it back. That's all the maintenance there is.\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- FEATURE: AUTO SENSING --\u003e\n  \u003cdiv class=\"ps-block\"\u003e\n    \u003cdiv class=\"ps-block-img\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0961\/5163\/4262\/files\/Cat_approaching_the_wall-mounted_PurrSpin_groomer.webp?v=1772583583\" alt=\"Cat approaching the wall-mounted PurrSpin groomer\" width=\"680\" height=\"680\" loading=\"lazy\" decoding=\"async\"\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ps-block-text\"\u003e\n      \u003cspan class=\"ps-pill\"\u003eSmart Sensor\u003c\/span\u003e\n      \u003ch3\u003eIt knows when your cat is there\u003c\/h3\u003e\n      \u003cp\u003eThe built-in motion sensor detects movement within 0.5 metres. The roller spins clockwise on approach. If it hits resistance — a paw pressing in, a chin pushing hard — it reverses direction for three seconds, then resumes. No jamming, no startled cats.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- FEATURE: SILICONE BRISTLES --\u003e\n  \u003cdiv class=\"ps-block ps-block--text-only\"\u003e\n    \u003cdiv class=\"ps-block-text\"\u003e\n      \u003cspan class=\"ps-pill\"\u003eGentle Touch\u003c\/span\u003e\n      \u003ch3\u003eSilicone that massages, not scratches\u003c\/h3\u003e\n      \u003cp\u003eThe roller is covered in soft, food-grade silicone nubs — flexible enough to bend around your cat's face and body without pulling hair or irritating skin. No wire bristles, no hard plastic. Just a gentle rub that captures loose fur as it goes.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- FEATURE: DUAL USE --\u003e\n  \u003cdiv class=\"ps-block ps-block--reverse\"\u003e\n    \u003cdiv class=\"ps-block-img\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0961\/5163\/4262\/files\/Person_holding_the_PurrSpin_and_brushing_a_white_Ragdoll_cat.jpg?v=1772583733\" alt=\"Person holding the PurrSpin and brushing a white Ragdoll cat\" width=\"680\" height=\"680\" loading=\"lazy\" decoding=\"async\"\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ps-block-text\"\u003e\n      \u003cspan class=\"ps-pill\"\u003eTwo Modes\u003c\/span\u003e\n      \u003ch3\u003eWall-mounted. Or handheld. You get both.\u003c\/h3\u003e\n      \u003cp\u003eMount it and let your cat self-groom on their own schedule. But if they're slow to warm up to the wall mount, pull it off and use it as a handheld grooming brush instead — same roller, same rotation, and now you control the angle. Either way, the fur comes out.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- FEATURE: CATNIP --\u003e\n  \u003cdiv class=\"ps-block\"\u003e\n    \u003cdiv class=\"ps-block-img\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0961\/5163\/4262\/files\/Bottom_compartment_of_the_PurrSpin_open_revealing_a_catnip_sachet_inside.webp?v=1772584077\" alt=\"Bottom compartment of the PurrSpin open, revealing a catnip sachet inside\" width=\"680\" height=\"680\" loading=\"lazy\" decoding=\"async\"\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ps-block-text\"\u003e\n      \u003cspan class=\"ps-pill\"\u003eCatnip Inside\u003c\/span\u003e\n      \u003ch3\u003eBait they can't resist\u003c\/h3\u003e\n      \u003cp\u003eFlip open the hidden compartment at the bottom. Slide in the included catnip pouch. Close it. The scent does the work — your cat will seek it out, rub against it, and get groomed in the process. Refillable with any loose catnip or sachet.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- OBJECTION HANDLER --\u003e\n  \u003cdiv class=\"ps-objection\"\u003e\n    \u003ch3\u003e\"What if my cat ignores it?\"\u003c\/h3\u003e\n    \u003cp\u003eMost cats investigate within the first day. The catnip compartment gets their attention. The wall mount does the rest — cats instinctively rub against raised objects to scent-mark. That's not trained behaviour, it's hardwired. Mount it at shoulder height where your cat already likes to rub and they'll use it because that's what cats do. And if they take their time? Use it handheld until they come around.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- DIVIDER IMAGE --\u003e\n  \u003cdiv class=\"ps-hero\"\u003e\n    \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0961\/5163\/4262\/files\/Content_white_cat_sitting_peacefully_beside_the_PurrSpin_groomer.webp?v=1772584251\" alt=\"Content white cat sitting peacefully beside the PurrSpin groomer\" width=\"680\" height=\"680\" loading=\"lazy\" decoding=\"async\"\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- FEATURE: EASY CLEAN --\u003e\n  \u003cdiv class=\"ps-block ps-block--text-only\"\u003e\n    \u003cdiv class=\"ps-block-text\"\u003e\n      \u003cspan class=\"ps-pill\"\u003eEasy Clean\u003c\/span\u003e\n      \u003ch3\u003eTwist off. Rinse. Done.\u003c\/h3\u003e\n      \u003cp\u003eThe silicone roller detaches with a quick twist. Run it under the tap, use the included mini rake to clear any stubborn fur from between the nubs, shake it dry, and snap it back in. Ten seconds, tops.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- FEATURE: BATTERY --\u003e\n  \u003cdiv class=\"ps-block ps-block--text-only\"\u003e\n    \u003cdiv class=\"ps-block-text\"\u003e\n      \u003cspan class=\"ps-pill\"\u003eRechargeable\u003c\/span\u003e\n      \u003ch3\u003eOne charge. Weeks of grooming.\u003c\/h3\u003e\n      \u003cp\u003eThe 1800mAh lithium battery charges fully in under two hours via USB. Each charge gives 5-6 hours of active spinning — and since the sensor only triggers when your cat is actually there, that translates to weeks of real-world use between charges.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- MOUNTING INFO CARD --\u003e\n  \u003cdiv class=\"ps-info-card\"\u003e\n    \u003ch3\u003eFits anywhere your cat already rubs\u003c\/h3\u003e\n    \u003cdiv class=\"ps-info-row\"\u003e\n      \u003cdiv class=\"ps-info-item\"\u003e\n        \u003cspan class=\"ps-info-val\"\u003e13.4 × 16.2 cm\u003c\/span\u003e\n        \u003cspan class=\"ps-info-key\"\u003eFootprint\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"ps-info-item\"\u003e\n        \u003cspan class=\"ps-info-val\"\u003e572 g\u003c\/span\u003e\n        \u003cspan class=\"ps-info-key\"\u003eWeight\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"ps-info-item\"\u003e\n        \u003cspan class=\"ps-info-val\"\u003eScrews or tape\u003c\/span\u003e\n        \u003cspan class=\"ps-info-key\"\u003eMounting\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cp class=\"ps-info-note\"\u003e\u003cstrong\u003eWhere to mount:\u003c\/strong\u003e Walls, furniture corners, cabinet sides, door frames — anywhere flat at your cat's shoulder height. Adhesive tape is included for renters. Two screws are included for permanent fixing.\u003c\/p\u003e\n    \u003cp class=\"ps-info-tip\"\u003ePro move: put it where your cat already head-bunts. They'll adopt it in hours, not days.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- EXPANDABLE DETAILS --\u003e\n  \u003cdiv class=\"ps-details\"\u003e\n\n    \u003cdiv class=\"ps-detail-group\"\u003e\n      \u003cbutton class=\"ps-detail-toggle\" aria-expanded=\"false\"\u003e\n        \u003cspan\u003e🧵 Specs \u0026amp; Materials\u003c\/span\u003e\n        \u003cspan class=\"ps-toggle-icon\"\u003e+\u003c\/span\u003e\n      \u003c\/button\u003e\n      \u003cdiv class=\"ps-detail-content\" hidden\u003e\n        \u003ctable class=\"ps-spec-table\"\u003e\n          \u003ctr\u003e\n\u003ctd\u003eBody\u003c\/td\u003e\n\u003ctd\u003eABS plastic, white\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eRoller\u003c\/td\u003e\n\u003ctd\u003eFood-grade soft silicone, detachable\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eSensor\u003c\/td\u003e\n\u003ctd\u003eMotion-activated, 0.5 m range\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eBattery\u003c\/td\u003e\n\u003ctd\u003e1800 mAh lithium, 3.7 V\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eCharging\u003c\/td\u003e\n\u003ctd\u003eUSB, 1.5–2 hours to full\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eRun time\u003c\/td\u003e\n\u003ctd\u003e5–6 hours active use\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eNote\u003c\/td\u003e\n\u003ctd\u003eDoes not operate while charging\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eDimensions\u003c\/td\u003e\n\u003ctd\u003e13.4 × 9.5 × 16.2 cm\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eWeight\u003c\/td\u003e\n\u003ctd\u003e572 g\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eMounting\u003c\/td\u003e\n\u003ctd\u003eAdhesive pad or screws (both included)\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eSuitable for\u003c\/td\u003e\n\u003ctd\u003eCats and small dogs\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003c\/table\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"ps-detail-group\"\u003e\n      \u003cbutton class=\"ps-detail-toggle\" aria-expanded=\"false\"\u003e\n        \u003cspan\u003e📦 What's in the Box\u003c\/span\u003e\n        \u003cspan class=\"ps-toggle-icon\"\u003e+\u003c\/span\u003e\n      \u003c\/button\u003e\n      \u003cdiv class=\"ps-detail-content\" hidden\u003e\n        \u003ctable class=\"ps-spec-table\"\u003e\n          \u003ctr\u003e\n\u003ctd\u003e1 ×\u003c\/td\u003e\n\u003ctd\u003ePurrSpin Smart Cat Self-Groomer\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003e1 ×\u003c\/td\u003e\n\u003ctd\u003eUSB charging cable\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003e1 ×\u003c\/td\u003e\n\u003ctd\u003eCatnip sachet\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003e1 ×\u003c\/td\u003e\n\u003ctd\u003eMini cleaning rake\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003e2 ×\u003c\/td\u003e\n\u003ctd\u003eWall screws\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003e1 ×\u003c\/td\u003e\n\u003ctd\u003eDouble-sided adhesive pad\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003e1 ×\u003c\/td\u003e\n\u003ctd\u003eUser manual\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003c\/table\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\u003c\/div\u003e\n\n\u003c!-- ====== STYLES ====== --\u003e\n\u003cstyle\u003e\n.ps-desc {\n  font-family: inherit;\n  color: #1c1c1c;\n  max-width: 680px;\n  margin: 0 auto;\n  line-height: 1.7;\n}\n\n.ps-opener {\n  margin-bottom: 28px;\n  padding-bottom: 20px;\n  border-bottom: 2px solid #e8e5e0;\n}\n.ps-lead {\n  font-size: 18px;\n  font-weight: 800;\n  margin: 0 0 10px;\n  letter-spacing: -0.2px;\n  color: #111;\n}\n.ps-sub {\n  font-size: 14.5px;\n  color: #555;\n  margin: 0;\n}\n\n.ps-hero {\n  margin: 24px 0;\n}\n.ps-hero img {\n  width: 100%;\n  height: auto;\n  aspect-ratio: 1 \/ 1;\n  object-fit: cover;\n  border-radius: 12px;\n  display: block;\n}\n\n.ps-flow {\n  margin: 36px 0;\n  padding: 28px 24px;\n  background: #f5f3ef;\n  border-radius: 14px;\n}\n.ps-section-title {\n  font-size: 15px;\n  font-weight: 700;\n  text-transform: uppercase;\n  letter-spacing: 1.2px;\n  color: #999;\n  margin: 0 0 22px;\n}\n.ps-steps {\n  display: flex;\n  flex-direction: column;\n  gap: 20px;\n}\n.ps-step {\n  display: flex;\n  gap: 16px;\n  align-items: flex-start;\n}\n.ps-step-num {\n  flex-shrink: 0;\n  width: 36px;\n  height: 36px;\n  border-radius: 50%;\n  background: #1c1c1c;\n  color: #fff;\n  font-size: 15px;\n  font-weight: 700;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  margin-top: 2px;\n}\n.ps-step-body h3 {\n  font-size: 15px;\n  font-weight: 700;\n  margin: 0 0 4px;\n  color: #1c1c1c;\n}\n.ps-step-body p {\n  font-size: 13.5px;\n  color: #555;\n  margin: 0;\n  line-height: 1.6;\n}\n\n.ps-block {\n  margin: 32px 0;\n}\n.ps-block-img {\n  margin-bottom: 14px;\n}\n.ps-block-img img {\n  width: 100%;\n  height: auto;\n  aspect-ratio: 1 \/ 1;\n  object-fit: cover;\n  border-radius: 12px;\n  display: block;\n}\n.ps-pill {\n  display: inline-block;\n  font-size: 11px;\n  font-weight: 700;\n  text-transform: uppercase;\n  letter-spacing: 0.8px;\n  color: #7a6e5d;\n  background: #f0ece6;\n  padding: 4px 10px;\n  border-radius: 20px;\n  margin-bottom: 8px;\n}\n.ps-block-text h3 {\n  font-size: 17px;\n  font-weight: 700;\n  margin: 0 0 6px;\n  color: #1c1c1c;\n}\n.ps-block-text p {\n  font-size: 14px;\n  color: #555;\n  margin: 0;\n  line-height: 1.65;\n}\n.ps-block--text-only {\n  padding: 20px 0;\n  border-top: 1px solid #eee;\n}\n\n.ps-objection {\n  margin: 32px 0;\n  padding: 22px 24px;\n  background: #fff;\n  border: 1px solid #e0ddd7;\n  border-left: 4px solid #c4b99a;\n  border-radius: 0 12px 12px 0;\n}\n.ps-objection h3 {\n  font-size: 15px;\n  font-weight: 700;\n  font-style: italic;\n  margin: 0 0 8px;\n  color: #1c1c1c;\n}\n.ps-objection p {\n  font-size: 13.5px;\n  color: #555;\n  margin: 0;\n  line-height: 1.65;\n}\n\n.ps-info-card {\n  background: #faf8f5;\n  border: 1px solid #e8e5e0;\n  border-radius: 14px;\n  padding: 24px;\n  margin: 36px 0;\n}\n.ps-info-card h3 {\n  font-size: 16px;\n  font-weight: 700;\n  margin: 0 0 16px;\n  color: #1c1c1c;\n}\n.ps-info-row {\n  display: grid;\n  grid-template-columns: repeat(3, 1fr);\n  gap: 10px;\n  margin-bottom: 16px;\n}\n.ps-info-item {\n  text-align: center;\n  background: #fff;\n  border-radius: 10px;\n  padding: 14px 8px;\n  border: 1px solid #eee;\n}\n.ps-info-val {\n  display: block;\n  font-size: 14px;\n  font-weight: 700;\n  color: #1c1c1c;\n  margin-bottom: 3px;\n}\n.ps-info-key {\n  display: block;\n  font-size: 11px;\n  color: #999;\n  text-transform: uppercase;\n  letter-spacing: 0.4px;\n}\n.ps-info-note {\n  font-size: 13.5px;\n  color: #555;\n  margin: 0 0 8px;\n  line-height: 1.55;\n}\n.ps-info-tip {\n  font-size: 13px;\n  color: #8a7e6e;\n  margin: 0;\n  font-style: italic;\n}\n\n.ps-details {\n  margin-top: 28px;\n}\n.ps-detail-group {\n  border-bottom: 1px solid #e8e5e0;\n}\n.ps-detail-toggle {\n  width: 100%;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  padding: 16px 0;\n  background: none;\n  border: none;\n  cursor: pointer;\n  font-size: 15px;\n  font-weight: 600;\n  color: #1c1c1c;\n  font-family: inherit;\n  text-align: left;\n}\n.ps-detail-toggle:hover {\n  opacity: 0.8;\n}\n.ps-toggle-icon {\n  font-size: 20px;\n  font-weight: 300;\n  color: #aaa;\n  transition: transform 0.25s ease;\n}\n.ps-detail-toggle[aria-expanded=\"true\"] .ps-toggle-icon {\n  transform: rotate(45deg);\n}\n.ps-detail-content {\n  padding-bottom: 18px;\n}\n.ps-spec-table {\n  width: 100%;\n  border-collapse: collapse;\n}\n.ps-spec-table td {\n  font-size: 13.5px;\n  padding: 7px 0;\n  color: #555;\n  vertical-align: top;\n  line-height: 1.5;\n}\n.ps-spec-table td:first-child {\n  font-weight: 600;\n  color: #333;\n  width: 130px;\n  padding-right: 14px;\n}\n.ps-spec-table tr + tr td {\n  border-top: 1px solid #f2f0ec;\n}\n\n@media (max-width: 480px) {\n  .ps-lead { font-size: 16px; }\n  .ps-sub { font-size: 13.5px; }\n  .ps-flow { padding: 22px 18px; }\n  .ps-step-num { width: 30px; height: 30px; font-size: 13px; }\n  .ps-step-body h3 { font-size: 14px; }\n  .ps-block-text h3 { font-size: 15px; }\n  .ps-block-text p { font-size: 13.5px; }\n  .ps-info-row { gap: 6px; }\n  .ps-info-val { font-size: 12.5px; }\n  .ps-info-card { padding: 18px; }\n  .ps-objection { padding: 18px 16px; }\n  .ps-hero img, .ps-block-img img { border-radius: 8px; }\n  .ps-spec-table td:first-child { width: 100px; }\n}\n\n@media (max-width: 360px) {\n  .ps-info-row {\n    grid-template-columns: 1fr 1fr;\n    gap: 8px;\n  }\n  .ps-info-item:last-child {\n    grid-column: 1 \/ -1;\n  }\n  .ps-info-val { font-size: 12px; }\n  .ps-info-key { font-size: 10px; }\n  .ps-spec-table td:first-child { width: 85px; font-size: 12.5px; }\n  .ps-spec-table td { font-size: 12.5px; }\n}\n\u003c\/style\u003e\n\n\u003cscript\u003e\n\/* Accordion toggles *\/\ndocument.querySelectorAll('.ps-detail-toggle').forEach(function(btn) {\n  btn.addEventListener('click', function() {\n    var content = this.nextElementSibling;\n    var expanded = this.getAttribute('aria-expanded') === 'true';\n    this.setAttribute('aria-expanded', !expanded);\n    content.hidden = expanded;\n  });\n});\n\n\/* Auto-optimize Shopify CDN images: appends width + webp params *\/\n(function() {\n  var imgs = document.querySelectorAll('.ps-desc img');\n  var w = window.innerWidth \u003c= 480 ? 400 : 680;\n  imgs.forEach(function(img) {\n    var src = img.getAttribute('src');\n    if (src \u0026\u0026 src.indexOf('cdn.shopify.com') !== -1 \u0026\u0026 src.indexOf('width=') === -1) {\n      var sep = src.indexOf('?') !== -1 ? '\u0026' : '?';\n      img.setAttribute('src', src + sep + 'width=' + w + '\u0026format=webp');\n    }\n  });\n})();\n\u003c\/script\u003e","brand":"Lifypet","offers":[{"title":"Default Title","offer_id":52736425623894,"sku":"G202409934105-0","price":59.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0961\/5163\/4262\/files\/cat_sitting_peacefully_beside_the_PurrSpin_groomer.webp?v=1772585830","url":"https:\/\/lifypet.com\/products\/purrspin-smart-cat-self-groomer","provider":"Lifypet","version":"1.0","type":"link"}