{"title":"Customer Favorites","description":null,"products":[{"product_id":"customsolo-love-you-mom-test-v1","title":"Personalized Acrylic Photo Plaque for Mom — Love You, Mom","description":"\u003cdiv class=\"cs-lb-root\"\u003e\n\u003cstyle\u003e\n.cs-lb-root,.cs-lb-root *{box-sizing:border-box}\n.cs-lb-root *{text-transform:none}\n.cs-lb-root{font-family:-apple-system, BlinkMacSystemFont, 'system-ui', 'SF Pro Text', 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif;color:#1d1d1f;font-size:16px;line-height:1.6;margin:0}\n\n\/* break out of the theme's 720px desc column; width = pdp-lookbook-v5 .wrap content box (1200-96=1104) *\/\n@media(min-width:1024px){\n.cs-lb-root{width:min(1104px,100vw - 96px);\nmargin-left:calc(50% - min(552px,50vw - 48px));margin-right:calc(50% - min(552px,50vw - 48px))}\n}\n\n.cs-lb-root .cs-lb-eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#707070;font-weight:500;margin:0}\n.cs-lb-root .cs-lb-display{font-size:52px;line-height:1.05;font-weight:700;letter-spacing:-.025em;margin:20px 0 18px;color:#1d1d1f}\n.cs-lb-root .cs-lb-display .cs-lb-line{display:block}\n.cs-lb-root .cs-lb-lede{font-size:17px;line-height:1.62;color:#707070;max-width:46ch;margin:0}\n\n\/* story lead: single column by default, two columns from 1024px *\/\n.cs-lb-root .cs-lb-lead{margin:0}\n.cs-lb-root .cs-lb-visual{margin:32px 0 0;border-radius:16px;overflow:hidden;background:#f5f5f7}\n.cs-lb-root .cs-lb-visual img{display:block;width:100%;height:auto;aspect-ratio:4\/5;object-fit:cover;border-radius:16px}\n@media(min-width:1024px){\n.cs-lb-root .cs-lb-lead{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:start}\n.cs-lb-root .cs-lb-visual{margin:0}\n}\n@media(min-width:1024px) and (max-width:1199px){\n.cs-lb-root .cs-lb-display{font-size:44px}\n}\n\n\/* icon row *\/\n.cs-lb-root .cs-lb-iconrow{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:44px}\n.cs-lb-root .cs-lb-ico{width:46px;height:46px;border-radius:50%;background:#f5f5f7;display:flex;align-items:center;justify-content:center}\n.cs-lb-root .cs-lb-iconrow h4{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;margin:16px 0 7px;color:#1d1d1f}\n.cs-lb-root .cs-lb-iconrow p{font-size:14px;line-height:1.5;color:#707070;margin:0}\n\n\/* your story card *\/\n.cs-lb-root .cs-lb-storycard{background:#f5f5f7;border-radius:16px;padding:18px;display:flex;gap:18px;align-items:center;margin-top:40px}\n.cs-lb-root .cs-lb-storycard img{width:76px;height:76px;border-radius:10px;object-fit:cover;flex:0 0 76px;display:block}\n.cs-lb-root .cs-lb-storycard .cs-lb-k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#707070;font-weight:500;margin:0}\n.cs-lb-root .cs-lb-storycard .cs-lb-v{font-size:20px;font-weight:600;margin:4px 0 0;color:#1d1d1f}\n.cs-lb-root .cs-lb-storycard .cs-lb-s{font-size:15px;color:#707070;margin:2px 0 0}\n\n\/* buy row (v5 .buyrow) *\/\n.cs-lb-root .cs-lb-buyrow{display:flex;align-items:center;gap:22px;margin-top:26px}\n.cs-lb-root .cs-lb-btn{height:48px;padding:0 28px;border-radius:999px;background:#1d1d1f;color:#fff;\n  font-size:15px;font-weight:500;letter-spacing:0;display:inline-flex;align-items:center;justify-content:center;gap:10px;\n  text-decoration:none;transition:opacity .2s}\n.cs-lb-root .cs-lb-btn:hover{opacity:.85;color:#fff}\n.cs-lb-root .cs-lb-btn svg{flex:0 0 16px}\n.cs-lb-root .cs-lb-from{font-size:18px;font-weight:600;color:#1d1d1f}\n\n\/* specs (v5: right after story lead) *\/\n.cs-lb-root .cs-lb-specs{display:grid;grid-template-columns:repeat(4,1fr);margin:88px 0 0;border-top:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-spec{padding:34px 30px 36px 0;border-right:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-spec:last-child{border-right:0;padding-right:0}\n.cs-lb-root .cs-lb-spec .cs-lb-k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#707070;font-weight:500;margin:0 0 12px;\n  display:flex;align-items:center;gap:8px}\n.cs-lb-root .cs-lb-spec .cs-lb-v{margin:12px 0 0;font-size:16px;line-height:1.5;color:#1d1d1f}\n\n\/* chapter head *\/\n.cs-lb-root .cs-lb-chaphead{margin-top:96px;margin-bottom:12px;max-width:720px}\n.cs-lb-root .cs-lb-chaphead .cs-lb-display{font-size:44px;margin:0}\n\n\/* chapters *\/\n\/* closing band (v5 .closing): mist CTA band at the very end of the description.\n   It is wider than the 1104px column (100vw-32 pulled back by half, padding re-centres copy).\n   The -32px \/ +16px offset is deliberate: even if a browser ignores `overflow-x:clip`\n   (pre-Safari-16), the band still stays inside clientWidth, so no horizontal scrollbar.\n   The theme's own full-bleed band is `.cs-pdp-desc.is-band{margin-inline:-120px}` inside\n   `.cs-main{max-width:1440px;padding:0 120px}` -\u003e it spans the whole .cs-main box (1440px).\n   We cannot add a class to that theme element, so we reproduce the same result from inside:\n   the band is 100vw-48px wide (measured: a bare 100vw gives scrollWidth 1433 \u003e clientWidth\n   1425, i.e. a horizontal scrollbar, so we keep 24px of headroom on each side).\n   Do NOT clamp this with `overflow-x:clip` on `.cs-pdp-desc` - that element is only the\n   1200px grid column, so clipping would shrink the band to the column (120px gutters). *\/\n.cs-lb-root .cs-lb-closing{background:#f5f5f7;margin:0;padding:88px 0;text-align:left;\n  width:calc(100vw - 48px);margin-left:calc(50% - 50vw + 24px);margin-right:calc(50% - 50vw + 24px);\n  padding-left:calc(50vw - 50% - 24px);padding-right:calc(50vw - 50% - 24px)}\n.cs-lb-root .cs-lb-closing h2{font-size:40px;line-height:1.1;font-weight:700;letter-spacing:-.02em;\n  color:#1d1d1f;margin:0}\n.cs-lb-root .cs-lb-closing p{font-size:17px;line-height:1.5;color:#707070;margin:14px 0 0}\n.cs-lb-root .cs-lb-closing .cs-lb-btn{margin:28px 0 0;padding:0 30px}\n\n.cs-lb-root .cs-lb-rows{margin:40px 0 0;border-top:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-row{display:grid;grid-template-columns:1.24fr .86fr;gap:72px;align-items:center;\n  padding:60px 0;border-bottom:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-row:last-child{border-bottom:0}\n.cs-lb-root .cs-lb-media{margin:0;border-radius:16px;overflow:hidden;background:#f5f5f7}\n.cs-lb-root .cs-lb-media img{display:block;width:100%;height:auto;aspect-ratio:1536\/938;object-fit:cover;border-radius:16px}\n.cs-lb-root .cs-lb-copy{max-width:42ch}\n.cs-lb-root .cs-lb-idx{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#707070;font-weight:500;margin:0 0 16px}\n.cs-lb-root .cs-lb-copy h3{font-size:34px;line-height:1.15;font-weight:600;letter-spacing:-.022em;margin:0 0 14px;color:#1d1d1f;text-transform:none}\n.cs-lb-root .cs-lb-copy p{margin:0;font-size:16px;line-height:1.66;color:#707070}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-media{order:2}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-copy{order:1}\n\n\/* hide the theme's own \"The details\" eyebrow (user approved 2026-09-28:\n   both `THE DETAILS` and `The details` are removed, so the two are not duplicated).\n   Scoped to the direct child span of the desc inner -\u003e only this product page is\n   affected, because this \u003cstyle\u003e ships inside this product's body_html. *\/\n.cs-pdp-desc__inner \u003e .cs-pdp-desc__eyebrow{display:none}\n\n\/* trust row (v5 .trust, right after the chapters; the 72px gap below the last\n   chapter comes from v5 `.chapters{padding:96px 0 72px}` and is carried by margin-top here) *\/\n.cs-lb-root .cs-lb-trust{border-top:1px solid #e5e5e5;padding:64px 0;\n  display:grid;grid-template-columns:repeat(4,1fr);gap:36px;margin:72px 0 0}\n.cs-lb-root .cs-lb-trust svg{display:block;color:#1d1d1f}\n.cs-lb-root .cs-lb-trust h4{font-size:14px;line-height:1.4;font-weight:500;letter-spacing:0;\n  margin:16px 0 7px;color:#1d1d1f}\n.cs-lb-root .cs-lb-trust p{font-size:13px;line-height:1.55;color:#707070;margin:0}\n\n@media(max-width:960px){\n.cs-lb-root .cs-lb-display{font-size:34px}\n.cs-lb-root .cs-lb-chaphead{margin-top:56px;margin-bottom:0}\n.cs-lb-root .cs-lb-chaphead .cs-lb-display{font-size:30px}\n.cs-lb-root .cs-lb-rows .cs-lb-row{grid-template-columns:1fr;gap:22px;padding:36px 0}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-media{order:0}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-copy{order:1}\n.cs-lb-root .cs-lb-copy{max-width:none}\n.cs-lb-root .cs-lb-copy h3{font-size:24px;margin:0 0 10px}\n.cs-lb-root .cs-lb-copy p{font-size:15px}\n.cs-lb-root .cs-lb-specs{grid-template-columns:repeat(2,1fr);column-gap:22px;margin-top:56px}\n.cs-lb-root .cs-lb-spec{border-right:0;border-bottom:1px solid #e5e5e5;padding:24px 0}\n.cs-lb-root .cs-lb-trust{grid-template-columns:repeat(2,1fr);gap:28px;margin-top:56px;padding:48px 0}\n.cs-lb-root .cs-lb-closing{margin-top:0;padding:64px 0}\n.cs-lb-root .cs-lb-closing h2{font-size:30px}\n.cs-lb-root .cs-lb-closing p{font-size:16px}\n}\n@media(max-width:520px){\n.cs-lb-root .cs-lb-display{font-size:28px}\n.cs-lb-root .cs-lb-lede{font-size:16px}\n.cs-lb-root .cs-lb-iconrow{gap:14px}\n.cs-lb-root .cs-lb-iconrow h4{font-size:11px;letter-spacing:.1em}\n.cs-lb-root .cs-lb-iconrow p{font-size:12px;line-height:1.4}\n.cs-lb-root .cs-lb-copy h3{font-size:21px}\n.cs-lb-root .cs-lb-specs{grid-template-columns:1fr}\n.cs-lb-root .cs-lb-buyrow{flex-wrap:wrap;gap:14px}\n.cs-lb-root .cs-lb-trust{grid-template-columns:1fr;gap:24px}\n}\n\u003c\/style\u003e\n\u003cdiv class=\"cs-lb-lead\"\u003e\n\u003cdiv class=\"cs-lb-leadcopy\"\u003e\n\u003cp class=\"cs-lb-eyebrow\"\u003eMade from your story\u003c\/p\u003e\n\u003cp class=\"cs-lb-display\"\u003e\u003cspan class=\"cs-lb-line\"\u003elove you, mom\u003c\/span\u003e\u003cspan class=\"cs-lb-line\"\u003esaid once, kept forever.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"cs-lb-lede\"\u003eTurn a photo, a name or a date into a keepsake she keeps out all year — not in a drawer. Printed in high resolution behind cast acrylic, standing on a wooden base.\u003c\/p\u003e\n\u003cdiv class=\"cs-lb-iconrow\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\"\u003e\u003c\/rect\u003e\u003ccircle cx=\"8.5\" cy=\"10\" r=\"1.6\"\u003e\u003c\/circle\u003e\u003cpath d=\"M4 17l4.5-4.5 3.5 3.5 3-3L20 17\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003ePhoto\u003c\/h4\u003e\n\u003cp\u003eAdd your favorite photo\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M6 5h12M12 5v14M9 19h6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eName\u003c\/h4\u003e\n\u003cp\u003eAdd a name that matters\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"5\" width=\"16\" height=\"15\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M4 10h16M9 3v4M15 3v4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eDate\u003c\/h4\u003e\n\u003cp\u003eAdd a date or message\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-storycard\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/story-thumb_34fdb39f-f158-4fdb-8d34-7a5c78c27f05.jpg?v=1790577678\" alt=\"Preview of the personalized plaque\" loading=\"lazy\"\u003e\u003cdiv\u003e\n\u003cp class=\"cs-lb-k\"\u003eYour story\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eMom\u003c\/p\u003e\n\u003cp class=\"cs-lb-s\"\u003eAlways with me ♡\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-buyrow\"\u003e\n\u003ca class=\"cs-lb-btn\" href=\"#customizer\"\u003ePersonalize Yours\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M5 12h13M13 6l6 6-6 6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/a\u003e\u003cspan class=\"cs-lb-from\"\u003eFrom $27.95\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-visual\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/story-visual.jpg?v=1790577690\" alt=\"Mom holding the personalized acrylic plaque\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-specs\"\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M9 4v16\"\u003e\u003c\/path\u003e\u003c\/svg\u003eMaterial\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eCast acrylic, printed with UV-cured inks\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M3 17h18M7 17V8h10v9\"\u003e\u003c\/path\u003e\u003c\/svg\u003eBase\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eA wooden slot base, so it stands on its own\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 9l8-4 8 4v9l-8 4-8-4V9z\"\u003e\u003c\/path\u003e\u003cpath d=\"M4 9l8 4 8-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003ePackaging\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eArrives in a gift box, ready to give\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 16V5M8 9l4-4 4 4\"\u003e\u003c\/path\u003e\u003cpath d=\"M5 16v2.5A1.5 1.5 0 006.5 20h11a1.5 1.5 0 001.5-1.5V16\"\u003e\u003c\/path\u003e\u003c\/svg\u003eYour photo\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eJPG, PNG or WebP up to 10 MB\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-chaphead\"\u003e\u003cp class=\"cs-lb-display\"\u003eEverything about it, up close.\u003c\/p\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-rows\"\u003e\n\u003cdiv class=\"cs-lb-row\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/detail-01-the-moment.jpg?v=1790574963\" alt=\"Mom opening the gift box at a kitchen table and looking at the plaque\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e01 — The moment\u003c\/p\u003e\n\u003ch3\u003eGive it to her in person if you can.\u003c\/h3\u003e\n\u003cp\u003eIt arrives gift-boxed and ribbon-ready. The first thirty seconds are the whole gift — everything after that is her keeping it out where the light reaches it.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row cs-lb-flip\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/detail-02-the-home.jpg?v=1790574973\" alt=\"The plaque on a warm bedroom nightstand beside a lamp and eucalyptus\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e02 — The home\u003c\/p\u003e\n\u003ch3\u003eOn her nightstand, not in a drawer.\u003c\/h3\u003e\n\u003cp\u003eA wooden base so it stands where the light actually reaches it — lamplight at night, morning light on the shelf. No frame to clash, no colour to argue with.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/detail-03-the-making.jpg?v=1790574987\" alt=\"Uploading a photo on a phone next to the finished plaque\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e03 — The making\u003c\/p\u003e\n\u003ch3\u003eUpload it. Preview it. Approve it.\u003c\/h3\u003e\n\u003cp\u003eThree steps, and nothing is made until you say so. What you see in the preview is exactly what she unwraps.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row cs-lb-flip\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/detail-04-the-season.jpg?v=1790574998\" alt=\"The plaque standing in its kraft gift box under a Christmas tree\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e04 — The season\u003c\/p\u003e\n\u003ch3\u003eThe smallest box she opens, kept out all year.\u003c\/h3\u003e\n\u003cp\u003eSome gifts get used. This one gets displayed — and it will still be standing there next December.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-trust\"\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 20s-7-4.3-7-9a4 4 0 017-2.6A4 4 0 0119 11c0 4.7-7 9-7 9z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eEmotion First\u003c\/h4\u003e\n\u003cp\u003eDesigned around a real memory, not a template.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 3l8 3v6c0 4.4-3.3 7.9-8 9-4.7-1.1-8-4.6-8-9V6l8-3z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 12l2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eLasting Quality\u003c\/h4\u003e\n\u003cp\u003eCast acrylic and UV-cured inks, built to last.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"10\" width=\"16\" height=\"10\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M8 10V7.5a4 4 0 018 0V10\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003ePrivacy Always\u003c\/h4\u003e\n\u003cp\u003eYour photos stay yours. Never shared or resold.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 21c5-2.5 8-6 8-11V5l-8-2-8 2v5c0 5 3 8.5 8 11z\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 8v6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eThoughtful Impact\u003c\/h4\u003e\n\u003cp\u003eMade to order, so nothing is made to be wasted.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-closing\"\u003e\n\u003ch2\u003eMade for their story.\u003c\/h2\u003e\n\u003cp\u003eGifts that capture what matters most.\u003c\/p\u003e\n\u003ca class=\"cs-lb-btn\" href=\"\/collections\/all\"\u003eFind the perfect gift\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\":\"https:\/\/schema.org\",\"@type\":\"Product\",\"name\":\"Personalized Acrylic Photo Plaque for Mom — Love You, Mom\",\"description\":\"Personalized Acrylic Photo Plaque for Mom. Made to order from your photo — you approve a preview before we print. $27.95.\",\"sku\":\"CS-LOVEMOM-V1\",\"brand\":{\"@type\":\"Brand\",\"name\":\"Custom Solo\"},\"category\":\"Acrylic Photo Plaque for Mom\",\"image\":[\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/2ccae9fe-a81c-4ecc-9160-cf5011860d45.png\"],\"offers\":{\"@type\":\"Offer\",\"url\":\"https:\/\/customsolo.com\/products\/customsolo-love-you-mom-test-v1\",\"priceCurrency\":\"USD\",\"price\":\"27.95\",\"availability\":\"https:\/\/schema.org\/InStock\"}}\u003c\/script\u003e","brand":"customsolo","offers":[{"title":"Default Title","offer_id":49039439265984,"sku":"CS-LOVEMOM-V1","price":27.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/2ccae9fe-a81c-4ecc-9160-cf5011860d45.png?v=1789714048"},{"product_id":"personalized-christmas-ornament-for-couples-years-together","title":"Personalized Christmas Ornament for Couples — Years Together","description":"\u003c!--\n  CUSTOMSOLO PDP LOOKBOOK - BODY_HTML TEMPLATE v1.0\n  Source: live product page customsolo.com\/products\/customsolo-love-you-mom-test-v1\n          (measured 2026-09-29, body_html 16101 bytes, 6 img slots, 47 text slots)\n  Usage: copy this file, replace every , then PUT as product body_html.\n  RULES\n    - EVERY selector in \u003cstyle\u003e is prefixed .cs-lb-  (protects the customizer). Do not add bare tag selectors.\n    - ENGLISH ONLY. No Chinese anywhere, including CSS comments.\n    - Module order is fixed: lead \/ specs \/ chaphead \/ 4 chapters \/ trust \/ closing.\n    - Image slots are 6 = story-thumb (reuse the customer photo preview, 76x76) + hero (4:5)\n      + 4 chapter images (1536x938). Only 5 images need to be generated.\n    - Do NOT hand-write this HTML from memory. Copy this template.\n--\u003e\n\u003cdiv class=\"cs-lb-root\"\u003e\n\u003cstyle\u003e\n.cs-lb-root,.cs-lb-root *{box-sizing:border-box}\n.cs-lb-root *{text-transform:none}\n.cs-lb-root{font-family:-apple-system, BlinkMacSystemFont, 'system-ui', 'SF Pro Text', 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif;color:#1d1d1f;font-size:16px;line-height:1.6;margin:0}\n\n\/* break out of the theme's 720px desc column; width = pdp-lookbook-v5 .wrap content box (1200-96=1104) *\/\n@media(min-width:1024px){\n.cs-lb-root{width:min(1104px,100vw - 96px);\nmargin-left:calc(50% - min(552px,50vw - 48px));margin-right:calc(50% - min(552px,50vw - 48px))}\n}\n\n.cs-lb-root .cs-lb-eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#707070;font-weight:500;margin:0}\n.cs-lb-root .cs-lb-display{font-size:52px;line-height:1.05;font-weight:700;letter-spacing:-.025em;margin:20px 0 18px;color:#1d1d1f}\n.cs-lb-root .cs-lb-display .cs-lb-line{display:block}\n.cs-lb-root .cs-lb-lede{font-size:17px;line-height:1.62;color:#707070;max-width:46ch;margin:0}\n\n\/* story lead: single column by default, two columns from 1024px *\/\n.cs-lb-root .cs-lb-lead{margin:0}\n.cs-lb-root .cs-lb-visual{margin:32px 0 0;border-radius:16px;overflow:hidden;background:#f5f5f7}\n.cs-lb-root .cs-lb-visual img{display:block;width:100%;height:auto;aspect-ratio:4\/5;object-fit:cover;border-radius:16px}\n@media(min-width:1024px){\n.cs-lb-root .cs-lb-lead{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:start}\n.cs-lb-root .cs-lb-visual{margin:0}\n}\n@media(min-width:1024px) and (max-width:1199px){\n.cs-lb-root .cs-lb-display{font-size:44px}\n}\n\n\/* icon row *\/\n.cs-lb-root .cs-lb-iconrow{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:44px}\n.cs-lb-root .cs-lb-ico{width:46px;height:46px;border-radius:50%;background:#f5f5f7;display:flex;align-items:center;justify-content:center}\n.cs-lb-root .cs-lb-iconrow h4{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;margin:16px 0 7px;color:#1d1d1f}\n.cs-lb-root .cs-lb-iconrow p{font-size:14px;line-height:1.5;color:#707070;margin:0}\n\n\/* your story card *\/\n.cs-lb-root .cs-lb-storycard{background:#f5f5f7;border-radius:16px;padding:18px;display:flex;gap:18px;align-items:center;margin-top:40px}\n.cs-lb-root .cs-lb-storycard img{width:76px;height:76px;border-radius:10px;object-fit:cover;flex:0 0 76px;display:block}\n.cs-lb-root .cs-lb-storycard .cs-lb-k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#707070;font-weight:500;margin:0}\n.cs-lb-root .cs-lb-storycard .cs-lb-v{font-size:20px;font-weight:600;margin:4px 0 0;color:#1d1d1f}\n.cs-lb-root .cs-lb-storycard .cs-lb-s{font-size:15px;color:#707070;margin:2px 0 0}\n\n\/* buy row (v5 .buyrow) *\/\n.cs-lb-root .cs-lb-buyrow{display:flex;align-items:center;gap:22px;margin-top:26px}\n.cs-lb-root .cs-lb-btn{height:48px;padding:0 28px;border-radius:999px;background:#1d1d1f;color:#fff;\n  font-size:15px;font-weight:500;letter-spacing:0;display:inline-flex;align-items:center;justify-content:center;gap:10px;\n  text-decoration:none;transition:opacity .2s}\n.cs-lb-root .cs-lb-btn:hover{opacity:.85;color:#fff}\n.cs-lb-root .cs-lb-btn svg{flex:0 0 16px}\n.cs-lb-root .cs-lb-from{font-size:18px;font-weight:600;color:#1d1d1f}\n\n\/* specs (v5: right after story lead) *\/\n.cs-lb-root .cs-lb-specs{display:grid;grid-template-columns:repeat(4,1fr);margin:88px 0 0;border-top:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-spec{padding:34px 30px 36px 0;border-right:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-spec:last-child{border-right:0;padding-right:0}\n.cs-lb-root .cs-lb-spec .cs-lb-k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#707070;font-weight:500;margin:0 0 12px;\n  display:flex;align-items:center;gap:8px}\n.cs-lb-root .cs-lb-spec .cs-lb-v{margin:12px 0 0;font-size:16px;line-height:1.5;color:#1d1d1f}\n\n\/* chapter head *\/\n.cs-lb-root .cs-lb-chaphead{margin-top:96px;margin-bottom:12px;max-width:720px}\n.cs-lb-root .cs-lb-chaphead .cs-lb-display{font-size:44px;margin:0}\n\n\/* chapters *\/\n\/* closing band (v5 .closing): mist CTA band at the very end of the description.\n   It is wider than the 1104px column (100vw-32 pulled back by half, padding re-centres copy).\n   The -32px \/ +16px offset is deliberate: even if a browser ignores `overflow-x:clip`\n   (pre-Safari-16), the band still stays inside clientWidth, so no horizontal scrollbar.\n   The theme's own full-bleed band is `.cs-pdp-desc.is-band{margin-inline:-120px}` inside\n   `.cs-main{max-width:1440px;padding:0 120px}` -\u003e it spans the whole .cs-main box (1440px).\n   We cannot add a class to that theme element, so we reproduce the same result from inside:\n   the band is 100vw-48px wide (measured: a bare 100vw gives scrollWidth 1433 \u003e clientWidth\n   1425, i.e. a horizontal scrollbar, so we keep 24px of headroom on each side).\n   Do NOT clamp this with `overflow-x:clip` on `.cs-pdp-desc` - that element is only the\n   1200px grid column, so clipping would shrink the band to the column (120px gutters). *\/\n.cs-lb-root .cs-lb-closing{background:#f5f5f7;margin:0;padding:88px 0;text-align:left;\n  width:calc(100vw - 48px);margin-left:calc(50% - 50vw + 24px);margin-right:calc(50% - 50vw + 24px);\n  padding-left:calc(50vw - 50% - 24px);padding-right:calc(50vw - 50% - 24px)}\n.cs-lb-root .cs-lb-closing h2{font-size:40px;line-height:1.1;font-weight:700;letter-spacing:-.02em;\n  color:#1d1d1f;margin:0}\n.cs-lb-root .cs-lb-closing p{font-size:17px;line-height:1.5;color:#707070;margin:14px 0 0}\n.cs-lb-root .cs-lb-closing .cs-lb-btn{margin:28px 0 0;padding:0 30px}\n\n.cs-lb-root .cs-lb-rows{margin:40px 0 0;border-top:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-row{display:grid;grid-template-columns:1.24fr .86fr;gap:72px;align-items:center;\n  padding:60px 0;border-bottom:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-row:last-child{border-bottom:0}\n.cs-lb-root .cs-lb-media{margin:0;border-radius:16px;overflow:hidden;background:#f5f5f7}\n.cs-lb-root .cs-lb-media img{display:block;width:100%;height:auto;aspect-ratio:1536\/938;object-fit:cover;border-radius:16px}\n.cs-lb-root .cs-lb-copy{max-width:42ch}\n.cs-lb-root .cs-lb-idx{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#707070;font-weight:500;margin:0 0 16px}\n.cs-lb-root .cs-lb-copy h3{font-size:34px;line-height:1.15;font-weight:600;letter-spacing:-.022em;margin:0 0 14px;color:#1d1d1f;text-transform:none}\n.cs-lb-root .cs-lb-copy p{margin:0;font-size:16px;line-height:1.66;color:#707070}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-media{order:2}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-copy{order:1}\n\n\/* hide the theme's own \"The details\" eyebrow (user approved 2026-09-28:\n   both `THE DETAILS` and `The details` are removed, so the two are not duplicated).\n   Scoped to the direct child span of the desc inner -\u003e only this product page is\n   affected, because this \u003cstyle\u003e ships inside this product's body_html. *\/\n.cs-pdp-desc__inner \u003e .cs-pdp-desc__eyebrow{display:none}\n\n\/* trust row (v5 .trust, right after the chapters; the 72px gap below the last\n   chapter comes from v5 `.chapters{padding:96px 0 72px}` and is carried by margin-top here) *\/\n.cs-lb-root .cs-lb-trust{border-top:1px solid #e5e5e5;padding:64px 0;\n  display:grid;grid-template-columns:repeat(4,1fr);gap:36px;margin:72px 0 0}\n.cs-lb-root .cs-lb-trust svg{display:block;color:#1d1d1f}\n.cs-lb-root .cs-lb-trust h4{font-size:14px;line-height:1.4;font-weight:500;letter-spacing:0;\n  margin:16px 0 7px;color:#1d1d1f}\n.cs-lb-root .cs-lb-trust p{font-size:13px;line-height:1.55;color:#707070;margin:0}\n\n@media(max-width:960px){\n.cs-lb-root .cs-lb-display{font-size:34px}\n.cs-lb-root .cs-lb-chaphead{margin-top:56px;margin-bottom:0}\n.cs-lb-root .cs-lb-chaphead .cs-lb-display{font-size:30px}\n.cs-lb-root .cs-lb-rows .cs-lb-row{grid-template-columns:1fr;gap:22px;padding:36px 0}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-media{order:0}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-copy{order:1}\n.cs-lb-root .cs-lb-copy{max-width:none}\n.cs-lb-root .cs-lb-copy h3{font-size:24px;margin:0 0 10px}\n.cs-lb-root .cs-lb-copy p{font-size:15px}\n.cs-lb-root .cs-lb-specs{grid-template-columns:repeat(2,1fr);column-gap:22px;margin-top:56px}\n.cs-lb-root .cs-lb-spec{border-right:0;border-bottom:1px solid #e5e5e5;padding:24px 0}\n.cs-lb-root .cs-lb-trust{grid-template-columns:repeat(2,1fr);gap:28px;margin-top:56px;padding:48px 0}\n.cs-lb-root .cs-lb-closing{margin-top:0;padding:64px 0}\n.cs-lb-root .cs-lb-closing h2{font-size:30px}\n.cs-lb-root .cs-lb-closing p{font-size:16px}\n}\n@media(max-width:520px){\n.cs-lb-root .cs-lb-display{font-size:28px}\n.cs-lb-root .cs-lb-lede{font-size:16px}\n.cs-lb-root .cs-lb-iconrow{gap:14px}\n.cs-lb-root .cs-lb-iconrow h4{font-size:11px;letter-spacing:.1em}\n.cs-lb-root .cs-lb-iconrow p{font-size:12px;line-height:1.4}\n.cs-lb-root .cs-lb-copy h3{font-size:21px}\n.cs-lb-root .cs-lb-specs{grid-template-columns:1fr}\n.cs-lb-root .cs-lb-buyrow{flex-wrap:wrap;gap:14px}\n.cs-lb-root .cs-lb-trust{grid-template-columns:1fr;gap:24px}\n}\n\u003c\/style\u003e\n\u003cdiv class=\"cs-lb-lead\"\u003e\n\u003cdiv class=\"cs-lb-leadcopy\"\u003e\n\u003cp class=\"cs-lb-eyebrow\"\u003ePERSONALIZED CHRISTMAS ORNAMENT FOR COUPLES\u003c\/p\u003e\n\u003cp class=\"cs-lb-display\"\u003e\u003cspan class=\"cs-lb-line\"\u003eeight years together,\u003c\/span\u003e\u003cspan class=\"cs-lb-line\"\u003eand the star goes crooked.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"cs-lb-lede\"\u003eEvery December the tree gets decorated the same way — you, him, the same argument about where the star goes, and you letting him win it. His name, your number of years, and the line that is true every Christmas, printed under the surface of a crystal ornament that comes out of the box first. Made to order, and nothing is made until you have seen the proof.\u003c\/p\u003e\n\u003cdiv class=\"cs-lb-iconrow\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\"\u003e\u003c\/rect\u003e\u003ccircle cx=\"8.5\" cy=\"10\" r=\"1.6\"\u003e\u003c\/circle\u003e\u003cpath d=\"M4 17l4.5-4.5 3.5 3.5 3-3L20 17\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003ePhoto\u003c\/h4\u003e\n\u003cp\u003eThe one you would take again, exactly the same\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M6 5h12M12 5v14M9 19h6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eName\u003c\/h4\u003e\n\u003cp\u003eHis name, spelled the way you say it\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"5\" width=\"16\" height=\"15\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M4 10h16M9 3v4M15 3v4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eDate\u003c\/h4\u003e\n\u003cp\u003eThe number of years, as of this Christmas\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-storycard\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/story-thumb-orn0002couple.jpg\" alt=\"Close-up of the uploaded photo of a woman and her corgi printed inside the crystal ornament\" loading=\"lazy\"\u003e\u003cdiv\u003e\n\u003cp class=\"cs-lb-k\"\u003eYour story\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eKenny · 8 years together\u003c\/p\u003e\n\u003cp class=\"cs-lb-s\"\u003eEvery Christmas, by my side\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-buyrow\"\u003e\n\u003ca class=\"cs-lb-btn\" href=\"#customizer\"\u003ePersonalize Yours\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M5 12h13M13 6l6 6-6 6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/a\u003e\u003cspan class=\"cs-lb-from\"\u003eFrom $16.95\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-visual\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-christmas-ornament-for-couples-orn0002couple-main-1.jpg\" alt=\"Two hands offering the personalized Christmas ornament for couples, held up by its red-and-white ribbon\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-specs\"\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M9 4v16\"\u003e\u003c\/path\u003e\u003c\/svg\u003eMaterial\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eHand-finished crystal, 5 in (12.7 cm) round\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M3 17h18M7 17V8h10v9\"\u003e\u003c\/path\u003e\u003c\/svg\u003eFinish\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eFaceted, diamond-cut rim, print sealed under the surface\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 9l8-4 8 4v9l-8 4-8-4V9z\"\u003e\u003c\/path\u003e\u003cpath d=\"M4 9l8 4 8-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003eHanging\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eRed-and-white striped ribbon loop, ready to hang\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 16V5M8 9l4-4 4 4\"\u003e\u003c\/path\u003e\u003cpath d=\"M5 16v2.5A1.5 1.5 0 006.5 20h11a1.5 1.5 0 001.5-1.5V16\"\u003e\u003c\/path\u003e\u003c\/svg\u003eYour photo\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eJPG, PNG or WebP up to 10 MB\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-chaphead\"\u003e\u003cp class=\"cs-lb-display\"\u003eEverything about it, up close.\u003c\/p\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-rows\"\u003e\n\u003cdiv class=\"cs-lb-row\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-christmas-ornament-for-couples-orn0002couple-detail-1.jpg\" alt=\"A hand lifting the personalized Christmas ornament for couples out of an open kraft gift box beside a brick fireplace\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e01 — The moment\u003c\/p\u003e\n\u003ch3\u003eEight years in, and it still lands.\u003c\/h3\u003e\n\u003cp\u003eYou will not get a speech out of him. You will get this on the tree before you are up.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row cs-lb-flip\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-christmas-ornament-for-couples-orn0002couple-detail-2.jpg\" alt=\"The personalized Christmas ornament for couples hanging on a decorated tree beside a stone fireplace with a low fire\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e02 — The home\u003c\/p\u003e\n\u003ch3\u003eIt hangs where he can see it from his chair.\u003c\/h3\u003e\n\u003cp\u003eWhich is also where he argues about the star.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-christmas-ornament-for-couples-orn0002couple-detail-3.jpg\" alt=\"A phone on a linen surface showing the uploaded photo of a woman and her corgi, the finished ornament resting beside it\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e03 — The making\u003c\/p\u003e\n\u003ch3\u003eSend the one of the two of you. And the dog.\u003c\/h3\u003e\n\u003cp\u003eNothing is made until you have seen the proof.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row cs-lb-flip\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-christmas-ornament-for-couples-orn0002couple-detail-4.jpg\" alt=\"The personalized Christmas ornament for couples hanging on a Christmas tree among warm colored lights\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e04 — The season\u003c\/p\u003e\n\u003ch3\u003eSame branch, every year.\u003c\/h3\u003e\n\u003cp\u003eBy year ten it will have its own spot, and he will still not admit he put it there.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-trust\"\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 20s-7-4.3-7-9a4 4 0 017-2.6A4 4 0 0119 11c0 4.7-7 9-7 9z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eEmotion First\u003c\/h4\u003e\n\u003cp\u003eDesigned around a real memory, not a template.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 3l8 3v6c0 4.4-3.3 7.9-8 9-4.7-1.1-8-4.6-8-9V6l8-3z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 12l2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eLasting Quality\u003c\/h4\u003e\n\u003cp\u003eHand-finished crystal, printed and sealed under the surface, built to last.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"10\" width=\"16\" height=\"10\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M8 10V7.5a4 4 0 018 0V10\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003ePrivacy Always\u003c\/h4\u003e\n\u003cp\u003eYour photos stay yours. Never shared or resold.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 21c5-2.5 8-6 8-11V5l-8-2-8 2v5c0 5 3 8.5 8 11z\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 8v6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eThoughtful Impact\u003c\/h4\u003e\n\u003cp\u003eMade to order, so nothing is made to be wasted.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-closing\"\u003e\n\u003ch2\u003eMade for the one who keeps showing up.\u003c\/h2\u003e\n\u003cp\u003eGifts that hold a year, not just a moment.\u003c\/p\u003e\n\u003ca class=\"cs-lb-btn\" href=\"\/collections\/all\"\u003eFind the perfect gift\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Personalized Christmas Ornament for Couples — Years Together\", \"image\": [\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-christmas-ornament-for-couples-orn0002couple-main-1.jpg\"], \"description\": \"Every December the tree gets decorated the same way \u0026mdash; you, him, the same argument about where the star goes, and you letting him win it. His name, your number of years, and the line that is true every Christmas, printed under the surface of a crystal ornament that comes out of the box first. Made to order, and nothing is made until you have seen the proof.\", \"sku\": \"CS-ORN-0002-COUPLE\", \"brand\": {\"@type\": \"Brand\", \"name\": \"CustomSolo\"}, \"offers\": {\"@type\": \"Offer\", \"url\": \"https:\/\/customsolo.com\/products\/personalized-christmas-ornament-for-couples-years-together\", \"priceCurrency\": \"USD\", \"price\": \"16.95\", \"availability\": \"https:\/\/schema.org\/InStock\"}}\u003c\/script\u003e\n","brand":"customsolo","offers":[{"title":"Default Title","offer_id":49071296479424,"sku":"CS-ORN-0002-COUPLE","price":16.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/b248c402-5105-4b19-8720-88cc38b9c9fd.png?v=1790064962"},{"product_id":"personalized-memorial-christmas-ornament-your-light-stays","title":"Personalized Memorial Christmas Ornament — Your Light Stays","description":"\u003c!--\n  CUSTOMSOLO PDP LOOKBOOK - BODY_HTML TEMPLATE v1.0\n  Source: live product page customsolo.com\/products\/customsolo-love-you-mom-test-v1\n          (measured 2026-09-29, body_html 16101 bytes, 6 img slots, 47 text slots)\n  Usage: copy this file, replace every , then PUT as product body_html.\n  RULES\n    - EVERY selector in \u003cstyle\u003e is prefixed .cs-lb-  (protects the customizer). Do not add bare tag selectors.\n    - ENGLISH ONLY. No Chinese anywhere, including CSS comments.\n    - Module order is fixed: lead \/ specs \/ chaphead \/ 4 chapters \/ trust \/ closing.\n    - Image slots are 6 = story-thumb (reuse the customer photo preview, 76x76) + hero (4:5)\n      + 4 chapter images (1536x938). Only 5 images need to be generated.\n    - Do NOT hand-write this HTML from memory. Copy this template.\n--\u003e\n\u003cdiv class=\"cs-lb-root\"\u003e\n\u003cstyle\u003e\n.cs-lb-root,.cs-lb-root *{box-sizing:border-box}\n.cs-lb-root *{text-transform:none}\n.cs-lb-root{font-family:-apple-system, BlinkMacSystemFont, 'system-ui', 'SF Pro Text', 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif;color:#1d1d1f;font-size:16px;line-height:1.6;margin:0}\n\n\/* break out of the theme's 720px desc column; width = pdp-lookbook-v5 .wrap content box (1200-96=1104) *\/\n@media(min-width:1024px){\n.cs-lb-root{width:min(1104px,100vw - 96px);\nmargin-left:calc(50% - min(552px,50vw - 48px));margin-right:calc(50% - min(552px,50vw - 48px))}\n}\n\n.cs-lb-root .cs-lb-eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#707070;font-weight:500;margin:0}\n.cs-lb-root .cs-lb-display{font-size:52px;line-height:1.05;font-weight:700;letter-spacing:-.025em;margin:20px 0 18px;color:#1d1d1f}\n.cs-lb-root .cs-lb-display .cs-lb-line{display:block}\n.cs-lb-root .cs-lb-lede{font-size:17px;line-height:1.62;color:#707070;max-width:46ch;margin:0}\n\n\/* story lead: single column by default, two columns from 1024px *\/\n.cs-lb-root .cs-lb-lead{margin:0}\n.cs-lb-root .cs-lb-visual{margin:32px 0 0;border-radius:16px;overflow:hidden;background:#f5f5f7}\n.cs-lb-root .cs-lb-visual img{display:block;width:100%;height:auto;aspect-ratio:4\/5;object-fit:cover;border-radius:16px}\n@media(min-width:1024px){\n.cs-lb-root .cs-lb-lead{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:start}\n.cs-lb-root .cs-lb-visual{margin:0}\n}\n@media(min-width:1024px) and (max-width:1199px){\n.cs-lb-root .cs-lb-display{font-size:44px}\n}\n\n\/* icon row *\/\n.cs-lb-root .cs-lb-iconrow{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:44px}\n.cs-lb-root .cs-lb-ico{width:46px;height:46px;border-radius:50%;background:#f5f5f7;display:flex;align-items:center;justify-content:center}\n.cs-lb-root .cs-lb-iconrow h4{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;margin:16px 0 7px;color:#1d1d1f}\n.cs-lb-root .cs-lb-iconrow p{font-size:14px;line-height:1.5;color:#707070;margin:0}\n\n\/* your story card *\/\n.cs-lb-root .cs-lb-storycard{background:#f5f5f7;border-radius:16px;padding:18px;display:flex;gap:18px;align-items:center;margin-top:40px}\n.cs-lb-root .cs-lb-storycard img{width:76px;height:76px;border-radius:10px;object-fit:cover;flex:0 0 76px;display:block}\n.cs-lb-root .cs-lb-storycard .cs-lb-k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#707070;font-weight:500;margin:0}\n.cs-lb-root .cs-lb-storycard .cs-lb-v{font-size:20px;font-weight:600;margin:4px 0 0;color:#1d1d1f}\n.cs-lb-root .cs-lb-storycard .cs-lb-s{font-size:15px;color:#707070;margin:2px 0 0}\n\n\/* buy row (v5 .buyrow) *\/\n.cs-lb-root .cs-lb-buyrow{display:flex;align-items:center;gap:22px;margin-top:26px}\n.cs-lb-root .cs-lb-btn{height:48px;padding:0 28px;border-radius:999px;background:#1d1d1f;color:#fff;\n  font-size:15px;font-weight:500;letter-spacing:0;display:inline-flex;align-items:center;justify-content:center;gap:10px;\n  text-decoration:none;transition:opacity .2s}\n.cs-lb-root .cs-lb-btn:hover{opacity:.85;color:#fff}\n.cs-lb-root .cs-lb-btn svg{flex:0 0 16px}\n.cs-lb-root .cs-lb-from{font-size:18px;font-weight:600;color:#1d1d1f}\n\n\/* specs (v5: right after story lead) *\/\n.cs-lb-root .cs-lb-specs{display:grid;grid-template-columns:repeat(4,1fr);margin:88px 0 0;border-top:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-spec{padding:34px 30px 36px 0;border-right:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-spec:last-child{border-right:0;padding-right:0}\n.cs-lb-root .cs-lb-spec .cs-lb-k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#707070;font-weight:500;margin:0 0 12px;\n  display:flex;align-items:center;gap:8px}\n.cs-lb-root .cs-lb-spec .cs-lb-v{margin:12px 0 0;font-size:16px;line-height:1.5;color:#1d1d1f}\n\n\/* chapter head *\/\n.cs-lb-root .cs-lb-chaphead{margin-top:96px;margin-bottom:12px;max-width:720px}\n.cs-lb-root .cs-lb-chaphead .cs-lb-display{font-size:44px;margin:0}\n\n\/* chapters *\/\n\/* closing band (v5 .closing): mist CTA band at the very end of the description.\n   It is wider than the 1104px column (100vw-32 pulled back by half, padding re-centres copy).\n   The -32px \/ +16px offset is deliberate: even if a browser ignores `overflow-x:clip`\n   (pre-Safari-16), the band still stays inside clientWidth, so no horizontal scrollbar.\n   The theme's own full-bleed band is `.cs-pdp-desc.is-band{margin-inline:-120px}` inside\n   `.cs-main{max-width:1440px;padding:0 120px}` -\u003e it spans the whole .cs-main box (1440px).\n   We cannot add a class to that theme element, so we reproduce the same result from inside:\n   the band is 100vw-48px wide (measured: a bare 100vw gives scrollWidth 1433 \u003e clientWidth\n   1425, i.e. a horizontal scrollbar, so we keep 24px of headroom on each side).\n   Do NOT clamp this with `overflow-x:clip` on `.cs-pdp-desc` - that element is only the\n   1200px grid column, so clipping would shrink the band to the column (120px gutters). *\/\n.cs-lb-root .cs-lb-closing{background:#f5f5f7;margin:0;padding:88px 0;text-align:left;\n  width:calc(100vw - 48px);margin-left:calc(50% - 50vw + 24px);margin-right:calc(50% - 50vw + 24px);\n  padding-left:calc(50vw - 50% - 24px);padding-right:calc(50vw - 50% - 24px)}\n.cs-lb-root .cs-lb-closing h2{font-size:40px;line-height:1.1;font-weight:700;letter-spacing:-.02em;\n  color:#1d1d1f;margin:0}\n.cs-lb-root .cs-lb-closing p{font-size:17px;line-height:1.5;color:#707070;margin:14px 0 0}\n.cs-lb-root .cs-lb-closing .cs-lb-btn{margin:28px 0 0;padding:0 30px}\n\n.cs-lb-root .cs-lb-rows{margin:40px 0 0;border-top:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-row{display:grid;grid-template-columns:1.24fr .86fr;gap:72px;align-items:center;\n  padding:60px 0;border-bottom:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-row:last-child{border-bottom:0}\n.cs-lb-root .cs-lb-media{margin:0;border-radius:16px;overflow:hidden;background:#f5f5f7}\n.cs-lb-root .cs-lb-media img{display:block;width:100%;height:auto;aspect-ratio:1536\/938;object-fit:cover;border-radius:16px}\n.cs-lb-root .cs-lb-copy{max-width:42ch}\n.cs-lb-root .cs-lb-idx{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#707070;font-weight:500;margin:0 0 16px}\n.cs-lb-root .cs-lb-copy h3{font-size:34px;line-height:1.15;font-weight:600;letter-spacing:-.022em;margin:0 0 14px;color:#1d1d1f;text-transform:none}\n.cs-lb-root .cs-lb-copy p{margin:0;font-size:16px;line-height:1.66;color:#707070}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-media{order:2}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-copy{order:1}\n\n\/* hide the theme's own \"The details\" eyebrow (user approved 2026-09-28:\n   both `THE DETAILS` and `The details` are removed, so the two are not duplicated).\n   Scoped to the direct child span of the desc inner -\u003e only this product page is\n   affected, because this \u003cstyle\u003e ships inside this product's body_html. *\/\n.cs-pdp-desc__inner \u003e .cs-pdp-desc__eyebrow{display:none}\n\n\/* trust row (v5 .trust, right after the chapters; the 72px gap below the last\n   chapter comes from v5 `.chapters{padding:96px 0 72px}` and is carried by margin-top here) *\/\n.cs-lb-root .cs-lb-trust{border-top:1px solid #e5e5e5;padding:64px 0;\n  display:grid;grid-template-columns:repeat(4,1fr);gap:36px;margin:72px 0 0}\n.cs-lb-root .cs-lb-trust svg{display:block;color:#1d1d1f}\n.cs-lb-root .cs-lb-trust h4{font-size:14px;line-height:1.4;font-weight:500;letter-spacing:0;\n  margin:16px 0 7px;color:#1d1d1f}\n.cs-lb-root .cs-lb-trust p{font-size:13px;line-height:1.55;color:#707070;margin:0}\n\n@media(max-width:960px){\n.cs-lb-root .cs-lb-display{font-size:34px}\n.cs-lb-root .cs-lb-chaphead{margin-top:56px;margin-bottom:0}\n.cs-lb-root .cs-lb-chaphead .cs-lb-display{font-size:30px}\n.cs-lb-root .cs-lb-rows .cs-lb-row{grid-template-columns:1fr;gap:22px;padding:36px 0}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-media{order:0}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-copy{order:1}\n.cs-lb-root .cs-lb-copy{max-width:none}\n.cs-lb-root .cs-lb-copy h3{font-size:24px;margin:0 0 10px}\n.cs-lb-root .cs-lb-copy p{font-size:15px}\n.cs-lb-root .cs-lb-specs{grid-template-columns:repeat(2,1fr);column-gap:22px;margin-top:56px}\n.cs-lb-root .cs-lb-spec{border-right:0;border-bottom:1px solid #e5e5e5;padding:24px 0}\n.cs-lb-root .cs-lb-trust{grid-template-columns:repeat(2,1fr);gap:28px;margin-top:56px;padding:48px 0}\n.cs-lb-root .cs-lb-closing{margin-top:0;padding:64px 0}\n.cs-lb-root .cs-lb-closing h2{font-size:30px}\n.cs-lb-root .cs-lb-closing p{font-size:16px}\n}\n@media(max-width:520px){\n.cs-lb-root .cs-lb-display{font-size:28px}\n.cs-lb-root .cs-lb-lede{font-size:16px}\n.cs-lb-root .cs-lb-iconrow{gap:14px}\n.cs-lb-root .cs-lb-iconrow h4{font-size:11px;letter-spacing:.1em}\n.cs-lb-root .cs-lb-iconrow p{font-size:12px;line-height:1.4}\n.cs-lb-root .cs-lb-copy h3{font-size:21px}\n.cs-lb-root .cs-lb-specs{grid-template-columns:1fr}\n.cs-lb-root .cs-lb-buyrow{flex-wrap:wrap;gap:14px}\n.cs-lb-root .cs-lb-trust{grid-template-columns:1fr;gap:24px}\n}\n\u003c\/style\u003e\n\u003cdiv class=\"cs-lb-lead\"\u003e\n\u003cdiv class=\"cs-lb-leadcopy\"\u003e\n\u003cp class=\"cs-lb-eyebrow\"\u003ePERSONALIZED MEMORIAL CHRISTMAS ORNAMENT\u003c\/p\u003e\n\u003cp class=\"cs-lb-display\"\u003e\u003cspan class=\"cs-lb-line\"\u003eone decoration nobody hangs\u003c\/span\u003e\u003cspan class=\"cs-lb-line\"\u003ewithout stopping first.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"cs-lb-lede\"\u003eHer name, her years, and a light that has not gone out — placed on the tree where everyone will pass it. This one is made for the Christmas that has an empty chair in it. Printed under the surface of a hand-finished acrylic disc, so it can be taken down and held whenever you need to. Made to order, and nothing is made until you have seen the proof.\u003c\/p\u003e\n\u003cdiv class=\"cs-lb-iconrow\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\"\u003e\u003c\/rect\u003e\u003ccircle cx=\"8.5\" cy=\"10\" r=\"1.6\"\u003e\u003c\/circle\u003e\u003cpath d=\"M4 17l4.5-4.5 3.5 3.5 3-3L20 17\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003ePhoto\u003c\/h4\u003e\n\u003cp\u003eThe one where she is laughing\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M6 5h12M12 5v14M9 19h6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eName\u003c\/h4\u003e\n\u003cp\u003eHer name, spelled the way you say it\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"5\" width=\"16\" height=\"15\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M4 10h16M9 3v4M15 3v4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eDate\u003c\/h4\u003e\n\u003cp\u003eBoth of her years, side by side\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-storycard\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/story-thumb-mem0001light.jpg\" alt=\"Close-up of the uploaded photo of an elderly woman printed inside the clear ornament\" loading=\"lazy\"\u003e\u003cdiv\u003e\n\u003cp class=\"cs-lb-k\"\u003eYour story\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eYour light stays\u003c\/p\u003e\n\u003cp class=\"cs-lb-s\"\u003eMargaret · 1948–2025\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-buyrow\"\u003e\n\u003ca class=\"cs-lb-btn\" href=\"#customizer\"\u003ePersonalize Yours\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M5 12h13M13 6l6 6-6 6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/a\u003e\u003cspan class=\"cs-lb-from\"\u003eFrom $16.95\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-visual\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-memorial-christmas-ornament-mem0001light-main-1.jpg\" alt=\"Two hands holding the personalized memorial Christmas ornament up against a snowy window\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-specs\"\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M9 4v16\"\u003e\u003c\/path\u003e\u003c\/svg\u003eMaterial\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eHand-finished acrylic disc, 5 in (12.7 cm) round\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M3 17h18M7 17V8h10v9\"\u003e\u003c\/path\u003e\u003c\/svg\u003eFinish\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003ePrismatic edge, print sealed under the surface\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 9l8-4 8 4v9l-8 4-8-4V9z\"\u003e\u003c\/path\u003e\u003cpath d=\"M4 9l8 4 8-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003eHanging\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eRed ribbon loop, ready to hang\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 16V5M8 9l4-4 4 4\"\u003e\u003c\/path\u003e\u003cpath d=\"M5 16v2.5A1.5 1.5 0 006.5 20h11a1.5 1.5 0 001.5-1.5V16\"\u003e\u003c\/path\u003e\u003c\/svg\u003eYour photo\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eJPG, PNG or WebP up to 10 MB\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-chaphead\"\u003e\u003cp class=\"cs-lb-display\"\u003eA closer look, if you want one.\u003c\/p\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-rows\"\u003e\n\u003cdiv class=\"cs-lb-row\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-memorial-christmas-ornament-mem0001light-detail-1.jpg\" alt=\"A hand lifting the personalized memorial Christmas ornament from its kraft gift box beside a snowy window\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e01 — The moment\u003c\/p\u003e\n\u003ch3\u003eIt goes on the tree first.\u003c\/h3\u003e\n\u003cp\u003eBefore the lights, before anything else comes out of the box.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row cs-lb-flip\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-memorial-christmas-ornament-mem0001light-detail-2.jpg\" alt=\"The personalized memorial Christmas ornament hanging on a decorated tree beside a snowy window at dusk\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e02 — The home\u003c\/p\u003e\n\u003ch3\u003eWhere everyone will pass it.\u003c\/h3\u003e\n\u003cp\u003eWhich is the whole point of hanging it there.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-memorial-christmas-ornament-mem0001light-detail-3.jpg\" alt=\"A phone on a linen surface showing the uploaded photo of an elderly woman, the finished ornament resting beside it\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e03 — The making\u003c\/p\u003e\n\u003ch3\u003eSend the photo where she is laughing.\u003c\/h3\u003e\n\u003cp\u003eNothing is made until you have seen the proof.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row cs-lb-flip\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-memorial-christmas-ornament-mem0001light-detail-4.jpg\" alt=\"The personalized memorial Christmas ornament hanging among warm string lights on a tree beside a snowy window\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e04 — The season\u003c\/p\u003e\n\u003ch3\u003eDecember is when you will want it most.\u003c\/h3\u003e\n\u003cp\u003eIt will be there, out of the box, on the same branch.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-trust\"\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 20s-7-4.3-7-9a4 4 0 017-2.6A4 4 0 0119 11c0 4.7-7 9-7 9z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eEmotion First\u003c\/h4\u003e\n\u003cp\u003eDesigned around a real memory, not a template.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 3l8 3v6c0 4.4-3.3 7.9-8 9-4.7-1.1-8-4.6-8-9V6l8-3z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 12l2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eLasting Quality\u003c\/h4\u003e\n\u003cp\u003eHand-finished acrylic, printed and sealed under the surface, built to last.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"10\" width=\"16\" height=\"10\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M8 10V7.5a4 4 0 018 0V10\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003ePrivacy Always\u003c\/h4\u003e\n\u003cp\u003eYour photos stay yours. Never shared or resold.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 21c5-2.5 8-6 8-11V5l-8-2-8 2v5c0 5 3 8.5 8 11z\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 8v6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eThoughtful Impact\u003c\/h4\u003e\n\u003cp\u003eMade to order, so nothing is made to be wasted.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-closing\"\u003e\n\u003ch2\u003eMade for the one who is still with you in December.\u003c\/h2\u003e\n\u003cp\u003eGifts that hold a year, not just a moment.\u003c\/p\u003e\n\u003ca class=\"cs-lb-btn\" href=\"\/collections\/all\"\u003eFind the perfect gift\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Personalized Memorial Christmas Ornament — Your Light Stays\", \"image\": [\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-memorial-christmas-ornament-mem0001light-main-1.jpg\"], \"description\": \"Her name, her years, and a light that has not gone out \u0026mdash; placed on the tree where everyone will pass it. This one is made for the Christmas that has an empty chair in it. Printed under the surface of a hand-finished acrylic disc, so it can be taken down and held whenever you need to. Made to order, and nothing is made until you have seen the proof.\", \"sku\": \"CS-MEM-0001-LIGHT\", \"brand\": {\"@type\": \"Brand\", \"name\": \"CustomSolo\"}, \"offers\": {\"@type\": \"Offer\", \"url\": \"https:\/\/customsolo.com\/products\/personalized-memorial-christmas-ornament-your-light-stays\", \"priceCurrency\": \"USD\", \"price\": \"16.95\", \"availability\": \"https:\/\/schema.org\/InStock\"}}\u003c\/script\u003e\n","brand":"customsolo","offers":[{"title":"Default Title","offer_id":50328214798528,"sku":"CS-MEM-0001-LIGHT","price":16.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/97612675-0d56-4647-85f5-22ef3d1002a4.png?v=1790143171"},{"product_id":"personalized-christmas-ornament-for-grandparents-our-greatest-joy","title":"Personalized Christmas Ornament for Grandparents — Our Greatest Joy","description":"\u003c!--\n  CUSTOMSOLO PDP LOOKBOOK - BODY_HTML TEMPLATE v1.0\n  Source: live product page customsolo.com\/products\/customsolo-love-you-mom-test-v1\n          (measured 2026-09-29, body_html 16101 bytes, 6 img slots, 47 text slots)\n  Usage: copy this file, replace every , then PUT as product body_html.\n  RULES\n    - EVERY selector in \u003cstyle\u003e is prefixed .cs-lb-  (protects the customizer). Do not add bare tag selectors.\n    - ENGLISH ONLY. No Chinese anywhere, including CSS comments.\n    - Module order is fixed: lead \/ specs \/ chaphead \/ 4 chapters \/ trust \/ closing.\n    - Image slots are 6 = story-thumb (reuse the customer photo preview, 76x76) + hero (4:5)\n      + 4 chapter images (1536x938). Only 5 images need to be generated.\n    - Do NOT hand-write this HTML from memory. Copy this template.\n--\u003e\n\u003cdiv class=\"cs-lb-root\"\u003e\n\u003cstyle\u003e\n.cs-lb-root,.cs-lb-root *{box-sizing:border-box}\n.cs-lb-root *{text-transform:none}\n.cs-lb-root{font-family:-apple-system, BlinkMacSystemFont, 'system-ui', 'SF Pro Text', 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif;color:#1d1d1f;font-size:16px;line-height:1.6;margin:0}\n\n\/* break out of the theme's 720px desc column; width = pdp-lookbook-v5 .wrap content box (1200-96=1104) *\/\n@media(min-width:1024px){\n.cs-lb-root{width:min(1104px,100vw - 96px);\nmargin-left:calc(50% - min(552px,50vw - 48px));margin-right:calc(50% - min(552px,50vw - 48px))}\n}\n\n.cs-lb-root .cs-lb-eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#707070;font-weight:500;margin:0}\n.cs-lb-root .cs-lb-display{font-size:52px;line-height:1.05;font-weight:700;letter-spacing:-.025em;margin:20px 0 18px;color:#1d1d1f}\n.cs-lb-root .cs-lb-display .cs-lb-line{display:block}\n.cs-lb-root .cs-lb-lede{font-size:17px;line-height:1.62;color:#707070;max-width:46ch;margin:0}\n\n\/* story lead: single column by default, two columns from 1024px *\/\n.cs-lb-root .cs-lb-lead{margin:0}\n.cs-lb-root .cs-lb-visual{margin:32px 0 0;border-radius:16px;overflow:hidden;background:#f5f5f7}\n.cs-lb-root .cs-lb-visual img{display:block;width:100%;height:auto;aspect-ratio:4\/5;object-fit:cover;border-radius:16px}\n@media(min-width:1024px){\n.cs-lb-root .cs-lb-lead{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:start}\n.cs-lb-root .cs-lb-visual{margin:0}\n}\n@media(min-width:1024px) and (max-width:1199px){\n.cs-lb-root .cs-lb-display{font-size:44px}\n}\n\n\/* icon row *\/\n.cs-lb-root .cs-lb-iconrow{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:44px}\n.cs-lb-root .cs-lb-ico{width:46px;height:46px;border-radius:50%;background:#f5f5f7;display:flex;align-items:center;justify-content:center}\n.cs-lb-root .cs-lb-iconrow h4{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;margin:16px 0 7px;color:#1d1d1f}\n.cs-lb-root .cs-lb-iconrow p{font-size:14px;line-height:1.5;color:#707070;margin:0}\n\n\/* your story card *\/\n.cs-lb-root .cs-lb-storycard{background:#f5f5f7;border-radius:16px;padding:18px;display:flex;gap:18px;align-items:center;margin-top:40px}\n.cs-lb-root .cs-lb-storycard img{width:76px;height:76px;border-radius:10px;object-fit:cover;flex:0 0 76px;display:block}\n.cs-lb-root .cs-lb-storycard .cs-lb-k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#707070;font-weight:500;margin:0}\n.cs-lb-root .cs-lb-storycard .cs-lb-v{font-size:20px;font-weight:600;margin:4px 0 0;color:#1d1d1f}\n.cs-lb-root .cs-lb-storycard .cs-lb-s{font-size:15px;color:#707070;margin:2px 0 0}\n\n\/* buy row (v5 .buyrow) *\/\n.cs-lb-root .cs-lb-buyrow{display:flex;align-items:center;gap:22px;margin-top:26px}\n.cs-lb-root .cs-lb-btn{height:48px;padding:0 28px;border-radius:999px;background:#1d1d1f;color:#fff;\n  font-size:15px;font-weight:500;letter-spacing:0;display:inline-flex;align-items:center;justify-content:center;gap:10px;\n  text-decoration:none;transition:opacity .2s}\n.cs-lb-root .cs-lb-btn:hover{opacity:.85;color:#fff}\n.cs-lb-root .cs-lb-btn svg{flex:0 0 16px}\n.cs-lb-root .cs-lb-from{font-size:18px;font-weight:600;color:#1d1d1f}\n\n\/* specs (v5: right after story lead) *\/\n.cs-lb-root .cs-lb-specs{display:grid;grid-template-columns:repeat(4,1fr);margin:88px 0 0;border-top:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-spec{padding:34px 30px 36px 0;border-right:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-spec:last-child{border-right:0;padding-right:0}\n.cs-lb-root .cs-lb-spec .cs-lb-k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#707070;font-weight:500;margin:0 0 12px;\n  display:flex;align-items:center;gap:8px}\n.cs-lb-root .cs-lb-spec .cs-lb-v{margin:12px 0 0;font-size:16px;line-height:1.5;color:#1d1d1f}\n\n\/* chapter head *\/\n.cs-lb-root .cs-lb-chaphead{margin-top:96px;margin-bottom:12px;max-width:720px}\n.cs-lb-root .cs-lb-chaphead .cs-lb-display{font-size:44px;margin:0}\n\n\/* chapters *\/\n\/* closing band (v5 .closing): mist CTA band at the very end of the description.\n   It is wider than the 1104px column (100vw-32 pulled back by half, padding re-centres copy).\n   The -32px \/ +16px offset is deliberate: even if a browser ignores `overflow-x:clip`\n   (pre-Safari-16), the band still stays inside clientWidth, so no horizontal scrollbar.\n   The theme's own full-bleed band is `.cs-pdp-desc.is-band{margin-inline:-120px}` inside\n   `.cs-main{max-width:1440px;padding:0 120px}` -\u003e it spans the whole .cs-main box (1440px).\n   We cannot add a class to that theme element, so we reproduce the same result from inside:\n   the band is 100vw-48px wide (measured: a bare 100vw gives scrollWidth 1433 \u003e clientWidth\n   1425, i.e. a horizontal scrollbar, so we keep 24px of headroom on each side).\n   Do NOT clamp this with `overflow-x:clip` on `.cs-pdp-desc` - that element is only the\n   1200px grid column, so clipping would shrink the band to the column (120px gutters). *\/\n.cs-lb-root .cs-lb-closing{background:#f5f5f7;margin:0;padding:88px 0;text-align:left;\n  width:calc(100vw - 48px);margin-left:calc(50% - 50vw + 24px);margin-right:calc(50% - 50vw + 24px);\n  padding-left:calc(50vw - 50% - 24px);padding-right:calc(50vw - 50% - 24px)}\n.cs-lb-root .cs-lb-closing h2{font-size:40px;line-height:1.1;font-weight:700;letter-spacing:-.02em;\n  color:#1d1d1f;margin:0}\n.cs-lb-root .cs-lb-closing p{font-size:17px;line-height:1.5;color:#707070;margin:14px 0 0}\n.cs-lb-root .cs-lb-closing .cs-lb-btn{margin:28px 0 0;padding:0 30px}\n\n.cs-lb-root .cs-lb-rows{margin:40px 0 0;border-top:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-row{display:grid;grid-template-columns:1.24fr .86fr;gap:72px;align-items:center;\n  padding:60px 0;border-bottom:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-row:last-child{border-bottom:0}\n.cs-lb-root .cs-lb-media{margin:0;border-radius:16px;overflow:hidden;background:#f5f5f7}\n.cs-lb-root .cs-lb-media img{display:block;width:100%;height:auto;aspect-ratio:1536\/938;object-fit:cover;border-radius:16px}\n.cs-lb-root .cs-lb-copy{max-width:42ch}\n.cs-lb-root .cs-lb-idx{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#707070;font-weight:500;margin:0 0 16px}\n.cs-lb-root .cs-lb-copy h3{font-size:34px;line-height:1.15;font-weight:600;letter-spacing:-.022em;margin:0 0 14px;color:#1d1d1f;text-transform:none}\n.cs-lb-root .cs-lb-copy p{margin:0;font-size:16px;line-height:1.66;color:#707070}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-media{order:2}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-copy{order:1}\n\n\/* hide the theme's own \"The details\" eyebrow (user approved 2026-09-28:\n   both `THE DETAILS` and `The details` are removed, so the two are not duplicated).\n   Scoped to the direct child span of the desc inner -\u003e only this product page is\n   affected, because this \u003cstyle\u003e ships inside this product's body_html. *\/\n.cs-pdp-desc__inner \u003e .cs-pdp-desc__eyebrow{display:none}\n\n\/* trust row (v5 .trust, right after the chapters; the 72px gap below the last\n   chapter comes from v5 `.chapters{padding:96px 0 72px}` and is carried by margin-top here) *\/\n.cs-lb-root .cs-lb-trust{border-top:1px solid #e5e5e5;padding:64px 0;\n  display:grid;grid-template-columns:repeat(4,1fr);gap:36px;margin:72px 0 0}\n.cs-lb-root .cs-lb-trust svg{display:block;color:#1d1d1f}\n.cs-lb-root .cs-lb-trust h4{font-size:14px;line-height:1.4;font-weight:500;letter-spacing:0;\n  margin:16px 0 7px;color:#1d1d1f}\n.cs-lb-root .cs-lb-trust p{font-size:13px;line-height:1.55;color:#707070;margin:0}\n\n@media(max-width:960px){\n.cs-lb-root .cs-lb-display{font-size:34px}\n.cs-lb-root .cs-lb-chaphead{margin-top:56px;margin-bottom:0}\n.cs-lb-root .cs-lb-chaphead .cs-lb-display{font-size:30px}\n.cs-lb-root .cs-lb-rows .cs-lb-row{grid-template-columns:1fr;gap:22px;padding:36px 0}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-media{order:0}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-copy{order:1}\n.cs-lb-root .cs-lb-copy{max-width:none}\n.cs-lb-root .cs-lb-copy h3{font-size:24px;margin:0 0 10px}\n.cs-lb-root .cs-lb-copy p{font-size:15px}\n.cs-lb-root .cs-lb-specs{grid-template-columns:repeat(2,1fr);column-gap:22px;margin-top:56px}\n.cs-lb-root .cs-lb-spec{border-right:0;border-bottom:1px solid #e5e5e5;padding:24px 0}\n.cs-lb-root .cs-lb-trust{grid-template-columns:repeat(2,1fr);gap:28px;margin-top:56px;padding:48px 0}\n.cs-lb-root .cs-lb-closing{margin-top:0;padding:64px 0}\n.cs-lb-root .cs-lb-closing h2{font-size:30px}\n.cs-lb-root .cs-lb-closing p{font-size:16px}\n}\n@media(max-width:520px){\n.cs-lb-root .cs-lb-display{font-size:28px}\n.cs-lb-root .cs-lb-lede{font-size:16px}\n.cs-lb-root .cs-lb-iconrow{gap:14px}\n.cs-lb-root .cs-lb-iconrow h4{font-size:11px;letter-spacing:.1em}\n.cs-lb-root .cs-lb-iconrow p{font-size:12px;line-height:1.4}\n.cs-lb-root .cs-lb-copy h3{font-size:21px}\n.cs-lb-root .cs-lb-specs{grid-template-columns:1fr}\n.cs-lb-root .cs-lb-buyrow{flex-wrap:wrap;gap:14px}\n.cs-lb-root .cs-lb-trust{grid-template-columns:1fr;gap:24px}\n}\n\u003c\/style\u003e\n\u003cdiv class=\"cs-lb-lead\"\u003e\n\u003cdiv class=\"cs-lb-leadcopy\"\u003e\n\u003cp class=\"cs-lb-eyebrow\"\u003ePERSONALIZED CHRISTMAS ORNAMENT FOR GRANDPARENTS\u003c\/p\u003e\n\u003cp class=\"cs-lb-display\"\u003e\u003cspan class=\"cs-lb-line\"\u003ethey have waited all year\u003c\/span\u003e\u003cspan class=\"cs-lb-line\"\u003efor this one photograph.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"cs-lb-lede\"\u003eGrandma has the good plates out and Grandpa is pretending he does not care — both of them are exactly where they want to be. Three generations in one frame, with the names and the year underneath. Made to order, printed under the surface, and nothing is made until you have seen the proof.\u003c\/p\u003e\n\u003cdiv class=\"cs-lb-iconrow\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\"\u003e\u003c\/rect\u003e\u003ccircle cx=\"8.5\" cy=\"10\" r=\"1.6\"\u003e\u003c\/circle\u003e\u003cpath d=\"M4 17l4.5-4.5 3.5 3.5 3-3L20 17\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003ePhoto\u003c\/h4\u003e\n\u003cp\u003eThe group shot from this year\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M6 5h12M12 5v14M9 19h6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eName\u003c\/h4\u003e\n\u003cp\u003eNames, spelled the way the family says them\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"5\" width=\"16\" height=\"15\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M4 10h16M9 3v4M15 3v4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eDate\u003c\/h4\u003e\n\u003cp\u003eThe year, printed so it stays that specific Christmas\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-storycard\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/story-thumb-orn0008joy.jpg\" alt=\"Close-up of the uploaded photo of two grandparents and their granddaughter printed inside the crystal ornament\" loading=\"lazy\"\u003e\u003cdiv\u003e\n\u003cp class=\"cs-lb-k\"\u003eYour story\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eOur greatest joy\u003c\/p\u003e\n\u003cp class=\"cs-lb-s\"\u003eEmma · 2026\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-buyrow\"\u003e\n\u003ca class=\"cs-lb-btn\" href=\"#customizer\"\u003ePersonalize Yours\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M5 12h13M13 6l6 6-6 6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/a\u003e\u003cspan class=\"cs-lb-from\"\u003eFrom $16.95\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-visual\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-christmas-ornament-for-grandparents-orn0008joy-main-1.jpg\" alt=\"Two hands offering the personalized Christmas ornament for grandparents, held up by its red-and-white candy-cane cord\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-specs\"\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M9 4v16\"\u003e\u003c\/path\u003e\u003c\/svg\u003eMaterial\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eHand-finished crystal, 5 in (12.7 cm) round\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M3 17h18M7 17V8h10v9\"\u003e\u003c\/path\u003e\u003c\/svg\u003eFinish\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eIridescent faceted rim, print sealed under the surface\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 9l8-4 8 4v9l-8 4-8-4V9z\"\u003e\u003c\/path\u003e\u003cpath d=\"M4 9l8 4 8-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003eHanging\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eSilver loop and a red-and-white candy-cane cord, ready to hang\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 16V5M8 9l4-4 4 4\"\u003e\u003c\/path\u003e\u003cpath d=\"M5 16v2.5A1.5 1.5 0 006.5 20h11a1.5 1.5 0 001.5-1.5V16\"\u003e\u003c\/path\u003e\u003c\/svg\u003eYour photo\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eJPG, PNG or WebP up to 10 MB\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-chaphead\"\u003e\u003cp class=\"cs-lb-display\"\u003eEverything about it, up close.\u003c\/p\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-rows\"\u003e\n\u003cdiv class=\"cs-lb-row\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-christmas-ornament-for-grandparents-orn0008joy-detail-1.jpg\" alt=\"A hand lifting the personalized Christmas ornament for grandparents out of its kraft gift box by a stone fireplace\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e01 — The moment\u003c\/p\u003e\n\u003ch3\u003eShe has the good plates out already.\u003c\/h3\u003e\n\u003cp\u003eHe is pretending he does not care. Both of them are exactly where they want to be.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row cs-lb-flip\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-christmas-ornament-for-grandparents-orn0008joy-detail-2.jpg\" alt=\"The personalized Christmas ornament for grandparents hanging on a decorated tree beside a stone fireplace with a low fire\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e02 — The home\u003c\/p\u003e\n\u003ch3\u003eA group shot works here.\u003c\/h3\u003e\n\u003cp\u003eJust check that nobody is cut off at the edge — we print the frame you send, whole.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-christmas-ornament-for-grandparents-orn0008joy-detail-3.jpg\" alt=\"A phone showing the uploaded family photo beside the finished personalized ornament on a dark wood table\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e03 — The making\u003c\/p\u003e\n\u003ch3\u003eThe names and the year underneath.\u003c\/h3\u003e\n\u003cp\u003eSmall, plain letters, where the whole family can read them without asking.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row cs-lb-flip\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-christmas-ornament-for-grandparents-orn0008joy-detail-4.jpg\" alt=\"The personalized Christmas ornament for grandparents hanging on a Christmas tree among warm colored lights\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e04 — The season\u003c\/p\u003e\n\u003ch3\u003eIt goes on their tree.\u003c\/h3\u003e\n\u003cp\u003eIt comes back out every December for twenty years.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-trust\"\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 20s-7-4.3-7-9a4 4 0 017-2.6A4 4 0 0119 11c0 4.7-7 9-7 9z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eEmotion First\u003c\/h4\u003e\n\u003cp\u003eDesigned around a real memory, not a template.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 3l8 3v6c0 4.4-3.3 7.9-8 9-4.7-1.1-8-4.6-8-9V6l8-3z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 12l2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eLasting Quality\u003c\/h4\u003e\n\u003cp\u003eHand-finished crystal, printed and sealed under the surface, built to last.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"10\" width=\"16\" height=\"10\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M8 10V7.5a4 4 0 018 0V10\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003ePrivacy Always\u003c\/h4\u003e\n\u003cp\u003eYour photos stay yours. Never shared or resold.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 21c5-2.5 8-6 8-11V5l-8-2-8 2v5c0 5 3 8.5 8 11z\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 8v6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eThoughtful Impact\u003c\/h4\u003e\n\u003cp\u003eMade to order, so nothing is made to be wasted.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-closing\"\u003e\n\u003ch2\u003eMade for the family.\u003c\/h2\u003e\n\u003cp\u003eGifts that hold a year, not just a moment.\u003c\/p\u003e\n\u003ca class=\"cs-lb-btn\" href=\"\/collections\/all\"\u003eFind the perfect gift\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Personalized Christmas Ornament for Grandparents — Our Greatest Joy\", \"image\": [\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-christmas-ornament-for-grandparents-orn0008joy-main-1.jpg\"], \"description\": \"Grandma has the good plates out and Grandpa is pretending he does not care \u0026mdash; both of them are exactly where they want to be. Three generations in one frame, with the names and the year underneath. Made to order, printed under the surface, and nothing is made until you have seen the proof.\", \"sku\": \"CS-ORN-0008-JOY\", \"brand\": {\"@type\": \"Brand\", \"name\": \"CustomSolo\"}, \"offers\": {\"@type\": \"Offer\", \"url\": \"https:\/\/customsolo.com\/products\/personalized-christmas-ornament-for-grandparents-our-greatest-joy\", \"priceCurrency\": \"USD\", \"price\": \"16.95\", \"availability\": \"https:\/\/schema.org\/InStock\"}}\u003c\/script\u003e\n","brand":"customsolo","offers":[{"title":"Default Title","offer_id":50328215584960,"sku":"CS-ORN-0008-JOY","price":16.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/745260da-490d-48db-9d1a-ae0be3d4dbed.png?v=1790143332"},{"product_id":"personalized-christmas-ornament-for-grandma-love-passed-down-1","title":"Personalized Christmas Ornament for Grandma — Love, Passed Down","description":"\u003c!--\n  CUSTOMSOLO PDP LOOKBOOK - BODY_HTML TEMPLATE v1.0\n  Source: live product page customsolo.com\/products\/customsolo-love-you-mom-test-v1\n          (measured 2026-09-29, body_html 16101 bytes, 6 img slots, 47 text slots)\n  Usage: copy this file, replace every , then PUT as product body_html.\n  RULES\n    - EVERY selector in \u003cstyle\u003e is prefixed .cs-lb-  (protects the customizer). Do not add bare tag selectors.\n    - ENGLISH ONLY. No Chinese anywhere, including CSS comments.\n    - Module order is fixed: lead \/ specs \/ chaphead \/ 4 chapters \/ trust \/ closing.\n    - Image slots are 6 = story-thumb (reuse the customer photo preview, 76x76) + hero (4:5)\n      + 4 chapter images (1536x938). Only 5 images need to be generated.\n    - Do NOT hand-write this HTML from memory. Copy this template.\n--\u003e\n\u003cdiv class=\"cs-lb-root\"\u003e\n\u003cstyle\u003e\n.cs-lb-root,.cs-lb-root *{box-sizing:border-box}\n.cs-lb-root *{text-transform:none}\n.cs-lb-root{font-family:-apple-system, BlinkMacSystemFont, 'system-ui', 'SF Pro Text', 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif;color:#1d1d1f;font-size:16px;line-height:1.6;margin:0}\n\n\/* break out of the theme's 720px desc column; width = pdp-lookbook-v5 .wrap content box (1200-96=1104) *\/\n@media(min-width:1024px){\n.cs-lb-root{width:min(1104px,100vw - 96px);\nmargin-left:calc(50% - min(552px,50vw - 48px));margin-right:calc(50% - min(552px,50vw - 48px))}\n}\n\n.cs-lb-root .cs-lb-eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#707070;font-weight:500;margin:0}\n.cs-lb-root .cs-lb-display{font-size:52px;line-height:1.05;font-weight:700;letter-spacing:-.025em;margin:20px 0 18px;color:#1d1d1f}\n.cs-lb-root .cs-lb-display .cs-lb-line{display:block}\n.cs-lb-root .cs-lb-lede{font-size:17px;line-height:1.62;color:#707070;max-width:46ch;margin:0}\n\n\/* story lead: single column by default, two columns from 1024px *\/\n.cs-lb-root .cs-lb-lead{margin:0}\n.cs-lb-root .cs-lb-visual{margin:32px 0 0;border-radius:16px;overflow:hidden;background:#f5f5f7}\n.cs-lb-root .cs-lb-visual img{display:block;width:100%;height:auto;aspect-ratio:4\/5;object-fit:cover;border-radius:16px}\n@media(min-width:1024px){\n.cs-lb-root .cs-lb-lead{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:start}\n.cs-lb-root .cs-lb-visual{margin:0}\n}\n@media(min-width:1024px) and (max-width:1199px){\n.cs-lb-root .cs-lb-display{font-size:44px}\n}\n\n\/* icon row *\/\n.cs-lb-root .cs-lb-iconrow{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:44px}\n.cs-lb-root .cs-lb-ico{width:46px;height:46px;border-radius:50%;background:#f5f5f7;display:flex;align-items:center;justify-content:center}\n.cs-lb-root .cs-lb-iconrow h4{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;margin:16px 0 7px;color:#1d1d1f}\n.cs-lb-root .cs-lb-iconrow p{font-size:14px;line-height:1.5;color:#707070;margin:0}\n\n\/* your story card *\/\n.cs-lb-root .cs-lb-storycard{background:#f5f5f7;border-radius:16px;padding:18px;display:flex;gap:18px;align-items:center;margin-top:40px}\n.cs-lb-root .cs-lb-storycard img{width:76px;height:76px;border-radius:10px;object-fit:cover;flex:0 0 76px;display:block}\n.cs-lb-root .cs-lb-storycard .cs-lb-k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#707070;font-weight:500;margin:0}\n.cs-lb-root .cs-lb-storycard .cs-lb-v{font-size:20px;font-weight:600;margin:4px 0 0;color:#1d1d1f}\n.cs-lb-root .cs-lb-storycard .cs-lb-s{font-size:15px;color:#707070;margin:2px 0 0}\n\n\/* buy row (v5 .buyrow) *\/\n.cs-lb-root .cs-lb-buyrow{display:flex;align-items:center;gap:22px;margin-top:26px}\n.cs-lb-root .cs-lb-btn{height:48px;padding:0 28px;border-radius:999px;background:#1d1d1f;color:#fff;\n  font-size:15px;font-weight:500;letter-spacing:0;display:inline-flex;align-items:center;justify-content:center;gap:10px;\n  text-decoration:none;transition:opacity .2s}\n.cs-lb-root .cs-lb-btn:hover{opacity:.85;color:#fff}\n.cs-lb-root .cs-lb-btn svg{flex:0 0 16px}\n.cs-lb-root .cs-lb-from{font-size:18px;font-weight:600;color:#1d1d1f}\n\n\/* specs (v5: right after story lead) *\/\n.cs-lb-root .cs-lb-specs{display:grid;grid-template-columns:repeat(4,1fr);margin:88px 0 0;border-top:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-spec{padding:34px 30px 36px 0;border-right:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-spec:last-child{border-right:0;padding-right:0}\n.cs-lb-root .cs-lb-spec .cs-lb-k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#707070;font-weight:500;margin:0 0 12px;\n  display:flex;align-items:center;gap:8px}\n.cs-lb-root .cs-lb-spec .cs-lb-v{margin:12px 0 0;font-size:16px;line-height:1.5;color:#1d1d1f}\n\n\/* chapter head *\/\n.cs-lb-root .cs-lb-chaphead{margin-top:96px;margin-bottom:12px;max-width:720px}\n.cs-lb-root .cs-lb-chaphead .cs-lb-display{font-size:44px;margin:0}\n\n\/* chapters *\/\n\/* closing band (v5 .closing): mist CTA band at the very end of the description.\n   It is wider than the 1104px column (100vw-32 pulled back by half, padding re-centres copy).\n   The -32px \/ +16px offset is deliberate: even if a browser ignores `overflow-x:clip`\n   (pre-Safari-16), the band still stays inside clientWidth, so no horizontal scrollbar.\n   The theme's own full-bleed band is `.cs-pdp-desc.is-band{margin-inline:-120px}` inside\n   `.cs-main{max-width:1440px;padding:0 120px}` -\u003e it spans the whole .cs-main box (1440px).\n   We cannot add a class to that theme element, so we reproduce the same result from inside:\n   the band is 100vw-48px wide (measured: a bare 100vw gives scrollWidth 1433 \u003e clientWidth\n   1425, i.e. a horizontal scrollbar, so we keep 24px of headroom on each side).\n   Do NOT clamp this with `overflow-x:clip` on `.cs-pdp-desc` - that element is only the\n   1200px grid column, so clipping would shrink the band to the column (120px gutters). *\/\n.cs-lb-root .cs-lb-closing{background:#f5f5f7;margin:0;padding:88px 0;text-align:left;\n  width:calc(100vw - 48px);margin-left:calc(50% - 50vw + 24px);margin-right:calc(50% - 50vw + 24px);\n  padding-left:calc(50vw - 50% - 24px);padding-right:calc(50vw - 50% - 24px)}\n.cs-lb-root .cs-lb-closing h2{font-size:40px;line-height:1.1;font-weight:700;letter-spacing:-.02em;\n  color:#1d1d1f;margin:0}\n.cs-lb-root .cs-lb-closing p{font-size:17px;line-height:1.5;color:#707070;margin:14px 0 0}\n.cs-lb-root .cs-lb-closing .cs-lb-btn{margin:28px 0 0;padding:0 30px}\n\n.cs-lb-root .cs-lb-rows{margin:40px 0 0;border-top:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-row{display:grid;grid-template-columns:1.24fr .86fr;gap:72px;align-items:center;\n  padding:60px 0;border-bottom:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-row:last-child{border-bottom:0}\n.cs-lb-root .cs-lb-media{margin:0;border-radius:16px;overflow:hidden;background:#f5f5f7}\n.cs-lb-root .cs-lb-media img{display:block;width:100%;height:auto;aspect-ratio:1536\/938;object-fit:cover;border-radius:16px}\n.cs-lb-root .cs-lb-copy{max-width:42ch}\n.cs-lb-root .cs-lb-idx{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#707070;font-weight:500;margin:0 0 16px}\n.cs-lb-root .cs-lb-copy h3{font-size:34px;line-height:1.15;font-weight:600;letter-spacing:-.022em;margin:0 0 14px;color:#1d1d1f;text-transform:none}\n.cs-lb-root .cs-lb-copy p{margin:0;font-size:16px;line-height:1.66;color:#707070}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-media{order:2}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-copy{order:1}\n\n\/* hide the theme's own \"The details\" eyebrow (user approved 2026-09-28:\n   both `THE DETAILS` and `The details` are removed, so the two are not duplicated).\n   Scoped to the direct child span of the desc inner -\u003e only this product page is\n   affected, because this \u003cstyle\u003e ships inside this product's body_html. *\/\n.cs-pdp-desc__inner \u003e .cs-pdp-desc__eyebrow{display:none}\n\n\/* trust row (v5 .trust, right after the chapters; the 72px gap below the last\n   chapter comes from v5 `.chapters{padding:96px 0 72px}` and is carried by margin-top here) *\/\n.cs-lb-root .cs-lb-trust{border-top:1px solid #e5e5e5;padding:64px 0;\n  display:grid;grid-template-columns:repeat(4,1fr);gap:36px;margin:72px 0 0}\n.cs-lb-root .cs-lb-trust svg{display:block;color:#1d1d1f}\n.cs-lb-root .cs-lb-trust h4{font-size:14px;line-height:1.4;font-weight:500;letter-spacing:0;\n  margin:16px 0 7px;color:#1d1d1f}\n.cs-lb-root .cs-lb-trust p{font-size:13px;line-height:1.55;color:#707070;margin:0}\n\n@media(max-width:960px){\n.cs-lb-root .cs-lb-display{font-size:34px}\n.cs-lb-root .cs-lb-chaphead{margin-top:56px;margin-bottom:0}\n.cs-lb-root .cs-lb-chaphead .cs-lb-display{font-size:30px}\n.cs-lb-root .cs-lb-rows .cs-lb-row{grid-template-columns:1fr;gap:22px;padding:36px 0}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-media{order:0}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-copy{order:1}\n.cs-lb-root .cs-lb-copy{max-width:none}\n.cs-lb-root .cs-lb-copy h3{font-size:24px;margin:0 0 10px}\n.cs-lb-root .cs-lb-copy p{font-size:15px}\n.cs-lb-root .cs-lb-specs{grid-template-columns:repeat(2,1fr);column-gap:22px;margin-top:56px}\n.cs-lb-root .cs-lb-spec{border-right:0;border-bottom:1px solid #e5e5e5;padding:24px 0}\n.cs-lb-root .cs-lb-trust{grid-template-columns:repeat(2,1fr);gap:28px;margin-top:56px;padding:48px 0}\n.cs-lb-root .cs-lb-closing{margin-top:0;padding:64px 0}\n.cs-lb-root .cs-lb-closing h2{font-size:30px}\n.cs-lb-root .cs-lb-closing p{font-size:16px}\n}\n@media(max-width:520px){\n.cs-lb-root .cs-lb-display{font-size:28px}\n.cs-lb-root .cs-lb-lede{font-size:16px}\n.cs-lb-root .cs-lb-iconrow{gap:14px}\n.cs-lb-root .cs-lb-iconrow h4{font-size:11px;letter-spacing:.1em}\n.cs-lb-root .cs-lb-iconrow p{font-size:12px;line-height:1.4}\n.cs-lb-root .cs-lb-copy h3{font-size:21px}\n.cs-lb-root .cs-lb-specs{grid-template-columns:1fr}\n.cs-lb-root .cs-lb-buyrow{flex-wrap:wrap;gap:14px}\n.cs-lb-root .cs-lb-trust{grid-template-columns:1fr;gap:24px}\n}\n\u003c\/style\u003e\n\u003cdiv class=\"cs-lb-lead\"\u003e\n\u003cdiv class=\"cs-lb-leadcopy\"\u003e\n\u003cp class=\"cs-lb-eyebrow\"\u003ePERSONALIZED CHRISTMAS ORNAMENT FOR GRANDMA\u003c\/p\u003e\n\u003cp class=\"cs-lb-display\"\u003e\u003cspan class=\"cs-lb-line\"\u003eone recipe, two pairs of hands,\u003c\/span\u003e\u003cspan class=\"cs-lb-line\"\u003etwenty years apart.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"cs-lb-lede\"\u003eTwo hands that learned the same thing from the same person, twenty years apart — and the flour on both of them. Her name, her granddaughter's, and the year, so the tradition finally has a date on it. Printed under the surface of a hand-finished crystal ornament that comes out of the box every December. Made to order, and nothing is made until you have seen the proof.\u003c\/p\u003e\n\u003cdiv class=\"cs-lb-iconrow\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\"\u003e\u003c\/rect\u003e\u003ccircle cx=\"8.5\" cy=\"10\" r=\"1.6\"\u003e\u003c\/circle\u003e\u003cpath d=\"M4 17l4.5-4.5 3.5 3.5 3-3L20 17\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003ePhoto\u003c\/h4\u003e\n\u003cp\u003eThe two of them, mid-recipe\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M6 5h12M12 5v14M9 19h6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eName\u003c\/h4\u003e\n\u003cp\u003eNana and Sophie, both on it\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"5\" width=\"16\" height=\"15\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M4 10h16M9 3v4M15 3v4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eDate\u003c\/h4\u003e\n\u003cp\u003eThe year this one was made\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-storycard\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/story-thumb-orn0006passed.jpg\" alt=\"Close-up of the uploaded photo of a grandmother and her granddaughter baking printed inside the crystal ornament\" loading=\"lazy\"\u003e\u003cdiv\u003e\n\u003cp class=\"cs-lb-k\"\u003eYour story\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eLove, passed down\u003c\/p\u003e\n\u003cp class=\"cs-lb-s\"\u003eNana \u0026amp; Sophie · Christmas 2026\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-buyrow\"\u003e\n\u003ca class=\"cs-lb-btn\" href=\"#customizer\"\u003ePersonalize Yours\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M5 12h13M13 6l6 6-6 6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/a\u003e\u003cspan class=\"cs-lb-from\"\u003eFrom $16.95\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-visual\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-christmas-ornament-for-grandma-orn0006passed-main-1.jpg\" alt=\"Two hands offering the personalized Christmas ornament for Grandma against a snowy window\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-specs\"\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M9 4v16\"\u003e\u003c\/path\u003e\u003c\/svg\u003eMaterial\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eHand-finished crystal, 5 in (12.7 cm) round\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M3 17h18M7 17V8h10v9\"\u003e\u003c\/path\u003e\u003c\/svg\u003eFinish\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eFaceted, diamond-cut rim, print sealed under the surface\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 9l8-4 8 4v9l-8 4-8-4V9z\"\u003e\u003c\/path\u003e\u003cpath d=\"M4 9l8 4 8-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003eHanging\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eRed-and-white striped ribbon loop, ready to hang\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 16V5M8 9l4-4 4 4\"\u003e\u003c\/path\u003e\u003cpath d=\"M5 16v2.5A1.5 1.5 0 006.5 20h11a1.5 1.5 0 001.5-1.5V16\"\u003e\u003c\/path\u003e\u003c\/svg\u003eYour photo\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eJPG, PNG or WebP up to 10 MB\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-chaphead\"\u003e\u003cp class=\"cs-lb-display\"\u003eEverything about it, up close.\u003c\/p\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-rows\"\u003e\n\u003cdiv class=\"cs-lb-row\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-christmas-ornament-for-grandma-orn0006passed-detail-1.jpg\" alt=\"A hand lifting the personalized Christmas ornament for Grandma out of an open kraft gift box by a snowy window\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e01 — The moment\u003c\/p\u003e\n\u003ch3\u003eThe first ornament she gets to hang herself.\u003c\/h3\u003e\n\u003cp\u003eSophie will have it on the tree before the dough is even cold.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row cs-lb-flip\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-christmas-ornament-for-grandma-orn0006passed-detail-2.jpg\" alt=\"The personalized Christmas ornament for Grandma hanging on a decorated tree beside a snowy window at dusk\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e02 — The home\u003c\/p\u003e\n\u003ch3\u003eIn the kitchen window, all December.\u003c\/h3\u003e\n\u003cp\u003eWhich is where the two of them do their best work.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-christmas-ornament-for-grandma-orn0006passed-detail-3.jpg\" alt=\"A phone on a linen surface showing the uploaded photo of a grandmother and her granddaughter baking, the finished ornament beside it\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e03 — The making\u003c\/p\u003e\n\u003ch3\u003eSend the photo from the flour-covered afternoon.\u003c\/h3\u003e\n\u003cp\u003eNothing is made until you have seen the proof.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row cs-lb-flip\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-christmas-ornament-for-grandma-orn0006passed-detail-4.jpg\" alt=\"The personalized Christmas ornament for Grandma hanging on a Christmas tree beside a snowy window in warm light\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e04 — The season\u003c\/p\u003e\n\u003ch3\u003eTwenty years from now, she will hang it again.\u003c\/h3\u003e\n\u003cp\u003eAnd she will know exactly who taught her.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-trust\"\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 20s-7-4.3-7-9a4 4 0 017-2.6A4 4 0 0119 11c0 4.7-7 9-7 9z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eEmotion First\u003c\/h4\u003e\n\u003cp\u003eDesigned around a real memory, not a template.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 3l8 3v6c0 4.4-3.3 7.9-8 9-4.7-1.1-8-4.6-8-9V6l8-3z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 12l2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eLasting Quality\u003c\/h4\u003e\n\u003cp\u003eHand-finished crystal, printed and sealed under the surface, built to last.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"10\" width=\"16\" height=\"10\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M8 10V7.5a4 4 0 018 0V10\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003ePrivacy Always\u003c\/h4\u003e\n\u003cp\u003eYour photos stay yours. Never shared or resold.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 21c5-2.5 8-6 8-11V5l-8-2-8 2v5c0 5 3 8.5 8 11z\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 8v6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eThoughtful Impact\u003c\/h4\u003e\n\u003cp\u003eMade to order, so nothing is made to be wasted.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-closing\"\u003e\n\u003ch2\u003eMade for the one who started it.\u003c\/h2\u003e\n\u003cp\u003eGifts that hold a year, not just a moment.\u003c\/p\u003e\n\u003ca class=\"cs-lb-btn\" href=\"\/collections\/all\"\u003eFind the perfect gift\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Personalized Christmas Ornament for Grandma — Love, Passed Down\", \"image\": [\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-christmas-ornament-for-grandma-orn0006passed-main-1.jpg\"], \"description\": \"Two hands that learned the same thing from the same person, twenty years apart \u0026mdash; and the flour on both of them. Her name, her granddaughter's, and the year, so the tradition finally has a date on it. Printed under the surface of a hand-finished crystal ornament that comes out of the box every December. Made to order, and nothing is made until you have seen the proof.\", \"sku\": \"CS-ORN-0006-PASSED\", \"brand\": {\"@type\": \"Brand\", \"name\": \"CustomSolo\"}, \"offers\": {\"@type\": \"Offer\", \"url\": \"https:\/\/customsolo.com\/products\/personalized-christmas-ornament-for-grandma-love-passed-down-1\", \"priceCurrency\": \"USD\", \"price\": \"16.95\", \"availability\": \"https:\/\/schema.org\/InStock\"}}\u003c\/script\u003e\n","brand":"customsolo","offers":[{"title":"Default Title","offer_id":50328228954304,"sku":"CS-ORN-0006-PASSED","price":16.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/cf1aa369-6043-4c4a-9911-d4e69ec7dbd8.png?v=1790144069"},{"product_id":"personalized-pet-christmas-ornament-our-christmas-has-paws","title":"Personalized Pet Christmas Ornament — Our Christmas Has Paws","description":"\u003c!--\n  CUSTOMSOLO PDP LOOKBOOK - BODY_HTML TEMPLATE v1.0\n  Source: live product page customsolo.com\/products\/customsolo-love-you-mom-test-v1\n          (measured 2026-09-29, body_html 16101 bytes, 6 img slots, 47 text slots)\n  Usage: copy this file, replace every , then PUT as product body_html.\n  RULES\n    - EVERY selector in \u003cstyle\u003e is prefixed .cs-lb-  (protects the customizer). Do not add bare tag selectors.\n    - ENGLISH ONLY. No Chinese anywhere, including CSS comments.\n    - Module order is fixed: lead \/ specs \/ chaphead \/ 4 chapters \/ trust \/ closing.\n    - Image slots are 6 = story-thumb (reuse the customer photo preview, 76x76) + hero (4:5)\n      + 4 chapter images (1536x938). Only 5 images need to be generated.\n    - Do NOT hand-write this HTML from memory. Copy this template.\n--\u003e\n\u003cdiv class=\"cs-lb-root\"\u003e\n\u003cstyle\u003e\n.cs-lb-root,.cs-lb-root *{box-sizing:border-box}\n.cs-lb-root *{text-transform:none}\n.cs-lb-root{font-family:-apple-system, BlinkMacSystemFont, 'system-ui', 'SF Pro Text', 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif;color:#1d1d1f;font-size:16px;line-height:1.6;margin:0}\n\n\/* break out of the theme's 720px desc column; width = pdp-lookbook-v5 .wrap content box (1200-96=1104) *\/\n@media(min-width:1024px){\n.cs-lb-root{width:min(1104px,100vw - 96px);\nmargin-left:calc(50% - min(552px,50vw - 48px));margin-right:calc(50% - min(552px,50vw - 48px))}\n}\n\n.cs-lb-root .cs-lb-eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#707070;font-weight:500;margin:0}\n.cs-lb-root .cs-lb-display{font-size:52px;line-height:1.05;font-weight:700;letter-spacing:-.025em;margin:20px 0 18px;color:#1d1d1f}\n.cs-lb-root .cs-lb-display .cs-lb-line{display:block}\n.cs-lb-root .cs-lb-lede{font-size:17px;line-height:1.62;color:#707070;max-width:46ch;margin:0}\n\n\/* story lead: single column by default, two columns from 1024px *\/\n.cs-lb-root .cs-lb-lead{margin:0}\n.cs-lb-root .cs-lb-visual{margin:32px 0 0;border-radius:16px;overflow:hidden;background:#f5f5f7}\n.cs-lb-root .cs-lb-visual img{display:block;width:100%;height:auto;aspect-ratio:4\/5;object-fit:cover;border-radius:16px}\n@media(min-width:1024px){\n.cs-lb-root .cs-lb-lead{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:start}\n.cs-lb-root .cs-lb-visual{margin:0}\n}\n@media(min-width:1024px) and (max-width:1199px){\n.cs-lb-root .cs-lb-display{font-size:44px}\n}\n\n\/* icon row *\/\n.cs-lb-root .cs-lb-iconrow{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:44px}\n.cs-lb-root .cs-lb-ico{width:46px;height:46px;border-radius:50%;background:#f5f5f7;display:flex;align-items:center;justify-content:center}\n.cs-lb-root .cs-lb-iconrow h4{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;margin:16px 0 7px;color:#1d1d1f}\n.cs-lb-root .cs-lb-iconrow p{font-size:14px;line-height:1.5;color:#707070;margin:0}\n\n\/* your story card *\/\n.cs-lb-root .cs-lb-storycard{background:#f5f5f7;border-radius:16px;padding:18px;display:flex;gap:18px;align-items:center;margin-top:40px}\n.cs-lb-root .cs-lb-storycard img{width:76px;height:76px;border-radius:10px;object-fit:cover;flex:0 0 76px;display:block}\n.cs-lb-root .cs-lb-storycard .cs-lb-k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#707070;font-weight:500;margin:0}\n.cs-lb-root .cs-lb-storycard .cs-lb-v{font-size:20px;font-weight:600;margin:4px 0 0;color:#1d1d1f}\n.cs-lb-root .cs-lb-storycard .cs-lb-s{font-size:15px;color:#707070;margin:2px 0 0}\n\n\/* buy row (v5 .buyrow) *\/\n.cs-lb-root .cs-lb-buyrow{display:flex;align-items:center;gap:22px;margin-top:26px}\n.cs-lb-root .cs-lb-btn{height:48px;padding:0 28px;border-radius:999px;background:#1d1d1f;color:#fff;\n  font-size:15px;font-weight:500;letter-spacing:0;display:inline-flex;align-items:center;justify-content:center;gap:10px;\n  text-decoration:none;transition:opacity .2s}\n.cs-lb-root .cs-lb-btn:hover{opacity:.85;color:#fff}\n.cs-lb-root .cs-lb-btn svg{flex:0 0 16px}\n.cs-lb-root .cs-lb-from{font-size:18px;font-weight:600;color:#1d1d1f}\n\n\/* specs (v5: right after story lead) *\/\n.cs-lb-root .cs-lb-specs{display:grid;grid-template-columns:repeat(4,1fr);margin:88px 0 0;border-top:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-spec{padding:34px 30px 36px 0;border-right:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-spec:last-child{border-right:0;padding-right:0}\n.cs-lb-root .cs-lb-spec .cs-lb-k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#707070;font-weight:500;margin:0 0 12px;\n  display:flex;align-items:center;gap:8px}\n.cs-lb-root .cs-lb-spec .cs-lb-v{margin:12px 0 0;font-size:16px;line-height:1.5;color:#1d1d1f}\n\n\/* chapter head *\/\n.cs-lb-root .cs-lb-chaphead{margin-top:96px;margin-bottom:12px;max-width:720px}\n.cs-lb-root .cs-lb-chaphead .cs-lb-display{font-size:44px;margin:0}\n\n\/* chapters *\/\n\/* closing band (v5 .closing): mist CTA band at the very end of the description.\n   It is wider than the 1104px column (100vw-32 pulled back by half, padding re-centres copy).\n   The -32px \/ +16px offset is deliberate: even if a browser ignores `overflow-x:clip`\n   (pre-Safari-16), the band still stays inside clientWidth, so no horizontal scrollbar.\n   The theme's own full-bleed band is `.cs-pdp-desc.is-band{margin-inline:-120px}` inside\n   `.cs-main{max-width:1440px;padding:0 120px}` -\u003e it spans the whole .cs-main box (1440px).\n   We cannot add a class to that theme element, so we reproduce the same result from inside:\n   the band is 100vw-48px wide (measured: a bare 100vw gives scrollWidth 1433 \u003e clientWidth\n   1425, i.e. a horizontal scrollbar, so we keep 24px of headroom on each side).\n   Do NOT clamp this with `overflow-x:clip` on `.cs-pdp-desc` - that element is only the\n   1200px grid column, so clipping would shrink the band to the column (120px gutters). *\/\n.cs-lb-root .cs-lb-closing{background:#f5f5f7;margin:0;padding:88px 0;text-align:left;\n  width:calc(100vw - 48px);margin-left:calc(50% - 50vw + 24px);margin-right:calc(50% - 50vw + 24px);\n  padding-left:calc(50vw - 50% - 24px);padding-right:calc(50vw - 50% - 24px)}\n.cs-lb-root .cs-lb-closing h2{font-size:40px;line-height:1.1;font-weight:700;letter-spacing:-.02em;\n  color:#1d1d1f;margin:0}\n.cs-lb-root .cs-lb-closing p{font-size:17px;line-height:1.5;color:#707070;margin:14px 0 0}\n.cs-lb-root .cs-lb-closing .cs-lb-btn{margin:28px 0 0;padding:0 30px}\n\n.cs-lb-root .cs-lb-rows{margin:40px 0 0;border-top:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-row{display:grid;grid-template-columns:1.24fr .86fr;gap:72px;align-items:center;\n  padding:60px 0;border-bottom:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-row:last-child{border-bottom:0}\n.cs-lb-root .cs-lb-media{margin:0;border-radius:16px;overflow:hidden;background:#f5f5f7}\n.cs-lb-root .cs-lb-media img{display:block;width:100%;height:auto;aspect-ratio:1536\/938;object-fit:cover;border-radius:16px}\n.cs-lb-root .cs-lb-copy{max-width:42ch}\n.cs-lb-root .cs-lb-idx{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#707070;font-weight:500;margin:0 0 16px}\n.cs-lb-root .cs-lb-copy h3{font-size:34px;line-height:1.15;font-weight:600;letter-spacing:-.022em;margin:0 0 14px;color:#1d1d1f;text-transform:none}\n.cs-lb-root .cs-lb-copy p{margin:0;font-size:16px;line-height:1.66;color:#707070}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-media{order:2}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-copy{order:1}\n\n\/* hide the theme's own \"The details\" eyebrow (user approved 2026-09-28:\n   both `THE DETAILS` and `The details` are removed, so the two are not duplicated).\n   Scoped to the direct child span of the desc inner -\u003e only this product page is\n   affected, because this \u003cstyle\u003e ships inside this product's body_html. *\/\n.cs-pdp-desc__inner \u003e .cs-pdp-desc__eyebrow{display:none}\n\n\/* trust row (v5 .trust, right after the chapters; the 72px gap below the last\n   chapter comes from v5 `.chapters{padding:96px 0 72px}` and is carried by margin-top here) *\/\n.cs-lb-root .cs-lb-trust{border-top:1px solid #e5e5e5;padding:64px 0;\n  display:grid;grid-template-columns:repeat(4,1fr);gap:36px;margin:72px 0 0}\n.cs-lb-root .cs-lb-trust svg{display:block;color:#1d1d1f}\n.cs-lb-root .cs-lb-trust h4{font-size:14px;line-height:1.4;font-weight:500;letter-spacing:0;\n  margin:16px 0 7px;color:#1d1d1f}\n.cs-lb-root .cs-lb-trust p{font-size:13px;line-height:1.55;color:#707070;margin:0}\n\n@media(max-width:960px){\n.cs-lb-root .cs-lb-display{font-size:34px}\n.cs-lb-root .cs-lb-chaphead{margin-top:56px;margin-bottom:0}\n.cs-lb-root .cs-lb-chaphead .cs-lb-display{font-size:30px}\n.cs-lb-root .cs-lb-rows .cs-lb-row{grid-template-columns:1fr;gap:22px;padding:36px 0}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-media{order:0}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-copy{order:1}\n.cs-lb-root .cs-lb-copy{max-width:none}\n.cs-lb-root .cs-lb-copy h3{font-size:24px;margin:0 0 10px}\n.cs-lb-root .cs-lb-copy p{font-size:15px}\n.cs-lb-root .cs-lb-specs{grid-template-columns:repeat(2,1fr);column-gap:22px;margin-top:56px}\n.cs-lb-root .cs-lb-spec{border-right:0;border-bottom:1px solid #e5e5e5;padding:24px 0}\n.cs-lb-root .cs-lb-trust{grid-template-columns:repeat(2,1fr);gap:28px;margin-top:56px;padding:48px 0}\n.cs-lb-root .cs-lb-closing{margin-top:0;padding:64px 0}\n.cs-lb-root .cs-lb-closing h2{font-size:30px}\n.cs-lb-root .cs-lb-closing p{font-size:16px}\n}\n@media(max-width:520px){\n.cs-lb-root .cs-lb-display{font-size:28px}\n.cs-lb-root .cs-lb-lede{font-size:16px}\n.cs-lb-root .cs-lb-iconrow{gap:14px}\n.cs-lb-root .cs-lb-iconrow h4{font-size:11px;letter-spacing:.1em}\n.cs-lb-root .cs-lb-iconrow p{font-size:12px;line-height:1.4}\n.cs-lb-root .cs-lb-copy h3{font-size:21px}\n.cs-lb-root .cs-lb-specs{grid-template-columns:1fr}\n.cs-lb-root .cs-lb-buyrow{flex-wrap:wrap;gap:14px}\n.cs-lb-root .cs-lb-trust{grid-template-columns:1fr;gap:24px}\n}\n\u003c\/style\u003e\n\u003cdiv class=\"cs-lb-lead\"\u003e\n\u003cdiv class=\"cs-lb-leadcopy\"\u003e\n\u003cp class=\"cs-lb-eyebrow\"\u003ePERSONALIZED PET CHRISTMAS ORNAMENT\u003c\/p\u003e\n\u003cp class=\"cs-lb-display\"\u003e\u003cspan class=\"cs-lb-line\"\u003ethe paper lasted four seconds.\u003c\/span\u003e\u003cspan class=\"cs-lb-line\"\u003ehe was in all of them.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"cs-lb-lede\"\u003eThe dog does not know what Christmas is — he knows everybody is home and something is being opened. His photo, his name, and the year, printed under the surface of hand-finished crystal. Made to order, and nothing is made until you have seen the proof.\u003c\/p\u003e\n\u003cdiv class=\"cs-lb-iconrow\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\"\u003e\u003c\/rect\u003e\u003ccircle cx=\"8.5\" cy=\"10\" r=\"1.6\"\u003e\u003c\/circle\u003e\u003cpath d=\"M4 17l4.5-4.5 3.5 3.5 3-3L20 17\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003ePhoto\u003c\/h4\u003e\n\u003cp\u003eThe one where he is looking at the camera and nobody else is\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M6 5h12M12 5v14M9 19h6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eName\u003c\/h4\u003e\n\u003cp\u003eHis name, spelled the way you actually call him\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"5\" width=\"16\" height=\"15\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M4 10h16M9 3v4M15 3v4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eDate\u003c\/h4\u003e\n\u003cp\u003eThe year, set under the picture\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-storycard\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/story-thumb-orn0009paws.jpg\" alt=\"Close-up of the uploaded photo of a child with a golden retriever printed inside the crystal pet ornament\" loading=\"lazy\"\u003e\u003cdiv\u003e\n\u003cp class=\"cs-lb-k\"\u003eYour story\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eOur christmas has paws\u003c\/p\u003e\n\u003cp class=\"cs-lb-s\"\u003eEmma · 2026\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-buyrow\"\u003e\n\u003ca class=\"cs-lb-btn\" href=\"#customizer\"\u003ePersonalize Yours\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M5 12h13M13 6l6 6-6 6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/a\u003e\u003cspan class=\"cs-lb-from\"\u003eFrom $16.95\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-visual\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-pet-christmas-ornament-orn0009paws-main-1.jpg\" alt=\"Two hands offering the personalized pet Christmas ornament, held up by its red-and-white candy-cane cord\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-specs\"\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M9 4v16\"\u003e\u003c\/path\u003e\u003c\/svg\u003eMaterial\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eHand-finished crystal, 5 in (12.7 cm) round\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M3 17h18M7 17V8h10v9\"\u003e\u003c\/path\u003e\u003c\/svg\u003eFinish\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eIridescent faceted rim, print sealed under the surface\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 9l8-4 8 4v9l-8 4-8-4V9z\"\u003e\u003c\/path\u003e\u003cpath d=\"M4 9l8 4 8-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003eHanging\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eSilver loop and a red-and-white candy-cane cord, ready to hang\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 16V5M8 9l4-4 4 4\"\u003e\u003c\/path\u003e\u003cpath d=\"M5 16v2.5A1.5 1.5 0 006.5 20h11a1.5 1.5 0 001.5-1.5V16\"\u003e\u003c\/path\u003e\u003c\/svg\u003eYour photo\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eJPG, PNG or WebP up to 10 MB\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-chaphead\"\u003e\u003cp class=\"cs-lb-display\"\u003eEverything about it, up close.\u003c\/p\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-rows\"\u003e\n\u003cdiv class=\"cs-lb-row\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-pet-christmas-ornament-orn0009paws-detail-1.jpg\" alt=\"A hand lifting the personalized pet Christmas ornament out of its kraft gift box, tissue paper still holding the shape\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e01 — The moment\u003c\/p\u003e\n\u003ch3\u003eHe does not know what Christmas is.\u003c\/h3\u003e\n\u003cp\u003eHe knows everybody is home and something is being opened. That is enough for him.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row cs-lb-flip\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-pet-christmas-ornament-orn0009paws-detail-2.jpg\" alt=\"The personalized pet Christmas ornament hanging on a decorated tree in a bright living room with a paper lantern behind\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e02 — The home\u003c\/p\u003e\n\u003ch3\u003eHang it low enough for him to inspect.\u003c\/h3\u003e\n\u003cp\u003eHe will check it every morning for the whole of December. Let him.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-pet-christmas-ornament-orn0009paws-detail-3.jpg\" alt=\"A phone showing the uploaded photo of a child with a golden retriever beside the finished personalized pet ornament on linen\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e03 — The making\u003c\/p\u003e\n\u003ch3\u003eA tighter crop keeps both faces sharp.\u003c\/h3\u003e\n\u003cp\u003eAnd yes, we know whose face matters most here. Send the photo and we print it — nothing is made until you have seen the proof.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row cs-lb-flip\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-pet-christmas-ornament-orn0009paws-detail-4.jpg\" alt=\"The personalized pet Christmas ornament hanging on a Christmas tree among warm string lights in a dim room\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e04 — The season\u003c\/p\u003e\n\u003ch3\u003eHe will knock it off the tree at least once.\u003c\/h3\u003e\n\u003cp\u003eIt is crystal. It will be fine.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-trust\"\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 20s-7-4.3-7-9a4 4 0 017-2.6A4 4 0 0119 11c0 4.7-7 9-7 9z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eEmotion First\u003c\/h4\u003e\n\u003cp\u003eDesigned around a real memory, not a template.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 3l8 3v6c0 4.4-3.3 7.9-8 9-4.7-1.1-8-4.6-8-9V6l8-3z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 12l2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eLasting Quality\u003c\/h4\u003e\n\u003cp\u003eHand-finished crystal, printed and sealed under the surface, built to last.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"10\" width=\"16\" height=\"10\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M8 10V7.5a4 4 0 018 0V10\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003ePrivacy Always\u003c\/h4\u003e\n\u003cp\u003eYour photos stay yours. Never shared or resold.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 21c5-2.5 8-6 8-11V5l-8-2-8 2v5c0 5 3 8.5 8 11z\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 8v6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eThoughtful Impact\u003c\/h4\u003e\n\u003cp\u003eMade to order, so nothing is made to be wasted.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-closing\"\u003e\n\u003ch2\u003eMade for the one with fur.\u003c\/h2\u003e\n\u003cp\u003eGifts that hold a year, not just a moment.\u003c\/p\u003e\n\u003ca class=\"cs-lb-btn\" href=\"\/collections\/all\"\u003eFind the perfect gift\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Personalized Pet Christmas Ornament — Our Christmas Has Paws\", \"image\": [\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-pet-christmas-ornament-orn0009paws-main-1.jpg\"], \"description\": \"The dog does not know what Christmas is \u0026mdash; he knows everybody is home and something is being opened. His photo, his name, and the year, printed under the surface of hand-finished crystal. Made to order, and nothing is made until you have seen the proof.\", \"sku\": \"CS-ORN-0009-PAWS\", \"brand\": {\"@type\": \"Brand\", \"name\": \"CustomSolo\"}, \"offers\": {\"@type\": \"Offer\", \"url\": \"https:\/\/customsolo.com\/products\/personalized-pet-christmas-ornament-our-christmas-has-paws\", \"priceCurrency\": \"USD\", \"price\": \"16.95\", \"availability\": \"https:\/\/schema.org\/InStock\"}}\u003c\/script\u003e\n","brand":"customsolo","offers":[{"title":"Default Title","offer_id":50328258838720,"sku":"CS-ORN-0009-PAWS","price":16.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/0cbcddc1-e525-46b1-b1b3-ae53a369d2a5.png?v=1790144890"},{"product_id":"personalized-christmas-ornament-for-couples-all-i-want-is-you-1","title":"Personalized Christmas Ornament for Couples — All I Want Is You","description":"\u003ch2\u003eyou were never going to ask for anything else\u003c\/h2\u003e\n\u003cp\u003ethe list you wrote was a formality — there was only ever one thing on it. built around your own photo of the two of you, with your names and the year. every piece is made to order: hand-finished in crystal, sized 5 in — built once, kept for years. preview your exact design before it ships, and make it yours.\u003c\/p\u003e\n\u003ch3\u003eWhat you are getting\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eanother christmas together, made into something you can hang\u003c\/li\u003e\n\u003cli\u003ethe photo where neither of you is trying to pose\u003c\/li\u003e\n\u003cli\u003eboth names and the year, set under the picture\u003c\/li\u003e\n\u003cli\u003ea present that doesn't need explaining when handed over\u003c\/li\u003e\n\u003cli\u003efully personalized — you preview the exact design before it ships\u003c\/li\u003e\n\u003cli\u003ehand-finished crystal build, made to outlast the season\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eHow to personalize it\u003c\/h3\u003e\n\u003cp\u003eUpload the photo, then add your names and the year. A tighter crop keeps you both sharp. We send a preview before anything is made, and nothing goes into production until you approve it.\u003c\/p\u003e\n\u003ch3\u003eGood to know\u003c\/h3\u003e\n\u003cp\u003eSize: 5 in (12.7 cm) | Material: polished glass | Shape: round\u003c\/p\u003e\n\u003cp\u003ePrinted on the flat face, then sealed — the image sits under the surface, so it will not rub off.\u003c\/p\u003e\n\u003cp\u003eTen years of christmases later, this is still the one you look for first.\u003c\/p\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\":\"https:\/\/schema.org\",\"@type\":\"Product\",\"name\":\"Personalized Christmas Ornament for Couples — All I Want Is You\",\"description\":\"Personalized Christmas Ornament for Couples in polished glass. Made to order from your photo — you approve a preview before we print. $16.95.\",\"sku\":\"CS-ORN-0007-WANT\",\"brand\":{\"@type\":\"Brand\",\"name\":\"Custom Solo\"},\"category\":\"Christmas Ornament for Couples\",\"image\":[\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/697ee845-065a-4905-831c-6918fc63b117.png\"],\"offers\":{\"@type\":\"Offer\",\"url\":\"https:\/\/customsolo.com\/products\/personalized-christmas-ornament-for-couples-all-i-want-is-you-1\",\"priceCurrency\":\"USD\",\"price\":\"16.95\",\"availability\":\"https:\/\/schema.org\/InStock\"}}\u003c\/script\u003e\n","brand":"customsolo","offers":[{"title":"Default Title","offer_id":50328259559616,"sku":"CS-ORN-0007-WANT","price":16.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/697ee845-065a-4905-831c-6918fc63b117.png?v=1790145020"},{"product_id":"personalized-memorial-ornament-for-dad-still-beside-me","title":"Personalized Memorial Ornament for Dad — Still Beside Me","description":"\u003ch2\u003edad never left. he just got quieter about it\u003c\/h2\u003e\n\u003cp\u003ehis name, his years, and the one red bird that always turns up when you least expect it — hung on the tree where the room can see it. made for the christmas where one chair stays empty and one person somehow doesn't. every piece is made to order: hand-finished in crystal, sized 5 in — built once, kept for years. preview your exact design before it ships, and make it yours.\u003c\/p\u003e\n\u003ch3\u003eWhat you are getting\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003ea place on the tree for the dad who should be here\u003c\/li\u003e\n\u003cli\u003ehis name and his dates, printed clean and steady\u003c\/li\u003e\n\u003cli\u003esomething that lets the family say his name without a speech\u003c\/li\u003e\n\u003cli\u003ethe ornament the kids will remember hanging every year\u003c\/li\u003e\n\u003cli\u003efully personalized — you preview the exact design before it ships\u003c\/li\u003e\n\u003cli\u003ehand-finished crystal build, made to outlast the season\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eHow to personalize it\u003c\/h3\u003e\n\u003cp\u003eUpload the photo, then add the name and the dates you want shown. A square or close-cropped image works better than a wide shot. We send a preview before anything is made, and nothing goes into production until you approve it.\u003c\/p\u003e\n\u003ch3\u003eGood to know\u003c\/h3\u003e\n\u003cp\u003eSize: 5 in (12.7 cm) | Material: polished glass | Shape: round\u003c\/p\u003e\n\u003cp\u003ePrinted on the flat face, then sealed — the image sits under the surface, so it will not rub off.\u003c\/p\u003e\n\u003cp\u003eSomebody will say \"that's him\" before anyone says merry christmas.\u003c\/p\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\":\"https:\/\/schema.org\",\"@type\":\"Product\",\"name\":\"Personalized Memorial Ornament for Dad — Still Beside Me\",\"description\":\"Personalized Memorial Ornament for Dad in polished glass. Made to order from your photo — you approve a preview before we print. $16.95.\",\"sku\":\"CS-MEM-0002-STILL\",\"brand\":{\"@type\":\"Brand\",\"name\":\"Custom Solo\"},\"category\":\"Memorial Ornament for Dad\",\"image\":[\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/c65cac0b-b7c3-4910-9dce-01e0bb38fd84.png\"],\"offers\":{\"@type\":\"Offer\",\"url\":\"https:\/\/customsolo.com\/products\/personalized-memorial-ornament-for-dad-still-beside-me\",\"priceCurrency\":\"USD\",\"price\":\"16.95\",\"availability\":\"https:\/\/schema.org\/InStock\"}}\u003c\/script\u003e\n","brand":"customsolo","offers":[{"title":"Default Title","offer_id":50328260378816,"sku":"CS-MEM-0002-STILL","price":16.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/c65cac0b-b7c3-4910-9dce-01e0bb38fd84.png?v=1790145386"},{"product_id":"personalized-pet-memorial-ornament-always-my-good-dog","title":"Personalized Pet Memorial Ornament — Always My Good Dog","description":"\u003ch2\u003ethey don't teach \"good boy\" in any language. he knew it anyway\u003c\/h2\u003e\n\u003cp\u003ethe leash by the door is still there. so is the spot on the rug. this one carries his photo, his name, and the two years that were never going to be enough — built around your own picture of him. every piece is made to order: hand-finished in crystal, sized 5 in — built once, kept for years. preview your exact design before it ships, and make it yours.\u003c\/p\u003e\n\u003ch3\u003eWhat you are getting\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003ehis name, and the years, set under the picture\u003c\/li\u003e\n\u003cli\u003ethe photo where his ears are wrong and it's perfect\u003c\/li\u003e\n\u003cli\u003ealways my good dog — said once a year, out loud, on purpose\u003c\/li\u003e\n\u003cli\u003ehanging at the front of the tree, where he'd have knocked it\u003c\/li\u003e\n\u003cli\u003efully personalized — you preview the exact design before it ships\u003c\/li\u003e\n\u003cli\u003ehand-finished crystal build, made to outlast the season\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eHow to personalize it\u003c\/h3\u003e\n\u003cp\u003eUpload his photo, then add the name and the years if you want them. A tight crop on his face works best — a blurry muzzle is nobody's favourite photo. We send a preview before anything is made, and nothing goes into production until you approve it.\u003c\/p\u003e\n\u003ch3\u003eGood to know\u003c\/h3\u003e\n\u003cp\u003eSize: 5 in (12.7 cm) | Material: polished glass | Shape: round\u003c\/p\u003e\n\u003cp\u003ePrinted on the flat face, then sealed — the image sits under the surface, so it will not rub off.\u003c\/p\u003e\n\u003cp\u003eWarning: this is the ornament somebody touches every single year.\u003c\/p\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\":\"https:\/\/schema.org\",\"@type\":\"Product\",\"name\":\"Personalized Pet Memorial Ornament — Always My Good Dog\",\"description\":\"Personalized Pet Memorial Ornament in polished glass. Made to order from your photo — you approve a preview before we print. $16.95.\",\"sku\":\"CS-ORN-0009-DOGBOY\",\"brand\":{\"@type\":\"Brand\",\"name\":\"Custom Solo\"},\"category\":\"Pet Memorial Ornament\",\"image\":[\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/cb2e45fd-2e89-47d4-8a66-567cc24fecc4.png\"],\"offers\":{\"@type\":\"Offer\",\"url\":\"https:\/\/customsolo.com\/products\/personalized-pet-memorial-ornament-always-my-good-dog\",\"priceCurrency\":\"USD\",\"price\":\"16.95\",\"availability\":\"https:\/\/schema.org\/InStock\"}}\u003c\/script\u003e\n","brand":"customsolo","offers":[{"title":"Default Title","offer_id":50332131295424,"sku":"CS-ORN-0009-DOGBOY","price":16.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/cb2e45fd-2e89-47d4-8a66-567cc24fecc4.png?v=1790168811"},{"product_id":"personalized-baby-first-christmas-ornament-christmas-grew-by-one","title":"Personalized Baby First Christmas Ornament — Christmas Grew by One","description":"\u003c!--\n  CUSTOMSOLO PDP LOOKBOOK - BODY_HTML TEMPLATE v1.0\n  Source: live product page customsolo.com\/products\/customsolo-love-you-mom-test-v1\n          (measured 2026-09-29, body_html 16101 bytes, 6 img slots, 47 text slots)\n  Usage: copy this file, replace every , then PUT as product body_html.\n  RULES\n    - EVERY selector in \u003cstyle\u003e is prefixed .cs-lb-  (protects the customizer). Do not add bare tag selectors.\n    - ENGLISH ONLY. No Chinese anywhere, including CSS comments.\n    - Module order is fixed: lead \/ specs \/ chaphead \/ 4 chapters \/ trust \/ closing.\n    - Image slots are 6 = story-thumb (reuse the customer photo preview, 76x76) + hero (4:5)\n      + 4 chapter images (1536x938). Only 5 images need to be generated.\n    - Do NOT hand-write this HTML from memory. Copy this template.\n--\u003e\n\u003cdiv class=\"cs-lb-root\"\u003e\n\u003cstyle\u003e\n.cs-lb-root,.cs-lb-root *{box-sizing:border-box}\n.cs-lb-root *{text-transform:none}\n.cs-lb-root{font-family:-apple-system, BlinkMacSystemFont, 'system-ui', 'SF Pro Text', 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif;color:#1d1d1f;font-size:16px;line-height:1.6;margin:0}\n\n\/* break out of the theme's 720px desc column; width = pdp-lookbook-v5 .wrap content box (1200-96=1104) *\/\n@media(min-width:1024px){\n.cs-lb-root{width:min(1104px,100vw - 96px);\nmargin-left:calc(50% - min(552px,50vw - 48px));margin-right:calc(50% - min(552px,50vw - 48px))}\n}\n\n.cs-lb-root .cs-lb-eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#707070;font-weight:500;margin:0}\n.cs-lb-root .cs-lb-display{font-size:52px;line-height:1.05;font-weight:700;letter-spacing:-.025em;margin:20px 0 18px;color:#1d1d1f}\n.cs-lb-root .cs-lb-display .cs-lb-line{display:block}\n.cs-lb-root .cs-lb-lede{font-size:17px;line-height:1.62;color:#707070;max-width:46ch;margin:0}\n\n\/* story lead: single column by default, two columns from 1024px *\/\n.cs-lb-root .cs-lb-lead{margin:0}\n.cs-lb-root .cs-lb-visual{margin:32px 0 0;border-radius:16px;overflow:hidden;background:#f5f5f7}\n.cs-lb-root .cs-lb-visual img{display:block;width:100%;height:auto;aspect-ratio:4\/5;object-fit:cover;border-radius:16px}\n@media(min-width:1024px){\n.cs-lb-root .cs-lb-lead{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:start}\n.cs-lb-root .cs-lb-visual{margin:0}\n}\n@media(min-width:1024px) and (max-width:1199px){\n.cs-lb-root .cs-lb-display{font-size:44px}\n}\n\n\/* icon row *\/\n.cs-lb-root .cs-lb-iconrow{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:44px}\n.cs-lb-root .cs-lb-ico{width:46px;height:46px;border-radius:50%;background:#f5f5f7;display:flex;align-items:center;justify-content:center}\n.cs-lb-root .cs-lb-iconrow h4{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;margin:16px 0 7px;color:#1d1d1f}\n.cs-lb-root .cs-lb-iconrow p{font-size:14px;line-height:1.5;color:#707070;margin:0}\n\n\/* your story card *\/\n.cs-lb-root .cs-lb-storycard{background:#f5f5f7;border-radius:16px;padding:18px;display:flex;gap:18px;align-items:center;margin-top:40px}\n.cs-lb-root .cs-lb-storycard img{width:76px;height:76px;border-radius:10px;object-fit:cover;flex:0 0 76px;display:block}\n.cs-lb-root .cs-lb-storycard .cs-lb-k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#707070;font-weight:500;margin:0}\n.cs-lb-root .cs-lb-storycard .cs-lb-v{font-size:20px;font-weight:600;margin:4px 0 0;color:#1d1d1f}\n.cs-lb-root .cs-lb-storycard .cs-lb-s{font-size:15px;color:#707070;margin:2px 0 0}\n\n\/* buy row (v5 .buyrow) *\/\n.cs-lb-root .cs-lb-buyrow{display:flex;align-items:center;gap:22px;margin-top:26px}\n.cs-lb-root .cs-lb-btn{height:48px;padding:0 28px;border-radius:999px;background:#1d1d1f;color:#fff;\n  font-size:15px;font-weight:500;letter-spacing:0;display:inline-flex;align-items:center;justify-content:center;gap:10px;\n  text-decoration:none;transition:opacity .2s}\n.cs-lb-root .cs-lb-btn:hover{opacity:.85;color:#fff}\n.cs-lb-root .cs-lb-btn svg{flex:0 0 16px}\n.cs-lb-root .cs-lb-from{font-size:18px;font-weight:600;color:#1d1d1f}\n\n\/* specs (v5: right after story lead) *\/\n.cs-lb-root .cs-lb-specs{display:grid;grid-template-columns:repeat(4,1fr);margin:88px 0 0;border-top:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-spec{padding:34px 30px 36px 0;border-right:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-spec:last-child{border-right:0;padding-right:0}\n.cs-lb-root .cs-lb-spec .cs-lb-k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#707070;font-weight:500;margin:0 0 12px;\n  display:flex;align-items:center;gap:8px}\n.cs-lb-root .cs-lb-spec .cs-lb-v{margin:12px 0 0;font-size:16px;line-height:1.5;color:#1d1d1f}\n\n\/* chapter head *\/\n.cs-lb-root .cs-lb-chaphead{margin-top:96px;margin-bottom:12px;max-width:720px}\n.cs-lb-root .cs-lb-chaphead .cs-lb-display{font-size:44px;margin:0}\n\n\/* chapters *\/\n\/* closing band (v5 .closing): mist CTA band at the very end of the description.\n   It is wider than the 1104px column (100vw-32 pulled back by half, padding re-centres copy).\n   The -32px \/ +16px offset is deliberate: even if a browser ignores `overflow-x:clip`\n   (pre-Safari-16), the band still stays inside clientWidth, so no horizontal scrollbar.\n   The theme's own full-bleed band is `.cs-pdp-desc.is-band{margin-inline:-120px}` inside\n   `.cs-main{max-width:1440px;padding:0 120px}` -\u003e it spans the whole .cs-main box (1440px).\n   We cannot add a class to that theme element, so we reproduce the same result from inside:\n   the band is 100vw-48px wide (measured: a bare 100vw gives scrollWidth 1433 \u003e clientWidth\n   1425, i.e. a horizontal scrollbar, so we keep 24px of headroom on each side).\n   Do NOT clamp this with `overflow-x:clip` on `.cs-pdp-desc` - that element is only the\n   1200px grid column, so clipping would shrink the band to the column (120px gutters). *\/\n.cs-lb-root .cs-lb-closing{background:#f5f5f7;margin:0;padding:88px 0;text-align:left;\n  width:calc(100vw - 48px);margin-left:calc(50% - 50vw + 24px);margin-right:calc(50% - 50vw + 24px);\n  padding-left:calc(50vw - 50% - 24px);padding-right:calc(50vw - 50% - 24px)}\n.cs-lb-root .cs-lb-closing h2{font-size:40px;line-height:1.1;font-weight:700;letter-spacing:-.02em;\n  color:#1d1d1f;margin:0}\n.cs-lb-root .cs-lb-closing p{font-size:17px;line-height:1.5;color:#707070;margin:14px 0 0}\n.cs-lb-root .cs-lb-closing .cs-lb-btn{margin:28px 0 0;padding:0 30px}\n\n.cs-lb-root .cs-lb-rows{margin:40px 0 0;border-top:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-row{display:grid;grid-template-columns:1.24fr .86fr;gap:72px;align-items:center;\n  padding:60px 0;border-bottom:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-row:last-child{border-bottom:0}\n.cs-lb-root .cs-lb-media{margin:0;border-radius:16px;overflow:hidden;background:#f5f5f7}\n.cs-lb-root .cs-lb-media img{display:block;width:100%;height:auto;aspect-ratio:1536\/938;object-fit:cover;border-radius:16px}\n.cs-lb-root .cs-lb-copy{max-width:42ch}\n.cs-lb-root .cs-lb-idx{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#707070;font-weight:500;margin:0 0 16px}\n.cs-lb-root .cs-lb-copy h3{font-size:34px;line-height:1.15;font-weight:600;letter-spacing:-.022em;margin:0 0 14px;color:#1d1d1f;text-transform:none}\n.cs-lb-root .cs-lb-copy p{margin:0;font-size:16px;line-height:1.66;color:#707070}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-media{order:2}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-copy{order:1}\n\n\/* hide the theme's own \"The details\" eyebrow (user approved 2026-09-28:\n   both `THE DETAILS` and `The details` are removed, so the two are not duplicated).\n   Scoped to the direct child span of the desc inner -\u003e only this product page is\n   affected, because this \u003cstyle\u003e ships inside this product's body_html. *\/\n.cs-pdp-desc__inner \u003e .cs-pdp-desc__eyebrow{display:none}\n\n\/* trust row (v5 .trust, right after the chapters; the 72px gap below the last\n   chapter comes from v5 `.chapters{padding:96px 0 72px}` and is carried by margin-top here) *\/\n.cs-lb-root .cs-lb-trust{border-top:1px solid #e5e5e5;padding:64px 0;\n  display:grid;grid-template-columns:repeat(4,1fr);gap:36px;margin:72px 0 0}\n.cs-lb-root .cs-lb-trust svg{display:block;color:#1d1d1f}\n.cs-lb-root .cs-lb-trust h4{font-size:14px;line-height:1.4;font-weight:500;letter-spacing:0;\n  margin:16px 0 7px;color:#1d1d1f}\n.cs-lb-root .cs-lb-trust p{font-size:13px;line-height:1.55;color:#707070;margin:0}\n\n@media(max-width:960px){\n.cs-lb-root .cs-lb-display{font-size:34px}\n.cs-lb-root .cs-lb-chaphead{margin-top:56px;margin-bottom:0}\n.cs-lb-root .cs-lb-chaphead .cs-lb-display{font-size:30px}\n.cs-lb-root .cs-lb-rows .cs-lb-row{grid-template-columns:1fr;gap:22px;padding:36px 0}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-media{order:0}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-copy{order:1}\n.cs-lb-root .cs-lb-copy{max-width:none}\n.cs-lb-root .cs-lb-copy h3{font-size:24px;margin:0 0 10px}\n.cs-lb-root .cs-lb-copy p{font-size:15px}\n.cs-lb-root .cs-lb-specs{grid-template-columns:repeat(2,1fr);column-gap:22px;margin-top:56px}\n.cs-lb-root .cs-lb-spec{border-right:0;border-bottom:1px solid #e5e5e5;padding:24px 0}\n.cs-lb-root .cs-lb-trust{grid-template-columns:repeat(2,1fr);gap:28px;margin-top:56px;padding:48px 0}\n.cs-lb-root .cs-lb-closing{margin-top:0;padding:64px 0}\n.cs-lb-root .cs-lb-closing h2{font-size:30px}\n.cs-lb-root .cs-lb-closing p{font-size:16px}\n}\n@media(max-width:520px){\n.cs-lb-root .cs-lb-display{font-size:28px}\n.cs-lb-root .cs-lb-lede{font-size:16px}\n.cs-lb-root .cs-lb-iconrow{gap:14px}\n.cs-lb-root .cs-lb-iconrow h4{font-size:11px;letter-spacing:.1em}\n.cs-lb-root .cs-lb-iconrow p{font-size:12px;line-height:1.4}\n.cs-lb-root .cs-lb-copy h3{font-size:21px}\n.cs-lb-root .cs-lb-specs{grid-template-columns:1fr}\n.cs-lb-root .cs-lb-buyrow{flex-wrap:wrap;gap:14px}\n.cs-lb-root .cs-lb-trust{grid-template-columns:1fr;gap:24px}\n}\n\u003c\/style\u003e\n\u003cdiv class=\"cs-lb-lead\"\u003e\n\u003cdiv class=\"cs-lb-leadcopy\"\u003e\n\u003cp class=\"cs-lb-eyebrow\"\u003ePERSONALIZED BABY FIRST CHRISTMAS ORNAMENT\u003c\/p\u003e\n\u003cp class=\"cs-lb-display\"\u003e\u003cspan class=\"cs-lb-line\"\u003eChristmas grew by one\u003c\/span\u003e\u003cspan class=\"cs-lb-line\"\u003eand it will never be this small again\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"cs-lb-lede\"\u003eA personalized baby first Christmas ornament built around one photo from his first December — printed inside crystal, with his name and the year set underneath. Made to be hung low, kept for good.\u003c\/p\u003e\n\u003cdiv class=\"cs-lb-iconrow\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\"\u003e\u003c\/rect\u003e\u003ccircle cx=\"8.5\" cy=\"10\" r=\"1.6\"\u003e\u003c\/circle\u003e\u003cpath d=\"M4 17l4.5-4.5 3.5 3.5 3-3L20 17\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003ePhoto\u003c\/h4\u003e\n\u003cp\u003eThe one where he's asleep and it doesn't matter\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M6 5h12M12 5v14M9 19h6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eName\u003c\/h4\u003e\n\u003cp\u003ePicked before he could say it back\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"5\" width=\"16\" height=\"15\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M4 10h16M9 3v4M15 3v4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eDate\u003c\/h4\u003e\n\u003cp\u003eThe year the tree had one more name on it\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-storycard\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/story-thumb.jpg\" alt=\"Close-up of the uploaded photo printed on the crystal ornament\" loading=\"lazy\"\u003e\u003cdiv\u003e\n\u003cp class=\"cs-lb-k\"\u003eYour story\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eEmma · 2026\u003c\/p\u003e\n\u003cp class=\"cs-lb-s\"\u003eChristmas grew by one\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-buyrow\"\u003e\n\u003ca class=\"cs-lb-btn\" href=\"#customizer\"\u003ePersonalize Yours\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M5 12h13M13 6l6 6-6 6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/a\u003e\u003cspan class=\"cs-lb-from\"\u003eFrom $16.95\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-visual\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-baby-first-christmas-ornament-orn0005bfirst-main-1.jpg\" alt=\"Personalized Baby First Christmas Ornament handed over, held up by its candy-cane cord in daylight\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-specs\"\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M9 4v16\"\u003e\u003c\/path\u003e\u003c\/svg\u003eMaterial\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003ePolished crystal, printed and sealed under the surface\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M3 17h18M7 17V8h10v9\"\u003e\u003c\/path\u003e\u003c\/svg\u003eSize\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003e5 in (12.7 cm) round, the same disc across every design\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 9l8-4 8 4v9l-8 4-8-4V9z\"\u003e\u003c\/path\u003e\u003cpath d=\"M4 9l8 4 8-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003eHanging\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eRed-and-white candy-cane cord, ready to hang the day it arrives\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 16V5M8 9l4-4 4 4\"\u003e\u003c\/path\u003e\u003cpath d=\"M5 16v2.5A1.5 1.5 0 006.5 20h11a1.5 1.5 0 001.5-1.5V16\"\u003e\u003c\/path\u003e\u003c\/svg\u003eYour photo\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eJPG, PNG or WebP up to 10 MB — background removal available\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-chaphead\"\u003e\u003cp class=\"cs-lb-display\"\u003eEverything about it, up close.\u003c\/p\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-rows\"\u003e\n\u003cdiv class=\"cs-lb-row\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-baby-first-christmas-ornament-orn0005bfirst-detail-1.jpg\" alt=\"Personalized Baby First Christmas Ornament held in both hands the moment a gift box is opened\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e01 — The moment\u003c\/p\u003e\n\u003ch3\u003eThe first thirty seconds are the whole gift.\u003c\/h3\u003e\n\u003cp\u003eHe won't remember this December. You will — the moment the box came open and his first Christmas ornament went up to the window light, with the morning still ahead of you and nothing else to do.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row cs-lb-flip\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-baby-first-christmas-ornament-orn0005bfirst-detail-2.jpg\" alt=\"Personalized Baby First Christmas Ornament hanging on a nursery door in warm evening lamplight\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e02 — The home\u003c\/p\u003e\n\u003ch3\u003eOn his door at night, not in a drawer.\u003c\/h3\u003e\n\u003cp\u003eA crystal disc on a candy-cane cord, made to hang where you already pass a hundred times a day — the nursery door now, the family tree later, his own tree the year he asks for one. That is where a keepsake earns its keep.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-baby-first-christmas-ornament-orn0005bfirst-detail-3.jpg\" alt=\"Personalized Baby First Christmas Ornament beside the phone showing the photo it was printed from\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e03 — The making\u003c\/p\u003e\n\u003ch3\u003eUpload it. Preview it. Approve it.\u003c\/h3\u003e\n\u003cp\u003eChoose the photo, type his name and the year, and see the exact design before anything is made. Prefer the crystal to stay clear behind him? Background removal is one tap, and the room you hang it in shows straight through.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row cs-lb-flip\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-baby-first-christmas-ornament-orn0005bfirst-detail-4.jpg\" alt=\"Personalized Baby First Christmas Ornament hanging low on a fir tree lit with warm fairy lights\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e04 — The season\u003c\/p\u003e\n\u003ch3\u003eHang it low, where a small hand can find it.\u003c\/h3\u003e\n\u003cp\u003eThis is the one that starts the collection. Every December after this one gets a new disc beside it — and in three years he will reach for this exact one first, because it is the only one that has always been there.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-trust\"\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 20s-7-4.3-7-9a4 4 0 017-2.6A4 4 0 0119 11c0 4.7-7 9-7 9z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eEmotion First\u003c\/h4\u003e\n\u003cp\u003eDesigned around a real memory, not a template.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 3l8 3v6c0 4.4-3.3 7.9-8 9-4.7-1.1-8-4.6-8-9V6l8-3z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 12l2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eLasting Quality\u003c\/h4\u003e\n\u003cp\u003eHand-finished crystal, printed to outlast the season.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"10\" width=\"16\" height=\"10\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M8 10V7.5a4 4 0 018 0V10\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003ePrivacy Always\u003c\/h4\u003e\n\u003cp\u003eYour photos stay yours. Never shared or resold.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 21c5-2.5 8-6 8-11V5l-8-2-8 2v5c0 5 3 8.5 8 11z\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 8v6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eThoughtful Impact\u003c\/h4\u003e\n\u003cp\u003eMade to order, so nothing is made to be wasted.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-closing\"\u003e\n\u003ch2\u003eMade to be kept, not packed away.\u003c\/h2\u003e\n\u003cp\u003ePersonalized keepsakes built from your own photos — printed, hand-finished and checked before they ship.\u003c\/p\u003e\n\u003ca class=\"cs-lb-btn\" href=\"\/collections\/all\"\u003eFind the perfect gift\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Personalized Baby First Christmas Ornament — Christmas Grew by One\", \"image\": [\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-baby-first-christmas-ornament-orn0005bfirst-main-1.jpg\"], \"description\": \"A personalized baby first Christmas ornament built around one photo from his first December — printed inside crystal, with his name and the year set underneath. Made to be hung low, kept for good.\", \"sku\": \"CS-ORN-0005B-FIRST\", \"brand\": {\"@type\": \"Brand\", \"name\": \"CustomSolo\"}, \"offers\": {\"@type\": \"Offer\", \"url\": \"https:\/\/customsolo.com\/products\/personalized-baby-first-christmas-ornament-christmas-grew-by-one\", \"priceCurrency\": \"USD\", \"price\": \"16.95\", \"availability\": \"https:\/\/schema.org\/InStock\"}}\u003c\/script\u003e\n","brand":"customsolo","offers":[{"title":"Default Title","offer_id":50332178841792,"sku":"CS-ORN-0005B-FIRST","price":16.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/4ccc6bdf-c669-4528-8b13-838da47d0bf3.png?v=1790169072"},{"product_id":"personalized-pet-adoption-ornament-home-is-where-you-are","title":"Personalized Pet Adoption Ornament — Home Is Where You Are","description":"\u003c!--\n  CUSTOMSOLO PDP LOOKBOOK - BODY_HTML TEMPLATE v1.0\n  Source: live product page customsolo.com\/products\/customsolo-love-you-mom-test-v1\n          (measured 2026-09-29, body_html 16101 bytes, 6 img slots, 47 text slots)\n  Usage: copy this file, replace every , then PUT as product body_html.\n  RULES\n    - EVERY selector in \u003cstyle\u003e is prefixed .cs-lb-  (protects the customizer). Do not add bare tag selectors.\n    - ENGLISH ONLY. No Chinese anywhere, including CSS comments.\n    - Module order is fixed: lead \/ specs \/ chaphead \/ 4 chapters \/ trust \/ closing.\n    - Image slots are 6 = story-thumb (reuse the customer photo preview, 76x76) + hero (4:5)\n      + 4 chapter images (1536x938). Only 5 images need to be generated.\n    - Do NOT hand-write this HTML from memory. Copy this template.\n--\u003e\n\u003cdiv class=\"cs-lb-root\"\u003e\n\u003cstyle\u003e\n.cs-lb-root,.cs-lb-root *{box-sizing:border-box}\n.cs-lb-root *{text-transform:none}\n.cs-lb-root{font-family:-apple-system, BlinkMacSystemFont, 'system-ui', 'SF Pro Text', 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif;color:#1d1d1f;font-size:16px;line-height:1.6;margin:0}\n\n\/* break out of the theme's 720px desc column; width = pdp-lookbook-v5 .wrap content box (1200-96=1104) *\/\n@media(min-width:1024px){\n.cs-lb-root{width:min(1104px,100vw - 96px);\nmargin-left:calc(50% - min(552px,50vw - 48px));margin-right:calc(50% - min(552px,50vw - 48px))}\n}\n\n.cs-lb-root .cs-lb-eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#707070;font-weight:500;margin:0}\n.cs-lb-root .cs-lb-display{font-size:52px;line-height:1.05;font-weight:700;letter-spacing:-.025em;margin:20px 0 18px;color:#1d1d1f}\n.cs-lb-root .cs-lb-display .cs-lb-line{display:block}\n.cs-lb-root .cs-lb-lede{font-size:17px;line-height:1.62;color:#707070;max-width:46ch;margin:0}\n\n\/* story lead: single column by default, two columns from 1024px *\/\n.cs-lb-root .cs-lb-lead{margin:0}\n.cs-lb-root .cs-lb-visual{margin:32px 0 0;border-radius:16px;overflow:hidden;background:#f5f5f7}\n.cs-lb-root .cs-lb-visual img{display:block;width:100%;height:auto;aspect-ratio:4\/5;object-fit:cover;border-radius:16px}\n@media(min-width:1024px){\n.cs-lb-root .cs-lb-lead{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:start}\n.cs-lb-root .cs-lb-visual{margin:0}\n}\n@media(min-width:1024px) and (max-width:1199px){\n.cs-lb-root .cs-lb-display{font-size:44px}\n}\n\n\/* icon row *\/\n.cs-lb-root .cs-lb-iconrow{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:44px}\n.cs-lb-root .cs-lb-ico{width:46px;height:46px;border-radius:50%;background:#f5f5f7;display:flex;align-items:center;justify-content:center}\n.cs-lb-root .cs-lb-iconrow h4{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;margin:16px 0 7px;color:#1d1d1f}\n.cs-lb-root .cs-lb-iconrow p{font-size:14px;line-height:1.5;color:#707070;margin:0}\n\n\/* your story card *\/\n.cs-lb-root .cs-lb-storycard{background:#f5f5f7;border-radius:16px;padding:18px;display:flex;gap:18px;align-items:center;margin-top:40px}\n.cs-lb-root .cs-lb-storycard img{width:76px;height:76px;border-radius:10px;object-fit:cover;flex:0 0 76px;display:block}\n.cs-lb-root .cs-lb-storycard .cs-lb-k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#707070;font-weight:500;margin:0}\n.cs-lb-root .cs-lb-storycard .cs-lb-v{font-size:20px;font-weight:600;margin:4px 0 0;color:#1d1d1f}\n.cs-lb-root .cs-lb-storycard .cs-lb-s{font-size:15px;color:#707070;margin:2px 0 0}\n\n\/* buy row (v5 .buyrow) *\/\n.cs-lb-root .cs-lb-buyrow{display:flex;align-items:center;gap:22px;margin-top:26px}\n.cs-lb-root .cs-lb-btn{height:48px;padding:0 28px;border-radius:999px;background:#1d1d1f;color:#fff;\n  font-size:15px;font-weight:500;letter-spacing:0;display:inline-flex;align-items:center;justify-content:center;gap:10px;\n  text-decoration:none;transition:opacity .2s}\n.cs-lb-root .cs-lb-btn:hover{opacity:.85;color:#fff}\n.cs-lb-root .cs-lb-btn svg{flex:0 0 16px}\n.cs-lb-root .cs-lb-from{font-size:18px;font-weight:600;color:#1d1d1f}\n\n\/* specs (v5: right after story lead) *\/\n.cs-lb-root .cs-lb-specs{display:grid;grid-template-columns:repeat(4,1fr);margin:88px 0 0;border-top:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-spec{padding:34px 30px 36px 0;border-right:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-spec:last-child{border-right:0;padding-right:0}\n.cs-lb-root .cs-lb-spec .cs-lb-k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#707070;font-weight:500;margin:0 0 12px;\n  display:flex;align-items:center;gap:8px}\n.cs-lb-root .cs-lb-spec .cs-lb-v{margin:12px 0 0;font-size:16px;line-height:1.5;color:#1d1d1f}\n\n\/* chapter head *\/\n.cs-lb-root .cs-lb-chaphead{margin-top:96px;margin-bottom:12px;max-width:720px}\n.cs-lb-root .cs-lb-chaphead .cs-lb-display{font-size:44px;margin:0}\n\n\/* chapters *\/\n\/* closing band (v5 .closing): mist CTA band at the very end of the description.\n   It is wider than the 1104px column (100vw-32 pulled back by half, padding re-centres copy).\n   The -32px \/ +16px offset is deliberate: even if a browser ignores `overflow-x:clip`\n   (pre-Safari-16), the band still stays inside clientWidth, so no horizontal scrollbar.\n   The theme's own full-bleed band is `.cs-pdp-desc.is-band{margin-inline:-120px}` inside\n   `.cs-main{max-width:1440px;padding:0 120px}` -\u003e it spans the whole .cs-main box (1440px).\n   We cannot add a class to that theme element, so we reproduce the same result from inside:\n   the band is 100vw-48px wide (measured: a bare 100vw gives scrollWidth 1433 \u003e clientWidth\n   1425, i.e. a horizontal scrollbar, so we keep 24px of headroom on each side).\n   Do NOT clamp this with `overflow-x:clip` on `.cs-pdp-desc` - that element is only the\n   1200px grid column, so clipping would shrink the band to the column (120px gutters). *\/\n.cs-lb-root .cs-lb-closing{background:#f5f5f7;margin:0;padding:88px 0;text-align:left;\n  width:calc(100vw - 48px);margin-left:calc(50% - 50vw + 24px);margin-right:calc(50% - 50vw + 24px);\n  padding-left:calc(50vw - 50% - 24px);padding-right:calc(50vw - 50% - 24px)}\n.cs-lb-root .cs-lb-closing h2{font-size:40px;line-height:1.1;font-weight:700;letter-spacing:-.02em;\n  color:#1d1d1f;margin:0}\n.cs-lb-root .cs-lb-closing p{font-size:17px;line-height:1.5;color:#707070;margin:14px 0 0}\n.cs-lb-root .cs-lb-closing .cs-lb-btn{margin:28px 0 0;padding:0 30px}\n\n.cs-lb-root .cs-lb-rows{margin:40px 0 0;border-top:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-row{display:grid;grid-template-columns:1.24fr .86fr;gap:72px;align-items:center;\n  padding:60px 0;border-bottom:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-row:last-child{border-bottom:0}\n.cs-lb-root .cs-lb-media{margin:0;border-radius:16px;overflow:hidden;background:#f5f5f7}\n.cs-lb-root .cs-lb-media img{display:block;width:100%;height:auto;aspect-ratio:1536\/938;object-fit:cover;border-radius:16px}\n.cs-lb-root .cs-lb-copy{max-width:42ch}\n.cs-lb-root .cs-lb-idx{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#707070;font-weight:500;margin:0 0 16px}\n.cs-lb-root .cs-lb-copy h3{font-size:34px;line-height:1.15;font-weight:600;letter-spacing:-.022em;margin:0 0 14px;color:#1d1d1f;text-transform:none}\n.cs-lb-root .cs-lb-copy p{margin:0;font-size:16px;line-height:1.66;color:#707070}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-media{order:2}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-copy{order:1}\n\n\/* hide the theme's own \"The details\" eyebrow (user approved 2026-09-28:\n   both `THE DETAILS` and `The details` are removed, so the two are not duplicated).\n   Scoped to the direct child span of the desc inner -\u003e only this product page is\n   affected, because this \u003cstyle\u003e ships inside this product's body_html. *\/\n.cs-pdp-desc__inner \u003e .cs-pdp-desc__eyebrow{display:none}\n\n\/* trust row (v5 .trust, right after the chapters; the 72px gap below the last\n   chapter comes from v5 `.chapters{padding:96px 0 72px}` and is carried by margin-top here) *\/\n.cs-lb-root .cs-lb-trust{border-top:1px solid #e5e5e5;padding:64px 0;\n  display:grid;grid-template-columns:repeat(4,1fr);gap:36px;margin:72px 0 0}\n.cs-lb-root .cs-lb-trust svg{display:block;color:#1d1d1f}\n.cs-lb-root .cs-lb-trust h4{font-size:14px;line-height:1.4;font-weight:500;letter-spacing:0;\n  margin:16px 0 7px;color:#1d1d1f}\n.cs-lb-root .cs-lb-trust p{font-size:13px;line-height:1.55;color:#707070;margin:0}\n\n@media(max-width:960px){\n.cs-lb-root .cs-lb-display{font-size:34px}\n.cs-lb-root .cs-lb-chaphead{margin-top:56px;margin-bottom:0}\n.cs-lb-root .cs-lb-chaphead .cs-lb-display{font-size:30px}\n.cs-lb-root .cs-lb-rows .cs-lb-row{grid-template-columns:1fr;gap:22px;padding:36px 0}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-media{order:0}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-copy{order:1}\n.cs-lb-root .cs-lb-copy{max-width:none}\n.cs-lb-root .cs-lb-copy h3{font-size:24px;margin:0 0 10px}\n.cs-lb-root .cs-lb-copy p{font-size:15px}\n.cs-lb-root .cs-lb-specs{grid-template-columns:repeat(2,1fr);column-gap:22px;margin-top:56px}\n.cs-lb-root .cs-lb-spec{border-right:0;border-bottom:1px solid #e5e5e5;padding:24px 0}\n.cs-lb-root .cs-lb-trust{grid-template-columns:repeat(2,1fr);gap:28px;margin-top:56px;padding:48px 0}\n.cs-lb-root .cs-lb-closing{margin-top:0;padding:64px 0}\n.cs-lb-root .cs-lb-closing h2{font-size:30px}\n.cs-lb-root .cs-lb-closing p{font-size:16px}\n}\n@media(max-width:520px){\n.cs-lb-root .cs-lb-display{font-size:28px}\n.cs-lb-root .cs-lb-lede{font-size:16px}\n.cs-lb-root .cs-lb-iconrow{gap:14px}\n.cs-lb-root .cs-lb-iconrow h4{font-size:11px;letter-spacing:.1em}\n.cs-lb-root .cs-lb-iconrow p{font-size:12px;line-height:1.4}\n.cs-lb-root .cs-lb-copy h3{font-size:21px}\n.cs-lb-root .cs-lb-specs{grid-template-columns:1fr}\n.cs-lb-root .cs-lb-buyrow{flex-wrap:wrap;gap:14px}\n.cs-lb-root .cs-lb-trust{grid-template-columns:1fr;gap:24px}\n}\n\u003c\/style\u003e\n\u003cdiv class=\"cs-lb-lead\"\u003e\n\u003cdiv class=\"cs-lb-leadcopy\"\u003e\n\u003cp class=\"cs-lb-eyebrow\"\u003ePERSONALIZED PET ADOPTION ORNAMENT\u003c\/p\u003e\n\u003cp class=\"cs-lb-display\"\u003e\u003cspan class=\"cs-lb-line\"\u003eyou didn't rescue him.\u003c\/span\u003e\u003cspan class=\"cs-lb-line\"\u003ehe picked you and moved in.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"cs-lb-lede\"\u003eHis photo, his name, and the year he decided the couch was shared property — printed on a clear acrylic ornament with a clean polished rim. Made to order, and nothing is made until you have seen the proof.\u003c\/p\u003e\n\u003cdiv class=\"cs-lb-iconrow\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\"\u003e\u003c\/rect\u003e\u003ccircle cx=\"8.5\" cy=\"10\" r=\"1.6\"\u003e\u003c\/circle\u003e\u003cpath d=\"M4 17l4.5-4.5 3.5 3.5 3-3L20 17\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003ePhoto\u003c\/h4\u003e\n\u003cp\u003eThe one from the first week\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M6 5h12M12 5v14M9 19h6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eName\u003c\/h4\u003e\n\u003cp\u003eHis name, spelled the way you call him\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"5\" width=\"16\" height=\"15\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M4 10h16M9 3v4M15 3v4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eDate\u003c\/h4\u003e\n\u003cp\u003eThe year he came home\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-storycard\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/story-thumb-orn0012pethome.jpg\" alt=\"Close-up of the uploaded photo of a woman and her rescue dog printed inside the clear acrylic pet adoption ornament\" loading=\"lazy\"\u003e\u003cdiv\u003e\n\u003cp class=\"cs-lb-k\"\u003eYour story\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eHome is where you are\u003c\/p\u003e\n\u003cp class=\"cs-lb-s\"\u003eCharlie · 2026\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-buyrow\"\u003e\n\u003ca class=\"cs-lb-btn\" href=\"#customizer\"\u003ePersonalize Yours\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M5 12h13M13 6l6 6-6 6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/a\u003e\u003cspan class=\"cs-lb-from\"\u003eFrom $16.95\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-visual\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-pet-adoption-ornament-orn0012pethome-main-1.jpg\" alt=\"Two hands offering the personalized pet adoption ornament, held up by its gold cord\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-specs\"\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M9 4v16\"\u003e\u003c\/path\u003e\u003c\/svg\u003eMaterial\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eCast acrylic disc, 5 in (12.7 cm) round\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M3 17h18M7 17V8h10v9\"\u003e\u003c\/path\u003e\u003c\/svg\u003eFinish\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003ePolished rim, print sealed under the surface\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 9l8-4 8 4v9l-8 4-8-4V9z\"\u003e\u003c\/path\u003e\u003cpath d=\"M4 9l8 4 8-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003eHanging\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eGold cord loop included — straight onto the tree, no ribbon required\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 16V5M8 9l4-4 4 4\"\u003e\u003c\/path\u003e\u003cpath d=\"M5 16v2.5A1.5 1.5 0 006.5 20h11a1.5 1.5 0 001.5-1.5V16\"\u003e\u003c\/path\u003e\u003c\/svg\u003eYour photo\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eJPG, PNG or WebP up to 10 MB\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-chaphead\"\u003e\u003cp class=\"cs-lb-display\"\u003eEverything about it, up close.\u003c\/p\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-rows\"\u003e\n\u003cdiv class=\"cs-lb-row\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-pet-adoption-ornament-orn0012pethome-detail-1.jpg\" alt=\"A hand lifting the personalized pet adoption ornament out of its kraft gift box, tissue paper still holding the shape\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e01 — The moment\u003c\/p\u003e\n\u003ch3\u003eThe first ornament that belongs to the dog.\u003c\/h3\u003e\n\u003cp\u003eHe will not understand it. He will sit under it anyway.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row cs-lb-flip\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-pet-adoption-ornament-orn0012pethome-detail-2.jpg\" alt=\"The personalized pet adoption ornament hanging on a decorated fir tree in a bright room with a paper lantern behind\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e02 — The home\u003c\/p\u003e\n\u003ch3\u003eHang it low on the tree.\u003c\/h3\u003e\n\u003cp\u003eNose height. He inspects everything, and this one is his.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-pet-adoption-ornament-orn0012pethome-detail-3.jpg\" alt=\"A phone showing the uploaded photo of a woman and her dog beside the finished personalized pet adoption ornament\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e03 — The making\u003c\/p\u003e\n\u003ch3\u003eUpload the photo, then add his name.\u003c\/h3\u003e\n\u003cp\u003eA tighter crop keeps the face sharp — and yes, we know whose face matters most here.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row cs-lb-flip\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-pet-adoption-ornament-orn0012pethome-detail-4.jpg\" alt=\"The personalized pet adoption ornament hanging on a Christmas tree among warm string lights in a dim room\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e04 — The season\u003c\/p\u003e\n\u003ch3\u003eThe wrapping paper lasted four seconds.\u003c\/h3\u003e\n\u003cp\u003eHe was in all of it. He will be in this too, eventually.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-trust\"\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 20s-7-4.3-7-9a4 4 0 017-2.6A4 4 0 0119 11c0 4.7-7 9-7 9z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eEmotion First\u003c\/h4\u003e\n\u003cp\u003eDesigned around a real memory, not a template.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 3l8 3v6c0 4.4-3.3 7.9-8 9-4.7-1.1-8-4.6-8-9V6l8-3z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 12l2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eLasting Quality\u003c\/h4\u003e\n\u003cp\u003eHand-finished acrylic, printed and sealed under the surface, built to last.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"10\" width=\"16\" height=\"10\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M8 10V7.5a4 4 0 018 0V10\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003ePrivacy Always\u003c\/h4\u003e\n\u003cp\u003eYour photos stay yours. Never shared or resold.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 21c5-2.5 8-6 8-11V5l-8-2-8 2v5c0 5 3 8.5 8 11z\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 8v6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eThoughtful Impact\u003c\/h4\u003e\n\u003cp\u003eMade to order, so nothing is made to be wasted.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-closing\"\u003e\n\u003ch2\u003eMade for the one who chose you.\u003c\/h2\u003e\n\u003cp\u003eGifts that hold a year, not just a moment.\u003c\/p\u003e\n\u003ca class=\"cs-lb-btn\" href=\"\/collections\/all\"\u003eFind the perfect gift\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Personalized Pet Adoption Ornament — Home Is Where You Are\", \"image\": [\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-pet-adoption-ornament-orn0012pethome-main-1.jpg\"], \"description\": \"His photo, his name, and the year he decided the couch was shared property \u0026mdash; printed on a clear acrylic ornament with a clean polished rim. Made to order, and nothing is made until you have seen the proof.\", \"sku\": \"CS-ORN-0012-PETHOME\", \"brand\": {\"@type\": \"Brand\", \"name\": \"CustomSolo\"}, \"offers\": {\"@type\": \"Offer\", \"url\": \"https:\/\/customsolo.com\/products\/personalized-pet-adoption-ornament-home-is-where-you-are\", \"priceCurrency\": \"USD\", \"price\": \"16.95\", \"availability\": \"https:\/\/schema.org\/InStock\"}}\u003c\/script\u003e\n","brand":"customsolo","offers":[{"title":"Default Title","offer_id":50332269609152,"sku":"CS-ORN-0012-PETHOME","price":16.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/314a9263-239a-4ecd-8faa-103fa3e3c281.png?v=1790169332"},{"product_id":"personalized-first-home-christmas-ornament-for-couples-home-begins-with-us","title":"Personalized First Home Christmas Ornament for Couples — Home Begins With Us","description":"\u003c!--\n  CUSTOMSOLO PDP LOOKBOOK - BODY_HTML TEMPLATE v1.0\n  Source: live product page customsolo.com\/products\/customsolo-love-you-mom-test-v1\n          (measured 2026-09-29, body_html 16101 bytes, 6 img slots, 47 text slots)\n  Usage: copy this file, replace every , then PUT as product body_html.\n  RULES\n    - EVERY selector in \u003cstyle\u003e is prefixed .cs-lb-  (protects the customizer). Do not add bare tag selectors.\n    - ENGLISH ONLY. No Chinese anywhere, including CSS comments.\n    - Module order is fixed: lead \/ specs \/ chaphead \/ 4 chapters \/ trust \/ closing.\n    - Image slots are 6 = story-thumb (reuse the customer photo preview, 76x76) + hero (4:5)\n      + 4 chapter images (1536x938). Only 5 images need to be generated.\n    - Do NOT hand-write this HTML from memory. Copy this template.\n--\u003e\n\u003cdiv class=\"cs-lb-root\"\u003e\n\u003cstyle\u003e\n.cs-lb-root,.cs-lb-root *{box-sizing:border-box}\n.cs-lb-root *{text-transform:none}\n.cs-lb-root{font-family:-apple-system, BlinkMacSystemFont, 'system-ui', 'SF Pro Text', 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif;color:#1d1d1f;font-size:16px;line-height:1.6;margin:0}\n\n\/* break out of the theme's 720px desc column; width = pdp-lookbook-v5 .wrap content box (1200-96=1104) *\/\n@media(min-width:1024px){\n.cs-lb-root{width:min(1104px,100vw - 96px);\nmargin-left:calc(50% - min(552px,50vw - 48px));margin-right:calc(50% - min(552px,50vw - 48px))}\n}\n\n.cs-lb-root .cs-lb-eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#707070;font-weight:500;margin:0}\n.cs-lb-root .cs-lb-display{font-size:52px;line-height:1.05;font-weight:700;letter-spacing:-.025em;margin:20px 0 18px;color:#1d1d1f}\n.cs-lb-root .cs-lb-display .cs-lb-line{display:block}\n.cs-lb-root .cs-lb-lede{font-size:17px;line-height:1.62;color:#707070;max-width:46ch;margin:0}\n\n\/* story lead: single column by default, two columns from 1024px *\/\n.cs-lb-root .cs-lb-lead{margin:0}\n.cs-lb-root .cs-lb-visual{margin:32px 0 0;border-radius:16px;overflow:hidden;background:#f5f5f7}\n.cs-lb-root .cs-lb-visual img{display:block;width:100%;height:auto;aspect-ratio:4\/5;object-fit:cover;border-radius:16px}\n@media(min-width:1024px){\n.cs-lb-root .cs-lb-lead{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:start}\n.cs-lb-root .cs-lb-visual{margin:0}\n}\n@media(min-width:1024px) and (max-width:1199px){\n.cs-lb-root .cs-lb-display{font-size:44px}\n}\n\n\/* icon row *\/\n.cs-lb-root .cs-lb-iconrow{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:44px}\n.cs-lb-root .cs-lb-ico{width:46px;height:46px;border-radius:50%;background:#f5f5f7;display:flex;align-items:center;justify-content:center}\n.cs-lb-root .cs-lb-iconrow h4{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;margin:16px 0 7px;color:#1d1d1f}\n.cs-lb-root .cs-lb-iconrow p{font-size:14px;line-height:1.5;color:#707070;margin:0}\n\n\/* your story card *\/\n.cs-lb-root .cs-lb-storycard{background:#f5f5f7;border-radius:16px;padding:18px;display:flex;gap:18px;align-items:center;margin-top:40px}\n.cs-lb-root .cs-lb-storycard img{width:76px;height:76px;border-radius:10px;object-fit:cover;flex:0 0 76px;display:block}\n.cs-lb-root .cs-lb-storycard .cs-lb-k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#707070;font-weight:500;margin:0}\n.cs-lb-root .cs-lb-storycard .cs-lb-v{font-size:20px;font-weight:600;margin:4px 0 0;color:#1d1d1f}\n.cs-lb-root .cs-lb-storycard .cs-lb-s{font-size:15px;color:#707070;margin:2px 0 0}\n\n\/* buy row (v5 .buyrow) *\/\n.cs-lb-root .cs-lb-buyrow{display:flex;align-items:center;gap:22px;margin-top:26px}\n.cs-lb-root .cs-lb-btn{height:48px;padding:0 28px;border-radius:999px;background:#1d1d1f;color:#fff;\n  font-size:15px;font-weight:500;letter-spacing:0;display:inline-flex;align-items:center;justify-content:center;gap:10px;\n  text-decoration:none;transition:opacity .2s}\n.cs-lb-root .cs-lb-btn:hover{opacity:.85;color:#fff}\n.cs-lb-root .cs-lb-btn svg{flex:0 0 16px}\n.cs-lb-root .cs-lb-from{font-size:18px;font-weight:600;color:#1d1d1f}\n\n\/* specs (v5: right after story lead) *\/\n.cs-lb-root .cs-lb-specs{display:grid;grid-template-columns:repeat(4,1fr);margin:88px 0 0;border-top:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-spec{padding:34px 30px 36px 0;border-right:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-spec:last-child{border-right:0;padding-right:0}\n.cs-lb-root .cs-lb-spec .cs-lb-k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#707070;font-weight:500;margin:0 0 12px;\n  display:flex;align-items:center;gap:8px}\n.cs-lb-root .cs-lb-spec .cs-lb-v{margin:12px 0 0;font-size:16px;line-height:1.5;color:#1d1d1f}\n\n\/* chapter head *\/\n.cs-lb-root .cs-lb-chaphead{margin-top:96px;margin-bottom:12px;max-width:720px}\n.cs-lb-root .cs-lb-chaphead .cs-lb-display{font-size:44px;margin:0}\n\n\/* chapters *\/\n\/* closing band (v5 .closing): mist CTA band at the very end of the description.\n   It is wider than the 1104px column (100vw-32 pulled back by half, padding re-centres copy).\n   The -32px \/ +16px offset is deliberate: even if a browser ignores `overflow-x:clip`\n   (pre-Safari-16), the band still stays inside clientWidth, so no horizontal scrollbar.\n   The theme's own full-bleed band is `.cs-pdp-desc.is-band{margin-inline:-120px}` inside\n   `.cs-main{max-width:1440px;padding:0 120px}` -\u003e it spans the whole .cs-main box (1440px).\n   We cannot add a class to that theme element, so we reproduce the same result from inside:\n   the band is 100vw-48px wide (measured: a bare 100vw gives scrollWidth 1433 \u003e clientWidth\n   1425, i.e. a horizontal scrollbar, so we keep 24px of headroom on each side).\n   Do NOT clamp this with `overflow-x:clip` on `.cs-pdp-desc` - that element is only the\n   1200px grid column, so clipping would shrink the band to the column (120px gutters). *\/\n.cs-lb-root .cs-lb-closing{background:#f5f5f7;margin:0;padding:88px 0;text-align:left;\n  width:calc(100vw - 48px);margin-left:calc(50% - 50vw + 24px);margin-right:calc(50% - 50vw + 24px);\n  padding-left:calc(50vw - 50% - 24px);padding-right:calc(50vw - 50% - 24px)}\n.cs-lb-root .cs-lb-closing h2{font-size:40px;line-height:1.1;font-weight:700;letter-spacing:-.02em;\n  color:#1d1d1f;margin:0}\n.cs-lb-root .cs-lb-closing p{font-size:17px;line-height:1.5;color:#707070;margin:14px 0 0}\n.cs-lb-root .cs-lb-closing .cs-lb-btn{margin:28px 0 0;padding:0 30px}\n\n.cs-lb-root .cs-lb-rows{margin:40px 0 0;border-top:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-row{display:grid;grid-template-columns:1.24fr .86fr;gap:72px;align-items:center;\n  padding:60px 0;border-bottom:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-row:last-child{border-bottom:0}\n.cs-lb-root .cs-lb-media{margin:0;border-radius:16px;overflow:hidden;background:#f5f5f7}\n.cs-lb-root .cs-lb-media img{display:block;width:100%;height:auto;aspect-ratio:1536\/938;object-fit:cover;border-radius:16px}\n.cs-lb-root .cs-lb-copy{max-width:42ch}\n.cs-lb-root .cs-lb-idx{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#707070;font-weight:500;margin:0 0 16px}\n.cs-lb-root .cs-lb-copy h3{font-size:34px;line-height:1.15;font-weight:600;letter-spacing:-.022em;margin:0 0 14px;color:#1d1d1f;text-transform:none}\n.cs-lb-root .cs-lb-copy p{margin:0;font-size:16px;line-height:1.66;color:#707070}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-media{order:2}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-copy{order:1}\n\n\/* hide the theme's own \"The details\" eyebrow (user approved 2026-09-28:\n   both `THE DETAILS` and `The details` are removed, so the two are not duplicated).\n   Scoped to the direct child span of the desc inner -\u003e only this product page is\n   affected, because this \u003cstyle\u003e ships inside this product's body_html. *\/\n.cs-pdp-desc__inner \u003e .cs-pdp-desc__eyebrow{display:none}\n\n\/* trust row (v5 .trust, right after the chapters; the 72px gap below the last\n   chapter comes from v5 `.chapters{padding:96px 0 72px}` and is carried by margin-top here) *\/\n.cs-lb-root .cs-lb-trust{border-top:1px solid #e5e5e5;padding:64px 0;\n  display:grid;grid-template-columns:repeat(4,1fr);gap:36px;margin:72px 0 0}\n.cs-lb-root .cs-lb-trust svg{display:block;color:#1d1d1f}\n.cs-lb-root .cs-lb-trust h4{font-size:14px;line-height:1.4;font-weight:500;letter-spacing:0;\n  margin:16px 0 7px;color:#1d1d1f}\n.cs-lb-root .cs-lb-trust p{font-size:13px;line-height:1.55;color:#707070;margin:0}\n\n@media(max-width:960px){\n.cs-lb-root .cs-lb-display{font-size:34px}\n.cs-lb-root .cs-lb-chaphead{margin-top:56px;margin-bottom:0}\n.cs-lb-root .cs-lb-chaphead .cs-lb-display{font-size:30px}\n.cs-lb-root .cs-lb-rows .cs-lb-row{grid-template-columns:1fr;gap:22px;padding:36px 0}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-media{order:0}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-copy{order:1}\n.cs-lb-root .cs-lb-copy{max-width:none}\n.cs-lb-root .cs-lb-copy h3{font-size:24px;margin:0 0 10px}\n.cs-lb-root .cs-lb-copy p{font-size:15px}\n.cs-lb-root .cs-lb-specs{grid-template-columns:repeat(2,1fr);column-gap:22px;margin-top:56px}\n.cs-lb-root .cs-lb-spec{border-right:0;border-bottom:1px solid #e5e5e5;padding:24px 0}\n.cs-lb-root .cs-lb-trust{grid-template-columns:repeat(2,1fr);gap:28px;margin-top:56px;padding:48px 0}\n.cs-lb-root .cs-lb-closing{margin-top:0;padding:64px 0}\n.cs-lb-root .cs-lb-closing h2{font-size:30px}\n.cs-lb-root .cs-lb-closing p{font-size:16px}\n}\n@media(max-width:520px){\n.cs-lb-root .cs-lb-display{font-size:28px}\n.cs-lb-root .cs-lb-lede{font-size:16px}\n.cs-lb-root .cs-lb-iconrow{gap:14px}\n.cs-lb-root .cs-lb-iconrow h4{font-size:11px;letter-spacing:.1em}\n.cs-lb-root .cs-lb-iconrow p{font-size:12px;line-height:1.4}\n.cs-lb-root .cs-lb-copy h3{font-size:21px}\n.cs-lb-root .cs-lb-specs{grid-template-columns:1fr}\n.cs-lb-root .cs-lb-buyrow{flex-wrap:wrap;gap:14px}\n.cs-lb-root .cs-lb-trust{grid-template-columns:1fr;gap:24px}\n}\n\u003c\/style\u003e\n\u003cdiv class=\"cs-lb-lead\"\u003e\n\u003cdiv class=\"cs-lb-leadcopy\"\u003e\n\u003cp class=\"cs-lb-eyebrow\"\u003ePERSONALIZED FIRST HOME CHRISTMAS ORNAMENT\u003c\/p\u003e\n\u003cp class=\"cs-lb-display\"\u003e\u003cspan class=\"cs-lb-line\"\u003ethe first one, in the first place,\u003c\/span\u003e\u003cspan class=\"cs-lb-line\"\u003eboxes still unpacked.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"cs-lb-lede\"\u003eOne lamp, two plates, and a tree smaller than last year's. Both names and the year printed on a clear acrylic ornament with a clean polished rim — the Christmas that belongs to the two of you alone.\u003c\/p\u003e\n\u003cdiv class=\"cs-lb-iconrow\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\"\u003e\u003c\/rect\u003e\u003ccircle cx=\"8.5\" cy=\"10\" r=\"1.6\"\u003e\u003c\/circle\u003e\u003cpath d=\"M4 17l4.5-4.5 3.5 3.5 3-3L20 17\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003ePhoto\u003c\/h4\u003e\n\u003cp\u003eThe one from the week you got the keys\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M6 5h12M12 5v14M9 19h6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eName\u003c\/h4\u003e\n\u003cp\u003eBoth names, exactly as you want them printed\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"5\" width=\"16\" height=\"15\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M4 10h16M9 3v4M15 3v4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eDate\u003c\/h4\u003e\n\u003cp\u003eThe year, so future-you knows which December\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-storycard\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/story-thumb-orn0013firsthome.jpg\" alt=\"Close-up of the uploaded photo of a couple with mugs printed inside the clear acrylic first home ornament\" loading=\"lazy\"\u003e\u003cdiv\u003e\n\u003cp class=\"cs-lb-k\"\u003eYour story\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eHome begins with us\u003c\/p\u003e\n\u003cp class=\"cs-lb-s\"\u003eEmma \u0026amp; Noah · 2026\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-buyrow\"\u003e\n\u003ca class=\"cs-lb-btn\" href=\"#customizer\"\u003ePersonalize Yours\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M5 12h13M13 6l6 6-6 6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/a\u003e\u003cspan class=\"cs-lb-from\"\u003eFrom $16.95\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-visual\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-first-home-christmas-ornament-for-couples-orn0013firsthome-main-1.jpg\" alt=\"Two hands offering the personalized first home Christmas ornament, held up by its gold cord\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-specs\"\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M9 4v16\"\u003e\u003c\/path\u003e\u003c\/svg\u003eMaterial\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eCast acrylic disc, 5 in (12.7 cm) round\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M3 17h18M7 17V8h10v9\"\u003e\u003c\/path\u003e\u003c\/svg\u003eFinish\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003ePolished rim, print sealed under the surface\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 9l8-4 8 4v9l-8 4-8-4V9z\"\u003e\u003c\/path\u003e\u003cpath d=\"M4 9l8 4 8-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003eHanging\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eGold cord loop included — straight onto the tree, no ribbon required\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 16V5M8 9l4-4 4 4\"\u003e\u003c\/path\u003e\u003cpath d=\"M5 16v2.5A1.5 1.5 0 006.5 20h11a1.5 1.5 0 001.5-1.5V16\"\u003e\u003c\/path\u003e\u003c\/svg\u003eYour photo\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eJPG, PNG or WebP up to 10 MB\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-chaphead\"\u003e\u003cp class=\"cs-lb-display\"\u003eEverything about it, up close.\u003c\/p\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-rows\"\u003e\n\u003cdiv class=\"cs-lb-row\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-first-home-christmas-ornament-for-couples-orn0013firsthome-detail-1.jpg\" alt=\"A hand lifting the personalized first home Christmas ornament out of its kraft gift box, tissue paper still holding the shape\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e01 — The moment\u003c\/p\u003e\n\u003ch3\u003eThe first decoration that was actually yours.\u003c\/h3\u003e\n\u003cp\u003eNot handed down, not borrowed from your mother's box. Yours.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row cs-lb-flip\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-first-home-christmas-ornament-for-couples-orn0013firsthome-detail-2.jpg\" alt=\"The personalized first home Christmas ornament hanging on a small decorated fir tree in a bright room with a paper lantern behind\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e02 — The home\u003c\/p\u003e\n\u003ch3\u003eIt goes on the smallest tree you will ever own.\u003c\/h3\u003e\n\u003cp\u003eAnd it stays in the box marked for next year, not the one marked for the charity shop.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-first-home-christmas-ornament-for-couples-orn0013firsthome-detail-3.jpg\" alt=\"A phone showing the uploaded photo of a couple beside the finished personalized first home ornament\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e03 — The making\u003c\/p\u003e\n\u003ch3\u003eUpload the photo, then add both names and the year.\u003c\/h3\u003e\n\u003cp\u003eThe one where you are both laughing is usually the right one. We print what you approve.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row cs-lb-flip\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-first-home-christmas-ornament-for-couples-orn0013firsthome-detail-4.jpg\" alt=\"The personalized first home Christmas ornament hanging on a Christmas tree among warm string lights in a dim room\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e04 — The season\u003c\/p\u003e\n\u003ch3\u003eTen years and four houses from now, it still says the same thing.\u003c\/h3\u003e\n\u003cp\u003eThe address changes. The line does not.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-trust\"\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 20s-7-4.3-7-9a4 4 0 017-2.6A4 4 0 0119 11c0 4.7-7 9-7 9z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eEmotion First\u003c\/h4\u003e\n\u003cp\u003eDesigned around a real memory, not a template.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 3l8 3v6c0 4.4-3.3 7.9-8 9-4.7-1.1-8-4.6-8-9V6l8-3z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 12l2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eLasting Quality\u003c\/h4\u003e\n\u003cp\u003eHand-finished acrylic, printed and sealed under the surface, built to last.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"10\" width=\"16\" height=\"10\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M8 10V7.5a4 4 0 018 0V10\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003ePrivacy Always\u003c\/h4\u003e\n\u003cp\u003eYour photos stay yours. Never shared or resold.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 21c5-2.5 8-6 8-11V5l-8-2-8 2v5c0 5 3 8.5 8 11z\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 8v6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eThoughtful Impact\u003c\/h4\u003e\n\u003cp\u003eMade to order, so nothing is made to be wasted.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-closing\"\u003e\n\u003ch2\u003eMade for the first Christmas with your name on the lease.\u003c\/h2\u003e\n\u003cp\u003eGifts that hold a year, not just a moment.\u003c\/p\u003e\n\u003ca class=\"cs-lb-btn\" href=\"\/collections\/all\"\u003eFind the perfect gift\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Personalized First Home Christmas Ornament for Couples — Home Begins With Us\", \"image\": [\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-first-home-christmas-ornament-for-couples-orn0013firsthome-main-1.jpg\"], \"description\": \"One lamp, two plates, and a tree smaller than last year's. Both names and the year printed on a clear acrylic ornament with a clean polished rim \u0026mdash; the Christmas that belongs to the two of you alone.\", \"sku\": \"CS-ORN-0013-FIRSTHOME\", \"brand\": {\"@type\": \"Brand\", \"name\": \"CustomSolo\"}, \"offers\": {\"@type\": \"Offer\", \"url\": \"https:\/\/customsolo.com\/products\/personalized-first-home-christmas-ornament-for-couples-home-begins-with-us\", \"priceCurrency\": \"USD\", \"price\": \"16.95\", \"availability\": \"https:\/\/schema.org\/InStock\"}}\u003c\/script\u003e\n","brand":"customsolo","offers":[{"title":"Default Title","offer_id":50332287533248,"sku":"CS-ORN-0013-FIRSTHOME","price":16.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/2f52d27c-8566-477b-8e6d-95c25049b20c.png?v=1790169472"},{"product_id":"personalized-long-distance-ornament-for-mom-always-close","title":"Personalized Long Distance Ornament for Mom — Always Close","description":"\u003c!--\n  CUSTOMSOLO PDP LOOKBOOK - BODY_HTML TEMPLATE v1.0\n  Source: live product page customsolo.com\/products\/customsolo-love-you-mom-test-v1\n          (measured 2026-09-29, body_html 16101 bytes, 6 img slots, 47 text slots)\n  Usage: copy this file, replace every , then PUT as product body_html.\n  RULES\n    - EVERY selector in \u003cstyle\u003e is prefixed .cs-lb-  (protects the customizer). Do not add bare tag selectors.\n    - ENGLISH ONLY. No Chinese anywhere, including CSS comments.\n    - Module order is fixed: lead \/ specs \/ chaphead \/ 4 chapters \/ trust \/ closing.\n    - Image slots are 6 = story-thumb (reuse the customer photo preview, 76x76) + hero (4:5)\n      + 4 chapter images (1536x938). Only 5 images need to be generated.\n    - Do NOT hand-write this HTML from memory. Copy this template.\n--\u003e\n\u003cdiv class=\"cs-lb-root\"\u003e\n\u003cstyle\u003e\n.cs-lb-root,.cs-lb-root *{box-sizing:border-box}\n.cs-lb-root *{text-transform:none}\n.cs-lb-root{font-family:-apple-system, BlinkMacSystemFont, 'system-ui', 'SF Pro Text', 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif;color:#1d1d1f;font-size:16px;line-height:1.6;margin:0}\n\n\/* break out of the theme's 720px desc column; width = pdp-lookbook-v5 .wrap content box (1200-96=1104) *\/\n@media(min-width:1024px){\n.cs-lb-root{width:min(1104px,100vw - 96px);\nmargin-left:calc(50% - min(552px,50vw - 48px));margin-right:calc(50% - min(552px,50vw - 48px))}\n}\n\n.cs-lb-root .cs-lb-eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#707070;font-weight:500;margin:0}\n.cs-lb-root .cs-lb-display{font-size:52px;line-height:1.05;font-weight:700;letter-spacing:-.025em;margin:20px 0 18px;color:#1d1d1f}\n.cs-lb-root .cs-lb-display .cs-lb-line{display:block}\n.cs-lb-root .cs-lb-lede{font-size:17px;line-height:1.62;color:#707070;max-width:46ch;margin:0}\n\n\/* story lead: single column by default, two columns from 1024px *\/\n.cs-lb-root .cs-lb-lead{margin:0}\n.cs-lb-root .cs-lb-visual{margin:32px 0 0;border-radius:16px;overflow:hidden;background:#f5f5f7}\n.cs-lb-root .cs-lb-visual img{display:block;width:100%;height:auto;aspect-ratio:4\/5;object-fit:cover;border-radius:16px}\n@media(min-width:1024px){\n.cs-lb-root .cs-lb-lead{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:start}\n.cs-lb-root .cs-lb-visual{margin:0}\n}\n@media(min-width:1024px) and (max-width:1199px){\n.cs-lb-root .cs-lb-display{font-size:44px}\n}\n\n\/* icon row *\/\n.cs-lb-root .cs-lb-iconrow{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:44px}\n.cs-lb-root .cs-lb-ico{width:46px;height:46px;border-radius:50%;background:#f5f5f7;display:flex;align-items:center;justify-content:center}\n.cs-lb-root .cs-lb-iconrow h4{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;margin:16px 0 7px;color:#1d1d1f}\n.cs-lb-root .cs-lb-iconrow p{font-size:14px;line-height:1.5;color:#707070;margin:0}\n\n\/* your story card *\/\n.cs-lb-root .cs-lb-storycard{background:#f5f5f7;border-radius:16px;padding:18px;display:flex;gap:18px;align-items:center;margin-top:40px}\n.cs-lb-root .cs-lb-storycard img{width:76px;height:76px;border-radius:10px;object-fit:cover;flex:0 0 76px;display:block}\n.cs-lb-root .cs-lb-storycard .cs-lb-k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#707070;font-weight:500;margin:0}\n.cs-lb-root .cs-lb-storycard .cs-lb-v{font-size:20px;font-weight:600;margin:4px 0 0;color:#1d1d1f}\n.cs-lb-root .cs-lb-storycard .cs-lb-s{font-size:15px;color:#707070;margin:2px 0 0}\n\n\/* buy row (v5 .buyrow) *\/\n.cs-lb-root .cs-lb-buyrow{display:flex;align-items:center;gap:22px;margin-top:26px}\n.cs-lb-root .cs-lb-btn{height:48px;padding:0 28px;border-radius:999px;background:#1d1d1f;color:#fff;\n  font-size:15px;font-weight:500;letter-spacing:0;display:inline-flex;align-items:center;justify-content:center;gap:10px;\n  text-decoration:none;transition:opacity .2s}\n.cs-lb-root .cs-lb-btn:hover{opacity:.85;color:#fff}\n.cs-lb-root .cs-lb-btn svg{flex:0 0 16px}\n.cs-lb-root .cs-lb-from{font-size:18px;font-weight:600;color:#1d1d1f}\n\n\/* specs (v5: right after story lead) *\/\n.cs-lb-root .cs-lb-specs{display:grid;grid-template-columns:repeat(4,1fr);margin:88px 0 0;border-top:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-spec{padding:34px 30px 36px 0;border-right:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-spec:last-child{border-right:0;padding-right:0}\n.cs-lb-root .cs-lb-spec .cs-lb-k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#707070;font-weight:500;margin:0 0 12px;\n  display:flex;align-items:center;gap:8px}\n.cs-lb-root .cs-lb-spec .cs-lb-v{margin:12px 0 0;font-size:16px;line-height:1.5;color:#1d1d1f}\n\n\/* chapter head *\/\n.cs-lb-root .cs-lb-chaphead{margin-top:96px;margin-bottom:12px;max-width:720px}\n.cs-lb-root .cs-lb-chaphead .cs-lb-display{font-size:44px;margin:0}\n\n\/* chapters *\/\n\/* closing band (v5 .closing): mist CTA band at the very end of the description.\n   It is wider than the 1104px column (100vw-32 pulled back by half, padding re-centres copy).\n   The -32px \/ +16px offset is deliberate: even if a browser ignores `overflow-x:clip`\n   (pre-Safari-16), the band still stays inside clientWidth, so no horizontal scrollbar.\n   The theme's own full-bleed band is `.cs-pdp-desc.is-band{margin-inline:-120px}` inside\n   `.cs-main{max-width:1440px;padding:0 120px}` -\u003e it spans the whole .cs-main box (1440px).\n   We cannot add a class to that theme element, so we reproduce the same result from inside:\n   the band is 100vw-48px wide (measured: a bare 100vw gives scrollWidth 1433 \u003e clientWidth\n   1425, i.e. a horizontal scrollbar, so we keep 24px of headroom on each side).\n   Do NOT clamp this with `overflow-x:clip` on `.cs-pdp-desc` - that element is only the\n   1200px grid column, so clipping would shrink the band to the column (120px gutters). *\/\n.cs-lb-root .cs-lb-closing{background:#f5f5f7;margin:0;padding:88px 0;text-align:left;\n  width:calc(100vw - 48px);margin-left:calc(50% - 50vw + 24px);margin-right:calc(50% - 50vw + 24px);\n  padding-left:calc(50vw - 50% - 24px);padding-right:calc(50vw - 50% - 24px)}\n.cs-lb-root .cs-lb-closing h2{font-size:40px;line-height:1.1;font-weight:700;letter-spacing:-.02em;\n  color:#1d1d1f;margin:0}\n.cs-lb-root .cs-lb-closing p{font-size:17px;line-height:1.5;color:#707070;margin:14px 0 0}\n.cs-lb-root .cs-lb-closing .cs-lb-btn{margin:28px 0 0;padding:0 30px}\n\n.cs-lb-root .cs-lb-rows{margin:40px 0 0;border-top:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-row{display:grid;grid-template-columns:1.24fr .86fr;gap:72px;align-items:center;\n  padding:60px 0;border-bottom:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-row:last-child{border-bottom:0}\n.cs-lb-root .cs-lb-media{margin:0;border-radius:16px;overflow:hidden;background:#f5f5f7}\n.cs-lb-root .cs-lb-media img{display:block;width:100%;height:auto;aspect-ratio:1536\/938;object-fit:cover;border-radius:16px}\n.cs-lb-root .cs-lb-copy{max-width:42ch}\n.cs-lb-root .cs-lb-idx{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#707070;font-weight:500;margin:0 0 16px}\n.cs-lb-root .cs-lb-copy h3{font-size:34px;line-height:1.15;font-weight:600;letter-spacing:-.022em;margin:0 0 14px;color:#1d1d1f;text-transform:none}\n.cs-lb-root .cs-lb-copy p{margin:0;font-size:16px;line-height:1.66;color:#707070}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-media{order:2}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-copy{order:1}\n\n\/* hide the theme's own \"The details\" eyebrow (user approved 2026-09-28:\n   both `THE DETAILS` and `The details` are removed, so the two are not duplicated).\n   Scoped to the direct child span of the desc inner -\u003e only this product page is\n   affected, because this \u003cstyle\u003e ships inside this product's body_html. *\/\n.cs-pdp-desc__inner \u003e .cs-pdp-desc__eyebrow{display:none}\n\n\/* trust row (v5 .trust, right after the chapters; the 72px gap below the last\n   chapter comes from v5 `.chapters{padding:96px 0 72px}` and is carried by margin-top here) *\/\n.cs-lb-root .cs-lb-trust{border-top:1px solid #e5e5e5;padding:64px 0;\n  display:grid;grid-template-columns:repeat(4,1fr);gap:36px;margin:72px 0 0}\n.cs-lb-root .cs-lb-trust svg{display:block;color:#1d1d1f}\n.cs-lb-root .cs-lb-trust h4{font-size:14px;line-height:1.4;font-weight:500;letter-spacing:0;\n  margin:16px 0 7px;color:#1d1d1f}\n.cs-lb-root .cs-lb-trust p{font-size:13px;line-height:1.55;color:#707070;margin:0}\n\n@media(max-width:960px){\n.cs-lb-root .cs-lb-display{font-size:34px}\n.cs-lb-root .cs-lb-chaphead{margin-top:56px;margin-bottom:0}\n.cs-lb-root .cs-lb-chaphead .cs-lb-display{font-size:30px}\n.cs-lb-root .cs-lb-rows .cs-lb-row{grid-template-columns:1fr;gap:22px;padding:36px 0}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-media{order:0}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-copy{order:1}\n.cs-lb-root .cs-lb-copy{max-width:none}\n.cs-lb-root .cs-lb-copy h3{font-size:24px;margin:0 0 10px}\n.cs-lb-root .cs-lb-copy p{font-size:15px}\n.cs-lb-root .cs-lb-specs{grid-template-columns:repeat(2,1fr);column-gap:22px;margin-top:56px}\n.cs-lb-root .cs-lb-spec{border-right:0;border-bottom:1px solid #e5e5e5;padding:24px 0}\n.cs-lb-root .cs-lb-trust{grid-template-columns:repeat(2,1fr);gap:28px;margin-top:56px;padding:48px 0}\n.cs-lb-root .cs-lb-closing{margin-top:0;padding:64px 0}\n.cs-lb-root .cs-lb-closing h2{font-size:30px}\n.cs-lb-root .cs-lb-closing p{font-size:16px}\n}\n@media(max-width:520px){\n.cs-lb-root .cs-lb-display{font-size:28px}\n.cs-lb-root .cs-lb-lede{font-size:16px}\n.cs-lb-root .cs-lb-iconrow{gap:14px}\n.cs-lb-root .cs-lb-iconrow h4{font-size:11px;letter-spacing:.1em}\n.cs-lb-root .cs-lb-iconrow p{font-size:12px;line-height:1.4}\n.cs-lb-root .cs-lb-copy h3{font-size:21px}\n.cs-lb-root .cs-lb-specs{grid-template-columns:1fr}\n.cs-lb-root .cs-lb-buyrow{flex-wrap:wrap;gap:14px}\n.cs-lb-root .cs-lb-trust{grid-template-columns:1fr;gap:24px}\n}\n\u003c\/style\u003e\n\u003cdiv class=\"cs-lb-lead\"\u003e\n\u003cdiv class=\"cs-lb-leadcopy\"\u003e\n\u003cp class=\"cs-lb-eyebrow\"\u003ePERSONALIZED LONG DISTANCE ORNAMENT FOR MOM\u003c\/p\u003e\n\u003cp class=\"cs-lb-display\"\u003e\u003cspan class=\"cs-lb-line\"\u003esix hundred miles,\u003c\/span\u003e\u003cspan class=\"cs-lb-line\"\u003eand she still knows.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"cs-lb-lede\"\u003eTwo houses, one road between them, and the line that covers the distance — printed on a clear acrylic ornament with a clean polished rim. Her photo, her name and the year, made to order and sealed under the surface.\u003c\/p\u003e\n\u003cdiv class=\"cs-lb-iconrow\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\"\u003e\u003c\/rect\u003e\u003ccircle cx=\"8.5\" cy=\"10\" r=\"1.6\"\u003e\u003c\/circle\u003e\u003cpath d=\"M4 17l4.5-4.5 3.5 3.5 3-3L20 17\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003ePhoto\u003c\/h4\u003e\n\u003cp\u003eThe last time you were in the same room\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M6 5h12M12 5v14M9 19h6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eName\u003c\/h4\u003e\n\u003cp\u003eBoth names, or hers alone, set under the picture\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"5\" width=\"16\" height=\"15\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M4 10h16M9 3v4M15 3v4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eDate\u003c\/h4\u003e\n\u003cp\u003eThe Christmas this was, kept on the ornament\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-storycard\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/story-thumb-orn0014close.jpg\" alt=\"Close-up of the uploaded photo of a mother and her daughter printed inside the clear acrylic long distance ornament\" loading=\"lazy\"\u003e\u003cdiv\u003e\n\u003cp class=\"cs-lb-k\"\u003eYour story\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eAlways close wherever we are\u003c\/p\u003e\n\u003cp class=\"cs-lb-s\"\u003eMom \u0026amp; Lily · 2026\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-buyrow\"\u003e\n\u003ca class=\"cs-lb-btn\" href=\"#customizer\"\u003ePersonalize Yours\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M5 12h13M13 6l6 6-6 6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/a\u003e\u003cspan class=\"cs-lb-from\"\u003eFrom $16.95\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-visual\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-long-distance-ornament-for-mom-orn0014close-main-1.jpg\" alt=\"Two hands offering the personalized long distance ornament for Mom, held up by its gold cord\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-specs\"\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M9 4v16\"\u003e\u003c\/path\u003e\u003c\/svg\u003eMaterial\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eCast acrylic disc, 5 in (12.7 cm) round\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M3 17h18M7 17V8h10v9\"\u003e\u003c\/path\u003e\u003c\/svg\u003eFinish\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003ePolished rim, print sealed under the surface\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 9l8-4 8 4v9l-8 4-8-4V9z\"\u003e\u003c\/path\u003e\u003cpath d=\"M4 9l8 4 8-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003eHanging\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eGold cord loop included — straight onto the tree, no ribbon required\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 16V5M8 9l4-4 4 4\"\u003e\u003c\/path\u003e\u003cpath d=\"M5 16v2.5A1.5 1.5 0 006.5 20h11a1.5 1.5 0 001.5-1.5V16\"\u003e\u003c\/path\u003e\u003c\/svg\u003eYour photo\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eJPG, PNG or WebP up to 10 MB\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-chaphead\"\u003e\u003cp class=\"cs-lb-display\"\u003eEverything about it, up close.\u003c\/p\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-rows\"\u003e\n\u003cdiv class=\"cs-lb-row\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-long-distance-ornament-for-mom-orn0014close-detail-1.jpg\" alt=\"A hand lifting the personalized long distance ornament for Mom out of its kraft gift box, tissue paper still holding the shape\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e01 — The moment\u003c\/p\u003e\n\u003ch3\u003eShe will open it and go quiet for a second.\u003c\/h3\u003e\n\u003cp\u003eThen she will ask when you are coming home, which is what the ornament is really about.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row cs-lb-flip\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-long-distance-ornament-for-mom-orn0014close-detail-2.jpg\" alt=\"The personalized long distance ornament for Mom hanging on a decorated fir tree beside a window with snow outside\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e02 — The home\u003c\/p\u003e\n\u003ch3\u003eIt hangs on her tree, on the side the window faces.\u003c\/h3\u003e\n\u003cp\u003eSo the daylight comes through the acrylic while she is doing the dishes.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-long-distance-ornament-for-mom-orn0014close-detail-3.jpg\" alt=\"A phone showing the uploaded photo of a mother and her daughter beside the finished personalized long distance ornament\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e03 — The making\u003c\/p\u003e\n\u003ch3\u003eUpload the photo, then check the spelling of her name.\u003c\/h3\u003e\n\u003cp\u003eMom, Mama, Mum — whatever you call her. Nothing is made until you approve the proof.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row cs-lb-flip\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-long-distance-ornament-for-mom-orn0014close-detail-4.jpg\" alt=\"The personalized long distance ornament for Mom hanging on a Christmas tree among warm string lights in a dim room\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e04 — The season\u003c\/p\u003e\n\u003ch3\u003eShe will send you a photo of it on the tree.\u003c\/h3\u003e\n\u003cp\u003eSame tree, same branch, every year. You will get the photo every year too.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-trust\"\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 20s-7-4.3-7-9a4 4 0 017-2.6A4 4 0 0119 11c0 4.7-7 9-7 9z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eEmotion First\u003c\/h4\u003e\n\u003cp\u003eDesigned around a real memory, not a template.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 3l8 3v6c0 4.4-3.3 7.9-8 9-4.7-1.1-8-4.6-8-9V6l8-3z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 12l2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eLasting Quality\u003c\/h4\u003e\n\u003cp\u003eHand-finished acrylic, printed and sealed under the surface, built to last.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"10\" width=\"16\" height=\"10\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M8 10V7.5a4 4 0 018 0V10\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003ePrivacy Always\u003c\/h4\u003e\n\u003cp\u003eYour photos stay yours. Never shared or resold.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 21c5-2.5 8-6 8-11V5l-8-2-8 2v5c0 5 3 8.5 8 11z\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 8v6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eThoughtful Impact\u003c\/h4\u003e\n\u003cp\u003eMade to order, so nothing is made to be wasted.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-closing\"\u003e\n\u003ch2\u003eMade for the one who is far away.\u003c\/h2\u003e\n\u003cp\u003eGifts that hold a year, not just a moment.\u003c\/p\u003e\n\u003ca class=\"cs-lb-btn\" href=\"\/collections\/all\"\u003eFind the perfect gift\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Personalized Long Distance Ornament for Mom — Always Close\", \"image\": [\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/personalized-long-distance-ornament-for-mom-orn0014close-main-1.jpg\"], \"description\": \"Two houses, one road between them, and the line that covers the distance \u0026mdash; printed on a clear acrylic ornament with a clean polished rim. Her photo, her name and the year, made to order and sealed under the surface.\", \"sku\": \"CS-ORN-0014-CLOSE\", \"brand\": {\"@type\": \"Brand\", \"name\": \"CustomSolo\"}, \"offers\": {\"@type\": \"Offer\", \"url\": \"https:\/\/customsolo.com\/products\/personalized-long-distance-ornament-for-mom-always-close\", \"priceCurrency\": \"USD\", \"price\": \"16.95\", \"availability\": \"https:\/\/schema.org\/InStock\"}}\u003c\/script\u003e\n","brand":"customsolo","offers":[{"title":"Default Title","offer_id":50332306079936,"sku":"CS-ORN-0014-CLOSE","price":16.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/d85fcc56-5407-4cd8-8cf0-79462cd5121e.png?v=1790169598"},{"product_id":"personalized-heart-night-light-for-couples-where-our-paths-met","title":"Personalized Heart Night Light for Couples — Where Our Paths Met","description":"\u003ch2\u003etwo routes, one hallway, and nobody checked the schedule\u003c\/h2\u003e\n\u003cp\u003eneither of you was trying. that's how most of these start. this lamp carries your photo and the line that says it plainly, lit from behind so the picture holds up after dark — built around your own picture of the two of you. every piece is made to order: built once, kept for years. preview your exact design before it ships, and make it yours.\u003c\/p\u003e\n\u003ch3\u003eWhat you are getting\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003ewhere our paths met — which is a nicer story than either version\u003c\/li\u003e\n\u003cli\u003ea heart shape that actually sits on a nightstand, not just a shelf\u003c\/li\u003e\n\u003cli\u003eback-lit, so the photo reads at 2am without a switch\u003c\/li\u003e\n\u003cli\u003ea wood base, because plastic cheapens everything\u003c\/li\u003e\n\u003cli\u003efully personalized — you preview the exact design before it ships\u003c\/li\u003e\n\u003cli\u003earrives gift-ready with optional keepsake box\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eHow to personalize it\u003c\/h3\u003e\n\u003cp\u003eUpload your photo, then check the wording. A square or close-cropped image works better than a wide shot — faces come out sharper that way. We send a preview before anything is made, and nothing goes into production until you approve it.\u003c\/p\u003e\n\u003ch3\u003eGood to know\u003c\/h3\u003e\n\u003cp\u003eMaterial: cast acrylic | Base: a wooden slot base | Power: USB corded | Packaging: gift box\u003c\/p\u003e\n\u003cp\u003eThe panel is printed and then back-lit tested, so the image reads evenly with the light on.\u003c\/p\u003e\n\u003cp\u003eLeave it on. Somebody will notice, and they'll be right.\u003c\/p\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\":\"https:\/\/schema.org\",\"@type\":\"Product\",\"name\":\"Personalized Heart Night Light for Couples — Where Our Paths Met\",\"description\":\"Personalized Heart Night Light for Couples in cast acrylic. Made to order from your photo — you approve a preview before we print. $27.95.\",\"sku\":\"CS-LGT-0004-PATHS\",\"brand\":{\"@type\":\"Brand\",\"name\":\"Custom Solo\"},\"category\":\"Heart Night Light for Couples\",\"image\":[\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/b1ff954a-b64f-44c5-a0af-adc770639916.png\"],\"offers\":{\"@type\":\"Offer\",\"url\":\"https:\/\/customsolo.com\/products\/personalized-heart-night-light-for-couples-where-our-paths-met\",\"priceCurrency\":\"USD\",\"price\":\"27.95\",\"availability\":\"https:\/\/schema.org\/InStock\"}}\u003c\/script\u003e\n","brand":"customsolo","offers":[{"title":"Default Title","offer_id":50332329148608,"sku":"CS-LGT-0004-PATHS","price":27.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/b1ff954a-b64f-44c5-a0af-adc770639916.png?v=1790169728"},{"product_id":"personalized-pet-adoption-acrylic-plaque-you-belong-with-us","title":"Personalized Pet Adoption Acrylic Plaque — You Belong With Us","description":"\u003ch2\u003ethey picked you. that was the whole interview\u003c\/h2\u003e\n\u003cp\u003eno resume, no references — just a dog who decided the couch was shared property. this one puts your photo beside the tag that finally has his name on it, with the year he came home set underneath. every piece is made to order: hand-finished in acrylic, set on a wooden slot base — built once, kept for years. preview your exact design before it ships, and make it yours.\u003c\/p\u003e\n\u003ch3\u003eWhat you are getting\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eyou belong with us. — the three words he never had to be told twice\u003c\/li\u003e\n\u003cli\u003ehis name on the gold tag, the way it should already be\u003c\/li\u003e\n\u003cli\u003ehome since 2026, because somebody had to write it down\u003c\/li\u003e\n\u003cli\u003ea wooden slot base so he stays on the shelf, not in a box\u003c\/li\u003e\n\u003cli\u003efully personalized — you preview the exact design before it ships\u003c\/li\u003e\n\u003cli\u003ehand-finished acrylic build, made to outlast the season\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eHow to personalize it\u003c\/h3\u003e\n\u003cp\u003eUpload your photo, then add his name and the year he joined the family. A square or close-cropped image works better than a wide shot — faces come out sharper that way. We send a preview before anything is made, and nothing goes into production until you approve it.\u003c\/p\u003e\n\u003ch3\u003eGood to know\u003c\/h3\u003e\n\u003cp\u003eMaterial: cast acrylic | Base: a wooden slot base | Packaging: gift box\u003c\/p\u003e\n\u003cp\u003ePrinted in high resolution behind the clear face, so the color stays sharp instead of washing out.\u003c\/p\u003e\n\u003cp\u003ePut it next to the leash hook. That's where he checks first.\u003c\/p\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\":\"https:\/\/schema.org\",\"@type\":\"Product\",\"name\":\"Personalized Pet Adoption Acrylic Plaque — You Belong With Us\",\"description\":\"Personalized Pet Adoption Acrylic Plaque in cast acrylic. Made to order from your photo — you approve a preview before we print. $27.95.\",\"sku\":\"CS-PLQ-0002-BELONG\",\"brand\":{\"@type\":\"Brand\",\"name\":\"Custom Solo\"},\"category\":\"Pet Adoption Acrylic Plaque\",\"image\":[\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/3fc0a452-935d-4ecc-89b1-254ec587f1f0.png\"],\"offers\":{\"@type\":\"Offer\",\"url\":\"https:\/\/customsolo.com\/products\/personalized-pet-adoption-acrylic-plaque-you-belong-with-us\",\"priceCurrency\":\"USD\",\"price\":\"27.95\",\"availability\":\"https:\/\/schema.org\/InStock\"}}\u003c\/script\u003e\n","brand":"customsolo","offers":[{"title":"Default Title","offer_id":50336385630400,"sku":"CS-PLQ-0002-BELONG","price":27.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/3fc0a452-935d-4ecc-89b1-254ec587f1f0.png?v=1790231118"},{"product_id":"personalized-fleece-blanket-for-grandma-the-stories-we-share","title":"Personalized Fleece Blanket for Grandma — The Stories We Share","description":"\u003ch2\u003eone more story. then one more. then one more again\u003c\/h2\u003e\n\u003cp\u003ethe book was the same every time and she never once sounded bored. this one wraps that in fleece — the three of them named on gold stars, the year set underneath, sized so it actually covers somebody. every piece is made to order: hand-finished in flannel fleece, sized 30 × 40 in — built once, kept for years. preview your exact design before it ships, and make it yours.\u003c\/p\u003e\n\u003ch3\u003eWhat you are getting\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003ewrapped in grandma's love — the line that was always true\u003c\/li\u003e\n\u003cli\u003etheir names on gold stars, one for each reader\u003c\/li\u003e\n\u003cli\u003eheavy enough to be fought over in about thirty years\u003c\/li\u003e\n\u003cli\u003eprinted into the fibres, so it stays soft and does not crack\u003c\/li\u003e\n\u003cli\u003efully personalized — you preview the exact design before it ships\u003c\/li\u003e\n\u003cli\u003ehand-finished flannel build, made to outlast the season\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eHow to personalize it\u003c\/h3\u003e\n\u003cp\u003eAdd the grandchildren's names and the year. Up to three names fit on the gold stars. We send a preview before anything is made, and nothing goes into production until you approve it.\u003c\/p\u003e\n\u003ch3\u003eGood to know\u003c\/h3\u003e\n\u003cp\u003eSize: 30 × 40 in (76.2 × 101.6 cm) | Material: flannel fleece | Fabric: 280 gsm | Packaging: gift-ready wrap\u003c\/p\u003e\n\u003cp\u003ePrinted into the fibres, not onto them, so it stays soft and does not crack when washed.\u003c\/p\u003e\n\u003cp\u003eMachine wash cold, tumble dry low. She will ignore this and it will still be fine.\u003c\/p\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\":\"https:\/\/schema.org\",\"@type\":\"Product\",\"name\":\"Personalized Fleece Blanket for Grandma — The Stories We Share\",\"description\":\"Personalized Fleece Blanket for Grandma in flannel fleece. Made to order from your photo — you approve a preview before we print. $39.95.\",\"sku\":\"CS-BLK-0001-GRANDMA\",\"brand\":{\"@type\":\"Brand\",\"name\":\"Custom Solo\"},\"category\":\"Fleece Blanket for Grandma\",\"image\":[\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/c08d0c5f-f6fc-4eae-8191-4c4bfcfcf2f5.png\"],\"offers\":{\"@type\":\"Offer\",\"url\":\"https:\/\/customsolo.com\/products\/personalized-fleece-blanket-for-grandma-the-stories-we-share\",\"priceCurrency\":\"USD\",\"price\":\"39.95\",\"availability\":\"https:\/\/schema.org\/InStock\"}}\u003c\/script\u003e\n","brand":"customsolo","offers":[{"title":"Default Title","offer_id":50336412074176,"sku":"CS-BLK-0001-GRANDMA","price":39.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/c08d0c5f-f6fc-4eae-8191-4c4bfcfcf2f5.png?v=1790231399"},{"product_id":"personalized-slate-photo-plaque-for-couples-our-first-home","title":"Personalized Slate Photo Plaque for Couples — Our First Home","description":"\u003cdiv class=\"cs-lb-root\"\u003e\n\u003cstyle\u003e\n.cs-lb-root,.cs-lb-root *{box-sizing:border-box}\n.cs-lb-root *{text-transform:none}\n.cs-lb-root{font-family:-apple-system, BlinkMacSystemFont, 'system-ui', 'SF Pro Text', 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif;color:#1d1d1f;font-size:16px;line-height:1.6;margin:0}\n\n\/* break out of the theme's 720px desc column; width = pdp-lookbook-v5 .wrap content box (1200-96=1104) *\/\n@media(min-width:1024px){\n.cs-lb-root{width:min(1104px,100vw - 96px);\nmargin-left:calc(50% - min(552px,50vw - 48px));margin-right:calc(50% - min(552px,50vw - 48px))}\n}\n\n.cs-lb-root .cs-lb-eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#707070;font-weight:500;margin:0}\n.cs-lb-root .cs-lb-display{font-size:52px;line-height:1.05;font-weight:700;letter-spacing:-.025em;margin:20px 0 18px;color:#1d1d1f}\n.cs-lb-root .cs-lb-display .cs-lb-line{display:block}\n.cs-lb-root .cs-lb-lede{font-size:17px;line-height:1.62;color:#707070;max-width:46ch;margin:0}\n\n\/* story lead: single column by default, two columns from 1024px *\/\n.cs-lb-root .cs-lb-lead{margin:0}\n.cs-lb-root .cs-lb-visual{margin:32px 0 0;border-radius:16px;overflow:hidden;background:#f5f5f7}\n.cs-lb-root .cs-lb-visual img{display:block;width:100%;height:auto;aspect-ratio:4\/5;object-fit:cover;border-radius:16px}\n@media(min-width:1024px){\n.cs-lb-root .cs-lb-lead{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:start}\n.cs-lb-root .cs-lb-visual{margin:0}\n}\n@media(min-width:1024px) and (max-width:1199px){\n.cs-lb-root .cs-lb-display{font-size:44px}\n}\n\n\/* icon row *\/\n.cs-lb-root .cs-lb-iconrow{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:44px}\n.cs-lb-root .cs-lb-ico{width:46px;height:46px;border-radius:50%;background:#f5f5f7;display:flex;align-items:center;justify-content:center}\n.cs-lb-root .cs-lb-iconrow h4{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;margin:16px 0 7px;color:#1d1d1f}\n.cs-lb-root .cs-lb-iconrow p{font-size:14px;line-height:1.5;color:#707070;margin:0}\n\n\/* your story card *\/\n.cs-lb-root .cs-lb-storycard{background:#f5f5f7;border-radius:16px;padding:18px;display:flex;gap:18px;align-items:center;margin-top:40px}\n.cs-lb-root .cs-lb-storycard img{width:76px;height:76px;border-radius:10px;object-fit:cover;flex:0 0 76px;display:block}\n.cs-lb-root .cs-lb-storycard .cs-lb-k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#707070;font-weight:500;margin:0}\n.cs-lb-root .cs-lb-storycard .cs-lb-v{font-size:20px;font-weight:600;margin:4px 0 0;color:#1d1d1f}\n.cs-lb-root .cs-lb-storycard .cs-lb-s{font-size:15px;color:#707070;margin:2px 0 0}\n\n\/* buy row (v5 .buyrow) *\/\n.cs-lb-root .cs-lb-buyrow{display:flex;align-items:center;gap:22px;margin-top:26px}\n.cs-lb-root .cs-lb-btn{height:48px;padding:0 28px;border-radius:999px;background:#1d1d1f;color:#fff;\n  font-size:15px;font-weight:500;letter-spacing:0;display:inline-flex;align-items:center;justify-content:center;gap:10px;\n  text-decoration:none;transition:opacity .2s}\n.cs-lb-root .cs-lb-btn:hover{opacity:.85;color:#fff}\n.cs-lb-root .cs-lb-btn svg{flex:0 0 16px}\n.cs-lb-root .cs-lb-from{font-size:18px;font-weight:600;color:#1d1d1f}\n\n\/* specs (v5: right after story lead) *\/\n.cs-lb-root .cs-lb-specs{display:grid;grid-template-columns:repeat(4,1fr);margin:88px 0 0;border-top:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-spec{padding:34px 30px 36px 0;border-right:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-spec:last-child{border-right:0;padding-right:0}\n.cs-lb-root .cs-lb-spec .cs-lb-k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#707070;font-weight:500;margin:0 0 12px;\n  display:flex;align-items:center;gap:8px}\n.cs-lb-root .cs-lb-spec .cs-lb-v{margin:12px 0 0;font-size:16px;line-height:1.5;color:#1d1d1f}\n\n\/* chapter head *\/\n.cs-lb-root .cs-lb-chaphead{margin-top:96px;margin-bottom:12px;max-width:720px}\n.cs-lb-root .cs-lb-chaphead .cs-lb-display{font-size:44px;margin:0}\n\n\/* chapters *\/\n\/* closing band (v5 .closing): mist CTA band at the very end of the description.\n   It is wider than the 1104px column (100vw-32 pulled back by half, padding re-centres copy).\n   The -32px \/ +16px offset is deliberate: even if a browser ignores `overflow-x:clip`\n   (pre-Safari-16), the band still stays inside clientWidth, so no horizontal scrollbar.\n   The theme's own full-bleed band is `.cs-pdp-desc.is-band{margin-inline:-120px}` inside\n   `.cs-main{max-width:1440px;padding:0 120px}` -\u003e it spans the whole .cs-main box (1440px).\n   We cannot add a class to that theme element, so we reproduce the same result from inside:\n   the band is 100vw-48px wide (measured: a bare 100vw gives scrollWidth 1433 \u003e clientWidth\n   1425, i.e. a horizontal scrollbar, so we keep 24px of headroom on each side).\n   Do NOT clamp this with `overflow-x:clip` on `.cs-pdp-desc` - that element is only the\n   1200px grid column, so clipping would shrink the band to the column (120px gutters). *\/\n.cs-lb-root .cs-lb-closing{background:#f5f5f7;margin:0;padding:88px 0;text-align:left;\n  width:calc(100vw - 48px);margin-left:calc(50% - 50vw + 24px);margin-right:calc(50% - 50vw + 24px);\n  padding-left:calc(50vw - 50% - 24px);padding-right:calc(50vw - 50% - 24px)}\n.cs-lb-root .cs-lb-closing h2{font-size:40px;line-height:1.1;font-weight:700;letter-spacing:-.02em;\n  color:#1d1d1f;margin:0}\n.cs-lb-root .cs-lb-closing p{font-size:17px;line-height:1.5;color:#707070;margin:14px 0 0}\n.cs-lb-root .cs-lb-closing .cs-lb-btn{margin:28px 0 0;padding:0 30px}\n\n.cs-lb-root .cs-lb-rows{margin:40px 0 0;border-top:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-row{display:grid;grid-template-columns:1.24fr .86fr;gap:72px;align-items:center;\n  padding:60px 0;border-bottom:1px solid #e5e5e5}\n.cs-lb-root .cs-lb-row:last-child{border-bottom:0}\n.cs-lb-root .cs-lb-media{margin:0;border-radius:16px;overflow:hidden;background:#f5f5f7}\n.cs-lb-root .cs-lb-media img{display:block;width:100%;height:auto;aspect-ratio:1536\/938;object-fit:cover;border-radius:16px}\n.cs-lb-root .cs-lb-copy{max-width:42ch}\n.cs-lb-root .cs-lb-idx{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#707070;font-weight:500;margin:0 0 16px}\n.cs-lb-root .cs-lb-copy h3{font-size:34px;line-height:1.15;font-weight:600;letter-spacing:-.022em;margin:0 0 14px;color:#1d1d1f;text-transform:none}\n.cs-lb-root .cs-lb-copy p{margin:0;font-size:16px;line-height:1.66;color:#707070}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-media{order:2}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-copy{order:1}\n\n\/* hide the theme's own \"The details\" eyebrow (user approved 2026-09-28:\n   both `THE DETAILS` and `The details` are removed, so the two are not duplicated).\n   Scoped to the direct child span of the desc inner -\u003e only this product page is\n   affected, because this \u003cstyle\u003e ships inside this product's body_html. *\/\n.cs-pdp-desc__inner \u003e .cs-pdp-desc__eyebrow{display:none}\n\n\/* trust row (v5 .trust, right after the chapters; the 72px gap below the last\n   chapter comes from v5 `.chapters{padding:96px 0 72px}` and is carried by margin-top here) *\/\n.cs-lb-root .cs-lb-trust{border-top:1px solid #e5e5e5;padding:64px 0;\n  display:grid;grid-template-columns:repeat(4,1fr);gap:36px;margin:72px 0 0}\n.cs-lb-root .cs-lb-trust svg{display:block;color:#1d1d1f}\n.cs-lb-root .cs-lb-trust h4{font-size:14px;line-height:1.4;font-weight:500;letter-spacing:0;\n  margin:16px 0 7px;color:#1d1d1f}\n.cs-lb-root .cs-lb-trust p{font-size:13px;line-height:1.55;color:#707070;margin:0}\n\n@media(max-width:960px){\n.cs-lb-root .cs-lb-display{font-size:34px}\n.cs-lb-root .cs-lb-chaphead{margin-top:56px;margin-bottom:0}\n.cs-lb-root .cs-lb-chaphead .cs-lb-display{font-size:30px}\n.cs-lb-root .cs-lb-rows .cs-lb-row{grid-template-columns:1fr;gap:22px;padding:36px 0}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-media{order:0}\n.cs-lb-root .cs-lb-row.cs-lb-flip .cs-lb-copy{order:1}\n.cs-lb-root .cs-lb-copy{max-width:none}\n.cs-lb-root .cs-lb-copy h3{font-size:24px;margin:0 0 10px}\n.cs-lb-root .cs-lb-copy p{font-size:15px}\n.cs-lb-root .cs-lb-specs{grid-template-columns:repeat(2,1fr);column-gap:22px;margin-top:56px}\n.cs-lb-root .cs-lb-spec{border-right:0;border-bottom:1px solid #e5e5e5;padding:24px 0}\n.cs-lb-root .cs-lb-trust{grid-template-columns:repeat(2,1fr);gap:28px;margin-top:56px;padding:48px 0}\n.cs-lb-root .cs-lb-closing{margin-top:0;padding:64px 0}\n.cs-lb-root .cs-lb-closing h2{font-size:30px}\n.cs-lb-root .cs-lb-closing p{font-size:16px}\n}\n@media(max-width:520px){\n.cs-lb-root .cs-lb-display{font-size:28px}\n.cs-lb-root .cs-lb-lede{font-size:16px}\n.cs-lb-root .cs-lb-iconrow{gap:14px}\n.cs-lb-root .cs-lb-iconrow h4{font-size:11px;letter-spacing:.1em}\n.cs-lb-root .cs-lb-iconrow p{font-size:12px;line-height:1.4}\n.cs-lb-root .cs-lb-copy h3{font-size:21px}\n.cs-lb-root .cs-lb-specs{grid-template-columns:1fr}\n.cs-lb-root .cs-lb-buyrow{flex-wrap:wrap;gap:14px}\n.cs-lb-root .cs-lb-trust{grid-template-columns:1fr;gap:24px}\n}\n\u003c\/style\u003e\n\u003cdiv class=\"cs-lb-lead\"\u003e\n\u003cdiv class=\"cs-lb-leadcopy\"\u003e\n\u003cp class=\"cs-lb-eyebrow\"\u003eMade from your story\u003c\/p\u003e\n\u003cp class=\"cs-lb-display\"\u003e\u003cspan class=\"cs-lb-line\"\u003eour first home,\u003c\/span\u003e\u003cspan class=\"cs-lb-line\"\u003esaid in four words.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"cs-lb-lede\"\u003eReal slate, cut so that no two edges match. Your photo of the house, the date you got the keys, and your own words underneath — standing on the wood stand that comes with it.\u003c\/p\u003e\n\u003cdiv class=\"cs-lb-iconrow\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\"\u003e\u003c\/rect\u003e\u003ccircle cx=\"8.5\" cy=\"10\" r=\"1.6\"\u003e\u003c\/circle\u003e\u003cpath d=\"M4 17l4.5-4.5 3.5 3.5 3-3L20 17\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003ePhoto\u003c\/h4\u003e\n\u003cp\u003eYour photo of the house\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"5\" width=\"16\" height=\"15\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M4 10h16M9 3v4M15 3v4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eDate\u003c\/h4\u003e\n\u003cp\u003eThe day you got the keys\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"cs-lb-ico\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"21\" height=\"21\" fill=\"none\" stroke=\"#1d1d1f\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M6 5h12M12 5v14M9 19h6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003ch4\u003eYour words\u003c\/h4\u003e\n\u003cp\u003eOne line, set underneath\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-storycard\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/03_d8293123-94cc-47b1-ba10-10cdc954a19e.jpg?v=1790590490\" alt=\"Close-up of the slate plaque standing on its wood stand\" loading=\"lazy\"\u003e\u003cdiv\u003e\n\u003cp class=\"cs-lb-k\"\u003eYour story\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eOur first home\u003c\/p\u003e\n\u003cp class=\"cs-lb-s\"\u003eJune 18, 2021\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-buyrow\"\u003e\n\u003ca class=\"cs-lb-btn\" href=\"#customizer\"\u003ePersonalize Yours\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M5 12h13M13 6l6 6-6 6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/a\u003e\u003cspan class=\"cs-lb-from\"\u003eFrom $33.95\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-visual\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/04_b319ad67-1fb7-4b44-b330-f81448426818.jpg?v=1790590500\" alt=\"Couple holding the personalized slate plaque in their first home\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-specs\"\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M9 4v16\"\u003e\u003c\/path\u003e\u003c\/svg\u003eMaterial\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eNatural slate, 19 × 29 cm (7.5 × 11.4 in) — cut, so no two edges are the same\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M3 17h18M7 17V8h10v9\"\u003e\u003c\/path\u003e\u003c\/svg\u003eStand\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eWood stand included, sturdy enough to stay put\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 9l8-4 8 4v9l-8 4-8-4V9z\"\u003e\u003c\/path\u003e\u003cpath d=\"M4 9l8 4 8-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003ePackaging\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eBoxed, with the stand in the box\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-spec\"\u003e\n\u003cp class=\"cs-lb-k\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"#707070\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 16V5M8 9l4-4 4 4\"\u003e\u003c\/path\u003e\u003cpath d=\"M5 16v2.5A1.5 1.5 0 006.5 20h11a1.5 1.5 0 001.5-1.5V16\"\u003e\u003c\/path\u003e\u003c\/svg\u003eYour photo\u003c\/p\u003e\n\u003cp class=\"cs-lb-v\"\u003eJPG, PNG or WebP up to 10 MB\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-chaphead\"\u003e\u003cp class=\"cs-lb-display\"\u003eEverything about it, up close.\u003c\/p\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-rows\"\u003e\n\u003cdiv class=\"cs-lb-row\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/detail-01-the-door.jpg?v=1790590402\" alt=\"A first evening in an empty new home, one lamp on, takeout on the floor\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e01 — The door\u003c\/p\u003e\n\u003ch3\u003eThe keys felt too big for the lock.\u003c\/h3\u003e\n\u003cp\u003eThen the door opened, and it was one lamp, two plates and takeout on the floor, because nothing was unpacked yet. That first evening is the one worth printing.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row cs-lb-flip\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/detail-02-the-photo.jpg?v=1790590412\" alt=\"Close-up of the printed photograph on the slate surface\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e02 — The photo\u003c\/p\u003e\n\u003ch3\u003eYour photo of the house — not the listing photo.\u003c\/h3\u003e\n\u003cp\u003eThe front step, the door you actually use, the bad angle from the street. It is your house now, so it can look like it.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/detail-03-the-date.jpg?v=1790590428\" alt=\"The printed date on the slate, lit from the side\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e03 — The date\u003c\/p\u003e\n\u003ch3\u003eThe day it stopped being a house and became yours.\u003c\/h3\u003e\n\u003cp\u003eUnder the photo, set in plain letters. A date you will not have to look up again.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-row cs-lb-flip\"\u003e\n\u003cdiv class=\"cs-lb-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/detail-04-the-slate.jpg?v=1790590472\" alt=\"Macro detail of the natural chipped edge of the slate plaque\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-copy\"\u003e\n\u003cp class=\"cs-lb-idx\"\u003e04 — The slate\u003c\/p\u003e\n\u003ch3\u003eCut slate, so no two pieces have the same edge.\u003c\/h3\u003e\n\u003cp\u003eHeavy in the hand and matte under a lamp. Your piece will not match anyone else's, because the stone decides that part.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-trust\"\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 20s-7-4.3-7-9a4 4 0 017-2.6A4 4 0 0119 11c0 4.7-7 9-7 9z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eEmotion First\u003c\/h4\u003e\n\u003cp\u003eDesigned around a real memory, not a template.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 3l8 3v6c0 4.4-3.3 7.9-8 9-4.7-1.1-8-4.6-8-9V6l8-3z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 12l2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eLasting Quality\u003c\/h4\u003e\n\u003cp\u003eNatural slate, cut by hand, built to last.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003crect x=\"4\" y=\"10\" width=\"16\" height=\"10\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M8 10V7.5a4 4 0 018 0V10\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003ePrivacy Always\u003c\/h4\u003e\n\u003cp\u003eYour photos stay yours. Never shared or resold.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csvg viewbox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 21c5-2.5 8-6 8-11V5l-8-2-8 2v5c0 5 3 8.5 8 11z\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 8v6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003ch4\u003eThoughtful Impact\u003c\/h4\u003e\n\u003cp\u003eMade to order, so nothing is made to be wasted.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cs-lb-closing\"\u003e\n\u003ch2\u003eMade for the place you call home.\u003c\/h2\u003e\n\u003cp\u003eGifts that capture what matters most.\u003c\/p\u003e\n\u003ca class=\"cs-lb-btn\" href=\"\/collections\/all\"\u003eFind the perfect gift\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"customsolo","offers":[{"title":"Default Title","offer_id":50353188176064,"sku":"CS-SLT-0003-FIRSTHOME","price":33.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/files\/26c74805-9b88-4e98-8396-b6ee2d1a1f3d.png?v=1790583307"}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0573\/8286\/3040\/collections\/customsolo-cards-customer-favorites.webp?v=1790681684","url":"https:\/\/customsolo.com\/collections\/customer-favorites.oembed","provider":"customsolo","version":"1.0","type":"link"}