{"product_id":"trailpets™-hairhero","title":"TrailPets™ HairHero","description":"\u003cdiv class=\"dp-desc\"\u003e\n\u003cstyle\u003e\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Fredoka:wght@400;500;600\u0026family=Nunito+Sans:opsz,wght@6..12,400;6..12,600;6..12,700;6..12,800\u0026display=swap');\n\n.dp-desc{\n  --cream:#FFFBF6; --sand:#F5EADC; --caramel:#BC854D; --caramel-soft:#E8D3B6;\n  --rust:#A15B24; --cocoa:#3E2C1C; --slate:#486572; --line:rgba(62,44,28,.13);\n  --muted:#6A5646;\n  --disp:\"Fredoka\",ui-rounded,system-ui,sans-serif;\n  --bod:\"Nunito Sans\",ui-sans-serif,system-ui,sans-serif;\n  --e:cubic-bezier(.22,.68,.24,1);\n  container-type:inline-size;\n  container-name:dpdesc;\n  font-family:var(--bod);color:var(--cocoa);\n  font-size:16.5px;line-height:1.62;\n  width:100%;max-width:100%;overflow:hidden;\n}\n.dp-desc *{box-sizing:border-box}\n.dp-desc .dp-sec,.dp-desc .dp-intro,.dp-desc .dp-closer,.dp-desc .dp-bens,\n.dp-desc .dp-split,.dp-desc .dp-steps,.dp-desc .dp-specs,.dp-desc .dp-ben,\n.dp-desc .dp-half,.dp-desc .dp-step,.dp-desc .dp-spec,.dp-desc .dp-vs,\n.dp-desc .dp-faq,.dp-desc .dp-guar,.dp-desc .dp-quotes{max-width:100%}\n.dp-desc h2,.dp-desc h3{font-family:var(--disp);font-weight:600;line-height:1.06;letter-spacing:-.02em;margin:0;color:var(--cocoa)}\n.dp-desc p{margin:0}\n.dp-desc .dp-eb{font-size:11.5px;font-weight:800;letter-spacing:.16em;\n  text-transform:uppercase;color:var(--caramel);margin:0 0 11px}\n.dp-desc svg{display:block;flex:none}\n\n\/* ---------- intro ---------- *\/\n.dp-desc .dp-intro{display:grid;gap:16px;margin:0 0 32px;\n  border-left:3px solid var(--caramel);padding:4px 0 4px 20px}\n.dp-desc .dp-lede{font-family:var(--disp);font-weight:500;\n  font-size:clamp(20px,4.4cqi,30px);line-height:1.22;color:var(--rust);margin:0}\n.dp-desc .dp-intro-body{display:grid;gap:13px;color:var(--muted)}\n\n\/* ---------- marquee ---------- *\/\n.dp-desc .dp-mq{background:var(--cocoa);border-radius:999px;overflow:hidden;\n  padding:12px 0;margin:0 0 40px;max-width:100%}\n.dp-desc .dp-track{display:flex;width:max-content;max-width:none;\n  animation:dpDrift 26s linear infinite}\n.dp-desc .dp-mq:hover .dp-track{animation-play-state:paused}\n.dp-desc .dp-track span{font-family:var(--disp);font-size:clamp(14px,2.5cqi,18px);font-weight:500;\n  color:#F6EDE2;display:flex;align-items:center;gap:24px;padding:0 24px;\n  white-space:nowrap;flex:none;max-width:none}\n.dp-desc .dp-track i{width:6px;height:6px;border-radius:50%;background:var(--caramel);display:block;flex:none}\n@keyframes dpDrift{from{transform:translateX(0)}to{transform:translateX(-50%)}}\n\n\/* ---------- section shell ---------- *\/\n.dp-desc .dp-sec{margin:0 0 44px}\n.dp-desc .dp-sec\u003eh2{font-size:clamp(24px,5cqi,36px);margin-bottom:9px}\n.dp-desc .dp-sec\u003eh2+p{color:var(--muted);margin-bottom:24px}\n.dp-desc .dp-sec\u003eh2+.dp-bens,.dp-desc .dp-sec\u003eh2+.dp-split,\n.dp-desc .dp-sec\u003eh2+.dp-specs,.dp-desc .dp-sec\u003eh2+.dp-vs,\n.dp-desc .dp-sec\u003eh2+.dp-faq,.dp-desc .dp-sec\u003eh2+.dp-quotes{margin-top:26px}\n.dp-desc .dp-sec\u003eh2+.dp-steps{margin-top:38px}\n\n\/* ---------- problem strip ---------- *\/\n.dp-desc .dp-prob{background:var(--sand);border-radius:22px;padding:28px 26px;margin:0 0 44px}\n.dp-desc .dp-prob h2{font-size:clamp(21px,4.2cqi,29px);max-width:22ch}\n.dp-desc .dp-prob ul{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:11px}\n.dp-desc .dp-prob li{display:flex;gap:12px;align-items:flex-start;font-size:15.5px;color:var(--muted)}\n.dp-desc .dp-prob svg{margin-top:3px;color:var(--rust)}\n.dp-desc .dp-prob .dp-turn{margin-top:22px;padding-top:20px;border-top:1px solid var(--line);\n  font-family:var(--disp);font-weight:500;font-size:clamp(17px,3.2cqi,21px);\n  line-height:1.35;color:var(--cocoa)}\n\n\/* ---------- benefits ---------- *\/\n.dp-desc .dp-bens{display:grid;grid-template-columns:1fr;gap:12px}\n.dp-desc .dp-ben{position:relative;background:#fff;border:1px solid var(--line);border-radius:20px;\n  padding:26px 24px;overflow:hidden;\n  transition:transform .3s var(--e),box-shadow .3s var(--e),border-color .3s ease}\n.dp-desc .dp-ben:hover{transform:translateY(-5px);border-color:var(--caramel-soft);\n  box-shadow:0 26px 48px -34px rgba(62,44,28,.6)}\n.dp-desc .dp-ben::before{content:\"\";position:absolute;inset:auto -40% -60% auto;\n  width:180px;height:180px;border-radius:50%;\n  background:radial-gradient(circle,rgba(188,133,77,.18),transparent 70%);\n  opacity:0;transition:opacity .4s ease}\n.dp-desc .dp-ben:hover::before{opacity:1}\n.dp-desc .dp-ico{width:44px;height:44px;border-radius:13px;background:var(--sand);\n  color:var(--rust);display:grid;place-items:center;position:relative;z-index:2;\n  transition:transform .35s var(--e),background .3s ease}\n.dp-desc .dp-ben:hover .dp-ico{transform:translateY(-2px) rotate(-6deg);background:var(--caramel-soft)}\n.dp-desc .dp-ben h3{font-size:18.5px;font-weight:500;margin:15px 0 6px;position:relative;z-index:2}\n.dp-desc .dp-ben p{font-size:14.5px;color:var(--muted);position:relative;z-index:2}\n\n\/* ---------- split ---------- *\/\n.dp-desc .dp-split{display:grid;grid-template-columns:1fr;gap:12px}\n.dp-desc .dp-half{position:relative;border-radius:22px;overflow:hidden;background:var(--sand);\n  border:1px solid var(--line);padding:26px 24px;min-height:215px;\n  display:flex;flex-direction:column;justify-content:flex-end;transition:transform .35s var(--e)}\n.dp-desc .dp-half:hover{transform:translateY(-5px)}\n.dp-desc .dp-half h3{font-size:clamp(21px,4cqi,28px);position:relative;z-index:2}\n.dp-desc .dp-half p{margin-top:9px;color:var(--muted);position:relative;z-index:2;font-size:15px}\n.dp-desc .dp-lint{position:absolute;left:0;right:0;bottom:0;height:58%;\n  background:linear-gradient(180deg,rgba(188,133,77,.08),rgba(188,133,77,.24))}\n.dp-desc .dp-fur{position:absolute;inset:0;z-index:1;pointer-events:none;color:var(--caramel)}\n.dp-desc .dp-fur span{position:absolute;opacity:.5}\n\n\/* ---------- steps ---------- *\/\n.dp-desc .dp-steps{display:grid;grid-template-columns:1fr;gap:26px}\n.dp-desc .dp-step{position:relative;padding-top:24px;border-top:2px solid var(--caramel)}\n.dp-desc .dp-step .dp-n{position:absolute;top:-18px;left:0;width:34px;height:34px;border-radius:50%;\n  background:var(--rust);color:#fff;display:grid;place-items:center;font-family:var(--disp);\n  font-weight:600;font-size:14px;box-shadow:0 0 0 5px var(--cream)}\n.dp-desc .dp-step h3{font-size:18.5px;font-weight:500;margin:12px 0 6px}\n.dp-desc .dp-step p{font-size:15px;color:var(--muted)}\n\n\/* ---------- comparison ---------- *\/\n.dp-desc .dp-vs{display:grid;grid-template-columns:1fr;gap:12px}\n.dp-desc .dp-col{border-radius:20px;padding:26px 24px;border:1px solid var(--line)}\n.dp-desc .dp-col--old{background:transparent}\n.dp-desc .dp-col--new{background:linear-gradient(155deg,#6B4423 0%,#54341B 60%,#452A14 100%);\n  color:#F0DFCB;border-color:#54341B;position:relative}\n.dp-desc .dp-col h3{font-size:19px;font-weight:500;margin-bottom:16px}\n.dp-desc .dp-col--new h3{color:#FFF6EA}\n.dp-desc .dp-pill{position:absolute;top:-11px;right:20px;background:var(--caramel);color:#2E1C0D;\n  font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;\n  padding:5px 12px;border-radius:999px}\n.dp-desc .dp-col ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}\n.dp-desc .dp-col li{display:flex;gap:11px;align-items:flex-start;font-size:14.8px;line-height:1.5}\n.dp-desc .dp-col--old li{color:var(--muted)}\n.dp-desc .dp-col--old svg{color:#B79E8A;margin-top:2px}\n.dp-desc .dp-col--new li{color:#EBD6BC}\n.dp-desc .dp-col--new svg{color:#E8D3B6;margin-top:2px}\n\n\/* ---------- guarantee row ---------- *\/\n.dp-desc .dp-guar{display:grid;grid-template-columns:1fr;gap:2px;\n  border:1px solid var(--line);border-radius:20px;overflow:hidden;background:var(--line)}\n.dp-desc .dp-guar\u003ediv{background:var(--cream);padding:24px 22px;display:flex;gap:14px;align-items:flex-start}\n.dp-desc .dp-guar svg{color:var(--rust);margin-top:2px}\n.dp-desc .dp-guar b{display:block;font-family:var(--disp);font-weight:500;font-size:17px;margin-bottom:4px}\n.dp-desc .dp-guar small{font-size:13.8px;color:var(--muted);line-height:1.5}\n\n\/* ---------- FAQ ---------- *\/\n.dp-desc .dp-faq{display:grid;gap:0;border-top:1px solid var(--line)}\n.dp-desc details{border-bottom:1px solid var(--line)}\n.dp-desc summary{cursor:pointer;list-style:none;padding:20px 40px 20px 0;position:relative;\n  font-family:var(--disp);font-weight:500;font-size:17px;color:var(--cocoa);\n  transition:color .2s ease}\n.dp-desc summary::-webkit-details-marker{display:none}\n.dp-desc summary:hover{color:var(--rust)}\n.dp-desc summary::after{content:\"\";position:absolute;right:8px;top:26px;width:9px;height:9px;\n  border-right:2px solid var(--caramel);border-bottom:2px solid var(--caramel);\n  transform:rotate(45deg);transition:transform .28s var(--e)}\n.dp-desc details[open] summary::after{transform:rotate(-135deg)}\n.dp-desc details p{padding:0 8px 22px 0;color:var(--muted);font-size:15px;\n  animation:dpFade .35s var(--e) both}\n@keyframes dpFade{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}\n\n\/* ---------- reviews ---------- *\/\n.dp-desc .dp-quotes{display:grid;grid-template-columns:1fr;gap:12px}\n.dp-desc .dp-quote{background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px 24px;\n  transition:transform .3s var(--e),box-shadow .3s var(--e)}\n.dp-desc .dp-quote:hover{transform:translateY(-4px);box-shadow:0 24px 44px -34px rgba(62,44,28,.55)}\n.dp-desc .dp-stars{color:var(--caramel);letter-spacing:3px;font-size:15px}\n.dp-desc .dp-quote p{margin:12px 0 14px;font-size:15.5px}\n.dp-desc .dp-quote cite{font-style:normal;font-size:13px;font-weight:800;color:var(--slate);\n  letter-spacing:.03em}\n\n\/* ---------- specs ---------- *\/\n.dp-desc .dp-specs{display:grid;grid-template-columns:1fr;\n  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}\n.dp-desc .dp-spec{padding:20px 4px;border-bottom:1px solid var(--line)}\n.dp-desc .dp-spec:last-child{border-bottom:0}\n.dp-desc .dp-spec b{display:block;font-family:var(--disp);font-weight:500;font-size:18px;margin-bottom:4px}\n.dp-desc .dp-spec small{font-size:13.5px;color:var(--muted);line-height:1.45}\n\n\/* ---------- closer ---------- *\/\n.dp-desc .dp-closer{\n  background:linear-gradient(155deg,#6B4423 0%,#54341B 55%,#452A14 100%);\n  border-radius:22px;padding:34px 28px;text-align:center;\n  position:relative;overflow:hidden}\n.dp-desc .dp-closer::before{content:\"\";position:absolute;inset:-60% 40% auto -30%;height:280px;\n  background:radial-gradient(circle,rgba(232,211,182,.30),transparent 68%)}\n.dp-desc .dp-closer\u003e*{position:relative;z-index:2}\n.dp-desc .dp-closer h2{color:#FFF6EA;font-size:clamp(21px,4.2cqi,31px);margin:0 auto;line-height:1.24}\n.dp-desc .dp-closer p{color:#EBD6BC;margin-top:16px;font-size:15px}\n.dp-desc .dp-closer .dp-ship{display:inline-flex;flex-wrap:wrap;gap:8px 20px;justify-content:center;\n  margin-top:20px;font-size:13.5px;color:#DCC2A2;letter-spacing:.02em}\n.dp-desc .dp-closer .dp-ship span{display:flex;align-items:center;gap:7px}\n.dp-desc .dp-closer .dp-ship i{width:5px;height:5px;border-radius:50%;background:#E8D3B6;display:block}\n\n\/* =========== CONTAINER QUERIES — measure the column, not the screen =========== *\/\n@container dpdesc (min-width:520px){\n  .dp-desc .dp-bens,.dp-desc .dp-split,.dp-desc .dp-specs,\n  .dp-desc .dp-vs,.dp-desc .dp-guar,.dp-desc .dp-quotes{grid-template-columns:1fr 1fr}\n  .dp-desc .dp-spec{border-right:1px solid var(--line);padding:22px 18px}\n  .dp-desc .dp-spec:nth-child(2n){border-right:0}\n  .dp-desc .dp-spec:nth-child(-n+2){border-bottom:1px solid var(--line)}\n  .dp-desc .dp-spec:nth-last-child(-n+2){border-bottom:0}\n  .dp-desc .dp-half{min-height:250px;padding:30px 28px}\n  .dp-desc .dp-prob{padding:34px 32px}\n  .dp-desc .dp-prob ul{grid-template-columns:1fr 1fr;gap:14px 26px}\n  .dp-desc .dp-closer{padding:46px 40px}\n  .dp-desc .dp-closer h2{max-width:24ch}\n  .dp-desc .dp-sec{margin-bottom:54px}\n  .dp-desc summary{font-size:18px}\n}\n@container dpdesc (min-width:760px){\n  .dp-desc .dp-bens{grid-template-columns:repeat(3,1fr)}\n  .dp-desc .dp-steps{grid-template-columns:repeat(3,1fr);gap:30px}\n  .dp-desc .dp-specs{grid-template-columns:repeat(4,1fr)}\n  .dp-desc .dp-quotes{grid-template-columns:repeat(3,1fr)}\n  .dp-desc .dp-guar{grid-template-columns:repeat(3,1fr)}\n  .dp-desc .dp-spec{border-right:1px solid var(--line);border-bottom:0}\n  .dp-desc .dp-spec:nth-child(2n){border-right:1px solid var(--line)}\n  .dp-desc .dp-spec:last-child{border-right:0}\n  .dp-desc .dp-intro{grid-template-columns:1.05fr 1fr;gap:34px;align-items:start}\n  .dp-desc .dp-sec{margin-bottom:66px}\n  .dp-desc .dp-half{min-height:290px;padding:36px 32px}\n  .dp-desc .dp-prob{padding:44px 42px}\n  .dp-desc .dp-closer{padding:58px 48px}\n}\n@supports not (container-type: inline-size){\n  @media(min-width:1100px){\n    .dp-desc .dp-bens,.dp-desc .dp-split,.dp-desc .dp-specs,\n    .dp-desc .dp-vs,.dp-desc .dp-guar,.dp-desc .dp-quotes{grid-template-columns:1fr 1fr}\n  }\n}\n\n\/* ---------- scroll animation, no JavaScript ---------- *\/\n@supports (animation-timeline: view()){\n  @media(prefers-reduced-motion: no-preference){\n    .dp-desc .dp-r{animation:dpIn .9s var(--e) both;animation-timeline:view();\n      animation-range:entry 5% cover 30%}\n    .dp-desc .dp-bens .dp-ben:nth-child(2n){animation-range:entry 2% cover 33%}\n    .dp-desc .dp-bens .dp-ben:nth-child(3n){animation-range:entry 0% cover 36%}\n    .dp-desc .dp-steps .dp-step:nth-child(2),\n    .dp-desc .dp-quotes .dp-quote:nth-child(2){animation-range:entry 2% cover 34%}\n    .dp-desc .dp-steps .dp-step:nth-child(3),\n    .dp-desc .dp-quotes .dp-quote:nth-child(3){animation-range:entry 0% cover 38%}\n    .dp-desc .dp-specs .dp-spec:nth-child(2){animation-range:entry 3% cover 33%}\n    .dp-desc .dp-specs .dp-spec:nth-child(3){animation-range:entry 1% cover 36%}\n    .dp-desc .dp-specs .dp-spec:nth-child(4){animation-range:entry -1% cover 39%}\n    .dp-desc .dp-lint{animation:dpLint 1.1s var(--e) both;animation-timeline:view();\n      animation-range:entry 10% cover 48%}\n    .dp-desc .dp-fur span{animation:dpDrop .9s var(--e) both;animation-timeline:view();\n      animation-range:entry 10% cover 40%}\n    .dp-desc .dp-fur span:nth-child(2){animation-range:entry 5% cover 45%}\n    .dp-desc .dp-fur span:nth-child(3){animation-range:entry 0% cover 50%}\n    .dp-desc .dp-fur span:nth-child(4){animation-range:entry -5% cover 55%}\n  }\n}\n@keyframes dpIn{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}\n@keyframes dpLint{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}\n@keyframes dpDrop{from{opacity:0;transform:translateY(22px)}to{opacity:.5;transform:translateY(0) rotate(var(--r,0deg))}}\n\u003c\/style\u003e\n\n\u003cdiv class=\"dp-intro dp-r\"\u003e\n  \u003cp class=\"dp-lede\"\u003eSay goodbye to pet hair in seconds.\u003c\/p\u003e\n  \u003cdiv class=\"dp-intro-body\"\u003e\n    \u003cp\u003eLove your furry best friend, but not the hair they leave behind? The TrailPets™ HairHero is the quick, reusable way to lift stubborn pet hair, lint and fluff off almost any fabric.\u003c\/p\u003e\n    \u003cp\u003eTwo clever cleaning surfaces work together to grab loose hair and roll it neatly toward the centre — no sticky tape, no refills, no hassle.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"dp-mq\"\u003e\n  \u003cdiv class=\"dp-track\"\u003e\n    \u003cspan\u003eNo sticky tape \u003ci\u003e\u003c\/i\u003e No refills \u003ci\u003e\u003c\/i\u003e 100% reusable \u003ci\u003e\u003c\/i\u003e Self-collecting \u003ci\u003e\u003c\/i\u003e Works on any fabric \u003ci\u003e\u003c\/i\u003e Dog \u0026amp; cat hair \u003ci\u003e\u003c\/i\u003e\u003c\/span\u003e\n    \u003cspan\u003eNo sticky tape \u003ci\u003e\u003c\/i\u003e No refills \u003ci\u003e\u003c\/i\u003e 100% reusable \u003ci\u003e\u003c\/i\u003e Self-collecting \u003ci\u003e\u003c\/i\u003e Works on any fabric \u003ci\u003e\u003c\/i\u003e Dog \u0026amp; cat hair \u003ci\u003e\u003c\/i\u003e\u003c\/span\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"dp-prob dp-r\"\u003e\n  \u003cp class=\"dp-eb\"\u003eSound familiar?\u003c\/p\u003e\n  \u003ch2\u003eYour furniture is wearing their coat too.\u003c\/h2\u003e\n  \u003cul\u003e\n    \u003cli\u003e\n\u003csvg width=\"17\" height=\"17\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M18 6 6 18M6 6l12 12\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003eLint rollers that run out halfway through the couch.\u003c\/span\u003e\n\u003c\/li\u003e\n    \u003cli\u003e\n\u003csvg width=\"17\" height=\"17\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M18 6 6 18M6 6l12 12\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003eBuying refill after refill for something you use every day.\u003c\/span\u003e\n\u003c\/li\u003e\n    \u003cli\u003e\n\u003csvg width=\"17\" height=\"17\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M18 6 6 18M6 6l12 12\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003eHair that clings to the fabric no matter how much you brush.\u003c\/span\u003e\n\u003c\/li\u003e\n    \u003cli\u003e\n\u003csvg width=\"17\" height=\"17\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M18 6 6 18M6 6l12 12\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003eWearing a jumper out the door still covered in fluff.\u003c\/span\u003e\n\u003c\/li\u003e\n  \u003c\/ul\u003e\n  \u003cp class=\"dp-turn\"\u003eOne swipe gathers it all into the centre — then you lift it off and you're done.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"dp-sec\"\u003e\n  \u003cp class=\"dp-eb dp-r\"\u003eWhy pet parents love it\u003c\/p\u003e\n  \u003ch2 class=\"dp-r\"\u003eThe lint roller you only buy once.\u003c\/h2\u003e\n  \u003cdiv class=\"dp-bens\"\u003e\n    \u003cdiv class=\"dp-ben dp-r\"\u003e\n      \u003cspan class=\"dp-ico\"\u003e\u003csvg width=\"21\" height=\"21\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.9\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003crect x=\"3\" y=\"4\" width=\"8\" height=\"16\" rx=\"1.5\"\u003e\u003c\/rect\u003e\u003crect x=\"13\" y=\"4\" width=\"8\" height=\"16\" rx=\"1.5\"\u003e\u003c\/rect\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003ch3\u003eDual-sided cleaning power\u003c\/h3\u003e\n      \u003cp\u003eTwo specially designed fabric textures work together to lift and trap pet hair with every swipe.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"dp-ben dp-r\"\u003e\n      \u003cspan class=\"dp-ico\"\u003e\u003csvg width=\"21\" height=\"21\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.9\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M3.5 12a8.5 8.5 0 1 1 8.5 8.5\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 8.5A3.5 3.5 0 1 0 15.5 12\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003ch3\u003eSelf-collecting design\u003c\/h3\u003e\n      \u003cp\u003eHair rolls neatly into the centre of the brush, so it's quick and easy to pull out and bin.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"dp-ben dp-r\"\u003e\n      \u003cspan class=\"dp-ico\"\u003e\u003csvg width=\"21\" height=\"21\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.9\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M3.5 12a8.5 8.5 0 0 1 14.6-5.9M20.5 12a8.5 8.5 0 0 1-14.6 5.9\"\u003e\u003c\/path\u003e\u003cpath d=\"M18 2.5v4h-4M6 21.5v-4h4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003ch3\u003e100% reusable\u003c\/h3\u003e\n      \u003cp\u003eForget expensive refills. Use it again and again — cleaner home, less waste.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"dp-ben dp-r\"\u003e\n      \u003cspan class=\"dp-ico\"\u003e\u003csvg width=\"21\" height=\"21\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.9\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M3 11l9-7 9 7\"\u003e\u003c\/path\u003e\u003cpath d=\"M5 10v9h14v-9\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 19v-5h6v5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003ch3\u003eWorks on almost any fabric\u003c\/h3\u003e\n      \u003cp\u003eSofas, beds, blankets, clothing, car seats, pet beds, cushions, rugs and upholstery.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"dp-ben dp-r\"\u003e\n      \u003cspan class=\"dp-ico\"\u003e\u003csvg width=\"21\" height=\"21\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.9\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M5 21V7l7-4 7 4v14\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 21v-5h6v5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003ch3\u003eLightweight \u0026amp; portable\u003c\/h3\u003e\n      \u003cp\u003eKeep one at home, one in the car and one in your bag for quick cleanups anywhere.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"dp-ben dp-r\"\u003e\n      \u003cspan class=\"dp-ico\"\u003e\u003csvg width=\"21\" height=\"21\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.9\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M12 21s-7-4.3-7-9.5A4.5 4.5 0 0 1 12 7a4.5 4.5 0 0 1 7 4.5C19 16.7 12 21 12 21z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003ch3\u003eDog hair, cat hair, all of it\u003c\/h3\u003e\n      \u003cp\u003eFrom short bristly fur to long fluff, it lifts what your vacuum and your hands leave behind.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"dp-sec\"\u003e\n  \u003cp class=\"dp-eb dp-r\"\u003eTwo textures, one job\u003c\/p\u003e\n  \u003ch2 class=\"dp-r\"\u003eLift it, then roll it in.\u003c\/h2\u003e\n  \u003cdiv class=\"dp-split\"\u003e\n    \u003cdiv class=\"dp-half dp-r\"\u003e\n      \u003cdiv class=\"dp-lint\"\u003e\u003c\/div\u003e\n      \u003ch3\u003eThe two surfaces\u003c\/h3\u003e\n      \u003cp\u003eEach side has its own texture — one lifts the hair off the fabric, the other guides it inward as you swipe.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"dp-half dp-r\"\u003e\n      \u003cdiv class=\"dp-fur\"\u003e\n        \u003cspan style=\"top:16%;left:14%;--r:-14deg\"\u003e\u003csvg width=\"24\" height=\"24\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M4 12c4-3 12-3 16 0\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n        \u003cspan style=\"top:26%;left:54%;--r:12deg\"\u003e\u003csvg width=\"22\" height=\"22\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M4 12c4-3 12-3 16 0\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n        \u003cspan style=\"top:46%;left:28%;--r:-6deg\"\u003e\u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M4 12c4-3 12-3 16 0\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n        \u003cspan style=\"top:12%;left:76%;--r:20deg\"\u003e\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M4 12c4-3 12-3 16 0\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003ch3\u003eThe centre catch\u003c\/h3\u003e\n      \u003cp\u003eAll that loose hair gathers into one neat clump in the middle — lift it out in one piece and drop it in the bin.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"dp-sec\"\u003e\n  \u003cp class=\"dp-eb dp-r\"\u003eHow it works\u003c\/p\u003e\n  \u003ch2 class=\"dp-r\"\u003eSwipe, gather, lift.\u003c\/h2\u003e\n  \u003cdiv class=\"dp-steps\"\u003e\n    \u003cdiv class=\"dp-step dp-r\"\u003e\n\u003cspan class=\"dp-n\"\u003e1\u003c\/span\u003e\u003ch3\u003eSwipe the brush\u003c\/h3\u003e\n\u003cp\u003eRun it across the fabric — the sofa, the car seat, the jumper you're about to wear.\u003c\/p\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"dp-step dp-r\"\u003e\n\u003cspan class=\"dp-n\"\u003e2\u003c\/span\u003e\u003ch3\u003eWatch it collect\u003c\/h3\u003e\n\u003cp\u003eThe hair rolls toward the centre of the brush as you go, gathering into one clump.\u003c\/p\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"dp-step dp-r\"\u003e\n\u003cspan class=\"dp-n\"\u003e3\u003c\/span\u003e\u003ch3\u003eLift and repeat\u003c\/h3\u003e\n\u003cp\u003ePull out the gathered hair, bin it, and carry on. No tape to peel, nothing to replace.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"dp-sec\"\u003e\n  \u003cp class=\"dp-eb dp-r\"\u003eThe difference\u003c\/p\u003e\n  \u003ch2 class=\"dp-r\"\u003eA roll of tape, or a brush for life.\u003c\/h2\u003e\n  \u003cdiv class=\"dp-vs\"\u003e\n    \u003cdiv class=\"dp-col dp-col--old dp-r\"\u003e\n      \u003ch3\u003eThe usual way\u003c\/h3\u003e\n      \u003cul\u003e\n        \u003cli\u003e\n\u003csvg width=\"16\" height=\"16\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M18 6 6 18M6 6l12 12\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003eSticky sheets that run out mid-clean\u003c\/span\u003e\n\u003c\/li\u003e\n        \u003cli\u003e\n\u003csvg width=\"16\" height=\"16\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M18 6 6 18M6 6l12 12\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003eBuying refill after refill, forever\u003c\/span\u003e\n\u003c\/li\u003e\n        \u003cli\u003e\n\u003csvg width=\"16\" height=\"16\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M18 6 6 18M6 6l12 12\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003ePiles of used sticky sheets in the bin\u003c\/span\u003e\n\u003c\/li\u003e\n        \u003cli\u003e\n\u003csvg width=\"16\" height=\"16\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M18 6 6 18M6 6l12 12\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003eLoses its stick and stops picking up\u003c\/span\u003e\n\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"dp-col dp-col--new dp-r\"\u003e\n      \u003cspan class=\"dp-pill\"\u003eThe TrailPets way\u003c\/span\u003e\n      \u003ch3\u003eHairHero\u003c\/h3\u003e\n      \u003cul\u003e\n        \u003cli\u003e\n\u003csvg width=\"16\" height=\"16\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"m4 12.5 5 5L20 7\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003eNever runs out — no sheets to replace\u003c\/span\u003e\n\u003c\/li\u003e\n        \u003cli\u003e\n\u003csvg width=\"16\" height=\"16\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"m4 12.5 5 5L20 7\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003eBuy it once and reuse it again and again\u003c\/span\u003e\n\u003c\/li\u003e\n        \u003cli\u003e\n\u003csvg width=\"16\" height=\"16\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"m4 12.5 5 5L20 7\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003eJust lift the hair out and bin it\u003c\/span\u003e\n\u003c\/li\u003e\n        \u003cli\u003e\n\u003csvg width=\"16\" height=\"16\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"m4 12.5 5 5L20 7\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003eGrips just as well swipe after swipe\u003c\/span\u003e\n\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"dp-sec\"\u003e\n  \u003cdiv class=\"dp-guar dp-r\"\u003e\n    \u003cdiv\u003e\n      \u003csvg width=\"21\" height=\"21\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.9\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M12 2.8 4.5 6v6c0 4.6 3.2 8 7.5 9.2 4.3-1.2 7.5-4.6 7.5-9.2V6z\"\u003e\u003c\/path\u003e\u003cpath d=\"m9 12 2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cspan\u003e\u003cb\u003eFur-free promise\u003c\/b\u003e\u003csmall\u003eIf it doesn't lift the hair, message us and we'll make it right.\u003c\/small\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n    \u003cdiv\u003e\n      \u003csvg width=\"21\" height=\"21\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.9\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003crect x=\"1.5\" y=\"6\" width=\"14\" height=\"11\" rx=\"1.6\"\u003e\u003c\/rect\u003e\u003cpath d=\"M15.5 10h3.4l3.1 3.2V17h-6.5z\"\u003e\u003c\/path\u003e\u003ccircle cx=\"6\" cy=\"18.5\" r=\"1.9\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"18\" cy=\"18.5\" r=\"1.9\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\n      \u003cspan\u003e\u003cb\u003eTracked to your door\u003c\/b\u003e\u003csmall\u003eAramex delivery countrywide in 8–11 days. Free over R500.\u003c\/small\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n    \u003cdiv\u003e\n      \u003csvg width=\"21\" height=\"21\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.9\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M21 11.5a8.4 8.4 0 0 1-9 8.4L3 21l1.1-3.2A8.4 8.4 0 1 1 21 11.5z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cspan\u003e\u003cb\u003eA human replies\u003c\/b\u003e\u003csmall\u003eQuestions before or after you order — we answer them ourselves.\u003c\/small\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"dp-sec\"\u003e\n  \u003cp class=\"dp-eb dp-r\"\u003eBefore you buy\u003c\/p\u003e\n  \u003ch2 class=\"dp-r\"\u003eThe questions we get asked most.\u003c\/h2\u003e\n  \u003cdiv class=\"dp-faq dp-r\"\u003e\n    \u003cdetails\u003e\n      \u003csummary\u003eHow do I empty it?\u003c\/summary\u003e\n      \u003cp\u003eThe hair gathers into one clump in the centre of the brush. Just pull it out with your fingers and drop it in the bin — no tape to peel, no cartridge to swap.\u003c\/p\u003e\n    \u003c\/details\u003e\n    \u003cdetails\u003e\n      \u003csummary\u003eWill it damage delicate fabric?\u003c\/summary\u003e\n      \u003cp\u003eIt's designed to glide over fabric and lift hair, not snag it. For anything very delicate, test a small hidden area first and use light strokes.\u003c\/p\u003e\n    \u003c\/details\u003e\n    \u003cdetails\u003e\n      \u003csummary\u003eDoes it really work without any tape or refills?\u003c\/summary\u003e\n      \u003cp\u003eYes — that's the whole point. The two textured surfaces do the work on their own, so there's nothing to run out, nothing to buy again, and nothing to throw away but the hair itself.\u003c\/p\u003e\n    \u003c\/details\u003e\n    \u003cdetails\u003e\n      \u003csummary\u003eDoes it work on both dog and cat hair?\u003c\/summary\u003e\n      \u003cp\u003eIt does — from short, bristly fur to longer, finer hair. It also handles lint and general fluff on clothing and upholstery.\u003c\/p\u003e\n    \u003c\/details\u003e\n    \u003cdetails\u003e\n      \u003csummary\u003eHow do I clean the brush itself?\u003c\/summary\u003e\n      \u003cp\u003ePull out the collected hair after each use. Every so often, wipe the surfaces down so they keep gripping well, and it's ready to go again.\u003c\/p\u003e\n    \u003c\/details\u003e\n    \u003cdetails\u003e\n      \u003csummary\u003eHow long does delivery take?\u003c\/summary\u003e\n      \u003cp\u003eAramex delivers countrywide in 8–11 days with tracking. Orders over R500 ship free, and everything is priced in rands with no conversion at checkout.\u003c\/p\u003e\n    \u003c\/details\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"dp-sec\"\u003e\n  \u003cp class=\"dp-eb dp-r\"\u003eFrom customers\u003c\/p\u003e\n  \u003ch2 class=\"dp-r\"\u003eWhat people tell us.\u003c\/h2\u003e\n  \u003cdiv class=\"dp-quotes\"\u003e\n    \u003cdiv class=\"dp-quote dp-r\"\u003e\n      \u003cdiv class=\"dp-stars\"\u003e★★★★★\u003c\/div\u003e\n      \u003cp\u003e[Replace with a real review — one about ditching lint roller refills works well here.]\u003c\/p\u003e\n      Name, City\n    \u003c\/div\u003e\n    \u003cdiv class=\"dp-quote dp-r\"\u003e\n      \u003cdiv class=\"dp-stars\"\u003e★★★★★\u003c\/div\u003e\n      \u003cp\u003e[Replace with a real review — ideally one about the couch or car seats.]\u003c\/p\u003e\n      Name, City\n    \u003c\/div\u003e\n    \u003cdiv class=\"dp-quote dp-r\"\u003e\n      \u003cdiv class=\"dp-stars\"\u003e★★★★★\u003c\/div\u003e\n      \u003cp\u003e[Replace with a real review — one about how satisfying the hair collecting is.]\u003c\/p\u003e\n      Name, City\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"dp-sec\"\u003e\n  \u003cp class=\"dp-eb dp-r\"\u003eAt a glance\u003c\/p\u003e\n  \u003cdiv class=\"dp-specs\"\u003e\n    \u003cdiv class=\"dp-spec dp-r\"\u003e\n\u003cb\u003eDual-sided\u003c\/b\u003e\u003csmall\u003eTwo textures lift and trap hair together.\u003c\/small\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"dp-spec dp-r\"\u003e\n\u003cb\u003eSelf-collecting\u003c\/b\u003e\u003csmall\u003eHair rolls into the centre to lift out.\u003c\/small\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"dp-spec dp-r\"\u003e\n\u003cb\u003e100% reusable\u003c\/b\u003e\u003csmall\u003eNo tape, no refills, ever.\u003c\/small\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"dp-spec dp-r\"\u003e\n\u003cb\u003ePortable\u003c\/b\u003e\u003csmall\u003eHome, car or bag — clean up anywhere.\u003c\/small\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"dp-closer dp-r\"\u003e\n  \u003ch2\u003eBecause life is better with pets — even if your furniture disagrees.\u003c\/h2\u003e\n  \u003cp\u003eAdd it to your cart above and enjoy a cleaner home with less effort.\u003c\/p\u003e\n  \u003cspan class=\"dp-ship\"\u003e\n    \u003cspan\u003e\u003ci\u003e\u003c\/i\u003e Free shipping over R500\u003c\/span\u003e\n    \u003cspan\u003e\u003ci\u003e\u003c\/i\u003e Aramex, 8–11 days\u003c\/span\u003e\n    \u003cspan\u003e\u003ci\u003e\u003c\/i\u003e Priced in rands\u003c\/span\u003e\n  \u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"TrailPets","offers":[{"title":"Default Title","offer_id":48937428222207,"sku":null,"price":199.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0828\/6820\/7871\/files\/two-brushes-one-laying-flat-studio-shot.png?v=1785845512","url":"https:\/\/trailpets.co.za\/products\/trailpets%e2%84%a2-hairhero","provider":"TrailPets","version":"1.0","type":"link"}