{"product_id":"pet-spree™-aqualeash","title":"Pet Spree™ AquaLeash","description":"\u003c!-- Pet Spree™ AquaLeash — Mobile-Optimised Shopify Product Description --\u003e\n\u003csection class=\"psal\" aria-label=\"Pet Spree AquaLeash product information\"\u003e\n  \u003cstyle\u003e\n    .psal {\n      --psal-navy: #102a43;\n      --psal-navy-deep: #071b2e;\n      --psal-navy-soft: #173f62;\n      --psal-gold: #c89b3c;\n      --psal-gold-light: #f6e9ca;\n      --psal-cream: #fcfaf5;\n      --psal-white: #ffffff;\n      --psal-ink: #243443;\n      --psal-muted: #687785;\n      box-sizing: border-box;\n      width: 100%;\n      max-width: 920px;\n      margin: 0 auto;\n      color: var(--psal-ink);\n      font-family: inherit;\n      line-height: 1.55;\n      -webkit-font-smoothing: antialiased;\n    }\n\n    .psal *,\n    .psal *::before,\n    .psal *::after {\n      box-sizing: inherit;\n    }\n\n    .psal__hero {\n      position: relative;\n      isolation: isolate;\n      overflow: hidden;\n      padding: 36px 20px 34px;\n      border: 1px solid rgba(200, 155, 60, 0.18);\n      border-radius: 22px;\n      background:\n        radial-gradient(circle at 85% 15%, rgba(200, 155, 60, 0.18), transparent 28%),\n        linear-gradient(145deg, var(--psal-navy-deep), var(--psal-navy) 62%, var(--psal-navy-soft));\n      color: var(--psal-white);\n      text-align: center;\n      box-shadow: 0 18px 48px rgba(7, 27, 46, 0.18);\n      animation: psal-reveal 700ms cubic-bezier(0.22, 1, 0.36, 1) both;\n    }\n\n    .psal__hero::before {\n      content: \"\";\n      position: absolute;\n      z-index: -1;\n      top: -100px;\n      right: -90px;\n      width: 230px;\n      height: 230px;\n      border: 1px solid rgba(200, 155, 60, 0.2);\n      border-radius: 50%;\n      box-shadow:\n        0 0 0 26px rgba(200, 155, 60, 0.045),\n        0 0 0 58px rgba(200, 155, 60, 0.025);\n      animation: psal-orbit 9s ease-in-out infinite;\n    }\n\n    .psal__hero::after {\n      content: \"\";\n      position: absolute;\n      inset: 0;\n      z-index: -1;\n      background: linear-gradient(110deg, transparent 25%, rgba(255, 255, 255, 0.08) 45%, transparent 65%);\n      transform: translateX(-120%);\n      animation: psal-sheen 5.5s ease-in-out 1.2s infinite;\n    }\n\n    .psal__eyebrow {\n      display: inline-flex;\n      align-items: center;\n      gap: 8px;\n      margin-bottom: 13px;\n      padding: 7px 12px;\n      border: 1px solid rgba(200, 155, 60, 0.34);\n      border-radius: 999px;\n      background: rgba(7, 27, 46, 0.42);\n      color: var(--psal-gold);\n      font-size: 11px;\n      font-weight: 800;\n      letter-spacing: 0.14em;\n      line-height: 1;\n      text-transform: uppercase;\n      animation: psal-fade-up 650ms 140ms both;\n    }\n\n    .psal__eyebrow::before {\n      content: \"\";\n      width: 6px;\n      height: 6px;\n      border-radius: 50%;\n      background: var(--psal-gold);\n      box-shadow: 0 0 0 5px rgba(200, 155, 60, 0.12);\n      animation: psal-pulse 2.8s ease-in-out infinite;\n    }\n\n    .psal h2,\n    .psal h3,\n    .psal p {\n      margin-top: 0;\n    }\n\n    .psal__hero h2 {\n      position: relative;\n      margin: 0 auto 13px;\n      color: var(--psal-white);\n      font-size: clamp(30px, 9vw, 47px);\n      font-weight: 800;\n      letter-spacing: -0.035em;\n      line-height: 1.08;\n      animation: psal-fade-up 700ms 220ms both;\n    }\n\n    .psal__hero h2 span {\n      color: var(--psal-gold);\n    }\n\n    .psal__intro {\n      max-width: 690px;\n      margin: 0 auto;\n      color: rgba(255, 255, 255, 0.84);\n      font-size: 15px;\n      line-height: 1.65;\n      animation: psal-fade-up 700ms 300ms both;\n    }\n\n    .psal__chips {\n      display: flex;\n      flex-wrap: wrap;\n      justify-content: center;\n      gap: 7px;\n      margin-top: 20px;\n      animation: psal-fade-up 700ms 380ms both;\n    }\n\n    .psal__chip {\n      padding: 7px 10px;\n      border: 1px solid rgba(255, 255, 255, 0.12);\n      border-radius: 999px;\n      background: rgba(255, 255, 255, 0.07);\n      color: rgba(255, 255, 255, 0.88);\n      font-size: 11px;\n      font-weight: 700;\n      letter-spacing: 0.02em;\n    }\n\n    .psal__features {\n      padding: 34px 2px 0;\n    }\n\n    .psal__section-heading {\n      margin-bottom: 20px;\n      text-align: center;\n    }\n\n    .psal__section-heading h2 {\n      margin-bottom: 8px;\n      color: var(--psal-navy);\n      font-size: 24px;\n      font-weight: 800;\n      letter-spacing: -0.025em;\n      line-height: 1.2;\n    }\n\n    .psal__gold-line {\n      position: relative;\n      overflow: hidden;\n      width: 54px;\n      height: 3px;\n      margin: 0 auto;\n      border-radius: 999px;\n      background: rgba(200, 155, 60, 0.22);\n    }\n\n    .psal__gold-line::after {\n      content: \"\";\n      position: absolute;\n      inset: 0;\n      background: linear-gradient(90deg, transparent, var(--psal-gold), transparent);\n      animation: psal-line 2.6s ease-in-out infinite;\n    }\n\n    .psal__grid {\n      display: grid;\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      gap: 10px;\n    }\n\n    .psal__card {\n      position: relative;\n      overflow: hidden;\n      min-height: 146px;\n      padding: 17px 14px 16px;\n      border: 1px solid rgba(16, 42, 67, 0.085);\n      border-radius: 17px;\n      background: linear-gradient(150deg, var(--psal-white), var(--psal-cream));\n      box-shadow: 0 8px 24px rgba(16, 42, 67, 0.07);\n      opacity: 0;\n      transform: translateY(14px);\n      animation: psal-card-in 600ms cubic-bezier(0.22, 1, 0.36, 1) forwards;\n      transition: transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease;\n    }\n\n    .psal__card:nth-child(1) { animation-delay: 420ms; }\n    .psal__card:nth-child(2) { animation-delay: 500ms; }\n    .psal__card:nth-child(3) { animation-delay: 580ms; }\n    .psal__card:nth-child(4) { animation-delay: 660ms; }\n    .psal__card:nth-child(5) { animation-delay: 740ms; }\n    .psal__card:nth-child(6) { animation-delay: 820ms; }\n\n    .psal__card::after {\n      content: \"\";\n      position: absolute;\n      right: -28px;\n      bottom: -28px;\n      width: 68px;\n      height: 68px;\n      border-radius: 50%;\n      background: rgba(200, 155, 60, 0.065);\n      transition: transform 280ms ease;\n    }\n\n    .psal__card:hover,\n    .psal__card:focus-within {\n      transform: translateY(-4px);\n      border-color: rgba(200, 155, 60, 0.32);\n      box-shadow: 0 14px 32px rgba(16, 42, 67, 0.11);\n    }\n\n    .psal__card:hover::after {\n      transform: scale(1.35);\n    }\n\n    .psal__icon {\n      display: grid;\n      width: 38px;\n      height: 38px;\n      margin-bottom: 11px;\n      border: 1px solid rgba(200, 155, 60, 0.22);\n      border-radius: 12px;\n      background: var(--psal-gold-light);\n      color: var(--psal-navy);\n      place-items: center;\n      transition: transform 240ms ease, background 240ms ease;\n    }\n\n    .psal__card:hover .psal__icon {\n      transform: translateY(-2px) rotate(-3deg);\n      background: #f3dfb0;\n    }\n\n    .psal__icon svg {\n      width: 20px;\n      height: 20px;\n      fill: none;\n      stroke: currentColor;\n      stroke-width: 1.8;\n      stroke-linecap: round;\n      stroke-linejoin: round;\n    }\n\n    .psal__card h3 {\n      margin-bottom: 4px;\n      color: var(--psal-navy);\n      font-size: 14px;\n      font-weight: 800;\n      line-height: 1.25;\n    }\n\n    .psal__card p {\n      position: relative;\n      z-index: 1;\n      margin-bottom: 0;\n      color: var(--psal-muted);\n      font-size: 12px;\n      line-height: 1.45;\n    }\n\n    .psal__closing {\n      position: relative;\n      overflow: hidden;\n      margin-top: 26px;\n      padding: 27px 20px;\n      border: 1px solid rgba(200, 155, 60, 0.25);\n      border-radius: 19px;\n      background: linear-gradient(135deg, var(--psal-gold-light), var(--psal-cream));\n      text-align: center;\n      box-shadow: 0 10px 28px rgba(16, 42, 67, 0.065);\n      animation: psal-fade-up 700ms 860ms both;\n    }\n\n    .psal__closing::before,\n    .psal__closing::after {\n      content: \"\";\n      position: absolute;\n      width: 80px;\n      height: 80px;\n      border: 1px solid rgba(200, 155, 60, 0.16);\n      border-radius: 50%;\n    }\n\n    .psal__closing::before {\n      top: -48px;\n      left: -38px;\n    }\n\n    .psal__closing::after {\n      right: -42px;\n      bottom: -50px;\n    }\n\n    .psal__closing p {\n      position: relative;\n      z-index: 1;\n      max-width: 630px;\n      margin: 0 auto 12px;\n      color: var(--psal-ink);\n      font-size: 14px;\n    }\n\n    .psal__closing strong {\n      position: relative;\n      z-index: 1;\n      display: block;\n      color: var(--psal-navy);\n      font-size: 16px;\n      letter-spacing: 0.01em;\n    }\n\n    .psal__safety {\n      display: flex;\n      align-items: flex-start;\n      gap: 8px;\n      margin: 14px 5px 0;\n      padding: 11px 12px;\n      border-radius: 11px;\n      background: rgba(16, 42, 67, 0.045);\n      color: var(--psal-muted);\n      font-size: 11px;\n      line-height: 1.45;\n      animation: psal-fade-up 650ms 940ms both;\n    }\n\n    .psal__safety svg {\n      flex: 0 0 auto;\n      width: 15px;\n      height: 15px;\n      margin-top: 1px;\n      fill: none;\n      stroke: var(--psal-gold);\n      stroke-width: 2;\n      stroke-linecap: round;\n      stroke-linejoin: round;\n    }\n\n    @keyframes psal-reveal {\n      from { opacity: 0; transform: translateY(12px) scale(0.99); }\n      to { opacity: 1; transform: translateY(0) scale(1); }\n    }\n\n    @keyframes psal-fade-up {\n      from { opacity: 0; transform: translateY(10px); }\n      to { opacity: 1; transform: translateY(0); }\n    }\n\n    @keyframes psal-card-in {\n      to { opacity: 1; transform: translateY(0); }\n    }\n\n    @keyframes psal-sheen {\n      0%, 64% { transform: translateX(-120%); }\n      86%, 100% { transform: translateX(120%); }\n    }\n\n    @keyframes psal-pulse {\n      0%, 100% { box-shadow: 0 0 0 5px rgba(200, 155, 60, 0.1); }\n      50% { box-shadow: 0 0 0 8px rgba(200, 155, 60, 0.025); }\n    }\n\n    @keyframes psal-orbit {\n      0%, 100% { transform: translate(0, 0) rotate(0deg); }\n      50% { transform: translate(-8px, 7px) rotate(8deg); }\n    }\n\n    @keyframes psal-line {\n      from { transform: translateX(-110%); }\n      to { transform: translateX(110%); }\n    }\n\n    @media (min-width: 700px) {\n      .psal__hero {\n        padding: 48px 36px 46px;\n        border-radius: 26px;\n      }\n\n      .psal__intro {\n        font-size: 16px;\n      }\n\n      .psal__features {\n        padding-top: 42px;\n      }\n\n      .psal__section-heading h2 {\n        font-size: 28px;\n      }\n\n      .psal__grid {\n        grid-template-columns: repeat(3, minmax(0, 1fr));\n        gap: 14px;\n      }\n\n      .psal__card {\n        min-height: 165px;\n        padding: 21px 19px;\n      }\n\n      .psal__card h3 {\n        font-size: 15px;\n      }\n\n      .psal__card p {\n        font-size: 13px;\n      }\n\n      .psal__closing {\n        margin-top: 34px;\n        padding: 32px 28px;\n      }\n\n      .psal__closing p {\n        font-size: 15px;\n      }\n\n      .psal__closing strong {\n        font-size: 18px;\n      }\n    }\n\n    @media (max-width: 370px) {\n      .psal__grid {\n        grid-template-columns: 1fr;\n      }\n\n      .psal__card {\n        min-height: 0;\n      }\n    }\n\n    @media (prefers-reduced-motion: reduce) {\n      .psal *,\n      .psal *::before,\n      .psal *::after {\n        scroll-behavior: auto !important;\n        animation-duration: 0.01ms !important;\n        animation-iteration-count: 1 !important;\n        transition-duration: 0.01ms !important;\n      }\n    }\n  \u003c\/style\u003e\n\n  \u003cdiv class=\"psal__hero\"\u003e\n    \u003cspan class=\"psal__eyebrow\"\u003ePet Spree™ AquaLeash\u003c\/span\u003e\n    \u003ch2\u003eBath Time.\u003cbr\u003e\u003cspan\u003eWithout the Battle.\u003c\/span\u003e\n\u003c\/h2\u003e\n    \u003cp class=\"psal__intro\"\u003e\n      The \u003cstrong\u003ePet Spree™ AquaLeash\u003c\/strong\u003e attaches to smooth bathroom surfaces to help keep your dog in one place while you wash—so you can spend less time chasing and more time getting them clean.\n    \u003c\/p\u003e\n    \u003cdiv class=\"psal__chips\" aria-label=\"Product highlights\"\u003e\n      \u003cspan class=\"psal__chip\"\u003eStrong Suction\u003c\/span\u003e\n      \u003cspan class=\"psal__chip\"\u003eAdjustable\u003c\/span\u003e\n      \u003cspan class=\"psal__chip\"\u003eReusable\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"psal__features\"\u003e\n    \u003cdiv class=\"psal__section-heading\"\u003e\n      \u003ch2\u003eMore Control. Less Chasing.\u003c\/h2\u003e\n      \u003cdiv class=\"psal__gold-line\" aria-hidden=\"true\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"psal__grid\"\u003e\n      \u003carticle class=\"psal__card\"\u003e\n        \u003cspan class=\"psal__icon\" aria-hidden=\"true\"\u003e\n          \u003csvg viewbox=\"0 0 24 24\"\u003e\u003ccircle cx=\"12\" cy=\"10\" r=\"7\"\u003e\u003c\/circle\u003e\u003cpath d=\"M5 10v5c0 3 3 5 7 5s7-2 7-5v-5M8 10c1 1.5 2.3 2 4 2s3-.5 4-2\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n        \u003c\/span\u003e\n        \u003ch3\u003eStrong Suction Cup\u003c\/h3\u003e\n        \u003cp\u003eGrips clean, smooth and non-porous surfaces for a steadier bath setup.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"psal__card\"\u003e\n        \u003cspan class=\"psal__icon\" aria-hidden=\"true\"\u003e\n          \u003csvg viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M5 12h14M12 5l7 7-7 7\"\u003e\u003c\/path\u003e\u003cpath d=\"M5 5v14\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n        \u003c\/span\u003e\n        \u003ch3\u003eQuick Setup \u0026amp; Release\u003c\/h3\u003e\n        \u003cp\u003eInstalls in seconds and releases easily when bath time is complete.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"psal__card\"\u003e\n        \u003cspan class=\"psal__icon\" aria-hidden=\"true\"\u003e\n          \u003csvg viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M4 12h16M7 8l-3 4 3 4M17 8l3 4-3 4\"\u003e\u003c\/path\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"2\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\n        \u003c\/span\u003e\n        \u003ch3\u003eAdjustable Tether\u003c\/h3\u003e\n        \u003cp\u003eAdjust the tether to suit your dog and your available bathing space.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"psal__card\"\u003e\n        \u003cspan class=\"psal__icon\" aria-hidden=\"true\"\u003e\n          \u003csvg viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M10 13a5 5 0 0 0 7.1.1l2-2a5 5 0 0 0-7.1-7.1l-1.1 1.1\"\u003e\u003c\/path\u003e\u003cpath d=\"M14 11a5 5 0 0 0-7.1-.1l-2 2A5 5 0 0 0 12 20l1.1-1.1\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n        \u003c\/span\u003e\n        \u003ch3\u003eSecure Metal Hardware\u003c\/h3\u003e\n        \u003cp\u003eStrong hook connections make attachment simple and dependable.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"psal__card\"\u003e\n        \u003cspan class=\"psal__icon\" aria-hidden=\"true\"\u003e\n          \u003csvg viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M4 7h16M4 12h16M4 17h16\"\u003e\u003c\/path\u003e\u003cpath d=\"m7 5 2 4-2 4 2 4-2 4M15 5l2 4-2 4 2 4-2 4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n        \u003c\/span\u003e\n        \u003ch3\u003eReinforced Webbing\u003c\/h3\u003e\n        \u003cp\u003eDurable high-density webbing is made for repeated wet grooming routines.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"psal__card\"\u003e\n        \u003cspan class=\"psal__icon\" aria-hidden=\"true\"\u003e\n          \u003csvg viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M12 3s5 5.4 5 10a5 5 0 0 1-10 0c0-4.6 5-10 5-10Z\"\u003e\u003c\/path\u003e\u003cpath d=\"M7 20c3-1 7-1 10 0\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n        \u003c\/span\u003e\n        \u003ch3\u003eWashable \u0026amp; Reusable\u003c\/h3\u003e\n        \u003cp\u003eEasy to rinse after use and keep ready for the next bath.\u003c\/p\u003e\n      \u003c\/article\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"psal__closing\"\u003e\n    \u003cp\u003eLess chasing. Less bath-time stress. More focus on giving your dog a quicker, calmer clean.\u003c\/p\u003e\n    \u003cstrong\u003eSecure. Wash. Release.\u003c\/strong\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"psal__safety\"\u003e\n    \u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"9\"\u003e\u003c\/circle\u003e\u003cpath d=\"M12 8v5M12 17h.01\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n    \u003cspan\u003e\u003cstrong\u003eSafety note:\u003c\/strong\u003e For supervised bathing only. Use on a clean, smooth, non-porous surface, test the suction first and never leave your dog tethered unattended.\u003c\/span\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e","brand":"PetSpree","offers":[{"title":"Default Title","offer_id":54193996529977,"sku":null,"price":399.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1005\/4739\/5897\/files\/IMG-9134.png?v=1789014678","url":"https:\/\/www.petspree.co.za\/products\/pet-spree%e2%84%a2-aqualeash","provider":"Pet Spree","version":"1.0","type":"link"}