{"product_id":"0829-zxb1","title":"🍀🍀Hydrating Concealer Pen With Brightening \u0026 Flawless Coverage","description":"\u003cstyle\u003e\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Oswald:wght@500;600;700\u0026family=Inter:wght@400;500;600\u0026display=swap');\n\n.bwc-page{background:transparent;font-family:'Inter',Arial,Helvetica,sans-serif;color:#3a2a2c;padding:0;margin:0;-webkit-font-smoothing:antialiased}\n.bwc-page *{box-sizing:border-box}\n.bwc-page .bwc-container{max-width:100%;width:100%;margin:0;padding:0}\n.bwc-page .bwc-card{background:transparent;border:none;padding:0;overflow:hidden}\n\n.bwc-page .bwc-teeth{display:block!important;height:16px!important;width:100%!important;background:\n  linear-gradient(135deg,#c97b93 25%,transparent 25%) 0 0\/16px 16px,\n  linear-gradient(225deg,#c97b93 25%,transparent 25%) 0 0\/16px 16px,\n  transparent!important;}\n.bwc-page .bwc-teeth.inv{background:\n  linear-gradient(135deg,#fff 25%,transparent 25%) 0 0\/16px 16px,\n  linear-gradient(225deg,#fff 25%,transparent 25%) 0 0\/16px 16px,\n  #c97b93!important;}\n\n.bwc-page .bwc-top{padding:26px 26px 0}\n.bwc-page .bwc-eyebrow{font-family:'Oswald',sans-serif;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:#a97286;text-align:center;margin:0 0 8px}\n.bwc-page .bwc-h1{font-family:'Oswald',sans-serif;font-weight:700;font-size:32px;text-align:center;color:#3a2a2c;margin:0 0 18px;line-height:1.14;letter-spacing:-.2px;text-transform:uppercase}\n\n.bwc-page .bwc-hero{background:#c97b93;color:#fff;padding:28px 24px;margin:0;position:relative}\n.bwc-page .bwc-hero p{margin:0;opacity:.92;line-height:1.7;font-size:15px;color:#fff!important}\n\n.bwc-page .bwc-img-wrap{width:100%;margin:0;overflow:hidden;background:transparent}\n.bwc-page .bwc-img-wrap img{width:100%;height:auto;display:block;margin:0}\n\n.bwc-page .bwc-body{padding:0 26px}\n\n.bwc-page .bwc-section-title{font-family:'Oswald',sans-serif;font-weight:700;font-size:22px;text-transform:uppercase;letter-spacing:.02em;color:#3a2a2c;margin:38px 0 6px;padding-bottom:12px;border-bottom:3px solid #c97b93;line-height:1.2}\n.bwc-page .bwc-lead{font-size:15px;line-height:1.75;color:#5a4448;margin:0 0 18px}\n\n.bwc-page .bwc-carousel{position:relative;margin:22px 0 30px}\n.bwc-page .bwc-carousel-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:4px 4px 14px;scrollbar-width:none;-ms-overflow-style:none}\n.bwc-page .bwc-carousel-track::-webkit-scrollbar{display:none}\n.bwc-page .bwc-carousel-slide{flex:0 0 100%;max-width:100%;scroll-snap-align:start;background:transparent;display:flex;flex-direction:column}\n.bwc-page .bwc-carousel-imgs{display:flex}\n.bwc-page .bwc-carousel-imgs img{flex:1 1 0;width:100%;height:auto;display:block;aspect-ratio:1\/1;object-fit:cover;min-width:0}\n.bwc-page .bwc-carousel-text{padding:18px;flex:1;background:transparent}\n.bwc-page .bwc-carousel-num{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;background:#c97b93;color:#fff;font-family:'Oswald',sans-serif;font-size:12px;font-weight:600;margin-bottom:10px}\n.bwc-page .bwc-carousel-text h3{margin:0 0 6px;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.01em;font-size:15px;color:#3a2a2c;font-weight:600;line-height:1.3}\n.bwc-page .bwc-carousel-text p{margin:0;color:#5a4448;font-size:13px;line-height:1.6}\n.bwc-page .bwc-carousel-nav{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:12px}\n.bwc-page .bwc-carousel-arrow{width:36px;height:36px;border:2px solid #c97b93;background:transparent;color:#c97b93;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:17px;flex-shrink:0;padding:0;line-height:1}\n.bwc-page .bwc-carousel-arrow:hover{background:#c97b93;color:#fff}\n.bwc-page .bwc-carousel-dots{display:flex;gap:8px}\n.bwc-page .bwc-carousel-dot{width:8px;height:8px;border-radius:50%;background:#f0d6de;cursor:pointer;transition:background .2s;padding:0;border:0}\n.bwc-page .bwc-carousel-dot.active{background:#c97b93}\n\n.bwc-page .bwc-review-title{font-family:'Oswald',sans-serif;font-size:14.5px;font-weight:600;text-transform:uppercase;letter-spacing:.01em;color:#3a2a2c;margin:0 0 6px}\n.bwc-page .bwc-review-quote{font-size:13px;line-height:1.6;color:#5a4448;margin:0 0 8px;font-style:italic}\n.bwc-page .bwc-review-name{font-family:'Oswald',sans-serif;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#3a2a2c;font-weight:600}\n\n.bwc-page .bwc-review-carousel-slide{flex:0 0 100%;max-width:100%;scroll-snap-align:start}\n.bwc-page .bwc-review-mini{padding:12px 14px;background:transparent}\n.bwc-page .bwc-review-mini .bwc-review-title{font-size:13px;margin-bottom:6px}\n.bwc-page .bwc-review-mini .bwc-review-quote{font-size:13px;line-height:1.6;margin-bottom:0}\n\n.bwc-page .bwc-media-block{margin:22px 0 6px;overflow:hidden;background:transparent}\n.bwc-page .bwc-media-block img,.bwc-page .bwc-media-block video{width:100%;height:auto;display:block}\n\n\/* How To Use 步骤：整齐排列 *\/\n.bwc-page .bwc-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:20px 0 8px}\n.bwc-page .bwc-step{background:#fef6f7;border-radius:10px;padding:18px 16px;text-align:left}\n.bwc-page .bwc-step .num{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:#c97b93;color:#fff;font-family:'Oswald',sans-serif;font-size:12px;font-weight:700;margin-bottom:10px}\n.bwc-page .bwc-step p{margin:0;font-size:13.5px;line-height:1.55;color:#5a4448}\n\n.bwc-page .bwc-spec{margin-top:36px;background:#c97b93;padding:0}\n.bwc-page .bwc-spec h2{color:#fff;margin:0;padding:20px 24px;font-size:19px;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid #d894a8}\n.bwc-page .bwc-table{width:100%;border-collapse:collapse;background:transparent}\n.bwc-page .bwc-table tr:nth-child(odd) td{background:#fef6f7}\n.bwc-page .bwc-table tr:nth-child(even) td{background:#fefdfa}\n.bwc-page .bwc-table td{padding:14px 20px;border-bottom:1px solid #f3e2e6;vertical-align:top;line-height:1.5;font-size:14.5px;color:#3a2a2c}\n.bwc-page .bwc-table tr:last-child td{border-bottom:0}\n.bwc-page .bwc-table td:first-child{font-family:'Oswald',sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:#a97286;width:34%;font-size:12.5px}\n\n.bwc-page .bwc-faq{margin-top:36px}\n.bwc-page .bwc-faq-item{border-bottom:1px solid #f3e2e6;padding:16px 2px}\n.bwc-page .bwc-faq-item:first-child{padding-top:0}\n.bwc-page .bwc-faq-q{font-family:'Oswald',sans-serif;font-size:14.5px;text-transform:uppercase;letter-spacing:.01em;color:#3a2a2c;font-weight:600;margin:0;display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;padding:0;cursor:pointer;text-align:left}\n.bwc-page .bwc-faq-q .qmark{flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:#c97b93;color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center;font-family:'Oswald',sans-serif}\n.bwc-page .bwc-faq-q .qtext{flex:1}\n.bwc-page .bwc-faq-q .bwc-faq-toggle{flex:0 0 auto;width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;color:#c97b93;transition:transform .2s}\n.bwc-page .bwc-faq-item.open .bwc-faq-q .bwc-faq-toggle{transform:rotate(45deg)}\n.bwc-page .bwc-faq-a{font-size:14px;line-height:1.65;color:#5a4448;margin:8px 0 0;padding-left:32px;display:none}\n.bwc-page .bwc-faq-item.open .bwc-faq-a{display:block}\n\n.bwc-page .bwc-cta{margin-top:36px;background:#c97b93;color:#fff;padding:40px 24px;text-align:center}\n.bwc-page .bwc-cta h2{margin:0 0 12px;font-size:24px;line-height:1.25;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.02em;font-weight:700;color:#fff!important}\n.bwc-page .bwc-cta p{margin:0 auto 22px;line-height:1.65;max-width:560px;opacity:.92;font-size:14.5px;color:#fff!important}\n.bwc-page .bwc-btn{display:inline-block;background:#fff;color:#c97b93!important;padding:15px 40px;font-family:'Oswald',sans-serif;font-size:15px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;border:2px solid #fff;cursor:pointer}\n.bwc-page .bwc-cta-form{margin:0;display:inline-block}\n\n.bwc-page .bwc-bottom-pad{height:26px}\n\n@media(max-width:768px){\n.bwc-page .bwc-container{padding:0}\n.bwc-page .bwc-top{padding:20px 16px 0}\n.bwc-page .bwc-body{padding:0 16px}\n.bwc-page .bwc-h1{font-size:24px}\n.bwc-page .bwc-hero{padding:20px 16px}\n.bwc-page .bwc-section-title{font-size:19px;margin-top:30px}\n.bwc-page .bwc-steps{grid-template-columns:1fr}\n.bwc-page .bwc-carousel-slide{flex:0 0 100%;max-width:100%}\n.bwc-page .bwc-carousel-track{gap:0}\n.bwc-page .bwc-table td{display:block;width:100%;padding:10px 16px}\n.bwc-page .bwc-table td:first-child{width:100%;border-bottom:0;padding-bottom:2px}\n.bwc-page .bwc-faq-a{padding-left:0;margin-top:6px}\n.bwc-page .bwc-btn{display:block;width:100%;text-align:center}\n}\n\u003c\/style\u003e\n\u003cdiv class=\"bwc-page\"\u003e\n\u003cdiv class=\"bwc-container\"\u003e\n\u003cdiv class=\"bwc-card\"\u003e\n\u003c!-- ① 标题区 --\u003e\n\u003cdiv class=\"bwc-body\"\u003e\n\u003cdiv class=\"bwc-faq\"\u003e\n\u003cdiv class=\"bwc-faq-item\"\u003e\n\u003cdiv class=\"bwc-top\"\u003e\n\u003ch2\u003eMature‑Skin Hydrating Concealer Pen | Targeted Coverage for Age Spots \u0026amp; Facial Shadows\u003c\/h2\u003e\n\u003cp\u003eMeet the Hydrating Mature‑Skin Concealer Pen With Powerful Targeted Coverage — an easy‑to‑use concealer made for aging complexions. It dramatically softens and blurs the appearance of stubborn under‑eye darkness, age spots, discoloration, forehead crease shadows and deep nasolabial fold shadows, reviving a more rested, lifted‑looking complexion without the thick, mask‑like weight of traditional concealers.\u003c\/p\u003e\n\u003cp\u003e                                \u003cspan\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1019\/0523\/6355\/files\/2.gif?v=1787839384\" alt=\"\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003ch2 class=\"bwc-section-title\"\u003e\u003cbr\u003e\u003c\/h2\u003e\n\u003ch2 class=\"bwc-section-title\"\u003e Customer Reviews\u003c\/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e⭐⭐⭐⭐⭐ Brenda,58 “I’ve tried so many concealers, all get stuck in my forehead lines. This one looks natural, covers my age spots under eyes, no heavy mask look. Exactly what I was looking for.”\u003c\/p\u003e\n\u003c\/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e⭐⭐⭐⭐⭐ Maria,62 “Super easy, no brush needed. Great for my nasolabial folds shadow. Does not dry my skin. I carry it in my handbag.”\u003c\/p\u003e\n\u003c\/blockquote\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003cspan style=\"color: rgb(152, 103, 109);\"\u003e\u003cstrong\u003eTired of makeup that works for young skin but fails you?\u003c\/strong\u003e\u003c\/span\u003e\u003c\/h2\u003e\n\u003c\/blockquote\u003e\n\u003cul\u003e\n\u003cli\u003eDark under‑eye shadows \u0026amp; puffy‑eye look make you look worn‑out\u003c\/li\u003e\n\u003cli\u003eAge spots and uneven pigment show through ordinary foundation\u003c\/li\u003e\n\u003cli\u003eDeep nasolabial folds, forehead lines get worse with heavy concealer\u003c\/li\u003e\n\u003cli\u003eCommon concealer cakes, creases, sits inside wrinkles, looks unnatural\u003c\/li\u003e\n\u003cli\u003eYou want soft, natural coverage, not thick mask‑like make\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1019\/0523\/6355\/files\/1_beeebd4d-700f-4daa-8f8a-5591a46f9f47.png?v=1788007959\" alt=\"\"\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1019\/0523\/6355\/files\/7_8ce631c8-9514-4817-bfb9-dbcd5a629d74.png?v=1788007061\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp class=\"p\"\u003e\u003cb\u003e\u003cspan class=\"15\"\u003e\u003cspan style=\"font-family: 微软雅黑;\"\u003e✨\u003c\/span\u003e\u003c\/span\u003e\u003c\/b\u003e\u003cb\u003e\u003cspan class=\"15\"\u003e｜Anti‑Crease No‑Set‑In Formula\u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003cp class=\"p\"\u003eMost concealer sinks and piles inside wrinkles.\u003cbr\u003eOur formula stays on skin surface instead of settling into creases.\u003cbr\u003eYour lines stay soft, your makeup stays natural all‑day.\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1019\/0523\/6355\/files\/3.png?v=1787902112\" alt=\"\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- ② Hero 横幅 --\u003e\u003c!-- ③ 主图：请替换为你自己的产品图 --\u003e\u003c!-- ⑤ 功能特性：轮播（3 个核心卖点，自动播放 2 秒） --\u003e\n\u003ch2\u003e\u003cspan\u003eCoverage Should Look Like Skin — Not Makeup\u003c\/span\u003e\u003c\/h2\u003e\n\u003cp\u003eUnder‑eye darkness, age spots, uneven tone, forehead‑line shadows and nasolabial fold shadows keep skin looking tired, even with foundation.\u003c\/p\u003e\n\u003cp\u003eOrdinary concealers sink into wrinkles, cake on dry mature skin and draw more attention to aging marks.\u003c\/p\u003e\n\u003cp\u003eOur concealer pen targets these visible concerns. Its rich creamy texture dramatically blurs the look of under‑eye shadow, age spots, forehead creases and nasolabial folds for refreshed, natural‑looking skin, without heavy makeup buildup.\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1019\/0523\/6355\/files\/7_9a536e5f-ed63-4067-b271-2c71588169ef.png?v=1788007890\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1019\/0523\/6355\/files\/3_47259d90-cd58-498d-a46d-59abd027d846.png?v=1787997754\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cdiv class=\"bwc-carousel\"\u003e\n\u003cdiv class=\"bwc-carousel-track\"\u003e\n\u003cdiv class=\"bwc-carousel-slide\"\u003e\n\u003cdiv class=\"bwc-carousel-imgs\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-body\"\u003e\n\u003c!-- How To Use：3 步骤，下面加了配图区域 --\u003e\n\u003ch2 class=\"bwc-section-title\"\u003eOne Pen. Multiple Beauty Fixes.\u003c\/h2\u003e\n\u003c!-- Perfect For --\u003e\n\u003cdiv class=\"bwc-img-wrap\"\u003e\n\u003ch2\u003e\u003cspan\u003eHow To Use\u003c\/span\u003e\u003c\/h2\u003e\n\u003ch4\u003e1.Twist up a small amount of concealer stick\u003c\/h4\u003e\n\u003ch4\u003e2.Gently dab on under‑eye, spots, forehead lines or nasolabial area\u003c\/h4\u003e\n\u003ch4\u003e3.Tap and blend with fingertips (finger works best for mature skin)\u003c\/h4\u003e\n\u003ch4\u003e4.Can layer for more coverage, follow with light powder if you want\u003c\/h4\u003e\n\u003ch2\u003eThe differences between us and traditional concealer creams\u003c\/h2\u003e\n\u003cp class=\"p\"\u003e\u003cspan\u003e\u003cspan style=\"font-family: 微软雅黑;\"\u003eTraditional concealers require brushes or fingers for application. Product output is hard to control, often causing waste and mess. Bulky packaging also makes them inconvenient for on-the-go touch-ups.\u003c\/span\u003e\u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"p\"\u003e\u003cspan\u003e\u003cspan style=\"font-family: 微软雅黑;\"\u003eOur twist-up concealer pen comes with a built-in sponge tip. Dispense just the right amount of product directly onto skin. No extra tools, no messy hands. Compact pocket-size design fits easily inside your purse for quick touch-ups anywhere.\u003c\/span\u003e\u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1019\/0523\/6355\/files\/4.png?v=1787902112\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan style=\"background-color: transparent; font-size: 0.875rem;\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003ch2\u003e\u003cspan\u003eBuild The Coverage You Want\u003c\/span\u003e\u003c\/h2\u003e\n\u003ch3\u003e\u003cspan\u003eFrom Everyday Touch-Ups To More Targeted Coverage\u003c\/span\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cspan\u003eSome areas only need a small amount of product, while others may benefit from an additional layer.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1019\/0523\/6355\/files\/3.gif?v=1787839385\" alt=\"\"\u003e\u003cbr\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1019\/0523\/6355\/files\/6_b58ff102-7da0-40a7-80fc-4d7d1d9b3d90.png?v=1787999695\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cdiv class=\"bwc-media-block\"\u003e\n\u003ch1\u003e\u003cspan style=\"color: rgb(64, 64, 64);\"\u003e\u003cstrong\u003e\u003cspan style=\"color: rgb(120, 48, 48);\"\u003ecolor classification\u003c\/span\u003e\u003cbr\u003e\u003c\/strong\u003e\u003c\/span\u003e\u003c\/h1\u003e\n\u003ch3\u003e\n\u003cstrong\u003e01# Milk White \u003c\/strong\u003eis ideal for brightening the center of the face, including the forehead, nose bridge, chin, and other areas that need a fresher, more lifted-looking finish.\u003c\/h3\u003e\n\u003ch3\u003e\n\u003cstrong\u003e\u003cspan\u003e02# Sakura Pink \u003c\/span\u003e\u003c\/strong\u003e\u003cspan\u003eadds a soft rosy brightness, making it especially suitable for fair skin and dull-looking areas around the mouth, smile lines, and under-eyes.\u003c\/span\u003e\n\u003c\/h3\u003e\n\u003ch3\u003e\u003cspan\u003e03# Natural Nude blends naturally with a wide range of skin tones and is perfect for everyday concealing of dark circles, blemish marks, redness, and uneven-looking areas.\u003c\/span\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cspan\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1019\/0523\/6355\/files\/2_0b254f29-b1fe-47e4-a01c-9cf20bbf519e.png?v=1787997500\" alt=\"\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan\u003eStill have questions before placing your order?\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"p\"\u003e\u003cspan\u003eHere we answer most-asked questions about coverage, wear performance, skin compatibility, usage and purchase policy to help you shop with confidence.\u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"p\"\u003e\u003cspan\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1019\/0523\/6355\/files\/6.png?v=1787902446\" alt=\"\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003ch3\u003eUse one shade alone or combine multiple shades to brighten, conceal, and softly sculpt your complexion for a smooth, natural-looking result.\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- 规格参数表 --\u003e\n\u003cdiv class=\"bwc-spec\"\u003e\n\u003ch2\u003eProduct Specifications\u003c\/h2\u003e\n\u003ctable class=\"bwc-table\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003e\u003c\/th\u003e\n\u003cth\u003e\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eProduct Type\u003c\/td\u003e\n\u003ctd\u003eMature‑Skin Hydrating Concealer Pen\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eFinish\u003c\/td\u003e\n\u003ctd\u003eNatural Soft‑Focus Skin‑Like Finish\n\u003cdiv\u003e\u003cbr\u003e\u003c\/div\u003e\n(Softens the visual look of facial shadows)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eTexture\u003c\/td\u003e\n\u003ctd\u003eNourishing Buildable Cream Texture (Formulated for dry aging skin)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eApplicator\u003c\/td\u003e\n\u003ctd\u003eBuilt‑In Precision Sponge Tip for targeted spot coverage\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSuitable Skin Types\u003c\/td\u003e\n\u003ctd\u003eMature \u0026amp; Aging Skin, all complexions\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eKey Benefits\u003c\/td\u003e\n\u003ctd\u003eDramatically blurs appearance of age spots, under‑eye darkness, forehead‑line shadows and nasolabial fold shadows; hydrates dry mature skin; natural skin‑like coverage; avoids caking inside wrinkles\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eRecommended Application Areas\u003c\/td\u003e\n\u003ctd\u003eUnder‑eye dark shadow areas, age‑spot regions, forehead crease zones, nasolabial fold shadow areas, uneven discoloration spots\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eUsage Scenarios\u003c\/td\u003e\n\u003ctd\u003eDaily makeup, quick touch‑ups for age‑related visible complexion concerns\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eStorage Instruction\u003c\/td\u003e\n\u003ctd\u003eStore in a cool, dry place, keep away from direct sunlight and high‑temperature environment\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c!-- Customer Reviews：一页展示一条评论，不带图片，手动切换 --\u003e\n\u003ch2 class=\"bwc-section-title\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1019\/0523\/6355\/files\/1688_image_share_4ee498e7b180db72470f96f97b274c4a.jpg_2K_202608261736.jpg?v=1787737024\" alt=\"\"\u003e\u003c\/h2\u003e\n\u003c!-- FAQ：点击问题展开\/收起答案 --\u003e\n\u003cdiv class=\"bwc-faq\"\u003e\n\u003cdiv class=\"bwc-faq-item\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbr\u003e\u003cbutton type=\"button\" class=\"bwc-faq-q\"\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eAbsolutely. Its compact twist-pen design makes it easy to carry for quick touch-ups whenever needed.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ⑩ CTA --\u003e\u003cscript\u003e\n(function(){\n  \/\/ Initialize every carousel on the page independently (feature carousel + reviews carousel)\n  var carousels = document.querySelectorAll('[data-carousel]');\n  carousels.forEach(function(carousel){\n    var track = carousel.querySelector('[data-track]');\n    var slides = track.querySelectorAll('.bwc-carousel-slide');\n    var dotsWrap = carousel.querySelector('[data-dots]');\n    var prevBtn = carousel.querySelector('[data-prev]');\n    var nextBtn = carousel.querySelector('[data-next]');\n    var activeIndex = 0;\n    var AUTOPLAY_DELAY = parseInt(carousel.getAttribute('data-autoplay'), 10) || 0;\n    var autoplayEnabled = AUTOPLAY_DELAY \u003e 0; \/\/ data-autoplay=\"0\" (or omitted) means manual-only, no autoplay\n    var autoplayTimer = null;\n    var carouselInView = false; \/\/ becomes true only once the carousel scrolls into view\n\n    slides.forEach(function(slide, i){\n      var dot = document.createElement('button');\n      dot.type = 'button';\n      dot.className = 'bwc-carousel-dot' + (i === 0 ? ' active' : '');\n      dot.setAttribute('aria-label', 'Go to slide ' + (i + 1));\n      dot.addEventListener('click', function(){\n        goToSlide(i);\n        restartAutoplay();\n      });\n      dotsWrap.appendChild(dot);\n    });\n    var dots = dotsWrap.querySelectorAll('.bwc-carousel-dot');\n\n    \/\/ Scroll the track itself (horizontal only). Never use scrollIntoView here —\n    \/\/ it can also scroll the whole page vertically to \"reveal\" the slide, which\n    \/\/ yanks the page back up to this section if the user has scrolled past it.\n    function goToSlide(i){\n      var slide = slides[i];\n      track.scrollTo({ left: slide.offsetLeft, behavior: 'smooth' });\n    }\n\n    function updateActive(){\n      var trackRect = track.getBoundingClientRect();\n      var closest = 0, closestDist = Infinity;\n      slides.forEach(function(slide, i){\n        var dist = Math.abs(slide.getBoundingClientRect().left - trackRect.left);\n        if (dist \u003c closestDist) { closestDist = dist; closest = i; }\n      });\n      activeIndex = closest;\n      dots.forEach(function(d, i){ d.classList.toggle('active', i === closest); });\n    }\n\n    var scrollTimer;\n    track.addEventListener('scroll', function(){\n      clearTimeout(scrollTimer);\n      scrollTimer = setTimeout(updateActive, 80);\n    });\n\n    function stepWidth(){\n      if (slides.length \u003e 1) {\n        return slides[1].offsetLeft - slides[0].offsetLeft;\n      }\n      return slides[0].getBoundingClientRect().width;\n    }\n\n    prevBtn.addEventListener('click', function(){\n      track.scrollBy({left: -stepWidth(), behavior:'smooth'});\n      restartAutoplay();\n    });\n    nextBtn.addEventListener('click', function(){\n      track.scrollBy({left: stepWidth(), behavior:'smooth'});\n      restartAutoplay();\n    });\n\n    function nextSlide(){\n      var next = (activeIndex + 1) % slides.length;\n      goToSlide(next);\n    }\n\n    function startAutoplay(){\n      stopAutoplay();\n      \/\/ This carousel is manual-only (data-autoplay=\"0\") — never auto-advance.\n      if (!autoplayEnabled) return;\n      \/\/ Don't run autoplay (and thus don't touch scroll position at all)\n      \/\/ while the carousel isn't visible on screen.\n      if (!carouselInView) return;\n      autoplayTimer = setInterval(nextSlide, AUTOPLAY_DELAY);\n    }\n    function stopAutoplay(){\n      if (autoplayTimer) { clearInterval(autoplayTimer); autoplayTimer = null; }\n    }\n    function restartAutoplay(){\n      stopAutoplay();\n      startAutoplay();\n    }\n\n    \/\/ pause while the user is actively swiping\/dragging\/hovering, resume after\n    track.addEventListener('pointerdown', stopAutoplay);\n    track.addEventListener('touchstart', stopAutoplay, {passive:true});\n    track.addEventListener('pointerup', restartAutoplay);\n    track.addEventListener('touchend', restartAutoplay, {passive:true});\n    carousel.addEventListener('mouseenter', stopAutoplay);\n    carousel.addEventListener('mouseleave', restartAutoplay);\n\n    \/\/ Only autoplay while the carousel is actually on screen (and only if\n    \/\/ autoplay is enabled for this carousel) — the countdown only starts\n    \/\/ once the user has scrolled to this section, not on page load.\n    if (autoplayEnabled \u0026\u0026 'IntersectionObserver' in window) {\n      var io = new IntersectionObserver(function(entries){\n        entries.forEach(function(entry){\n          carouselInView = entry.isIntersecting;\n          if (carouselInView) {\n            restartAutoplay();\n          } else {\n            stopAutoplay();\n          }\n        });\n      }, { threshold: 0.4 });\n      io.observe(carousel);\n    }\n\n    updateActive();\n  });\n})();\n\u003c\/script\u003e \u003cscript\u003e\n(function(){\n  var accordion = document.querySelector('[data-accordion]');\n  if(!accordion) return;\n  var buttons = accordion.querySelectorAll('.bwc-faq-q');\n  buttons.forEach(function(btn){\n    btn.addEventListener('click', function(){\n      var item = btn.closest('.bwc-faq-item');\n      var isOpen = item.classList.contains('open');\n      item.classList.toggle('open', !isOpen);\n      btn.setAttribute('aria-expanded', String(!isOpen));\n    });\n  });\n})();\n\u003c\/script\u003e \u003cscript\u003e\n(function(){\n  \/\/ Elements matching these are almost always \"related \/ recommended \/ upsell\"\n  \/\/ product widgets elsewhere on the page — never treat a button\/form inside\n  \/\/ one of these as this landing page's own add-to-cart control.\n  var EXCLUDE_SELECTOR = [\n    '[class*=\"related\"]','[id*=\"related\"]',\n    '[class*=\"recommend\"]','[id*=\"recommend\"]',\n    '[class*=\"upsell\"]','[id*=\"upsell\"]',\n    '[class*=\"cross-sell\"]','[id*=\"cross-sell\"]',\n    '[class*=\"also-like\"]','[id*=\"also-like\"]',\n    '[class*=\"complementary\"]','[id*=\"complementary\"]',\n    '[class*=\"bundle\"]','[id*=\"bundle\"]',\n    '[class*=\"quick-add\"]','[id*=\"quick-add\"]',\n    '[class*=\"quick-buy\"]','[id*=\"quick-buy\"]',\n    '[class*=\"product-card\"]','[class*=\"product-grid-item\"]',\n    '[class*=\"trending\"]','[class*=\"carousel-card\"]'\n  ].join(',');\n\n  function isInsideExcludedWidget(el){\n    return !!el.closest(EXCLUDE_SELECTOR);\n  }\n\n  function findRealAddToCartButton(){\n    \/\/ 1) Most specific \u0026 reliable: the standard Shopify add-to-cart control,\n    \/\/ name=\"add\", that isn't sitting inside a recommendations\/upsell widget.\n    var named = document.querySelectorAll('button[name=\"add\"], input[name=\"add\"]');\n    for (var i = 0; i \u003c named.length; i++) {\n      if (!isInsideExcludedWidget(named[i]) \u0026\u0026 !named[i].classList.contains('bwc-add-to-cart')) {\n        return named[i];\n      }\n    }\n\n    \/\/ 2) A real cart\/add form, again skipping anything inside an excluded widget.\n    var forms = document.querySelectorAll('form[action*=\"\/cart\/add\"]');\n    for (var f = 0; f \u003c forms.length; f++) {\n      if (isInsideExcludedWidget(forms[f])) continue;\n      var btn = forms[f].querySelector('button[name=\"add\"], button[type=\"submit\"], input[type=\"submit\"]');\n      if (btn) return btn;\n    }\n\n    \/\/ 3) Last resort: visible text match, still excluding recommendation widgets.\n    var all = document.querySelectorAll('button, input[type=\"submit\"]');\n    for (var j = 0; j \u003c all.length; j++) {\n      var txt = (all[j].textContent || all[j].value || '').trim().toLowerCase();\n      if (txt === 'add to cart' \u0026\u0026 !all[j].classList.contains('bwc-add-to-cart') \u0026\u0026 !isInsideExcludedWidget(all[j])) {\n        return all[j];\n      }\n    }\n    return null;\n  }\n\n  function bwcAddToCart(btn){\n    var realBtn = findRealAddToCartButton();\n    if (realBtn) {\n      realBtn.click();\n      return;\n    }\n    var fallbackId = btn.getAttribute('data-fallback-variant');\n    if (!fallbackId || fallbackId === 'VARIANT_ID') {\n      alert('Could not find the add-to-cart form on this page.');\n      return;\n    }\n    fetch('\/cart\/add.js', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application\/json' },\n      body: JSON.stringify({ id: fallbackId, quantity: 1 })\n    }).then(function(){ window.location.href = '\/cart'; });\n  }\n\n  document.addEventListener('click', function(e){\n    var btn = e.target.closest('.bwc-add-to-cart');\n    if (!btn) return;\n    e.preventDefault();\n    bwcAddToCart(btn);\n  });\n})();\n\u003c\/script\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"mysite","offers":[{"title":"01# milk white","offer_id":62476251431299,"sku":"USD-ZXB-white*1","price":19.98,"currency_code":"USD","in_stock":true},{"title":"02# sakura pink","offer_id":62476251464067,"sku":"USD-ZXB-pink*1","price":19.98,"currency_code":"USD","in_stock":true},{"title":"03# Nude","offer_id":62476251496835,"sku":"USD-ZXB-Nude*1","price":19.98,"currency_code":"USD","in_stock":true},{"title":"01# milk white+02# sakura pink","offer_id":62476251529603,"sku":"USD-ZXB-white*1-pink*1","price":29.98,"currency_code":"USD","in_stock":true},{"title":"01# milk white+03# Nude","offer_id":62476251562371,"sku":"USD-ZXB-white*1- Nude*1","price":29.98,"currency_code":"USD","in_stock":true},{"title":"02# sakura pink+03# Nude","offer_id":62476251595139,"sku":"USD-ZXB- pink*1- Nude*1","price":29.98,"currency_code":"USD","in_stock":true},{"title":"01# milk white+02# sakura pink+03# Nude","offer_id":62476251627907,"sku":"USD-ZXB-white*1- pink*1-Nude*1","price":39.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1019\/0523\/6355\/files\/3_8c83588c-4fca-413b-aa8f-1d202a52fdf8.png?v=1787562421","url":"https:\/\/oriivelle.com\/products\/0829-zxb1","provider":"oriivelle","version":"1.0","type":"link"}