{"product_id":"freshair-cat","title":"🐱🌿 FreshAir Cat Haven™ – Pop-Up Mesh Playpen","description":"\u003cdiv class=\"product__description rte quick-add-hidden\" style=\"\n  margin-top: 2.4rem;\n  margin-bottom: 2.4rem;\n\"\u003e\n\n\u003cstyle\u003e\nhtml{\n  scroll-behavior:smooth;\n}\n\n.cat-pop-page,\n.cat-pop-page *{\n  box-sizing:border-box;\n}\n\n.cat-pop-page{\n  --green:#1d563c;\n  --green2:#2f7654;\n  --soft:#f3f8f4;\n  --soft2:#f8faf8;\n  --black:#171b19;\n  --text:#49524d;\n  --muted:#748079;\n  --line:#dce7df;\n  --white:#ffffff;\n\n  max-width:1180px;\n  margin:0 auto;\n  overflow:hidden;\n  background:#fff;\n  color:var(--text);\n  font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Arial,sans-serif;\n  line-height:1.7;\n}\n\n.cat-pop-page img{\n  display:block;\n  width:100%;\n  max-width:100%;\n  height:auto !important;\n  object-fit:contain !important;\n}\n\n.cat-pop-page h1,\n.cat-pop-page h2,\n.cat-pop-page h3,\n.cat-pop-page p{\n  margin-top:0;\n}\n\n\/* HERO *\/\n\n.cpp-hero{\n  position:relative;\n  overflow:hidden;\n  padding:64px 22px 38px;\n  text-align:center;\n  background:\n    radial-gradient(circle at 50% 0%,rgba(74,143,101,.14),transparent 30%),\n    linear-gradient(180deg,#f5faf6 0%,#ffffff 100%);\n}\n\n.cpp-hero:before,\n.cpp-hero:after{\n  content:\"\";\n  position:absolute;\n  width:10px;\n  height:10px;\n  border-radius:50%;\n  background:rgba(47,118,84,.18);\n  animation:cppFloat 4s ease-in-out infinite;\n}\n\n.cpp-hero:before{\n  left:8%;\n  top:100px;\n}\n\n.cpp-hero:after{\n  right:10%;\n  top:165px;\n  width:7px;\n  height:7px;\n  animation-delay:1.4s;\n}\n\n.cpp-kicker{\n  margin-bottom:10px;\n  color:var(--green2);\n  font-size:12px;\n  font-weight:800;\n  letter-spacing:2.3px;\n  text-transform:uppercase;\n}\n\n.cpp-hero h1{\n  max-width:880px;\n  margin:0 auto 17px;\n  color:var(--black);\n  font-size:clamp(35px,5vw,57px);\n  line-height:1.08;\n  font-weight:800;\n}\n\n.cpp-hero h1 span{\n  display:block;\n  margin-top:9px;\n  color:var(--green);\n  font-size:.58em;\n  font-weight:600;\n}\n\n.cpp-lead{\n  max-width:790px;\n  margin:0 auto 27px;\n  font-size:18px;\n}\n\n.cpp-lead strong{\n  color:var(--green);\n}\n\n.cpp-pills{\n  display:flex;\n  justify-content:center;\n  flex-wrap:wrap;\n  gap:9px;\n  margin-bottom:29px;\n}\n\n.cpp-pill{\n  padding:9px 14px;\n  border:1px solid var(--line);\n  border-radius:999px;\n  background:#fff;\n  color:var(--green);\n  font-size:14px;\n  font-weight:700;\n  box-shadow:0 6px 18px rgba(30,72,50,.04);\n}\n\n.cpp-image{\n  max-width:900px;\n  margin:0 auto;\n  overflow:hidden;\n  border:1px solid var(--line);\n  border-radius:20px;\n  background:#fff;\n  box-shadow:0 16px 42px rgba(30,72,50,.08);\n}\n\n.cpp-image img{\n  transition:transform .75s ease;\n}\n\n.cpp-image:hover img{\n  transform:scale(1.012);\n}\n\n\/* COMMON *\/\n\n.cpp-section{\n  padding:62px 22px;\n  background:#fff;\n}\n\n.cpp-section.soft{\n  background:\n    radial-gradient(circle at 90% 10%,rgba(47,118,84,.05),transparent 25%),\n    linear-gradient(180deg,#f6faf7,#ffffff);\n}\n\n.cpp-head{\n  max-width:800px;\n  margin:0 auto 28px;\n  text-align:center;\n}\n\n.cpp-eyebrow{\n  margin-bottom:8px;\n  color:var(--green2);\n  font-size:12px;\n  font-weight:800;\n  letter-spacing:2px;\n  text-transform:uppercase;\n}\n\n.cpp-head h2{\n  margin-bottom:13px;\n  color:var(--black);\n  font-size:clamp(28px,4vw,41px);\n  line-height:1.17;\n}\n\n.cpp-head p{\n  margin-bottom:0;\n  font-size:17px;\n}\n\n\/* HOOK *\/\n\n.cpp-hook{\n  max-width:850px;\n  margin:0 auto;\n  padding:29px 24px;\n  border-left:4px solid var(--green2);\n  border-radius:0 16px 16px 0;\n  background:#f3f8f4;\n  color:#33483c;\n  font-size:20px;\n  line-height:1.55;\n}\n\n.cpp-hook + .cpp-hook{\n  margin-top:28px;\n  padding:0;\n  border-left:0;\n  background:#fff;\n}\n\n.cpp-hook strong{\n  color:var(--green);\n}\n\n\/* FEATURES *\/\n\n.cpp-grid{\n  display:grid;\n  grid-template-columns:repeat(4,1fr);\n  gap:14px;\n  max-width:980px;\n  margin:29px auto 0;\n}\n\n.cpp-card{\n  padding:24px 16px;\n  border:1px solid var(--line);\n  border-radius:17px;\n  background:#fff;\n  text-align:center;\n  transition:transform .28s ease,box-shadow .28s ease;\n}\n\n.cpp-card:hover{\n  transform:translateY(-5px);\n  box-shadow:0 14px 32px rgba(31,82,56,.08);\n}\n\n.cpp-card span{\n  display:block;\n  margin-bottom:9px;\n  font-size:29px;\n}\n\n.cpp-card h3{\n  margin-bottom:8px;\n  color:var(--green);\n  font-size:18px;\n  line-height:1.3;\n}\n\n.cpp-card p{\n  margin-bottom:0;\n  color:var(--muted);\n  font-size:14px;\n}\n\n\/* SPECS *\/\n\n.cpp-size-strip{\n  display:grid;\n  grid-template-columns:repeat(3,1fr);\n  gap:12px;\n  max-width:820px;\n  margin:27px auto 0;\n}\n\n.cpp-size{\n  padding:19px 12px;\n  border:1px solid var(--line);\n  border-radius:14px;\n  background:#fff;\n  text-align:center;\n}\n\n.cpp-size strong{\n  display:block;\n  margin-bottom:4px;\n  color:var(--black);\n  font-size:22px;\n}\n\n.cpp-size span{\n  color:var(--muted);\n  font-size:13px;\n}\n\n\/* USE *\/\n\n.cpp-use-grid{\n  display:grid;\n  grid-template-columns:repeat(4,1fr);\n  gap:12px;\n  max-width:920px;\n  margin:27px auto 0;\n}\n\n.cpp-use{\n  padding:20px 13px;\n  border:1px solid var(--line);\n  border-radius:15px;\n  background:#fff;\n  text-align:center;\n}\n\n.cpp-use span{\n  display:block;\n  margin-bottom:7px;\n  font-size:27px;\n}\n\n.cpp-use strong{\n  color:var(--green);\n  font-size:14px;\n}\n\n\/* FAQ *\/\n\n.cpp-faq{\n  max-width:900px;\n  margin:0 auto;\n}\n\n.cpp-faq details{\n  margin-bottom:10px;\n  overflow:hidden;\n  border:1px solid var(--line);\n  border-radius:14px;\n  background:#fff;\n}\n\n.cpp-faq summary{\n  position:relative;\n  padding:17px 48px 17px 18px;\n  cursor:pointer;\n  list-style:none;\n  color:var(--green);\n  font-weight:800;\n}\n\n.cpp-faq summary::-webkit-details-marker{\n  display:none;\n}\n\n.cpp-faq summary:after{\n  content:\"+\";\n  position:absolute;\n  top:50%;\n  right:18px;\n  transform:translateY(-50%);\n  color:var(--green2);\n  font-size:22px;\n  transition:transform .25s ease;\n}\n\n.cpp-faq details[open] summary:after{\n  transform:translateY(-50%) rotate(45deg);\n}\n\n.cpp-answer{\n  padding:0 18px 18px;\n  color:var(--muted);\n}\n\n\/* PACKAGE *\/\n\n.cpp-package{\n  max-width:800px;\n  margin:0 auto;\n  padding:28px 22px;\n  border:1px solid var(--line);\n  border-radius:18px;\n  background:#fff;\n  text-align:center;\n  box-shadow:0 10px 28px rgba(31,82,56,.05);\n}\n\n.cpp-package-icon{\n  margin-bottom:8px;\n  font-size:40px;\n  animation:cppFloat 3s ease-in-out infinite;\n}\n\n.cpp-package h3{\n  margin-bottom:8px;\n  color:var(--green);\n  font-size:25px;\n}\n\n.cpp-package p{\n  margin-bottom:4px;\n}\n\n\/* CTA *\/\n\n.cpp-cta{\n  position:relative;\n  overflow:hidden;\n  padding:68px 22px 74px;\n  text-align:center;\n  background:\n    radial-gradient(circle at 50% 0%,rgba(127,196,148,.18),transparent 33%),\n    linear-gradient(180deg,#1f5c40 0%,#153c2c 100%);\n}\n\n.cpp-cta h2{\n  max-width:780px;\n  margin:0 auto 14px;\n  color:#fff;\n  font-size:clamp(30px,4vw,44px);\n  line-height:1.17;\n}\n\n.cpp-cta p{\n  max-width:690px;\n  margin:0 auto 24px;\n  color:#dce9e1;\n  font-size:17px;\n}\n\n.cpp-btn{\n  position:relative;\n  display:inline-flex;\n  min-width:245px;\n  justify-content:center;\n  align-items:center;\n  overflow:hidden;\n  padding:16px 28px;\n  border:0;\n  border-radius:999px;\n  background:#fff;\n  color:var(--green) !important;\n  font-size:17px;\n  font-weight:800;\n  text-decoration:none !important;\n  cursor:pointer;\n  box-shadow:0 14px 32px rgba(0,0,0,.18);\n  transition:transform .25s ease;\n}\n\n.cpp-btn:after{\n  content:\"\";\n  position:absolute;\n  top:-60%;\n  left:-70%;\n  width:40%;\n  height:220%;\n  background:rgba(47,118,84,.12);\n  transform:rotate(25deg);\n  animation:cppShine 3.5s infinite;\n  pointer-events:none;\n}\n\n.cpp-btn:hover{\n  transform:translateY(-3px);\n}\n\n.cpp-note{\n  margin-top:14px !important;\n  color:#bad1c3 !important;\n  font-size:13px !important;\n}\n\n@keyframes cppFloat{\n  0%,100%{transform:translateY(0);}\n  50%{transform:translateY(-6px);}\n}\n\n@keyframes cppShine{\n  0%{left:-70%;}\n  50%,100%{left:135%;}\n}\n\n@media(prefers-reduced-motion:reduce){\n  .cat-pop-page *,\n  .cat-pop-page *:before,\n  .cat-pop-page *:after{\n    animation:none !important;\n    transition:none !important;\n  }\n}\n\n@media(max-width:900px){\n  .cpp-grid{\n    grid-template-columns:repeat(2,1fr);\n  }\n\n  .cpp-use-grid{\n    grid-template-columns:repeat(2,1fr);\n  }\n}\n\n@media(max-width:680px){\n  .cpp-hero{\n    padding:43px 15px 27px;\n  }\n\n  .cpp-hero h1{\n    font-size:35px;\n  }\n\n  .cpp-lead{\n    font-size:16px;\n  }\n\n  .cpp-section{\n    padding:47px 15px;\n  }\n\n  .cpp-head p{\n    font-size:16px;\n  }\n\n  .cpp-grid,\n  .cpp-size-strip,\n  .cpp-use-grid{\n    grid-template-columns:1fr;\n  }\n\n  .cpp-hook{\n    padding:22px 18px;\n    font-size:18px;\n  }\n\n  .cpp-hook + .cpp-hook{\n    padding:0;\n  }\n\n  .cpp-cta{\n    padding:53px 16px 59px;\n  }\n}\n\u003c\/style\u003e\n\n\n\u003cdiv class=\"cat-pop-page\"\u003e\n\n  \u003c!-- HERO --\u003e\n  \u003csection class=\"cpp-hero\"\u003e\n\n    \u003cdiv class=\"cpp-kicker\"\u003e\n      Fresh Air • More Room • Easy Setup\n    \u003c\/div\u003e\n\n    \u003ch1\u003e\n      🐱 Pop Up Cat Playpen\n      \u003cspan\u003eA Little More Outdoor Time for Indoor Cats\u003c\/span\u003e\n    \u003c\/h1\u003e\n\n    \u003cp class=\"cpp-lead\"\u003e\n      Your cat craves sunshine, fresh grass, and interesting new scents.\n      You want a little more control over where they explore.\n      \u003cstrong\u003e\n        This roomy mesh playpen creates a comfortable outdoor space\n        without putting your cat directly on a leash.\n      \u003c\/strong\u003e\n    \u003c\/p\u003e\n\n    \u003cdiv class=\"cpp-pills\"\u003e\n      \u003cdiv class=\"cpp-pill\"\u003e🌿 Indoor \u0026amp; Outdoor Use\u003c\/div\u003e\n      \u003cdiv class=\"cpp-pill\"\u003e💨 Breathable Mesh\u003c\/div\u003e\n      \u003cdiv class=\"cpp-pill\"\u003e⚡ Pop Up Design\u003c\/div\u003e\n      \u003cdiv class=\"cpp-pill\"\u003e📦 Lightweight \u0026amp; Portable\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cpp-image\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0795\/9442\/2471\/files\/c34fcc6f-078c-41db-be97-0387d06cd910.png?v=1791271274\" alt=\"Cat relaxing inside a roomy pop up mesh playpen\"\u003e\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n\n  \u003c!-- PAIN POINT --\u003e\n  \u003csection class=\"cpp-section\"\u003e\n\n    \u003cdiv class=\"cpp-hook\"\u003e\n      🌤️ Some indoor cats would happily spend all afternoon outside,\n      \u003cstrong\u003e\n        if outside did not mean roaming the neighborhood,\n        slipping through a fence, or hiding under a neighbor's porch.\n      \u003c\/strong\u003e\n      \u003cbr\u003e\u003cbr\u003e\n      This playpen offers a simple middle ground:\n      fresh air and freedom to move inside one defined space.\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cpp-hook\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0795\/9442\/2471\/files\/More_room_less_stress-3.png?v=1791338556\" alt=\"Cat enjoying more room with less stress inside the mesh enclosure\"\u003e\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n\n  \u003c!-- OUTDOOR FREEDOM --\u003e\n  \u003csection class=\"cpp-section soft\"\u003e\n\n    \u003cdiv class=\"cpp-head\"\u003e\n      \u003cdiv class=\"cpp-eyebrow\"\u003e\n        More Time Outside, Less Chasing\n      \u003c\/div\u003e\n\n      \u003ch2\u003e\n        🌿 Let Them Enjoy the Yard With You\n      \u003c\/h2\u003e\n\n      \u003cp\u003e\n        Set it up on the lawn, patio, or another suitable spot\n        so your cat can sit, sniff, stretch, and watch the world\n        while you stay nearby. It is an easy way to add outdoor\n        enrichment without letting them roam freely.\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cpp-image\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0795\/9442\/2471\/files\/9061deb4-839f-4a01-a6d2-98bb6e4aca92.png?v=1791271274\" alt=\"Cat enjoying supervised outdoor time in a pop up playpen\"\u003e\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n\n  \u003c!-- BREATHABLE --\u003e\n  \u003csection class=\"cpp-section\"\u003e\n\n    \u003cdiv class=\"cpp-head\"\u003e\n      \u003cdiv class=\"cpp-eyebrow\"\u003e\n        Air In. View Open.\n      \u003c\/div\u003e\n\n      \u003ch2\u003e\n        💨 Breathable Mesh Keeps the View Wide Open\n      \u003c\/h2\u003e\n\n      \u003cp\u003e\n        The mesh design helps air circulate while giving your cat\n        a clear view of the surroundings. They can watch birds,\n        follow movement, and enjoy the outdoor setting without\n        being enclosed in a solid carrier.\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cpp-image\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0795\/9442\/2471\/files\/284cc11e-72bb-4d49-bfc4-fa09a09cd578.png?v=1791271274\" alt=\"Breathable mesh panels provide airflow and visibility\"\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cpp-grid\"\u003e\n\n      \u003cdiv class=\"cpp-card\"\u003e\n        \u003cspan\u003e💨\u003c\/span\u003e\n        \u003ch3\u003eAirflow\u003c\/h3\u003e\n        \u003cp\u003e\n          The open mesh construction helps air move throughout the play space.\n        \u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"cpp-card\"\u003e\n        \u003cspan\u003e👀\u003c\/span\u003e\n        \u003ch3\u003eClear Visibility\u003c\/h3\u003e\n        \u003cp\u003e\n          Your cat can still see the surroundings and keep an eye on the action.\n        \u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"cpp-card\"\u003e\n        \u003cspan\u003e🐾\u003c\/span\u003e\n        \u003ch3\u003eRoom to Move\u003c\/h3\u003e\n        \u003cp\u003e\n          The rounded design leaves space to sit, turn, stretch, and walk around.\n        \u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"cpp-card\"\u003e\n        \u003cspan\u003e🌿\u003c\/span\u003e\n        \u003ch3\u003eOutdoor Enrichment\u003c\/h3\u003e\n        \u003cp\u003e\n          An easy way to add fresh air, sunshine, and new scenery to the day.\n        \u003c\/p\u003e\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n\n  \u003c!-- SIZE --\u003e\n  \u003csection class=\"cpp-section soft\"\u003e\n\n    \u003cdiv class=\"cpp-head\"\u003e\n      \u003cdiv class=\"cpp-eyebrow\"\u003e\n        Roomier Than It Looks\n      \u003c\/div\u003e\n\n      \u003ch2\u003e\n        📏 About 32 Inches in Every Direction\n      \u003c\/h2\u003e\n\n      \u003cp\u003e\n        The rounded structure creates a roomy interior while keeping\n        a practical footprint for lawns, patios, and indoor rooms.\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cpp-image\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0795\/9442\/2471\/files\/890e9154-eb34-4700-8b53-e1b0b097a140.png?v=1791271274\" alt=\"Pop up cat playpen dimensions measuring about 32 inches\"\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cpp-size-strip\"\u003e\n\n      \u003cdiv class=\"cpp-size\"\u003e\n        \u003cstrong\u003e32 in\u003c\/strong\u003e\n        \u003cspan\u003eApprox. 81 cm wide\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"cpp-size\"\u003e\n        \u003cstrong\u003e32 in\u003c\/strong\u003e\n        \u003cspan\u003eApprox. 81 cm high\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"cpp-size\"\u003e\n        \u003cstrong\u003e32 in\u003c\/strong\u003e\n        \u003cspan\u003eApprox. 81 cm deep\u003c\/span\u003e\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n\n  \u003c!-- POP UP FRAME --\u003e\n  \u003csection class=\"cpp-section\"\u003e\n\n    \u003cdiv class=\"cpp-head\"\u003e\n      \u003cdiv class=\"cpp-eyebrow\"\u003e\n        Less Setup, More Playtime\n      \u003c\/div\u003e\n\n      \u003ch2\u003e\n        ⚡ Flexible Pop Up Frame\n      \u003c\/h2\u003e\n\n      \u003cp\u003e\n        No bulky rigid cage taking up space. The flexible frame pops into\n        shape quickly while staying light enough to move between indoor\n        and outdoor areas.\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cpp-image\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0795\/9442\/2471\/files\/Folds_flat_in_seconds-6.png?v=1791338556\" alt=\"Flexible cat playpen folds flat for convenient storage\"\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cpp-grid\"\u003e\n\n      \u003cdiv class=\"cpp-card\"\u003e\n        \u003cspan\u003e⚡\u003c\/span\u003e\n        \u003ch3\u003eQuick Pop Up Setup\u003c\/h3\u003e\n        \u003cp\u003e\n          The flexible frame makes occasional or seasonal setup simple.\n        \u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"cpp-card\"\u003e\n        \u003cspan\u003e🪶\u003c\/span\u003e\n        \u003ch3\u003eLightweight\u003c\/h3\u003e\n        \u003cp\u003e\n          Easy to reposition around the home, patio, or yard when needed.\n        \u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"cpp-card\"\u003e\n        \u003cspan\u003e🚗\u003c\/span\u003e\n        \u003ch3\u003ePortable\u003c\/h3\u003e\n        \u003cp\u003e\n          A convenient temporary pet space when you are spending time away from home.\n        \u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"cpp-card\"\u003e\n        \u003cspan\u003e🔒\u003c\/span\u003e\n        \u003ch3\u003eZippered Opening\u003c\/h3\u003e\n        \u003cp\u003e\n          The wide zippered entrance makes it easier for your cat to get in and out.\n        \u003c\/p\u003e\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n\n  \u003c!-- ROOM TO MOVE --\u003e\n  \u003csection class=\"cpp-section soft\"\u003e\n\n    \u003cdiv class=\"cpp-head\"\u003e\n      \u003cdiv class=\"cpp-eyebrow\"\u003e\n        More Than a Place to Sit\n      \u003c\/div\u003e\n\n      \u003ch2\u003e\n        🐾 Room to Explore Their Little World\n      \u003c\/h2\u003e\n\n      \u003cp\u003e\n        Cats do not always want to stay curled up in one spot.\n        The rounded enclosure gives them space to stand, turn,\n        investigate the grass beneath their paws, and move from side to side.\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cpp-image\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0795\/9442\/2471\/files\/Roomy_cat_enclosure_for_happy_stretching-5.png?v=1791338557\" alt=\"Roomy cat enclosure with space for stretching and exploring\"\u003e\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n\n  \u003c!-- CONTROLLED OUTDOOR TIME --\u003e\n  \u003csection class=\"cpp-section\"\u003e\n\n    \u003cdiv class=\"cpp-head\"\u003e\n      \u003cdiv class=\"cpp-eyebrow\"\u003e\n        Fresh Air Without Full Roaming\n      \u003c\/div\u003e\n\n      \u003ch2\u003e\n        ☀️ A More Controlled Way to Relax Outside\n      \u003c\/h2\u003e\n\n      \u003cp\u003e\n        Let your indoor cat experience sunshine, moving leaves,\n        grass under their paws, and interesting new scents\n        while keeping them in a defined area under your supervision.\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cpp-image\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0795\/9442\/2471\/files\/47e449ac-ff8e-4c6d-904c-440d8cd98bf2.png?v=1791271274\" alt=\"Cat relaxing outdoors in a supervised mesh playpen\"\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cpp-use-grid\"\u003e\n\n      \u003cdiv class=\"cpp-use\"\u003e\n        \u003cspan\u003e🌱\u003c\/span\u003e\n        \u003cstrong\u003eBackyard\u003c\/strong\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"cpp-use\"\u003e\n        \u003cspan\u003e🏡\u003c\/span\u003e\n        \u003cstrong\u003ePatio\u003c\/strong\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"cpp-use\"\u003e\n        \u003cspan\u003e🛋️\u003c\/span\u003e\n        \u003cstrong\u003eIndoor Play Area\u003c\/strong\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"cpp-use\"\u003e\n        \u003cspan\u003e🚙\u003c\/span\u003e\n        \u003cstrong\u003eTemporary Travel Setup\u003c\/strong\u003e\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n\n  \u003c!-- FAQ --\u003e\n  \u003csection class=\"cpp-section soft\"\u003e\n\n    \u003cdiv class=\"cpp-head\"\u003e\n      \u003cdiv class=\"cpp-eyebrow\"\u003e\n        Quick Answers\n      \u003c\/div\u003e\n\n      \u003ch2\u003e\n        ❓ Good to Know\n      \u003c\/h2\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cpp-faq\"\u003e\n\n      \u003cdetails\u003e\n        \u003csummary\u003eHow large is the playpen?\u003c\/summary\u003e\n        \u003cdiv class=\"cpp-answer\"\u003e\n          The product images show an opened size of approximately\n          32 × 32 × 32 inches, or about 81 × 81 × 81 cm.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails\u003e\n        \u003csummary\u003eCan it be used outdoors?\u003c\/summary\u003e\n        \u003cdiv class=\"cpp-answer\"\u003e\n          Yes. It is designed for lawns and other suitable outdoor areas.\n          Always supervise your pet and consider the current weather and ground conditions.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails\u003e\n        \u003csummary\u003eCan my cat see through the enclosure?\u003c\/summary\u003e\n        \u003cdiv class=\"cpp-answer\"\u003e\n          Yes. The mesh construction provides visibility while allowing air\n          to circulate through the playpen.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails\u003e\n        \u003csummary\u003eIs this a permanent outdoor enclosure?\u003c\/summary\u003e\n        \u003cdiv class=\"cpp-answer\"\u003e\n          No. It is best used as a lightweight, temporary play space.\n          Always supervise your pet during outdoor use.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n\n  \u003c!-- PACKAGE --\u003e\n  \u003csection class=\"cpp-section\"\u003e\n\n    \u003cdiv class=\"cpp-package\"\u003e\n      \u003cdiv class=\"cpp-package-icon\"\u003e📦\u003c\/div\u003e\n\n      \u003ch3\u003ePackage Includes\u003c\/h3\u003e\n\n      \u003cp\u003e\n        \u003cstrong\u003e1 × Collapsible Cat Playpen\u003c\/strong\u003e\n      \u003c\/p\u003e\n\n      \u003cp\u003e\n        Approximate opened size:\n        32 × 32 × 32 in \/ 81 × 81 × 81 cm\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n\n  \u003c!-- FINAL CTA --\u003e\n  \u003csection class=\"cpp-cta\"\u003e\n\n    \u003ch2\u003e\n      🐱 Give Them Fresh Air, Not the Whole Neighborhood\n    \u003c\/h2\u003e\n\n    \u003cp\u003e\n      Create a roomy little outdoor world where your cat can\n      watch, sniff, stretch, and enjoy the sunshine while staying close to you.\n    \u003c\/p\u003e\n\n    \u003cbutton type=\"button\" class=\"cpp-btn\" id=\"cpp-scroll-to-buy\"\u003e\n      Choose Your Color \u0026amp; Get Yours →\n    \u003c\/button\u003e\n\n    \u003cp class=\"cpp-note\"\u003e\n      Breathable Mesh • Roomy 32 in Design •\n      Pop Up Frame • Indoor \u0026amp; Outdoor Use\n    \u003c\/p\u003e\n\n  \u003c\/section\u003e\n\n\u003c\/div\u003e\n\n\n\u003cscript\u003e\n(function(){\n\n  function findVisibleElement(selectors){\n\n    for(var i = 0; i \u003c selectors.length; i++){\n\n      var elements = document.querySelectorAll(selectors[i]);\n\n      for(var j = 0; j \u003c elements.length; j++){\n\n        var el = elements[j];\n\n        if(\n          !el.closest('.cat-pop-page') \u0026\u0026\n          el.offsetParent !== null\n        ){\n          return el;\n        }\n\n      }\n\n    }\n\n    return null;\n  }\n\n\n  function getHeaderHeight(){\n\n    var headers = [\n      document.querySelector('sticky-header'),\n      document.querySelector('.shopify-section-header-sticky'),\n      document.querySelector('.header-wrapper'),\n      document.querySelector('header')\n    ];\n\n    for(var i = 0; i \u003c headers.length; i++){\n\n      if(headers[i] \u0026\u0026 headers[i].offsetParent !== null){\n\n        var position = window.getComputedStyle(headers[i]).position;\n\n        if(position === 'fixed' || position === 'sticky'){\n          return headers[i].getBoundingClientRect().height || 0;\n        }\n\n      }\n\n    }\n\n    return 0;\n  }\n\n\n  function getBuyTarget(){\n\n    \/*\n      STEP 1\n      优先找到真正的 Add To Cart 按钮\n    *\/\n\n    var addButton = findVisibleElement([\n      'button[name=\"add\"]',\n      '.product-form__submit',\n      '[id^=\"ProductSubmitButton-\"]',\n      'product-form button[type=\"submit\"]',\n      'form[action*=\"\/cart\/add\"] button[type=\"submit\"]',\n      'button[type=\"submit\"][name=\"add\"]'\n    ]);\n\n\n    if(addButton){\n\n      \/*\n        STEP 2\n        从 Add To Cart 按钮向上找到购买表单\n      *\/\n\n      var form =\n        addButton.closest('form[action*=\"\/cart\/add\"]') ||\n        addButton.closest('product-form') ||\n        addButton.closest('form');\n\n\n      \/*\n        STEP 3\n        从按钮附近寻找颜色 \/ variant picker\n      *\/\n\n      var scope =\n        addButton.closest('product-info') ||\n        addButton.closest('[id^=\"ProductInfo-\"]') ||\n        addButton.closest('.product__info-wrapper') ||\n        addButton.closest('.product__info-container');\n\n\n      var picker = null;\n\n      if(scope){\n\n        var pickers = scope.querySelectorAll(\n          'variant-selects,' +\n          'variant-radios,' +\n          'variant-picker,' +\n          '.product-form__input,' +\n          'fieldset'\n        );\n\n        for(var p = 0; p \u003c pickers.length; p++){\n\n          if(\n            pickers[p].offsetParent !== null \u0026\u0026\n            !pickers[p].closest('.cat-pop-page')\n          ){\n            picker = pickers[p];\n            break;\n          }\n\n        }\n\n      }\n\n\n      \/*\n        如果有颜色\/规格选择器，\n        优先跳到这里\n      *\/\n\n      if(picker){\n        return {\n          target:picker,\n          button:addButton\n        };\n      }\n\n\n      \/*\n        没找到规格就跳到购买表单\n      *\/\n\n      if(form){\n        return {\n          target:form,\n          button:addButton\n        };\n      }\n\n\n      return {\n        target:addButton,\n        button:addButton\n      };\n\n    }\n\n\n    \/*\n      STEP 4\n      找不到按钮时，找 product form\n    *\/\n\n    var productForm = findVisibleElement([\n      'form[action*=\"\/cart\/add\"]',\n      'product-form'\n    ]);\n\n    if(productForm){\n\n      return {\n        target:productForm,\n        button:null\n      };\n\n    }\n\n\n    \/*\n      STEP 5\n      再找 variant\n    *\/\n\n    var variant = findVisibleElement([\n      'variant-selects',\n      'variant-radios',\n      'variant-picker',\n      '.product-form__input'\n    ]);\n\n    if(variant){\n\n      return {\n        target:variant,\n        button:null\n      };\n\n    }\n\n\n    return null;\n\n  }\n\n\n  function scrollToBuyArea(){\n\n    var result = getBuyTarget();\n\n\n    \/*\n      如果找到购买区域\n    *\/\n\n    if(result \u0026\u0026 result.target){\n\n      var target = result.target;\n\n      var headerHeight = getHeaderHeight();\n\n\n      \/*\n        再额外向上留 70px，\n        用户可以看到颜色\/规格 + Add to Cart\n      *\/\n\n      var offset = headerHeight + 70;\n\n\n      var top =\n        target.getBoundingClientRect().top +\n        window.pageYOffset -\n        offset;\n\n\n      window.scrollTo({\n        top:Math.max(top,0),\n        behavior:'smooth'\n      });\n\n\n      \/*\n        找到真实购买按钮时做一个轻微高亮\n      *\/\n\n      if(result.button){\n\n        setTimeout(function(){\n\n          var button = result.button;\n\n          var oldTransition = button.style.transition;\n          var oldBoxShadow = button.style.boxShadow;\n          var oldTransform = button.style.transform;\n\n          button.style.transition =\n            'box-shadow .3s ease, transform .3s ease';\n\n          button.style.boxShadow =\n            '0 0 0 4px rgba(47,118,84,.22)';\n\n          button.style.transform =\n            'scale(1.015)';\n\n\n          setTimeout(function(){\n\n            button.style.boxShadow = oldBoxShadow;\n            button.style.transform = oldTransform;\n            button.style.transition = oldTransition;\n\n          },1500);\n\n        },650);\n\n      }\n\n      return;\n\n    }\n\n\n    \/*\n      最终兜底：\n      如果主题结构完全不同，\n      直接跳到详情页上方约 900px 的位置\n    *\/\n\n    var description =\n      document.querySelector('.cat-pop-page');\n\n\n    if(description){\n\n      var fallbackTop =\n        description.getBoundingClientRect().top +\n        window.pageYOffset -\n        Math.min(window.innerHeight * 0.8, 700);\n\n\n      window.scrollTo({\n        top:Math.max(fallbackTop,0),\n        behavior:'smooth'\n      });\n\n    }else{\n\n      window.scrollTo({\n        top:0,\n        behavior:'smooth'\n      });\n\n    }\n\n  }\n\n\n  \/*\n    绑定底部按钮\n  *\/\n\n  var scrollButton =\n    document.getElementById('cpp-scroll-to-buy');\n\n\n  if(scrollButton){\n\n    scrollButton.addEventListener(\n      'click',\n      scrollToBuyArea\n    );\n\n  }\n\n})();\n\u003c\/script\u003e\n\n\u003c\/div\u003e","brand":"LLZ","offers":[{"title":"Black","offer_id":67769671713016,"sku":"PH6101221HEI","price":38.99,"currency_code":"USD","in_stock":true},{"title":"Blue","offer_id":67769671745784,"sku":"PH6101221LAN","price":38.99,"currency_code":"USD","in_stock":true},{"title":"Pink","offer_id":67769671778552,"sku":"PH6101221FEN","price":38.99,"currency_code":"USD","in_stock":true},{"title":"Green","offer_id":67769671811320,"sku":"PH6101221LV","price":38.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0832\/0476\/7992\/files\/47e449ac-ff8e-4c6d-904c-440d8cd98bf2.png?v=1792660940","url":"https:\/\/giftsune.com\/products\/freshair-cat","provider":"giftsune.com","version":"1.0","type":"link"}