{"product_id":"a-warm-cozy-and-soft-round-pet-bed","title":"A Warm Cozy And Soft Round Pet Bed","description":"\u003cbody\u003e\n\n\n\u003cmeta charset=\"UTF-8\"\u003e\n\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n\u003ctitle\u003eWarm Cozy \u0026amp; Soft Round Pet Bed — VIORA Premium Pet Store\u003c\/title\u003e\n\u003clink rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"\u003e\n\u003clink rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin\u003e\n\u003clink href=\"https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:wght@400;500;600;700\u0026amp;family=Inter:wght@300;400;500;600\u0026amp;display=swap\" rel=\"stylesheet\"\u003e\n\u003cstyle\u003e\n\/* ============================================================\n   VIORA — Design Tokens (identical to homepage\/collection)\n   ============================================================ *\/\n*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\nhtml { margin: 0 !important; padding: 0 !important; overflow-y: scroll; overflow-x: hidden; width: 100% !important; scrollbar-gutter: stable; }\nbody { margin: 0 !important; padding: 0 !important; width: 100% !important; max-width: 100% !important; overflow-x: hidden; left: 0 !important; right: 0 !important; }\n.shopify-section,.shopify-section-group,main,#main,#MainContent,.main-content,.page-width,.container,.wrapper,[class*=\"page-container\"],[class*=\"site-width\"],[class*=\"layout\"],[id*=\"shopify-section\"] { margin: 0 !important; padding: 0 !important; max-width: 100% !important; width: 100% !important; }\n#MainContent,.main-content,main { padding-top: 0 !important; margin-top: 0 !important; }\nbody.announcement-bar--visible,body[class*=\"announcement\"] { margin-top: 0 !important; padding-top: 0 !important; }\n\n:root {\n  --navy: #0F1B2D; --navy-light: #1a2e47; --cream: #FBF8F3; --gold: #C8A96E;\n  --gold-light: #DFC08E; --blush: #F5E6D3; --slate: #4A5568; --ash: #E8E4DE;\n  --text: #1A1A1A; --text-muted: #6B7280; --white: #FFFFFF; --red-sale: #C0392B;\n  --radius: 12px; --radius-sm: 8px; --shadow: 0 4px 24px rgba(15,27,45,0.10);\n  --shadow-lg: 0 12px 48px rgba(15,27,45,0.16); --transition: 0.3s cubic-bezier(0.4,0,0.2,1);\n}\nhtml { scroll-behavior: smooth; }\nbody { font-family: 'Inter', sans-serif; background: var(--cream); color: var(--text); -webkit-font-smoothing: antialiased; }\n\n\/* ANNOUNCEMENT BAR *\/\n#announcement-bar { background: var(--navy); color: var(--cream); padding: 9px 16px; text-align: center; position: relative; z-index: 200; overflow: hidden; width: 100vw !important; max-width: 100vw !important; margin-left: calc(-50vw + 50%) !important; margin-right: calc(-50vw + 50%) !important; left: 0 !important; right: 0 !important; transition: height 0.35s ease, padding 0.35s ease, opacity 0.35s ease; }\n#announcement-bar.hidden { height: 0 !important; padding: 0; opacity: 0; pointer-events: none; }\n.ann-track { display: flex; gap: 60px; animation: marquee 28s linear infinite; white-space: nowrap; width: max-content; }\n.ann-item { font-size: 12.5px; font-weight: 500; letter-spacing: 0.06em; display: flex; align-items: center; gap: 8px; }\n.ann-item span.dot { color: var(--gold); font-size: 14px; }\n@keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }\n\n\/* HEADER *\/\n#site-header { position: sticky; top: 0; left: 0 !important; right: 0 !important; z-index: 100; width: 100vw !important; max-width: 100vw !important; margin-left: calc(-50vw + 50%) !important; margin-right: calc(-50vw + 50%) !important; background: rgba(251,248,243,0.96); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom: 1px solid rgba(200,169,110,0.18); transition: transform 0.38s cubic-bezier(0.4,0,0.2,1), box-shadow 0.3s ease; box-shadow: 0 2px 20px rgba(15,27,45,0.07); }\n#site-header.hide { transform: translateY(-100%); }\n.header-inner { max-width: 1280px; margin: 0 auto; padding: 0 24px; height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }\n.header-logo img { height: 48px; width: auto; display: block; }\n.header-nav { display: flex; align-items: center; gap: 28px; }\n.header-nav a { font-size: 13.5px; font-weight: 500; color: var(--navy); text-decoration: none; letter-spacing: 0.04em; position: relative; padding-bottom: 3px; transition: color var(--transition); }\n.header-nav a::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 1.5px; background: var(--gold); transition: width var(--transition); }\n.header-nav a:hover { color: var(--gold); }\n.header-nav a:hover::after { width: 100%; }\n.header-actions { display: flex; align-items: center; gap: 8px; }\n.btn-icon { background: none; border: none; cursor: pointer; padding: 8px; border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: background var(--transition); color: var(--navy); }\n.btn-icon:hover { background: var(--blush); }\n.cart-btn-wrap { position: relative; }\n.cart-count { position: absolute; top: 2px; right: 2px; background: var(--gold); color: var(--navy); font-size: 9px; font-weight: 700; width: 16px; height: 16px; border-radius: 50%; display: flex; align-items: center; justify-content: center; pointer-events: none; }\n.nav-hamburger { display: none; background: none; border: none; cursor: pointer; padding: 6px; color: var(--navy); }\n.mobile-nav { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 300; }\n.mobile-nav.open { display: block; }\n.mobile-nav-backdrop { position: absolute; inset: 0; background: rgba(15,27,45,0.5); }\n.mobile-nav-drawer { position: absolute; top: 0; right: 0; width: 280px; height: 100%; background: var(--cream); padding: 24px; display: flex; flex-direction: column; animation: slideInRight 0.3s ease; }\n@keyframes slideInRight { from { transform: translateX(100%); } to { transform: translateX(0); } }\n.mobile-nav-close { align-self: flex-end; background: none; border: none; cursor: pointer; font-size: 22px; color: var(--navy); margin-bottom: 24px; }\n.mobile-nav-drawer a { display: block; font-size: 16px; font-weight: 500; color: var(--navy); text-decoration: none; padding: 14px 0; border-bottom: 1px solid var(--ash); }\n\n\/* CART DRAWER *\/\n.cart-drawer-overlay { position: fixed; inset: 0; background: rgba(15,27,45,0.45); z-index: 400; display: none; opacity: 0; transition: opacity 0.3s ease; }\n.cart-drawer-overlay.open { display: block; opacity: 1; }\n.cart-drawer { position: fixed; top: 0; right: -420px; width: 400px; max-width: 100vw; height: 100%; background: var(--white); z-index: 401; display: flex; flex-direction: column; transition: right 0.38s cubic-bezier(0.4,0,0.2,1); box-shadow: -8px 0 32px rgba(15,27,45,0.15); }\n.cart-drawer.open { right: 0; }\n.cart-drawer-head { padding: 20px 24px; border-bottom: 1px solid var(--ash); display: flex; align-items: center; justify-content: space-between; }\n.cart-drawer-head h3 { font-family: 'Playfair Display', serif; font-size: 18px; font-weight: 600; color: var(--navy); }\n.cart-close-btn { background: none; border: none; cursor: pointer; font-size: 20px; color: var(--slate); padding: 4px; }\n.free-shipping-bar { padding: 16px 24px; border-bottom: 1px solid var(--ash); }\n.free-shipping-bar p { font-size: 12.5px; color: var(--slate); margin-bottom: 8px; }\n.free-shipping-bar p strong { color: var(--navy); }\n.progress-track { height: 5px; background: var(--ash); border-radius: 99px; overflow: hidden; }\n.progress-fill { height: 100%; background: linear-gradient(90deg, var(--gold), var(--gold-light)); border-radius: 99px; transition: width 0.5s ease; }\n.cart-items-wrap { flex: 1; overflow-y: auto; padding: 16px 24px; }\n.cart-empty-msg { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 200px; gap: 12px; color: var(--text-muted); font-size: 14px; }\n.cart-item { display: flex; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--ash); }\n.cart-item img { width: 70px; height: 70px; object-fit: cover; border-radius: var(--radius-sm); flex-shrink: 0; }\n.cart-item-info { flex: 1; }\n.cart-item-title { font-size: 13px; font-weight: 500; color: var(--navy); margin-bottom: 4px; }\n.cart-item-price { font-size: 14px; font-weight: 600; color: var(--gold); }\n.cart-item-qty { display: flex; align-items: center; gap: 8px; margin-top: 8px; }\n.qty-btn { width: 26px; height: 26px; background: var(--ash); border: none; border-radius: 6px; cursor: pointer; font-size: 14px; display: flex; align-items: center; justify-content: center; }\n.qty-num { font-size: 13px; font-weight: 500; min-width: 20px; text-align: center; }\n.cart-footer { padding: 20px 24px; border-top: 1px solid var(--ash); }\n.cart-subtotal { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; font-size: 15px; }\n.cart-subtotal strong { font-family: 'Playfair Display', serif; font-size: 17px; }\n.btn-checkout { display: block; width: 100%; background: var(--navy); color: var(--cream); padding: 15px; border: none; border-radius: var(--radius); font-size: 14px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; cursor: pointer; transition: background var(--transition), transform 0.15s ease; }\n.btn-checkout:hover { background: var(--navy-light); }\n.btn-checkout:active { transform: scale(0.98); }\n.cart-policy-note { text-align: center; font-size: 11px; color: var(--text-muted); margin-top: 10px; }\n\n\/* MODAL *\/\n.modal-overlay { position: fixed; inset: 0; background: rgba(15,27,45,0.5); z-index: 500; display: none; opacity: 0; align-items: center; justify-content: center; transition: opacity 0.3s ease; }\n.modal-overlay.open { display: flex; opacity: 1; }\n.modal-box { background: var(--white); border-radius: 16px; padding: 36px 32px; width: 100%; max-width: 420px; position: relative; animation: fadeUp 0.35s ease; }\n@keyframes fadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }\n.modal-close { position: absolute; top: 14px; right: 16px; background: none; border: none; cursor: pointer; font-size: 20px; color: var(--slate); }\n.modal-box h2 { font-family: 'Playfair Display', serif; font-size: 22px; font-weight: 600; color: var(--navy); margin-bottom: 6px; }\n.modal-box p { font-size: 13px; color: var(--text-muted); margin-bottom: 22px; }\n.modal-input { width: 100%; padding: 12px 14px; border: 1.5px solid var(--ash); border-radius: var(--radius-sm); font-size: 14px; margin-bottom: 12px; font-family: 'Inter', sans-serif; transition: border-color var(--transition); outline: none; }\n.modal-input:focus { border-color: var(--gold); }\n.btn-modal-submit { width: 100%; padding: 13px; background: var(--navy); color: var(--cream); border: none; border-radius: var(--radius-sm); font-size: 14px; font-weight: 600; cursor: pointer; transition: background var(--transition); }\n.btn-modal-submit:hover { background: var(--navy-light); }\n.modal-divider { text-align: center; font-size: 12px; color: var(--text-muted); margin: 16px 0; position: relative; }\n.modal-divider::before,.modal-divider::after { content: ''; position: absolute; top: 50%; width: 40%; height: 1px; background: var(--ash); }\n.modal-divider::before { left: 0; } .modal-divider::after { right: 0; }\n\n\/* TOAST *\/\n.toast { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%) translateY(80px); background: var(--navy); color: var(--cream); padding: 13px 22px; border-radius: 99px; font-size: 13.5px; font-weight: 500; display: flex; align-items: center; gap: 9px; z-index: 600; opacity: 0; transition: transform 0.35s cubic-bezier(0.4,0,0.2,1), opacity 0.35s ease; pointer-events: none; white-space: nowrap; }\n.toast.show { transform: translateX(-50%) translateY(0); opacity: 1; }\n\n\/* REVEAL *\/\n.reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.55s ease, transform 0.55s ease; }\n.reveal.visible { opacity: 1; transform: translateY(0); }\n.reveal-delay-1 { transition-delay: 0.1s; }\n.reveal-delay-2 { transition-delay: 0.2s; }\n.reveal-delay-3 { transition-delay: 0.3s; }\n\n\/* SECTIONS SHARED *\/\n.section { padding: 80px 24px; width: 100vw !important; max-width: 100vw !important; margin-left: calc(-50vw + 50%) !important; margin-right: calc(-50vw + 50%) !important; }\n.section-inner { max-width: 1200px; margin: 0 auto; }\n.section-head { text-align: center; margin-bottom: 48px; }\n.section-eyebrow { display: inline-block; font-size: 11.5px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold); margin-bottom: 12px; }\n.section-title { font-family: 'Playfair Display', serif; font-size: clamp(26px, 3.5vw, 42px); font-weight: 700; color: var(--navy); line-height: 1.2; }\n.section-sub { font-size: 15px; color: var(--text-muted); max-width: 520px; margin: 12px auto 0; line-height: 1.7; }\n\n\/* BREADCRUMB *\/\n.breadcrumb-bar { background: var(--cream); border-bottom: 1px solid var(--ash); padding: 14px 24px; width: 100vw !important; max-width: 100vw !important; margin-left: calc(-50vw + 50%) !important; margin-right: calc(-50vw + 50%) !important; }\n.breadcrumb-inner { max-width: 1200px; margin: 0 auto; font-size: 12px; color: var(--text-muted); }\n.breadcrumb-inner a { color: var(--text-muted); text-decoration: none; transition: color var(--transition); }\n.breadcrumb-inner a:hover { color: var(--gold); }\n.breadcrumb-inner .sep { margin: 0 8px; opacity: 0.5; }\n.breadcrumb-inner .current { color: var(--navy); font-weight: 600; }\n\n\/* HERO PRODUCT *\/\n#product-hero { background: var(--cream); width: 100vw !important; max-width: 100vw !important; margin-left: calc(-50vw + 50%) !important; margin-right: calc(-50vw + 50%) !important; padding: 40px 24px 56px; }\n.product-hero-inner { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: start; }\n\n\/* Gallery *\/\n.product-gallery { position: sticky; top: 88px; }\n.gallery-main { position: relative; border-radius: 16px; overflow: hidden; background: var(--white); aspect-ratio: 1 \/ 1; box-shadow: var(--shadow-lg); }\n.gallery-main img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 0.5s ease; }\n.gallery-main img.active { opacity: 1; }\n.gallery-arrow { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(255,255,255,0.92); border: none; border-radius: 50%; width: 42px; height: 42px; cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 16px; color: var(--navy); box-shadow: var(--shadow); transition: background var(--transition), transform var(--transition); z-index: 2; }\n.gallery-arrow:hover { background: var(--white); transform: translateY(-50%) scale(1.05); }\n.gallery-arrow-prev { left: 14px; }\n.gallery-arrow-next { right: 14px; }\n.gallery-dots { position: absolute; bottom: 14px; left: 50%; transform: translateX(-50%); display: flex; gap: 6px; }\n.gallery-dot { width: 8px; height: 8px; border-radius: 50%; border: none; cursor: pointer; background: rgba(255,255,255,0.55); transition: background var(--transition), transform var(--transition); padding: 0; }\n.gallery-dot.active { background: var(--white); transform: scale(1.3); }\n.gallery-thumbs { display: flex; gap: 10px; margin-top: 14px; }\n.gallery-thumb { width: 68px; height: 68px; border-radius: 8px; overflow: hidden; cursor: pointer; border: 2px solid transparent; transition: border-color var(--transition), transform var(--transition); flex-shrink: 0; }\n.gallery-thumb img { width: 100%; height: 100%; object-fit: cover; }\n.gallery-thumb.active { border-color: var(--gold); }\n.gallery-thumb:hover { transform: scale(1.04); }\n\n\/* Product info *\/\n.product-info { padding-top: 8px; }\n.product-badge-row { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }\n.pdp-badge { display: inline-flex; align-items: center; gap: 5px; padding: 5px 12px; border-radius: 99px; font-size: 11px; font-weight: 600; letter-spacing: 0.05em; }\n.pdp-badge-sale { background: #FEE2E2; color: var(--red-sale); }\n.pdp-badge-trust { background: var(--blush); color: var(--navy); }\n.pdp-badge-hot { background: #FEF3C7; color: #92400E; }\n.product-title { font-family: 'Playfair Display', serif; font-size: clamp(24px, 3vw, 36px); font-weight: 700; color: var(--navy); line-height: 1.2; margin-bottom: 14px; }\n.product-rating-row { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; flex-wrap: wrap; }\n.rating-stars { color: var(--gold); font-size: 16px; letter-spacing: 1px; }\n.rating-score { font-size: 14px; font-weight: 600; color: var(--navy); }\n.rating-count { font-size: 13px; color: var(--text-muted); }\n.rating-divider { color: var(--ash); }\n.sold-count { font-size: 13px; color: var(--text-muted); }\n.sold-count strong { color: var(--gold); }\n.price-row { display: flex; align-items: center; gap: 12px; margin-bottom: 6px; flex-wrap: wrap; }\n.price-current { font-family: 'Inter', sans-serif; font-size: 32px; font-weight: 800; color: var(--navy); letter-spacing: -0.02em; line-height: 1; }\n.price-original { font-family: 'Inter', sans-serif; font-size: 18px; font-weight: 400; color: var(--text-muted); text-decoration: line-through; }\n.price-save-pill { background: var(--red-sale); color: var(--white); font-size: 11px; font-weight: 700; padding: 4px 10px; border-radius: 99px; letter-spacing: 0.04em; }\n.price-note { font-size: 12px; color: var(--text-muted); margin-bottom: 10px; }\n.product-short-desc { font-size: 14px; color: var(--slate); line-height: 1.7; margin-bottom: 20px; border-left: 3px solid var(--gold); padding-left: 12px; background: rgba(200,169,110,0.06); border-radius: 0 8px 8px 0; padding: 10px 14px; }\n.specs-strip { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 22px; }\n.spec-chip { display: inline-flex; align-items: center; gap: 5px; background: var(--white); border: 1.5px solid var(--ash); padding: 6px 12px; border-radius: 8px; font-size: 12px; font-weight: 500; color: var(--navy); }\n.qty-row { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; }\n.qty-label { font-size: 13px; font-weight: 600; color: var(--navy); }\n.qty-control { display: flex; align-items: center; gap: 0; border: 1.5px solid var(--ash); border-radius: 10px; overflow: hidden; }\n.qty-control button { width: 38px; height: 38px; background: var(--cream); border: none; cursor: pointer; font-size: 18px; color: var(--navy); font-weight: 300; transition: background var(--transition); }\n.qty-control button:hover { background: var(--blush); }\n.qty-control span { width: 44px; text-align: center; font-size: 15px; font-weight: 600; color: var(--navy); border-left: 1px solid var(--ash); border-right: 1px solid var(--ash); line-height: 38px; }\n.btn-atc { display: flex; align-items: center; justify-content: center; gap: 9px; width: 100%; padding: 17px; background: var(--navy); color: var(--cream); border: none; border-radius: var(--radius); font-size: 15px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; cursor: pointer; transition: background var(--transition), transform 0.15s ease, box-shadow var(--transition); box-shadow: 0 4px 16px rgba(15,27,45,0.25); margin-bottom: 12px; }\n.btn-atc:hover { background: var(--navy-light); box-shadow: 0 8px 24px rgba(15,27,45,0.32); }\n.btn-atc:active { transform: scale(0.98); }\n.btn-atc.loading { opacity: 0.7; pointer-events: none; }\n.btn-atc.added { background: #166534; }\n.btn-buy-now { display: flex; align-items: center; justify-content: center; gap: 9px; width: 100%; padding: 17px; background: transparent; color: var(--navy); border: 2px solid var(--navy); border-radius: var(--radius); font-size: 15px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; cursor: pointer; transition: background var(--transition), color var(--transition), transform 0.15s ease; margin-bottom: 12px; }\n.btn-buy-now:hover { background: var(--navy); color: var(--cream); }\n.btn-buy-now:active { transform: scale(0.98); }\n.trust-pills { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 20px; }\n.trust-pill { display: flex; align-items: center; gap: 5px; font-size: 11.5px; color: var(--slate); font-weight: 500; }\n.trust-pill svg { color: var(--gold); flex-shrink: 0; }\n.share-row { display: flex; align-items: center; gap: 14px; padding-top: 16px; border-top: 1px solid var(--ash); }\n.share-label { font-size: 12px; color: var(--text-muted); font-weight: 500; }\n.urgency-bar { background: #FEF3C7; border: 1px solid #FDE68A; border-radius: 10px; padding: 11px 14px; display: flex; align-items: center; gap: 9px; font-size: 12.5px; color: #92400E; font-weight: 500; margin-bottom: 16px; }\n.urgency-dot { width: 8px; height: 8px; background: #EF4444; border-radius: 50%; flex-shrink: 0; animation: pulse 1.6s ease-in-out infinite; }\n@keyframes pulse { 0%,100% { opacity:1; transform:scale(1); } 50% { opacity:0.5; transform:scale(0.85); } }\n\n\/* PROBLEM *\/\n#problem-section { background: var(--navy); width: 100vw !important; max-width: 100vw !important; margin-left: calc(-50vw + 50%) !important; margin-right: calc(-50vw + 50%) !important; padding: 72px 24px; }\n.problem-inner { max-width: 1100px; margin: 0 auto; }\n.problem-eyebrow { display: inline-block; font-size: 11.5px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold); margin-bottom: 14px; }\n.problem-title { font-family: 'Playfair Display', serif; font-size: clamp(26px,3.5vw,40px); font-weight: 700; color: var(--cream); line-height: 1.25; margin-bottom: 16px; }\n.problem-sub { font-size: 15.5px; color: rgba(251,248,243,0.72); line-height: 1.75; max-width: 600px; margin-bottom: 48px; }\n.problem-header { text-align: center; margin-bottom: 48px; }\n.problem-header .problem-sub { margin: 0 auto 0; }\n.problem-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; }\n.problem-card { background: rgba(255,255,255,0.06); border: 1px solid rgba(200,169,110,0.2); border-radius: 14px; padding: 24px 20px; text-align: center; transition: background var(--transition); }\n.problem-card:hover { background: rgba(255,255,255,0.10); }\n.problem-icon { font-size: 32px; margin-bottom: 12px; }\n.problem-card h4 { font-family: 'Playfair Display', serif; font-size: 16px; font-weight: 600; color: var(--cream); margin-bottom: 8px; }\n.problem-card p { font-size: 13px; color: rgba(251,248,243,0.62); line-height: 1.65; }\n\n\/* FEATURES *\/\n#features-section { background: var(--cream); }\n.features-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }\n.feature-card { background: var(--white); border-radius: 16px; padding: 28px 24px; border: 1px solid var(--ash); transition: box-shadow var(--transition), transform var(--transition); }\n.feature-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-3px); }\n.feature-icon-wrap { width: 52px; height: 52px; background: var(--blush); border-radius: 14px; display: flex; align-items: center; justify-content: center; font-size: 24px; margin-bottom: 16px; }\n.feature-card h3 { font-family: 'Playfair Display', serif; font-size: 17px; font-weight: 600; color: var(--navy); margin-bottom: 8px; }\n.feature-card p { font-size: 13.5px; color: var(--text-muted); line-height: 1.65; }\n.feature-tag { display: inline-block; margin-top: 10px; font-size: 11px; font-weight: 600; color: var(--gold); letter-spacing: 0.05em; text-transform: uppercase; }\n\n\/* COMPARISON *\/\n#comparison-section { background: #EDE8E1; }\n.comparison-table { width: 100%; border-radius: 16px; overflow: hidden; box-shadow: var(--shadow); }\n.comparison-table th,.comparison-table td { padding: 14px 18px; text-align: left; font-size: 13.5px; }\n.comparison-table thead tr { background: var(--navy); color: var(--cream); }\n.comparison-table thead th { font-weight: 600; letter-spacing: 0.04em; font-size: 13px; }\n.comparison-table thead th:first-child { font-size: 12px; opacity: 0.7; }\n.comparison-table thead th.col-viora { color: var(--gold); }\n.comparison-table tbody tr { background: var(--white); border-bottom: 1px solid var(--ash); transition: background var(--transition); }\n.comparison-table tbody tr:last-child { border-bottom: none; }\n.comparison-table tbody tr:hover { background: var(--blush); }\n.comparison-table tbody td:first-child { font-weight: 500; color: var(--navy); }\n.check-yes { color: #16A34A; font-size: 16px; font-weight: 700; }\n.check-no { color: #DC2626; font-size: 16px; }\n.check-maybe { color: #D97706; font-size: 14px; }\n.col-viora { background: rgba(200,169,110,0.08) !important; }\n\n\/* SIZE GUIDE *\/\n#size-guide { background: var(--cream); }\n.size-guide-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }\n.size-diagram { background: var(--white); border-radius: 20px; padding: 40px; border: 1px solid var(--ash); text-align: center; }\n.size-circle { width: 180px; height: 180px; border-radius: 50%; background: linear-gradient(135deg, var(--blush), #F0D4BA); margin: 0 auto 20px; display: flex; align-items: center; justify-content: center; flex-direction: column; box-shadow: 0 0 0 12px rgba(200,169,110,0.12); }\n.size-circle .size-num { font-family: 'Playfair Display', serif; font-size: 38px; font-weight: 700; color: var(--navy); }\n.size-circle .size-unit { font-size: 13px; color: var(--text-muted); font-weight: 500; }\n.size-label { font-size: 14px; color: var(--text-muted); }\n.size-pets { display: flex; flex-direction: column; gap: 12px; }\n.size-pet-row { display: flex; align-items: center; gap: 14px; background: var(--white); border-radius: 12px; padding: 14px 18px; border: 1px solid var(--ash); }\n.size-pet-icon { font-size: 24px; flex-shrink: 0; }\n.size-pet-info { flex: 1; }\n.size-pet-name { font-size: 13.5px; font-weight: 600; color: var(--navy); }\n.size-pet-detail { font-size: 12px; color: var(--text-muted); margin-top: 2px; }\n.size-fit-badge { font-size: 11px; font-weight: 600; padding: 4px 10px; border-radius: 99px; }\n.fit-perfect { background: #DCFCE7; color: #166534; }\n.fit-great { background: #DBEAFE; color: #1E40AF; }\n.fit-snug { background: #FEF3C7; color: #92400E; }\n\n\/* REVIEWS *\/\n#reviews-section { background: #EDE8E1; }\n.reviews-summary { display: flex; align-items: center; gap: 32px; flex-wrap: wrap; background: var(--white); border-radius: 16px; padding: 28px 32px; border: 1px solid var(--ash); margin-bottom: 36px; }\n.reviews-big-num { font-family: 'Playfair Display', serif; font-size: 56px; font-weight: 700; color: var(--navy); line-height: 1; }\n.reviews-big-stars { color: var(--gold); font-size: 22px; letter-spacing: 2px; margin: 6px 0; }\n.reviews-big-count { font-size: 13px; color: var(--text-muted); }\n.reviews-bars { flex: 1; min-width: 200px; display: flex; flex-direction: column; gap: 8px; }\n.review-bar-row { display: flex; align-items: center; gap: 10px; font-size: 12.5px; }\n.review-bar-label { color: var(--text-muted); min-width: 36px; text-align: right; }\n.review-bar-track { flex: 1; height: 8px; background: var(--ash); border-radius: 99px; overflow: hidden; }\n.review-bar-fill { height: 100%; background: var(--gold); border-radius: 99px; }\n.review-bar-pct { color: var(--text-muted); min-width: 32px; font-size: 11px; }\n.reviews-trust-note { font-size: 13px; color: var(--text-muted); line-height: 1.6; }\n.reviews-trust-note strong { color: var(--navy); }\n.reviews-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }\n.review-card { background: var(--white); border-radius: 14px; padding: 22px 20px; border: 1px solid var(--ash); position: relative; }\n.review-card-stars { color: var(--gold); font-size: 14px; margin-bottom: 10px; }\n.review-verified { display: inline-flex; align-items: center; gap: 4px; font-size: 10.5px; color: #166534; font-weight: 600; background: #DCFCE7; padding: 3px 8px; border-radius: 99px; margin-bottom: 10px; }\n.review-text { font-size: 13.5px; color: var(--text); line-height: 1.7; margin-bottom: 14px; font-style: italic; }\n.review-author-row { display: flex; align-items: center; gap: 10px; }\n.review-avatar { width: 38px; height: 38px; border-radius: 50%; background: var(--blush); display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; }\n.review-author-name { font-size: 13px; font-weight: 600; color: var(--navy); }\n.review-author-sub { font-size: 11.5px; color: var(--text-muted); }\n.review-product-tag { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--ash); font-size: 11px; color: var(--text-muted); }\n.review-photo-badge { position: absolute; top: 14px; right: 14px; background: var(--blush); border-radius: 6px; padding: 3px 7px; font-size: 10px; font-weight: 600; color: var(--navy); }\n\n\/* CARE *\/\n#care-section { background: var(--cream); }\n.care-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; }\n.care-card { background: var(--white); border-radius: 14px; padding: 24px 18px; text-align: center; border: 1px solid var(--ash); transition: box-shadow var(--transition); }\n.care-card:hover { box-shadow: var(--shadow); }\n.care-icon { font-size: 30px; margin-bottom: 12px; }\n.care-card h4 { font-size: 13.5px; font-weight: 600; color: var(--navy); margin-bottom: 6px; }\n.care-card p { font-size: 12px; color: var(--text-muted); line-height: 1.6; }\n\n\/* FAQ *\/\n#faq-section { background: #EDE8E1; }\n.faq-list { max-width: 760px; margin: 0 auto; }\n.faq-item { border-bottom: 1px solid var(--ash); }\n.faq-q { width: 100%; background: none; border: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; padding: 18px 0; font-size: 14.5px; font-weight: 500; color: var(--navy); text-align: left; transition: color var(--transition); }\n.faq-q:hover { color: var(--gold); }\n.faq-icon { font-size: 20px; font-weight: 300; color: var(--gold); transition: transform var(--transition); flex-shrink: 0; margin-left: 16px; }\n.faq-item.open .faq-icon { transform: rotate(45deg); }\n.faq-a { max-height: 0; overflow: hidden; transition: max-height 0.38s cubic-bezier(0.4,0,0.2,1); }\n.faq-item.open .faq-a { max-height: 300px; }\n.faq-a-inner { padding: 0 0 18px; font-size: 14px; color: var(--text-muted); line-height: 1.75; }\n\n\/* CROSS-SELLS *\/\n#cross-sell-section { background: var(--cream); }\n.crossell-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }\n.crossell-card { background: var(--white); border-radius: 16px; overflow: hidden; border: 1px solid var(--ash); transition: box-shadow var(--transition), transform var(--transition); }\n.crossell-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-4px); }\n.crossell-img { height: 200px; overflow: hidden; }\n.crossell-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }\n.crossell-card:hover .crossell-img img { transform: scale(1.04); }\n.crossell-body { padding: 18px; }\n.crossell-rating { display: flex; align-items: center; gap: 6px; margin-bottom: 6px; }\n.crossell-rating .stars { color: var(--gold); font-size: 12px; }\n.crossell-rating span { font-size: 11.5px; color: var(--text-muted); }\n.crossell-title { font-size: 14.5px; font-weight: 600; color: var(--navy); margin-bottom: 10px; line-height: 1.4; }\n.crossell-price { display: flex; align-items: baseline; gap: 8px; margin-bottom: 14px; }\n.crossell-price .price-current { font-size: 18px; font-weight: 700; color: var(--navy); font-family: 'Playfair Display', serif; }\n.crossell-price .price-original { font-size: 13px; color: var(--text-muted); text-decoration: line-through; }\n.btn-crossell-add { width: 100%; padding: 11px; background: var(--navy); color: var(--cream); border: none; border-radius: var(--radius-sm); font-size: 13px; font-weight: 600; cursor: pointer; transition: background var(--transition); }\n.btn-crossell-add:hover { background: var(--navy-light); }\n.btn-crossell-add.loading { opacity: 0.7; }\n.btn-crossell-add.added { background: #166534; }\n\n\/* GUARANTEE *\/\n#guarantee-section { background: var(--navy); width: 100vw !important; max-width: 100vw !important; margin-left: calc(-50vw + 50%) !important; margin-right: calc(-50vw + 50%) !important; padding: 72px 24px; }\n.guarantee-inner { max-width: 1100px; margin: 0 auto; text-align: center; }\n.guarantee-badge { width: 80px; height: 80px; margin: 0 auto 24px; background: rgba(200,169,110,0.15); border-radius: 50%; border: 2px solid var(--gold); display: flex; align-items: center; justify-content: center; font-size: 36px; }\n.guarantee-title { font-family: 'Playfair Display', serif; font-size: clamp(26px,3.5vw,40px); font-weight: 700; color: var(--cream); margin-bottom: 14px; }\n.guarantee-sub { font-size: 15px; color: rgba(251,248,243,0.72); max-width: 560px; margin: 0 auto 40px; line-height: 1.75; }\n.guarantee-perks { display: flex; justify-content: center; gap: 32px; flex-wrap: wrap; margin-bottom: 44px; }\n.guarantee-perk { display: flex; align-items: center; gap: 8px; color: var(--cream); font-size: 13.5px; font-weight: 500; }\n.guarantee-perk-icon { color: var(--gold); font-size: 18px; }\n.btn-final-atc { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 18px 48px; background: var(--gold); color: var(--navy); border: none; border-radius: var(--radius); font-size: 15px; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; cursor: pointer; transition: background var(--transition), transform 0.15s ease, box-shadow var(--transition); box-shadow: 0 6px 24px rgba(200,169,110,0.4); }\n.btn-final-atc:hover { background: var(--gold-light); box-shadow: 0 10px 32px rgba(200,169,110,0.5); }\n.btn-final-atc:active { transform: scale(0.97); }\n.btn-final-atc.loading { opacity: 0.7; pointer-events: none; }\n.btn-final-atc.added { background: #4ADE80; color: var(--navy); }\n.final-atc-note { margin-top: 14px; font-size: 12px; color: rgba(251,248,243,0.55); }\n\n\/* STICKY MOBILE ATC *\/\n#sticky-mobile-atc { display: none; position: fixed; bottom: 0; left: 0; right: 0; z-index: 350; background: var(--cream); border-top: 1px solid var(--ash); padding: 12px 16px; gap: 10px; align-items: center; box-shadow: 0 -4px 20px rgba(15,27,45,0.12); }\n.sticky-price-col { flex: 1; }\n.sticky-price-col .price-current { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; color: var(--navy); }\n.sticky-price-col .price-original { font-size: 12px; color: var(--text-muted); text-decoration: line-through; }\n.btn-sticky-atc { flex: 2; padding: 13px; background: var(--navy); color: var(--cream); border: none; border-radius: var(--radius); font-size: 13.5px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; cursor: pointer; transition: background var(--transition); }\n.btn-sticky-atc:hover { background: var(--navy-light); }\n.btn-sticky-atc.loading { opacity: 0.7; }\n.btn-sticky-atc.added { background: #166534; }\n\n\/* NEWSLETTER *\/\n#newsletter { background: var(--navy); width: 100vw !important; max-width: 100vw !important; margin-left: calc(-50vw + 50%) !important; margin-right: calc(-50vw + 50%) !important; padding: 64px 24px; }\n.newsletter-inner { max-width: 600px; margin: 0 auto; text-align: center; }\n#newsletter h2 { font-family: 'Playfair Display', serif; font-size: clamp(24px,3vw,34px); font-weight: 700; color: var(--cream); margin-bottom: 10px; }\n#newsletter p { font-size: 15px; color: rgba(251,248,243,0.72); margin-bottom: 28px; line-height: 1.65; }\n.newsletter-form { display: flex; background: var(--white); border-radius: var(--radius); overflow: hidden; }\n.newsletter-input { flex: 1; padding: 15px 18px; border: none; outline: none; font-size: 14px; font-family: 'Inter', sans-serif; background: transparent; color: var(--text); }\n.newsletter-submit { padding: 15px 24px; background: var(--gold); color: var(--navy); border: none; font-size: 13.5px; font-weight: 700; cursor: pointer; transition: background var(--transition); white-space: nowrap; }\n.newsletter-submit:hover { background: var(--gold-light); }\n.newsletter-privacy { margin-top: 12px; font-size: 12px; color: rgba(251,248,243,0.45); }\n\n\/* TRUST BAR *\/\n#trust-bar { background: var(--white); border-bottom: 1px solid var(--ash); width: 100vw !important; max-width: 100vw !important; margin-left: calc(-50vw + 50%) !important; margin-right: calc(-50vw + 50%) !important; }\n.trust-inner { display: grid; grid-template-columns: repeat(4,1fr); }\n.trust-item { display: flex; align-items: center; gap: 14px; padding: 22px 28px; border-right: 1px solid var(--ash); transition: background var(--transition); }\n.trust-item:last-child { border-right: none; }\n.trust-item:hover { background: var(--blush); }\n.trust-icon { width: 42px; height: 42px; background: var(--blush); border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 20px; flex-shrink: 0; transition: background var(--transition); }\n.trust-item:hover .trust-icon { background: var(--gold); }\n.trust-text strong { display: block; font-size: 13px; font-weight: 600; color: var(--navy); margin-bottom: 2px; }\n.trust-text span { font-size: 11.5px; color: var(--text-muted); }\n\n\/* FOOTER *\/\nfooter { background: var(--navy); color: var(--cream); width: 100vw !important; max-width: 100vw !important; margin-left: calc(-50vw + 50%) !important; margin-right: calc(-50vw + 50%) !important; padding: 60px 24px 32px; }\n.footer-inner { max-width: 1280px; margin: 0 auto; }\n.footer-top { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px; margin-bottom: 48px; }\n.footer-brand img { height: 44px; margin-bottom: 16px; }\n.footer-brand p { font-size: 13.5px; color: rgba(251,248,243,0.6); line-height: 1.7; max-width: 260px; }\n.footer-socials { display: flex; gap: 10px; margin-top: 18px; }\n.social-link { width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,0.08); display: flex; align-items: center; justify-content: center; font-size: 15px; transition: background var(--transition); }\n.social-link:hover { background: var(--gold); }\n.footer-col h4 { font-size: 12px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold); margin-bottom: 16px; }\n.footer-col a { display: block; font-size: 13.5px; color: rgba(251,248,243,0.6); text-decoration: none; margin-bottom: 10px; transition: color var(--transition); }\n.footer-col a:hover { color: var(--cream); }\n.footer-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,0.1); }\n.footer-copy { font-size: 12.5px; color: rgba(251,248,243,0.4); }\n.payment-icons { display: flex; gap: 6px; flex-wrap: wrap; }\n.payment-icon { background: rgba(255,255,255,0.1); border-radius: 5px; padding: 5px 9px; font-size: 10.5px; font-weight: 600; color: rgba(251,248,243,0.6); }\n\n\/* RESPONSIVE *\/\n@media (max-width: 1024px) {\n  .product-hero-inner { grid-template-columns: 1fr; gap: 40px; }\n  .product-gallery { position: static; }\n  .problem-grid { grid-template-columns: repeat(2,1fr); }\n  .features-grid { grid-template-columns: repeat(2,1fr); }\n  .reviews-grid { grid-template-columns: repeat(2,1fr); }\n  .care-grid { grid-template-columns: repeat(2,1fr); }\n  .footer-top { grid-template-columns: repeat(2,1fr); }\n  .trust-inner { grid-template-columns: repeat(2,1fr); }\n  .trust-item:nth-child(2) { border-right: none; }\n  .trust-item:nth-child(3),.trust-item:nth-child(4) { border-top: 1px solid var(--ash); }\n  .trust-item:nth-child(4) { border-right: none; }\n}\n@media (max-width: 768px) {\n  .header-nav { display: none; }\n  .nav-hamburger { display: flex; }\n  #sticky-mobile-atc { display: flex; }\n  .product-hero-inner { gap: 28px; }\n  .gallery-thumbs { gap: 8px; }\n  .gallery-thumb { width: 58px; height: 58px; }\n  .problem-grid { grid-template-columns: 1fr; gap: 14px; }\n  .features-grid { grid-template-columns: 1fr; }\n  .size-guide-grid { grid-template-columns: 1fr; gap: 28px; }\n  .reviews-summary { flex-direction: column; gap: 20px; }\n  .reviews-grid { grid-template-columns: 1fr; }\n  .care-grid { grid-template-columns: repeat(2,1fr); }\n  .crossell-grid { grid-template-columns: 1fr; gap: 16px; }\n  .guarantee-perks { gap: 18px; flex-direction: column; align-items: center; }\n  .trust-inner { grid-template-columns: 1fr; }\n  .trust-item { border-right: none !important; border-top: 1px solid var(--ash); }\n  .trust-item:first-child { border-top: none; }\n  .footer-top { grid-template-columns: 1fr; gap: 32px; }\n  .footer-bottom { flex-direction: column; }\n  .section { padding: 56px 16px; }\n  #product-hero { padding: 28px 16px 44px; }\n  .newsletter-form { flex-direction: column; border-radius: 12px; }\n  .newsletter-submit { padding: 14px; border-radius: 0 0 10px 10px; }\n  .cart-drawer { width: 100%; }\n  .comparison-table { font-size: 12px; }\n  .comparison-table th,.comparison-table td { padding: 11px 10px; }\n}\n@media (max-width: 480px) {\n  .care-grid { grid-template-columns: 1fr; }\n  .gallery-thumb { width: 52px; height: 52px; }\n  .price-current { font-size: 28px; }\n}\n@media (prefers-reduced-motion: reduce) {\n  *,*::before,*::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }\n  .ann-track { animation: none; }\n}\n\u003c\/style\u003e\n\n\n\n\u003c!-- ANNOUNCEMENT BAR --\u003e\n\u003cdiv id=\"announcement-bar\" aria-label=\"Store announcements\"\u003e\n  \u003cdiv class=\"ann-track\"\u003e\n    \u003cspan class=\"ann-item\"\u003e\u003cspan class=\"dot\"\u003e✦\u003c\/span\u003e Free worldwide shipping on orders over $100\u003c\/span\u003e\n    \u003cspan class=\"ann-item\"\u003e\u003cspan class=\"dot\"\u003e✦\u003c\/span\u003e Trusted by 12,000+ pet parents\u003c\/span\u003e\n    \u003cspan class=\"ann-item\"\u003e\u003cspan class=\"dot\"\u003e✦\u003c\/span\u003e Easy 30-day returns — no questions asked\u003c\/span\u003e\n    \u003cspan class=\"ann-item\"\u003e\u003cspan class=\"dot\"\u003e✦\u003c\/span\u003e All products vet-approved \u0026amp; pet-safe\u003c\/span\u003e\n    \u003cspan class=\"ann-item\"\u003e\u003cspan class=\"dot\"\u003e✦\u003c\/span\u003e Free worldwide shipping on orders over $100\u003c\/span\u003e\n    \u003cspan class=\"ann-item\"\u003e\u003cspan class=\"dot\"\u003e✦\u003c\/span\u003e Trusted by 12,000+ pet parents\u003c\/span\u003e\n    \u003cspan class=\"ann-item\"\u003e\u003cspan class=\"dot\"\u003e✦\u003c\/span\u003e Easy 30-day returns — no questions asked\u003c\/span\u003e\n    \u003cspan class=\"ann-item\"\u003e\u003cspan class=\"dot\"\u003e✦\u003c\/span\u003e All products vet-approved \u0026amp; pet-safe\u003c\/span\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- HEADER --\u003e\n\u003cheader id=\"site-header\" role=\"banner\"\u003e\n  \u003cdiv class=\"header-inner\"\u003e\n    \u003ca href=\"\/\" class=\"header-logo\" aria-label=\"VIORA Home\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0810\/5092\/7356\/files\/WhatsApp_Image_2026-06-25_at_1.14.05_PM.jpg?v=1782382466\" alt=\"VIORA\" onerror=\"this.style.display='none';this.nextElementSibling.style.display='block'\"\u003e\n      \u003cspan style=\"display:none;font-family:'Playfair Display',serif;font-size:22px;font-weight:700;color:var(--navy);letter-spacing:0.08em;\"\u003eVIORA\u003c\/span\u003e\n    \u003c\/a\u003e\n    \u003cnav class=\"header-nav\" aria-label=\"Main navigation\"\u003e\n      \u003ca href=\"https:\/\/store-06210927qdkgo.myshopify.com\/pages\/all-products\"\u003eShop All\u003c\/a\u003e\n      \u003ca href=\"\/#bestsellers\"\u003eBest Sellers\u003c\/a\u003e\n      \u003ca href=\"\/#why-viora\"\u003eAbout\u003c\/a\u003e\n      \u003ca href=\"\/#faq\"\u003eFAQ\u003c\/a\u003e\n    \u003c\/nav\u003e\n    \u003cdiv class=\"header-actions\"\u003e\n      \u003cbutton class=\"btn-icon\" aria-label=\"Sign in\" onclick=\"openModal()\"\u003e\n        \u003csvg width=\"20\" height=\"20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2M12 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003c\/button\u003e\n      \u003cdiv class=\"cart-btn-wrap\"\u003e\n        \u003cbutton class=\"btn-icon\" aria-label=\"Open cart\" onclick=\"openCart()\"\u003e\n          \u003csvg width=\"20\" height=\"20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M6 2L3 6v14a2 2 0 002 2h14a2 2 0 002-2V6l-3-4zM3 6h18M16 10a4 4 0 01-8 0\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n        \u003c\/button\u003e\n        \u003cspan class=\"cart-count\" id=\"cartCount\" aria-live=\"polite\"\u003e0\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cbutton class=\"btn-icon nav-hamburger\" aria-label=\"Open menu\" onclick=\"openMobileNav()\"\u003e\n        \u003csvg width=\"22\" height=\"22\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" viewbox=\"0 0 24 24\"\u003e\u003cline x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\"\u003e\u003c\/line\u003e\u003cline x1=\"3\" y1=\"12\" x2=\"21\" y2=\"12\"\u003e\u003c\/line\u003e\u003cline x1=\"3\" y1=\"18\" x2=\"21\" y2=\"18\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\n      \u003c\/button\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/header\u003e\n\n\u003c!-- Mobile Nav --\u003e\n\u003cdiv class=\"mobile-nav\" id=\"mobileNav\" aria-hidden=\"true\"\u003e\n  \u003cdiv class=\"mobile-nav-backdrop\" onclick=\"closeMobileNav()\"\u003e\u003c\/div\u003e\n  \u003cnav class=\"mobile-nav-drawer\" aria-label=\"Mobile navigation\"\u003e\n    \u003cbutton class=\"mobile-nav-close\" onclick=\"closeMobileNav()\" aria-label=\"Close menu\"\u003e✕\u003c\/button\u003e\n    \u003ca href=\"https:\/\/store-06210927qdkgo.myshopify.com\/pages\/all-products\" onclick=\"closeMobileNav()\"\u003eShop All\u003c\/a\u003e\n    \u003ca href=\"\/#bestsellers\" onclick=\"closeMobileNav()\"\u003eBest Sellers\u003c\/a\u003e\n    \u003ca href=\"\/#why-viora\" onclick=\"closeMobileNav()\"\u003eAbout\u003c\/a\u003e\n    \u003ca href=\"\/#faq\" onclick=\"closeMobileNav()\"\u003eFAQ\u003c\/a\u003e\n  \u003c\/nav\u003e\n\u003c\/div\u003e\n\n\u003c!-- CART DRAWER --\u003e\n\u003cdiv class=\"cart-drawer-overlay\" id=\"cartOverlay\" onclick=\"closeCart()\"\u003e\u003c\/div\u003e\n\u003caside class=\"cart-drawer\" id=\"cartDrawer\" aria-label=\"Shopping cart\" role=\"dialog\"\u003e\n  \u003cdiv class=\"cart-drawer-head\"\u003e\n    \u003ch3\u003eYour Cart\u003c\/h3\u003e\n    \u003cbutton class=\"cart-close-btn\" onclick=\"closeCart()\" aria-label=\"Close cart\"\u003e✕\u003c\/button\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"free-shipping-bar\"\u003e\n    \u003cp id=\"shippingMsg\"\u003eAdd \u003cstrong id=\"shippingLeft\"\u003e$100.00\u003c\/strong\u003e more for free shipping 🚚\u003c\/p\u003e\n    \u003cdiv class=\"progress-track\"\u003e\u003cdiv class=\"progress-fill\" id=\"shippingProgress\" style=\"width:0%\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"cart-items-wrap\" id=\"cartItemsWrap\"\u003e\n    \u003cdiv class=\"cart-empty-msg\" id=\"cartEmpty\"\u003e\n      \u003cspan style=\"font-size:40px\"\u003e🛒\u003c\/span\u003e\n      \u003cspan\u003eYour cart is empty\u003c\/span\u003e\n      \u003ca href=\"https:\/\/store-06210927qdkgo.myshopify.com\/pages\/all-products\" onclick=\"closeCart()\" style=\"color:var(--gold);font-size:13px;font-weight:600;text-decoration:none;\"\u003eStart Shopping →\u003c\/a\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"cart-footer\" id=\"cartFooter\" style=\"display:none\"\u003e\n    \u003cdiv class=\"cart-subtotal\"\u003e\n\u003cspan\u003eSubtotal\u003c\/span\u003e\u003cstrong id=\"cartSubtotal\"\u003e$0.00\u003c\/strong\u003e\n\u003c\/div\u003e\n    \u003cbutton class=\"btn-checkout\" id=\"checkoutBtn\" onclick=\"goToCheckout()\"\u003eProceed to Checkout\u003c\/button\u003e\n    \u003cp class=\"cart-policy-note\"\u003eTaxes calculated at checkout · Free shipping over $100\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/aside\u003e\n\n\u003c!-- SIGN-IN MODAL --\u003e\n\u003cdiv class=\"modal-overlay\" id=\"signInModal\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Sign in\"\u003e\n  \u003cdiv class=\"modal-box\"\u003e\n    \u003cbutton class=\"modal-close\" onclick=\"closeModal()\" aria-label=\"Close\"\u003e✕\u003c\/button\u003e\n    \u003ch2\u003eWelcome back\u003c\/h2\u003e\n    \u003cp\u003eSign in to your VIORA account to track orders and manage rewards.\u003c\/p\u003e\n    \u003cinput type=\"email\" class=\"modal-input\" placeholder=\"Email address\" autocomplete=\"email\"\u003e\n    \u003cinput type=\"password\" class=\"modal-input\" placeholder=\"Password\" autocomplete=\"current-password\"\u003e\n    \u003cbutton class=\"btn-modal-submit\"\u003eSign In\u003c\/button\u003e\n    \u003cdiv class=\"modal-divider\"\u003eor\u003c\/div\u003e\n    \u003cbutton class=\"btn-modal-submit\" style=\"background:var(--blush);color:var(--navy);\"\u003eCreate an Account\u003c\/button\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TOAST --\u003e\n\u003cdiv class=\"toast\" id=\"toast\" role=\"alert\" aria-live=\"assertive\"\u003e\n  \u003cspan class=\"toast-icon\" id=\"toastIcon\"\u003e✅\u003c\/span\u003e\n  \u003cspan id=\"toastMsg\"\u003eAdded to cart!\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003c!-- STICKY MOBILE ATC --\u003e\n\u003cdiv id=\"sticky-mobile-atc\" role=\"complementary\" aria-label=\"Quick add to cart\"\u003e\n  \u003cdiv class=\"sticky-price-col\"\u003e\n    \u003cdiv class=\"price-current\" data-usd=\"21.99\"\u003e$21.99\u003c\/div\u003e\n    \u003cdiv class=\"price-original\" data-usd=\"32.87\"\u003e$32.87\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cbutton class=\"btn-sticky-atc\" id=\"stickyAtcBtn\" onclick=\"addToCart(this)\"\u003eAdd to Cart\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- BREADCRUMB --\u003e\n\u003cdiv class=\"breadcrumb-bar\"\u003e\n  \u003cdiv class=\"breadcrumb-inner\"\u003e\n    \u003ca href=\"\/\"\u003eHome\u003c\/a\u003e\u003cspan class=\"sep\"\u003e\/\u003c\/span\u003e\n    \u003ca href=\"https:\/\/store-06210927qdkgo.myshopify.com\/pages\/all-products\"\u003eAll Products\u003c\/a\u003e\u003cspan class=\"sep\"\u003e\/\u003c\/span\u003e\n    \u003cspan class=\"current\"\u003eWarm Cozy \u0026amp; Soft Round Pet Bed\u003c\/span\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ============================================================\n     1. HERO — PRODUCT\n     ============================================================ --\u003e\n\u003csection id=\"product-hero\" aria-label=\"Product details\"\u003e\n  \u003cdiv class=\"product-hero-inner\"\u003e\n\n    \u003c!-- Gallery --\u003e\n    \u003cdiv class=\"product-gallery reveal\"\u003e\n      \u003cdiv class=\"gallery-main\" id=\"galleryMain\" aria-label=\"Product images\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0810\/5092\/7356\/files\/758802ad-4812-4c96-a315-3fda5de6e065.jpg?v=1782304143\" alt=\"Warm Cozy Round Pet Bed — main view\" class=\"active\" loading=\"eager\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0810\/5092\/7356\/files\/a288dd6e-6fe1-4658-9bfb-1ddc97f07e13.jpg?v=1782304143\" alt=\"Pet Bed — inside view\" loading=\"lazy\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0810\/5092\/7356\/files\/0d016147-8b82-41c5-aeb2-afd0cbbc0f52.jpg?v=1782304143\" alt=\"Pet Bed — detail shot\" loading=\"lazy\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0810\/5092\/7356\/files\/b24ca118-de22-493f-be52-dbb0cfdba555.jpg?v=1782304143\" alt=\"Pet Bed — lifestyle\" loading=\"lazy\"\u003e\n        \u003cbutton class=\"gallery-arrow gallery-arrow-prev\" onclick=\"galleryPrev()\" aria-label=\"Previous image\"\u003e←\u003c\/button\u003e\n        \u003cbutton class=\"gallery-arrow gallery-arrow-next\" onclick=\"galleryNext()\" aria-label=\"Next image\"\u003e→\u003c\/button\u003e\n        \u003cdiv class=\"gallery-dots\"\u003e\n          \u003cbutton class=\"gallery-dot active\" onclick=\"galleryGoto(0)\" aria-label=\"View image 1\"\u003e\u003c\/button\u003e\n          \u003cbutton class=\"gallery-dot\" onclick=\"galleryGoto(1)\" aria-label=\"View image 2\"\u003e\u003c\/button\u003e\n          \u003cbutton class=\"gallery-dot\" onclick=\"galleryGoto(2)\" aria-label=\"View image 3\"\u003e\u003c\/button\u003e\n          \u003cbutton class=\"gallery-dot\" onclick=\"galleryGoto(3)\" aria-label=\"View image 4\"\u003e\u003c\/button\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"gallery-thumbs\" role=\"list\" aria-label=\"Thumbnail navigation\"\u003e\n        \u003cdiv class=\"gallery-thumb active\" onclick=\"galleryGoto(0)\" role=\"listitem\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0810\/5092\/7356\/files\/758802ad-4812-4c96-a315-3fda5de6e065.jpg?v=1782304143\" alt=\"\" loading=\"lazy\"\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"gallery-thumb\" onclick=\"galleryGoto(1)\" role=\"listitem\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0810\/5092\/7356\/files\/a288dd6e-6fe1-4658-9bfb-1ddc97f07e13.jpg?v=1782304143\" alt=\"\" loading=\"lazy\"\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"gallery-thumb\" onclick=\"galleryGoto(2)\" role=\"listitem\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0810\/5092\/7356\/files\/0d016147-8b82-41c5-aeb2-afd0cbbc0f52.jpg?v=1782304143\" alt=\"\" loading=\"lazy\"\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"gallery-thumb\" onclick=\"galleryGoto(3)\" role=\"listitem\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0810\/5092\/7356\/files\/b24ca118-de22-493f-be52-dbb0cfdba555.jpg?v=1782304143\" alt=\"\" loading=\"lazy\"\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003c!-- Info Panel --\u003e\n    \u003cdiv class=\"product-info reveal reveal-delay-1\"\u003e\n      \u003cdiv class=\"product-badge-row\"\u003e\n        \u003cspan class=\"pdp-badge pdp-badge-sale\"\u003e🔥 33% OFF\u003c\/span\u003e\n        \u003cspan class=\"pdp-badge pdp-badge-hot\"\u003e⚡ 12,000+ Sold\u003c\/span\u003e\n        \u003cspan class=\"pdp-badge pdp-badge-trust\"\u003e✓ Vet Approved\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003ch1 class=\"product-title\"\u003eWarm Cozy \u0026amp; Soft Round Pet Bed\u003c\/h1\u003e\n\n      \u003cdiv class=\"product-rating-row\"\u003e\n        \u003cspan class=\"rating-stars\"\u003e★★★★★\u003c\/span\u003e\n        \u003cspan class=\"rating-score\"\u003e4.9\u003c\/span\u003e\n        \u003cspan class=\"rating-count\"\u003e(187 reviews)\u003c\/span\u003e\n        \u003cspan class=\"rating-divider\"\u003e·\u003c\/span\u003e\n        \u003cspan class=\"sold-count\"\u003e\u003cstrong\u003e98%\u003c\/strong\u003e would buy again\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"price-row\"\u003e\n        \u003cspan class=\"price-current\" data-usd=\"21.99\"\u003e$21.99\u003c\/span\u003e\n        \u003cspan class=\"price-original\" data-usd=\"32.87\"\u003e$32.87\u003c\/span\u003e\n        \u003cspan class=\"price-save-pill\"\u003eSave $10.88\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cp class=\"price-note\"\u003eFree shipping on orders over $100 · Taxes calculated at checkout\u003c\/p\u003e\n      \u003cp class=\"product-short-desc\"\u003eA premium round pet bed with ultra-plush PP cotton filling, raised anti-anxiety rim, and machine-washable design. Keeps your pet warm, supported, and deeply rested — night after night.\u003c\/p\u003e\n\n      \u003cdiv class=\"specs-strip\"\u003e\n        \u003cspan class=\"spec-chip\"\u003e🎨 Gray\u003c\/span\u003e\n        \u003cspan class=\"spec-chip\"\u003e📏 40cm\u003c\/span\u003e\n        \u003cspan class=\"spec-chip\"\u003e🧸 Plush\u003c\/span\u003e\n        \u003cspan class=\"spec-chip\"\u003e🐾 All Pets\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"urgency-bar\"\u003e\n        \u003cdiv class=\"urgency-dot\"\u003e\u003c\/div\u003e\n        \u003cspan\u003e\u003cstrong\u003e23 people\u003c\/strong\u003e are viewing this right now — only a few left at this price\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"qty-row\"\u003e\n        \u003cspan class=\"qty-label\"\u003eQuantity\u003c\/span\u003e\n        \u003cdiv class=\"qty-control\" aria-label=\"Quantity selector\"\u003e\n          \u003cbutton onclick=\"changeQty(-1)\" aria-label=\"Decrease quantity\"\u003e−\u003c\/button\u003e\n          \u003cspan id=\"qtyDisplay\"\u003e1\u003c\/span\u003e\n          \u003cbutton onclick=\"changeQty(1)\" aria-label=\"Increase quantity\"\u003e+\u003c\/button\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cbutton class=\"btn-atc\" id=\"mainAtcBtn\" onclick=\"addToCart(this)\" aria-label=\"Add to cart\"\u003e\n        \u003csvg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M6 2L3 6v14a2 2 0 002 2h14a2 2 0 002-2V6l-3-4zM3 6h18M16 10a4 4 0 01-8 0\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n        Add to Cart — $21.99\n      \u003c\/button\u003e\n\n      \u003cbutton class=\"btn-buy-now\" id=\"mainBuyNowBtn\" onclick=\"buyNow()\" aria-label=\"Buy now\"\u003e\n        Buy Now\n      \u003c\/button\u003e\n\n      \u003cdiv class=\"trust-pills\"\u003e\n        \u003cspan class=\"trust-pill\"\u003e\n          \u003csvg width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n          30-Day Returns\n        \u003c\/span\u003e\n        \u003cspan class=\"trust-pill\"\u003e\n          \u003csvg width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n          Safe, Tested Materials\n        \u003c\/span\u003e\n        \u003cspan class=\"trust-pill\"\u003e\n          \u003csvg width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M5 13l4 4L19 7\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n          Machine Washable\n        \u003c\/span\u003e\n        \u003cspan class=\"trust-pill\"\u003e\n          \u003csvg width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M1 3h4l2.68 13.39a2 2 0 001.97 1.61h9.72a2 2 0 001.97-1.61L23 6H6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n          Free Shipping $100+\n        \u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"share-row\"\u003e\n        \u003cspan class=\"share-label\"\u003eShare:\u003c\/span\u003e\n        \u003ca href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https:\/\/store-06210927qdkgo.myshopify.com\/products\/a-warm-cozy-and-soft-round-pet-bed\" target=\"_blank\" rel=\"noopener\" style=\"text-decoration:none;font-size:13px;color:var(--navy);font-weight:500;\"\u003e📘 Facebook\u003c\/a\u003e\n        \u003ca href=\"https:\/\/pinterest.com\/pin\/create\/button\/?url=https:\/\/store-06210927qdkgo.myshopify.com\/products\/a-warm-cozy-and-soft-round-pet-bed\" target=\"_blank\" rel=\"noopener\" style=\"text-decoration:none;font-size:13px;color:var(--navy);font-weight:500;\"\u003e📌 Pinterest\u003c\/a\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     2. PROBLEM\n     ============================================================ --\u003e\n\u003csection id=\"problem-section\" aria-label=\"Why pets need a proper bed\"\u003e\n  \u003cdiv class=\"problem-inner\"\u003e\n    \u003cdiv class=\"problem-header reveal\"\u003e\n      \u003cp class=\"problem-eyebrow\"\u003eThe Real Problem\u003c\/p\u003e\n      \u003ch2 class=\"problem-title\"\u003eYour pet deserves more than\u003cbr\u003ea cold floor and a flat blanket.\u003c\/h2\u003e\n      \u003cp class=\"problem-sub\"\u003ePets sleeping on inadequate surfaces face more than just discomfort. Over time, poor sleep leads to joint stress, anxiety, and disrupted rest — for both of you.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"problem-grid\"\u003e\n      \u003cdiv class=\"problem-card reveal\"\u003e\n        \u003cdiv class=\"problem-icon\"\u003e🥶\u003c\/div\u003e\n        \u003ch4\u003eCold Hard Floors\u003c\/h4\u003e\n        \u003cp\u003eDirect contact with cold surfaces pulls warmth from your pet's joints overnight, worsening stiffness in older animals.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"problem-card reveal reveal-delay-1\"\u003e\n        \u003cdiv class=\"problem-icon\"\u003e😰\u003c\/div\u003e\n        \u003ch4\u003eSleep Anxiety\u003c\/h4\u003e\n        \u003cp\u003eOpen spaces trigger low-level alertness in pets. Without a defined, enclosed sleeping spot, they never fully relax.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"problem-card reveal reveal-delay-2\"\u003e\n        \u003cdiv class=\"problem-icon\"\u003e🦴\u003c\/div\u003e\n        \u003ch4\u003eJoint \u0026amp; Muscle Strain\u003c\/h4\u003e\n        \u003cp\u003eFlat, unsupportive surfaces create pressure points that disturb sleep and contribute to early joint discomfort.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"problem-card reveal reveal-delay-3\"\u003e\n        \u003cdiv class=\"problem-icon\"\u003e🧹\u003c\/div\u003e\n        \u003ch4\u003eUnhygienic Bedding\u003c\/h4\u003e\n        \u003cp\u003eOld blankets and non-washable beds harbor bacteria, allergens, and odors — and most pets sleep on them for hours daily.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     3. FEATURES\n     ============================================================ --\u003e\n\u003csection class=\"section\" id=\"features-section\" aria-label=\"Product features\"\u003e\n  \u003cdiv class=\"section-inner\"\u003e\n    \u003cdiv class=\"section-head reveal\"\u003e\n      \u003cp class=\"section-eyebrow\"\u003eThe Solution\u003c\/p\u003e\n      \u003ch2 class=\"section-title\"\u003eEngineered for comfort.\u003cbr\u003eBuilt for daily life.\u003c\/h2\u003e\n      \u003cp class=\"section-sub\"\u003eEvery detail of this bed was chosen to give your pet restorative sleep — and to make your life easier in the process.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"features-grid\"\u003e\n      \u003cdiv class=\"feature-card reveal\"\u003e\n        \u003cdiv class=\"feature-icon-wrap\"\u003e🧸\u003c\/div\u003e\n        \u003ch3\u003eUltra-Plush Filling\u003c\/h3\u003e\n        \u003cp\u003eDense PP cotton fill cradles your pet's body, distributing weight evenly and eliminating pressure points. Stays fluffy wash after wash.\u003c\/p\u003e\n        \u003cspan class=\"feature-tag\"\u003e✓ Orthopedic support\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"feature-card reveal reveal-delay-1\"\u003e\n        \u003cdiv class=\"feature-icon-wrap\"\u003e🔄\u003c\/div\u003e\n        \u003ch3\u003eMachine Washable\u003c\/h3\u003e\n        \u003cp\u003eThe entire bed — cover and insert — goes straight into your washing machine. Cold water, gentle cycle. Clean in under an hour, no special care needed.\u003c\/p\u003e\n        \u003cspan class=\"feature-tag\"\u003e✓ Hygienic \u0026amp; hypoallergenic\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"feature-card reveal reveal-delay-2\"\u003e\n        \u003cdiv class=\"feature-icon-wrap\"\u003e🏠\u003c\/div\u003e\n        \u003ch3\u003eRaised Rim Design\u003c\/h3\u003e\n        \u003cp\u003eThe bolstered edge acts as a natural headrest and body wrap, giving anxious or burrowing pets the enclosed feeling that triggers deep, calm sleep.\u003c\/p\u003e\n        \u003cspan class=\"feature-tag\"\u003e✓ Reduces sleep anxiety\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"feature-card reveal\"\u003e\n        \u003cdiv class=\"feature-icon-wrap\"\u003e🛡️\u003c\/div\u003e\n        \u003ch3\u003eAnti-Slip Base\u003c\/h3\u003e\n        \u003cp\u003eRubberized grip dots on the underside keep the bed anchored on hardwood, tile, and laminate — even when your pet does their pre-sleep spin.\u003c\/p\u003e\n        \u003cspan class=\"feature-tag\"\u003e✓ No sliding, no chasing\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"feature-card reveal reveal-delay-1\"\u003e\n        \u003cdiv class=\"feature-icon-wrap\"\u003e🌡️\u003c\/div\u003e\n        \u003ch3\u003eSelf-Warming Microclimate\u003c\/h3\u003e\n        \u003cp\u003ePlush fabric traps your pet's natural body heat, creating a warmer sleeping environment without any electricity or inserts needed.\u003c\/p\u003e\n        \u003cspan class=\"feature-tag\"\u003e✓ Perfect for cold nights\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"feature-card reveal reveal-delay-2\"\u003e\n        \u003cdiv class=\"feature-icon-wrap\"\u003e✂️\u003c\/div\u003e\n        \u003ch3\u003eDurable Stitching\u003c\/h3\u003e\n        \u003cp\u003eDouble-reinforced seams handle months of daily scratching, circling, and nesting. Shape holds even after heavy use and multiple washes.\u003c\/p\u003e\n        \u003cspan class=\"feature-tag\"\u003e✓ Built to last\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     4. COMPARISON\n     ============================================================ --\u003e\n\u003csection class=\"section\" id=\"comparison-section\" aria-label=\"Product comparison\"\u003e\n  \u003cdiv class=\"section-inner\"\u003e\n    \u003cdiv class=\"section-head reveal\"\u003e\n      \u003cp class=\"section-eyebrow\"\u003eHow It Compares\u003c\/p\u003e\n      \u003ch2 class=\"section-title\"\u003eNot all pet beds are equal.\u003c\/h2\u003e\n      \u003cp class=\"section-sub\"\u003eSee exactly what separates the VIORA bed from what your pet might currently be sleeping on.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"reveal\"\u003e\n      \u003ctable class=\"comparison-table\" role=\"table\"\u003e\n        \u003cthead\u003e\n          \u003ctr\u003e\n            \u003cth\u003eFeature\u003c\/th\u003e\n            \u003cth class=\"col-viora\"\u003eVIORA Bed ✦\u003c\/th\u003e\n            \u003cth\u003eCheap Beds\u003c\/th\u003e\n            \u003cth\u003eFlat Blanket\u003c\/th\u003e\n            \u003cth\u003eHuman Sofa\u003c\/th\u003e\n          \u003c\/tr\u003e\n        \u003c\/thead\u003e\n        \u003ctbody\u003e\n          \u003ctr\u003e\n            \u003ctd\u003eOrthopedic support\u003c\/td\u003e\n            \u003ctd class=\"col-viora\"\u003e\u003cspan class=\"check-yes\"\u003e✓\u003c\/span\u003e\u003c\/td\u003e\n            \u003ctd\u003e\u003cspan class=\"check-no\"\u003e✗\u003c\/span\u003e\u003c\/td\u003e\n            \u003ctd\u003e\u003cspan class=\"check-no\"\u003e✗\u003c\/span\u003e\u003c\/td\u003e\n            \u003ctd\u003e\u003cspan class=\"check-maybe\"\u003e~\u003c\/span\u003e\u003c\/td\u003e\n          \u003c\/tr\u003e\n          \u003ctr\u003e\n            \u003ctd\u003eAnti-anxiety raised rim\u003c\/td\u003e\n            \u003ctd class=\"col-viora\"\u003e\u003cspan class=\"check-yes\"\u003e✓\u003c\/span\u003e\u003c\/td\u003e\n            \u003ctd\u003e\u003cspan class=\"check-maybe\"\u003e~\u003c\/span\u003e\u003c\/td\u003e\n            \u003ctd\u003e\u003cspan class=\"check-no\"\u003e✗\u003c\/span\u003e\u003c\/td\u003e\n            \u003ctd\u003e\u003cspan class=\"check-no\"\u003e✗\u003c\/span\u003e\u003c\/td\u003e\n          \u003c\/tr\u003e\n          \u003ctr\u003e\n            \u003ctd\u003eMachine washable (full bed)\u003c\/td\u003e\n            \u003ctd class=\"col-viora\"\u003e\u003cspan class=\"check-yes\"\u003e✓\u003c\/span\u003e\u003c\/td\u003e\n            \u003ctd\u003e\u003cspan class=\"check-maybe\"\u003e~\u003c\/span\u003e\u003c\/td\u003e\n            \u003ctd\u003e\u003cspan class=\"check-yes\"\u003e✓\u003c\/span\u003e\u003c\/td\u003e\n            \u003ctd\u003e\u003cspan class=\"check-no\"\u003e✗\u003c\/span\u003e\u003c\/td\u003e\n          \u003c\/tr\u003e\n          \u003ctr\u003e\n            \u003ctd\u003eAnti-slip base\u003c\/td\u003e\n            \u003ctd class=\"col-viora\"\u003e\u003cspan class=\"check-yes\"\u003e✓\u003c\/span\u003e\u003c\/td\u003e\n            \u003ctd\u003e\u003cspan class=\"check-no\"\u003e✗\u003c\/span\u003e\u003c\/td\u003e\n            \u003ctd\u003e\u003cspan class=\"check-no\"\u003e✗\u003c\/span\u003e\u003c\/td\u003e\n            \u003ctd\u003e\u003cspan class=\"check-yes\"\u003e✓\u003c\/span\u003e\u003c\/td\u003e\n          \u003c\/tr\u003e\n          \u003ctr\u003e\n            \u003ctd\u003eRetains shape after washing\u003c\/td\u003e\n            \u003ctd class=\"col-viora\"\u003e\u003cspan class=\"check-yes\"\u003e✓\u003c\/span\u003e\u003c\/td\u003e\n            \u003ctd\u003e\u003cspan class=\"check-no\"\u003e✗\u003c\/span\u003e\u003c\/td\u003e\n            \u003ctd\u003e\u003cspan class=\"check-no\"\u003e✗\u003c\/span\u003e\u003c\/td\u003e\n            \u003ctd\u003e\u003cspan class=\"check-yes\"\u003e✓\u003c\/span\u003e\u003c\/td\u003e\n          \u003c\/tr\u003e\n          \u003ctr\u003e\n            \u003ctd\u003eVet-safe, non-toxic materials\u003c\/td\u003e\n            \u003ctd class=\"col-viora\"\u003e\u003cspan class=\"check-yes\"\u003e✓\u003c\/span\u003e\u003c\/td\u003e\n            \u003ctd\u003e\u003cspan class=\"check-maybe\"\u003e~\u003c\/span\u003e\u003c\/td\u003e\n            \u003ctd\u003e\u003cspan class=\"check-maybe\"\u003e~\u003c\/span\u003e\u003c\/td\u003e\n            \u003ctd\u003e\u003cspan class=\"check-no\"\u003e✗\u003c\/span\u003e\u003c\/td\u003e\n          \u003c\/tr\u003e\n          \u003ctr\u003e\n            \u003ctd\u003eSelf-warming\u003c\/td\u003e\n            \u003ctd class=\"col-viora\"\u003e\u003cspan class=\"check-yes\"\u003e✓\u003c\/span\u003e\u003c\/td\u003e\n            \u003ctd\u003e\u003cspan class=\"check-no\"\u003e✗\u003c\/span\u003e\u003c\/td\u003e\n            \u003ctd\u003e\u003cspan class=\"check-maybe\"\u003e~\u003c\/span\u003e\u003c\/td\u003e\n            \u003ctd\u003e\u003cspan class=\"check-no\"\u003e✗\u003c\/span\u003e\u003c\/td\u003e\n          \u003c\/tr\u003e\n          \u003ctr\u003e\n            \u003ctd\u003ePrice\u003c\/td\u003e\n            \u003ctd class=\"col-viora\" style=\"font-weight:700;color:var(--gold);\"\u003e$21.99\u003c\/td\u003e\n            \u003ctd\u003e$8–15\u003c\/td\u003e\n            \u003ctd\u003e$5–20\u003c\/td\u003e\n            \u003ctd\u003e$300–2,000+\u003c\/td\u003e\n          \u003c\/tr\u003e\n        \u003c\/tbody\u003e\n      \u003c\/table\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     5. SIZE GUIDE\n     ============================================================ --\u003e\n\u003csection class=\"section\" id=\"size-guide\" aria-label=\"Size guide\"\u003e\n  \u003cdiv class=\"section-inner\"\u003e\n    \u003cdiv class=\"section-head reveal\"\u003e\n      \u003cp class=\"section-eyebrow\"\u003eWill It Fit My Pet?\u003c\/p\u003e\n      \u003ch2 class=\"section-title\"\u003eSize guide — 40cm bed\u003c\/h2\u003e\n      \u003cp class=\"section-sub\"\u003eThis bed fits pets of all sizes that sleep curled. Even larger dogs up to 40kg sleep in it comfortably — as long as they curl up.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"size-guide-grid reveal\"\u003e\n      \u003cdiv class=\"size-diagram\"\u003e\n        \u003cdiv class=\"size-circle\"\u003e\n          \u003cdiv class=\"size-num\"\u003e40\u003c\/div\u003e\n          \u003cdiv class=\"size-unit\"\u003ecm diameter\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cp class=\"size-label\"\u003eRaised rim: ~10cm · Sleeping depth: ~8cm\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"size-pets\"\u003e\n        \u003cdiv class=\"size-pet-row\"\u003e\n          \u003cdiv class=\"size-pet-icon\"\u003e🐱\u003c\/div\u003e\n          \u003cdiv class=\"size-pet-info\"\u003e\n            \u003cdiv class=\"size-pet-name\"\u003eCats (all sizes)\u003c\/div\u003e\n            \u003cdiv class=\"size-pet-detail\"\u003eMost cats sleep curled under 30cm — fits perfectly\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cspan class=\"size-fit-badge fit-perfect\"\u003ePerfect fit\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"size-pet-row\"\u003e\n          \u003cdiv class=\"size-pet-icon\"\u003e🐕\u003c\/div\u003e\n          \u003cdiv class=\"size-pet-info\"\u003e\n            \u003cdiv class=\"size-pet-name\"\u003eSmall Dogs (under 30cm curled)\u003c\/div\u003e\n            \u003cdiv class=\"size-pet-detail\"\u003eChihuahua, Pomeranian, Toy Poodle, Maltese\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cspan class=\"size-fit-badge fit-perfect\"\u003ePerfect fit\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"size-pet-row\"\u003e\n          \u003cdiv class=\"size-pet-icon\"\u003e🐶\u003c\/div\u003e\n          \u003cdiv class=\"size-pet-info\"\u003e\n            \u003cdiv class=\"size-pet-name\"\u003eMedium Dogs (30–40cm curled)\u003c\/div\u003e\n            \u003cdiv class=\"size-pet-detail\"\u003eShih Tzu, Cavalier King Charles, Beagle, Cocker Spaniel\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cspan class=\"size-fit-badge fit-great\"\u003eGreat fit if curled\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"size-pet-row\"\u003e\n          \u003cdiv class=\"size-pet-icon\"\u003e🐩\u003c\/div\u003e\n          \u003cdiv class=\"size-pet-info\"\u003e\n            \u003cdiv class=\"size-pet-name\"\u003eLarger Dogs (30–40kg)\u003c\/div\u003e\n            \u003cdiv class=\"size-pet-detail\"\u003eGolden Retriever, Labrador, Border Collie — great fit if they sleep curled\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cspan class=\"size-fit-badge fit-great\"\u003eGreat if curled\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cp style=\"font-size:12.5px;color:var(--text-muted);margin-top:14px;line-height:1.65;\"\u003e📏 Tip: Measure your pet nose-to-tail while sleeping curled. Under 30cm = perfect fit. 30–40cm = great fit if curled. 30–40kg dogs that like to curl up will sleep comfortably in this bed.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     6. REVIEWS\n     ============================================================ --\u003e\n\u003csection class=\"section\" id=\"reviews-section\" aria-label=\"Customer reviews\"\u003e\n  \u003cdiv class=\"section-inner\"\u003e\n    \u003cdiv class=\"section-head reveal\"\u003e\n      \u003cp class=\"section-eyebrow\"\u003eReal Reviews\u003c\/p\u003e\n      \u003ch2 class=\"section-title\"\u003e187 pet parents have spoken.\u003c\/h2\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"reviews-summary reveal\"\u003e\n      \u003cdiv class=\"reviews-big-score\"\u003e\n        \u003cdiv class=\"reviews-big-num\"\u003e4.9\u003c\/div\u003e\n        \u003cdiv class=\"reviews-big-stars\"\u003e★★★★★\u003c\/div\u003e\n        \u003cdiv class=\"reviews-big-count\"\u003e187 verified reviews\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"reviews-bars\"\u003e\n        \u003cdiv class=\"review-bar-row\"\u003e\n\u003cspan class=\"review-bar-label\"\u003e5 ★\u003c\/span\u003e\u003cdiv class=\"review-bar-track\"\u003e\u003cdiv class=\"review-bar-fill\" style=\"width:88%\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003cspan class=\"review-bar-pct\"\u003e88%\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"review-bar-row\"\u003e\n\u003cspan class=\"review-bar-label\"\u003e4 ★\u003c\/span\u003e\u003cdiv class=\"review-bar-track\"\u003e\u003cdiv class=\"review-bar-fill\" style=\"width:9%\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003cspan class=\"review-bar-pct\"\u003e9%\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"review-bar-row\"\u003e\n\u003cspan class=\"review-bar-label\"\u003e3 ★\u003c\/span\u003e\u003cdiv class=\"review-bar-track\"\u003e\u003cdiv class=\"review-bar-fill\" style=\"width:2%\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003cspan class=\"review-bar-pct\"\u003e2%\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"review-bar-row\"\u003e\n\u003cspan class=\"review-bar-label\"\u003e2 ★\u003c\/span\u003e\u003cdiv class=\"review-bar-track\"\u003e\u003cdiv class=\"review-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003cspan class=\"review-bar-pct\"\u003e1%\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"review-bar-row\"\u003e\n\u003cspan class=\"review-bar-label\"\u003e1 ★\u003c\/span\u003e\u003cdiv class=\"review-bar-track\"\u003e\u003cdiv class=\"review-bar-fill\" style=\"width:0%\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003cspan class=\"review-bar-pct\"\u003e0%\u003c\/span\u003e\n\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"reviews-trust-note\"\u003e\n        \u003cstrong\u003e98% of buyers\u003c\/strong\u003e said they would purchase this bed again.\u003cbr\u003e\u003cbr\u003e\n        Most mentioned their pet claimed the bed within hours of unboxing, and that it washed and dried without losing shape or loft.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"reviews-grid\"\u003e\n      \u003cdiv class=\"review-card reveal\"\u003e\n        \u003cdiv class=\"review-card-stars\"\u003e★★★★★\u003c\/div\u003e\n        \u003cspan class=\"review-verified\"\u003e✓ Verified Purchase\u003c\/span\u003e\n        \u003cp class=\"review-text\"\u003e\"My Persian cat Mochi refused every bed I'd bought over three years. This one? She was in it within 20 minutes of me putting it on the floor. The plush is incredibly soft and the raised edge is exactly what she likes to rest her chin on.\"\u003c\/p\u003e\n        \u003cdiv class=\"review-author-row\"\u003e\n          \u003cdiv class=\"review-avatar\"\u003e🐱\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cdiv class=\"review-author-name\"\u003eAmelia T.\u003c\/div\u003e\n\u003cdiv class=\"review-author-sub\"\u003eLondon, UK · Persian cat owner\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"review-product-tag\"\u003e📦 Gray · 40cm · Purchased 3 months ago\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"review-card reveal reveal-delay-1\"\u003e\n        \u003cspan class=\"review-photo-badge\"\u003e📸 With photo\u003c\/span\u003e\n        \u003cdiv class=\"review-card-stars\"\u003e★★★★★\u003c\/div\u003e\n        \u003cspan class=\"review-verified\"\u003e✓ Verified Purchase\u003c\/span\u003e\n        \u003cp class=\"review-text\"\u003e\"I have a 4kg Shih Tzu with bad hips. His vet said to get him off the cold floor at night. This bed is just the right size and he sleeps through to 7am now instead of waking at 4. Worth every penny.\"\u003c\/p\u003e\n        \u003cdiv class=\"review-author-row\"\u003e\n          \u003cdiv class=\"review-avatar\"\u003e🐕\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cdiv class=\"review-author-name\"\u003eDavid M.\u003c\/div\u003e\n\u003cdiv class=\"review-author-sub\"\u003eDublin, IE · Shih Tzu owner\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"review-product-tag\"\u003e📦 Gray · 40cm · Purchased 2 months ago\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"review-card reveal reveal-delay-2\"\u003e\n        \u003cdiv class=\"review-card-stars\"\u003e★★★★★\u003c\/div\u003e\n        \u003cspan class=\"review-verified\"\u003e✓ Verified Purchase\u003c\/span\u003e\n        \u003cp class=\"review-text\"\u003e\"Three washes in and it looks brand new — no pilling, no shrinkage, no weird smell. My two British Shorthairs take turns sleeping in it. I'm ordering a second one because they literally fight over it.\"\u003c\/p\u003e\n        \u003cdiv class=\"review-author-row\"\u003e\n          \u003cdiv class=\"review-avatar\"\u003e🐈\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cdiv class=\"review-author-name\"\u003eSofia R.\u003c\/div\u003e\n\u003cdiv class=\"review-author-sub\"\u003eBarcelona, ES · 2 British Shorthairs\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"review-product-tag\"\u003e📦 Gray · 40cm · Purchased 5 months ago\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"review-card reveal\"\u003e\n        \u003cdiv class=\"review-card-stars\"\u003e★★★★☆\u003c\/div\u003e\n        \u003cspan class=\"review-verified\"\u003e✓ Verified Purchase\u003c\/span\u003e\n        \u003cp class=\"review-text\"\u003e\"My Chihuahua mix disappears into it like a little burrito. The gray is slightly darker than in photos but still very nice and very well made. No flattening after two months of daily use — genuinely impressed.\"\u003c\/p\u003e\n        \u003cdiv class=\"review-author-row\"\u003e\n          \u003cdiv class=\"review-avatar\"\u003e🐶\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cdiv class=\"review-author-name\"\u003ePriya K.\u003c\/div\u003e\n\u003cdiv class=\"review-author-sub\"\u003eToronto, CA · Chihuahua mix owner\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"review-product-tag\"\u003e📦 Gray · 40cm · Purchased 2 months ago\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"review-card reveal reveal-delay-1\"\u003e\n        \u003cspan class=\"review-photo-badge\"\u003e📸 With photo\u003c\/span\u003e\n        \u003cdiv class=\"review-card-stars\"\u003e★★★★★\u003c\/div\u003e\n        \u003cspan class=\"review-verified\"\u003e✓ Verified Purchase\u003c\/span\u003e\n        \u003cp class=\"review-text\"\u003e\"My rescue cat had anxiety and would never settle. She's slept in this every single night since it arrived. The raised edge gives her that tucked-in feeling she needs. I've recommended it to everyone in my rescue group.\"\u003c\/p\u003e\n        \u003cdiv class=\"review-author-row\"\u003e\n          \u003cdiv class=\"review-avatar\"\u003e🐱\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cdiv class=\"review-author-name\"\u003eJessica W.\u003c\/div\u003e\n\u003cdiv class=\"review-author-sub\"\u003eMelbourne, AU · Rescue cat owner\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"review-product-tag\"\u003e📦 Gray · 40cm · Purchased 4 months ago\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"review-card reveal reveal-delay-2\"\u003e\n        \u003cdiv class=\"review-card-stars\"\u003e★★★★★\u003c\/div\u003e\n        \u003cspan class=\"review-verified\"\u003e✓ Verified Purchase\u003c\/span\u003e\n        \u003cp class=\"review-text\"\u003e\"Got this for my elderly Pomeranian who has arthritis. He took to it the first night and moves more freely in the mornings now. The anti-slip bottom is genuinely useful — it stays exactly where I put it on our hardwood floors.\"\u003c\/p\u003e\n        \u003cdiv class=\"review-author-row\"\u003e\n          \u003cdiv class=\"review-avatar\"\u003e🐩\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cdiv class=\"review-author-name\"\u003eChen L.\u003c\/div\u003e\n\u003cdiv class=\"review-author-sub\"\u003eSingapore · Senior Pomeranian owner\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"review-product-tag\"\u003e📦 Gray · 40cm · Purchased 6 months ago\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     7. CARE INSTRUCTIONS\n     ============================================================ --\u003e\n\u003csection class=\"section\" id=\"care-section\" aria-label=\"Care instructions\"\u003e\n  \u003cdiv class=\"section-inner\"\u003e\n    \u003cdiv class=\"section-head reveal\"\u003e\n      \u003cp class=\"section-eyebrow\"\u003eEasy to Keep Clean\u003c\/p\u003e\n      \u003ch2 class=\"section-title\"\u003eCare \u0026amp; maintenance\u003c\/h2\u003e\n      \u003cp class=\"section-sub\"\u003eNo special handling. Just toss it in the machine and it comes out looking new.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"care-grid\"\u003e\n      \u003cdiv class=\"care-card reveal\"\u003e\n        \u003cdiv class=\"care-icon\"\u003e🌊\u003c\/div\u003e\n        \u003ch4\u003eMachine Wash\u003c\/h4\u003e\n        \u003cp\u003eCold water, gentle cycle. The full bed including insert washes as one — no disassembly needed.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"care-card reveal reveal-delay-1\"\u003e\n        \u003cdiv class=\"care-icon\"\u003e💨\u003c\/div\u003e\n        \u003ch4\u003eTumble Dry Low\u003c\/h4\u003e\n        \u003cp\u003eDry on low heat or air dry flat. Filling redistributes evenly and the shape fully restores.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"care-card reveal reveal-delay-2\"\u003e\n        \u003cdiv class=\"care-icon\"\u003e🚫\u003c\/div\u003e\n        \u003ch4\u003eNo Bleach\u003c\/h4\u003e\n        \u003cp\u003eAvoid bleach and fabric softeners — they degrade the plush fibers over time. Plain detergent only.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"care-card reveal reveal-delay-3\"\u003e\n        \u003cdiv class=\"care-icon\"\u003e📅\u003c\/div\u003e\n        \u003ch4\u003eWash Frequency\u003c\/h4\u003e\n        \u003cp\u003eEvery 2–4 weeks for most pets. For allergy-prone pets, once a week keeps allergens low.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     8. FAQ\n     ============================================================ --\u003e\n\u003csection class=\"section\" id=\"faq-section\" aria-label=\"Frequently asked questions\"\u003e\n  \u003cdiv class=\"section-inner\"\u003e\n    \u003cdiv class=\"section-head reveal\"\u003e\n      \u003cp class=\"section-eyebrow\"\u003eBefore You Order\u003c\/p\u003e\n      \u003ch2 class=\"section-title\"\u003eEvery question, answered.\u003c\/h2\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"faq-list reveal\"\u003e\n\n      \u003cdiv class=\"faq-item\"\u003e\n        \u003cbutton class=\"faq-q\" onclick=\"toggleFaq(this)\" aria-expanded=\"false\"\u003eWill my pet actually use it?\u003cspan class=\"faq-icon\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n        \u003cdiv class=\"faq-a\"\u003e\u003cdiv class=\"faq-a-inner\"\u003eMost pets take to it within the first day, especially once the bed picks up familiar scents. If your pet is hesitant, place a worn t-shirt or their favourite toy inside. 98% of our customers say their pet uses it regularly. And if yours doesn't, our 30-day return policy covers you completely.\u003c\/div\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"faq-item\"\u003e\n        \u003cbutton class=\"faq-q\" onclick=\"toggleFaq(this)\" aria-expanded=\"false\"\u003eWill the 40cm size fit my pet?\u003cspan class=\"faq-icon\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n        \u003cdiv class=\"faq-a\"\u003e\u003cdiv class=\"faq-a-inner\"\u003eThe 40cm bed fits most cats and small-to-medium dogs up to roughly 8kg that sleep curled. Measure your pet nose to tail while sleeping — if under 35cm, this fits perfectly. Dogs that stretch out flat may need a larger size.\u003c\/div\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"faq-item\"\u003e\n        \u003cbutton class=\"faq-q\" onclick=\"toggleFaq(this)\" aria-expanded=\"false\"\u003eDoes it flatten after a few weeks?\u003cspan class=\"faq-icon\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n        \u003cdiv class=\"faq-a\"\u003e\u003cdiv class=\"faq-a-inner\"\u003eNot with normal use. The PP cotton fill is selected for resilience — it springs back after pressure is released. If you ever notice compaction after months of use, 15 minutes in the dryer on low heat fully restores the loft.\u003c\/div\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"faq-item\"\u003e\n        \u003cbutton class=\"faq-q\" onclick=\"toggleFaq(this)\" aria-expanded=\"false\"\u003eIs it safe for pets with sensitive skin or allergies?\u003cspan class=\"faq-icon\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n        \u003cdiv class=\"faq-a\"\u003e\u003cdiv class=\"faq-a-inner\"\u003eYes. Materials are hypoallergenic and free from harsh dyes or chemical treatments. The outer fabric is soft on sensitive skin and the fill does not retain allergens the way down or feather fills can. For allergy-prone pets, weekly washing is recommended.\u003c\/div\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"faq-item\"\u003e\n        \u003cbutton class=\"faq-q\" onclick=\"toggleFaq(this)\" aria-expanded=\"false\"\u003eDoes it slide around on hardwood or tile?\u003cspan class=\"faq-icon\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n        \u003cdiv class=\"faq-a\"\u003e\u003cdiv class=\"faq-a-inner\"\u003eNo. The underside has rubberized grip dots that hold it firmly in place on smooth surfaces. It stays positioned wherever you put it, even when your pet jumps in or does their enthusiastic pre-sleep spinning routine.\u003c\/div\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"faq-item\"\u003e\n        \u003cbutton class=\"faq-q\" onclick=\"toggleFaq(this)\" aria-expanded=\"false\"\u003eCan I put the whole thing in the washing machine?\u003cspan class=\"faq-icon\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n        \u003cdiv class=\"faq-a\"\u003e\u003cdiv class=\"faq-a-inner\"\u003eYes — the entire bed goes in the machine. Cold water, gentle cycle, mild detergent. No bleach or fabric softener. Tumble dry on low or air dry flat. It comes out clean and the shape is fully restored once dry. Most customers wash it every 2–3 weeks.\u003c\/div\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"faq-item\"\u003e\n        \u003cbutton class=\"faq-q\" onclick=\"toggleFaq(this)\" aria-expanded=\"false\"\u003eHow long does shipping take?\u003cspan class=\"faq-icon\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n        \u003cdiv class=\"faq-a\"\u003e\u003cdiv class=\"faq-a-inner\"\u003eStandard shipping takes 7–14 business days to most countries. A tracking link is sent by email as soon as your order leaves our warehouse. Orders over $100 qualify for free worldwide shipping.\u003c\/div\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"faq-item\"\u003e\n        \u003cbutton class=\"faq-q\" onclick=\"toggleFaq(this)\" aria-expanded=\"false\"\u003eWhat if it doesn't work out?\u003cspan class=\"faq-icon\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n        \u003cdiv class=\"faq-a\"\u003e\u003cdiv class=\"faq-a-inner\"\u003eYou're covered by our 30-day hassle-free return policy. If your pet rejects the bed or you're unhappy for any reason, contact us within 30 days of receiving your order for a full refund — no questions, no runaround.\u003c\/div\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"faq-item\"\u003e\n        \u003cbutton class=\"faq-q\" onclick=\"toggleFaq(this)\" aria-expanded=\"false\"\u003eIs this bed good for older pets with joint problems?\u003cspan class=\"faq-icon\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n        \u003cdiv class=\"faq-a\"\u003e\u003cdiv class=\"faq-a-inner\"\u003eMany of our customers buy specifically for senior pets. The dense plush fill distributes body weight evenly and reduces pressure on hips, elbows, and shoulders. It also keeps older animals off cold floors, which is especially important in winter. For pets with significant joint conditions, we'd always recommend consulting your vet.\u003c\/div\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"faq-item\"\u003e\n        \u003cbutton class=\"faq-q\" onclick=\"toggleFaq(this)\" aria-expanded=\"false\"\u003eCan I use this for both a dog and a cat?\u003cspan class=\"faq-icon\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n        \u003cdiv class=\"faq-a\"\u003e\u003cdiv class=\"faq-a-inner\"\u003eAbsolutely — the bed is designed for all small pets regardless of species. Many multi-pet households tell us both their dog and cat claim the bed. If that sounds like your house, ordering two might save some negotiations.\u003c\/div\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     9. CROSS-SELLS\n     ============================================================ --\u003e\n\u003csection class=\"section\" id=\"cross-sell-section\" aria-label=\"You might also like\"\u003e\n  \u003cdiv class=\"section-inner\"\u003e\n    \u003cdiv class=\"section-head reveal\"\u003e\n      \u003cp class=\"section-eyebrow\"\u003eComplete the Setup\u003c\/p\u003e\n      \u003ch2 class=\"section-title\"\u003ePairs perfectly with\u003c\/h2\u003e\n      \u003cp class=\"section-sub\"\u003eThe products our customers most often add to their order alongside the pet bed.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"crossell-grid\"\u003e\n      \u003cdiv class=\"crossell-card reveal\"\u003e\n        \u003cdiv class=\"crossell-img\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0810\/5092\/7356\/files\/2401280700350325400.jpg?v=1782303635\" alt=\"Pet Paw Cleaning Cup\" loading=\"lazy\"\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"crossell-body\"\u003e\n          \u003cdiv class=\"crossell-rating\"\u003e\n\u003cspan class=\"stars\"\u003e★★★★★\u003c\/span\u003e\u003cspan\u003e4.8 (234 reviews)\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"crossell-title\"\u003ePet Paw Cleaning Cup\u003c\/div\u003e\n          \u003cdiv class=\"crossell-price\"\u003e\n            \u003cspan class=\"price-current\" data-usd=\"19.99\"\u003e$19.99\u003c\/span\u003e\n            \u003cspan class=\"price-original\" data-usd=\"29.99\"\u003e$29.99\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003cbutton class=\"btn-crossell-add\" onclick=\"quickAdd(this,'Pet Paw Cleaning Cup',19.99,'https:\/\/cdn.shopify.com\/s\/files\/1\/0810\/5092\/7356\/files\/2401280700350325400.jpg?v=1782303635','pets-paw-cleaning-cup','https:\/\/store-06210927qdkgo.myshopify.com\/pages\/all-products')\"\u003e🛒 Add to Cart\u003c\/button\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"crossell-card reveal reveal-delay-1\"\u003e\n        \u003cdiv class=\"crossell-img\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0810\/5092\/7356\/files\/2506975e-11aa-4421-90d9-e822c2d0e7f7.jpg?v=1782304264\" alt=\"Cat Hair Cleaner\" loading=\"lazy\"\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"crossell-body\"\u003e\n          \u003cdiv class=\"crossell-rating\"\u003e\n\u003cspan class=\"stars\"\u003e★★★★★\u003c\/span\u003e\u003cspan\u003e4.7 (203 reviews)\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"crossell-title\"\u003eCat Hair Cleaner — Hair Removal Artifact\u003c\/div\u003e\n          \u003cdiv class=\"crossell-price\"\u003e\n            \u003cspan class=\"price-current\" data-usd=\"8.99\"\u003e$8.99\u003c\/span\u003e\n            \u003cspan class=\"price-original\" data-usd=\"14.99\"\u003e$14.99\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003cbutton class=\"btn-crossell-add\" onclick=\"quickAdd(this,'Cat Hair Cleaner',8.99,'https:\/\/cdn.shopify.com\/s\/files\/1\/0810\/5092\/7356\/files\/2506975e-11aa-4421-90d9-e822c2d0e7f7.jpg?v=1782304264','cat-hair-cleaner-cat-hair-removal-artifact','https:\/\/store-06210927qdkgo.myshopify.com\/pages\/all-products')\"\u003e🛒 Add to Cart\u003c\/button\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"crossell-card reveal reveal-delay-2\"\u003e\n        \u003cdiv class=\"crossell-img\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0810\/5092\/7356\/files\/2791a2ee-8dc4-4f02-a56a-531541b72053.jpg?v=1782303967\" alt=\"Gravity Rolling Cat Teasing Ball\" loading=\"lazy\"\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"crossell-body\"\u003e\n          \u003cdiv class=\"crossell-rating\"\u003e\n\u003cspan class=\"stars\"\u003e★★★★★\u003c\/span\u003e\u003cspan\u003e4.5 (89 reviews)\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"crossell-title\"\u003eGravity Rolling Cat Teasing Ball\u003c\/div\u003e\n          \u003cdiv class=\"crossell-price\"\u003e\n            \u003cspan class=\"price-current\" data-usd=\"12.99\"\u003e$12.99\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003cbutton class=\"btn-crossell-add\" onclick=\"quickAdd(this,'Gravity Rolling Cat Teasing Ball',12.99,'https:\/\/cdn.shopify.com\/s\/files\/1\/0810\/5092\/7356\/files\/2791a2ee-8dc4-4f02-a56a-531541b72053.jpg?v=1782303967','pet-supplies-gravity-rolling-cat-teasing-ball','https:\/\/store-06210927qdkgo.myshopify.com\/pages\/all-products')\"\u003e🛒 Add to Cart\u003c\/button\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     10. GUARANTEE + FINAL CTA\n     ============================================================ --\u003e\n\u003csection id=\"guarantee-section\" aria-label=\"Guarantee and purchase\"\u003e\n  \u003cdiv class=\"guarantee-inner\"\u003e\n    \u003cdiv class=\"reveal\"\u003e\n      \u003cdiv class=\"guarantee-badge\"\u003e🛡️\u003c\/div\u003e\n      \u003ch2 class=\"guarantee-title\"\u003eYour pet's comfort is guaranteed.\u003c\/h2\u003e\n      \u003cp class=\"guarantee-sub\"\u003eIf your pet doesn't take to it, if it arrives damaged, or if you're unhappy for any reason — contact us within 30 days for a full refund. No paperwork. No hassle. No exceptions.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"guarantee-perks reveal\"\u003e\n      \u003cdiv class=\"guarantee-perk\"\u003e\n\u003cspan class=\"guarantee-perk-icon\"\u003e🔄\u003c\/span\u003e 30-Day Returns\u003c\/div\u003e\n      \u003cdiv class=\"guarantee-perk\"\u003e\n\u003cspan class=\"guarantee-perk-icon\"\u003e🚚\u003c\/span\u003e Free Shipping $100+\u003c\/div\u003e\n      \u003cdiv class=\"guarantee-perk\"\u003e\n\u003cspan class=\"guarantee-perk-icon\"\u003e🔒\u003c\/span\u003e Secure Checkout\u003c\/div\u003e\n      \u003cdiv class=\"guarantee-perk\"\u003e\n\u003cspan class=\"guarantee-perk-icon\"\u003e✓\u003c\/span\u003e Vet-Approved\u003c\/div\u003e\n      \u003cdiv class=\"guarantee-perk\"\u003e\n\u003cspan class=\"guarantee-perk-icon\"\u003e🏆\u003c\/span\u003e 12,000+ Happy Pets\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"reveal\"\u003e\n      \u003cbutton class=\"btn-final-atc\" id=\"finalAtcBtn\" onclick=\"addToCart(this)\"\u003e\n        🛒 Add to Cart — $21.99\n      \u003c\/button\u003e\n      \u003cp class=\"final-atc-note\"\u003eWas $32.87 · You save $10.88 (33% off) · Ships in 1–2 business days\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- NEWSLETTER --\u003e\n\u003csection id=\"newsletter\" aria-label=\"Email newsletter signup\"\u003e\n  \u003cdiv class=\"newsletter-inner\"\u003e\n    \u003ch2\u003eJoin the VIORA Family\u003c\/h2\u003e\n    \u003cp\u003eGet first access to new arrivals, member-only deals, and tips for happier, healthier pets — delivered to your inbox.\u003c\/p\u003e\n    \u003cdiv class=\"newsletter-form\" role=\"form\" aria-label=\"Newsletter signup\"\u003e\n      \u003cinput type=\"email\" class=\"newsletter-input\" placeholder=\"Enter your email address\" aria-label=\"Email address\" id=\"newsletterEmail\"\u003e\n      \u003cbutton class=\"newsletter-submit\" onclick=\"subscribeNewsletter()\"\u003eJoin Now\u003c\/button\u003e\n    \u003c\/div\u003e\n    \u003cp class=\"newsletter-privacy\"\u003eNo spam, ever. Unsubscribe anytime. Your privacy is respected.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- FOOTER --\u003e\n\u003cfooter role=\"contentinfo\"\u003e\n  \u003cdiv class=\"footer-inner\"\u003e\n    \u003cdiv class=\"footer-top\"\u003e\n      \u003cdiv class=\"footer-brand\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0810\/5092\/7356\/files\/WhatsApp_Image_2026-06-25_at_1.14.05_PM.jpg?v=1782382466\" alt=\"VIORA\" onerror=\"this.style.display='none'\"\u003e\n        \u003cp\u003ePremium pet products thoughtfully curated for dogs and cats. Trusted by over 12,000 pet parents worldwide.\u003c\/p\u003e\n        \u003cdiv class=\"footer-socials\"\u003e\n          \u003ca href=\"#\" class=\"social-link\" aria-label=\"Instagram\"\u003e📷\u003c\/a\u003e\n          \u003ca href=\"#\" class=\"social-link\" aria-label=\"TikTok\"\u003e🎵\u003c\/a\u003e\n          \u003ca href=\"#\" class=\"social-link\" aria-label=\"Facebook\"\u003e👍\u003c\/a\u003e\n          \u003ca href=\"#\" class=\"social-link\" aria-label=\"Pinterest\"\u003e📌\u003c\/a\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"footer-col\"\u003e\n        \u003ch4\u003eShop\u003c\/h4\u003e\n        \u003ca href=\"https:\/\/store-06210927qdkgo.myshopify.com\/pages\/all-products\"\u003eAll Products\u003c\/a\u003e\n        \u003ca href=\"\/#bestsellers\"\u003eBest Sellers\u003c\/a\u003e\n        \u003ca href=\"https:\/\/store-06210927qdkgo.myshopify.com\/pages\/all-products\"\u003eFor Dogs\u003c\/a\u003e\n        \u003ca href=\"https:\/\/store-06210927qdkgo.myshopify.com\/pages\/all-products\"\u003eFor Cats\u003c\/a\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"footer-col\"\u003e\n        \u003ch4\u003eHelp\u003c\/h4\u003e\n        \u003ca href=\"\/#faq\"\u003eFAQ\u003c\/a\u003e\n        \u003ca href=\"\/pages\/shipping\"\u003eShipping Info\u003c\/a\u003e\n        \u003ca href=\"\/pages\/returns\"\u003eReturns\u003c\/a\u003e\n        \u003ca href=\"\/pages\/contact\"\u003eContact Us\u003c\/a\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"footer-col\"\u003e\n        \u003ch4\u003eCompany\u003c\/h4\u003e\n        \u003ca href=\"\/pages\/about\"\u003eAbout VIORA\u003c\/a\u003e\n        \u003ca href=\"\/pages\/privacy-policy\"\u003ePrivacy Policy\u003c\/a\u003e\n        \u003ca href=\"\/pages\/terms-of-service\"\u003eTerms of Service\u003c\/a\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"footer-bottom\"\u003e\n      \u003cp class=\"footer-copy\"\u003e© 2026 VIORA. All rights reserved.\u003c\/p\u003e\n      \u003cdiv class=\"payment-icons\" aria-label=\"Accepted payment methods\"\u003e\n        \u003cspan class=\"payment-icon\"\u003eVISA\u003c\/span\u003e\n        \u003cspan class=\"payment-icon\"\u003eMC\u003c\/span\u003e\n        \u003cspan class=\"payment-icon\"\u003eAMEX\u003c\/span\u003e\n        \u003cspan class=\"payment-icon\"\u003ePayPal\u003c\/span\u003e\n        \u003cspan class=\"payment-icon\"\u003eApple Pay\u003c\/span\u003e\n        \u003cspan class=\"payment-icon\"\u003eShop Pay\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/footer\u003e\n\n\u003c!-- ============================================================\n     JAVASCRIPT\n     ============================================================ --\u003e\n\u003cscript\u003e\nconst FREE_SHIPPING_THRESHOLD = 100;\nconst VARIANT_ID = '49222653051132';\nconst PRODUCT_TITLE = 'Warm Cozy \u0026 Soft Round Pet Bed';\n\n\/\/ ── Full-bleed fix ───────────────────────────────────────────────\nfunction forceFullBleed() {\n  const start = document.getElementById('announcement-bar');\n  if (!start) return;\n  [document.documentElement, document.body].forEach(el =\u003e {\n    el.style.setProperty('margin','0','important');\n    el.style.setProperty('padding','0','important');\n    el.style.setProperty('max-width','none','important');\n    el.style.setProperty('width','100%','important');\n  });\n  let node = start.parentElement;\n  let titleHidden = false;\n  while (node \u0026\u0026 node !== document.body \u0026\u0026 node !== document.documentElement) {\n    if (!titleHidden) {\n      let sib = node.previousElementSibling;\n      while (sib) { sib.style.setProperty('display','none','important'); titleHidden = true; sib = sib.previousElementSibling; }\n    }\n    node.style.setProperty('max-width','none','important');\n    node.style.setProperty('width','100%','important');\n    node.style.setProperty('margin','0','important');\n    node.style.setProperty('padding','0','important');\n    node = node.parentElement;\n  }\n}\nlet fullBleedRuns = 0;\nfunction runFullBleedRepeatedly() {\n  forceFullBleed(); fullBleedRuns++;\n  if (fullBleedRuns \u003c 6) setTimeout(runFullBleedRepeatedly, 350);\n}\n\n\/\/ ── Scroll \/ Header hide ─────────────────────────────────────────\nconst annBar = document.getElementById('announcement-bar');\nconst header = document.getElementById('site-header');\nlet lastScroll = 0, annBarHidden = false, ticking = false;\nwindow.addEventListener('scroll', () =\u003e {\n  if (!ticking) {\n    requestAnimationFrame(() =\u003e {\n      const s = window.scrollY;\n      if (s \u003e 60 \u0026\u0026 !annBarHidden) { annBar.classList.add('hidden'); annBarHidden = true; }\n      else if (s \u003c= 60 \u0026\u0026 annBarHidden) { annBar.classList.remove('hidden'); annBarHidden = false; }\n      if (s \u003e 120) {\n        if (s \u003e lastScroll + 4) header.classList.add('hide');\n        else if (s \u003c lastScroll - 4) header.classList.remove('hide');\n      } else { header.classList.remove('hide'); }\n      lastScroll = Math.max(0, s);\n      checkReveal();\n      \/\/ Sticky mobile ATC — show after hero scrolls out of view\n      const hero = document.getElementById('product-hero');\n      const stickyBar = document.getElementById('sticky-mobile-atc');\n      if (stickyBar \u0026\u0026 window.innerWidth \u003c= 768) {\n        stickyBar.style.display = hero \u0026\u0026 hero.getBoundingClientRect().bottom \u003c 0 ? 'flex' : 'none';\n      }\n      ticking = false;\n    });\n    ticking = true;\n  }\n}, { passive: true });\n\n\/\/ ── Scroll reveal ────────────────────────────────────────────────\nconst revealObserver = new IntersectionObserver((entries) =\u003e {\n  entries.forEach(e =\u003e { if (e.isIntersecting) { e.target.classList.add('visible'); revealObserver.unobserve(e.target); } });\n}, { rootMargin: '0px 0px -50px 0px' });\nfunction checkReveal() {\n  document.querySelectorAll('.reveal:not(.visible)').forEach(el =\u003e revealObserver.observe(el));\n}\n\n\/\/ ── Gallery ──────────────────────────────────────────────────────\nlet galleryIndex = 0;\nconst galleryImages = document.querySelectorAll('#galleryMain img');\nconst galleryDots   = document.querySelectorAll('.gallery-dot');\nconst galleryThumbs = document.querySelectorAll('.gallery-thumb');\n\nfunction galleryGoto(index) {\n  galleryIndex = ((index % galleryImages.length) + galleryImages.length) % galleryImages.length;\n  galleryImages.forEach((img, i) =\u003e img.classList.toggle('active', i === galleryIndex));\n  galleryDots.forEach((dot, i)   =\u003e dot.classList.toggle('active', i === galleryIndex));\n  galleryThumbs.forEach((t, i)   =\u003e t.classList.toggle('active', i === galleryIndex));\n}\nfunction galleryNext() { galleryGoto(galleryIndex + 1); }\nfunction galleryPrev() { galleryGoto(galleryIndex - 1); }\n\n\/\/ Auto-rotate every 4.5s\nlet galleryTimer = setInterval(galleryNext, 4500);\n\n\/\/ Touch\/swipe support\n(function() {\n  const main = document.getElementById('galleryMain');\n  let startX = 0;\n  main.addEventListener('touchstart', e =\u003e { startX = e.touches[0].clientX; clearInterval(galleryTimer); }, { passive: true });\n  main.addEventListener('touchend', e =\u003e {\n    const diff = startX - e.changedTouches[0].clientX;\n    if (Math.abs(diff) \u003e 40) { diff \u003e 0 ? galleryNext() : galleryPrev(); }\n    galleryTimer = setInterval(galleryNext, 4500);\n  }, { passive: true });\n})();\n\n\/\/ ── Quantity ─────────────────────────────────────────────────────\nlet currentQty = 1;\nfunction changeQty(delta) {\n  currentQty = Math.max(1, Math.min(10, currentQty + delta));\n  document.getElementById('qtyDisplay').textContent = currentQty;\n}\n\n\/\/ ── Shopify AJAX Cart (identical pattern to homepage\/collection) ──\nasync function addLineToShopifyCart(variantId, qty) {\n  const res = await fetch('\/cart\/add.js', {\n    method: 'POST',\n    headers: { 'Content-Type': 'application\/json', 'Accept': 'application\/json' },\n    body: JSON.stringify({ items: [{ id: Number(variantId), quantity: qty }] })\n  });\n  if (!res.ok) { const e = await res.json().catch(() =\u003e ({})); throw new Error(e.description || 'Could not add to cart'); }\n  return res.json();\n}\nasync function fetchShopifyCart() { return fetch('\/cart.js').then(r =\u003e r.json()); }\nasync function changeLineQty(key, qty) {\n  return fetch('\/cart\/change.js', {\n    method: 'POST',\n    headers: { 'Content-Type': 'application\/json' },\n    body: JSON.stringify({ id: key, quantity: qty })\n  }).then(r =\u003e r.json());\n}\nasync function refreshCart() {\n  try { renderCart(await fetchShopifyCart()); }\n  catch(err) { console.error('Cart fetch failed — serve from Shopify domain for cart API to respond.', err); }\n}\n\nfunction renderCart(cart) {\n  const total = (cart.total_price || 0) \/ 100;\n  const count = cart.item_count || 0;\n  document.getElementById('cartCount').textContent = count;\n  const remaining = Math.max(0, FREE_SHIPPING_THRESHOLD - total);\n  const pct = Math.min(100, (total \/ FREE_SHIPPING_THRESHOLD) * 100);\n  document.getElementById('shippingProgress').style.width = pct + '%';\n  document.getElementById('shippingMsg').innerHTML = remaining \u003e 0\n    ? `Add \u003cstrong\u003e${fxFormat(remaining)}\u003c\/strong\u003e more for free shipping 🚚`\n    : `🎉 You've unlocked \u003cstrong\u003efree shipping!\u003c\/strong\u003e`;\n\n  const wrap     = document.getElementById('cartItemsWrap');\n  const emptyEl  = document.getElementById('cartEmpty');\n  const footerEl = document.getElementById('cartFooter');\n  wrap.querySelectorAll('.cart-item').forEach(el =\u003e el.remove());\n\n  if (!cart.items || cart.items.length === 0) {\n    emptyEl.style.display = 'flex'; footerEl.style.display = 'none'; return;\n  }\n  emptyEl.style.display = 'none'; footerEl.style.display = '';\n\n  cart.items.forEach(item =\u003e {\n    const div = document.createElement('div');\n    div.className = 'cart-item';\n    const linePrice = (item.line_price || item.final_line_price || 0) \/ 100;\n    div.innerHTML = `\n      \u003cimg src=\"${item.image || ''}\" alt=\"${item.product_title || item.title}\" loading=\"lazy\"\u003e\n      \u003cdiv class=\"cart-item-info\"\u003e\n        \u003cdiv class=\"cart-item-title\"\u003e${item.product_title || item.title}\u003c\/div\u003e\n        \u003cdiv class=\"cart-item-price\"\u003e${fxFormat(linePrice)}\u003c\/div\u003e\n        \u003cdiv class=\"cart-item-qty\"\u003e\n          \u003cbutton class=\"qty-btn\" onclick=\"updateQty('${item.key}',${item.quantity - 1})\" aria-label=\"Decrease quantity\"\u003e−\u003c\/button\u003e\n          \u003cspan class=\"qty-num\"\u003e${item.quantity}\u003c\/span\u003e\n          \u003cbutton class=\"qty-btn\" onclick=\"updateQty('${item.key}',${item.quantity + 1})\" aria-label=\"Increase quantity\"\u003e+\u003c\/button\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e`;\n    wrap.appendChild(div);\n  });\n  document.getElementById('cartSubtotal').textContent = fxFormat(total);\n  document.getElementById('checkoutBtn').onclick = goToCheckout;\n}\n\nasync function updateQty(key, qty) {\n  document.querySelectorAll('#cartItemsWrap .cart-item').forEach(itemEl =\u003e {\n    const minus = itemEl.querySelector('[aria-label=\"Decrease quantity\"]');\n    const plus  = itemEl.querySelector('[aria-label=\"Increase quantity\"]');\n    if (minus \u0026\u0026 (minus.getAttribute('onclick') || '').includes(`'${key}'`)) {\n      const qtyEl = itemEl.querySelector('.qty-num');\n      if (qty \u003c= 0) { itemEl.style.opacity = '0.4'; itemEl.style.pointerEvents = 'none'; }\n      else {\n        qtyEl.textContent = qty;\n        minus.setAttribute('onclick', `updateQty('${key}',${qty - 1})`);\n        plus.setAttribute('onclick',  `updateQty('${key}',${qty + 1})`);\n      }\n    }\n  });\n  try { await changeLineQty(key, qty); await refreshCart(); }\n  catch(err) { console.error(err); showToast('⚠️','Could not update quantity'); await refreshCart(); }\n}\n\n\/\/ Buy Now — add to cart then go straight to checkout\nasync function buyNow() {\n  const btn = document.getElementById('mainBuyNowBtn');\n  const originalHTML = btn.innerHTML;\n  btn.style.opacity = '0.7'; btn.style.pointerEvents = 'none'; btn.textContent = 'Processing…';\n  try {\n    await addLineToShopifyCart(VARIANT_ID, currentQty);\n    window.location.href = '\/checkout';\n  } catch(err) {\n    btn.style.opacity = ''; btn.style.pointerEvents = ''; btn.innerHTML = originalHTML;\n    showToast('⚠️','Could not process — please try again');\n    console.error(err);\n  }\n}\n\n\/\/ Main product add-to-cart\nasync function addToCart(btn) {\n  const originalHTML = btn.innerHTML;\n  btn.classList.add('loading'); btn.textContent = 'Adding…';\n  try {\n    await addLineToShopifyCart(VARIANT_ID, currentQty);\n    await refreshCart();\n    btn.classList.remove('loading'); btn.classList.add('added');\n    btn.textContent = '✓ Added!';\n    showToast('✅', `${PRODUCT_TITLE} added to cart`);\n    openCart();\n    setTimeout(() =\u003e { btn.classList.remove('added'); btn.innerHTML = originalHTML; }, 2500);\n  } catch(err) {\n    btn.classList.remove('loading'); btn.innerHTML = originalHTML;\n    showToast('⚠️','Could not add to cart — please try again');\n    console.error(err);\n  }\n}\n\n\/\/ Cross-sell quick add (resolves handle → variant ID)\nasync function resolveVariantId(idOrHandle) {\n  if (\/^\\d+$\/.test(idOrHandle)) return idOrHandle;\n  const res = await fetch(`\/products\/${idOrHandle}.js`);\n  if (!res.ok) throw new Error('Could not look up product');\n  const product = await res.json();\n  const variants = product.variants || [];\n  const variant = variants.find(v =\u003e v.available) || variants[0];\n  if (!variant) throw new Error('No variant available');\n  return variant.id;\n}\n\nasync function quickAdd(btn, title, price, img, idOrHandle, fallbackUrl) {\n  const originalHTML = btn.innerHTML;\n  btn.classList.add('loading'); btn.textContent = 'Adding…';\n  try {\n    const variantId = await resolveVariantId(idOrHandle);\n    await addLineToShopifyCart(variantId, 1);\n    await refreshCart();\n    btn.classList.remove('loading'); btn.classList.add('added');\n    btn.textContent = '✓ Added!';\n    showToast('✅', `${title} added to cart`);\n    openCart();\n    setTimeout(() =\u003e { btn.classList.remove('added'); btn.innerHTML = originalHTML; }, 2000);\n  } catch(err) {\n    btn.classList.remove('loading'); btn.innerHTML = originalHTML;\n    showToast('⚠️','Could not add to cart — opening product page');\n    console.error(err);\n    setTimeout(() =\u003e { window.location.href = fallbackUrl; }, 900);\n  }\n}\n\nfunction goToCheckout() { window.location.href = '\/checkout'; }\n\nfunction openCart() {\n  document.getElementById('cartDrawer').classList.add('open');\n  document.getElementById('cartOverlay').classList.add('open');\n  document.body.style.overflow = 'hidden';\n  refreshCart();\n}\nfunction closeCart() {\n  document.getElementById('cartDrawer').classList.remove('open');\n  document.getElementById('cartOverlay').classList.remove('open');\n  document.body.style.overflow = '';\n}\n\n\/\/ ── Toast ─────────────────────────────────────────────────────────\nlet toastTimer;\nfunction showToast(icon, msg) {\n  const toast = document.getElementById('toast');\n  document.getElementById('toastIcon').textContent = icon;\n  document.getElementById('toastMsg').textContent = msg;\n  toast.classList.add('show');\n  clearTimeout(toastTimer);\n  toastTimer = setTimeout(() =\u003e toast.classList.remove('show'), 3000);\n}\n\n\/\/ ── Modal ─────────────────────────────────────────────────────────\nfunction openModal() {\n  const m = document.getElementById('signInModal');\n  m.classList.add('open'); document.body.style.overflow = 'hidden';\n  m.addEventListener('click', function h(e) { if (e.target === m) { closeModal(); m.removeEventListener('click',h); } });\n}\nfunction closeModal() { document.getElementById('signInModal').classList.remove('open'); document.body.style.overflow = ''; }\n\n\/\/ ── Mobile Nav ────────────────────────────────────────────────────\nfunction openMobileNav() {\n  const nav = document.getElementById('mobileNav');\n  nav.classList.add('open'); nav.setAttribute('aria-hidden','false'); document.body.style.overflow = 'hidden';\n}\nfunction closeMobileNav() {\n  const nav = document.getElementById('mobileNav');\n  nav.classList.remove('open'); nav.setAttribute('aria-hidden','true'); document.body.style.overflow = '';\n}\n\n\/\/ ── FAQ ───────────────────────────────────────────────────────────\nfunction toggleFaq(btn) {\n  const item = btn.closest('.faq-item');\n  const isOpen = item.classList.contains('open');\n  document.querySelectorAll('.faq-item.open').forEach(el =\u003e {\n    el.classList.remove('open');\n    el.querySelector('.faq-q').setAttribute('aria-expanded','false');\n  });\n  if (!isOpen) { item.classList.add('open'); btn.setAttribute('aria-expanded','true'); }\n}\n\n\/\/ ── Newsletter ────────────────────────────────────────────────────\nfunction subscribeNewsletter() {\n  const email = document.getElementById('newsletterEmail').value.trim();\n  if (!email || !email.includes('@')) { showToast('⚠️','Please enter a valid email address'); return; }\n  showToast('🎉','Welcome to the VIORA family!');\n  document.getElementById('newsletterEmail').value = '';\n}\n\n\/\/ ── Keyboard ──────────────────────────────────────────────────────\ndocument.addEventListener('keydown', e =\u003e {\n  if (e.key === 'Escape') { closeCart(); closeModal(); closeMobileNav(); }\n});\n\n\/\/ ── Currency Localisation (identical to homepage \u0026 collection) ────\nconst CURRENCY_MAP = {\n  US:{code:'USD',symbol:'$',locale:'en-US'},GB:{code:'GBP',symbol:'£',locale:'en-GB'},\n  DE:{code:'EUR',symbol:'€',locale:'de-DE'},FR:{code:'EUR',symbol:'€',locale:'fr-FR'},\n  IT:{code:'EUR',symbol:'€',locale:'it-IT'},ES:{code:'EUR',symbol:'€',locale:'es-ES'},\n  NL:{code:'EUR',symbol:'€',locale:'nl-NL'},AT:{code:'EUR',symbol:'€',locale:'de-AT'},\n  PT:{code:'EUR',symbol:'€',locale:'pt-PT'},GR:{code:'EUR',symbol:'€',locale:'el-GR'},\n  FI:{code:'EUR',symbol:'€',locale:'fi-FI'},IE:{code:'EUR',symbol:'€',locale:'en-IE'},\n  BE:{code:'EUR',symbol:'€',locale:'nl-BE'},\n  EG:{code:'EGP',symbol:'EGP ',locale:'en-US'},SA:{code:'SAR',symbol:'SAR ',locale:'en-US'},\n  AE:{code:'AED',symbol:'AED ',locale:'en-US'},MA:{code:'MAD',symbol:'MAD ',locale:'en-US'},\n  CA:{code:'CAD',symbol:'CA$',locale:'en-CA'},AU:{code:'AUD',symbol:'A$',locale:'en-AU'},\n  NZ:{code:'NZD',symbol:'NZ$',locale:'en-NZ'},SG:{code:'SGD',symbol:'S$',locale:'en-SG'},\n  JP:{code:'JPY',symbol:'¥',locale:'ja-JP'},CN:{code:'CNY',symbol:'¥',locale:'zh-CN'},\n  IN:{code:'INR',symbol:'₹',locale:'en-IN'},BR:{code:'BRL',symbol:'R$',locale:'pt-BR'},\n  MX:{code:'MXN',symbol:'MX$',locale:'es-MX'},ZA:{code:'ZAR',symbol:'R',locale:'en-ZA'},\n  NG:{code:'NGN',symbol:'₦',locale:'en-NG'},TR:{code:'TRY',symbol:'₺',locale:'tr-TR'},\n  PK:{code:'PKR',symbol:'₨',locale:'ur-PK'},PH:{code:'PHP',symbol:'₱',locale:'en-PH'},\n  ID:{code:'IDR',symbol:'Rp',locale:'id-ID'},MY:{code:'MYR',symbol:'RM',locale:'ms-MY'},\n  TH:{code:'THB',symbol:'฿',locale:'th-TH'},KR:{code:'KRW',symbol:'₩',locale:'ko-KR'},\n  CH:{code:'CHF',symbol:'CHF ',locale:'de-CH'},SE:{code:'SEK',symbol:'kr',locale:'sv-SE'},\n  NO:{code:'NOK',symbol:'kr',locale:'nb-NO'},DK:{code:'DKK',symbol:'kr',locale:'da-DK'},\n  PL:{code:'PLN',symbol:'zł',locale:'pl-PL'},CZ:{code:'CZK',symbol:'Kč',locale:'cs-CZ'},\n  HU:{code:'HUF',symbol:'Ft',locale:'hu-HU'},RO:{code:'RON',symbol:'lei',locale:'ro-RO'},\n  IL:{code:'ILS',symbol:'₪',locale:'he-IL'},AR:{code:'ARS',symbol:'AR$',locale:'es-AR'},\n  CL:{code:'CLP',symbol:'CL$',locale:'es-CL'},CO:{code:'COP',symbol:'CO$',locale:'es-CO'},\n  KE:{code:'KES',symbol:'KSh',locale:'sw-KE'},\n};\nlet fxRate=1, fxSymbol='$', fxCode='USD', fxLocale='en-US', fxReady=false;\n\nfunction fxFormat(usdAmt) {\n  const local = usdAmt * fxRate;\n  const noCents = ['JPY','KRW','IDR','HUF','CLP','COP'];\n  try {\n    return fxSymbol + new Intl.NumberFormat(fxLocale, {\n      minimumFractionDigits: noCents.includes(fxCode) ? 0 : 2,\n      maximumFractionDigits: noCents.includes(fxCode) ? 0 : 2,\n    }).format(local);\n  } catch(e) {\n    return noCents.includes(fxCode)\n      ? fxSymbol + Math.round(local).toLocaleString()\n      : fxSymbol + local.toFixed(2).replace(\/\\B(?=(\\d{3})+(?!\\d))\/g,',');\n  }\n}\n\nfunction applyPricesToPage() {\n  document.querySelectorAll('.price-current[data-usd]').forEach(el =\u003e { el.textContent = fxFormat(parseFloat(el.dataset.usd)); });\n  document.querySelectorAll('.price-original[data-usd]').forEach(el =\u003e { el.textContent = fxFormat(parseFloat(el.dataset.usd)); });\n}\n\nasync function initCurrency() {\n  try {\n    const geo = await fetch('https:\/\/ipapi.co\/json\/').then(r =\u003e r.json());\n    const country = (geo.country_code || 'US').toUpperCase();\n    const info = CURRENCY_MAP[country] || CURRENCY_MAP['US'];\n    fxCode = info.code; fxSymbol = info.symbol; fxLocale = info.locale;\n    if (fxCode !== 'USD') {\n      const rates = await fetch('https:\/\/open.er-api.com\/v6\/latest\/USD').then(r =\u003e r.json());\n      fxRate = rates.rates[fxCode] || 1;\n    }\n    fxReady = true; applyPricesToPage(); refreshCart();\n  } catch(e) { fxReady = true; }\n}\n\n\/\/ ── Init ──────────────────────────────────────────────────────────\ndocument.addEventListener('DOMContentLoaded', () =\u003e {\n  runFullBleedRepeatedly();\n  checkReveal();\n  refreshCart();\n  initCurrency();\n});\nwindow.addEventListener('load', runFullBleedRepeatedly);\n\u003c\/script\u003e\n\n\n\n\n\u003c\/body\u003e","brand":"Viora","offers":[{"title":"Gray \/ 40cm","offer_id":49222653051132,"sku":"CJYD275645901AZ","price":21.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0810\/5092\/7356\/files\/b24ca118-de22-493f-be52-dbb0cfdba555.jpg?v=1782304143","url":"https:\/\/vioraa.store\/products\/a-warm-cozy-and-soft-round-pet-bed","provider":"Viora","version":"1.0","type":"link"}