{"product_id":"polarized-fit-over-sunglasses-wear-over-your-glasses","title":"Polarized Fit-Over Sunglasses – Wear Over Your Glasses","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:#fff;font-family:'Inter',Arial,Helvetica,sans-serif;color:#141414;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:#fff;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,#141414 25%,transparent 25%) 0 0\/16px 16px,\n  linear-gradient(225deg,#141414 25%,transparent 25%) 0 0\/16px 16px,\n  #fff!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  #141414!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:#6b6b6b;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:#111;margin:0 0 18px;line-height:1.14;letter-spacing:-.2px;text-transform:uppercase}\n\n.bwc-page .bwc-hero{background:#141414;color:#fff;padding:28px 24px;margin:0;position:relative}\n.bwc-page .bwc-hero h2{font-family:'Oswald',sans-serif;margin:0 0 10px;font-size:22px;line-height:1.25;font-weight:600;letter-spacing:.01em;color:#fff!important}\n.bwc-page .bwc-hero p{margin:0;opacity:.88;line-height:1.7;font-size:15px;color:#fff!important}\n.bwc-page .bwc-hero strong{color:#fff!important;border-bottom:2px solid #fff}\n\n.bwc-page .bwc-img-wrap{width:100%;margin:0;overflow:hidden;background:#f4f4f4}\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:#111;margin:38px 0 6px;padding-bottom:12px;border-bottom:3px solid #141414;line-height:1.2}\n.bwc-page .bwc-lead{font-size:15px;line-height:1.75;color:#3d3d3d;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:#fff;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}\n.bwc-page .bwc-carousel-num{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;background:#141414;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:#111;font-weight:600;line-height:1.3}\n.bwc-page .bwc-carousel-text p{margin:0;color:#4a4a4a;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 #141414;background:#fff;color:#141414;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:#141414;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:#d4d4d4;cursor:pointer;transition:background .2s;padding:0;border:0}\n.bwc-page .bwc-carousel-dot.active{background:#141414}\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:#111;margin:0 0 6px}\n.bwc-page .bwc-review-quote{font-size:13px;line-height:1.6;color:#4a4a4a;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:#111;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{display:flex;gap:12px;padding:14px;background:#fff}\n.bwc-page .bwc-review-mini img{width:90px;height:110px;object-fit:cover;flex-shrink:0}\n.bwc-page .bwc-review-mini .txt{flex:1;min-width:0}\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:#f4f4f4}\n.bwc-page .bwc-media-block img,.bwc-page .bwc-media-block video{width:100%;height:auto;display:block}\n.bwc-page .bwc-media-caption{padding:11px 16px;font-size:12px;color:#6b6b6b;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.05em;background:#fff}\n\n.bwc-page .bwc-spec{margin-top:36px;background:#141414;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 #3a3a3a}\n.bwc-page .bwc-table{width:100%;border-collapse:collapse;background:#fff}\n.bwc-page .bwc-table td{padding:14px 20px;border-bottom:1px solid #e4e4e4;vertical-align:top;line-height:1.5;font-size:14.5px;color:#222}\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:#111;width:34%;background:#f5f5f5;font-size:12.5px}\n\n.bwc-page .bwc-faq{margin-top:36px}\n.bwc-page .bwc-faq-item{border-bottom:1px solid #e4e4e4;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:#111;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:#141414;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:#141414;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:#4a4a4a;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:#141414;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:.85;font-size:14.5px;color:#fff!important}\n.bwc-page .bwc-btn{display:inline-block;background:#fff;color:#111!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\/* Interactive carousel, review, FAQ and modal enhancements *\/\n.bwc-page .bwc-carousel-track{scroll-behavior:smooth}\n.bwc-page .bwc-carousel-imgs img.bwc-zoomable{cursor:zoom-in;transition:opacity .2s ease,transform .2s ease}\n.bwc-page .bwc-carousel-imgs img.bwc-zoomable:hover{opacity:.92}\n.bwc-page .bwc-carousel-arrow:focus-visible,\n.bwc-page .bwc-carousel-dot:focus-visible,\n.bwc-page .bwc-faq-q:focus-visible,\n.bwc-page .bwc-review-mini:focus-visible,\n.bwc-page .bwc-modal-close:focus-visible{outline:3px solid #8f8f8f;outline-offset:3px}\n.bwc-page .bwc-carousel-dot{transition:width .2s ease,background .2s ease}\n.bwc-page .bwc-carousel-dot.active{width:24px;border-radius:999px}\n.bwc-page .bwc-carousel-hint{margin:-6px 0 12px;text-align:center;color:#777;font-size:12px;line-height:1.5}\n\n.bwc-page .bwc-review-mini{border:1px solid #e5e5e5;cursor:pointer;position:relative;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}\n.bwc-page .bwc-review-mini:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.08);border-color:#c9c9c9}\n.bwc-page .bwc-review-mini .bwc-review-quote{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}\n.bwc-page .bwc-review-more{display:inline-flex;margin-top:10px;font-family:'Oswald',sans-serif;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#111;border-bottom:1px solid #111;padding-bottom:2px}\n\n.bwc-page .bwc-faq-item{transition:background .25s ease}\n.bwc-page .bwc-faq-item.open{background:#fafafa}\n.bwc-page .bwc-faq-q{padding:2px 0}\n.bwc-page .bwc-faq-a{display:block;max-height:0;overflow:hidden;opacity:0;margin:0;padding-left:32px;transition:max-height .35s ease,opacity .25s ease,margin .35s ease}\n.bwc-page .bwc-faq-item.open .bwc-faq-a{max-height:320px;opacity:1;margin-top:10px}\n\n.bwc-page .bwc-modal{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.78);opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s ease}\n.bwc-page .bwc-modal.open{opacity:1;visibility:visible}\n.bwc-page .bwc-modal-dialog{position:relative;width:min(760px,100%);max-height:90vh;overflow:auto;background:#fff;box-shadow:0 18px 60px rgba(0,0,0,.32)}\n.bwc-page .bwc-modal-close{position:absolute;top:10px;right:10px;z-index:2;width:40px;height:40px;border:0;background:#141414;color:#fff;font-size:25px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}\n.bwc-page .bwc-image-modal-dialog{background:transparent;box-shadow:none;overflow:visible;width:min(900px,100%)}\n.bwc-page .bwc-image-modal-dialog img{display:block;width:100%;height:auto;max-height:86vh;object-fit:contain;background:#fff}\n.bwc-page .bwc-review-modal-content{padding:30px}\n.bwc-page .bwc-review-modal-grid{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:24px;align-items:start}\n.bwc-page .bwc-review-modal-grid.no-image{grid-template-columns:1fr}\n.bwc-page .bwc-review-modal-img{width:100%;height:auto;max-height:300px;object-fit:cover;background:#f4f4f4}\n.bwc-page .bwc-review-modal-stars{font-size:18px;letter-spacing:.08em;margin:0 0 12px;color:#111}\n.bwc-page .bwc-review-modal-title{font-family:'Oswald',sans-serif;font-size:18px;font-weight:600;text-transform:uppercase;line-height:1.3;margin:0 42px 12px 0;color:#111}\n.bwc-page .bwc-review-modal-quote{font-size:15px;line-height:1.75;color:#3f3f3f;font-style:italic;margin:0}\nbody.bwc-modal-open{overflow:hidden}\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-hero h2{font-size:19px}\n.bwc-page .bwc-section-title{font-size:19px;margin-top:30px}\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}\n.bwc-page .bwc-faq-item.open .bwc-faq-a{margin-top:8px}\n.bwc-page .bwc-btn{display:block;width:100%;text-align:center}\n.bwc-page .bwc-review-modal-content{padding:24px 18px}\n.bwc-page .bwc-review-modal-grid{grid-template-columns:1fr;gap:16px}\n.bwc-page .bwc-review-modal-img{max-height:260px}\n.bwc-page .bwc-modal{padding:12px}\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-top\"\u003e\n\u003cp class=\"bwc-eyebrow\"\u003ePolarized Fit-Over Sunglasses\u003c\/p\u003e\n\u003ch1 class=\"bwc-h1\"\u003eKeep Your Glasses On. Enjoy The Sun.\u003c\/h1\u003e\n\u003c\/div\u003e\n\u003c!-- ② Hero 横幅 --\u003e\n\u003cdiv class=\"bwc-hero\"\u003e\n\u003ch2\u003eClearer Outdoor Vision Without Changing Your Prescription Glasses\u003c\/h2\u003e\n\u003cp\u003eThese lightweight fit-over sunglasses slide directly over your everyday prescription frames, giving you \u003cstrong\u003epolarized glare reduction, comfortable sun protection, and six stylish colour options\u003c\/strong\u003e without clips, lens changes, or expensive prescription sunglasses.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-teeth\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c!-- ③ 主图 --\u003e\n\u003cdiv class=\"bwc-img-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/t59948-st76102-i0.jpg?v=1786005684\" alt=\"Polarized fit-over sunglasses worn over prescription glasses\"\u003e\u003c\/div\u003e\n\u003c!-- ⑤ 功能特性：轮播（2 个核心卖点，支持按钮、圆点、滑动与自动播放） --\u003e\n\u003ch2 class=\"bwc-section-title\" style=\"margin-left: 26px; margin-right: 26px;\"\u003eWhy You'll Love It\u003c\/h2\u003e\n\u003cp class=\"bwc-lead\" style=\"margin-left: 26px; margin-right: 26px;\"\u003eTwo practical upgrades that make bright days easier and more comfortable.\u003c\/p\u003e\n\u003cdiv class=\"bwc-carousel\" data-carousel data-autoplay=\"4500\" aria-label=\"Product benefits carousel\"\u003e\n\u003cdiv class=\"bwc-carousel-track\" data-track\u003e\n\u003cdiv class=\"bwc-carousel-slide\"\u003e\n\u003cdiv class=\"bwc-carousel-imgs\"\u003e\u003cimg class=\"bwc-zoomable\" tabindex=\"0\" role=\"button\" data-zoom-image src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/t59994-st76164-i0.jpg?v=1786006126\" alt=\"Fit-over sunglasses placed directly over regular prescription glasses\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"bwc-carousel-text\"\u003e\n\u003cspan class=\"bwc-carousel-num\"\u003e1\u003c\/span\u003e\n\u003ch3\u003eKeep Your Prescription Glasses On\u003c\/h3\u003e\n\u003cp\u003eNo clips, swapping, or complicated adjustments. The roomy fit-over construction is designed to sit directly over standard prescription frames, so you can keep the vision correction you already trust while adding sun protection in seconds.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-carousel-slide\"\u003e\n\u003cdiv class=\"bwc-carousel-imgs\"\u003e\u003cimg class=\"bwc-zoomable\" tabindex=\"0\" role=\"button\" data-zoom-image src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/t59974-st76137-i0.jpg?v=1786005789\" alt=\"Six stylish colour options for polarized fit-over sunglasses\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"bwc-carousel-text\"\u003e\n\u003cspan class=\"bwc-carousel-num\"\u003e2\u003c\/span\u003e\n\u003ch3\u003ePolarized Comfort In Six Styles\u003c\/h3\u003e\n\u003cp\u003ePolarized lenses help reduce distracting reflections from roads, water, snow, and other bright surfaces. The lightweight design stays comfortable for everyday wear, while six distinctive finishes let you choose a look that suits your wardrobe.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp class=\"bwc-carousel-hint\"\u003eUse the arrows or swipe to browse. Click an image to enlarge.\u003c\/p\u003e\n\u003cdiv class=\"bwc-carousel-nav\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-carousel-arrow\" data-prev aria-label=\"Previous slide\"\u003e‹\u003c\/button\u003e\n\u003cdiv class=\"bwc-carousel-dots\" data-dots aria-label=\"Carousel navigation\"\u003e\u003c\/div\u003e\n\u003cbutton type=\"button\" class=\"bwc-carousel-arrow\" data-next aria-label=\"Next slide\"\u003e›\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-teeth\" style=\"margin-top: 8px;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"bwc-body\"\u003e\n\u003c!-- 颜色选项 --\u003e\n\u003ch2 class=\"bwc-section-title\"\u003eSix Colours To Match Your Look\u003c\/h2\u003e\n\u003cp class=\"bwc-lead\"\u003eChoose one pair in your preferred colour. From understated black to playful florals and mirrored pink, every option combines practical fit-over coverage with an easy everyday finish.\u003c\/p\u003e\n\u003cdiv class=\"bwc-media-block\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/t59974-st76137-i0.jpg?v=1786005789\" alt=\"Six available colours of polarized fit-over sunglasses\"\u003e\n\u003cdiv class=\"bwc-media-caption\"\u003eBlack Gold · Purple · Leopard · Pink Mirror · Floral · Red\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp class=\"bwc-lead\"\u003e\u003cstrong\u003eGlossy Black Frame · Grey Lenses · Gold Studs\u003c\/strong\u003e\u003cbr\u003eClassic black with polished gold-tone detailing.\u003c\/p\u003e\n\u003cp class=\"bwc-lead\"\u003e\u003cstrong\u003eGradient Purple Frame\u003c\/strong\u003e\u003cbr\u003eSoft purple tones for an elegant touch of colour.\u003c\/p\u003e\n\u003cp class=\"bwc-lead\"\u003e\u003cstrong\u003eLeopard Print Frame\u003c\/strong\u003e\u003cbr\u003eA confident animal-inspired finish with timeless character.\u003c\/p\u003e\n\u003cp class=\"bwc-lead\"\u003e\u003cstrong\u003ePink Frame · Pink Mirror Lenses\u003c\/strong\u003e\u003cbr\u003eA playful statement option with reflective pink lenses.\u003c\/p\u003e\n\u003cp class=\"bwc-lead\"\u003e\u003cstrong\u003eFloral Frame\u003c\/strong\u003e\u003cbr\u003eA feminine printed finish that brightens simple outfits.\u003c\/p\u003e\n\u003cp class=\"bwc-lead\"\u003e\u003cstrong\u003eGradient Red Frame\u003c\/strong\u003e\u003cbr\u003eRich red tones for a bold, eye-catching look.\u003c\/p\u003e\n\u003c!-- Perfect For --\u003e\n\u003ch2 class=\"bwc-section-title\"\u003ePerfect For\u003c\/h2\u003e\n\u003cp class=\"bwc-lead\"\u003eAn easy choice for daytime driving, walking, shopping, holidays, beach trips, gardening, sightseeing, outdoor cafés, travel, and everyday sun protection.\u003c\/p\u003e\n\u003c!-- 使用场景配图区域 --\u003e\n\u003cdiv class=\"bwc-media-block\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/t59948-st76103-i0.jpg?v=1786005684\" alt=\"Fit-over polarized sunglasses for driving and everyday outdoor wear\"\u003e\n\u003cdiv class=\"bwc-media-caption\"\u003eDriving · Walking · Travel · Shopping · Gardening · Everyday Wear\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\u003ctd\u003eProduct Type\u003c\/td\u003e\n\u003ctd\u003ePolarized Fit-Over Sunglasses\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eDesign\u003c\/td\u003e\n\u003ctd\u003eDesigned To Be Worn Directly Over Prescription Glasses\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eLens Type\u003c\/td\u003e\n\u003ctd\u003ePolarized Lenses With UV Protection\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMain Benefit\u003c\/td\u003e\n\u003ctd\u003eHelps Reduce Glare While Keeping Your Regular Glasses On\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eFit\u003c\/td\u003e\n\u003ctd\u003eRoomy Fit-Over Construction\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eFrame Feel\u003c\/td\u003e\n\u003ctd\u003eLightweight And Comfortable For Everyday Wear\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eAvailable Colours\u003c\/td\u003e\n\u003ctd\u003e6 Frame And Lens Finishes\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eColour Options\u003c\/td\u003e\n\u003ctd\u003eGlossy Black Gold, Gradient Purple, Leopard Print, Pink Mirror, Floral, Gradient Red\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eBest For\u003c\/td\u003e\n\u003ctd\u003eDriving, Walking, Shopping, Travel, Beach Days, Gardening And Outdoor Activities\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003ePackage Includes\u003c\/td\u003e\n\u003ctd\u003e1 Pair Of Sunglasses In Your Selected Colour\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eCare Instructions\u003c\/td\u003e\n\u003ctd\u003eClean Gently With A Microfiber Cloth And Store In A Protective Case When Not In Use\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eFit Note\u003c\/td\u003e\n\u003ctd\u003eFinal Fit And Coverage Depend On The Size And Shape Of Your Prescription Frames\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\"\u003eCustomer Reviews\u003c\/h2\u003e\n\u003cp class=\"bwc-lead\"\u003eClick any review to open and read the full customer experience.\u003c\/p\u003e\n\u003cdiv class=\"bwc-carousel\" data-carousel data-autoplay=\"0\" aria-label=\"Customer reviews carousel\"\u003e\n\u003cdiv class=\"bwc-carousel-track\" data-track\u003e\n\u003cdiv class=\"bwc-carousel-slide bwc-review-carousel-slide\"\u003e\n\u003cdiv class=\"bwc-review-mini\" data-review-card tabindex=\"0\" role=\"button\" aria-label=\"Open customer review\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/1_350a2a66-8e9b-468d-8ce4-23823d090265.webp?v=1786005684\" alt=\"Customer wearing polarized fit-over sunglasses\"\u003e\n\u003cdiv class=\"txt\"\u003e\n\u003cp class=\"bwc-review-title\"\u003eSolveig Pedersen · Verified Buyer\u003c\/p\u003e\n\u003cp class=\"bwc-review-quote\"\u003e\"Finally, a smart solution for those of us who wear glasses. Reasonable price and fast delivery. 👍\"\u003c\/p\u003e\n\u003cspan class=\"bwc-review-more\"\u003eClick to read full review\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-carousel-slide bwc-review-carousel-slide\"\u003e\n\u003cdiv class=\"bwc-review-mini\" data-review-card tabindex=\"0\" role=\"button\" aria-label=\"Open customer review\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/2_eee6e8c7-1dfc-4edb-98e8-471c2e3ebaf2.webp?v=1786005684\" alt=\"Customer review photo of fit-over sunglasses\"\u003e\n\u003cdiv class=\"txt\"\u003e\n\u003cp class=\"bwc-review-title\"\u003eAnja Nordgaard Smidt · Verified Buyer\u003c\/p\u003e\n\u003cp class=\"bwc-review-quote\"\u003e\"They fit perfectly over my regular glasses and really help in bright sunlight. They work so well in the car that I hardly need the sun visor. 🤩\"\u003c\/p\u003e\n\u003cspan class=\"bwc-review-more\"\u003eClick to read full review\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-carousel-slide bwc-review-carousel-slide\"\u003e\n\u003cdiv class=\"bwc-review-mini\" data-review-card tabindex=\"0\" role=\"button\" aria-label=\"Open customer review\"\u003e\n\u003cdiv class=\"txt\"\u003e\n\u003cp class=\"bwc-review-title\"\u003ePia Krog · Verified Buyer\u003c\/p\u003e\n\u003cp class=\"bwc-review-quote\"\u003e\"I am so happy with my sunglasses. I have never had a pair that worked this well for me. 🌹❤️\"\u003c\/p\u003e\n\u003cspan class=\"bwc-review-more\"\u003eClick to read full review\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-carousel-nav\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-carousel-arrow\" data-prev aria-label=\"Previous review\"\u003e‹\u003c\/button\u003e\n\u003cdiv class=\"bwc-carousel-dots\" data-dots aria-label=\"Review navigation\"\u003e\u003c\/div\u003e\n\u003cbutton type=\"button\" class=\"bwc-carousel-arrow\" data-next aria-label=\"Next review\"\u003e›\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- FAQ --\u003e\n\u003cdiv class=\"bwc-faq\" data-accordion\u003e\n\u003ch2 class=\"bwc-section-title\"\u003eFrequently Asked Questions\u003c\/h2\u003e\n\u003cp class=\"bwc-lead\"\u003eClick a question to reveal the answer.\u003c\/p\u003e\n\u003cdiv class=\"bwc-faq-item\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-faq-q\" aria-expanded=\"false\"\u003e\u003cspan class=\"qmark\"\u003eQ\u003c\/span\u003e\u003cspan class=\"qtext\"\u003eCan I wear these over prescription glasses?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eYes. They are designed to slide directly over standard prescription frames, allowing you to keep your usual vision correction while adding sun protection.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-faq-item\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-faq-q\" aria-expanded=\"false\"\u003e\u003cspan class=\"qmark\"\u003eQ\u003c\/span\u003e\u003cspan class=\"qtext\"\u003eAre the lenses polarized?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eYes. The polarized lenses help reduce glare and reflections from sunlight, roads, water, snow, and other bright surfaces.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-faq-item\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-faq-q\" aria-expanded=\"false\"\u003e\u003cspan class=\"qmark\"\u003eQ\u003c\/span\u003e\u003cspan class=\"qtext\"\u003eDo I receive all six colours?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eNo. Each purchase includes one pair in the colour and frame style you select.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-faq-item\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-faq-q\" aria-expanded=\"false\"\u003e\u003cspan class=\"qmark\"\u003eQ\u003c\/span\u003e\u003cspan class=\"qtext\"\u003eWill they look bulky over my glasses?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eThey feature a modern fit-over shape designed to look more discreet than many traditional oversized models. The final appearance depends on your prescription frame size and shape.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-faq-item\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-faq-q\" aria-expanded=\"false\"\u003e\u003cspan class=\"qmark\"\u003eQ\u003c\/span\u003e\u003cspan class=\"qtext\"\u003eAre they suitable for daytime driving?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eYes. Polarized lenses help reduce bright road reflections and glare, making them a practical option for daytime driving.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-faq-item\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-faq-q\" aria-expanded=\"false\"\u003e\u003cspan class=\"qmark\"\u003eQ\u003c\/span\u003e\u003cspan class=\"qtext\"\u003eDo I need to remove my regular glasses first?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eNo. Simply place the sunglasses over your existing prescription glasses and remove them when sun protection is no longer needed.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-faq-item\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-faq-q\" aria-expanded=\"false\"\u003e\u003cspan class=\"qmark\"\u003eQ\u003c\/span\u003e\u003cspan class=\"qtext\"\u003eAre the sunglasses lightweight?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eYes. The lightweight frame is designed for comfortable everyday use over your regular glasses.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-teeth inv\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"bwc-bottom-pad\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c!-- ⑩ CTA --\u003e\n\u003cdiv class=\"bwc-cta\"\u003e\n\u003ch2\u003eSix Styles. One Effortless Way To Enjoy The Sun.\u003c\/h2\u003e\n\u003cp\u003eKeep the prescription glasses you already trust while enjoying reduced glare, lightweight comfort, and a stylish finish for every bright day.\u003c\/p\u003e\n\u003cbutton type=\"button\" class=\"bwc-btn bwc-add-to-cart\"\u003eChoose Your Colour \u0026amp; Add To Cart\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c!-- Click-to-view image modal --\u003e\n\u003cdiv class=\"bwc-modal\" data-image-modal aria-hidden=\"true\"\u003e\n  \u003cdiv class=\"bwc-modal-dialog bwc-image-modal-dialog\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Enlarged product image\"\u003e\n    \u003cbutton type=\"button\" class=\"bwc-modal-close\" data-modal-close aria-label=\"Close image\"\u003e×\u003c\/button\u003e\n    \u003cimg data-modal-image alt=\"\"\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- Click-to-view review modal --\u003e\n\u003cdiv class=\"bwc-modal\" data-review-modal aria-hidden=\"true\"\u003e\n  \u003cdiv class=\"bwc-modal-dialog\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Full customer review\"\u003e\n    \u003cbutton type=\"button\" class=\"bwc-modal-close\" data-modal-close aria-label=\"Close review\"\u003e×\u003c\/button\u003e\n    \u003cdiv class=\"bwc-review-modal-content\"\u003e\n      \u003cdiv class=\"bwc-review-modal-grid\"\u003e\n        \u003cimg class=\"bwc-review-modal-img\" data-review-modal-img alt=\"Customer review photo\"\u003e\n        \u003cdiv\u003e\n          \u003cp class=\"bwc-review-modal-stars\" aria-label=\"5 out of 5 stars\"\u003e★★★★★\u003c\/p\u003e\n          \u003ch3 class=\"bwc-review-modal-title\" data-review-modal-title\u003e\u003c\/h3\u003e\n          \u003cp class=\"bwc-review-modal-quote\" data-review-modal-quote\u003e\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n  document.querySelectorAll('.bwc-page').forEach(function(page){\n    \/* Carousels: arrows, dots, swipe, keyboard and optional autoplay *\/\n    page.querySelectorAll('[data-carousel]').forEach(function(carousel){\n      if (carousel.dataset.bwcReady === 'true') return;\n      carousel.dataset.bwcReady = 'true';\n\n      var track = carousel.querySelector('[data-track]');\n      var slides = track ? Array.prototype.slice.call(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      if (!track || !slides.length || !dotsWrap || !prevBtn || !nextBtn) return;\n\n      var activeIndex = 0;\n      var autoplayDelay = parseInt(carousel.getAttribute('data-autoplay'), 10) || 0;\n      var autoplayTimer = null;\n      var carouselInView = !('IntersectionObserver' in window);\n\n      dotsWrap.innerHTML = '';\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 = Array.prototype.slice.call(dotsWrap.querySelectorAll('.bwc-carousel-dot'));\n\n      function goToSlide(index){\n        activeIndex = (index + slides.length) % slides.length;\n        track.scrollTo({left: slides[activeIndex].offsetLeft, behavior:'smooth'});\n        updateDots();\n      }\n\n      function updateDots(){\n        dots.forEach(function(dot, i){\n          dot.classList.toggle('active', i === activeIndex);\n          dot.setAttribute('aria-current', i === activeIndex ? 'true' : 'false');\n        });\n      }\n\n      function updateFromScroll(){\n        var closest = 0;\n        var closestDistance = Infinity;\n        slides.forEach(function(slide, i){\n          var distance = Math.abs(track.scrollLeft - slide.offsetLeft);\n          if (distance \u003c closestDistance){\n            closestDistance = distance;\n            closest = i;\n          }\n        });\n        activeIndex = closest;\n        updateDots();\n      }\n\n      var scrollTimer;\n      track.addEventListener('scroll', function(){\n        clearTimeout(scrollTimer);\n        scrollTimer = setTimeout(updateFromScroll, 80);\n      }, {passive:true});\n\n      prevBtn.addEventListener('click', function(){\n        goToSlide(activeIndex - 1);\n        restartAutoplay();\n      });\n      nextBtn.addEventListener('click', function(){\n        goToSlide(activeIndex + 1);\n        restartAutoplay();\n      });\n\n      carousel.addEventListener('keydown', function(event){\n        if (event.key === 'ArrowLeft'){\n          event.preventDefault();\n          goToSlide(activeIndex - 1);\n        }\n        if (event.key === 'ArrowRight'){\n          event.preventDefault();\n          goToSlide(activeIndex + 1);\n        }\n      });\n\n      function stopAutoplay(){\n        if (autoplayTimer){\n          clearInterval(autoplayTimer);\n          autoplayTimer = null;\n        }\n      }\n      function startAutoplay(){\n        stopAutoplay();\n        if (!autoplayDelay || !carouselInView || document.hidden) return;\n        autoplayTimer = setInterval(function(){ goToSlide(activeIndex + 1); }, autoplayDelay);\n      }\n      function restartAutoplay(){\n        stopAutoplay();\n        startAutoplay();\n      }\n\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      document.addEventListener('visibilitychange', function(){\n        document.hidden ? stopAutoplay() : startAutoplay();\n      });\n\n      if ('IntersectionObserver' in window \u0026\u0026 autoplayDelay){\n        var observer = new IntersectionObserver(function(entries){\n          entries.forEach(function(entry){\n            carouselInView = entry.isIntersecting;\n            carouselInView ? startAutoplay() : stopAutoplay();\n          });\n        }, {threshold:.35});\n        observer.observe(carousel);\n      } else {\n        startAutoplay();\n      }\n\n      window.addEventListener('resize', function(){ goToSlide(activeIndex); });\n      updateDots();\n    });\n\n    \/* Smooth FAQ accordion *\/\n    page.querySelectorAll('[data-accordion]').forEach(function(accordion){\n      accordion.querySelectorAll('.bwc-faq-q').forEach(function(button){\n        var item = button.closest('.bwc-faq-item');\n        var answer = item ? item.querySelector('.bwc-faq-a') : null;\n        if (!item || !answer) return;\n\n        button.addEventListener('click', function(){\n          var willOpen = !item.classList.contains('open');\n          accordion.querySelectorAll('.bwc-faq-item.open').forEach(function(openItem){\n            if (openItem !== item){\n              openItem.classList.remove('open');\n              var openButton = openItem.querySelector('.bwc-faq-q');\n              if (openButton) openButton.setAttribute('aria-expanded','false');\n            }\n          });\n          item.classList.toggle('open', willOpen);\n          button.setAttribute('aria-expanded', String(willOpen));\n        });\n      });\n    });\n\n    \/* Shared modal helpers *\/\n    var lastFocused = null;\n    function openModal(modal){\n      if (!modal) return;\n      lastFocused = document.activeElement;\n      modal.classList.add('open');\n      modal.setAttribute('aria-hidden','false');\n      document.body.classList.add('bwc-modal-open');\n      var closeButton = modal.querySelector('[data-modal-close]');\n      if (closeButton) setTimeout(function(){ closeButton.focus(); }, 0);\n    }\n    function closeModal(modal){\n      if (!modal) return;\n      modal.classList.remove('open');\n      modal.setAttribute('aria-hidden','true');\n      document.body.classList.remove('bwc-modal-open');\n      if (lastFocused \u0026\u0026 typeof lastFocused.focus === 'function') lastFocused.focus();\n    }\n\n    page.querySelectorAll('.bwc-modal').forEach(function(modal){\n      modal.addEventListener('click', function(event){\n        if (event.target === modal || event.target.closest('[data-modal-close]')) closeModal(modal);\n      });\n    });\n    document.addEventListener('keydown', function(event){\n      if (event.key === 'Escape'){\n        page.querySelectorAll('.bwc-modal.open').forEach(closeModal);\n      }\n    });\n\n    \/* Click carousel images to enlarge *\/\n    var imageModal = page.querySelector('[data-image-modal]');\n    var modalImage = imageModal ? imageModal.querySelector('[data-modal-image]') : null;\n    page.querySelectorAll('[data-zoom-image]').forEach(function(image){\n      function showImage(){\n        if (!imageModal || !modalImage) return;\n        modalImage.src = image.currentSrc || image.src;\n        modalImage.alt = image.alt || 'Enlarged product image';\n        openModal(imageModal);\n      }\n      image.addEventListener('click', showImage);\n      image.addEventListener('keydown', function(event){\n        if (event.key === 'Enter' || event.key === ' '){\n          event.preventDefault();\n          showImage();\n        }\n      });\n    });\n\n    \/* Click reviews to open full review *\/\n    var reviewModal = page.querySelector('[data-review-modal]');\n    var reviewModalImg = reviewModal ? reviewModal.querySelector('[data-review-modal-img]') : null;\n    var reviewModalTitle = reviewModal ? reviewModal.querySelector('[data-review-modal-title]') : null;\n    var reviewModalQuote = reviewModal ? reviewModal.querySelector('[data-review-modal-quote]') : null;\n    var reviewModalGrid = reviewModal ? reviewModal.querySelector('.bwc-review-modal-grid') : null;\n\n    page.querySelectorAll('[data-review-card]').forEach(function(card){\n      function showReview(){\n        if (!reviewModal || !reviewModalTitle || !reviewModalQuote) return;\n        var title = card.querySelector('.bwc-review-title');\n        var quote = card.querySelector('.bwc-review-quote');\n        var image = card.querySelector('img');\n        reviewModalTitle.textContent = title ? title.textContent : 'Verified Customer Review';\n        reviewModalQuote.textContent = quote ? quote.textContent : '';\n        if (reviewModalImg){\n          if (image){\n            reviewModalImg.src = image.currentSrc || image.src;\n            reviewModalImg.alt = image.alt || 'Customer review photo';\n            reviewModalImg.style.display = 'block';\n            if (reviewModalGrid) reviewModalGrid.classList.remove('no-image');\n          } else {\n            reviewModalImg.removeAttribute('src');\n            reviewModalImg.style.display = 'none';\n            if (reviewModalGrid) reviewModalGrid.classList.add('no-image');\n          }\n        }\n        openModal(reviewModal);\n      }\n      card.addEventListener('click', showReview);\n      card.addEventListener('keydown', function(event){\n        if (event.key === 'Enter' || event.key === ' '){\n          event.preventDefault();\n          showReview();\n        }\n      });\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":"tjx","offers":[{"title":"Glossy Black","offer_id":43792560521306,"sku":"NC02292608064634-亮黑框灰片金丁","price":17.99,"currency_code":"USD","in_stock":true},{"title":"Gradient Purple","offer_id":43792560554074,"sku":"NC02292608064634-渐紫框灰片","price":17.99,"currency_code":"USD","in_stock":true},{"title":"Leopard Print","offer_id":43792560586842,"sku":"NC02292608064634- 豹纹框茶片","price":17.99,"currency_code":"USD","in_stock":true},{"title":"Pink Coated","offer_id":43792560619610,"sku":"NC02292608064634-粉框粉膜","price":17.99,"currency_code":"USD","in_stock":true},{"title":"Floral Print","offer_id":43792560652378,"sku":"NC02292608064634-碎花框灰片","price":17.99,"currency_code":"USD","in_stock":true},{"title":"Gradient Red","offer_id":43792560685146,"sku":"NC02292608064634-渐红框灰片","price":17.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/t59935-st76082-i0.jpg?v=1786005684","url":"https:\/\/sthael.com\/products\/polarized-fit-over-sunglasses-wear-over-your-glasses","provider":"Sthael","version":"1.0","type":"link"}