{"title":"Pet Security","description":null,"products":[{"product_id":"sayby-s-gift-cards","title":"Sayby’s Gift Cards","description":"\u003cp dir=\"auto\" class=\"PDq2pG_selectionAnchorContainer\"\u003e\u003cstrong\u003eDescription:\u003c\/strong\u003e\u003cbr\u003eGive someone the freedom to choose their favourite products with a convenient gift card. Perfect for birthdays, celebrations, or special occasions, this gift card allows recipients to select something they truly love.\u003cspan class=\"PDq2pG_selectionAnchor\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSpecifications:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigital gift card for online purchases\u003c\/li\u003e\n\u003cli\u003eIdeal for gifting on special occasions\u003c\/li\u003e\n\u003cli\u003eAllows recipients to choose their preferred products\u003c\/li\u003e\n\u003cli\u003eConvenient and easy to use\u003c\/li\u003e\n\u003cli\u003eNo physical delivery required\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Sayby’s Sanctuary ","offers":[{"title":"£15.00","offer_id":48962487943433,"sku":null,"price":15.0,"currency_code":"GBP","in_stock":true},{"title":"£25.00","offer_id":48962487976201,"sku":null,"price":25.0,"currency_code":"GBP","in_stock":true},{"title":"£50.00","offer_id":48962488008969,"sku":null,"price":50.0,"currency_code":"GBP","in_stock":true},{"title":"£75.00","offer_id":48962488041737,"sku":null,"price":75.0,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0859\/0508\/0585\/files\/C2C7BC4F-5783-42D9-B8A9-3FD0FDED57DE_6346dcab-9177-4f12-9af0-a8a1496d0ed2.png?v=1789479222"},{"product_id":"blurams-pet-camera-2k-indoor-camera-dog-camera-360-home-security-camera-night-vision-motion-tracking-2-way-talk-cloud-sd-app-control-works-with-alexa","title":"2K Pet Camera","description":"\u003cp dir=\"auto\" class=\"PDq2pG_selectionAnchorContainer\"\u003e\u003cstrong\u003eDescription:\u003c\/strong\u003e\u003cbr\u003eA smart pet camera designed to help you monitor your pets from anywhere. With high-resolution video quality, it allows you to keep an eye on your pets while you are away, helping provide reassurance and better pet care.\u003cspan class=\"PDq2pG_selectionAnchor\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSpecifications:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e2K high-resolution video monitoring\u003c\/li\u003e\n\u003cli\u003eDesigned for pet monitoring\u003c\/li\u003e\n\u003cli\u003eHelps keep track of pets remotely\u003c\/li\u003e\n\u003cli\u003eProvides clear video quality\u003c\/li\u003e\n\u003cli\u003eSuitable for home use\u003c\/li\u003e\n\u003cli\u003eHelps monitor pet activity and behaviour\u003c\/li\u003e\n\u003cli\u003eEasy setup and convenient operation\u003c\/li\u003e\n\u003cli\u003eIdeal for cats, dogs, and other pets\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Sayby’s Ltd","offers":[{"title":"1PC-White (Colour Night Vision)","offer_id":55481251037449,"sku":"B07YB8HZ8T","price":16.29,"currency_code":"GBP","in_stock":true},{"title":"1PC-Black","offer_id":55481251004681,"sku":"B0C8MQMSYK","price":18.33,"currency_code":"GBP","in_stock":true},{"title":"2PC-White","offer_id":55481251070217,"sku":"B0BNHM8NNJ","price":32.87,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0859\/0508\/0585\/files\/71alUymUlvL.jpg?v=1747315649"},{"product_id":"tapo-tc40-pan-tilt-smart-security-outdoor-camera-full-hd-360-smart-person-detection-motion-tracking-color-night-vision-wifi-camera-no-monthly-fee-two-way-talk-ip65-works-with-alexa-google","title":"Pan\/Tilt Smart Outdoor Security Camera","description":"\u003cp dir=\"auto\" class=\"PDq2pG_selectionAnchorContainer\"\u003e\u003cstrong\u003eDescription:\u003c\/strong\u003e\u003cbr\u003eA smart outdoor security camera designed to provide reliable monitoring and protection around your home or property. Featuring pan and tilt functionality, it allows flexible viewing angles while helping you keep an eye on outdoor areas with clear video monitoring and smart security features.\u003cspan class=\"PDq2pG_selectionAnchor\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSpecifications:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eDesigned for outdoor security monitoring\u003c\/li\u003e\n\u003cli\u003ePan and tilt functionality for wider viewing coverage\u003c\/li\u003e\n\u003cli\u003eProvides clear video surveillance\u003c\/li\u003e\n\u003cli\u003eSuitable for home and property security\u003c\/li\u003e\n\u003cli\u003eHelps monitor outdoor areas remotely\u003c\/li\u003e\n\u003cli\u003eSmart security features for added protection\u003c\/li\u003e\n\u003cli\u003eDurable design for outdoor use\u003c\/li\u003e\n\u003cli\u003eEasy installation and setup\u003c\/li\u003e\n\u003cli\u003eSuitable for everyday security monitoring\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Sayby’s Sanctuary ","offers":[{"title":"2K 3MP","offer_id":55801070059785,"sku":"B0DQ5NTHB8","price":0.0,"currency_code":"GBP","in_stock":false},{"title":"2MP 360°","offer_id":55801070158089,"sku":"B0CJML18KP","price":47.73,"currency_code":"GBP","in_stock":true},{"title":"Old Version","offer_id":55801070092553,"sku":"B0BQJVKVQR","price":54.55,"currency_code":"GBP","in_stock":true},{"title":"3K 5MP 360°","offer_id":55801070125321,"sku":"B0DRW85XNL","price":63.23,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0859\/0508\/0585\/files\/51m-4Z_arXL.jpg?v=1751097787"},{"product_id":"tapo-c211-2k-3mp-pan-tilt-indoor-camera-house-security-camera-wifi-camera-no-monthly-fee-ai-detection-dog-camera-baby-camera-monitor-cctv-360-view-night-vision-works-with-alexa-google","title":"Tapo C211 2K 3MP Pan\/Tilt Indoor Security Camera Pet Camera CCTV Camera","description":"\u003cdiv\u003e\n\u003cdiv id=\"feature-bullets\" class=\"a-section a-spacing-medium a-spacing-top-small\"\u003e\n\u003cul class=\"a-unordered-list a-vertical a-spacing-mini\"\u003e\n\u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e 【2K 3MP High Resolution \u0026amp; Crystal Night Vision】Tapo indoor camera is equipped with 4mm 3 Megapixel camera lens, which provides 2K ultra high definition resolution. The WiFi Camera is equipped with 850nm infrared light LED that can guarantee 30feet\/10m clear video \u0026amp; images at night, without IR light pollution. Wireless camera no hub required-works with any Wi-Fi router without the need for a separate hub system. \u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e 【360° Pan\/Tilt\/Zoom Smart Pet Camera \u0026amp; Baby Camera】Wide-angle enhanced lens combined with 360° horizontal \u0026amp; 114° vertical coverage range. It is perfect for baby and pet monitor (dog, cat, bird monitor, and etc) with this complete up, down, all around security coverage. \u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e 【Person Detection \u0026amp; Motion Detection \u0026amp; Motion Tracking \u0026amp; Baby Cry Detection】Receive instant notifications when a person or motion is detected. And motion tracking can let cam follow the moving object, record alert video and send notification to the phone. You can also set up customizable motion detection areas to only let what matters alert you. Baby crying detection reinforces your baby care around the clock. \u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e 【Versatile Micro SD card \u0026amp; Cloud Storage for Flexible Choose】The indoor camera supports two storage method that you can choose, with financial encryption technology and the highest protection of data to ensure the security of your privacy. (1) Choice 1: 24\/7 continuous recording or motion videos for free if you insert a Micro SD card (up to 512GB, not included). (2) Choice 2: You can also choose a non mandatory 24\/7 cloud storage plan \u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e 【Alexa\/Google Home Compatible】The smart IP camera works with Amazon Alexa and Google Assistant to free up your hands and supports display the live through Echo Show or Fire TV with the help of a voice assistant. It is also compatible with the RTSP protocol and supports fixed IP address that can be added to other storage systems. \u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cdiv id=\"product-details-jumplink\" class=\"a-section\"\u003e\n\u003cspan class=\"caretnext\"\u003e›\u003c\/span\u003e \u003ca id=\"seeMoreDetailsLink\" class=\"a-link-normal\" href=\"#productDetails\"\u003e See more product details \u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"a-section a-spacing-small a-spacing-top-small\"\u003e\n\u003ctable class=\"a-normal a-spacing-micro\" role=\"list\"\u003e\n\u003ctbody\u003e\n\u003ctr class=\"a-spacing-small po-recommended_uses_for_product\" role=\"listitem\"\u003e\n\u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eRecommended uses for product\u003c\/span\u003e\u003c\/td\u003e\n\u003ctd class=\"a-span9\" role=\"presentation\"\u003e\n\u003cscript type=\"text\/javascript\"\u003e(function(f) {var _np=(window.P._namespace(\"DetailPageProductOverviewTemplatesJava\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\n    P.when('A').execute(function(A){\n    A.on('a:truncate:po-attribute-truncate-0:updated', function(data) {\n    var isTruncated = !data.truncateInstance.getIfTextFits();\n    var seeMoreElement = document.getElementById('po-attribute-see-more-id-0');\n    if(seeMoreElement) {\n    seeMoreElement.style.display = isTruncated ?  ''  :  'none';\n    }\n    })\n    });\n}));\u003c\/script\u003e \u003cspan class=\"a-size-base\"\u003e \u003cspan class=\"a-truncate po-truncate-attribute\" data-a-word-break=\"normal\" data-a-truncate-name=\"po-attribute-truncate-0\" data-a-max-rows=\"3\" data-a-overflow-marker=\"\u0026amp;hellip;\" style=\"line-height: 1.3em !important; max-height: 3.9em;\"\u003e\u003cspan class=\"a-truncate-full\"\u003eIndoor camera, pet camera, dog camera, baby monitor, security camera, wifi camera, CCTV, puppy camera, home camera, cat camera, garden camera\u003c\/span\u003e\u003cspan class=\"a-truncate-cut a-hidden\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e \u003c\/span\u003e \u003cspan class=\"a-declarative\" data-action=\"a-modal\" data-a-modal='{\"width\":\"800\",\"max-height\":\"400\",\"header\":\"Recommended uses for product\",\"inlineContent\":\"Indoor camera, pet camera, dog camera, baby monitor, security camera, wifi camera, CCTV, puppy camera, home camera, cat camera, garden camera\"}' id=\"po-attribute-see-more-id-0\"\u003e \u003ca role=\"button\" class=\"a-popover-trigger a-declarative\"\u003eSee more\u003ci class=\"a-icon a-icon-popover\"\u003e\u003c\/i\u003e\u003c\/a\u003e \u003c\/span\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"a-spacing-small po-brand\" role=\"listitem\"\u003e\n\u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eBrand\u003c\/span\u003e\u003c\/td\u003e\n\u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eTapo\u003c\/span\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"a-spacing-small po-model_name\" role=\"listitem\"\u003e\n\u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eModel name\u003c\/span\u003e\u003c\/td\u003e\n\u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eTapo C211\u003c\/span\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"a-spacing-small po-connectivity_technology\" role=\"listitem\"\u003e\n\u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eConnectivity technology\u003c\/span\u003e\u003c\/td\u003e\n\u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eWireless\u003c\/span\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"a-spacing-small po-special_feature\" role=\"listitem\"\u003e\n\u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eSpecial feature\u003c\/span\u003e\u003c\/td\u003e\n\u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003e2 Way Audio, Cry Detection, Local Recording, Motion Sensor, Night Vision\u003c\/span\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"Sayby’s Ltd","offers":[{"title":"2K 3MP","offer_id":56070906249481,"sku":"B0CQHY41NY","price":40.79,"currency_code":"GBP","in_stock":true},{"title":"2MP Black","offer_id":57460443742473,"sku":"B0DK5XMTPF","price":21.41,"currency_code":"GBP","in_stock":true},{"title":"2K 4MP, Newest Gen","offer_id":57460443775241,"sku":"B0HFNV4NTY","price":32.62,"currency_code":"GBP","in_stock":true},{"title":"EU Set","offer_id":57460443808009,"sku":"B07XLML2YS","price":31.76,"currency_code":"GBP","in_stock":true},{"title":"2MP White","offer_id":57460443840777,"sku":"B07XR2NWZC","price":21.41,"currency_code":"GBP","in_stock":true},{"title":"4K 8MP","offer_id":57460443873545,"sku":"B0GP21ZGVJ","price":37.73,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0859\/0508\/0585\/files\/71SdDnZG9XL._AC_SL1500.jpg?v=1792484451"},{"product_id":"tapo-c210-2k-3mp-pan-tilt-indoor-camera-house-security-camera-wifi-camera-no-monthly-fee-ai-detection-dog-puppy-camera-baby-camera-monitor-360-view-night-vision-works-with-alexa-google","title":"Tapo TP-Link 2K Pan Tilt Security Camera for Baby Monitor, Dog Camera w\/Motion Detection, 2-Way Audio Siren, Night Vision, Cloud \u0026SD Card Storage (Up to 256 GB), Works with Alexa \u0026 Google Home (C210)","description":"\u003cdiv\u003e\u003cdiv id=\"productDescription\" class=\"a-section a-spacing-small\"\u003e\n \u003cp\u003e\u003cspan\u003eWith crystal clear 2K HD video, the Tapo C210 Home Security Wi-Fi gives you the ability to always keep an eye on your family, pets, and protect your home. With person and motion detection, get instant notifications that matter when there is activity going on. Also used as a baby camera monitor, Tapo C210 provides free baby crying detection. Check what's inside your home, even at night with night vision thanks to the integrated IR sensor. With device sharing, you and a family member can both monitor the feed making keeping an eye on the little ones just a little bit easier. Save footage continuously onto a 512 GB micro-SD card (not included) or subscribe to Tapo Care for 30-day video history and many other benefits. [Before purchasing a microSD card, please check the TP-Link website FAQ to ensure compatibility with your device.] With crisp 2-way audio, you'll never truly be away again with the ability to hold clear conversations with who's there. Additionally, keep your family safe from unwanted intruders by playing the built-in siren and light alarm. Compatible with RTSP\/ONVIF for integration with your NVR system.\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/div\u003e\u003cdiv\u003e\u003cdiv id=\"feature-bullets\" class=\"a-section a-spacing-medium a-spacing-top-small\"\u003e\n \u003cul class=\"a-unordered-list a-vertical a-spacing-mini\"\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e 【Ultra High Definition Video】The Tapo C210 captures every detail with high definition (3MP\/2K). Keep your home safe and secure. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e 【Night Vision】Know what happens when it is dark, using our advanced infrared system control a range of up to 9 meters. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e 【Motion Detection \u0026amp; Notifications】Keep your family protected by placing equipment near your entrance door, balcony or hallway. Receive notifications on your smartphone when the camera detects movement. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e 【Local Storage】Save videos and pictures easily to Micro SD card (not included). The computer supports cards up to 128 GB, this will allow you to record up to 384 continuous hours. \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e 【Cloud Video Recording】Support cloud video recording and more advanced functions \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Ultra High Definition Video The Tapo C210 captures every detail in high definition (3MP\/2K); keep your home safe and secure \u003c\/span\u003e\u003c\/li\u003e\n  \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e Vision Night Know what happens when it's dark, using our advanced infrared system control a range of up to 9 meters \u003c\/span\u003e\u003c\/li\u003e\n \u003c\/ul\u003e\n \u003cdiv class=\"a-row a-expander-container a-expander-inline-container\"\u003e\n  \u003cdiv data-expanded=\"false\" class=\"a-expander-content a-expander-extend-content\"\u003e\n   \u003cul class=\"a-unordered-list a-vertical a-spacing-none\"\u003e\n    \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003eMotion Detection and Notifications Keep your family safe by placing equipment near your entrance door, balcony or hallway; receive notifications on your smartphone when the camera detects motion\u003c\/span\u003e\u003c\/li\u003e\n    \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003eLocal Storage Save videos and images easily on the Micro SD card (not included); the computer supports cards up to 128 GB, allowing you to record up to 384 hours continuous\u003c\/span\u003e\u003c\/li\u003e\n    \u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003eCloud Video Recording Support for cloud video recording and more advanced features\u003c\/span\u003e\u003c\/li\u003e\n   \u003c\/ul\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv data-csa-c-content-id=\"voyager-product-details-jumplink\" data-csa-c-slot-id=\"voyager-product-details-jumplink\" data-csa-c-type=\"link\" class=\"a-section aok-hidden\"\u003e\n  \u003cspan class=\"caretnext\"\u003e›\u003c\/span\u003e \u003ca id=\"seeMoreDetailsLink\" class=\"a-link-normal\" href=\"#productDetails\"\u003e See more product details \u003c\/a\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\u003c\/div\u003e\u003cdiv\u003e\u003cdiv class=\"a-section a-spacing-small a-spacing-top-small\"\u003e\n \u003ctable class=\"a-normal a-spacing-micro\" role=\"list\"\u003e\n  \u003ctbody\u003e\n   \u003ctr class=\"a-spacing-small po-recommended_uses_for_product\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eRecommended uses for product\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eBaby Monitoring\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n   \u003ctr class=\"a-spacing-small po-brand\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eBrand\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eTapo\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n   \u003ctr class=\"a-spacing-small po-model_name\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eModel name\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eTapo Pan\/Tilt Camera\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n   \u003ctr class=\"a-spacing-small po-connectivity_technology\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eConnectivity technology\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eWireless\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n   \u003ctr class=\"a-spacing-small po-special_feature\" role=\"listitem\"\u003e\n    \u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eSpecial feature\u003c\/span\u003e\u003c\/td\u003e\n    \u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eNight Vision\u003c\/span\u003e\u003c\/td\u003e\n   \u003c\/tr\u003e\n  \u003c\/tbody\u003e\n \u003c\/table\u003e\n\u003c\/div\u003e\u003c\/div\u003e","brand":"Sayby’s Ltd","offers":[{"title":"US Set","offer_id":56070906478857,"sku":"B09Y8TLP25","price":28.54,"currency_code":"GBP","in_stock":true},{"title":"2K+Ethernet Port","offer_id":57460450689289,"sku":"B0CYW22BZ9","price":42.83,"currency_code":"GBP","in_stock":true},{"title":"2MP Full HD","offer_id":57460450722057,"sku":"B08K3M6N7C","price":21.41,"currency_code":"GBP","in_stock":true},{"title":"2K 3MP Two Cameras","offer_id":57460450754825,"sku":"B0CQHVX8K1","price":54.52,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0859\/0508\/0585\/files\/61diChCuq_L._AC_SL1500.jpg?v=1792484539"},{"product_id":"codnida-2k-security-camera-outdoor-360-ptz-wifi-camera-cctv-camera-with-24-7-recording-pir-human-detection-sound-and-light-alarm-support-16-128g-sd-card-works-with-alexa","title":"2K PTZ Security Camera","description":"\u003cdiv\u003e\n\u003cdiv class=\"aplus-v2 desktop celwidget\"\u003e\n\u003cscript type=\"application\/javascript\"\u003e\/\/ \u003c![CDATA[\n    \/**\n     * Common event handler for click and keydown events.\n     * @param {Event} event - The event object.\n     * @param {Function} handleClickOrEnter - Function to handle click or Enter key events.\n     * @param {Function} handleEsc - Function to handle Esc key events.\n     *\/\n    \/\/ [TODO][AplusMantle-8064] Create common event handler util(key events, click events) in AplusModuleResources\n    function handleClickAndKeyEvents(event, handleClickOrEnterOrSpace) {\n        const ENTER_KEY_CODE = 13;\n        const ESCAPE_KEY_CODE = 27;\n        const SPACE_KEY_CODE = 32;\n        const isClick = event.type === 'click';\n        const isKeydown = event.type === 'keydown';\n        const isEnter = isKeydown \u0026\u0026 event.keyCode === ENTER_KEY_CODE;\n        const isSpace = isKeydown \u0026\u0026 event.keyCode === SPACE_KEY_CODE;\n        const isEsc = isKeydown \u0026\u0026 event.keyCode === ESCAPE_KEY_CODE;\n\n        if (isClick || isEnter || isSpace) {\n            handleClickOrEnterOrSpace();\n        } else if (isEsc) {\n            handleEsc(event);\n        }\n    }\n\n    \/**\n    * Function to handle esc key event.\n    * @param {Event} event - The event object.\n    *\/\n    function handleEsc(event) {\n        event.target.blur()  \/\/ force remove focus\n    }\n\/\/ ]]\u003e\u003c\/script\u003e\u003cscript type=\"text\/javascript\"\u003e\/\/ \u003c![CDATA[\n(function(f) {var _np=(window.P._namespace(\"PremiumAplusModule\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\nP.now('premium-module-11-faq').execute(function(init) {\n    if (init) {\n        return;\n    }\n    P.register('premium-module-11-faq', function() {\n        return function() {\n            P.when('A', 'jQuery', 'ready').execute(function(A, $){\n                function initFaq(module) {                   \n                    const MODULE_CLASS_NAME = 'premium-aplus-module-11';\n                    const FAQ_CONTAINER_CLASS_NAME = 'faqs-container';\n                    const FAQ_BLOCK_CLASS_NAME = 'faq-block';\n                    const moduleId = $(module).data('faq-block');\n                    const $faqBlocks = $('.aplus-v2 .' + MODULE_CLASS_NAME + ' .' + FAQ_CONTAINER_CLASS_NAME + '.' + moduleId + ' .' + FAQ_BLOCK_CLASS_NAME);\n\n                    \/**\n                    * Function to handle click or Enter or Space key events.\n                    * @param {Element} element - The this object from which the event is dispatched\n                    * @param {faqBlocks} faqBlocks - List of all the Question and Answer blocks.\n                    *\/\n                    function handleClickOrEnterOrSpace(element, faqBlocks) {\n                        const $element = $(element);\n                        const isActive = $element.hasClass('aplus-active');\n\n                        faqBlocks.removeClass('aplus-active');\n                        faqBlocks.find('[data-faq-question]').attr('aria-expanded', 'false');\n\n                        if (!isActive) {\n                            $element.addClass('aplus-active');\n                            $element.find('[data-faq-question]').attr('aria-expanded', 'true');\n                        }\n                    }\n\n                    \/* Using jQuery event namespace for preventing duplicate binding on twister refresh *\/\n                    $faqBlocks.unbind('click keydown.premiumAplusModule11ClickHandler').bind('click keydown.premiumAplusModule11ClickHandler', function(event) {\n                        handleClickAndKeyEvents(event, () =\u003e handleClickOrEnterOrSpace(this, $faqBlocks)); \n                    });\n                }\n                $(\".aplus-v2 .premium-aplus-module-11 .faqs-container\").each(function(index, module) {\n                    initFaq(module);\n                });\n            });\n        };\n    });\n});\n}));\n\/\/ ]]\u003e\u003c\/script\u003e\u003cscript type=\"text\/javascript\"\u003e\/\/ \u003c![CDATA[\n(function(f) {var _np=(window.P._namespace(\"PremiumAplusModule\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\nP.now('premium-module-12-nav-carousel').execute(function(init) {\n    if (init) {\n        return;\n    }\n    P.register('premium-module-12-nav-carousel', function(){\n        return function() {\n            P.when('A', 'jQuery', 'a-carousel-framework', 'ready').execute(function (A, $, framework) {\n                function initiateCarousel(module) {\n                    var MODULE_ID = $(module).data('module-id');\n                    \/**\n                    * Carousel button element classname\n                    * @const\n                    *\/\n                    var GOTO_BTN_CLASS_NAME = \"aplus-goto-btn-\" + MODULE_ID;\n                    \/**\n                    * Carousel button element active classname\n                    * @const\n                    *\/\n                    var GOTO_BTN_ACTIVE_CLASS_NAME = \"aplus-active\";\n                    \/**\n                    * AUI name for aui carousel\n                    * @const\n                    *\/\n                    var CAROUSEL_NAME = \"premium-aplus-12-carousel-\" + MODULE_ID;\n                    \/**\n                    * Module class name\n                    * @const\n                    *\/\n                    var MODULE_CLASS_NAME = \".aplus-v2 .premium-aplus-module-12\";\n                    \/**\n                    * Carousel text container class name\n                    * @const\n                    *\/\n                    var TEXT_CONTAINER_CLASS_NAME = MODULE_CLASS_NAME + \" .aplus-carousel-text-container-\" + MODULE_ID;\n                    \/**\n                    * Carousel text hidden class name\n                    * @const\n                    *\/\n                    var TEXT_CONTAINER_HIDDEN = \"aplus-hidden\";\n                    \/**\n                    * Carousel horizontal scroll container class name\n                    * @const\n                    *\/\n                    var HORIZONTAL_SCROLL_CONTAINER_CLASS_NAME = MODULE_CLASS_NAME + \" .aplus-horizontal-scroll-container-\" + MODULE_ID;\n\n                    function showCarouselText(oldIndex, newIndex) {\n                        var oldClass = TEXT_CONTAINER_CLASS_NAME + \"-\" + oldIndex;\n                        var newClass= TEXT_CONTAINER_CLASS_NAME + \"-\" + newIndex;\n                        $(oldClass).addClass(TEXT_CONTAINER_HIDDEN);\n                        $(newClass).removeClass(TEXT_CONTAINER_HIDDEN);\n                    }\n\n                    function scrollToCarouselButton(scrollLeft) {\n                        if ($(HORIZONTAL_SCROLL_CONTAINER_CLASS_NAME).length) {\n                            $(HORIZONTAL_SCROLL_CONTAINER_CLASS_NAME).animate({scrollLeft}, 200);\n                        }\n                    }\n\n                    \/**\n                    * Creates a CarouselButton class for provided carousel instance\n                    * @param {object} carousel - AUI Carousel instance\n                    * @returns {Class} - CarouselButton Class\n                    *\/\n                    function CarouselButtonTemplate(carousel) {\n                        \/**\n                        * Button for controlling the active slide\n                        * @constructor\n                        * @param {number} index - slide index\n                        * @param {DOMElement} [elem] - optional DOM element to use as this objects DOM representation\n                        *\/\n                        function CarouselButton(index, elem) {\n                            var self = this;\n                            this.index = index;\n                            this.carousel = carousel;\n\n                            \/* create the button element *\/\n                            this.elem = this.getElem(elem);\n                            this.$elem = $(this.elem);  \/* store jquery version *\/\n                            this.elem.addEventListener('click', self.handleClick.bind(self));\n                            this.elem.setAttribute('role', 'tab');\n\n                            \/* add this object to the object manager *\/\n                            CarouselButton.objects.byId[index] = this;\n                            CarouselButton.objects.all.push(this);\n                        }\n\n                        \/**\n                        * Describe behavior for click events on this.elem\n                        * @memberOf CarouselButton\n                        *\/\n                        CarouselButton.prototype.handleClick = function(e) {\n                            e.preventDefault();\n                            this.carousel.gotoPage(this.index);\n                        };\n\n                        \/**\n                        * Enter active state\n                        * @memberOf CarouselButton\n                        *\/\n                        CarouselButton.prototype.activate = function() {\n                            this.$elem.addClass(GOTO_BTN_ACTIVE_CLASS_NAME).attr('aria-selected', 'true');\n                        };\n\n                        \/**\n                        * Enter inactive state\n                        * @memberOf CarouselButton\n                        *\/\n                        CarouselButton.prototype.deactivate = function() {\n                            this.$elem.removeClass(GOTO_BTN_ACTIVE_CLASS_NAME).attr('aria-selected', 'false');\n                        };\n\n                        \/**\n                        * Returns an existing or creates a new bound element for this object\n                        * @memberOf CarouselButton\n                        * @param {DOMElement} [elem] - optionally provide an existing element in the DOM to use\n                        * @returns {DOMElement} - this objects DOM representation\n                        *\/\n                        CarouselButton.prototype.getElem = function(elem) {\n                            if (this.elem) return this.elem;\n                            if (elem) return elem;\n\n                            var createdElem = document.createElement('span');\n                            createdElem.className = GOTO_BTN_CLASS_NAME;\n\n                            return createdElem;\n                        };\n\n                        \/** @const Object manager *\/\n                        CarouselButton.objects = {\n                            byId: {},\n                            all: [],\n                        };\n\n                        return CarouselButton;\n                    }\n\n                    framework.onInit(CAROUSEL_NAME, function(carousel) {\n                        \/** @const {Class} *\/\n                        var CarouselButton = CarouselButtonTemplate(carousel);\n\n                        \/* create carousel controls *\/\n                        var $carouselBtns = $(safeClassSelector(GOTO_BTN_CLASS_NAME));\n                        var btns = $carouselBtns.map(function(i, btnElem) {\n                            return new CarouselButton(i + 1, btnElem);\n                        });\n\n                        \/* activate first one *\/\n                        CarouselButton.objects.byId[1].activate();\n\n                        \/* Listen to slide changes *\/\n                        A.on(\"a:carousel:\" + CAROUSEL_NAME + \":change:pageNumber\", function (data) {\n                            var newCarouselButton = CarouselButton.objects.byId[data.newValue];\n                            var marginLeft = parseInt(getComputedStyle(newCarouselButton.elem).getPropertyValue('margin-left'));\n                            var positionLeft = newCarouselButton.elem.offsetLeft - marginLeft;\n\n                            newCarouselButton.activate();\n                            CarouselButton.objects.byId[data.oldValue].deactivate();\n                            scrollToCarouselButton(positionLeft);\n                            showCarouselText(data.oldValue, data.newValue);\n                        });\n                    });\n\n                    \/**\n                    * @returns {string} - css classname prefixed with module selector\n                    *\/\n                    function safeClassSelector(className) {\n                        return '.' + MODULE_CLASS_NAME + ' .' + className;\n                    }\n                }\n\n                $('.aplus-v2 .premium-aplus-module-12 .aplus-carousel-container').each(function (index, module) {\n                    initiateCarousel(module);\n                });\n                framework.createAll();\n                framework.initializeAll();\n            });\n        }\n    })\n});\n}));\n\/\/ ]]\u003e\u003c\/script\u003e\n\u003cdiv class=\"celwidget aplus-module premium-module-8-hero-video aplus-premium\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-8\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-aplus-module-8-video\"\u003e\n\u003cdiv class=\"a-section a-spacing-none video-placeholder\"\u003e\n\u003cp class=\"isSelectedEnd\"\u003e\u003cstrong\u003e\u003cspan\u003eDescription:\u003c\/span\u003e\u003c\/strong\u003e\u003cbr\u003e\u003cspan\u003eA smart indoor and outdoor security camera with 2K resolution, 360° PTZ viewing, motion detection, auto tracking, two-way audio, and colour night vision. It supports 24\/7 recording, app alerts, SD card or cloud storage, and Alexa compatibility for convenient home monitoring.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"isSelectedEnd\"\u003e\u003cstrong\u003e\u003cspan\u003eSpecifications:\u003c\/span\u003e\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan\u003eResolution: 2K \/ 3MP\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eCamera Type: PTZ Security Camera\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eHorizontal Rotation: Up to 355°\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eVertical Rotation: Up to 90°\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eNight Vision: Colour and infrared\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eNight Vision Range: Up to 10m\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eMotion Detection: Yes\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eAuto Tracking: Yes\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eCustom Detection Zones: Yes\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTwo-Way Audio: Yes\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eSound \u0026amp; Light Alarm: Yes\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eRecording: 24\/7 supported\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eSD Card Support: 16GB–128GB\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eCloud Storage: Supported\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWi-Fi: 2.4GHz only\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eApp: CloudEdge\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eAlexa Compatible: Yes\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003ePower Cable Length: 3m\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eConnectivity: Wireless\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eRecommended Use: Indoor and outdoor security\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\u003c\/div\u003e","brand":"Sayby’s Sanctuary ","offers":[{"title":"Black","offer_id":56071780696329,"sku":"B0DCJYL91L","price":29.06,"currency_code":"GBP","in_stock":true},{"title":"1 Pack","offer_id":56071780729097,"sku":"B0CGL36F9C","price":25.17,"currency_code":"GBP","in_stock":true},{"title":"2 Pack","offer_id":56071780761865,"sku":"B0CPHSHQDQ","price":58.13,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0859\/0508\/0585\/files\/codnida-2k-security-camera-outdoor-360-ptz-wifi-camera-cctv-camera-with-247-recording-pir-human-detection-sound-and-light-alarm-support-16-128g-sd-card-works-wi-4474646.jpg?v=1788169886"},{"product_id":"imou-dual-lens-2k-2k-indoor-security-camera-house-security-camera-360-full-coverage-pet-baby-camera-with-app-color-night-vision-human-pet-sound-motion-detection-siren-spotlight-2-4ghz-only","title":"Dual-Lens 2K Indoor Security Camera","description":"\u003cdiv\u003e\n\u003cdiv class=\"aplus-v2 desktop celwidget\"\u003e\n\u003cscript type=\"text\/javascript\"\u003e\/\/ \u003c![CDATA[\n(function(f) {var _np=(window.P._namespace(\"PremiumAplusModule\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\nP.now('premium-module-12-nav-carousel').execute(function(init) {\n    if (init) {\n        return;\n    }\n    P.register('premium-module-12-nav-carousel', function(){\n        return function() {\n            P.when('A', 'jQuery', 'a-carousel-framework', 'ready').execute(function (A, $, framework) {\n                function initiateCarousel(module) {\n                    var MODULE_ID = $(module).data('module-id');\n                    \/**\n                    * Carousel button element classname\n                    * @const\n                    *\/\n                    var GOTO_BTN_CLASS_NAME = \"aplus-goto-btn-\" + MODULE_ID;\n                    \/**\n                    * Carousel button element active classname\n                    * @const\n                    *\/\n                    var GOTO_BTN_ACTIVE_CLASS_NAME = \"aplus-active\";\n                    \/**\n                    * AUI name for aui carousel\n                    * @const\n                    *\/\n                    var CAROUSEL_NAME = \"premium-aplus-12-carousel-\" + MODULE_ID;\n                    \/**\n                    * Module class name\n                    * @const\n                    *\/\n                    var MODULE_CLASS_NAME = \".aplus-v2 .premium-aplus-module-12\";\n                    \/**\n                    * Carousel text container class name\n                    * @const\n                    *\/\n                    var TEXT_CONTAINER_CLASS_NAME = MODULE_CLASS_NAME + \" .aplus-carousel-text-container-\" + MODULE_ID;\n                    \/**\n                    * Carousel text hidden class name\n                    * @const\n                    *\/\n                    var TEXT_CONTAINER_HIDDEN = \"aplus-hidden\";\n                    \/**\n                    * Carousel horizontal scroll container class name\n                    * @const\n                    *\/\n                    var HORIZONTAL_SCROLL_CONTAINER_CLASS_NAME = MODULE_CLASS_NAME + \" .aplus-horizontal-scroll-container-\" + MODULE_ID;\n\n                    function showCarouselText(oldIndex, newIndex) {\n                        var oldClass = TEXT_CONTAINER_CLASS_NAME + \"-\" + oldIndex;\n                        var newClass= TEXT_CONTAINER_CLASS_NAME + \"-\" + newIndex;\n                        $(oldClass).addClass(TEXT_CONTAINER_HIDDEN);\n                        $(newClass).removeClass(TEXT_CONTAINER_HIDDEN);\n                    }\n\n                    function scrollToCarouselButton(scrollLeft) {\n                        if ($(HORIZONTAL_SCROLL_CONTAINER_CLASS_NAME).length) {\n                            $(HORIZONTAL_SCROLL_CONTAINER_CLASS_NAME).animate({scrollLeft}, 200);\n                        }\n                    }\n\n                    \/**\n                    * Creates a CarouselButton class for provided carousel instance\n                    * @param {object} carousel - AUI Carousel instance\n                    * @returns {Class} - CarouselButton Class\n                    *\/\n                    function CarouselButtonTemplate(carousel) {\n                        \/**\n                        * Button for controlling the active slide\n                        * @constructor\n                        * @param {number} index - slide index\n                        * @param {DOMElement} [elem] - optional DOM element to use as this objects DOM representation\n                        *\/\n                        function CarouselButton(index, elem) {\n                            var self = this;\n                            this.index = index;\n                            this.carousel = carousel;\n\n                            \/* create the button element *\/\n                            this.elem = this.getElem(elem);\n                            this.$elem = $(this.elem);  \/* store jquery version *\/\n                            this.elem.addEventListener('click', self.handleClick.bind(self));\n                            this.elem.setAttribute('role', 'tab');\n\n                            \/* add this object to the object manager *\/\n                            CarouselButton.objects.byId[index] = this;\n                            CarouselButton.objects.all.push(this);\n                        }\n\n                        \/**\n                        * Describe behavior for click events on this.elem\n                        * @memberOf CarouselButton\n                        *\/\n                        CarouselButton.prototype.handleClick = function(e) {\n                            e.preventDefault();\n                            this.carousel.gotoPage(this.index);\n                        };\n\n                        \/**\n                        * Enter active state\n                        * @memberOf CarouselButton\n                        *\/\n                        CarouselButton.prototype.activate = function() {\n                            this.$elem.addClass(GOTO_BTN_ACTIVE_CLASS_NAME).attr('aria-selected', 'true');\n                        };\n\n                        \/**\n                        * Enter inactive state\n                        * @memberOf CarouselButton\n                        *\/\n                        CarouselButton.prototype.deactivate = function() {\n                            this.$elem.removeClass(GOTO_BTN_ACTIVE_CLASS_NAME).attr('aria-selected', 'false');\n                        };\n\n                        \/**\n                        * Returns an existing or creates a new bound element for this object\n                        * @memberOf CarouselButton\n                        * @param {DOMElement} [elem] - optionally provide an existing element in the DOM to use\n                        * @returns {DOMElement} - this objects DOM representation\n                        *\/\n                        CarouselButton.prototype.getElem = function(elem) {\n                            if (this.elem) return this.elem;\n                            if (elem) return elem;\n\n                            var createdElem = document.createElement('span');\n                            createdElem.className = GOTO_BTN_CLASS_NAME;\n\n                            return createdElem;\n                        };\n\n                        \/** @const Object manager *\/\n                        CarouselButton.objects = {\n                            byId: {},\n                            all: [],\n                        };\n\n                        return CarouselButton;\n                    }\n\n                    framework.onInit(CAROUSEL_NAME, function(carousel) {\n                        \/** @const {Class} *\/\n                        var CarouselButton = CarouselButtonTemplate(carousel);\n\n                        \/* create carousel controls *\/\n                        var $carouselBtns = $(safeClassSelector(GOTO_BTN_CLASS_NAME));\n                        var btns = $carouselBtns.map(function(i, btnElem) {\n                            return new CarouselButton(i + 1, btnElem);\n                        });\n\n                        \/* activate first one *\/\n                        CarouselButton.objects.byId[1].activate();\n\n                        \/* Listen to slide changes *\/\n                        A.on(\"a:carousel:\" + CAROUSEL_NAME + \":change:pageNumber\", function (data) {\n                            var newCarouselButton = CarouselButton.objects.byId[data.newValue];\n                            var marginLeft = parseInt(getComputedStyle(newCarouselButton.elem).getPropertyValue('margin-left'));\n                            var positionLeft = newCarouselButton.elem.offsetLeft - marginLeft;\n\n                            newCarouselButton.activate();\n                            CarouselButton.objects.byId[data.oldValue].deactivate();\n                            scrollToCarouselButton(positionLeft);\n                            showCarouselText(data.oldValue, data.newValue);\n                        });\n                    });\n\n                    \/**\n                    * @returns {string} - css classname prefixed with module selector\n                    *\/\n                    function safeClassSelector(className) {\n                        return '.' + MODULE_CLASS_NAME + ' .' + className;\n                    }\n                }\n\n                $('.aplus-v2 .premium-aplus-module-12 .aplus-carousel-container').each(function (index, module) {\n                    initiateCarousel(module);\n                });\n                framework.createAll();\n                framework.initializeAll();\n            });\n        }\n    })\n});\n}));\n\/\/ ]]\u003e\u003c\/script\u003e\n\u003cdiv class=\"celwidget aplus-module premium-module-2-fullbackground-image aplus-premium\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-2\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-background-wrapper\"\u003e\n\u003cdiv class=\"a-section a-spacing-none background-image\"\u003e\n\u003cp class=\"isSelectedEnd\"\u003e\u003cstrong\u003e\u003cspan\u003eDescription:\u003c\/span\u003e\u003c\/strong\u003e\u003cbr\u003e\u003cspan\u003eA smart indoor security camera with dual lenses for wider home monitoring and reduced blind spots. It combines a fixed lens with a rotating 360° lens and supports AI-based human and pet detection, motion tracking, two-way audio, night vision, and app alerts for everyday indoor security.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"isSelectedEnd\"\u003e\u003cstrong\u003e\u003cspan\u003eSpecifications:\u003c\/span\u003e\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan\u003eCamera Type: Dual-lens indoor security camera\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eResolution: 6MP total, 3MP fixed lens + 3MP rotating lens\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eCoverage: 360° pan and tilt\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eNight Vision: Full-colour night vision\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eNight Vision Range: Up to 15 m \/ 49 ft\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eZoom: Up to 8×\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eDetection: Human, pet, sound, and motion detection\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eMotion Tracking: Yes\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eTwo-Way Audio: Yes\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003ePrivacy Mode: Yes\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eSiren \u0026amp; Spotlight: Yes\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eWi-Fi: 2.4 GHz only\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eStorage: Supports up to 256GB microSD card\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eCloud Storage: 30-day trial available\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eSmart Home Support: Works with Alexa\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eRecommended Use: Baby monitoring, pet monitoring, and indoor security\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\u003c\/div\u003e","brand":"Sayby’s Sanctuary ","offers":[{"title":"3MP+3MP","offer_id":56111966191881,"sku":"B0CP7GY5CS","price":30.59,"currency_code":"GBP","in_stock":true},{"title":"3MP+5MP","offer_id":56111966224649,"sku":"B0CP7GSS5Q","price":50.99,"currency_code":"GBP","in_stock":true},{"title":"2Pack 2K+2K","offer_id":56111966257417,"sku":"B0F18Y4ZWC","price":50.97,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0859\/0508\/0585\/files\/imou-dual-lens-2k2k-indoor-security-camera-house-security-camera-360full-coverage-pet-baby-camera-with-app-color-night-vision-humanpetsoundmotion-detection-sire-9535170.jpg?v=1789560842"},{"product_id":"pawfit-lite-4g-gps-cat-tracker-live-tracking-ultra-light-onyx-black","title":"Pawfit Lite 4G GPS Cat Tracker","description":"\u003cstyle type=\"text\/css\"\u003e\n    .aplus-v2 .premium-aplus-module-13 .aplus-carousel-container {\n        position: relative;\n    }\n\n    .aplus-v2 .premium-aplus-module-13 .aplus-carousel-element {\n        position: relative;\n        width: 100%;\n    }\n\n    .aplus-v2 .premium-aplus-module-13 .aplus-card-link-button {\n        text-align: center;\n        padding-top: 20px;\n    }\n\n    .aplus-v2 .premium-aplus-module-13 .aplus-text-background,\n    .aplus-v2 .premium-aplus-module-13 .aplus-text-background h1,\n    .aplus-v2 .premium-aplus-module-13 .aplus-text-background h5,\n    .aplus-v2 .premium-aplus-module-13 .aplus-text-background ol,\n    .aplus-v2 .premium-aplus-module-13 .aplus-text-background ul,\n    .aplus-v2 .premium-aplus-module-13 .aplus-text-background ol .a-list-item,\n    .aplus-v2 .premium-aplus-module-13 .aplus-text-background ul .a-list-item {\n        color: #fff;\n    }\n\n\u003c\/style\u003e\n\u003cstyle type=\"text\/css\"\u003e\n\n.aplus-v2 .premium-aplus-module-2 .premium-background-wrapper {\n    position: relative;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper {\n    position: absolute;\n    width: 50%;\n    height: 100%;\n    top: 0;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.right {\n    left: 50%;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.right {\n    left: auto;\n    right: 50%;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.secondary-color {\n    color: #fff;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background {\n    padding: 20px;\n}\n\n.aplus-v2 .premium-aplus-module-2 .aplus-module-2-topic {\n    padding-bottom: 10px;\n}\n\n.aplus-v2 .premium-aplus-module-2 .aplus-module-2-heading {\n    padding-bottom: 20px;\n}\n\n.aplus-v2 .premium-aplus-module-2 .aplus-module-2-description {\n    line-height: 1.5em;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.white-background {\n    background: rgba(255,255,255,0.5);\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background {\n    background: rgba(0,0,0,0.5);\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background,\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background h1,\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background h5,\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background ol,\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background ul,\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background ol .a-list-item,\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background ul .a-list-item {\n  color: #fff;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-content-container {\n    display: table;\n    height: 100%;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.left .premium-intro-content-container {\n    padding-left: 40px;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.left .premium-intro-content-container {\n\tpadding-left: 0px;\n\tpadding-right: 40px;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.right .premium-intro-content-container {\n    padding-right: 40px;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.right .premium-intro-content-container {\n    padding-right: 0px;\n    padding-left: 40px;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-content-column {\n    display: table-cell;\n    vertical-align: middle;\n}\n\n\n\u003c\/style\u003e\n\u003cstyle type=\"text\/css\"\u003e\n\n\/**\n * Premium modules global styles\n *\/\n.aplus-v2.desktop {\n  max-width: 1464px;\n  min-width: 800px;\n  margin-left: auto;\n  margin-right: auto;\n  word-wrap: break-word;\n  overflow-wrap: break-word;\n  word-break: break-word;\n}\n\/* Undo this for tech-specs because it breaks table layout *\/\n.aplus-v2.desktop .premium-aplus .aplus-tech-spec-table { word-break: initial; }\n\n.aplus-v2 .premium-aplus,\n.aplus-v2 .premium-aplus .aplus-h1,\n.aplus-v2 .premium-aplus .aplus-h2,\n.aplus-v2 .premium-aplus .aplus-p1,\n.aplus-v2 .premium-aplus .aplus-p2,\n.aplus-v2 .premium-aplus .aplus-p3,\n.aplus-v2 .premium-aplus .aplus-accent1,\n.aplus-v2 .premium-aplus .aplus-accent2\n{ font-family: Arial, sans-serif; }\n\n.aplus-v2 .premium-aplus,\n.aplus-v2 .premium-aplus .aplus-h1,\n.aplus-v2 .premium-aplus .aplus-h2,\n.aplus-v2 .premium-aplus .aplus-p1,\n.aplus-v2 .premium-aplus .aplus-p2,\n.aplus-v2 .premium-aplus .aplus-p3,\n.aplus-v2 .premium-aplus .aplus-accent1,\n.aplus-v2 .premium-aplus .aplus-accent2\n{ font-family: inherit; }\n\n\/* type *\/\n.aplus-v2 .premium-aplus .aplus-h1 { font-size: 32px; line-height: 1.2em; font-weight: 500; }\n.aplus-v2 .premium-aplus .aplus-h2 { font-size: 26px; line-height: 1.25em; font-weight: 500; }\n.aplus-v2 .premium-aplus .aplus-h3 { font-size: 18px; line-height: 1.25em; font-weight: 500; }\n.aplus-v2 .premium-aplus .aplus-p1 { font-size: 20px; line-height: 1.3em; font-weight: 300; }\n.aplus-v2 .premium-aplus .aplus-p2 { font-size: 16px; line-height: 1.4em; font-weight: 300; }\n.aplus-v2 .premium-aplus .aplus-p3 { font-size: 14px; line-height: 1.4em; font-weight: 300; }\n.aplus-v2 .premium-aplus .aplus-accent1 { font-size: 16px; line-height: 1.4em; font-weight: 600; }\n.aplus-v2 .premium-aplus .aplus-accent2 { font-size: 14px; line-height: 1.4em; font-weight: 600; }\n\n\/* spacing *\/\n.aplus-v2 .aplus-container-1 { padding: 40px; }\n.aplus-v2 .aplus-container-1-2 { padding: 40px 80px; }\n.aplus-v2 .aplus-container-2 { padding: 80px; }\n.aplus-v2 .aplus-container-3 { padding: 40px 0; }\n\n\/* Display *\/\n.aplus-v2 .premium-aplus .aplus-display-table { display: table; }\n.aplus-v2 .premium-aplus .aplus-display-table-cell { display: table-cell; }\n.aplus-v2 .premium-aplus .aplus-display-inline-block { display: inline-block; }\n\n\/* Aplus display table with min-width 1000px and fill remaining space inside parent *\/\n.aplus-v2.desktop .premium-aplus .aplus-display-table-width { min-width: 1000px; width: 100% }\n\n\/**\n* Padding and margin for element should be 10, 20, 40, or 80 px. Considering mini 10, small 20, medium 40, large 80.\n*\/\n\n\u003c\/style\u003e\n\u003cstyle type=\"text\/css\"\u003e\n\n\/**\n * Premium-module 13: Carousel\n *\/\n\n.aplus-v2 .premium-aplus-module-13 .aplus-card-description-wrapper {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n}\n\n.aplus-v2 .premium-aplus-module-13 .aplus-card-description {\n    display: table;\n    width: 50%;\n    height: 100%;\n    color: #fff;\n}\n\n.aplus-v2 .premium-aplus-module-13 .aplus-card-table-cell {\n    display: table-cell;\n    vertical-align: middle;\n    text-align: left;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-13 .aplus-card-table-cell {\n    text-align: right;\n}\n\n.aplus-v2 .premium-aplus-module-13 .aplus-text-background {\n    background: rgba(0, 0, 0, 0.6);\n}\n\n.aplus-v2 .premium-aplus-module-13 .aplus-card-body {\n    padding: 20px 40px 0 0;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-13 .aplus-card-body {\n    padding: 20px 0 0 40px;\n}\n\n.aplus-v2 .premium-aplus-module-13 .aplus-pagination-wrapper {\n    position: absolute;\n    top: 92%;\n    width: 100%;\n}\n\n\u003c\/style\u003e\n\u003cdiv\u003e\n\u003cdiv lang=\"en_GB\"\u003e\n\u003cdiv class=\"aplus-v2 desktop celwidget\"\u003e\n\u003cdiv class=\"aplus-content-wrapper\"\u003e\n\u003cdiv class=\"celwidget aplus-module premium-module-2-fullbackground-image aplus-premium\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-2\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-background-wrapper\"\u003e\n\u003cdiv class=\"a-section a-spacing-none background-image\"\u003e\n\u003cp\u003e\u003cstrong\u003eDescription\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eKeep track of your cat with live GPS location updates through a mobile app. The lightweight tracker includes a breakaway collar, waterproof construction and an LED light for improved visibility in low light. Set virtual safe zones, receive escape alerts and monitor daily activity with 24-hour location history. A subscription is required for mobile data and tracking services.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eSpecifications\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBuilt-in GPS with multiple satellite systems\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e4G connectivity with an integrated multi-network SIM\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003eTracking across supported regions, including Europe and North America, wherever mobile network coverage is available\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003eVirtual safe zones and escape notifications\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003eDaily activity monitoring and personalised exercise goals\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e24-hour location history\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003eBuilt-in LED light\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003eTracker weight: Less than 18g\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003eIncludes a breakaway safety collar\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003eWaterproof construction\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003eBattery: 400mAh lithium polymer\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003eCompatible operating system: Android\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003eShape: Rectangular\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003eSubscription required; monthly and longer-term plans available\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cstyle type=\"text\/css\"\u003e\n\n.aplus-mantle.aplus-module .aplus-pagination-dots {\n    margin: 0;\n}\n\n.aplus-mantle.aplus-module .aplus-pagination-dot {\n    display: inline-block;\n    list-style: none;\n}\n\n.aplus-mantle.aplus-module .aplus-carousel-nav {\n    text-align:center;\n}\n\n.aplus-mantle.aplus-module .carousel-slider-circle {\n    display: inline-block;\n    cursor: pointer;\n    height: 15px;\n    width: 15px;\n    border: 1px solid #000;\n    border-radius: 20px;\n    background-color: #fff;\n    margin-left: 5px;\n}\n\n.aplus-mantle.aplus-module .carousel-slider-circle.aplus-carousel-active {\n    background-color: #DE7921;\n}\n\n.aplus-mantle.aplus-module .aplus-pagination-dot--display-none {\n    display: none;\n}\n\n\u003c\/style\u003e","brand":"Sayby’s","offers":[{"title":"Onyx black","offer_id":57341728915721,"sku":"B0F1TY598T","price":42.84,"currency_code":"GBP","in_stock":true},{"title":"Simply white","offer_id":57341728948489,"sku":"B0F1TVPBKH","price":45.9,"currency_code":"GBP","in_stock":true},{"title":"Lilac grey","offer_id":57341728981257,"sku":"B0FDR5VCW2","price":42.84,"currency_code":"GBP","in_stock":true},{"title":"Charcoal grey","offer_id":57341729014025,"sku":"B0F1TTC6NR","price":42.84,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0859\/0508\/0585\/files\/71sWK7OpC3L._AC_SL1500.jpg?v=1789672045"},{"product_id":"2-in-1-cat-tracker-collar-reflective-dog-tracker-with-no-monthly-fees-supports-real-time-tracking-anti-loss-ios-android-includes-adjustable-collar-with-bell-suitable-for-small-dogs-cats-black","title":"2-in-1 Cat \u0026 Dog Tracker Collar","description":"","brand":"Sayby’s","offers":[{"title":"Black","offer_id":57342785028361,"sku":"B0HF4XX7Z1","price":30.59,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0859\/0508\/0585\/files\/81N3HsTruxL._AC_SL1500.jpg?v=1789718167"}],"url":"https:\/\/saybys.com\/collections\/security-cameras.oembed","provider":"Sayby’s Ltd","version":"1.0","type":"link"}