{"product_id":"vintage-reading-horse-shelf-sitter","title":"Vintage Reading Horse Shelf Sitter – Whimsical Book Lover Figurine ✨","description":"\n\u003cstyle\u003e\n\/* =========================================\n   ALASJOY | VINTAGE READING HORSE\n   Cozy Bookshop Collection\n   Pure HTML \/ CSS \/ JavaScript\n   No Liquid Syntax\n========================================= *\/\n\n#aj-reading-horse{\n  --coffee:#332b25;\n  --brown:#6c4b38;\n  --rust:#b3694e;\n  --gold:#c5a477;\n  --cream:#f8f3eb;\n  --paper:#fffcf7;\n  --linen:#eee4d6;\n  --sage:#737966;\n  --muted:#746e65;\n  --border:#e3d9cb;\n\n  display:block;\n  width:100%;\n  max-width:1160px;\n  margin:0 auto;\n  border-radius:15px;\n  overflow:hidden;\n  background:var(--cream);\n  color:var(--coffee);\n  font-family:Georgia,serif;\n  font-size:15px;\n  line-height:1.65;\n  container-type:inline-size;\n  isolation:isolate;\n}\n\n#aj-reading-horse,\n#aj-reading-horse *,\n#aj-reading-horse *::before,\n#aj-reading-horse *::after{\n  box-sizing:border-box;\n}\n\n#aj-reading-horse h2,\n#aj-reading-horse h3,\n#aj-reading-horse p,\n#aj-reading-horse figure{\n  margin:0;\n  padding:0;\n  letter-spacing:normal;\n  text-transform:none;\n}\n\n#aj-reading-horse h2{\n  font:700 clamp(29px,4vw,45px)\/1.16 Georgia,serif;\n  color:var(--coffee);\n}\n\n#aj-reading-horse h3{\n  font:700 20px\/1.32 Georgia,serif;\n  color:var(--brown);\n}\n\n#aj-reading-horse p{\n  font:400 14px\/1.83 Arial,Helvetica,sans-serif;\n  color:var(--muted);\n}\n\n#aj-reading-horse img{\n  display:block;\n  width:100%;\n  height:auto;\n  max-width:100%;\n}\n\n#aj-reading-horse .rh-section{\n  padding:44px 20px;\n}\n\n#aj-reading-horse .rh-center{\n  text-align:center;\n}\n\n#aj-reading-horse .rh-kicker{\n  display:block;\n  margin-bottom:12px;\n  color:#a47751;\n  font:800 11px\/1.5 Arial,sans-serif;\n  text-transform:uppercase;\n  letter-spacing:1.7px;\n}\n\n#aj-reading-horse .rh-intro{\n  max-width:660px;\n  margin:14px auto 0;\n}\n\n#aj-reading-horse .rh-rule{\n  width:60px;\n  height:2px;\n  margin:18px auto;\n  background:var(--gold);\n}\n\n\/* HERO *\/\n\n#aj-reading-horse .rh-hero{\n  display:grid;\n  grid-template-columns:minmax(0,1fr);\n  gap:28px;\n  align-items:center;\n  padding:30px 20px 40px;\n  background:\n    radial-gradient(\n      ellipse at 5% 10%,\n      #e8d6be,\n      transparent 64%\n    ),\n    #fbf8f1;\n}\n\n#aj-reading-horse .rh-main-image{\n  display:none;\n  position:relative;\n  min-width:0;\n  padding:10px;\n  border:1px solid #dcccb6;\n  border-radius:12px;\n  background:var(--paper);\n  box-shadow:0 15px 30px #49322416;\n}\n\n#aj-reading-horse .rh-main-image.ready{\n  display:block;\n}\n\n#aj-reading-horse .rh-main-image img{\n  aspect-ratio:1\/1;\n  object-fit:contain;\n  border-radius:7px;\n  background:#faf7f0;\n}\n\n#aj-reading-horse .rh-photo-caption{\n  padding:10px 5px 4px;\n  color:#91735e;\n  font:700 12px\/1.5 Arial,sans-serif;\n  text-align:center;\n}\n\n#aj-reading-horse .rh-hero-copy{\n  min-width:0;\n}\n\n#aj-reading-horse .rh-stamp{\n  display:inline-block;\n  margin-bottom:17px;\n  padding:8px 13px;\n  border:1px solid #ddc1a2;\n  border-radius:25px;\n  background:#fffdfa;\n  color:#9b674b;\n  font:800 11px\/1.5 Arial,sans-serif;\n  letter-spacing:.5px;\n}\n\n#aj-reading-horse .rh-hero h2{\n  font-size:clamp(34px,4.7vw,53px);\n}\n\n#aj-reading-horse .rh-hero h2 em{\n  color:var(--rust);\n  font-style:normal;\n}\n\n#aj-reading-horse .rh-hero p{\n  margin-top:16px;\n  font-size:15px;\n}\n\n#aj-reading-horse .rh-hero-quote{\n  display:block;\n  margin-top:22px;\n  padding:16px 17px;\n  border-left:3px solid var(--rust);\n  background:#f3e9db;\n  color:#896248;\n  font:italic 18px\/1.5 Georgia,serif;\n}\n\n\/* FEATURE RIBBON *\/\n\n#aj-reading-horse .rh-ribbon{\n  display:grid;\n  grid-template-columns:repeat(2,minmax(0,1fr));\n  gap:12px;\n  padding:18px 13px;\n  background:#e9ded0;\n}\n\n#aj-reading-horse .rh-ribbon div{\n  text-align:center;\n  color:#72533e;\n  font:800 12px\/1.5 Arial,sans-serif;\n}\n\n#aj-reading-horse .rh-ribbon span{\n  display:block;\n  margin-bottom:4px;\n  font-size:23px;\n}\n\n\/* PHOTO STORY *\/\n\n#aj-reading-horse .rh-story{\n  display:grid;\n  grid-template-columns:minmax(0,1fr);\n  align-items:center;\n  background:#fffdf9;\n}\n\n#aj-reading-horse .rh-story.alt{\n  background:#f0e9df;\n}\n\n#aj-reading-horse .rh-story-image{\n  display:none;\n  min-width:0;\n  padding:14px;\n}\n\n#aj-reading-horse .rh-story-image.ready{\n  display:block;\n}\n\n#aj-reading-horse .rh-story-image img{\n  aspect-ratio:1\/1;\n  object-fit:contain;\n  border:1px solid #e3d7c7;\n  border-radius:11px;\n  background:white;\n}\n\n#aj-reading-horse .rh-story-copy{\n  min-width:0;\n  padding:36px 24px;\n}\n\n#aj-reading-horse .rh-story-copy p{\n  margin-top:15px;\n}\n\n#aj-reading-horse .rh-quote{\n  margin-top:20px;\n  padding:16px 18px;\n  border-left:3px solid var(--rust);\n  border-radius:0 8px 8px 0;\n  background:#f7efe5;\n  color:#936b51;\n  font:italic 18px\/1.55 Georgia,serif;\n}\n\n\/* DETAILS *\/\n\n#aj-reading-horse .rh-details{\n  background:#f7f1e7;\n}\n\n#aj-reading-horse .rh-detail-grid{\n  display:grid;\n  grid-template-columns:1fr;\n  gap:14px;\n  margin-top:27px;\n}\n\n#aj-reading-horse .rh-detail{\n  padding:24px 21px;\n  border:1px solid #e0d3c2;\n  border-top:3px solid #b98061;\n  border-radius:11px;\n  background:#fffcf7;\n}\n\n#aj-reading-horse .rh-detail-icon{\n  display:block;\n  margin-bottom:12px;\n  font-size:28px;\n}\n\n#aj-reading-horse .rh-detail p{\n  margin-top:10px;\n}\n\n\/* PHOTO COLLECTION *\/\n\n#aj-reading-horse .rh-gallery{\n  display:none;\n  background:#ece3d7;\n}\n\n#aj-reading-horse .rh-gallery.ready{\n  display:block;\n}\n\n#aj-reading-horse .rh-gallery-grid{\n  display:grid;\n  grid-template-columns:repeat(2,minmax(0,1fr));\n  gap:11px;\n  margin-top:25px;\n}\n\n#aj-reading-horse .rh-gallery-item{\n  display:none;\n  min-width:0;\n  padding:7px;\n  border:1px solid #dbcdbd;\n  border-radius:10px;\n  background:#fffdfa;\n}\n\n#aj-reading-horse .rh-gallery-item.ready{\n  display:block;\n}\n\n#aj-reading-horse .rh-gallery-item img{\n  aspect-ratio:1\/1;\n  object-fit:contain;\n  border-radius:7px;\n}\n\n#aj-reading-horse .rh-gallery-item figcaption{\n  padding:9px 4px 4px;\n  text-align:center;\n  color:#89705b;\n  font:700 12px\/1.5 Arial,sans-serif;\n}\n\n\/* DISPLAY LOCATIONS *\/\n\n#aj-reading-horse .rh-places{\n  background:#46372e;\n}\n\n#aj-reading-horse .rh-places h2{\n  color:#fff6e8;\n}\n\n#aj-reading-horse .rh-places .rh-kicker{\n  color:#ddbb8f;\n}\n\n#aj-reading-horse .rh-places .rh-intro{\n  color:#e9dfd3;\n}\n\n#aj-reading-horse .rh-place-grid{\n  display:grid;\n  grid-template-columns:1fr;\n  gap:13px;\n  margin-top:27px;\n}\n\n#aj-reading-horse .rh-place{\n  padding:23px 20px;\n  border:1px solid #d8bca067;\n  border-radius:10px;\n  background:#ffffff0b;\n}\n\n#aj-reading-horse .rh-place span{\n  display:block;\n  margin-bottom:10px;\n  font-size:27px;\n}\n\n#aj-reading-horse .rh-place h3{\n  color:#fff2df;\n}\n\n#aj-reading-horse .rh-place p{\n  margin-top:10px;\n  color:#e8ded3;\n}\n\n\/* EDGE FEATURE *\/\n\n#aj-reading-horse .rh-edge{\n  background:#fffdf9;\n}\n\n#aj-reading-horse .rh-edge-grid{\n  display:grid;\n  grid-template-columns:minmax(0,1fr);\n  align-items:center;\n  gap:22px;\n}\n\n#aj-reading-horse .rh-edge-copy p{\n  margin-top:15px;\n}\n\n#aj-reading-horse .rh-note{\n  max-width:780px;\n  margin:22px auto 0;\n  padding:15px 18px;\n  border-radius:9px;\n  border:1px solid #e0d8cc;\n  background:#f7f2ea;\n  color:#746f67;\n  font:400 13px\/1.8 Arial,sans-serif;\n}\n\n\/* GIFT *\/\n\n#aj-reading-horse .rh-gift{\n  text-align:center;\n  padding:50px 22px;\n  background:\n    radial-gradient(\n      ellipse at 50% 0%,\n      #ead4bd,\n      transparent 70%\n    ),\n    #faf3ea;\n}\n\n#aj-reading-horse .rh-gift h2{\n  max-width:750px;\n  margin:auto;\n}\n\n#aj-reading-horse .rh-gift p{\n  max-width:640px;\n  margin:16px auto 0;\n}\n\n#aj-reading-horse .rh-gift-quote{\n  display:block;\n  margin-top:23px;\n  color:#9e6a4d;\n  font:italic clamp(19px,2.7vw,27px)\/1.5 Georgia,serif;\n}\n\n\/* FAQ *\/\n\n#aj-reading-horse .rh-faq{\n  background:#fffcf7;\n}\n\n#aj-reading-horse .rh-faq-list{\n  max-width:780px;\n  margin:23px auto 0;\n}\n\n#aj-reading-horse .rh-faq-list details{\n  border-bottom:1px solid var(--border);\n}\n\n#aj-reading-horse .rh-faq-list summary{\n  display:list-item;\n  padding:17px 4px;\n  color:#684b3b;\n  font:700 15px\/1.6 Arial,sans-serif;\n  cursor:pointer;\n}\n\n#aj-reading-horse .rh-faq-list details p{\n  padding:0 4px 18px;\n}\n\n\/* FINAL CTA *\/\n\n#aj-reading-horse .rh-final{\n  padding:51px 21px;\n  background:#3c3029;\n  text-align:center;\n}\n\n#aj-reading-horse .rh-final .rh-kicker{\n  color:#e1be98;\n}\n\n#aj-reading-horse .rh-final h2{\n  color:#fff6e6;\n}\n\n#aj-reading-horse .rh-final p{\n  max-width:610px;\n  margin:16px auto 0;\n  color:#e9ddd1;\n}\n\n#aj-reading-horse .rh-button{\n  display:inline-block;\n  width:100%;\n  max-width:360px;\n  margin-top:23px;\n  padding:16px 22px;\n  border:1px solid #e5c39e;\n  border-radius:8px;\n  background:linear-gradient(\n    110deg,#d9ad83,#f9e4c5,#c98e67\n  );\n  color:#443429;\n  text-decoration:none;\n  text-align:center;\n  font:800 15px\/1.5 Arial,sans-serif;\n  cursor:pointer;\n}\n\n#aj-reading-horse .rh-button:hover{\n  background:#fff1dc;\n  color:#443429;\n}\n\n\/* RESPONSIVE *\/\n\n@container (min-width:780px){\n\n  #aj-reading-horse .rh-hero.has-image{\n    grid-template-columns:\n      minmax(0,1fr) minmax(0,1fr);\n    gap:38px;\n    padding:42px;\n  }\n\n  #aj-reading-horse .rh-section{\n    padding:48px 39px;\n  }\n\n  #aj-reading-horse .rh-story.has-image{\n    grid-template-columns:\n      minmax(0,1fr) minmax(0,1fr);\n  }\n\n  #aj-reading-horse .rh-story-copy{\n    padding:43px;\n  }\n\n  #aj-reading-horse .rh-detail-grid{\n    grid-template-columns:\n      repeat(4,minmax(0,1fr));\n  }\n\n  #aj-reading-horse .rh-place-grid{\n    grid-template-columns:\n      repeat(3,minmax(0,1fr));\n  }\n\n  #aj-reading-horse .rh-gallery-grid{\n    grid-template-columns:\n      repeat(3,minmax(0,1fr));\n  }\n}\n\n@container (max-width:470px){\n\n  #aj-reading-horse .rh-hero{\n    padding:25px 16px 33px;\n  }\n\n  #aj-reading-horse .rh-section{\n    padding:35px 16px;\n  }\n\n  #aj-reading-horse .rh-story-copy{\n    padding:28px 19px;\n  }\n\n  #aj-reading-horse .rh-gallery-grid{\n    gap:8px;\n  }\n}\n\n@media(prefers-reduced-motion:reduce){\n  #aj-reading-horse *,\n  #aj-reading-horse *:before,\n  #aj-reading-horse *:after{\n    animation:none!important;\n    transition:none!important;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv id=\"aj-reading-horse\"\u003e\n\n  \u003c!-- HERO --\u003e\n\n  \u003csection class=\"rh-hero\" data-rh-layout\u003e\n\n    \u003cfigure class=\"rh-main-image\" data-rh-img=\"0\"\u003e\n      \u003cfigcaption class=\"rh-photo-caption\"\u003e\n        Meet your bookshelf's newest bookworm.\n      \u003c\/figcaption\u003e\n    \u003c\/figure\u003e\n\n    \u003cdiv class=\"rh-hero-copy\"\u003e\n\n      \u003cspan class=\"rh-stamp\"\u003e\n        🐴📚 FOR PEOPLE WHO LOVE A GOOD STORY\n      \u003c\/span\u003e\n\n      \u003ch2\u003e\n        Your Bookshelf\n        Has Books.\n        But Does It Have\n        a \u003cem\u003eLittle Bookworm?\u003c\/em\u003e\n      \u003c\/h2\u003e\n\n      \u003cp\u003e\n        Meet the charming\n        little reader who's\n        perfectly happy\n        spending the whole\n        afternoon with\n        a good book.\n      \u003c\/p\u003e\n\n      \u003cp\u003e\n        From the round\n        spectacles and cozy\n        sweater to the\n        relaxed shelf-sitting\n        pose, every detail\n        is full of personality.\n      \u003c\/p\u003e\n\n      \u003cp\u003e\n        A delightful way\n        to add warmth,\n        humor, and a touch\n        of vintage charm\n        to your favorite\n        reading corner.\n      \u003c\/p\u003e\n\n      \u003cspan class=\"rh-hero-quote\"\u003e\n        \"Just one more chapter...\"\n        📖\n      \u003c\/span\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n  \u003c!-- QUICK HIGHLIGHTS --\u003e\n\n  \u003cdiv class=\"rh-ribbon\"\u003e\n\n    \u003cdiv\u003e\n      \u003cspan\u003e📖\u003c\/span\u003e\n      Bookish Personality\n    \u003c\/div\u003e\n\n    \u003cdiv\u003e\n      \u003cspan\u003e🧣\u003c\/span\u003e\n      Cozy Vintage Details\n    \u003c\/div\u003e\n\n    \u003cdiv\u003e\n      \u003cspan\u003e🐴\u003c\/span\u003e\n      Charming Horse Design\n    \u003c\/div\u003e\n\n    \u003cdiv\u003e\n      \u003cspan\u003e🎁\u003c\/span\u003e\n      Thoughtful Little Gift\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003c!-- STORY ONE --\u003e\n\n  \u003csection class=\"rh-story\" data-rh-layout\u003e\n\n    \u003cfigure class=\"rh-story-image\" data-rh-img=\"1\"\u003e\u003c\/figure\u003e\n\n    \u003cdiv class=\"rh-story-copy\"\u003e\n\n      \u003cspan class=\"rh-kicker\"\u003e\n        A LITTLE STORY ON YOUR SHELF\n      \u003c\/span\u003e\n\n      \u003ch2\u003e\n        Not Just Another\n        Ordinary Ornament.\n      \u003c\/h2\u003e\n\n      \u003cp\u003e\n        Most decorations\n        simply sit on\n        a shelf.\n      \u003c\/p\u003e\n\n      \u003cp\u003e\n        This little fellow\n        looks like he's\n        completely absorbed\n        in the next\n        exciting chapter.\n      \u003c\/p\u003e\n\n      \u003cp\u003e\n        His relaxed pose,\n        tiny glasses,\n        cozy outfit,\n        and open book\n        bring the scene\n        to life.\n      \u003c\/p\u003e\n\n      \u003cp\u003e\n        Place him beside\n        your favorite books\n        and let him become\n        part of the story\n        of your home.\n      \u003c\/p\u003e\n\n      \u003cdiv class=\"rh-quote\"\u003e\n        A charming little\n        companion for\n        anyone who believes\n        books make a house\n        feel like home.\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n  \u003c!-- DETAILS --\u003e\n\n  \u003csection class=\"rh-section rh-details\"\u003e\n\n    \u003cdiv class=\"rh-center\"\u003e\n\n      \u003cspan class=\"rh-kicker\"\u003e\n        THE CHARM IS IN THE DETAILS\n      \u003c\/span\u003e\n\n      \u003ch2\u003e\n        Every Little Detail\n        Has a Story to Tell.\n      \u003c\/h2\u003e\n\n      \u003cp class=\"rh-intro\"\u003e\n        A wonderfully whimsical\n        character inspired by\n        cozy libraries,\n        vintage fashion,\n        and the simple\n        pleasure of reading.\n      \u003c\/p\u003e\n\n      \u003cdiv class=\"rh-rule\"\u003e\u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"rh-detail-grid\"\u003e\n\n      \u003cdiv class=\"rh-detail\"\u003e\n\n        \u003cspan class=\"rh-detail-icon\"\u003e👓\u003c\/span\u003e\n\n        \u003ch3\u003e\n          Round Spectacles\n        \u003c\/h3\u003e\n\n        \u003cp\u003e\n          A playful detail\n          that gives this\n          little horse his\n          unmistakable\n          book-loving personality.\n        \u003c\/p\u003e\n\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"rh-detail\"\u003e\n\n        \u003cspan class=\"rh-detail-icon\"\u003e🧶\u003c\/span\u003e\n\n        \u003ch3\u003e\n          Cozy Knit Texture\n        \u003c\/h3\u003e\n\n        \u003cp\u003e\n          A cream-colored\n          cable-knit-style\n          sweater adds\n          nostalgic warmth\n          and character.\n        \u003c\/p\u003e\n\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"rh-detail\"\u003e\n\n        \u003cspan class=\"rh-detail-icon\"\u003e🧣\u003c\/span\u003e\n\n        \u003ch3\u003e\n          Vintage Plaid Scarf\n        \u003c\/h3\u003e\n\n        \u003cp\u003e\n          Warm plaid\n          colors complete\n          the charming,\n          old-fashioned\n          reading outfit.\n        \u003c\/p\u003e\n\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"rh-detail\"\u003e\n\n        \u003cspan class=\"rh-detail-icon\"\u003e📖\u003c\/span\u003e\n\n        \u003ch3\u003e\n          Open Book \u0026amp; Boots\n        \u003c\/h3\u003e\n\n        \u003cp\u003e\n          An open book,\n          little boots,\n          and a relaxed\n          seated pose make\n          the character\n          especially endearing.\n        \u003c\/p\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n  \u003c!-- PHOTO GALLERY --\u003e\n\n  \u003csection class=\"rh-section rh-gallery\" data-rh-gallery\u003e\n\n    \u003cdiv class=\"rh-center\"\u003e\n\n      \u003cspan class=\"rh-kicker\"\u003e\n        TAKE A CLOSER LOOK\n      \u003c\/span\u003e\n\n      \u003ch2\u003e\n        So Many Details\n        to Fall in Love With.\n      \u003c\/h2\u003e\n\n      \u003cp class=\"rh-intro\"\u003e\n        Explore more real\n        product photographs\n        and display ideas.\n      \u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"rh-gallery-grid\"\u003e\n\n      \u003cfigure class=\"rh-gallery-item\" data-rh-img=\"2\"\u003e\n        \u003cfigcaption\u003e\n          Charming Details\n        \u003c\/figcaption\u003e\n      \u003c\/figure\u003e\n\n      \u003cfigure class=\"rh-gallery-item\" data-rh-img=\"3\"\u003e\n        \u003cfigcaption\u003e\n          A Closer View\n        \u003c\/figcaption\u003e\n      \u003c\/figure\u003e\n\n      \u003cfigure class=\"rh-gallery-item\" data-rh-img=\"4\"\u003e\n        \u003cfigcaption\u003e\n          Vintage Personality\n        \u003c\/figcaption\u003e\n      \u003c\/figure\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n  \u003c!-- DISTINCTIVE SHELF-SITTING DESIGN --\u003e\n\n  \u003csection class=\"rh-story alt\" data-rh-layout\u003e\n\n    \u003cdiv class=\"rh-story-copy\"\u003e\n\n      \u003cspan class=\"rh-kicker\"\u003e\n        THE PERFECT SPOT TO GET LOST IN A BOOK\n      \u003c\/span\u003e\n\n      \u003ch2\u003e\n        Let Those Little\n        Boots Dangle\n        Over the Edge.\n      \u003c\/h2\u003e\n\n      \u003cp\u003e\n        One of the\n        most lovable parts\n        of the design\n        is its relaxed\n        sitting pose.\n      \u003c\/p\u003e\n\n      \u003cp\u003e\n        Place the figurine\n        on a suitable,\n        stable shelf\n        and let its\n        little boots\n        hang naturally\n        over the front.\n      \u003c\/p\u003e\n\n      \u003cp\u003e\n        The pose makes\n        the shelf itself\n        part of the scene,\n        creating an\n        adorable visual\n        surprise between\n        your favorite books.\n      \u003c\/p\u003e\n\n      \u003cdiv class=\"rh-quote\"\u003e\n        He found his\n        favorite reading spot.\n        Maybe you'll find yours, too.\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n    \u003cfigure class=\"rh-story-image\" data-rh-img=\"5\"\u003e\u003c\/figure\u003e\n\n  \u003c\/section\u003e\n\n  \u003c!-- DISPLAY IDEAS --\u003e\n\n  \u003csection class=\"rh-section rh-places\"\u003e\n\n    \u003cdiv class=\"rh-center\"\u003e\n\n      \u003cspan class=\"rh-kicker\"\u003e\n        ONE LITTLE READER, SO MANY COZY CORNERS\n      \u003c\/span\u003e\n\n      \u003ch2\u003e\n        Right at Home\n        Wherever Stories Live.\n      \u003c\/h2\u003e\n\n      \u003cp class=\"rh-intro\"\u003e\n        Add a charming\n        literary touch\n        to your favorite\n        peaceful spaces.\n      \u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"rh-place-grid\"\u003e\n\n      \u003cdiv class=\"rh-place\"\u003e\n\n        \u003cspan\u003e☕\u003c\/span\u003e\n\n        \u003ch3\u003e\n          The Reading Nook\n        \u003c\/h3\u003e\n\n        \u003cp\u003e\n          Place him near\n          your favorite\n          novels, a cozy\n          chair, and a\n          warm cup of tea.\n        \u003c\/p\u003e\n\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"rh-place\"\u003e\n\n        \u003cspan\u003e📚\u003c\/span\u003e\n\n        \u003ch3\u003e\n          The Home Library\n        \u003c\/h3\u003e\n\n        \u003cp\u003e\n          Add a playful\n          equestrian touch\n          among classic books,\n          wooden shelves,\n          and vintage accents.\n        \u003c\/p\u003e\n\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"rh-place\"\u003e\n\n        \u003cspan\u003e✒️\u003c\/span\u003e\n\n        \u003ch3\u003e\n          The Home Office\n        \u003c\/h3\u003e\n\n        \u003cp\u003e\n          Bring a little\n          humor and character\n          to your desk,\n          study, or creative\n          workspace.\n        \u003c\/p\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n  \u003c!-- GIFT --\u003e\n\n  \u003csection class=\"rh-gift\"\u003e\n\n    \u003cspan class=\"rh-kicker\"\u003e\n      A GIFT WITH A LITTLE PERSONALITY\n    \u003c\/span\u003e\n\n    \u003ch2\u003e\n      For the Reader\n      Whose Heart\n      Belongs to Horses.\n    \u003c\/h2\u003e\n\n    \u003cdiv class=\"rh-rule\"\u003e\u003c\/div\u003e\n\n    \u003cp\u003e\n      Know someone who\n      loves horses\n      almost as much\n      as they love books?\n    \u003c\/p\u003e\n\n    \u003cp\u003e\n      This charming\n      little character\n      brings those two\n      passions together\n      in one playful\n      decorative piece.\n    \u003c\/p\u003e\n\n    \u003cp\u003e\n      A thoughtful surprise\n      for book lovers,\n      horse enthusiasts,\n      teachers, librarians,\n      moms, grandmas,\n      and friends who\n      love vintage-style decor.\n    \u003c\/p\u003e\n\n    \u003cspan class=\"rh-gift-quote\"\u003e\n      \"I saw this little\n      bookworm and\n      immediately thought of you.\" ❤️\n    \u003c\/span\u003e\n\n  \u003c\/section\u003e\n\n  \u003c!-- FAQ --\u003e\n\n  \u003csection class=\"rh-section rh-faq\"\u003e\n\n    \u003cdiv class=\"rh-center\"\u003e\n\n      \u003cspan class=\"rh-kicker\"\u003e\n        BEFORE YOU ORDER\n      \u003c\/span\u003e\n\n      \u003ch2\u003e\n        Frequently Asked Questions.\n      \u003c\/h2\u003e\n\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"rh-faq-list\"\u003e\n\n      \u003cdetails\u003e\n        \u003csummary\u003e\n          Is it designed to sit on a shelf?\n        \u003c\/summary\u003e\n        \u003cp\u003e\n          The figurine features\n          a playful seated pose\n          intended for display\n          on a suitable,\n          stable shelf or ledge.\n          Make sure it is\n          positioned securely.\n        \u003c\/p\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails\u003e\n        \u003csummary\u003e\n          Where else can I display it?\n        \u003c\/summary\u003e\n        \u003cp\u003e\n          It can be a\n          charming accent\n          for a home library,\n          reading nook,\n          office, or other\n          suitable indoor\n          display area.\n        \u003c\/p\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails\u003e\n        \u003csummary\u003e\n          What is it made of?\n        \u003c\/summary\u003e\n        \u003cp\u003e\n          Please review the\n          original product\n          specifications for\n          the confirmed material,\n          finish, weight,\n          and care instructions.\n        \u003c\/p\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails\u003e\n        \u003csummary\u003e\n          How big is the figurine?\n        \u003c\/summary\u003e\n        \u003cp\u003e\n          Please check the\n          current dimensions\n          and compare them\n          with your intended\n          shelf or display space.\n        \u003c\/p\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails\u003e\n        \u003csummary\u003e\n          Is it a good gift for book lovers?\n        \u003c\/summary\u003e\n        \u003cp\u003e\n          Its reading-inspired\n          pose and charming\n          horse character\n          make it a thoughtful\n          gift idea for readers,\n          collectors, and\n          lovers of whimsical\n          home decor.\n        \u003c\/p\u003e\n      \u003c\/details\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n  \u003c!-- ONLY BOTTOM BUTTON --\u003e\n\n  \u003csection class=\"rh-final\"\u003e\n\n    \u003cspan class=\"rh-kicker\"\u003e\n      A LITTLE CHARM FOR YOUR NEXT CHAPTER\n    \u003c\/span\u003e\n\n    \u003ch2\u003e\n      Make Room\n      for One More Reader.\n    \u003c\/h2\u003e\n\n    \u003cp\u003e\n      A charming horse,\n      an open book,\n      and a cozy\n      little corner.\n      Sometimes the smallest\n      details make a\n      home feel special.\n    \u003c\/p\u003e\n\n    \u003ca href=\"#\" class=\"rh-button\"\u003e\n      Meet Your Little Bookworm ↑\n    \u003c\/a\u003e\n\n    \u003cp style=\"\n      margin-top:11px;\n      color:#e6dace;\n      font-size:12px;\n    \"\u003e\n      Return to the top\n      to view product options.\n    \u003c\/p\u003e\n\n  \u003c\/section\u003e\n\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n  \"use strict\";\n\n  var PRODUCT_HANDLE =\n    \"vintage-reading-horse-shelf-sitter-\" +\n    \"whimsical-book-lover-figurine-\" +\n    \"✨-1\";\n\n  function initializeReadingHorse(){\n\n    var root=document.getElementById(\n      \"aj-reading-horse\"\n    );\n\n    if(\n      !root ||\n      root.dataset.initialized===\"1\"\n    ){\n      return;\n    }\n\n    root.dataset.initialized=\"1\";\n\n    \/*\n      OPTIONAL DIRECT SHOPIFY CDN LINKS\n\n      If your original product gallery\n      cannot be read, you can paste\n      its real CDN links below.\n\n      One URL per item, in photo order.\n    *\/\n\n    var DIRECT_IMAGES=[];\n\n    function normalizeURL(value){\n\n      if(!value){\n        return \"\";\n      }\n\n      if(typeof value===\"object\"){\n        value=value.src || value.url || \"\";\n      }\n\n      try{\n        return new URL(\n          value,\n          window.location.origin\n        ).href;\n      }catch(error){\n        return \"\";\n      }\n    }\n\n    function unique(items){\n\n      var seen={};\n\n      return items.map(\n        normalizeURL\n      ).filter(function(url){\n\n        if(!url){\n          return false;\n        }\n\n        var key=url.split(\"?\")[0];\n\n        if(seen[key]){\n          return false;\n        }\n\n        seen[key]=true;\n        return true;\n      });\n    }\n\n    function isProductImage(url){\n\n      return (\n        url.indexOf(\"cdn.shopify.com\")!==-1 ||\n        url.indexOf(\"\/cdn\/shop\/\")!==-1 ||\n        url.indexOf(\"\/s\/files\/\")!==-1\n      );\n    }\n\n    function verifyImage(url){\n\n      return new Promise(function(resolve){\n\n        var image=new Image();\n\n        image.onload=function(){\n          resolve(\n            image.naturalWidth\u003e0\n              ? url\n              : null\n          );\n        };\n\n        image.onerror=function(){\n          resolve(null);\n        };\n\n        image.src=url;\n      });\n    }\n\n    \/*\n      Read existing original Shopify\n      product gallery images.\n    *\/\n\n    function currentGalleryImages(){\n\n      var results=[];\n\n      var selectors=[\n        \"media-gallery img\",\n        \".product__media-list img\",\n        \".product__media img\",\n        \".product-media-container img\",\n        \".product-gallery img\",\n        \".product-single__photos img\",\n        \"[data-product-gallery] img\",\n        \"[id*='MediaGallery'] img\"\n      ];\n\n      document.querySelectorAll(\n        selectors.join(\",\")\n      ).forEach(function(img){\n\n        if(root.contains(img)){\n          return;\n        }\n\n        var src=\n          img.getAttribute(\"data-zoom-image\") ||\n          img.getAttribute(\"data-full-size\") ||\n          img.getAttribute(\"data-src\") ||\n          img.currentSrc ||\n          img.getAttribute(\"src\");\n\n        if(src){\n          results.push(src);\n        }\n\n      });\n\n      return unique(results).filter(\n        isProductImage\n      );\n    }\n\n    \/*\n      Insert real images in order.\n      Missing images never create\n      broken-image placeholders.\n    *\/\n\n    var rendered=false;\n\n    function renderImages(images){\n\n      if(rendered || !images.length){\n        return;\n      }\n\n      rendered=true;\n\n      var galleryCount=0;\n\n      root.querySelectorAll(\n        \"[data-rh-img]\"\n      ).forEach(function(holder){\n\n        var index=Number(\n          holder.getAttribute(\"data-rh-img\")\n        );\n\n        var source=images[index];\n\n        if(!source){\n          return;\n        }\n\n        var img=document.createElement(\"img\");\n\n        img.src=source;\n\n        img.alt=\n          \"Vintage reading horse shelf sitter figurine\";\n\n        img.loading=index===0\n          ? \"eager\"\n          : \"lazy\";\n\n        img.decoding=\"async\";\n\n        img.onerror=function(){\n          img.remove();\n          holder.classList.remove(\"ready\");\n        };\n\n        holder.insertBefore(\n          img,\n          holder.firstChild\n        );\n\n        holder.classList.add(\"ready\");\n\n        var layout=holder.closest(\n          \"[data-rh-layout]\"\n        );\n\n        if(layout){\n          layout.classList.add(\"has-image\");\n        }\n\n        if(\n          holder.classList.contains(\n            \"rh-gallery-item\"\n          )\n        ){\n          galleryCount++;\n        }\n\n      });\n\n      if(galleryCount\u003e0){\n\n        var gallery=root.querySelector(\n          \"[data-rh-gallery]\"\n        );\n\n        if(gallery){\n          gallery.classList.add(\"ready\");\n        }\n      }\n    }\n\n    async function applyImages(values){\n\n      var candidates=unique(values)\n        .filter(isProductImage)\n        .slice(0,12);\n\n      if(!candidates.length){\n        return false;\n      }\n\n      var checked=await Promise.all(\n        candidates.map(verifyImage)\n      );\n\n      var valid=checked.filter(Boolean);\n\n      if(!valid.length){\n        return false;\n      }\n\n      renderImages(valid);\n      return true;\n    }\n\n    \/*\n      Fetch exact product's original\n      images from the current store.\n    *\/\n\n    async function loadImages(){\n\n      if(DIRECT_IMAGES.length){\n\n        if(await applyImages(DIRECT_IMAGES)){\n          return;\n        }\n      }\n\n      var urls=[];\n\n      var currentPath=\n        decodeURIComponent(\n          window.location.pathname\n        );\n\n      if(\n        currentPath.indexOf(\n          \"vintage-reading-horse-shelf-sitter\"\n        )!==-1\n      ){\n        urls.push(\n          window.location.pathname\n            .replace(\/\\\/$\/,\"\")+\n          \".js\"\n        );\n      }\n\n      urls.push(\n        \"\/products\/\"+\n        encodeURIComponent(\n          PRODUCT_HANDLE\n        )+\n        \".js\"\n      );\n\n      for(var i=0;i\u003curls.length;i++){\n\n        try{\n\n          var response=await fetch(\n            urls[i],\n            {credentials:\"same-origin\"}\n          );\n\n          if(!response.ok){\n            continue;\n          }\n\n          var data=await response.json();\n\n          if(\n            data.handle \u0026\u0026\n            data.handle.indexOf(\n              \"vintage-reading-horse-shelf-sitter\"\n            )===-1\n          ){\n            continue;\n          }\n\n          if(\n            Array.isArray(data.images) \u0026\u0026\n            data.images.length\n          ){\n\n            if(await applyImages(data.images)){\n              return;\n            }\n          }\n\n        }catch(error){\n          \/* Try next source *\/\n        }\n      }\n\n      \/*\n        Fallback to existing Shopify\n        gallery on the same product page.\n      *\/\n\n      var fallback=currentGalleryImages();\n\n      if(fallback.length){\n        await applyImages(fallback);\n      }\n    }\n\n    \/*\n      Bottom button has native href=\"#\"\n      fallback if JavaScript is blocked.\n    *\/\n\n    var link=root.querySelector(\n      \".rh-button\"\n    );\n\n    if(link){\n\n      link.addEventListener(\n        \"click\",\n        function(event){\n\n          event.preventDefault();\n\n          var reduceMotion=\n            window.matchMedia \u0026\u0026\n            window.matchMedia(\n              \"(prefers-reduced-motion: reduce)\"\n            ).matches;\n\n          window.scrollTo({\n            top:0,\n            left:0,\n            behavior:reduceMotion\n              ? \"auto\"\n              : \"smooth\"\n          });\n        }\n      );\n    }\n\n    loadImages();\n\n  }\n\n  if(document.readyState===\"loading\"){\n\n    document.addEventListener(\n      \"DOMContentLoaded\",\n      initializeReadingHorse\n    );\n\n  }else{\n\n    initializeReadingHorse();\n  }\n\n  document.addEventListener(\n    \"shopify:section:load\",\n    initializeReadingHorse\n  );\n\n})();\n\u003c\/script\u003e\n","brand":"LHK","offers":[{"title":"Default Title","offer_id":68238219509997,"sku":"E8F26110701-马看书摆件","price":32.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0841\/9354\/2381\/files\/97861408334544897.webp?v=1794191702","url":"https:\/\/alasjoy.com\/products\/vintage-reading-horse-shelf-sitter","provider":"alasjoy","version":"1.0","type":"link"}