← back to Architecturalwallcoverings
untrack 30 stale .bak/.pre-* snapshots from git index
4f2adf4dd014381c582cae07de7676e275dec252 · 2026-05-18 20:39:38 -0700 · SteveStudio2
Files touched
D data/products.json.bak.dwscrub.1778220082353D data/products.json.bak.tagscrub.1778220122394D public/hero-bg.jpg.pre-pass9.bakD public/index.html.bak.1778114769303D public/index.html.bak.1778117945099D public/index.html.bak.1778124816342D public/index.html.bak.1778166279717D public/index.html.bak.1778185356246D public/index.html.bak.btn.1778168679426D public/index.html.bak.btn2.1778169410374D public/index.html.bak.dom.1778168197443D public/index.html.bak.dwfoot.1778203445635D public/index.html.bak.gtagev.1778426583602D public/index.html.bak.ns-canonicalD public/index.html.bak.nspropagate.1778201378058D public/index.html.bak.nspropagate.1778203385065D public/index.html.bak.nspropagate.1778209715019D public/index.html.bak.nspropagate.1778226815121D public/index.html.bak.nspropagate.1778226888776D public/index.html.pre-corner-mark-fix.bakD public/index.html.pre-pass10.bakD public/index.html.pre-pass11.bakD public/index.html.pre-pass13.bakD public/index.html.pre-pass5-serif.bakD public/index.html.pre-pass8.bakD public/index.html.pre-pass9.bakD public/index.html.pre-sort-frontendD server.js.bak.1778117945098D server.js.pre-pass12.bakD server.js.pre-sort-skill
Diff
commit 4f2adf4dd014381c582cae07de7676e275dec252
Author: SteveStudio2 <steve@designerwallcoverings.com>
Date: Mon May 18 20:39:38 2026 -0700
untrack 30 stale .bak/.pre-* snapshots from git index
---
data/products.json.bak.dwscrub.1778220082353 | 21500 ----------------------
data/products.json.bak.tagscrub.1778220122394 | 21500 ----------------------
public/hero-bg.jpg.pre-pass9.bak | Bin 372450 -> 0 bytes
public/index.html.bak.1778114769303 | 630 -
public/index.html.bak.1778117945099 | 649 -
public/index.html.bak.1778124816342 | 676 -
public/index.html.bak.1778166279717 | 654 -
public/index.html.bak.1778185356246 | 731 -
public/index.html.bak.btn.1778168679426 | 663 -
public/index.html.bak.btn2.1778169410374 | 664 -
public/index.html.bak.dom.1778168197443 | 663 -
public/index.html.bak.dwfoot.1778203445635 | 969 -
public/index.html.bak.gtagev.1778426583602 | 977 -
public/index.html.bak.ns-canonical | 984 -
public/index.html.bak.nspropagate.1778201378058 | 731 -
public/index.html.bak.nspropagate.1778203385065 | 954 -
public/index.html.bak.nspropagate.1778209715019 | 969 -
public/index.html.bak.nspropagate.1778226815121 | 971 -
public/index.html.bak.nspropagate.1778226888776 | 973 -
public/index.html.pre-corner-mark-fix.bak | 676 -
public/index.html.pre-pass10.bak | 676 -
public/index.html.pre-pass11.bak | 676 -
public/index.html.pre-pass13.bak | 936 -
public/index.html.pre-pass5-serif.bak | 647 -
public/index.html.pre-pass8.bak | 663 -
public/index.html.pre-pass9.bak | 664 -
public/index.html.pre-sort-frontend | 857 -
server.js.bak.1778117945098 | 107 -
server.js.pre-pass12.bak | 140 -
server.js.pre-sort-skill | 156 -
30 files changed, 62056 deletions(-)
diff --git a/data/products.json.bak.dwscrub.1778220082353 b/data/products.json.bak.dwscrub.1778220082353
deleted file mode 100644
index 4e27417..0000000
--- a/data/products.json.bak.dwscrub.1778220082353
+++ /dev/null
@@ -1,21500 +0,0 @@
-[
- {
- "sku": "whittier-way-twisted-paper-weave-hlw-73158",
- "handle": "whittier-way-twisted-paper-weave-hlw-73158",
- "title": "Whittier Way - Twisted Paper Weave | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73158-sample-clean.jpg?v=1774483793",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "contemporary",
- "Cream",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Minimalist",
- "Natural",
- "Naturally Glamorous",
- "Organic Modern",
- "Paper",
- "Serene",
- "stripe",
- "Taupe",
- "textured",
- "Vinyl",
- "Wallcovering",
- "Wood Grain",
- "Yellow"
- ],
- "max_price": 43.22,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/whittier-way-twisted-paper-weave-hlw-73158"
- },
- {
- "sku": "kittery-brick-affinity-stria-wallpaper-cca-83137",
- "handle": "kittery-brick-affinity-stria-wallpaper-cca-83137",
- "title": "Kittery Brick Affinity Stria Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/86fbcc9218a5c9975ece2f334a984895.jpg?v=1572309970",
- "tags": [
- "Architectural",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Prepasted",
- "Red",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/kittery-brick-affinity-stria-wallpaper-cca-83137"
- },
- {
- "sku": "dwc-1001613",
- "handle": "dwc-1001613",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693308538931.jpg?v=1775521121",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Bohemian",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Geometric",
- "Gray",
- "NCW4306-02",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paper",
- "Stripe",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001613"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_mya-9440-jpg",
- "handle": "wolfgordonwallcovering_dwwg_mya-9440-jpg",
- "title": "Maya - Carbon | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/mya-9440.jpg?v=1762302154",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Carbon",
- "Class A Fire Rated",
- "Coated Upholstery",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Gray",
- "Maya",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings",
- "Woven"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_mya-9440-jpg"
- },
- {
- "sku": "kylie-denim-cabin-stripe-wallpaper-cca-83042",
- "handle": "kylie-denim-cabin-stripe-wallpaper-cca-83042",
- "title": "Kylie Denim Cabin Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/91e4f7ec4e5049165d03386432d1012b.jpg?v=1572309966",
- "tags": [
- "Architectural",
- "Beige",
- "Blue",
- "Brown",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 64.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/kylie-denim-cabin-stripe-wallpaper-cca-83042"
- },
- {
- "sku": "douglas-beige-vintage-planes-wallpaper-cca-82938",
- "handle": "douglas-beige-vintage-planes-wallpaper-cca-82938",
- "title": "Douglas Beige Vintage Planes Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/2ef20e0c22cd0f2242f3d4a7ea615dfb.jpg?v=1572309962",
- "tags": [
- "Airplane",
- "Architectural",
- "Beige",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Masculine",
- "Novelty",
- "Paper",
- "Prepasted",
- "Scenic",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Vintage",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/douglas-beige-vintage-planes-wallpaper-cca-82938"
- },
- {
- "sku": "dwtt-71501-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71501-designer-wallcoverings-los-angeles",
- "title": "Brad Silver on Charcoal | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T11039_bbf9171b-cc7a-4ccd-af85-64f9f0ee4ed8.jpg?v=1733893952",
- "tags": [
- "Architectural",
- "contemporary",
- "geometric",
- "Geometric Resource 2",
- "Pattern",
- "Silver on Charcoal",
- "T11039",
- "taupe",
- "Thibaut",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71501-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "aubrey-brown-crystal-medallion-texture-wallpaper-cca-83246",
- "handle": "aubrey-brown-crystal-medallion-texture-wallpaper-cca-83246",
- "title": "Aubrey Brown Crystal Medallion Texture Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/a3a8ba28305ae159ec06200be7174985.jpg?v=1572309982",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Damask",
- "Discontinued",
- "Easy Walls",
- "Gray",
- "LA Walls",
- "Medallion",
- "Modern",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/aubrey-brown-crystal-medallion-texture-wallpaper-cca-83246"
- },
- {
- "sku": "ludlow-blue-paisley-wallpaper-cca-82915",
- "handle": "ludlow-blue-paisley-wallpaper-cca-82915",
- "title": "Ludlow Blue Paisley Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/4ba15b366076591cb8059c1a8082d095.jpg?v=1572309962",
- "tags": [
- "Architectural",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Gray",
- "LA Walls",
- "Masculine",
- "Paisley",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ludlow-blue-paisley-wallpaper-cca-82915"
- },
- {
- "sku": "essone-durable-vinyl-dur-72275",
- "handle": "essone-durable-vinyl-dur-72275",
- "title": "Essone Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72275-sample-clean.jpg?v=1774484981",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Organic Modern",
- "Serene",
- "Stripe",
- "Taupe",
- "Textured",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/essone-durable-vinyl-dur-72275"
- },
- {
- "sku": "kennebunk-lavender-textured-pinstripe-wallpaper-cca-83099",
- "handle": "kennebunk-lavender-textured-pinstripe-wallpaper-cca-83099",
- "title": "Kennebunk Lavender Textured Pinstripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ef173076d27e89824fdbe2e21fbef4f7.jpg?v=1572309968",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Kennebunk Lavender Textured Pinstripe Wallcovering",
- "LA Walls",
- "Lavender",
- "Light Gray",
- "Paper",
- "Prepasted",
- "Purple",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/kennebunk-lavender-textured-pinstripe-wallpaper-cca-83099"
- },
- {
- "sku": "oxford-type-ii-vinyl-wallcovering-xvg-49323",
- "handle": "oxford-type-ii-vinyl-wallcovering-xvg-49323",
- "title": "Oxford Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/baccarat-vesper.jpg?v=1777480352",
- "tags": [
- "Almond",
- "Architectural",
- "Basil",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Fern",
- "Grasscloth",
- "Green",
- "Hazel",
- "Hollywood Wallcoverings",
- "Lemon",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Moss",
- "Office",
- "Olive Green",
- "Organic Modern",
- "Serene",
- "Solid",
- "Taupe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Walnut"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/oxford-type-ii-vinyl-wallcovering-xvg-49323"
- },
- {
- "sku": "dwtt-81111-designer-wallcoverings-los-angeles",
- "handle": "dwtt-81111-designer-wallcoverings-los-angeles",
- "title": "Tanglewood | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/T24376_07b98fe4-25fe-4095-8c37-e9eecf36bebe.jpg?v=1743194492",
- "tags": [
- "Architectural",
- "Damask",
- "Pattern",
- "silver",
- "T24376",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 65.16,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-81111-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_qnt-5542-jpg",
- "handle": "wolfgordonwallcovering_dwwg_qnt-5542-jpg",
- "title": "Quinault - Oak | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/qnt-5542.jpg?v=1762303363",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Beige",
- "Black",
- "Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Grasscloth",
- "Oak",
- "Quinault",
- "RAMPART®",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings",
- "Woven"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_qnt-5542-jpg"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_sp10217-jpg",
- "handle": "wolfgordonwallcovering_dwwg_sp10217-jpg",
- "title": "SP10217 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_sp10216.jpg?v=1733872370",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Gray",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_sp10217-jpg"
- },
- {
- "sku": "canal-texture-durable-walls-xwd-52099",
- "handle": "canal-texture-durable-walls-xwd-52099",
- "title": "Canal Texture Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/capulet-sandalwood.jpg?v=1777480406",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Brown",
- "Bedroom",
- "Beige",
- "Brown",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Fire Rated",
- "Flame Certificate Available",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Brown",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Minimalist",
- "Organic Modern",
- "Stripe",
- "Tan",
- "Texture",
- "Textured",
- "Type 2 Durable Vinyl",
- "USA",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering",
- "Warm",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\""
- ],
- "max_price": 66.82,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/canal-texture-durable-walls-xwd-52099"
- },
- {
- "sku": "pleated-perfect-paradise-ppp-2618",
- "handle": "pleated-perfect-paradise-ppp-2618",
- "title": "Pleated Perfect Paradise | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ppp-2618-sample-pleated-perfect-paradise-hollywood-wallcoverings.jpg?v=1775729153",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Light Brown",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 35.66,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/pleated-perfect-paradise-ppp-2618"
- },
- {
- "sku": "xanadu-s-retro-geometric-scr-8035",
- "handle": "xanadu-s-retro-geometric-scr-8035",
- "title": "Xanadu's Retro Geometric",
- "vendor": "Designer Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/6e57f895aa6cf29866877ccc4f96150b.jpg?v=1572309105",
- "tags": [
- "Architectural",
- "Blue",
- "Commercial",
- "Designer Wallcoverings",
- "Geometric",
- "Luxury Screen Printed Wallpapers",
- "Mid-Century Modern",
- "Paper",
- "Screen Print",
- "Wallcovering",
- "Whimsical Screen Prints Vol. 1",
- "White"
- ],
- "max_price": 271.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/xanadu-s-retro-geometric-scr-8035"
- },
- {
- "sku": "canal-stripe-texture-durable-walls-xwd-52115",
- "handle": "canal-stripe-texture-durable-walls-xwd-52115",
- "title": "Canal Stripe Texture Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwd-52115-sample-canal-stripe-texture-durable-hollywood-wallcoverings.jpg?v=1775707121",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Beige",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Fire Rated",
- "Flame Certificate Available",
- "Geometric",
- "Gold",
- "Grasscloth",
- "Grasscloth Weave",
- "Green",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Khaki",
- "Light Beige",
- "Linear",
- "Living Room",
- "Olive Green",
- "Organic Modern",
- "Pale Beige",
- "Pattern",
- "Serene",
- "Stripe",
- "Striped",
- "Textured",
- "Timeless",
- "Traditional",
- "Transitional",
- "Type 2 Durable Vinyl",
- "USA",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\""
- ],
- "max_price": 66.82,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/canal-stripe-texture-durable-walls-xwd-52115"
- },
- {
- "sku": "narcisse-noir-wallpaper-xa7-66457",
- "handle": "narcisse-noir-wallpaper-xa7-66457",
- "title": "Narcisse Noir Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/0ae098032c1fe847886f615cbc3b9cf5.jpg?v=1775123534",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "calcium carbonate/pulp",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Entryway",
- "Farmhouse",
- "Grasscloth",
- "Living Room",
- "Narcisse Noir Wallcovering",
- "Natural Wallcovering",
- "Office",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Rustic",
- "Stripe",
- "Striped",
- "Tan",
- "Textural",
- "Textured",
- "Traditional",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 49.3,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/narcisse-noir-wallpaper-xa7-66457"
- },
- {
- "sku": "chinese-fret-walls-cfw-9486",
- "handle": "chinese-fret-walls-cfw-9486",
- "title": "Chinese Fret | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/cfw-9486-sample-chinese-fret-hollywood-wallcoverings.jpg?v=1775708053",
- "tags": [
- "Architectural",
- "Beige",
- "Chinoiserie",
- "Class A Fire Rated",
- "Commercial",
- "Commercial - Cleanable",
- "Elegant Vinyls Vol. 1",
- "Fretwork",
- "Geometric",
- "Gold",
- "Hollywood Wallcoverings",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 39.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/chinese-fret-walls-cfw-9486"
- },
- {
- "sku": "hollywood-contemporary-coast-xhw-2010378",
- "handle": "hollywood-contemporary-coast-xhw-2010378",
- "title": "Hollywood Contemporary Coast | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/surf-el_dorado_30b2926f-2cf8-4c70-8ca5-34407aca0a34.jpg?v=1777481083",
- "tags": [
- "35.04 oz",
- "54 Inch Width",
- "54\" Width",
- "Abstract",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "AI-Analyzed-v2",
- "Architectural",
- "Background Color Tan",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Hallway",
- "Healthcare",
- "Heavy Duty",
- "Hollywood Contemporary Coast",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Brown",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Minimalist",
- "Modern",
- "Organic Modern",
- "Serene",
- "Tan",
- "Taupe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 35.04 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Look",
- "Yellow"
- ],
- "max_price": 96.58,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hollywood-contemporary-coast-xhw-2010378"
- },
- {
- "sku": "ncw4395-04",
- "handle": "ncw4395-04",
- "title": "Ashdown Kingsley Silver/Ivory - Neutral Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497266901043.jpg?v=1775520865",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Floral",
- "NCW4395-04",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Paper",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Wallcoverings",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4395-04"
- },
- {
- "sku": "canal-texture-durable-walls-xwa-52087",
- "handle": "canal-texture-durable-walls-xwa-52087",
- "title": "Canal Texture Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/capulet-cream.jpg?v=1777480386",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Cream",
- "Fire Rated",
- "Flame Certificate Available",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Linen",
- "Linen Texture",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Minimalist",
- "Organic Modern",
- "Serene",
- "Stripe",
- "Texture",
- "Textured",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Yellow"
- ],
- "max_price": 66.82,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/canal-texture-durable-walls-xwa-52087"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_blr-5017-jpg",
- "handle": "wolfgordonwallcovering_dwwg_blr-5017-jpg",
- "title": "Ballari - Parchment | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/blr-5017.jpg?v=1762288047",
- "tags": [
- "100% Vinyl",
- "Abstract",
- "Architectural",
- "Ballari",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Cream",
- "Parchment",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_blr-5017-jpg"
- },
- {
- "sku": "chesterfield-acoustical-wallcovering-xjz-47386",
- "handle": "chesterfield-acoustical-wallcovering-xjz-47386",
- "title": "Chesterfield Acoustical Wallcovering",
- "vendor": "Hollywood Acoustical",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/f2b6e0b2b79fa872224f8527bcfc1aae.jpg?v=1572310051",
- "tags": [
- "100% recycled polyester",
- "Architectural",
- "Bedroom",
- "Charcoal Gray",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Fabric",
- "Fabric-backed Vinyl",
- "Gray",
- "Grey",
- "Hallway",
- "Hollywood Acoustical",
- "Living Room",
- "Minimalist",
- "Polyester",
- "Serene",
- "Silver Gray",
- "Stripe",
- "Textured",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/chesterfield-acoustical-wallcovering-xjz-47386"
- },
- {
- "sku": "eur-80334-ncw4306-designer-wallcoverings-los-angeles",
- "handle": "eur-80334-ncw4306-designer-wallcoverings-los-angeles",
- "title": "Belle Ile Stripe 04 - Blue Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513504546867.jpg?v=1775523446",
- "tags": [
- "Architectural",
- "Bedroom",
- "Belle Ile Stripe",
- "Bohemian",
- "Brown",
- "Class A Fire Rated",
- "Coastal",
- "Commercial",
- "Contemporary",
- "Geometric",
- "Global",
- "Hallway",
- "LES REVES",
- "Light Blue",
- "Living Room",
- "NCW4306",
- "NCW4306-04",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Paper",
- "Seafoam Green",
- "Serene",
- "Stripe",
- "Takumi",
- "Taupe",
- "Textured",
- "Turquoise",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80334-ncw4306-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "zeya-mural-ashlar-romo",
- "handle": "zeya-mural-ashlar-romo",
- "title": "Zeya Mural Ashlar | Romo",
- "vendor": "Romo",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W971-01-zeya-mural-ashlar_04.jpg?v=1776399030",
- "tags": [
- "Abstract",
- "Architectural",
- "Background Color white",
- "beige",
- "brown",
- "Burnished Bronze",
- "Commercial",
- "Conference Room",
- "Contemporary",
- "gray",
- "Kabu Wallcoverings",
- "Large",
- "Lobby",
- "Mural",
- "Non-woven",
- "Office",
- "Romo",
- "Sage Green",
- "Slate Blue",
- "Smooth",
- "Soft White",
- "Texture",
- "Transitional",
- "W971/01",
- "Wallcovering",
- "Warm Taupe",
- "Zeya Mural"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/zeya-mural-ashlar-romo"
- },
- {
- "sku": "artisma-croco-vinyl-dwx-58152",
- "handle": "artisma-croco-vinyl-dwx-58152",
- "title": "Artisma Croco Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58152-sample-artisma-croco-vinyl-hollywood-wallcoverings.jpg?v=1775699281",
- "tags": [
- "54\" Width",
- "Animal Skin",
- "Architectural",
- "Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Crocodile",
- "Dark Brown",
- "Faux Leather",
- "hollywood",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Neutral",
- "Organic",
- "Texture",
- "Textured",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wide Width"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/artisma-croco-vinyl-dwx-58152"
- },
- {
- "sku": "hollywood-modern-wood-xhw-2010209",
- "handle": "hollywood-modern-wood-xhw-2010209",
- "title": "Hollywood Modern Wood | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/intarsia-depth_e68d1a56-b25e-4061-b995-7931e48e1889.jpg?v=1777481263",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Brown",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Dark Brown",
- "Dining Room",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Geometric",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Living Room",
- "Medium Brown",
- "Mfr-Image-Refreshed",
- "Modern",
- "Office",
- "Sophisticated",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Grain",
- "Wood Look"
- ],
- "max_price": 50.75,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hollywood-modern-wood-xhw-2010209"
- },
- {
- "sku": "dwkk-127696",
- "handle": "dwkk-127696",
- "title": "Rafi - Limestone By Clarke And Clarke | Clarke & Clarke Reflections | Tone On Tone Wallcovering Print",
- "vendor": "Clarke And Clarke",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W0060_04_CAC_0c54e4df-7ffe-488c-81e8-cf24a4812e86.jpg?v=1726037784",
- "tags": [
- "20.875In",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Clarke & Clarke Reflections",
- "Clarke And Clarke",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "display_variant",
- "Grey",
- "Hallway",
- "Light Gray",
- "Light Grey",
- "Limestone",
- "Living Room",
- "Minimalist",
- "Pale Grey",
- "Paper",
- "Print",
- "Rafi",
- "Serene",
- "Solid",
- "Texture",
- "Textured",
- "Tone On Tone",
- "United Kingdom",
- "W0060/04.Cac.0",
- "Wallcovering",
- "Wood Pulp - 74%;Binder - 13%;Polyester - 13%"
- ],
- "max_price": 176.24,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwkk-127696"
- },
- {
- "sku": "john-s-thick-embossed-vinyl-xjt-44466",
- "handle": "john-s-thick-embossed-vinyl-xjt-44466",
- "title": "John's Thick Embossed Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/XJT-44466-clean_aedb4dc7-2d2f-4dff-9d0f-5196efd6825b.jpg?v=1774479196",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "ASTM E84 Class A",
- "Bedroom",
- "Beige",
- "Brown",
- "Check",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Embossed Texture",
- "Geometric",
- "Hallway",
- "Hollywood Wallcoverings",
- "John's Thick Embossed Vinyl",
- "Living Room",
- "Rustic",
- "Tan",
- "Taupe",
- "Textured",
- "Tile",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/john-s-thick-embossed-vinyl-xjt-44466"
- },
- {
- "sku": "jutely-vinyl-dwx-58129",
- "handle": "jutely-vinyl-dwx-58129",
- "title": "Jutely Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58129-sample-jutely-vinyl-hollywood-wallcoverings.jpg?v=1775720277",
- "tags": [
- "54\" Width",
- "Architectural",
- "Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contract",
- "Contract Wallcovering",
- "Durable",
- "Grasscloth",
- "hollywood",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Jute",
- "Light Beige",
- "Natural Look",
- "Neutral",
- "Texture",
- "Textured",
- "Traditional",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wide Width",
- "Woven"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/jutely-vinyl-dwx-58129"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_mru-3301_8-jpg",
- "handle": "wolfgordonwallcovering_dwwg_mru-3301_8-jpg",
- "title": "Marlu - Gunmetal | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/mru-3301_8.jpg?v=1762301801",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Black",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Embossed",
- "Geometric",
- "Gray",
- "Marlu",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_mru-3301_8-jpg"
- },
- {
- "sku": "vernon-durable-walls-xwr-52698",
- "handle": "vernon-durable-walls-xwr-52698",
- "title": "Vernon Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwr-52698-sample-vernon-durable-hollywood-wallcoverings.jpg?v=1775735785",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Green",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Brown",
- "Dark Olive Green",
- "Grasscloth",
- "Green",
- "Hollywood Wallcoverings",
- "Khaki",
- "Leed Walls",
- "Living Room",
- "Office",
- "Olive",
- "Olive Green",
- "Solid",
- "Sophisticated",
- "Textured",
- "Traditional",
- "Transitional",
- "Vernon Durable",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/vernon-durable-walls-xwr-52698"
- },
- {
- "sku": "jonesport-cream-cabin-stripe-wallpaper-cca-83175",
- "handle": "jonesport-cream-cabin-stripe-wallpaper-cca-83175",
- "title": "Jonesport Cream Cabin Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/8af5af0a7c4631387aeeb157c845ba05.jpg?v=1572309971",
- "tags": [
- "Architectural",
- "Brown",
- "Commercial",
- "Cream",
- "Discontinued",
- "Easy Walls",
- "Gray",
- "LA Walls",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Traditional",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/jonesport-cream-cabin-stripe-wallpaper-cca-83175"
- },
- {
- "sku": "eur-80158-ncw4152-designer-wallcoverings-los-angeles",
- "handle": "eur-80158-ncw4152-designer-wallcoverings-los-angeles",
- "title": "Lochwood 05 - Soft White Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513497731123.jpg?v=1775522469",
- "tags": [
- "Architectural",
- "Bedroom",
- "Biophilic",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Gray",
- "Grey",
- "Hallway",
- "Light Grey",
- "Living Room",
- "Lochwood",
- "NCW4152",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Organic Modern",
- "Pale Green",
- "Paper",
- "ROSSLYN",
- "Scenic",
- "Serene",
- "Silver",
- "Traditional",
- "Trees",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80158-ncw4152-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "eur-80375-ncw4354-designer-wallcoverings-los-angeles",
- "handle": "eur-80375-ncw4354-designer-wallcoverings-los-angeles",
- "title": "Garance 05 - Black Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513505857587.jpg?v=1775523691",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Black",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Dining Room",
- "Eclectic",
- "Floral",
- "Garance",
- "LES INDIENNES",
- "Living Room",
- "Medallion",
- "NCW4354",
- "NCW4354-05",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Paper",
- "Sophisticated",
- "Traditional",
- "Transitional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80375-ncw4354-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "rivington-rice-paper-durable-vinyl-walls-xwj-52447",
- "handle": "rivington-rice-paper-durable-vinyl-walls-xwj-52447",
- "title": "Rivington Rice Paper Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwj-52447-sample-rivington-rice-paper-durable-vinyl-hollywood-wallcoverings.jpg?v=1775730763",
- "tags": [
- "Architectural",
- "Bedroom",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Yellow",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gray",
- "Hallway",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Light Brown",
- "Living Room",
- "Minimalist",
- "Pale Yellow",
- "Paper",
- "Serene",
- "Solid",
- "Textured",
- "Vinyl",
- "Vinyl Wallcoverings",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/rivington-rice-paper-durable-vinyl-walls-xwj-52447"
- },
- {
- "sku": "eur-80537-pcl695-designer-wallcoverings-los-angeles",
- "handle": "eur-80537-pcl695-designer-wallcoverings-los-angeles",
- "title": "Malmaison Botanical 07 | Christian Lacroix Europe",
- "vendor": "Christian Lacroix Europe",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/56557_2aa0baad-0b1a-45f4-8e9a-32f79b3c45d8.webp?v=1738950909",
- "tags": [
- "Almond",
- "Architectural",
- "Bedroom",
- "Botanical",
- "Charcoal Gray",
- "Christian Lacroix Europe",
- "Class A Fire Rated",
- "Color: Green",
- "Commercial",
- "Contemporary",
- "Cottagecore",
- "Creme",
- "Dining Room",
- "Estimated Type: Paper",
- "Floral",
- "Grandmillennial",
- "Gray",
- "Green",
- "INCROYABLE ET MARVEILLEUS",
- "Living Room",
- "Malmaison Botanical",
- "Non-Woven",
- "Off-white",
- "Olive",
- "Organic",
- "Pattern",
- "PCL695",
- "Smoke",
- "Traditional",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80537-pcl695-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "frank-s-faux-finish-fff-2934",
- "handle": "frank-s-faux-finish-fff-2934",
- "title": "Frank's Faux Finish Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fff-2934-sample-frank-s-faux-finish-wallpaper-hollywood-wallcoverings.jpg?v=1775714262",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Commercial",
- "Fabric",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Light Brown",
- "Textured",
- "Traditional",
- "Transitional",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 36.21,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/frank-s-faux-finish-fff-2934"
- },
- {
- "sku": "hairly-hide-faux-vinyl-hide-wallpaper-burnt-orange-spice-fvh-40402",
- "handle": "hairly-hide-faux-vinyl-hide-wallpaper-burnt-orange-spice-fvh-40402",
- "title": "Hairly Hide - Faux Vinyl Hide - Burnt Orange Spice | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fvh-40402-sample-hairly-hide-faux-vinyl-hide-burnt-orange-spice-hollywood.jpg?v=1775715526",
- "tags": [
- "Architectural",
- "Bold",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Orange",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 204.94,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hairly-hide-faux-vinyl-hide-wallpaper-burnt-orange-spice-fvh-40402"
- },
- {
- "sku": "spencer-paintable-supaglypta-wallpaper-gga-82652",
- "handle": "spencer-paintable-supaglypta-wallpaper-gga-82652",
- "title": "Spencer Paintable Supaglypta | Jeffrey Stevens",
- "vendor": "Jeffrey Stevens",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/7f5da467c7415dd1cf9614c61e0de49b.jpg?v=1750790456",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Discontinued",
- "Embossed",
- "Floral",
- "Flowers",
- "Geometric",
- "Jeffrey Stevens",
- "Light Gray",
- "Neutral",
- "Off-white",
- "Paintable",
- "Paper",
- "Phasing-2026-04",
- "Renovation",
- "Residential",
- "Series: Brewster",
- "Spencer Paintable Supaglypta",
- "Strippable",
- "Textured",
- "Traditional",
- "Unpasted",
- "Victorian",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White"
- ],
- "max_price": 49.02,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/spencer-paintable-supaglypta-wallpaper-gga-82652"
- },
- {
- "sku": "cumberland-natural-wood-texture-wallpaper-cca-82906",
- "handle": "cumberland-natural-wood-texture-wallpaper-cca-82906",
- "title": "Cumberland Natural Wood Texture Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ac6f395c88361509340e1eb314ecf5ca.jpg?v=1572309961",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Farmhouse",
- "Faux",
- "Faux Effects",
- "LA Walls",
- "Light Brown",
- "Masculine",
- "Natural",
- "Prepasted",
- "Scandinavian",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "Wood",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/cumberland-natural-wood-texture-wallpaper-cca-82906"
- },
- {
- "sku": "kylie-aqua-cabin-stripe-wallpaper-cca-83040",
- "handle": "kylie-aqua-cabin-stripe-wallpaper-cca-83040",
- "title": "Kylie Aqua Cabin Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/3d3ab6dfc50297b502fa1b4520903da1.jpg?v=1572309966",
- "tags": [
- "Architectural",
- "Beige",
- "Blue",
- "Coastal",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Gold",
- "LA Walls",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04",
- "Yellow"
- ],
- "max_price": 64.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/kylie-aqua-cabin-stripe-wallpaper-cca-83040"
- },
- {
- "sku": "midnight-in-the-stone-garden-small-mural-by-retro-walls-rtr-37237",
- "handle": "midnight-in-the-stone-garden-small-mural-by-retro-walls-rtr-37237",
- "title": "Midnight in the Stone Garden Small Mural by Retro Walls",
- "vendor": "Traditional Whimsy",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/392be6d2a56abca3ec50dc6cb363ace4.jpg?v=1572309702",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Blue",
- "Commercial",
- "Commercial Wallcovering",
- "Elephant",
- "Gray",
- "Heavy-duty Wallcovering with paper top-layer and non-woven backing // Colourfast and washable with a soft cloth // Butted seam (but",
- "Lion",
- "Mural",
- "Owl",
- "Paper",
- "Scenic",
- "Traditional Whimsy",
- "Wallcovering",
- "Whimsical"
- ],
- "max_price": 84,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/midnight-in-the-stone-garden-small-mural-by-retro-walls-rtr-37237"
- },
- {
- "sku": "austin-grey-plaid-wallpaper-cca-82962",
- "handle": "austin-grey-plaid-wallpaper-cca-82962",
- "title": "Austin Grey Plaid Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/da265c34b61a7abf31892dfe38cd9051.jpg?v=1572309963",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Gray",
- "Green",
- "LA Walls",
- "Masculine",
- "Plaid",
- "Plaids",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/austin-grey-plaid-wallpaper-cca-82962"
- },
- {
- "sku": "eur-80309-ncw4301-designer-wallcoverings-los-angeles",
- "handle": "eur-80309-ncw4301-designer-wallcoverings-los-angeles",
- "title": "Beau Rivage 06 - Blue Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513503334451.jpg?v=1775523294",
- "tags": [
- "Abstract",
- "Architectural",
- "Bathroom",
- "Beau Rivage",
- "Bedroom",
- "Blue",
- "Class A Fire Rated",
- "Coastal",
- "Commercial",
- "Contemporary",
- "Geometric",
- "Hallway",
- "LES REVES",
- "Light Blue",
- "Navy Blue",
- "NCW4301",
- "NCW4301-06",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Paper",
- "Scandinavian",
- "Serene",
- "Sky Blue",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80309-ncw4301-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "flagler-embossed-durable-walls-xwq-52973",
- "handle": "flagler-embossed-durable-walls-xwq-52973",
- "title": "Flagler Embossed Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwq-52973-sample-flagler-embossed-durable-hollywood-wallcoverings.jpg?v=1775713325",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Beige",
- "Biophilic",
- "Botanical",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Embossed Texture",
- "Gold",
- "Grasscloth",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Organic Modern",
- "Primary Suite",
- "Serene",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/flagler-embossed-durable-walls-xwq-52973"
- },
- {
- "sku": "zebilini-wallpaper-xd6-66708",
- "handle": "zebilini-wallpaper-xd6-66708",
- "title": "Zebilini Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/5e873b73bde0ae9320aa5064dbc329cb.jpg?v=1775133931",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Black",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Entryway",
- "Geometric",
- "Gray",
- "Living Room",
- "Modern",
- "Office",
- "Paper",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Transitional",
- "vinyl",
- "Vinyls",
- "Wallcovering",
- "White",
- "Zebilini Wallcovering"
- ],
- "max_price": 38.55,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/zebilini-wallpaper-xd6-66708"
- },
- {
- "sku": "peter-s-plastered-walls-ppw-2868",
- "handle": "peter-s-plastered-walls-ppw-2868",
- "title": "Peter's Plastered | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ppw-2868-sample-peter-s-plastered-hollywood-wallcoverings.jpg?v=1775729042",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Light Gray",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 40.54,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/peter-s-plastered-walls-ppw-2868"
- },
- {
- "sku": "newcastle-type-ii-vinyl-wallcovering-xve-49310",
- "handle": "newcastle-type-ii-vinyl-wallcovering-xve-49310",
- "title": "Newcastle Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/belize-sea_almond_71a67f34-74e6-4fbd-9a42-ae42ba51de7c.jpg?v=1777481421",
- "tags": [
- "Architectural",
- "Basketweave",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Newcastle Type 2 Vinyl Wallcovering",
- "Taupe",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/newcastle-type-ii-vinyl-wallcovering-xve-49310"
- },
- {
- "sku": "nautilus-by-innovations-usa-dwc-nautilus-1",
- "handle": "nautilus-by-innovations-usa-dwc-nautilus-1",
- "title": "Nautilus | Innovations USA",
- "vendor": "Innovations USA",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/Nautilus-1.jpg?v=1736198903",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "ASTM E84",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gold",
- "Innovations USA",
- "Light Beige",
- "Light Gray",
- "Nautilus",
- "Nautilus-1",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/nautilus-by-innovations-usa-dwc-nautilus-1"
- },
- {
- "sku": "dwtt-72169-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72169-designer-wallcoverings-los-angeles",
- "title": "Ramie Bay Plum | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T3633.jpg?v=1733892577",
- "tags": [
- "Architectural",
- "beige",
- "brown",
- "Grasscloth Resource 2",
- "Pattern",
- "Plum",
- "T3633",
- "tan",
- "Texture",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72169-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "peter-s-plastered-walls-ppw-2870",
- "handle": "peter-s-plastered-walls-ppw-2870",
- "title": "Peter's Plastered | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ppw-2870-sample-peter-s-plastered-hollywood-wallcoverings.jpg?v=1775729048",
- "tags": [
- "Architectural",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Gray",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 40.54,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/peter-s-plastered-walls-ppw-2870"
- },
- {
- "sku": "eur-80293-ncw4277-designer-wallcoverings-los-angeles",
- "handle": "eur-80293-ncw4277-designer-wallcoverings-los-angeles",
- "title": "Meredith 03 - Taupe Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513502515251.jpg?v=1775523205",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Commercial",
- "COROMANDEL",
- "Damask",
- "Dining Room",
- "Floral",
- "Grandmillennial",
- "Living Room",
- "Meredith",
- "NCW4277",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Oatmeal",
- "Paper",
- "Scroll",
- "Sophisticated",
- "Textured",
- "Traditional",
- "Victorian",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80293-ncw4277-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "chinese-fret-walls-cfw-9495",
- "handle": "chinese-fret-walls-cfw-9495",
- "title": "Chinese Fret | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/cfw-9495-sample-chinese-fret-hollywood-wallcoverings.jpg?v=1775708085",
- "tags": [
- "Architectural",
- "Beige",
- "Brown",
- "Chinoiserie",
- "Class A Fire Rated",
- "Commercial",
- "Commercial - Cleanable",
- "Elegant Vinyls Vol. 1",
- "Fretwork",
- "Geometric",
- "Hollywood Wallcoverings",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 39.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/chinese-fret-walls-cfw-9495"
- },
- {
- "sku": "saint-lore-durable-vinyl-dur-72230",
- "handle": "saint-lore-durable-vinyl-dur-72230",
- "title": "Saint Lore Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72230-sample-clean.jpg?v=1774484834",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Linen Texture",
- "Living Room",
- "Organic Modern",
- "Pink",
- "Rose Gold",
- "Serene",
- "Taupe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/saint-lore-durable-vinyl-dur-72230"
- },
- {
- "sku": "wiscasset-cream-farmhouse-stripe-wallpaper-cca-83200",
- "handle": "wiscasset-cream-farmhouse-stripe-wallpaper-cca-83200",
- "title": "Wiscasset Cream Farmhouse Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/676bbda185aff8d8334ca60778f6ad73.jpg?v=1572309972",
- "tags": [
- "Architectural",
- "Beige",
- "Commercial",
- "Country",
- "Cream",
- "Discontinued",
- "Easy Walls",
- "Farmhouse",
- "LA Walls",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wiscasset-cream-farmhouse-stripe-wallpaper-cca-83200"
- },
- {
- "sku": "seres-pampas-romo",
- "handle": "seres-pampas-romo",
- "title": "Seres Pampas | Romo",
- "vendor": "Romo",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W969-01-seres-wallcovering-pampas_01.jpg?v=1776485658",
- "tags": [
- "Architectural",
- "Background Color beige",
- "beige",
- "Commercial",
- "cream",
- "Embossed Wallcovering",
- "Grasscloth",
- "Hotel Room",
- "Ivory",
- "Kabu Wallcoverings",
- "light brown",
- "Lobby",
- "Natural",
- "Non-Woven",
- "Office",
- "Romo",
- "Scandinavian",
- "Seres",
- "Small",
- "Stripe",
- "Texture",
- "Textured",
- "Traditional",
- "Transitional",
- "W969/01",
- "Wallcovering",
- "Warm Taupe"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/seres-pampas-romo"
- },
- {
- "sku": "dwc-1001667",
- "handle": "dwc-1001667",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693311258675.jpg?v=1775521469",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Bohemian",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Geometric",
- "Gold",
- "NCW4391-01",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paper",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001667"
- },
- {
- "sku": "hilo-highway-diamond-grass-hlw-73129",
- "handle": "hilo-highway-diamond-grass-hlw-73129",
- "title": "Hilo Highway - Diamond Grass | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73129-sample-clean.jpg?v=1774483613",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Brown",
- "Charcoal",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Gray",
- "Grey",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Natural",
- "Naturally Glamorous",
- "Organic",
- "Organic Modern",
- "Rustic",
- "Taupe",
- "Textured",
- "Wallcovering"
- ],
- "max_price": 89.52,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hilo-highway-diamond-grass-hlw-73129"
- },
- {
- "sku": "pauline-s-retro-geometric-scr-8002",
- "handle": "pauline-s-retro-geometric-scr-8002",
- "title": "Pauline's Retro Geometric",
- "vendor": "Designer Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/9092bce2599e0c8a6f04624c9558ebde.jpg?v=1572309104",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Designer Wallcoverings",
- "Floral",
- "Ivory",
- "Light Blue",
- "Mid-Century Modern",
- "Paper",
- "Pauline's Retro Geometric",
- "Powder",
- "Screen Print",
- "Steel",
- "vinyl",
- "Wallcovering",
- "Whimsical Screen Prints Vol. 1",
- "White"
- ],
- "max_price": 146.18,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/pauline-s-retro-geometric-scr-8002"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_act-5079-jpg",
- "handle": "wolfgordonwallcovering_dwwg_act-5079-jpg",
- "title": "Acute - Emerald | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/act-5079.jpg?v=1762283618",
- "tags": [
- "100% Vinyl",
- "Abstract",
- "Acute",
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Dark Green",
- "Geometric",
- "Light Gray",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_act-5079-jpg"
- },
- {
- "sku": "ncw4394-04",
- "handle": "ncw4394-04",
- "title": "Ashdown Posingford Dove/Taupe - Brown Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497266540595.jpg?v=1775520831",
- "tags": [
- "Architectural",
- "Beige",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Cream",
- "Leaf",
- "NCW4394-04",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Paper",
- "Taupe",
- "Textured",
- "Traditional",
- "Vine",
- "Wallcovering",
- "Wallcoverings",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4394-04"
- },
- {
- "sku": "frank-s-faux-finish-fff-2926",
- "handle": "frank-s-faux-finish-fff-2926",
- "title": "Frank's Faux Finish Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fff-2926-sample-frank-s-faux-finish-wallpaper-hollywood-wallcoverings.jpg?v=1775714237",
- "tags": [
- "Architectural",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Tan",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 36.21,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/frank-s-faux-finish-fff-2926"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_ad10341-jpg",
- "handle": "wolfgordonwallcovering_dwwg_ad10341-jpg",
- "title": "Ambient Design - AD10341 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_ad10340.jpg?v=1733874105",
- "tags": [
- "AI-Analyzed-v2",
- "Ambient Design",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Maroon",
- "Red",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_ad10341-jpg"
- },
- {
- "sku": "dwtt-72293-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72293-designer-wallcoverings-los-angeles",
- "title": "Damask Resource 3 Green | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T7639.jpg?v=1733892342",
- "tags": [
- "Architectural",
- "Damask",
- "Damask Resource 3",
- "Green",
- "light green",
- "light yellow",
- "light yellow-green",
- "Pattern",
- "T7639",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72293-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "hereford-type-ii-vinyl-wallcovering-xuy-49262",
- "handle": "hereford-type-ii-vinyl-wallcovering-xuy-49262",
- "title": "Hereford Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/malachite-onyx.jpg?v=1777480316",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Blue",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Blue",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gray",
- "Hallway",
- "Hereford Type 2 Vinyl Wallcovering",
- "Hollywood Wallcoverings",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Modern",
- "Moody",
- "Navy",
- "Slate Grey",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hereford-type-ii-vinyl-wallcovering-xuy-49262"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_st9513-jpg",
- "handle": "wolfgordonwallcovering_dwwg_st9513-jpg",
- "title": "ST9513 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_st9511.jpg?v=1733872237",
- "tags": [
- "AI-Analyzed-v2",
- "Animal/Insects",
- "Architectural",
- "Black",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Solid",
- "ST9513",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_st9513-jpg"
- },
- {
- "sku": "frank-s-faux-finish-fff-2930",
- "handle": "frank-s-faux-finish-fff-2930",
- "title": "Frank's Faux Finish Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fff-2930-sample-frank-s-faux-finish-wallpaper-hollywood-wallcoverings.jpg?v=1775714249",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Faux Finish",
- "Gray",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 36.21,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/frank-s-faux-finish-fff-2930"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_hug-3327_8-jpg",
- "handle": "wolfgordonwallcovering_dwwg_hug-3327_8-jpg",
- "title": "Hugo - Pebble | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/hug-3327_8.jpg?v=1762297753",
- "tags": [
- "100% Vinyl",
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contract",
- "Gray",
- "Herringbone",
- "Hugo",
- "Light Gray",
- "Paper",
- "Pebble",
- "Silver",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_hug-3327_8-jpg"
- },
- {
- "sku": "eur-80200-ncw4185-designer-wallcoverings-los-angeles",
- "handle": "eur-80200-ncw4185-designer-wallcoverings-los-angeles",
- "title": "Mahayana 03 - Cool Gray Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513499435059.jpg?v=1775522720",
- "tags": [
- "Architectural",
- "Basketweave",
- "Bedroom",
- "CATHAY",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Geometric",
- "Gray",
- "Grey",
- "Hallway",
- "Light Silver",
- "Living Room",
- "Mahayana",
- "Minimalist",
- "Modern",
- "NCW4185",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Non-Woven",
- "Serene",
- "Silver",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80200-ncw4185-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwtt-71225-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71225-designer-wallcoverings-los-angeles",
- "title": "Passaro Damask Cream on Metallic Beige | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T89135_02e246d3-5124-4cef-984e-81e436103c56.jpg?v=1733894434",
- "tags": [
- "Architectural",
- "beige",
- "Damask",
- "Damask Resource 4",
- "off-white",
- "Pattern",
- "T89135",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71225-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "floating-fibers-dwx-58187",
- "handle": "floating-fibers-dwx-58187",
- "title": "Floating Fibers | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58187-sample-floating-fibers-hollywood-wallcoverings.jpg?v=1775714143",
- "tags": [
- "54\" Width",
- "Abstract",
- "Architectural",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Dark Olive Green",
- "Fiber",
- "hollywood",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Natural",
- "Natural Look",
- "Neutral",
- "Olive Green",
- "Texture",
- "Textured",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wide Width"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/floating-fibers-dwx-58187"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_ar9502-jpg",
- "handle": "wolfgordonwallcovering_dwwg_ar9502-jpg",
- "title": "Armor Paint - AR9502 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_ar9501.jpg?v=1733873907",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_ar9502-jpg"
- },
- {
- "sku": "dwtt-72074-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72074-designer-wallcoverings-los-angeles",
- "title": "Petite Diamond Beige | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T1802.jpg?v=1733892832",
- "tags": [
- "Architectural",
- "beige",
- "Geometric",
- "Geometric Resource",
- "off-white",
- "Pattern",
- "T1802",
- "Thibaut",
- "Traditional",
- "Trellis",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72074-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "frank-s-faux-finish-fff-2932",
- "handle": "frank-s-faux-finish-fff-2932",
- "title": "Frank's Faux Finish Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fff-2932-sample-frank-s-faux-finish-wallpaper-hollywood-wallcoverings.jpg?v=1775714255",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Commercial",
- "Faux Finish",
- "Gray",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Light Gray",
- "Stripe",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 36.21,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/frank-s-faux-finish-fff-2932"
- },
- {
- "sku": "capri-lavender-floral-scroll-wallpaper-cca-83048",
- "handle": "capri-lavender-floral-scroll-wallpaper-cca-83048",
- "title": "Capri Lavender Floral Scroll Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/248109dec3381ef4a1b6ec2ac77eb2fa.jpg?v=1572309967",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Floral",
- "Flowers",
- "Green",
- "LA Walls",
- "Lavender",
- "Prepasted",
- "Purple",
- "Series: Brewster",
- "Strippable",
- "Traditional",
- "Vine",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 64.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/capri-lavender-floral-scroll-wallpaper-cca-83048"
- },
- {
- "sku": "hollywood-tower-deco-xhw-201047",
- "handle": "hollywood-tower-deco-xhw-201047",
- "title": "Hollywood Tower Deco | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/avant-gazelle.jpg?v=1777480915",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "Abstract",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Art Deco",
- "Background Color White",
- "Bedroom",
- "Chevron",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contract Grade",
- "Contract Wallcovering",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Geometric",
- "Grey",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Gray",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Modern",
- "Off-white",
- "Paper",
- "Sophisticated",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Look"
- ],
- "max_price": 59.87,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hollywood-tower-deco-xhw-201047"
- },
- {
- "sku": "dwtt-72020-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72020-designer-wallcoverings-los-angeles",
- "title": "Wallcoverings Cream | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/Grasscloth5-Tabacon-Abaca-01.jpg?v=1773244677",
- "tags": [
- "Architectural",
- "Bedroom",
- "Blue",
- "Botanical",
- "Calm",
- "Commercial",
- "Dining Room",
- "Floral",
- "Grasscloth",
- "Living Room",
- "Medium Scale",
- "Paper",
- "Pattern",
- "REVIEW",
- "Serene",
- "T5750",
- "Textured",
- "Thibaut",
- "Thibaut Wallcoverings",
- "Traditional",
- "Wallcovering",
- "Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72020-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_sft-5025-jpg",
- "handle": "wolfgordonwallcovering_dwwg_sft-5025-jpg",
- "title": "Shift - Ash | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/sft-5025_2024-09-13-182529_zwsg.jpg?v=1762306140",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Geometric",
- "Light Gray",
- "RAMPART®",
- "Shift",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_sft-5025-jpg"
- },
- {
- "sku": "peter-s-plastered-walls-ppw-2883",
- "handle": "peter-s-plastered-walls-ppw-2883",
- "title": "Peter's Plastered | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ppw-2883-sample-peter-s-plastered-hollywood-wallcoverings.jpg?v=1775729092",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Light Brown",
- "Mediterranean",
- "Solid",
- "Tan",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 40.54,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/peter-s-plastered-walls-ppw-2883"
- },
- {
- "sku": "daytona-faux-contemporary-durable-walls-xwc-53204",
- "handle": "daytona-faux-contemporary-durable-walls-xwc-53204",
- "title": "Daytona Faux Contemporary Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwc-53204-sample-daytona-faux-contemporary-durable-hollywood-wallcoverings.jpg?v=1775710068",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Faux",
- "Faux Finish",
- "Geometric",
- "Hallway",
- "Hollywood Wallcoverings",
- "Lattice",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Pale Beige",
- "Serene",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/daytona-faux-contemporary-durable-walls-xwc-53204"
- },
- {
- "sku": "mason-light-grey-stripe-texture-wallpaper-cca-82923",
- "handle": "mason-light-grey-stripe-texture-wallpaper-cca-82923",
- "title": "Mason Light Grey Stripe Texture Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/14602e03a16ebb6042459dce858d7b05.jpg?v=1572309962",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Light Grey",
- "Masculine",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/mason-light-grey-stripe-texture-wallpaper-cca-82923"
- },
- {
- "sku": "fukaura-durable-vinyl-xrm-34137",
- "handle": "fukaura-durable-vinyl-xrm-34137",
- "title": "Fukaura Durable Vinyl",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/955326ca3871af6530de080107357834_6858c0bf-98d6-44d3-8149-cde6d1b0a898.jpg?v=1572310410",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Phillipe Romano",
- "Phillipe Romano Essential Textures",
- "Phillipe Romano Vinyls",
- "Stripe",
- "Textured",
- "Type 2",
- "Type 2 Durable Commercial and Residential - Cleanable",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Vinyls",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/fukaura-durable-vinyl-xrm-34137"
- },
- {
- "sku": "hainsville-faux-leather-durable-walls-xwt-53389",
- "handle": "hainsville-faux-leather-durable-walls-xwt-53389",
- "title": "Hainsville Faux Leather Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/reserve-riesling_b60c1d27-3390-488e-8624-f14cd6a5ede8.jpg?v=1777481518",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Faux",
- "Faux Finish",
- "Faux Leather",
- "Hallway",
- "Hollywood Wallcoverings",
- "Ivory",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Minimalist",
- "Serene",
- "Solid",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hainsville-faux-leather-durable-walls-xwt-53389"
- },
- {
- "sku": "mr-diorio-wallpaper-xa8-66468",
- "handle": "mr-diorio-wallpaper-xa8-66468",
- "title": "Mr. Diorio Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/b83a01426625ba59fcda32981b59d90a_688cb4fa-a421-4118-bdb5-614bc9a94967.jpg?v=1775124737",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gray",
- "Hotel Lobby",
- "Light Gray",
- "Living Room",
- "Minimalist",
- "Mr. Diorio Wallcovering",
- "Office",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Taupe",
- "Textured",
- "Transitional",
- "vinyl",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 35.92,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/mr-diorio-wallpaper-xa8-66468"
- },
- {
- "sku": "skelton-type-ii-vinyl-wallcovering-xpy-48387",
- "handle": "skelton-type-ii-vinyl-wallcovering-xpy-48387",
- "title": "Skelton Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/XPY-48387-sample-clean.jpg?v=1774480440",
- "tags": [
- "Architectural",
- "Bedroom",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Grey",
- "Gray",
- "Grey",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Minimalist",
- "Sophisticated",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/skelton-type-ii-vinyl-wallcovering-xpy-48387"
- },
- {
- "sku": "dwss-72726",
- "handle": "dwss-72726",
- "title": "Charlotta spring green sample Wallcovering | Sandberg",
- "vendor": "Sandberg",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/830-28_image1_90883b53-fb5c-4123-b913-4d317baad7df.jpg?v=1646105210",
- "tags": [
- "Architectural",
- "Art Nouveau",
- "Arts & Crafts",
- "Beige",
- "Botanical",
- "Charlotta",
- "Charlotta spring green sample",
- "Commercial",
- "Floral",
- "Green",
- "Leaf",
- "P830-28",
- "Paper",
- "Pattern",
- "Sage",
- "Sandberg",
- "Sandberg Wallcovering",
- "SPRING GREEN",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwss-72726"
- },
- {
- "sku": "dwtt-72051-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72051-designer-wallcoverings-los-angeles",
- "title": "Curtis Linen Metallic Gold on Natural | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T1004_01c69d83-2991-4fe1-b35a-d5f0379a2122.jpg?v=1733892893",
- "tags": [
- "Architectural",
- "beige",
- "cream",
- "Damask",
- "Menswear Resource",
- "Metallic Gold on Natural",
- "Pattern",
- "T1004",
- "Texture",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72051-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwtt-72392-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72392-designer-wallcoverings-los-angeles",
- "title": "Braxton Texture Silver Grey | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T6028.jpg?v=1733892236",
- "tags": [
- "Anniversary",
- "Architectural",
- "Damask",
- "gray",
- "Pattern",
- "Silver Grey",
- "T6028",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72392-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_ril-6373-jpg",
- "handle": "wolfgordonwallcovering_dwwg_ril-6373-jpg",
- "title": "Riley - Turquoise | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ril-6373.jpg?v=1762304635",
- "tags": [
- "27% Polyester",
- "73% Acrylic",
- "Acrylic",
- "Architectural",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Geometric",
- "Polka Dot",
- "Riley",
- "Teal",
- "Textured",
- "Turquoise",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings",
- "Woven Upholstery"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_ril-6373-jpg"
- },
- {
- "sku": "dwtt-71758-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71758-designer-wallcoverings-los-angeles",
- "title": "Dedalo Metallic Gold on Coral | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T35146_590fad8f-4251-42af-9161-fc642a26faad.jpg?v=1733893464",
- "tags": [
- "Architectural",
- "Art Deco",
- "coral",
- "Geometric",
- "gold",
- "Graphic Resource",
- "Metallic Gold on Coral",
- "Pattern",
- "T35146",
- "Thibaut",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71758-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_vrl001-jpg",
- "handle": "wolfgordonwallcovering_dwwg_vrl001-jpg",
- "title": "VRL001 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_VR008.jpg?v=1733872018",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Solid",
- "Tan",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_vrl001-jpg"
- },
- {
- "sku": "barnard-type-ii-vinyl-wallcovering-xjp-47227",
- "handle": "barnard-type-ii-vinyl-wallcovering-xjp-47227",
- "title": "Barnard Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xjp-47227-sample-barnard-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775702520",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Beige",
- "Light Brown",
- "Linen",
- "Linen Texture",
- "Living Room",
- "Minimalist",
- "Serene",
- "Solid",
- "Taupe",
- "Textured",
- "Traditional",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Look",
- "Yellow"
- ],
- "max_price": 52.78,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/barnard-type-ii-vinyl-wallcovering-xjp-47227"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_mru-3302_8-jpg",
- "handle": "wolfgordonwallcovering_dwwg_mru-3302_8-jpg",
- "title": "Marlu - Denim | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/mru-3302_8.jpg?v=1762301836",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Denim",
- "Geometric",
- "Marlu",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_mru-3302_8-jpg"
- },
- {
- "sku": "colby-lavender-love-spots-wallpaper-cca-83003",
- "handle": "colby-lavender-love-spots-wallpaper-cca-83003",
- "title": "Colby Lavender Love Spots Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/3af9e47b886dbf49d740ae9158e8713b.jpg?v=1572309965",
- "tags": [
- "Architectural",
- "Beige",
- "Blue",
- "Commercial",
- "Discontinued",
- "Dots",
- "Easy Walls",
- "Geometric",
- "LA Walls",
- "Lavender",
- "Paper",
- "Polka Dots",
- "Prepasted",
- "Purple",
- "Series: Brewster",
- "Strippable",
- "Teal",
- "Wallcovering",
- "Washable",
- "Whimsical",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/colby-lavender-love-spots-wallpaper-cca-83003"
- },
- {
- "sku": "eur-80435-ncw4492-designer-wallcoverings-los-angeles",
- "handle": "eur-80435-ncw4492-designer-wallcoverings-los-angeles",
- "title": "Sackville Stripe 05 - Blue Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513507954739.jpg?v=1775524076",
- "tags": [
- "Architectural",
- "Bathroom",
- "Bedroom",
- "Beige",
- "Blue",
- "Class A Fire Rated",
- "Coastal",
- "Commercial",
- "Contemporary",
- "Cornflower Blue",
- "Denim",
- "Gray",
- "Hallway",
- "Light Beige",
- "Nautical",
- "NCW4492",
- "NCW4492-05",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Paper",
- "Sackville Stripe",
- "Serene",
- "SIGNATURE COLLECTION",
- "Steel",
- "Stripe",
- "Textured",
- "Traditional",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80435-ncw4492-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "seine-marne-durable-vinyl-dur-72133",
- "handle": "seine-marne-durable-vinyl-dur-72133",
- "title": "Raked Faux Suede - Beige Commercial Wallcovering | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72133-sample-clean.jpg?v=1774484510",
- "tags": [
- "Architectural",
- "Basketweave",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Geometric",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Lattice",
- "Light Beige",
- "Light Brown",
- "Living Room",
- "Serene",
- "Taupe",
- "Textured",
- "Traditional",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/seine-marne-durable-vinyl-dur-72133"
- },
- {
- "sku": "dwc-1001628",
- "handle": "dwc-1001628",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693309358131.jpg?v=1775521217",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Black",
- "Class A Fire Rated",
- "Commercial",
- "Green",
- "NCW4350-04",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paisley",
- "Paper",
- "Traditional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001628"
- },
- {
- "sku": "limoges-durable-vinyl-dur-72018",
- "handle": "limoges-durable-vinyl-dur-72018",
- "title": "Wool Look - Faux Suede Commercial Wallcovering | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72018-sample-clean.jpg?v=1774483995",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Durable Type 2 Vinyl",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Gray",
- "Light Grey",
- "Limoges Durable Vinyl",
- "Living Room",
- "Off-white",
- "Organic",
- "Organic Modern",
- "Rustic",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/limoges-durable-vinyl-dur-72018"
- },
- {
- "sku": "caron-tabac-wallpaper-xa6-66445",
- "handle": "caron-tabac-wallpaper-xa6-66445",
- "title": "Caron Tabac Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/7a8582dab8c5beb8e851f2dc93ec486e.jpg?v=1775121416",
- "tags": [
- "Acoustical",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Caron Tabac Wallcovering",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Light Beige",
- "Living Room",
- "Minimalist",
- "Off-white",
- "Office",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "polyester",
- "Scandinavian",
- "Spa",
- "Textural",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 43.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/caron-tabac-wallpaper-xa6-66445"
- },
- {
- "sku": "ikeley-type-ii-vinyl-wallcovering-xls-47819",
- "handle": "ikeley-type-ii-vinyl-wallcovering-xls-47819",
- "title": "Ikeley Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xls-47819-sample-ikeley-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775719348",
- "tags": [
- "Architectural",
- "Art Deco",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Dining Room",
- "Fretwork",
- "Geometric",
- "Glamorous",
- "Hollywood Wallcoverings",
- "Ikeley Type 2 Vinyl Wallcovering",
- "Living Room",
- "Modern",
- "Sophisticated",
- "Tan",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ikeley-type-ii-vinyl-wallcovering-xls-47819"
- },
- {
- "sku": "dwc-1001634",
- "handle": "dwc-1001634",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693309751347.jpg?v=1775521255",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Floral",
- "Green",
- "NCW4351-04",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paisley",
- "Paper",
- "Traditional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001634"
- },
- {
- "sku": "la-voltere-durable-vinyl-dur-72301",
- "handle": "la-voltere-durable-vinyl-dur-72301",
- "title": "la Voltere Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72301-sample-clean.jpg?v=1774485106",
- "tags": [
- "Architectural",
- "Bedroom",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Charcoal",
- "Dark Gray",
- "Durable Type 2 Vinyl",
- "Gray",
- "Grey",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Minimalist",
- "Solid",
- "Sophisticated",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/la-voltere-durable-vinyl-dur-72301"
- },
- {
- "sku": "dwc-1001622",
- "handle": "dwc-1001622",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693309063219.jpg?v=1775521178",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Fretwork",
- "Geometric",
- "Gray",
- "Light Gray",
- "NCW4308-02",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paper",
- "Silver",
- "Traditional",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001622"
- },
- {
- "sku": "belfast-aqua-galop-stripe-wallpaper-cca-83131",
- "handle": "belfast-aqua-galop-stripe-wallpaper-cca-83131",
- "title": "Belfast Aqua Galop Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ca0e7c3e0cf115a0aa19cc40ba20bb13.jpg?v=1572309970",
- "tags": [
- "Architectural",
- "Blue",
- "Coastal",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Green",
- "LA Walls",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/belfast-aqua-galop-stripe-wallpaper-cca-83131"
- },
- {
- "sku": "peter-s-plastered-walls-ppw-2872",
- "handle": "peter-s-plastered-walls-ppw-2872",
- "title": "Peter's Plastered | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ppw-2872-sample-peter-s-plastered-hollywood-wallcoverings.jpg?v=1775729054",
- "tags": [
- "Architectural",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Red",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 40.54,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/peter-s-plastered-walls-ppw-2872"
- },
- {
- "sku": "doral-faux-silk-durable-walls-xwc-53231",
- "handle": "doral-faux-silk-durable-walls-xwc-53231",
- "title": "Doral Faux Silk Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwc-53231-sample-doral-faux-silk-durable-hollywood-wallcoverings.jpg?v=1775710347",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Faux",
- "Faux Finish",
- "Grasscloth",
- "Grasscloth Weave",
- "Gray",
- "Green",
- "Grey",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Minimalist",
- "Office",
- "Organic Modern",
- "Sage",
- "Serene",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/doral-faux-silk-durable-walls-xwc-53231"
- },
- {
- "sku": "contempo-diamond-vinyl-dwx-58024",
- "handle": "contempo-diamond-vinyl-dwx-58024",
- "title": "Contempo Diamond Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWX-58024-sample-clean_209db010-69fb-4a70-b9bf-65623c51da80.jpg?v=1774479263",
- "tags": [
- "54\" Width",
- "Architectural",
- "Basketweave",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Cream",
- "Dark Brown",
- "Diamond",
- "Durable",
- "Embossed Texture",
- "Geometric",
- "Gray",
- "Hallway",
- "High-traffic",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Living Room",
- "Modern",
- "Neutral",
- "Rustic",
- "Taupe",
- "Textured",
- "Traditional",
- "Tropicana Durable Vinyls",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "White",
- "Wide Width"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/contempo-diamond-vinyl-dwx-58024"
- },
- {
- "sku": "dwss-72696",
- "handle": "dwss-72696",
- "title": "Lisabet sandstone Sample Wallcovering | Sandberg",
- "vendor": "Sandberg",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/812-21_image1_fedda062-cfb7-4123-8a5f-3f177b99f674.jpg?v=1646105107",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Geometric",
- "Gray",
- "Lattice",
- "Light Gray",
- "Lisabet",
- "Lisabet sandstone Sample",
- "P812-21",
- "Paper",
- "Pattern",
- "Sandberg",
- "SANDSTONE",
- "Traditional",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwss-72696"
- },
- {
- "sku": "saint-helene-durable-vinyl-dur-72043",
- "handle": "saint-helene-durable-vinyl-dur-72043",
- "title": "Saint Helene Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72043-sample-clean.jpg?v=1774484104",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Grasscloth",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Minimalist",
- "Off-white",
- "Organic Modern",
- "Serene",
- "Stripe",
- "Tan",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/saint-helene-durable-vinyl-dur-72043"
- },
- {
- "sku": "dwss-72541",
- "handle": "dwss-72541",
- "title": "Sten light pink Sample Wallcovering | Sandberg",
- "vendor": "Sandberg",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/583-03_image1_bd47a72a-dc1b-47a4-9937-35ea24292bfe.jpg?v=1646104595",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Cyan",
- "LIGHT PINK",
- "P583-03",
- "Paper",
- "Sandberg",
- "Solid",
- "Sten",
- "Sten light pink Sample",
- "Textured",
- "Traditional",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwss-72541"
- },
- {
- "sku": "decorator-grasscloth-vol-2-by-phillipe-romano-488-444",
- "handle": "decorator-grasscloth-vol-2-by-phillipe-romano-488-444",
- "title": "Decorator Grasscloth Vol. 2 | Phillipe Romano",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/52b3ace36d45ee3034fed930887c5356_916f6881-3771-4ed3-a0de-dc9bde3f576e.jpg?v=1745458236",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "ASTM E84 Class A",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Decorator Grasscloth Vol. 2",
- "Grasscloth",
- "Grasscloth Texture",
- "Natural",
- "Natural Wallcovering",
- "Naturals",
- "Off-white",
- "Phillipe Romano",
- "Phillipe Romano Naturals",
- "Stripe",
- "Textured",
- "Wallcovering"
- ],
- "max_price": 21.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/decorator-grasscloth-vol-2-by-phillipe-romano-488-444"
- },
- {
- "sku": "benedict-canyon-sisal-hlw-73003",
- "handle": "benedict-canyon-sisal-hlw-73003",
- "title": "Benedict Canyon Sisal | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73003-sample-clean.jpg?v=1774482988",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Coastal Farmhouse",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Hollywood Wallcoverings",
- "Ivory",
- "Living Room",
- "Natural",
- "Natural Texture",
- "Naturally Glamorous",
- "Organic Modern",
- "Serene",
- "Sisal",
- "Stripe",
- "Textured",
- "Traditional",
- "Transitional",
- "Wallcovering",
- "White",
- "Woven",
- "Yellow"
- ],
- "max_price": 67.78,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/benedict-canyon-sisal-hlw-73003"
- },
- {
- "sku": "pleated-perfect-paradise-ppp-2622",
- "handle": "pleated-perfect-paradise-ppp-2622",
- "title": "Pleated Perfect Paradise | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ppp-2622-sample-pleated-perfect-paradise-hollywood-wallcoverings.jpg?v=1775729166",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Cream",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Pleated Perfect Paradise",
- "Stripe",
- "Tan",
- "Textured",
- "Transitional",
- "vinyl",
- "Wallcovering",
- "White",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 35.66,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/pleated-perfect-paradise-ppp-2622"
- },
- {
- "sku": "eur-80325-ncw4304-designer-wallcoverings-los-angeles",
- "handle": "eur-80325-ncw4304-designer-wallcoverings-los-angeles",
- "title": "Marguerite Damask 06 - Blue Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513504251955.jpg?v=1775523390",
- "tags": [
- "Alabaster",
- "Architectural",
- "Bedroom",
- "Beige",
- "Blue",
- "Botanical",
- "Chinoiserie",
- "Class A Fire Rated",
- "Cloud",
- "Commercial",
- "Contemporary",
- "Cornflower Blue",
- "Damask",
- "Denim",
- "Dining Room",
- "Floral",
- "Frost",
- "Grandmillennial",
- "LES REVES",
- "Living Room",
- "Marguerite Damask",
- "Navy Blue",
- "NCW4304",
- "NCW4304-06",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Off-white",
- "Paper",
- "Periwinkle",
- "Powder",
- "Serene",
- "Smoke",
- "Steel",
- "Storm",
- "Traditional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80325-ncw4304-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwss-72595",
- "handle": "dwss-72595",
- "title": "Marieberg blue sample Wallcovering | Sandberg",
- "vendor": "Sandberg",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/647-04FS_image1_84b3538e-d9f5-44bd-b33d-f9ef09ae4b7a.jpg?v=1646104771",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Blue",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Floral",
- "Light Blue",
- "Marieberg",
- "Marieberg blue sample",
- "P647-04FS",
- "Paper",
- "Sandberg",
- "Traditional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwss-72595"
- },
- {
- "sku": "dwtt-71196-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71196-designer-wallcoverings-los-angeles",
- "title": "Alicia Blue | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/T89123.jpg?v=1762227360",
- "tags": [
- "Architectural",
- "blue",
- "Damask",
- "Damask Resource 4",
- "Pattern",
- "T89123",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71196-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "biejing-embossed-walls-bew-9498",
- "handle": "biejing-embossed-walls-bew-9498",
- "title": "Biejing Embossed | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/bew-9498-sample-biejing-embossed-hollywood-wallcoverings.jpg?v=1775705116",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial - Cleanable",
- "Commercial Wallcovering",
- "Contemporary",
- "Elegant Vinyls Vol. 1",
- "Embossed",
- "Embossed Texture",
- "Geometric",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Living Room",
- "Modern",
- "Office",
- "Sophisticated",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 39.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/biejing-embossed-walls-bew-9498"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_lyr-3372_8-jpg",
- "handle": "wolfgordonwallcovering_dwwg_lyr-3372_8-jpg",
- "title": "Lyra - Tangerine | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/lyr-3372_8.jpg?v=1762299687",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Lyra",
- "Orange",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_lyr-3372_8-jpg"
- },
- {
- "sku": "capri-light-pink-floral-scroll-wallpaper-cca-83050",
- "handle": "capri-light-pink-floral-scroll-wallpaper-cca-83050",
- "title": "Capri Light Pink Floral Scroll Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/cf5ffdcfacb4e46fef880076786e8379.jpg?v=1572309967",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Floral",
- "Flowers",
- "Gray",
- "LA Walls",
- "Light Pink",
- "Pink",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vine",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 64.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/capri-light-pink-floral-scroll-wallpaper-cca-83050"
- },
- {
- "sku": "dwtt-72386-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72386-designer-wallcoverings-los-angeles",
- "title": "Klein Trellis Cream | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T6066.jpg?v=1733892249",
- "tags": [
- "Anniversary",
- "Architectural",
- "brown",
- "cream",
- "green",
- "olive green",
- "Paisley",
- "Pattern",
- "T6066",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72386-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "faux-leaf-squares-fls-2505",
- "handle": "faux-leaf-squares-fls-2505",
- "title": "Faux Leaf Squares Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fls-2505-sample-faux-leaf-squares-wallpaper-hollywood-wallcoverings.jpg?v=1775711872",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Commercial",
- "Contemporary",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Light Gray",
- "Minimalist",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 34.55,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-leaf-squares-fls-2505"
- },
- {
- "sku": "aubrey-celery-crystal-medallion-texture-wallpaper-cca-83244",
- "handle": "aubrey-celery-crystal-medallion-texture-wallpaper-cca-83244",
- "title": "Aubrey Celery Crystal Medallion Texture Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/d5dca5883a73a0ac7f6c85ac177dca2c.jpg?v=1572309981",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Damask",
- "Discontinued",
- "Easy Walls",
- "Gray",
- "LA Walls",
- "Medallion",
- "Modern",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/aubrey-celery-crystal-medallion-texture-wallpaper-cca-83244"
- },
- {
- "sku": "heritage-black-gold-wallcovering-versace",
- "handle": "heritage-black-gold-wallcovering-versace",
- "title": "Heritage Black Gold Wallcovering | Versace",
- "vendor": "Versace",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/f3a0ffdb8cd553d94046d97f087b0f2c.jpg?v=1773710458",
- "tags": [
- "[Object Object]",
- "A.S. Création",
- "AI-Analyzed-v2",
- "Architectural",
- "Black",
- "Black Gold",
- "Class A Fire Rated",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Dining Room",
- "display_variant",
- "Geometric",
- "Haute Couture",
- "Heritage",
- "Heritage Black Gold Wallcovering",
- "Hotel Lobby",
- "Italian",
- "Living Room",
- "Luxe",
- "Luxurious",
- "Luxury",
- "Maximalist",
- "Paste the wall",
- "Traditional",
- "Trending Wallpaper Collection 2026",
- "Versace",
- "Versace VI",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 407.24,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/heritage-black-gold-wallcovering-versace"
- },
- {
- "sku": "crushed-costoluto-vinyl-dwx-58012",
- "handle": "crushed-costoluto-vinyl-dwx-58012",
- "title": "Crushed Costoluto Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58012-sample-crushed-costoluto-vinyl-hollywood-wallcoverings.jpg?v=1775709706",
- "tags": [
- "54\" Width",
- "Abstract",
- "Architectural",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Crushed",
- "Dark Green",
- "Durable",
- "Green",
- "hollywood",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Organic",
- "Texture",
- "Textured",
- "Type 2 Vinyl",
- "Unique",
- "Vinyl",
- "Wallcovering",
- "Wide Width"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/crushed-costoluto-vinyl-dwx-58012"
- },
- {
- "sku": "hilo-highway-diamond-grass-hlw-73131",
- "handle": "hilo-highway-diamond-grass-hlw-73131",
- "title": "Hilo Highway - Diamond Grass | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73131-sample-clean.jpg?v=1774483626",
- "tags": [
- "Architectural",
- "Bedroom",
- "Color: Green",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Olive Green",
- "Grasscloth",
- "Grasscloth Weave",
- "Green",
- "Hallway",
- "Hollywood Wallcoverings",
- "Khaki",
- "Living Room",
- "Natural",
- "Naturally Glamorous",
- "Olive",
- "Organic",
- "Rustic",
- "Textured",
- "Traditional",
- "Tropical",
- "Wallcovering",
- "Woven"
- ],
- "max_price": 89.52,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hilo-highway-diamond-grass-hlw-73131"
- },
- {
- "sku": "dwtt-72390-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72390-designer-wallcoverings-los-angeles",
- "title": "Seraphina Pearl on Aqua | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/room-living_room-t41147.jpg?v=1775151883",
- "tags": [
- "Anniversary",
- "Architectural",
- "beige",
- "blue",
- "Damask",
- "Pattern",
- "Pearl on Aqua",
- "T6025",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72390-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_sm10244-jpg",
- "handle": "wolfgordonwallcovering_dwwg_sm10244-jpg",
- "title": "SM10244 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_SM10243.jpg?v=1733872472",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Gray",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_sm10244-jpg"
- },
- {
- "sku": "dwtt-71126-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71126-designer-wallcoverings-los-angeles",
- "title": "Inyo Wood Navy | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T4019_60b179cd-8823-400d-8aa9-49ba1c1d66a6.jpg?v=1733894656",
- "tags": [
- "abstract",
- "Architectural",
- "contemporary",
- "gold",
- "Navy",
- "navy blue",
- "Pattern",
- "Surface Resource",
- "T4019",
- "texture",
- "Thibaut",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71126-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "eur-80402-ncw4393-designer-wallcoverings-los-angeles",
- "handle": "eur-80402-ncw4393-designer-wallcoverings-los-angeles",
- "title": "Benmore 03 - Blue Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513506775091.jpg?v=1775523856",
- "tags": [
- "Architectural",
- "ASHDOWN",
- "Bathroom",
- "Bedroom",
- "Benmore",
- "Biophilic",
- "Blue",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Green",
- "Leaf",
- "Lightblue",
- "Lightgreen",
- "Living Room",
- "NCW4393",
- "NCW4393-03",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Non-woven",
- "Organic Modern",
- "Pale Aqua",
- "Paper",
- "Sage Green",
- "Seafoam Green",
- "Serene",
- "Tropical",
- "Tropical Leaf",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80402-ncw4393-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "faux-leaf-squares-fls-2747",
- "handle": "faux-leaf-squares-fls-2747",
- "title": "Faux Leaf Squares Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fls-2747-sample-faux-leaf-squares-wallpaper-hollywood-wallcoverings.jpg?v=1775711991",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Commercial",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 31.92,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-leaf-squares-fls-2747"
- },
- {
- "sku": "saint-brittany-durable-vinyl-dur-72243",
- "handle": "saint-brittany-durable-vinyl-dur-72243",
- "title": "Saint Brittany Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72243-sample-clean.jpg?v=1774484886",
- "tags": [
- "Architectural",
- "Bedroom",
- "Brown",
- "Class A Fire Rated",
- "Color: Pink",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Dusty Rose",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Brown",
- "Living Room",
- "Minimalist",
- "Pink",
- "Serene",
- "Solid",
- "Taupe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/saint-brittany-durable-vinyl-dur-72243"
- },
- {
- "sku": "dwss-72658",
- "handle": "dwss-72658",
- "title": "Bok yellow Sample Wallcovering | Sandberg",
- "vendor": "Sandberg",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/710-22_image1_a133b380-a8a2-42c3-a2ee-409c6785a392.jpg?v=1646104972",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Bok",
- "Bok yellow Sample",
- "Class A Fire Rated",
- "Commercial",
- "Fretwork",
- "Geometric",
- "Light Yellow",
- "P710-22",
- "Paper",
- "Pattern",
- "Sandberg",
- "Traditional",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwss-72658"
- },
- {
- "sku": "versace-golden-floral-wallcovering-versace",
- "handle": "versace-golden-floral-wallcovering-versace",
- "title": "Versace Golden Floral Wallcovering | Versace",
- "vendor": "Versace",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/4f93e2069725e2240d20aba952f5b9a5.jpg?v=1773706406",
- "tags": [
- "A.S. Création",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Botanical",
- "Brown",
- "Class A Fire Rated",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Cottagecore",
- "Dining Room",
- "display_variant",
- "English Country",
- "Floral",
- "Gold",
- "Golden Yellow",
- "Goldenrod",
- "Grandmillennial",
- "Italian",
- "Living Room",
- "Luxury",
- "Mustard",
- "Mustard Yellow",
- "Paper",
- "Paste the wall",
- "Traditional",
- "Trending Wallcovering Collection 2026",
- "Trending Wallpaper Collection 2026",
- "Versace",
- "Versace Golden Floral",
- "Versace Golden Floral Wallcovering",
- "Versace Home",
- "Versace VI",
- "Vine",
- "Wallcovering",
- "Warm",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/versace-golden-floral-wallcovering-versace"
- },
- {
- "sku": "puna-drive-natural-grassweave-hlw-73109",
- "handle": "puna-drive-natural-grassweave-hlw-73109",
- "title": "Puna Drive - Natural Grassweave | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73109-sample-clean.jpg?v=1774483485",
- "tags": [
- "Architectural",
- "Bedroom",
- "Brown",
- "Coastal",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Hollywood Wallcoverings",
- "Lattice",
- "Living Room",
- "Natural",
- "Naturally Glamorous",
- "Organic",
- "Organic Modern",
- "Rustic",
- "Textured",
- "Wallcovering",
- "Wheat",
- "Woven"
- ],
- "max_price": 41.7,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/puna-drive-natural-grassweave-hlw-73109"
- },
- {
- "sku": "jonesport-celery-cabin-stripe-wallpaper-cca-83176",
- "handle": "jonesport-celery-cabin-stripe-wallpaper-cca-83176",
- "title": "Jonesport Celery Cabin Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/3abb2aef9d440e9e86ab73ca6be4d0e6.jpg?v=1572309971",
- "tags": [
- "Architectural",
- "Blue",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Green",
- "LA Walls",
- "Multi",
- "Orange",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/jonesport-celery-cabin-stripe-wallpaper-cca-83176"
- },
- {
- "sku": "mr-diorio-wallpaper-xa8-66465",
- "handle": "mr-diorio-wallpaper-xa8-66465",
- "title": "Mr. Diorio Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ce2de2f0129839a4415f480362863233.jpg?v=1775124479",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Hotel Lobby",
- "Light Beige",
- "Living Room",
- "Mr. Diorio Wallcovering",
- "Off-white",
- "Office",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Scandinavian",
- "Textural",
- "Textured",
- "Traditional",
- "Transitional",
- "vinyl",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 35.92,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/mr-diorio-wallpaper-xa8-66465"
- },
- {
- "sku": "baroque-ornament-cream-silver-wallcovering-versace",
- "handle": "baroque-ornament-cream-silver-wallcovering-versace",
- "title": "Baroque Ornament Cream, Silver Wallcovering | Versace",
- "vendor": "Versace",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/6ae9f17e781e6e9f49a83dc3528248e4.jpg?v=1773706284",
- "tags": [
- "A.S. Création",
- "AI-Analyzed-v2",
- "Architectural",
- "Baroque",
- "Baroque Ornament",
- "Baroque Ornament Cream",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Cream",
- "Damask",
- "Dining Room",
- "display_variant",
- "Floral",
- "Grandmillennial",
- "Italian",
- "Light Beige",
- "Living Room",
- "Luxury",
- "Off-white",
- "Paste the wall",
- "Silver Wallcovering",
- "Sophisticated",
- "Traditional",
- "Trending Wallcovering Collection 2026",
- "Trending Wallpaper Collection 2026",
- "Versace",
- "Versace Home",
- "Versace VI",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 325.79,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/baroque-ornament-cream-silver-wallcovering-versace"
- },
- {
- "sku": "contempo-diamond-vinyl-dwx-58018",
- "handle": "contempo-diamond-vinyl-dwx-58018",
- "title": "Contempo Diamond Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58018-sample-contempo-diamond-vinyl-hollywood-wallcoverings.jpg?v=1775709054",
- "tags": [
- "54\" Width",
- "Architectural",
- "Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Diamond",
- "Geometric",
- "hollywood",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Neutral",
- "Olive Green",
- "Textured",
- "Transitional",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wide Width"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/contempo-diamond-vinyl-dwx-58018"
- },
- {
- "sku": "dwc-1001666",
- "handle": "dwc-1001666",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693311225907.jpg?v=1775521462",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Floral",
- "NCW4390-05",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paper",
- "Stripe",
- "Traditional",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001666"
- },
- {
- "sku": "dwtt-71421-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71421-designer-wallcoverings-los-angeles",
- "title": "Ogden Metallic Silver | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T14260_e6b40042-1601-4e86-b688-a1343e560dc9.jpg?v=1733894102",
- "tags": [
- "abstract",
- "Architectural",
- "brown",
- "contemporary",
- "gray",
- "Imperial Garden",
- "Metallic Silver",
- "Pattern",
- "silver",
- "T14260",
- "Thibaut",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71421-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "zoe-snow-coco-texture-wallpaper-cca-83292",
- "handle": "zoe-snow-coco-texture-wallpaper-cca-83292",
- "title": "Zoe Snow Coco Texture Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/67ed6df3aa596bac95c571eaf2a622a3.jpg?v=1572309983",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Cream",
- "Discontinued",
- "Easy Walls",
- "Faux",
- "LA Walls",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/zoe-snow-coco-texture-wallpaper-cca-83292"
- },
- {
- "sku": "cubism-drive-hlw-73049",
- "handle": "cubism-drive-hlw-73049",
- "title": "Cubism Drive | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73049-sample-clean.jpg?v=1774483215",
- "tags": [
- "Architectural",
- "Art Deco",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Green",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Copper",
- "Dark Green",
- "Forest Green",
- "Geometric",
- "Green",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Modern",
- "Natural",
- "Naturally Glamorous",
- "Orange",
- "Sophisticated",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 159.27,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/cubism-drive-hlw-73049"
- },
- {
- "sku": "vaticano-durable-vinyl-dur-72377",
- "handle": "vaticano-durable-vinyl-dur-72377",
- "title": "Vaticano Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72377-sample-clean.jpg?v=1774485271",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Art Deco",
- "Bedroom",
- "Black",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Black",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Fretwork",
- "Geometric",
- "Glamorous",
- "Gray",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Modern",
- "Silver",
- "Sophisticated",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vaticano Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/vaticano-durable-vinyl-dur-72377"
- },
- {
- "sku": "palazzo-no-12-blush-wallcovering-versace-1",
- "handle": "palazzo-no-12-blush-wallcovering-versace-1",
- "title": "Palazzo No 12 Blush Wallcovering | Versace",
- "vendor": "Versace",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/522e5849c0f09262a5c7745fa4648102_be2b85d4-6ac8-47e0-a319-095d36ad9c6f.jpg?v=1773710494",
- "tags": [
- "[Object Object]",
- "A.S. Création",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Blush",
- "Charcoal Gray",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Gray",
- "display_variant",
- "Dusty Rose",
- "Italian",
- "Light Beige",
- "Living Room",
- "Luxury",
- "Minimalist",
- "Needs-Image",
- "Office",
- "Organic Modern",
- "Palazzo No 12",
- "Palazzo No 12 Blush Wallcovering",
- "Pale Peach",
- "Paper",
- "Paste the wall",
- "Serene",
- "Solid",
- "Textured",
- "Trending Wallpaper Collection 2026",
- "Versace",
- "Versace VI",
- "Wallcovering"
- ],
- "max_price": 289.59,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/palazzo-no-12-blush-wallcovering-versace-1"
- },
- {
- "sku": "dwtt-71996-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71996-designer-wallcoverings-los-angeles",
- "title": "Lyndon Damask Grey | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T10030_5f3c3959-8af6-4545-8f6f-6401a25a40eb.jpg?v=1733892996",
- "tags": [
- "Architectural",
- "beige",
- "cream",
- "Damask",
- "Grey",
- "Neutral Resource",
- "Pattern",
- "T10030",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71996-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "eur-80196-ncw4184-designer-wallcoverings-los-angeles",
- "handle": "eur-80196-ncw4184-designer-wallcoverings-los-angeles",
- "title": "Suzhou 03 - Off-White Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513499205683.jpg?v=1775522700",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Botanical",
- "CATHAY",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Cottagecore",
- "Dining Room",
- "English Country",
- "Floral",
- "Grandmillennial",
- "Gray",
- "Green",
- "Living Room",
- "Multi",
- "NCW4184",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Olive Green",
- "Pale Pink",
- "Paper",
- "Pink",
- "Rose Red",
- "Seafoam Green",
- "Serene",
- "Suzhou",
- "Traditional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80196-ncw4184-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_hug-3313_8-jpg",
- "handle": "wolfgordonwallcovering_dwwg_hug-3313_8-jpg",
- "title": "Hugo - Jet | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/hug-3313_8.jpg?v=1762297238",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Gray",
- "Herringbone",
- "Hugo",
- "Silver",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_hug-3313_8-jpg"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_qnt-5547-jpg",
- "handle": "wolfgordonwallcovering_dwwg_qnt-5547-jpg",
- "title": "Quinault - Petrichor | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/QNT-5547.jpg?v=1762303521",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Petrichor",
- "Quinault",
- "RAMPART®",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_qnt-5547-jpg"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_obt-9465_8-jpg",
- "handle": "wolfgordonwallcovering_dwwg_obt-9465_8-jpg",
- "title": "Orbit - Earl Gray | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/obt-9465_8.jpg?v=1762302746",
- "tags": [
- "100% Polycarbonate",
- "Architectural",
- "Brown",
- "Class A Fire Rated",
- "Coated Upholstery",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Earl Gray",
- "Geometric",
- "Orbit",
- "Polycarbonate",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_obt-9465_8-jpg"
- },
- {
- "sku": "kenley-taupe-polka-dots-wallpaper-wallpaper-cca-82875",
- "handle": "kenley-taupe-polka-dots-wallpaper-wallpaper-cca-82875",
- "title": "Kenley Taupe Polka Dots Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/13e55af7272e8e4a3c06f1931df00179.jpg?v=1572309958",
- "tags": [
- "Architectural",
- "Commercial",
- "Discontinued",
- "Dots",
- "Easy Walls",
- "LA Walls",
- "Light Blue",
- "Paper",
- "Polka Dots",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Wallcovering",
- "Washable",
- "Whimsical",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/kenley-taupe-polka-dots-wallpaper-wallpaper-cca-82875"
- },
- {
- "sku": "kia-island-palm-shadow-wallpaper-trf-56860",
- "handle": "kia-island-palm-shadow-wallpaper-trf-56860",
- "title": "Kia Island Palm Shadow | Jeffrey Stevens",
- "vendor": "Jeffrey Stevens",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ab0187666f11ab54b914c945ecb48a19.jpg?v=1750789730",
- "tags": [
- "Architectural",
- "Beige",
- "Botanical",
- "Commercial",
- "Commercial Wallcovering",
- "Cream",
- "Discontinued",
- "floral",
- "flowers",
- "grasscloth",
- "Grasscloth Texture",
- "Grasscloth Wallcovering",
- "Jeffrey Stevens",
- "jungle",
- "large scale",
- "leaf",
- "Modern",
- "Modern Tropics",
- "Natural",
- "Non-Woven",
- "palm",
- "Prepasted - Washable - Strippable",
- "rain forest",
- "Series: York",
- "Tan",
- "Textured",
- "Traditional",
- "trees",
- "tropical",
- "USA",
- "Wallcovering",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 60.53,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/kia-island-palm-shadow-wallpaper-trf-56860"
- },
- {
- "sku": "ludlow-chocolate-paisley-wallpaper-cca-82917",
- "handle": "ludlow-chocolate-paisley-wallpaper-cca-82917",
- "title": "Ludlow Chocolate Paisley Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/29e030a2513e6a883c38c2fc1930f688.jpg?v=1572309962",
- "tags": [
- "Architectural",
- "Brown",
- "Chocolate",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Masculine",
- "Paisley",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ludlow-chocolate-paisley-wallpaper-cca-82917"
- },
- {
- "sku": "verwood-type-ii-vinyl-wallcovering-xqr-48588",
- "handle": "verwood-type-ii-vinyl-wallcovering-xqr-48588",
- "title": "Verwood Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/vanadis-sif.jpg?v=1777480231",
- "tags": [
- "20 oz",
- "41 Inch Width",
- "41\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Rustic",
- "Sand",
- "Stucco",
- "Tan",
- "Textured",
- "Traditional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Warranty Available",
- "Weight: 20 oz",
- "Width: 41\"",
- "Wood",
- "Wood Look"
- ],
- "max_price": 12.6,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/verwood-type-ii-vinyl-wallcovering-xqr-48588"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_gsg9-5395-jpg",
- "handle": "wolfgordonwallcovering_dwwg_gsg9-5395-jpg",
- "title": "Glasgow - Brandy | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/gsg9-5395.jpg?v=1762297027",
- "tags": [
- "100% Vinyl",
- "Abstract",
- "Architectural",
- "Black",
- "Brandy",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Glasgow",
- "Gray",
- "Red",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_gsg9-5395-jpg"
- },
- {
- "sku": "eur-80210-ncw4186-designer-wallcoverings-los-angeles",
- "handle": "eur-80210-ncw4186-designer-wallcoverings-los-angeles",
- "title": "Khitan 07 | Nina Campbell Europe",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513499992115.jpg?v=1775522773",
- "tags": [
- "Architectural",
- "CATHAY",
- "Commercial",
- "Damask",
- "Embossed",
- "Khitan",
- "NCW4186",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Paisley",
- "Pale Blue",
- "Paper",
- "Traditional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80210-ncw4186-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "amity-bear-bleeding-heart-texture-wallpaper-cca-83290",
- "handle": "amity-bear-bleeding-heart-texture-wallpaper-cca-83290",
- "title": "Amity Bear Bleeding Heart Texture Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/3fbec77b09581fbe0be068de836c568d.jpg?v=1572309983",
- "tags": [
- "Architectural",
- "Beige",
- "Brewster-CCA-Discontinued-2026-04",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Faux",
- "LA Walls",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Tan",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/amity-bear-bleeding-heart-texture-wallpaper-cca-83290"
- },
- {
- "sku": "dwtt-71635-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71635-designer-wallcoverings-los-angeles",
- "title": "Maze Grasscloth Cream | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T41197_06f8c293-718c-4f59-951e-a1784da43605.jpg?v=1733893682",
- "tags": [
- "Architectural",
- "cream",
- "Geometric",
- "Grasscloth Resource 3",
- "off-white",
- "Pattern",
- "T41197",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71635-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "amity-snow-bleeding-heart-texture-wallpaper-cca-83291",
- "handle": "amity-snow-bleeding-heart-texture-wallpaper-cca-83291",
- "title": "Amity Snow Bleeding Heart Texture Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/dc1830f953e1c0ee99259a0444eed422.jpg?v=1572309983",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Light Gray",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/amity-snow-bleeding-heart-texture-wallpaper-cca-83291"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_em10269b-jpg",
- "handle": "wolfgordonwallcovering_dwwg_em10269b-jpg",
- "title": "EM10269B | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_em10268r.jpg?v=1733873315",
- "tags": [
- "AI-Analyzed-v2",
- "Animal/Insects",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "EM10269B",
- "Gray",
- "Light Gray",
- "Minimalist",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_em10269b-jpg"
- },
- {
- "sku": "eur-80144-ncw4150-designer-wallcoverings-los-angeles",
- "handle": "eur-80144-ncw4150-designer-wallcoverings-los-angeles",
- "title": "Rosslyn 02 - Warm Gray Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513497239603.jpg?v=1775522370",
- "tags": [
- "Architectural",
- "Beige",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Floral",
- "Green",
- "Multi",
- "NCW4150",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Paper",
- "Red",
- "Rosslyn",
- "Traditional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80144-ncw4150-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "verwood-type-ii-vinyl-wallcovering-xqr-48580",
- "handle": "verwood-type-ii-vinyl-wallcovering-xqr-48580",
- "title": "Verwood Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/XQR-48580-sample-clean.jpg?v=1774480659",
- "tags": [
- "20 oz",
- "41 Inch Width",
- "41\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Black",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Concrete",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Dark Grey",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Gray",
- "Grey",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Industrial",
- "Living Room",
- "Moody",
- "Office",
- "Rustic",
- "Slate Grey",
- "Solid",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Width: 41\"",
- "Wood",
- "Wood Look"
- ],
- "max_price": 12.6,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/verwood-type-ii-vinyl-wallcovering-xqr-48580"
- },
- {
- "sku": "dwtt-71307-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71307-designer-wallcoverings-los-angeles",
- "title": "Tiger Flock Light Grey | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T83063_c9148d70-f238-4ecc-b4e2-9159b120af72.jpg?v=1733894249",
- "tags": [
- "Abstract",
- "Architectural",
- "Contemporary",
- "gray",
- "light gray",
- "Light Grey",
- "Natural Resource 2",
- "Pattern",
- "T83063",
- "Thibaut",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71307-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_gai-5110-jpg",
- "handle": "wolfgordonwallcovering_dwwg_gai-5110-jpg",
- "title": "Grain - Poplar | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/gai-5110.jpg?v=1762295874",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Dark Gray",
- "Grain",
- "Gray",
- "Light Gray",
- "Poplar",
- "RAMPART®",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_gai-5110-jpg"
- },
- {
- "sku": "bosa-marina-boardwalk-wood-grain-wbs-39634",
- "handle": "bosa-marina-boardwalk-wood-grain-wbs-39634",
- "title": "Bosa Marina Boardwalk Wood Grain | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/wbs-39634-sample-bosa-marina-boardwalk-wood-grain-hollywood-wallcoverings.jpg?v=1775705849",
- "tags": [
- "Architectural",
- "Beige",
- "Blue",
- "Bricks and Stones",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Conference Room",
- "Contemporary",
- "Dark Brown",
- "Embossed Texture",
- "Farmhouse",
- "Faux",
- "Faux Wood",
- "Green",
- "Hallway",
- "Hollywood Wallcoverings",
- "Hotel Lobby",
- "Luxe",
- "Navy Blue",
- "Olive Green",
- "Paper Backed Solid Vinyl Wallcoverings",
- "Rich Woods",
- "Solid",
- "Sophisticated",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Wallcoverings",
- "White",
- "Wood",
- "Wood Grain"
- ],
- "max_price": 34.29,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/bosa-marina-boardwalk-wood-grain-wbs-39634"
- },
- {
- "sku": "shubert-faux-rice-paper-durable-walls-xwk-52504",
- "handle": "shubert-faux-rice-paper-durable-walls-xwk-52504",
- "title": "Shubert Faux Rice Paper Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwk-52504-sample-shubert-faux-rice-paper-durable-hollywood-wallcoverings.jpg?v=1775733229",
- "tags": [
- "Abstract",
- "Architectural",
- "Bathroom",
- "Bedroom",
- "Blue",
- "Class A Fire Rated",
- "Color: Blue",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Faux",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Light Blue",
- "Living Room",
- "Off-white",
- "Serene",
- "Textured",
- "Vinyl",
- "Vinyl Wallcoverings",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/shubert-faux-rice-paper-durable-walls-xwk-52504"
- },
- {
- "sku": "eur-80451-ncw4496-designer-wallcoverings-los-angeles",
- "handle": "eur-80451-ncw4496-designer-wallcoverings-los-angeles",
- "title": "Plumier Stripe 01 - Blue Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513508479027.jpg?v=1775524174",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Cottagecore",
- "English Country",
- "Feathered leaves are presented either side of a decorative stem in a stripe repeat.",
- "Green",
- "Hallway",
- "Leaf",
- "Light Beige",
- "Light Blue",
- "Light Green",
- "Living Room",
- "NCW4496",
- "NCW4496-01",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Off White",
- "Pale Blue",
- "Paper",
- "Plumier Stripe",
- "Sage Green",
- "Serene",
- "SIGNATURE COLLECTION",
- "Stripe",
- "Traditional",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80451-ncw4496-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "rustic-glam-vinyl-gpr-76626",
- "handle": "rustic-glam-vinyl-gpr-76626",
- "title": "Rustic Glam Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/gpr-76626-sample-rustic-glam-vinyl-hollywood-wallcoverings.jpg?v=1775731734",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Farmhouse",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Light Gray",
- "Living Room",
- "Organic",
- "Rustic",
- "Stripe",
- "Taupe",
- "Textured",
- "Traditional",
- "USFCID#vp885-049",
- "Very Good Stain Abrasion Resistance - Washable",
- "Vinyl",
- "Wallcovering",
- "Wood Grain"
- ],
- "max_price": 41.95,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/rustic-glam-vinyl-gpr-76626"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_blg-5640-jpg",
- "handle": "wolfgordonwallcovering_dwwg_blg-5640-jpg",
- "title": "Belgrade - Shale | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/blg-5640.jpg?v=1762287863",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Belgrade",
- "Black",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Gray",
- "Industrial",
- "RAMPART®",
- "Shale",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_blg-5640-jpg"
- },
- {
- "sku": "peter-s-plastered-walls-ppw-2886",
- "handle": "peter-s-plastered-walls-ppw-2886",
- "title": "Peter's Plastered | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ppw-2886-sample-peter-s-plastered-hollywood-wallcoverings.jpg?v=1775729101",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Cream",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 40.54,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/peter-s-plastered-walls-ppw-2886"
- },
- {
- "sku": "world-map-modern-colourway-small-mural-by-retro-walls-rtr-37221",
- "handle": "world-map-modern-colourway-small-mural-by-retro-walls-rtr-37221",
- "title": "World Map - Modern (colourway) Small Mural by Retro Walls",
- "vendor": "Traditional Whimsy",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/d6aff66cdb809babd72d66e9fe314c0a.jpg?v=1572309701",
- "tags": [
- "Architectural",
- "Beige",
- "Blue",
- "Commercial",
- "Commercial Wallcovering",
- "Green",
- "Heavy-duty Wallcovering with paper top-layer and non-woven backing // Colourfast and washable with a soft cloth // Butted seam (but",
- "Modern",
- "Multi",
- "Mural",
- "Paper",
- "Scenic",
- "Traditional Whimsy",
- "Wallcovering",
- "Whimsical",
- "White"
- ],
- "max_price": 84,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/world-map-modern-colourway-small-mural-by-retro-walls-rtr-37221"
- },
- {
- "sku": "natalia-purple-curly-scroll-wallpaper-wallpaper-cca-82822",
- "handle": "natalia-purple-curly-scroll-wallpaper-wallpaper-cca-82822",
- "title": "Natalia Purple Curly Scroll Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/b4fbd757fe54a9cd5ca21316c7591e1b.jpg?v=1572309955",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Floral",
- "Green",
- "Kids",
- "LA Walls",
- "Leaf",
- "Pink",
- "Prepasted",
- "Scrolls",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/natalia-purple-curly-scroll-wallpaper-wallpaper-cca-82822"
- },
- {
- "sku": "daytona-faux-contemporary-durable-walls-xwc-53200",
- "handle": "daytona-faux-contemporary-durable-walls-xwc-53200",
- "title": "Daytona Faux Contemporary Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwc-53200-sample-daytona-faux-contemporary-durable-hollywood-wallcoverings.jpg?v=1775710049",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Faux",
- "Faux Finish",
- "Geometric",
- "Gray Beige",
- "Hallway",
- "Hollywood Wallcoverings",
- "Lattice",
- "LEED",
- "Leed Walls",
- "Light Beige",
- "Light Gray",
- "Living Room",
- "Pale Beige",
- "Serene",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/daytona-faux-contemporary-durable-walls-xwc-53200"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_metm-574-jpg",
- "handle": "wolfgordonwallcovering_dwwg_metm-574-jpg",
- "title": "Metamorphosis - Cream | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/metm-574.jpg?v=1762301022",
- "tags": [
- "39% Polyester",
- "61% Olefin",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "contemporary",
- "Cream",
- "geometric",
- "Metamorphosis",
- "Olefin",
- "Textile",
- "textured",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_metm-574-jpg"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_sp9501-jpg",
- "handle": "wolfgordonwallcovering_dwwg_sp9501-jpg",
- "title": "SP9501 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_sp9500.jpg?v=1733872427",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Beige",
- "Black",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Minimalist",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_sp9501-jpg"
- },
- {
- "sku": "dwkk-127666",
- "handle": "dwkk-127666",
- "title": "Echo - Pearl By Clarke And Clarke | Clarke & Clarke Reflections | Tone On Tone Wallcovering Print",
- "vendor": "Clarke And Clarke",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W0055_04_CAC_6055ddb4-d71c-4f06-8b34-98fac6057728.jpg?v=1726037706",
- "tags": [
- "20.875In",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Clarke & Clarke Reflections",
- "Clarke And Clarke",
- "Class A Fire Rated",
- "Commercial",
- "contemporary",
- "Cream",
- "display_variant",
- "Echo",
- "Hallway",
- "Living Room",
- "Non-Woven",
- "Off-white",
- "Organic Modern",
- "Pattern",
- "Print",
- "Serene",
- "stripe",
- "Taupe",
- "textured",
- "Tone On Tone",
- "United Kingdom",
- "W0055/04.Cac.0",
- "Wallcovering",
- "Wood Pulp - 74%;Binder - 13%;Polyester - 13%"
- ],
- "max_price": 179.53,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwkk-127666"
- },
- {
- "sku": "marseilles-durable-vinyl-dur-72003",
- "handle": "marseilles-durable-vinyl-dur-72003",
- "title": "Marseilles Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72003-sample-clean.jpg?v=1774483916",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Brown",
- "Living Room",
- "Marseilles Durable Vinyl",
- "Minimalist",
- "Organic Modern",
- "Serene",
- "Stripe",
- "Taupe",
- "Textured",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wood Grain",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/marseilles-durable-vinyl-dur-72003"
- },
- {
- "sku": "dwkk-115516",
- "handle": "dwkk-115516",
- "title": "Library - Leather Espresso | Kravet Couture | Andrew Martin Navigator | Novelty Wallcovering Print",
- "vendor": "Kravet",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/AMW10042_6_031ce615-2020-4589-b995-96f836589824.jpg?v=1753123160",
- "tags": [
- "53.5In",
- "Abstract",
- "Almond",
- "Amw10042.6.0",
- "Architectural",
- "Archived-Triple-Verified",
- "Archived-Vendor-Gone",
- "Beige",
- "Brown",
- "Cocoa",
- "Coffee",
- "Commercial",
- "Dark Academia",
- "display_variant",
- "Hallway",
- "Kravet",
- "Kravet Couture",
- "Leather",
- "Library",
- "Living Room",
- "Murals / Panels",
- "Novelty",
- "Office",
- "Paper",
- "Paper - 100%",
- "Pattern",
- "Print",
- "Rustic",
- "Sepia",
- "Sienna",
- "Sophisticated",
- "Tan",
- "Textured",
- "Traditional",
- "United Kingdom",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwkk-115516"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_ar9810-jpg",
- "handle": "wolfgordonwallcovering_dwwg_ar9810-jpg",
- "title": "Armor Paint - AR9810 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_ar9809.jpg?v=1733873870",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Green",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_ar9810-jpg"
- },
- {
- "sku": "dwtt-72299-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72299-designer-wallcoverings-los-angeles",
- "title": "T7617 Aqua on Metallic | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T7617.jpg?v=1733892330",
- "tags": [
- "Aqua on Metallic",
- "Architectural",
- "Damask",
- "gold",
- "light green",
- "Pattern",
- "T7617",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72299-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "route-66-car-wallpaper-scr-7923",
- "handle": "route-66-car-wallpaper-scr-7923",
- "title": "Route 66 Car Wallcovering",
- "vendor": "Designer Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/4ba93629c619d6a45a0975b13990731b.jpg?v=1572309084",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Designer Wallcoverings",
- "Greens White",
- "Light Green",
- "Paper",
- "Route 66 Car Wallcovering",
- "Scenic",
- "Screen Print",
- "Wallcovering",
- "Whimsical Screen Prints Vol. 1",
- "White"
- ],
- "max_price": 146.18,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/route-66-car-wallpaper-scr-7923"
- },
- {
- "sku": "faux-wild-rice-fwr-9368",
- "handle": "faux-wild-rice-fwr-9368",
- "title": "Faux Wild Rice | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fwr-9368-sample-faux-wild-rice-hollywood-wallcoverings.jpg?v=1775712081",
- "tags": [
- "Abstract",
- "Architectural",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial - Cleanable",
- "Contemporary",
- "Elegant Vinyls Vol. 1",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 31.73,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-wild-rice-fwr-9368"
- },
- {
- "sku": "crosby-acoustical-wallcovering-xkl-47472",
- "handle": "crosby-acoustical-wallcovering-xkl-47472",
- "title": "Crosby Acoustical Wallcovering",
- "vendor": "Hollywood Acoustical",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/91477928ca30ee461e01e1a2b06f406b.jpg?v=1572310054",
- "tags": [
- "100% Recycled Polyester",
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Burgundy",
- "Class A Fire Rated",
- "Color: Red",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Crosby Acoustical Wallcovering",
- "Fabric",
- "Fabric-backed Vinyl",
- "Hallway",
- "Hollywood Acoustical",
- "Light Beige",
- "Light Gray",
- "Living Room",
- "Maroon",
- "Polyester",
- "Red",
- "Rustic",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/crosby-acoustical-wallcovering-xkl-47472"
- },
- {
- "sku": "floating-bubbles-vinyl-dwx-58119",
- "handle": "floating-bubbles-vinyl-dwx-58119",
- "title": "Floating Bubbles Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58119-sample-floating-bubbles-vinyl-hollywood-wallcoverings.jpg?v=1775713580",
- "tags": [
- "54\" Width",
- "Abstract",
- "Architectural",
- "Beige",
- "Bubbles",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Gold",
- "hollywood",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Minimalist",
- "Neutral",
- "Organic",
- "Textured",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wide Width"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/floating-bubbles-vinyl-dwx-58119"
- },
- {
- "sku": "ettie-rose-circus-damask-wallpaper-cca-83005",
- "handle": "ettie-rose-circus-damask-wallpaper-cca-83005",
- "title": "Ettie Rose Circus Damask Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/2e4be099f3d07526acc600668597116d.jpg?v=1572309965",
- "tags": [
- "Architectural",
- "Beige",
- "Commercial",
- "Cream",
- "Damask",
- "Damasks",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Paper",
- "Pink",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Traditional",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ettie-rose-circus-damask-wallpaper-cca-83005"
- },
- {
- "sku": "leena-pink-loopy-hoops-wallpaper-cca-83013",
- "handle": "leena-pink-loopy-hoops-wallpaper-cca-83013",
- "title": "Leena Pink Loopy Hoops Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/7b306090182738e0a9d84612c4cbf500.jpg?v=1572309965",
- "tags": [
- "Architectural",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Geometric",
- "LA Walls",
- "Lattice",
- "Paper",
- "Pink",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Texture",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 64.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/leena-pink-loopy-hoops-wallpaper-cca-83013"
- },
- {
- "sku": "bellaire-faux-finish-durable-walls-xww-53073",
- "handle": "bellaire-faux-finish-durable-walls-xww-53073",
- "title": "Bellaire Faux Finish Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xww-53073-sample-bellaire-faux-finish-durable-hollywood-wallcoverings.jpg?v=1775703576",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Faux",
- "Faux Finish",
- "Hallway",
- "Hollywood Wallcoverings",
- "Khaki",
- "LEED",
- "Living Room",
- "Serene",
- "Solid",
- "Taupe",
- "Textured",
- "Timeless",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/bellaire-faux-finish-durable-walls-xww-53073"
- },
- {
- "sku": "bosa-marina-midnight-wood-grain-wbs-39632",
- "handle": "bosa-marina-midnight-wood-grain-wbs-39632",
- "title": "Bosa Marina Midnight Wood Grain | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/wbs-39632-sample-bosa-marina-midnight-wood-grain-hollywood-wallcoverings.jpg?v=1775705874",
- "tags": [
- "Architectural",
- "Beige",
- "Bricks and Stones",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Brown",
- "Embossed Texture",
- "Faux",
- "Faux Wood",
- "Gold",
- "Gray",
- "Grey",
- "Hallway",
- "Hollywood Wallcoverings",
- "Hotel Lobby",
- "Living Room",
- "Luxe",
- "Paper",
- "Paper Backed Solid Vinyl Wallcoverings",
- "Regencycore",
- "Rich Woods",
- "Sophisticated",
- "Stripe",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Wallcoverings",
- "Wood",
- "Yellow"
- ],
- "max_price": 54.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/bosa-marina-midnight-wood-grain-wbs-39632"
- },
- {
- "sku": "dwc-1001601",
- "handle": "dwc-1001601",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693307555891.jpg?v=1775521039",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Damask",
- "Floral",
- "Green",
- "NCW4304-01",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paper",
- "Traditional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001601"
- },
- {
- "sku": "hollywood-contemporary-coast-xhw-2010363",
- "handle": "hollywood-contemporary-coast-xhw-2010363",
- "title": "Hollywood Contemporary Coast | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/surf-gidget_df8e1d65-db81-4bc4-a71e-3ded6b63cec6.jpg?v=1777481069",
- "tags": [
- "35.04 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "AI-Analyzed-v2",
- "Architectural",
- "Background Color Light Blue",
- "Bedroom",
- "Blue",
- "Class A Fire Rated",
- "Color: Blue",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Dark Gray",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Gray",
- "Hallway",
- "Healthcare",
- "Heavy Duty",
- "Hollywood Contemporary Coast",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Blue",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Modern",
- "Samantha",
- "Serene",
- "Solid",
- "Steel Blue",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 35.04 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Look"
- ],
- "max_price": 96.58,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hollywood-contemporary-coast-xhw-2010363"
- },
- {
- "sku": "croydon-type-ii-vinyl-wallcovering-xkm-47476",
- "handle": "croydon-type-ii-vinyl-wallcovering-xkm-47476",
- "title": "Croydon Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xkm-47476-sample-croydon-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775709458",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Croydon Type 2 Vinyl Wallcovering",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Light Gray",
- "Living Room",
- "Oatmeal",
- "Serene",
- "Solid",
- "Taupe",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/croydon-type-ii-vinyl-wallcovering-xkm-47476"
- },
- {
- "sku": "marseilles-durable-vinyl-dur-72006",
- "handle": "marseilles-durable-vinyl-dur-72006",
- "title": "Marseilles Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72006-sample-clean.jpg?v=1774483931",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Brown",
- "Burnt Sienna",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Brown",
- "Durable Type 2 Vinyl",
- "Estimated Type: Paper",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Marseilles Durable Vinyl",
- "Minimalist",
- "Office",
- "Orange",
- "Organic Modern",
- "Rustic",
- "Stripe",
- "Terra Cotta",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Wood Grain"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/marseilles-durable-vinyl-dur-72006"
- },
- {
- "sku": "eur-80264-ncw4270-designer-wallcoverings-los-angeles",
- "handle": "eur-80264-ncw4270-designer-wallcoverings-los-angeles",
- "title": "Coromandel 06 - Deep Forest Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513501597747.jpg?v=1775523047",
- "tags": [
- "Architectural",
- "Bedroom",
- "Botanical",
- "Champagne",
- "Charcoal",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Coromandel",
- "Dark Academia",
- "Dining Room",
- "Ebony",
- "English Country",
- "Floral",
- "Grandmillennial",
- "Gray",
- "Grey",
- "Living Room",
- "NCW4270",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Pale Gold",
- "Paper",
- "Sophisticated",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80264-ncw4270-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwtt-72241-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72241-designer-wallcoverings-los-angeles",
- "title": "Medici Brick | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T7675.jpg?v=1733892428",
- "tags": [
- "Architectural",
- "Brick",
- "burnt orange",
- "Damask",
- "Damask Resource 3",
- "Pattern",
- "T7675",
- "terracotta",
- "Texture",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72241-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "crosby-acoustical-wallcovering-xkl-47474",
- "handle": "crosby-acoustical-wallcovering-xkl-47474",
- "title": "Crosby Acoustical Wallcovering",
- "vendor": "Hollywood Acoustical",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/52fe4ae2bf070d81613f3c25d4ffca71.jpg?v=1572310054",
- "tags": [
- "100% Recycled Polyester",
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Black",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Black",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Crosby Acoustical Wallcovering",
- "Fabric",
- "Gray",
- "Hollywood Acoustical",
- "Light Grey",
- "Living Room",
- "Modern",
- "Office",
- "Polyester",
- "Sophisticated",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/crosby-acoustical-wallcovering-xkl-47474"
- },
- {
- "sku": "dwtt-71074-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71074-designer-wallcoverings-los-angeles",
- "title": "Kasai Plum | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T2931_6271d5f3-cb1d-4f69-8c4c-883cd87cebe5.jpg?v=1733894773",
- "tags": [
- "Architectural",
- "Bohemian",
- "Geometric",
- "off-white",
- "Paramount",
- "Pattern",
- "Plum",
- "T2931",
- "Thibaut",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71074-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "paddock-type-ii-vinyl-wallcovering-xpd-48179",
- "handle": "paddock-type-ii-vinyl-wallcovering-xpd-48179",
- "title": "Paddock Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xpd-48179-sample-paddock-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775728684",
- "tags": [
- "Architectural",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Conference Room",
- "Contemporary",
- "Dark Brown",
- "Gray",
- "Hollywood Wallcoverings",
- "Minimalist",
- "Modern",
- "Non-woven",
- "Office",
- "Organic Modern",
- "Primary Suite",
- "Silver Gray",
- "Solid",
- "Sophisticated",
- "Taupe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Walnut"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/paddock-type-ii-vinyl-wallcovering-xpd-48179"
- },
- {
- "sku": "dwtt-72154-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72154-designer-wallcoverings-los-angeles",
- "title": "Stablewood Metallic Gold | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T3627.jpg?v=1733892615",
- "tags": [
- "Architectural",
- "beige",
- "Geometric",
- "gold",
- "Grasscloth Resource 2",
- "Metallic Gold",
- "Pattern",
- "T3627",
- "Texture",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72154-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "tahlia-pink-stucco-texture-wallpaper-cca-83026",
- "handle": "tahlia-pink-stucco-texture-wallpaper-cca-83026",
- "title": "Tahlia Pink Stucco Texture Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/c156cb1926d7a868f133593ae46ef7f8.jpg?v=1572309966",
- "tags": [
- "Abstract",
- "Architectural",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Kids",
- "LA Walls",
- "Pink",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 64.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/tahlia-pink-stucco-texture-wallpaper-cca-83026"
- },
- {
- "sku": "boothbay-harbor-sky-waterside-stripe-wallpaper-cca-83192",
- "handle": "boothbay-harbor-sky-waterside-stripe-wallpaper-cca-83192",
- "title": "Boothbay Harbor Sky Waterside Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/d5c5749ceaa3e98f63b6763fb21b3ba6.jpg?v=1572309972",
- "tags": [
- "Architectural",
- "Coastal",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Light Blue",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/boothbay-harbor-sky-waterside-stripe-wallpaper-cca-83192"
- },
- {
- "sku": "eur-80360-ncw4352-designer-wallcoverings-los-angeles",
- "handle": "eur-80360-ncw4352-designer-wallcoverings-los-angeles",
- "title": "Bonnelles Diamond 04 - Bisque Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513505398835.jpg?v=1775523607",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Beige",
- "Bonnelles Diamond",
- "Champagne",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Cream",
- "Geometric",
- "Hallway",
- "LES INDIENNES",
- "Living Room",
- "Minimalist",
- "Modern",
- "NCW4352",
- "NCW4352-04",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Organic Modern",
- "Paper",
- "Serene",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80360-ncw4352-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "vanessa-white-henna-brocade-wallpaper-wallpaper-cca-82836",
- "handle": "vanessa-white-henna-brocade-wallpaper-wallpaper-cca-82836",
- "title": "Vanessa White Henna Brocade Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/45766882022ade37d5794a6580198513.jpg?v=1572309957",
- "tags": [
- "Architectural",
- "Beige",
- "Commercial",
- "Damask",
- "Damasks",
- "Discontinued",
- "Easy Walls",
- "Floral",
- "Kids",
- "LA Walls",
- "Modern",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Traditional",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/vanessa-white-henna-brocade-wallpaper-wallpaper-cca-82836"
- },
- {
- "sku": "grimsby-type-ii-vinyl-wallcovering-xlh-47749",
- "handle": "grimsby-type-ii-vinyl-wallcovering-xlh-47749",
- "title": "Grimsby Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xlh-47749-sample-grimsby-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775715011",
- "tags": [
- "Architectural",
- "Bedroom",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Gray",
- "Grey",
- "Grimsby Type 2 Vinyl Wallcovering",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Gray",
- "Living Room",
- "Minimalist",
- "Modern",
- "Serene",
- "Silver",
- "Slate Gray",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/grimsby-type-ii-vinyl-wallcovering-xlh-47749"
- },
- {
- "sku": "ncw4390-04",
- "handle": "ncw4390-04",
- "title": "Nina Campbell Wallcoverings - Golden Yellow Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497265360947.jpg?v=1775520696",
- "tags": [
- "Architectural",
- "Botanical",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Floral",
- "Gold",
- "NCW4390-04",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Paper",
- "Stripe",
- "Traditional",
- "Vine",
- "Wallcovering",
- "Wallcoverings",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4390-04"
- },
- {
- "sku": "asha-pearl-lotus-texture-wallpaper-cca-83274",
- "handle": "asha-pearl-lotus-texture-wallpaper-cca-83274",
- "title": "Asha Pearl Lotus Texture Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/05be3c8ff17cd44c99b5c5482a6410a9.jpg?v=1572309983",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Light Gray",
- "Non-Woven",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/asha-pearl-lotus-texture-wallpaper-cca-83274"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_em9500-jpg",
- "handle": "wolfgordonwallcovering_dwwg_em9500-jpg",
- "title": "EM9500 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_em9400r.jpg?v=1733873361",
- "tags": [
- "AI-Analyzed-v2",
- "Animal/Insects",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "EM9500",
- "Gray",
- "Light Gray",
- "Paper",
- "Textured",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_em9500-jpg"
- },
- {
- "sku": "waterlily-drive-metal-and-wood-hlw-73078",
- "handle": "waterlily-drive-metal-and-wood-hlw-73078",
- "title": "Waterlily Drive - Metal and Wood | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73078-sample-clean.jpg?v=1774483371",
- "tags": [
- "abstract",
- "Architectural",
- "Bedroom",
- "Biophilic",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Green",
- "Commercial",
- "Commercial Wallcovering",
- "contemporary",
- "Faux Wood",
- "Floral",
- "Gray",
- "Green",
- "Hollywood Wallcoverings",
- "Living Room",
- "Modern",
- "Natural",
- "Naturally Glamorous",
- "Non-Woven",
- "Office",
- "Olive Green",
- "Organic",
- "Organic Modern",
- "Paper",
- "textured",
- "Wallcovering",
- "Wood"
- ],
- "max_price": 111.26,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/waterlily-drive-metal-and-wood-hlw-73078"
- },
- {
- "sku": "seres-spice-romo",
- "handle": "seres-spice-romo",
- "title": "Seres Spice | Romo",
- "vendor": "Romo",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W969-06-seres-wallcovering-spice_01.jpg?v=1776398979",
- "tags": [
- "Architectural",
- "Background Color beige",
- "beige",
- "Coastal",
- "Commercial",
- "Conference Room",
- "cream",
- "Embossed Wallcovering",
- "Grasscloth",
- "Ivory",
- "Kabu Wallcoverings",
- "Light Beige",
- "Lobby",
- "Natural",
- "Office",
- "Romo",
- "Seres",
- "Small",
- "Stripe",
- "tan",
- "Texture",
- "Textured",
- "Traditional",
- "Transitional",
- "W969/06",
- "Wallcovering",
- "Warm Taupe"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/seres-spice-romo"
- },
- {
- "sku": "dwtt-71230-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71230-designer-wallcoverings-los-angeles",
- "title": "Passaro Damask Cream on Metallic Metallic Gold on Red | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/room-living_room-t34038.jpg?v=1775149519",
- "tags": [
- "Architectural",
- "Damask",
- "Damask Resource 4",
- "gold",
- "Metallic Gold on Red",
- "Pattern",
- "red",
- "T89142",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71230-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "santa-rosa-contemporary-durable-walls-xwt-53488",
- "handle": "santa-rosa-contemporary-durable-walls-xwt-53488",
- "title": "Santa Rosa Contemporary Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwt-53488-sample-santa-rosa-contemporary-durable-hollywood-wallcoverings.jpg?v=1775732865",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Art Deco",
- "Bedroom",
- "Blue",
- "Class A Fire Rated",
- "Color: Blue",
- "Commercial",
- "Commercial Wallcovering",
- "Dining Room",
- "Geometric",
- "Glamorous",
- "Gray",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Light Blue",
- "Light Steelblue",
- "Living Room",
- "Modern",
- "Non-woven",
- "Santa Rosa Contemporary Durable",
- "Silver",
- "Sophisticated",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/santa-rosa-contemporary-durable-walls-xwt-53488"
- },
- {
- "sku": "fairford-vinyl-wallcovering-xlb-47652",
- "handle": "fairford-vinyl-wallcovering-xlb-47652",
- "title": "Fairford Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xlb-47652-sample-fairford-vinyl-hollywood-wallcoverings.jpg?v=1775711465",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Organic Modern",
- "Stripe",
- "Tan",
- "Taupe",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/fairford-vinyl-wallcovering-xlb-47652"
- },
- {
- "sku": "mia-pink-faux-zebra-stripes-wallpaper-wallpaper-cca-82857",
- "handle": "mia-pink-faux-zebra-stripes-wallpaper-wallpaper-cca-82857",
- "title": "Mia Pink Faux Zebra Stripes Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/0b62946781f52da914ecf128b06950f7.jpg?v=1572309958",
- "tags": [
- "Animal Prints",
- "Animal/Insects",
- "Animals",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Fauna",
- "Faux",
- "LA Walls",
- "Light Pink",
- "Pink",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Strippable",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04",
- "Zebra"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/mia-pink-faux-zebra-stripes-wallpaper-wallpaper-cca-82857"
- },
- {
- "sku": "dwtt-72252-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72252-designer-wallcoverings-los-angeles",
- "title": "Damask Resource 3 Metallic Silver | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T7602.jpg?v=1733892406",
- "tags": [
- "Architectural",
- "black",
- "Damask",
- "Damask Resource 3",
- "Metallic Silver",
- "Pattern",
- "silver",
- "T7602",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72252-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "croydon-type-ii-vinyl-wallcovering-xkm-47484",
- "handle": "croydon-type-ii-vinyl-wallcovering-xkm-47484",
- "title": "Croydon Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xkm-47484-sample-croydon-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775709617",
- "tags": [
- "Abstract",
- "Architectural",
- "Beige",
- "Blue",
- "Brown",
- "Burgundy",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Croydon Type 2 Vinyl Wallcovering",
- "Dark Brown",
- "Dining Room",
- "Estimated Type: Paper",
- "Forest Green",
- "Glamorous",
- "Gold",
- "Green",
- "Hollywood Wallcoverings",
- "Hotel Lobby",
- "Industrial",
- "Living Room",
- "Luxe",
- "Luxurious",
- "Navy Blue",
- "Red",
- "Regencycore",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/croydon-type-ii-vinyl-wallcovering-xkm-47484"
- },
- {
- "sku": "hardee-embossed-contemporary-durable-walls-xwy-53110",
- "handle": "hardee-embossed-contemporary-durable-walls-xwy-53110",
- "title": "Hardee Embossed Contemporary Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/XWY-53110-sample-clean.jpg?v=1774481833",
- "tags": [
- "Architectural",
- "Brown",
- "Burnt Sienna",
- "Chocolate Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Copper",
- "Dark Brown",
- "Dining Room",
- "Embossed",
- "Embossed Texture",
- "Geometric",
- "Hallway",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Mosaic",
- "Orange",
- "Rustic",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hardee-embossed-contemporary-durable-walls-xwy-53110"
- },
- {
- "sku": "dwtt-71729-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71729-designer-wallcoverings-los-angeles",
- "title": "Myanmar Trellis Black | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T36135_7d0a399e-a388-4a0f-aaa7-6128404a0ed2.jpg?v=1733893533",
- "tags": [
- "Architectural",
- "Beige",
- "Black",
- "Contemporary",
- "Enchantment",
- "Geometric",
- "Pattern",
- "T36135",
- "Thibaut",
- "Trellis",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71729-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "hollywood-crystal-xhw-2010107",
- "handle": "hollywood-crystal-xhw-2010107",
- "title": "Hollywood Crystal | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/crystalline-carnelian.jpg?v=1777480960",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "Abstract",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Beige",
- "Brown",
- "Burnt Sienna",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Crystal",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Orange",
- "Organic Modern",
- "Paper",
- "Rustic",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Look"
- ],
- "max_price": 61.9,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hollywood-crystal-xhw-2010107"
- },
- {
- "sku": "elaris-ashlar-romo",
- "handle": "elaris-ashlar-romo",
- "title": "Elaris Ashlar | Romo Wallcovering",
- "vendor": "Romo",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W970-01-elaris-wallcovering-ashlar_05.jpg?v=1776398951",
- "tags": [
- "Abstract",
- "Architectural",
- "Background Color beige",
- "beige",
- "blue",
- "brown",
- "Commercial",
- "Contemporary",
- "Eclectic",
- "Elaris",
- "Embossed Wallcovering",
- "Hotel Room",
- "Kabu Wallcoverings",
- "Lobby",
- "Medium",
- "Non-woven",
- "Office",
- "Romo",
- "Sage Green",
- "Slate Blue",
- "Soft White",
- "Stripe",
- "Texture",
- "Textured",
- "Transitional",
- "W970/01",
- "Wallcovering",
- "Warm Taupe"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/elaris-ashlar-romo"
- },
- {
- "sku": "labasa-taupe-zebra-wbs-39655",
- "handle": "labasa-taupe-zebra-wbs-39655",
- "title": "Labasa Taupe Zebra | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/wbs-39655-sample-labasa-taupe-zebra-hollywood-wallcoverings.jpg?v=1775721027",
- "tags": [
- "Abstract",
- "Animal Print",
- "Animal Skin",
- "Animal/Insects",
- "Animals",
- "Architectural",
- "Beige",
- "Bricks and Stones",
- "Brown",
- "Champagne",
- "Chocolate Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed Texture",
- "Fauna",
- "Faux",
- "Glamorous",
- "Hallway",
- "Hollywood Regency",
- "Hollywood Wallcoverings",
- "Hotel Lobby",
- "Living Room",
- "Luxe",
- "Luxurious",
- "Non-Woven",
- "Paper",
- "Paper Backed Solid Vinyl Wallcoverings",
- "Rich Woods",
- "Stripe",
- "Taupe",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Wallcoverings",
- "Walnut",
- "Wood",
- "Yellow",
- "Zebra"
- ],
- "max_price": 34.29,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/labasa-taupe-zebra-wbs-39655"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_br10297-jpg",
- "handle": "wolfgordonwallcovering_dwwg_br10297-jpg",
- "title": "BR10297 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_br10296.jpg?v=1733873645",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "BR10297",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Light Gray",
- "Paper",
- "Textured",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_br10297-jpg"
- },
- {
- "sku": "harpswell-beige-herringbone-awning-stripe-wallpaper-cca-83157",
- "handle": "harpswell-beige-herringbone-awning-stripe-wallpaper-cca-83157",
- "title": "Harpswell Beige Herringbone Awning Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/b519a00a568542fdbd5fa6be95fc418b.jpg?v=1572309971",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Cream",
- "Discontinued",
- "Easy Walls",
- "Harpswell Beige Herringbone Awning Stripe Wallcovering",
- "LA Walls",
- "Light Beige",
- "Light Yellow",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/harpswell-beige-herringbone-awning-stripe-wallpaper-cca-83157"
- },
- {
- "sku": "versace-plain-metallic-pink-wallcovering-versace",
- "handle": "versace-plain-metallic-pink-wallcovering-versace",
- "title": "Versace Plain Metallic Pink Wallcovering | Versace",
- "vendor": "Versace",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/47413ebeaa8c17791fd641dc54701b52.jpg?v=1773706481",
- "tags": [
- "A.S. Création",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Pink",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "display_variant",
- "Hallway",
- "Italian",
- "Light Beige",
- "Light Pink",
- "Living Room",
- "Luxury",
- "Pale Pink",
- "Paper",
- "Pink",
- "Serene",
- "Solid",
- "Textured",
- "Trending Wallcovering Collection 2026",
- "Trending Wallpaper Collection 2026",
- "Versace",
- "Versace Home",
- "Versace Plain Metallic",
- "Versace Plain Metallic Pink Wallcovering",
- "Versace VI",
- "Wallcovering",
- "Walnut Brown"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/versace-plain-metallic-pink-wallcovering-versace"
- },
- {
- "sku": "dwtt-72282-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72282-designer-wallcoverings-los-angeles",
- "title": "Medici Brown | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T7695.jpg?v=1733892363",
- "tags": [
- "Architectural",
- "beige",
- "brown",
- "Damask",
- "Damask Resource 3",
- "Pattern",
- "T7695",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72282-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "marseilles-durable-vinyl-dur-72011",
- "handle": "marseilles-durable-vinyl-dur-72011",
- "title": "Wool Look - Faux Suede Commercial Wallcovering | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72011-sample-clean.jpg?v=1774483962",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Brown",
- "Durable Type 2 Vinyl",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Minimalist",
- "Organic",
- "Organic Modern",
- "Rustic",
- "Stripe",
- "Taupe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wood Grain"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/marseilles-durable-vinyl-dur-72011"
- },
- {
- "sku": "steuben-grey-turf-stripe-wallpaper-cca-83170",
- "handle": "steuben-grey-turf-stripe-wallpaper-cca-83170",
- "title": "Steuben Grey Turf Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/c878064273aa46bd1ea303c49d8d22b5.jpg?v=1572309971",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Grey",
- "LA Walls",
- "Light Gray",
- "Off-white",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Steuben Grey Turf Stripe Wallcovering",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Traditional",
- "Transitional",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/steuben-grey-turf-stripe-wallpaper-cca-83170"
- },
- {
- "sku": "prince-vertical-emboss-durable-walls-xwh-52391",
- "handle": "prince-vertical-emboss-durable-walls-xwh-52391",
- "title": "Prince Vertical Emboss Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwh-52391-sample-prince-vertical-emboss-durable-hollywood-wallcoverings.jpg?v=1775729391",
- "tags": [
- "74%-100% post-consumer (Eco-fi polyester)",
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Dining Room",
- "Embossed",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Living Room",
- "Minimalist",
- "Organic Modern",
- "Polyester",
- "remaining fiber is pre-consumer (polyester)",
- "Serene",
- "Stripe",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/prince-vertical-emboss-durable-walls-xwh-52391"
- },
- {
- "sku": "dwkk-ge20640bc",
- "handle": "dwkk-ge20640bc",
- "title": "Kravet Design - W3492-52 Slate Commercial Wallcovering | Kravet",
- "vendor": "Kravet",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W3492_52_34f04674-c640-442c-8be7-975f2b1bb93e.jpg?v=1753122293",
- "tags": [
- "36In",
- "Abstract",
- "Architectural",
- "Bedroom",
- "Brown",
- "Candice Olson Collection",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cork - 100%",
- "display_variant",
- "Grasscloth",
- "Grasscloth Texture",
- "Grasscloth Wallcovering",
- "Gray",
- "Grey",
- "Hallway",
- "Korea",
- "Kravet",
- "Kravet Design",
- "Living Room",
- "Republic Of",
- "Rustic",
- "Silver",
- "Taupe",
- "Texture",
- "Textured",
- "Vinyl",
- "W3492-52",
- "W3492.52.0",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwkk-ge20640bc"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_st9807-jpg",
- "handle": "wolfgordonwallcovering_dwwg_st9807-jpg",
- "title": "ST9807 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_st9805.jpg?v=1733872221",
- "tags": [
- "AI-Analyzed-v2",
- "Animal/Insects",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Khaki",
- "Minimalist",
- "Paper",
- "Solid",
- "ST9807",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_st9807-jpg"
- },
- {
- "sku": "st-joseph-embossed-contemporary-faux-vertical-stria-walls-xwq-52931",
- "handle": "st-joseph-embossed-contemporary-faux-vertical-stria-walls-xwq-52931",
- "title": "St Joseph Embossed Contemporary Faux Vertical Stria | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwq-52931-sample-st-joseph-embossed-contemporary-faux-vertical-stria-hollywood-wallcoverings.jpg?v=1775734528",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Embossed Texture",
- "Faux",
- "Faux Finish",
- "Hallway",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Light Brown",
- "Linen",
- "Linen Texture",
- "Living Room",
- "Ochre",
- "Stripe",
- "Tan",
- "Taupe",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/st-joseph-embossed-contemporary-faux-vertical-stria-walls-xwq-52931"
- },
- {
- "sku": "dwtt-71305-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71305-designer-wallcoverings-los-angeles",
- "title": "Tribeca Sisal Black | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T83004_b6d232fc-2748-4190-9e17-389a15e46d5f.jpg?v=1733894250",
- "tags": [
- "Architectural",
- "Black",
- "Geometric",
- "gray",
- "Natural Resource 2",
- "Pattern",
- "T83004",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71305-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "glambeads-shagreen-glass-bead-wallpaper-purple-gbs-8500",
- "handle": "glambeads-shagreen-glass-bead-wallpaper-purple-gbs-8500",
- "title": "Glambeads - Shagreen Glass Bead Wallcovering -- Purple",
- "vendor": "Glass Beaded",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/d233a1db49cb33ca525fc9e3b11fd24d.jpg?v=1572309082",
- "tags": [
- "AI-Analyzed-v2",
- "Animal/Insects",
- "Architectural",
- "Bling",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Glambeads",
- "Glass Bead",
- "Glass Beaded",
- "Glass Beaded Walls",
- "Glass Beads",
- "Gray",
- "Modern",
- "Purple",
- "Stingray",
- "Textured",
- "vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 195.48,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/glambeads-shagreen-glass-bead-wallpaper-purple-gbs-8500"
- },
- {
- "sku": "berkeley-type-ii-vinyl-wallcovering-xju-47312",
- "handle": "berkeley-type-ii-vinyl-wallcovering-xju-47312",
- "title": "Berkeley Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xju-47312-sample-berkeley-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775704406",
- "tags": [
- "Architectural",
- "Beige",
- "Berkeley Type 2 Vinyl Wallcovering",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Conference Room",
- "Contemporary",
- "Cream",
- "Dark Brown",
- "Estimated Type: Paper",
- "Hallway",
- "Hollywood Wallcoverings",
- "Hotel Lobby",
- "Luxe",
- "Luxurious",
- "Neoclassical",
- "Regencycore",
- "Solid",
- "Taupe",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/berkeley-type-ii-vinyl-wallcovering-xju-47312"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_st9502-jpg",
- "handle": "wolfgordonwallcovering_dwwg_st9502-jpg",
- "title": "ST9502 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_st9501.jpg?v=1733872259",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Minimalist",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_st9502-jpg"
- },
- {
- "sku": "pleated-perfect-paradise-ppp-2637",
- "handle": "pleated-perfect-paradise-ppp-2637",
- "title": "Pleated Perfect Paradise | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ppp-2637-sample-pleated-perfect-paradise-hollywood-wallcoverings.jpg?v=1775729212",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Light Gray",
- "Pleated Perfect Paradise",
- "Stripe",
- "Textured",
- "vinyl",
- "Wallcovering",
- "White",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 35.66,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/pleated-perfect-paradise-ppp-2637"
- },
- {
- "sku": "lafayette-modern-embossed-durable-walls-xwf-52260",
- "handle": "lafayette-modern-embossed-durable-walls-xwf-52260",
- "title": "Lafayette Modern Embossed Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwf-52260-sample-lafayette-modern-embossed-durable-hollywood-wallcoverings.jpg?v=1775721117",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Embossed Texture",
- "Hallway",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Light Brown",
- "Light Taupe",
- "Living Room",
- "Modern",
- "Organic Modern",
- "Serene",
- "Taupe",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/lafayette-modern-embossed-durable-walls-xwf-52260"
- },
- {
- "sku": "nassau-contemporary-emboosed-walls-xwh-52336",
- "handle": "nassau-contemporary-emboosed-walls-xwh-52336",
- "title": "Nassau Contemporary Emboosed | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nest-forage.jpg?v=1777480485",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Hallway",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Light Brown",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Serene",
- "Taupe",
- "Textured",
- "Transitional",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/nassau-contemporary-emboosed-walls-xwh-52336"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_sm8006-jpg",
- "handle": "wolfgordonwallcovering_dwwg_sm8006-jpg",
- "title": "SM8006 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_sm8005.jpg?v=1733872548",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_sm8006-jpg"
- },
- {
- "sku": "dwtt-71840-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71840-designer-wallcoverings-los-angeles",
- "title": "South Sea Turquoise and Green | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/Grasscloth5-Sutton-03_e67b4c84-9389-44bb-adac-1824e57ae3e0.jpg?v=1773244651",
- "tags": [
- "Architectural",
- "Botanical",
- "Contemporary",
- "Floral",
- "light green",
- "Pattern",
- "Resort",
- "T16017",
- "teal",
- "Thibaut",
- "Turquoise and Green",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71840-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "cotes-d-amore-durable-vinyl-dur-72145",
- "handle": "cotes-d-amore-durable-vinyl-dur-72145",
- "title": "Cotes D'Amore Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72145-sample-clean.jpg?v=1774484555",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Geometric",
- "Gray",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Minimalist",
- "Modern",
- "Serene",
- "Silver",
- "Stripe",
- "Taupe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/cotes-d-amore-durable-vinyl-dur-72145"
- },
- {
- "sku": "essone-durable-vinyl-dur-72272",
- "handle": "essone-durable-vinyl-dur-72272",
- "title": "Essone Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72272-sample-clean.jpg?v=1774484966",
- "tags": [
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Grasscloth",
- "Gray",
- "Grey",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Grey",
- "Living Room",
- "Minimalist",
- "Modern",
- "Serene",
- "Silver",
- "Stripe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/essone-durable-vinyl-dur-72272"
- },
- {
- "sku": "rangeley-beige-new-avalon-stripe-wallpaper-cca-83126",
- "handle": "rangeley-beige-new-avalon-stripe-wallpaper-cca-83126",
- "title": "Rangeley Beige New Avalon Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/b56fc7797effaf6e4a6d2c5c7b02ca03.jpg?v=1572309969",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Cream",
- "Damask",
- "Damasks",
- "Discontinued",
- "Easy Walls",
- "Ivory",
- "LA Walls",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/rangeley-beige-new-avalon-stripe-wallpaper-cca-83126"
- },
- {
- "sku": "marseilles-wallpaper-xp3-68074",
- "handle": "marseilles-wallpaper-xp3-68074",
- "title": "Marseilles Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/7688fb217fd2c97b3eba54c9ebe7a1ba.jpg?v=1733882134",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Hallway",
- "Hollywood Wallcoverings",
- "Linen",
- "Linen Texture",
- "Living Room",
- "Marseilles Vinyl",
- "Phillip Romano Commercial",
- "Tan",
- "Taupe",
- "Textured",
- "Traditional",
- "Transitional",
- "vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/marseilles-wallpaper-xp3-68074"
- },
- {
- "sku": "versace-golden-stripe-metallic-wallcovering-versace",
- "handle": "versace-golden-stripe-metallic-wallcovering-versace",
- "title": "Versace Golden Stripe Metallic Wallcovering | Versace",
- "vendor": "Versace",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/06978277d2c8184444db41ab926ae8e2.jpg?v=1773706410",
- "tags": [
- "[Object Object]",
- "A.S. Création",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Dining Room",
- "display_variant",
- "French Country",
- "Italian",
- "Living Room",
- "Luxury",
- "Pale Goldenrod",
- "Paper",
- "Paste the wall",
- "Stripe",
- "Traditional",
- "Trending Wallcovering Collection 2026",
- "Trending Wallpaper Collection 2026",
- "Versace",
- "Versace Golden Stripe",
- "Versace Golden Stripe Metallic Wallcovering",
- "Versace Home",
- "Versace VI",
- "Victorian",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/versace-golden-stripe-metallic-wallcovering-versace"
- },
- {
- "sku": "delilah-cream-tulip-damask-wallpaper-cca-83240",
- "handle": "delilah-cream-tulip-damask-wallpaper-cca-83240",
- "title": "Delilah Cream Tulip Damask Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/e9aad6c07fa0483b2b58f6b77ece20ee.jpg?v=1572309981",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Cream",
- "Damask",
- "Discontinued",
- "Easy Walls",
- "Gray",
- "LA Walls",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/delilah-cream-tulip-damask-wallpaper-cca-83240"
- },
- {
- "sku": "dwss-72685",
- "handle": "dwss-72685",
- "title": "Karolina dark blue Sample Wallcovering | Sandberg",
- "vendor": "Sandberg",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/807-76_image1_1d798f85-5630-4b04-a224-b48a23683f6c.jpg?v=1646105061",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "DARK BLUE",
- "Gray",
- "Karolina",
- "Karolina dark blue Sample",
- "Midnightblue",
- "P807-76",
- "Paper",
- "Pattern",
- "Sandberg",
- "Silver",
- "Traditional",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwss-72685"
- },
- {
- "sku": "highlands-honeycomb-wood-weave-hlw-73063",
- "handle": "highlands-honeycomb-wood-weave-hlw-73063",
- "title": "Highlands Honeycomb Wood Weave | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73063-sample-clean.jpg?v=1774483291",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bathroom",
- "Bedroom",
- "Brown",
- "Class A Fire Rated",
- "Color: Green",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Green",
- "Faux Wood",
- "Forest Green",
- "Geometric",
- "Green",
- "Highlands Honeycomb Wood Weave",
- "Hollywood Wallcoverings",
- "Living Room",
- "Minimalist",
- "Modern",
- "Natural",
- "Naturally Glamorous",
- "Organic Modern",
- "Serene",
- "Taupe",
- "Textured",
- "Tile",
- "Vinyl",
- "Wallcovering",
- "Wood"
- ],
- "max_price": 31.09,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/highlands-honeycomb-wood-weave-hlw-73063"
- },
- {
- "sku": "eur-70393-designer-wallcoverings-los-angeles",
- "handle": "eur-70393-designer-wallcoverings-los-angeles",
- "title": "Crocodilo Crocodile | Osborne & Little Europe",
- "vendor": "Osborne & Little",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/5041_e19433e3-481a-4181-97d7-0f5b660df083.webp?v=1738614525",
- "tags": [
- "Animal Skin",
- "Animal/Insects",
- "Architectural",
- "Bathroom",
- "Bedroom",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Crocodile",
- "Crocodilo Crocodile",
- "Embossed",
- "Light Gray",
- "Light Grey",
- "Living Room",
- "Luxe",
- "Luxury",
- "METROPOLIS VINYLS 2",
- "Minimalist",
- "Modern",
- "Off-white",
- "Osborne & Little",
- "Osborne & Little Europe",
- "Sophisticated",
- "Texture",
- "Textured",
- "Vinyl",
- "W6337",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-70393-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "delilah-champagne-tulip-damask-wallpaper-cca-83242",
- "handle": "delilah-champagne-tulip-damask-wallpaper-cca-83242",
- "title": "Delilah Champagne Tulip Damask Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/4b804fe18507aae7dad1fad1e16778f3.jpg?v=1572309981",
- "tags": [
- "Architectural",
- "Beige",
- "Bling",
- "Class A Fire Rated",
- "Commercial",
- "Damask",
- "Discontinued",
- "Easy Walls",
- "Glitter",
- "Gray",
- "LA Walls",
- "Modern",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Taupe",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/delilah-champagne-tulip-damask-wallpaper-cca-83242"
- },
- {
- "sku": "st-dennis-durable-vinyl-dur-72284",
- "handle": "st-dennis-durable-vinyl-dur-72284",
- "title": "St Dennis Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72284-sample-clean.jpg?v=1774485025",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Brushstroke",
- "Burnt Orange",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Gray",
- "Grey",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Blue",
- "Light Gray",
- "Living Room",
- "Modern",
- "Office",
- "Orange",
- "Sophisticated",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/st-dennis-durable-vinyl-dur-72284"
- },
- {
- "sku": "anahi-light-pink-forest-fauna-wallpaper-cca-82985",
- "handle": "anahi-light-pink-forest-fauna-wallpaper-cca-82985",
- "title": "Anahi Light Pink Forest Fauna Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/8a4bc515949001796aa5e3fdc6fe8a04.jpg?v=1572309964",
- "tags": [
- "Animal/Insects",
- "Animals",
- "Architectural",
- "Bird",
- "Botanical",
- "Commercial",
- "Deer",
- "Discontinued",
- "Easy Walls",
- "Fauna",
- "Flowers",
- "LA Walls",
- "Light Pink",
- "Paper",
- "Pink",
- "Prepasted",
- "Rabbit",
- "Series: Brewster",
- "Strippable",
- "Trees",
- "Wallcovering",
- "Washable",
- "Whimsical",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 64.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/anahi-light-pink-forest-fauna-wallpaper-cca-82985"
- },
- {
- "sku": "gibby-peach-leafy-scroll-wallpaper-wallpaper-cca-82851",
- "handle": "gibby-peach-leafy-scroll-wallpaper-wallpaper-cca-82851",
- "title": "Gibby Peach Leafy Scroll Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/15d47bbd9ed51ccb48c149dab69627d9.jpg?v=1572309958",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Leaf",
- "Peach",
- "Prepasted",
- "Scrolls",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vine",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04",
- "Yellow"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/gibby-peach-leafy-scroll-wallpaper-wallpaper-cca-82851"
- },
- {
- "sku": "dwtt-70924-designer-wallcoverings-los-angeles",
- "handle": "dwtt-70924-designer-wallcoverings-los-angeles",
- "title": "Solis Turquoise and Navy | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T10088_83b49516-4bd1-4362-862c-f86872ac70ae.jpg?v=1733895066",
- "tags": [
- "abstract",
- "Architectural",
- "contemporary",
- "light blue",
- "light teal",
- "navy blue",
- "Pattern",
- "stripe",
- "T10088",
- "teal",
- "Thibaut",
- "Tropics",
- "Turquoise and Navy",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-70924-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_reh-5511-jpg",
- "handle": "wolfgordonwallcovering_dwwg_reh-5511-jpg",
- "title": "Resham - Glacier Gray | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/reh-5511.jpg?v=1762304178",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Dark Gray",
- "Glacier Gray",
- "Gray",
- "Light Gray",
- "RAMPART®",
- "Resham",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings",
- "Woven"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_reh-5511-jpg"
- },
- {
- "sku": "provence-durable-vinyl-dur-72036",
- "handle": "provence-durable-vinyl-dur-72036",
- "title": "Provence Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72036-sample-clean.jpg?v=1774484060",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Brown",
- "Durable Type 2 Vinyl",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Industrial",
- "Living Room",
- "Moody",
- "Office",
- "Rustic",
- "Taupe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/provence-durable-vinyl-dur-72036"
- },
- {
- "sku": "chesterfield-acoustical-wallcovering-xjz-47384",
- "handle": "chesterfield-acoustical-wallcovering-xjz-47384",
- "title": "Chesterfield Acoustical Wallcovering",
- "vendor": "Hollywood Acoustical",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/9aa8bb50ea5c0d5e346aaa49bf3e776e.jpg?v=1572310051",
- "tags": [
- "100% recycled polyester",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Ecru",
- "Fabric",
- "Grasscloth",
- "Hallway",
- "Hollywood Acoustical",
- "Light Beige",
- "Living Room",
- "Minimalist",
- "Off-white",
- "Organic Modern",
- "Pale Taupe",
- "Polyester",
- "Serene",
- "Stripe",
- "Textured",
- "Transitional",
- "Wallcovering"
- ],
- "max_price": 5,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/chesterfield-acoustical-wallcovering-xjz-47384"
- },
- {
- "sku": "twickenham-type-ii-vinyl-wallcovering-xqm-48544",
- "handle": "twickenham-type-ii-vinyl-wallcovering-xqm-48544",
- "title": "Twickenham Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xqm-48544-sample-twickenham-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775735498",
- "tags": [
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grey",
- "Hollywood Wallcoverings",
- "Light Grey",
- "Living Room",
- "Minimalist",
- "Office",
- "Organic Modern",
- "Pale Grey",
- "Serene",
- "Stripe",
- "Textured",
- "Twickenham Type 2 Vinyl Wallcovering",
- "Vinyl",
- "Wallcovering",
- "Wood Grain"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/twickenham-type-ii-vinyl-wallcovering-xqm-48544"
- },
- {
- "sku": "eur-80143-ncw4150-designer-wallcoverings-los-angeles",
- "handle": "eur-80143-ncw4150-designer-wallcoverings-los-angeles",
- "title": "Rosslyn 01 - Neutral Gray Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513497174067.jpg?v=1775522364",
- "tags": [
- "Architectural",
- "Bedroom",
- "Botanical",
- "Butter Yellow",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Coral",
- "Cottagecore",
- "Crimson",
- "Dining Room",
- "Floral",
- "Grandmillennial",
- "Green",
- "Living Room",
- "NCW4150",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Organic",
- "Pale Beige",
- "Pale Lavender",
- "Paper",
- "Pink",
- "Purple",
- "Red",
- "Rose",
- "Rosslyn",
- "Sage Green",
- "Traditional",
- "Tropical",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80143-ncw4150-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "faux-leaf-squares-fls-2529",
- "handle": "faux-leaf-squares-fls-2529",
- "title": "Faux Leaf Squares Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fls-2529-sample-faux-leaf-squares-wallpaper-hollywood-wallcoverings.jpg?v=1775711952",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Commercial",
- "Contemporary",
- "Cream",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Off-white",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 34.55,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-leaf-squares-fls-2529"
- },
- {
- "sku": "faux-leaf-squares-fls-2753",
- "handle": "faux-leaf-squares-fls-2753",
- "title": "Faux Leaf Squares Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fls-2753-sample-faux-leaf-squares-wallpaper-hollywood-wallcoverings.jpg?v=1775712008",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Dark Gray",
- "Faux Finish",
- "Gray",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 31.92,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-leaf-squares-fls-2753"
- },
- {
- "sku": "dwtt-71524-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71524-designer-wallcoverings-los-angeles",
- "title": "Gilon Beige | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T11012_87913635-a46a-4ecc-b079-43a8421e290c.jpg?v=1733893909",
- "tags": [
- "Architectural",
- "beige",
- "Geometric",
- "Geometric Resource 2",
- "off-white",
- "Pattern",
- "T11012",
- "Thibaut",
- "Traditional",
- "Trellis",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71524-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_dsm-5037-jpg",
- "handle": "wolfgordonwallcovering_dwwg_dsm-5037-jpg",
- "title": "Dasma - Gold | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dsm-5037.jpg?v=1762291602",
- "tags": [
- "100% Vinyl",
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contract",
- "Dasma",
- "Grasscloth",
- "Light Brown",
- "Stripe",
- "Tan",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_dsm-5037-jpg"
- },
- {
- "sku": "decorator-grasscloth-vol-2-by-phillipe-romano-488-431",
- "handle": "decorator-grasscloth-vol-2-by-phillipe-romano-488-431",
- "title": "Decorator Grasscloth Vol. 2 | Phillipe Romano",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/bac9bab8319c6e530b2227084d175633_7b78eabd-17c9-4b41-91ae-e2a039e397fa.jpg?v=1745458269",
- "tags": [
- "Architectural",
- "Beige",
- "Commercial",
- "Grasscloth",
- "Grasscloth Texture",
- "Grasscloth Wallcovering",
- "Lemon",
- "Natural",
- "Natural Wallcovering",
- "Naturals",
- "Phillipe Romano",
- "Phillipe Romano Naturals",
- "Tan",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Woven"
- ],
- "max_price": 21.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/decorator-grasscloth-vol-2-by-phillipe-romano-488-431"
- },
- {
- "sku": "wtw0454fire",
- "handle": "wtw0454fire",
- "title": "Fire Island Grass - Cream | Scalamandre",
- "vendor": "Scalamandre Wallpaper",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WTW0454FIRE.jpg?v=1745346314",
- "tags": [
- "Architectural",
- "Beige",
- "Coastal",
- "Commercial",
- "Cream",
- "FIRE ISLAND GRASS",
- "Grasscloth",
- "Scalamandre Wallcovering",
- "Stripe",
- "Tan",
- "Texture",
- "Textured",
- "Wallcovering",
- "White",
- "Woven"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wtw0454fire"
- },
- {
- "sku": "rushden-type-ii-vinyl-wallcovering-xpq-48277",
- "handle": "rushden-type-ii-vinyl-wallcovering-xpq-48277",
- "title": "Rushden Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xpq-48277-sample-rushden-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775731480",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gold",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Hollywood Wallcoverings",
- "Khaki",
- "Living Room",
- "Organic Modern",
- "Rushden Type 2 Vinyl Wallcovering",
- "Sand",
- "Tan",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Woven"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/rushden-type-ii-vinyl-wallcovering-xpq-48277"
- },
- {
- "sku": "dwtt-72396-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72396-designer-wallcoverings-los-angeles",
- "title": "Klein Trellis Tobacco | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T6072.jpg?v=1733892225",
- "tags": [
- "Anniversary",
- "Architectural",
- "beige",
- "Geometric",
- "Pattern",
- "T6072",
- "tan",
- "Thibaut",
- "Tobacco",
- "Traditional",
- "Trellis",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72396-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "john-s-thick-embossed-vinyl-xjt-44462",
- "handle": "john-s-thick-embossed-vinyl-xjt-44462",
- "title": "John's Thick Embossed Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/XJT-44462-clean_e003c6f3-0b05-4085-ad26-ee962f4423f8.jpg?v=1774479175",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "ASTM E84 Class A",
- "Basketweave",
- "Brown",
- "Check",
- "Chocolate Brown",
- "Class A Fire Rated",
- "Coffee",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Dining Room",
- "Embossed",
- "Embossed Texture",
- "Farmhouse",
- "Hallway",
- "Hollywood Wallcoverings",
- "John's Thick Embossed Vinyl",
- "Living Room",
- "Lodge",
- "Rustic",
- "Sepia",
- "Sienna",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Walnut",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/john-s-thick-embossed-vinyl-xjt-44462"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_ar10391xl-jpg",
- "handle": "wolfgordonwallcovering_dwwg_ar10391xl-jpg",
- "title": "Armor XL | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ar10391xl.jpg?v=1762286332",
- "tags": [
- "Architectural",
- "Armor XL",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Scuffmaster",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_ar10391xl-jpg"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_dnuv-512-jpg",
- "handle": "wolfgordonwallcovering_dwwg_dnuv-512-jpg",
- "title": "Digital Nouveau - Gunmetal | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dnuv-512.jpg?v=1762291227",
- "tags": [
- "100% Mylar",
- "AI-Analyzed-v2",
- "Architectural",
- "Art Deco",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Copper",
- "Digital Curated",
- "Digital Nouveau",
- "Geometric",
- "Gray",
- "Lattice",
- "Mylar",
- "Orange",
- "Paper",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_dnuv-512-jpg"
- },
- {
- "sku": "manatee-faux-vertical-stria-durable-walls-xwq-52980",
- "handle": "manatee-faux-vertical-stria-durable-walls-xwq-52980",
- "title": "Manatee Faux Vertical Stria Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/76f2820096b816a553dffed95a3e43f7.jpg?v=1733881909",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Faux",
- "Faux Finish",
- "Grasscloth",
- "Hallway",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Minimalist",
- "Off-white",
- "Organic Modern",
- "Serene",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/manatee-faux-vertical-stria-durable-walls-xwq-52980"
- },
- {
- "sku": "dwtt-71922-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71922-designer-wallcoverings-los-angeles",
- "title": "Coastal Sisal Antique | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T14110_05e4cad0-eae4-47a5-98b1-5b55879734f6.jpg?v=1733893125",
- "tags": [
- "Antique",
- "Architectural",
- "beige",
- "light brown",
- "Pattern",
- "T14110",
- "Texture",
- "Texture Resource 4",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71922-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "barnard-type-ii-vinyl-wallcovering-xjp-47225",
- "handle": "barnard-type-ii-vinyl-wallcovering-xjp-47225",
- "title": "Barnard Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/batiste-french_white.jpg?v=1777480098",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Gray",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Grey",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Grey",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Minimalist",
- "Off-white",
- "Office",
- "Serene",
- "Solid",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Look"
- ],
- "max_price": 52.78,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/barnard-type-ii-vinyl-wallcovering-xjp-47225"
- },
- {
- "sku": "faux-wild-rice-fwr-9372",
- "handle": "faux-wild-rice-fwr-9372",
- "title": "Faux Wild Rice | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fwr-9372-sample-faux-wild-rice-hollywood-wallcoverings.jpg?v=1775712093",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial - Cleanable",
- "Contemporary",
- "Elegant Vinyls Vol. 1",
- "Faux Finish",
- "Faux Wild Rice",
- "Hollywood Wallcoverings",
- "Light Gray",
- "Textured",
- "vinyl",
- "Wallcovering"
- ],
- "max_price": 31.73,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-wild-rice-fwr-9372"
- },
- {
- "sku": "rivo-dulce-durable-vinyl-dur-72421",
- "handle": "rivo-dulce-durable-vinyl-dur-72421",
- "title": "Rivo Dulce Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72421-sample-clean.jpg?v=1774485480",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Basketweave",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Green",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Gray-green",
- "Durable Type 2 Vinyl",
- "Green",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Olive Drab",
- "Rivo Dulce Durable Vinyl",
- "Rustic",
- "Sage",
- "Serene",
- "Textured",
- "Traditional",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/rivo-dulce-durable-vinyl-dur-72421"
- },
- {
- "sku": "bali-grasscloth-stripe-wallpaper-trf-56847",
- "handle": "bali-grasscloth-stripe-wallpaper-trf-56847",
- "title": "Bali Grasscloth Stripe | Jeffrey Stevens",
- "vendor": "Jeffrey Stevens",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/8f9ed29c1377a5145fdd007e2debe67c.jpg?v=1750789749",
- "tags": [
- "Architectural",
- "Asian",
- "Bali Grasscloth Stripe",
- "beach",
- "Beige",
- "broad stripe",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Discontinued",
- "Faux",
- "Faux Grasscloth",
- "grasscloth",
- "Grasscloth Texture",
- "Grasscloth Wallcovering",
- "Jeffrey Stevens",
- "Modern",
- "Modern Tropics",
- "Natural",
- "Non-Woven",
- "Pastel",
- "Prepasted - Washable - Strippable",
- "Series: York",
- "stripe",
- "Tan",
- "Texture",
- "Textured",
- "Traditional",
- "Transitional",
- "tropical",
- "USA",
- "Wallcovering",
- "Warm Taupe",
- "wide stripe",
- "woven",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 62.79,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/bali-grasscloth-stripe-wallpaper-trf-56847"
- },
- {
- "sku": "steuben-aqua-turf-stripe-wallpaper-cca-83169",
- "handle": "steuben-aqua-turf-stripe-wallpaper-cca-83169",
- "title": "Steuben Aqua Turf Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/368f6eec141e7fdf697ff54cd40f71b7.jpg?v=1572309971",
- "tags": [
- "AI-Analyzed-v2",
- "Aqua",
- "Architectural",
- "Beige",
- "Blue",
- "Class A Fire Rated",
- "Coastal",
- "Commercial",
- "Coral",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Light Blue",
- "Linen",
- "Paper",
- "Pink",
- "Prepasted",
- "Series: Brewster",
- "Steuben Aqua Turf Stripe Wallcovering",
- "Stripe",
- "Stripes",
- "Strippable",
- "Traditional",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/steuben-aqua-turf-stripe-wallpaper-cca-83169"
- },
- {
- "sku": "vaticano-durable-vinyl-dur-72376",
- "handle": "vaticano-durable-vinyl-dur-72376",
- "title": "Vaticano Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72376-sample-clean.jpg?v=1774485266",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Art Deco",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Fretwork",
- "Geometric",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Minimalist",
- "Off-white",
- "Paper",
- "Serene",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vaticano Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/vaticano-durable-vinyl-dur-72376"
- },
- {
- "sku": "dwtt-72410-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72410-designer-wallcoverings-los-angeles",
- "title": "Spotted Orchid Harvest Gold | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/room-living_room-t41149.jpg?v=1775151891",
- "tags": [
- "Anniversary",
- "Architectural",
- "beige",
- "Geometric",
- "gold",
- "Harvest Gold",
- "Pattern",
- "T6045",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72410-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "norman-rust-medallion-wallpaper-cca-82951",
- "handle": "norman-rust-medallion-wallpaper-cca-82951",
- "title": "Norman Rust Medallion Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/43331d772a722584505d1756582069e0.jpg?v=1572309963",
- "tags": [
- "Architectural",
- "Beige",
- "Brown",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Geometric",
- "LA Walls",
- "Masculine",
- "Medallion",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/norman-rust-medallion-wallpaper-cca-82951"
- },
- {
- "sku": "ikeley-type-ii-vinyl-wallcovering-xls-47823",
- "handle": "ikeley-type-ii-vinyl-wallcovering-xls-47823",
- "title": "Ikeley Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xls-47823-sample-ikeley-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775719452",
- "tags": [
- "Abstract",
- "Architectural",
- "Art Deco",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Fretwork",
- "Geometric",
- "Glamorous",
- "Gold",
- "Hollywood Wallcoverings",
- "Hotel Lobby",
- "Ikeley Type 2 Vinyl Wallcovering",
- "Ivory",
- "Living Room",
- "Modern",
- "Sophisticated",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ikeley-type-ii-vinyl-wallcovering-xls-47823"
- },
- {
- "sku": "hollywood-getty-texture-xhw-2010297",
- "handle": "hollywood-getty-texture-xhw-2010297",
- "title": "Hollywood Getty Texture | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/rivoli-specter_f2917f64-4503-43ac-b9c9-080aa5aa8d19.jpg?v=1777481195",
- "tags": [
- "24.96 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Cream",
- "Fire Rated",
- "Flame Certificate Available",
- "Hallway",
- "Healthcare",
- "Heavy Duty",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Beige",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Modern",
- "Serene",
- "Stripe",
- "Taupe",
- "Texture",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 24.96 oz",
- "Wide Width",
- "Width: 54\""
- ],
- "max_price": 62.33,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hollywood-getty-texture-xhw-2010297"
- },
- {
- "sku": "ventnor-vinyl-wallcovering-xqq-48570",
- "handle": "ventnor-vinyl-wallcovering-xqq-48570",
- "title": "Ventnor Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/XQQ-48570-sample-clean.jpg?v=1774480637",
- "tags": [
- "Architectural",
- "Bedroom",
- "Brown",
- "Chocolate Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Brown",
- "Green",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Olive Brown",
- "Organic Modern",
- "Rustic",
- "Solid",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ventnor-vinyl-wallcovering-xqq-48570"
- },
- {
- "sku": "harrison-type-ii-vinyl-wallcovering-xlg-47723",
- "handle": "harrison-type-ii-vinyl-wallcovering-xlg-47723",
- "title": "Harrison Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xlg-47723-sample-harrison-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775716113",
- "tags": [
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Yellow",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Green",
- "Hallway",
- "Hollywood Wallcoverings",
- "Khaki",
- "Light Brown",
- "Living Room",
- "Moss",
- "Organic Modern",
- "Sage",
- "Serene",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/harrison-type-ii-vinyl-wallcovering-xlg-47723"
- },
- {
- "sku": "crushed-costoluto-vinyl-dwx-58004",
- "handle": "crushed-costoluto-vinyl-dwx-58004",
- "title": "Crushed Costoluto Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58004-sample-crushed-costoluto-vinyl-hollywood-wallcoverings.jpg?v=1775709679",
- "tags": [
- "54 Inch Width",
- "54\" Width",
- "Architectural",
- "Beige",
- "Commercial",
- "Commercial Grade",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Crushed",
- "hollywood",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Blue",
- "Minimalist",
- "Neutral",
- "Organic",
- "Striped",
- "Subtle",
- "Texture",
- "Textured",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wide Width"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/crushed-costoluto-vinyl-dwx-58004"
- },
- {
- "sku": "peter-s-plastered-walls-ppw-2878",
- "handle": "peter-s-plastered-walls-ppw-2878",
- "title": "Peter's Plastered | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ppw-2878-sample-peter-s-plastered-hollywood-wallcoverings.jpg?v=1775729074",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Light Brown",
- "Mediterranean",
- "Tan",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 40.54,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/peter-s-plastered-walls-ppw-2878"
- },
- {
- "sku": "eur-80368-ncw4353-designer-wallcoverings-los-angeles",
- "handle": "eur-80368-ncw4353-designer-wallcoverings-los-angeles",
- "title": "Colbert 04 - Chartreuse Green Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513505595443.jpg?v=1775523646",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Biophilic",
- "Botanical",
- "Brown",
- "Class A Fire Rated",
- "Colbert",
- "Commercial",
- "Contemporary",
- "Dark Brown",
- "Green",
- "Hallway",
- "Leaf",
- "LES INDIENNES",
- "Light Yellow",
- "Lime Green",
- "Living Room",
- "NCW4353",
- "NCW4353-04",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Off-white",
- "Olive Green",
- "Organic",
- "Organic Modern",
- "Paper",
- "Sage Green",
- "Taupe",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80368-ncw4353-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_doxm-551-jpg",
- "handle": "wolfgordonwallcovering_dwwg_doxm-551-jpg",
- "title": "Onyx Mexicano - Mica | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/doxm-551.jpg?v=1762291302",
- "tags": [
- "100% Vinyl",
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Digital Curated",
- "Mica",
- "Onyx Mexicano",
- "Orange",
- "Paper",
- "Tan",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_doxm-551-jpg"
- },
- {
- "sku": "narcisse-noir-wallpaper-xa7-66456",
- "handle": "narcisse-noir-wallpaper-xa7-66456",
- "title": "Narcisse Noir Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/6e61cc5efc2b205847ac5990d23902c9.jpg?v=1775123364",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "calcium carbonate/pulp",
- "Class A Fire Rated",
- "Commercial",
- "Entryway",
- "Geometric",
- "Grasscloth",
- "Living Room",
- "Narcisse Noir Wallcovering",
- "Natural Wallcovering",
- "Office",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Scandinavian",
- "Stripe",
- "Tan",
- "Textural",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 49.3,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/narcisse-noir-wallpaper-xa7-66456"
- },
- {
- "sku": "decorator-grasscloth-vol-2-by-phillipe-romano-488-442",
- "handle": "decorator-grasscloth-vol-2-by-phillipe-romano-488-442",
- "title": "Decorator Grasscloth Vol. 2 | Phillipe Romano",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/04e200302bc8798dc0af6b48f813ed15_4d1504c2-ecd1-4804-b6e7-23158e00b5ba.jpg?v=1745458241",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "ASTM E84 Class A",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Decorator Grasscloth Vol. 2",
- "Fabric",
- "Grasscloth",
- "Grasscloth Texture",
- "Light Brown",
- "Natural",
- "Natural Wallcovering",
- "Naturals",
- "Phillipe Romano",
- "Phillipe Romano Naturals",
- "Tan",
- "Textured",
- "Traditional",
- "Transitional",
- "Wallcovering"
- ],
- "max_price": 19.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/decorator-grasscloth-vol-2-by-phillipe-romano-488-442"
- },
- {
- "sku": "eur-80299-ncw4300-designer-wallcoverings-los-angeles",
- "handle": "eur-80299-ncw4300-designer-wallcoverings-los-angeles",
- "title": "Collioure 01 - Off-White Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513502744627.jpg?v=1775523237",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Collioure",
- "Commercial",
- "Contemporary",
- "Dining Room",
- "Eclectic",
- "Geometric",
- "Gold",
- "Gray",
- "LES REVES",
- "Light Blue",
- "Light Pink",
- "Living Room",
- "Mid-century",
- "Mid-century Modern",
- "Moss",
- "Multi",
- "NCW4300",
- "NCW4300-01",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Paper",
- "Playful",
- "Taupe",
- "Vases",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80299-ncw4300-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwtt-71577-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71577-designer-wallcoverings-los-angeles",
- "title": "Caravan Coral | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T64146_2d517055-b13e-46dc-80e0-91c6be945d11.jpg?v=1733893805",
- "tags": [
- "Architectural",
- "Bohemian",
- "Caravan",
- "Coral",
- "Damask",
- "Pattern",
- "T64146",
- "Thibaut",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71577-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "bosa-marina-rustic-plum-wood-grain-wbs-39640",
- "handle": "bosa-marina-rustic-plum-wood-grain-wbs-39640",
- "title": "Bosa Marina Rustic Plum Wood Grain | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/wbs-39640-sample-bosa-marina-rustic-plum-wood-grain-hollywood-wallcoverings.jpg?v=1775706008",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Bricks and Stones",
- "Brown",
- "Charcoal",
- "Class A Fire Rated",
- "Coastal Farmhouse",
- "Color: Pink",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed Texture",
- "Farmhouse",
- "Faux",
- "Faux Wood",
- "Gray",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Paper Backed Solid Vinyl Wallcoverings",
- "Pink",
- "Rich Woods",
- "Rose",
- "Rustic",
- "Stripe",
- "Taupe",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Wallcoverings",
- "Warm",
- "Wood",
- "Wood Grain"
- ],
- "max_price": 34.29,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/bosa-marina-rustic-plum-wood-grain-wbs-39640"
- },
- {
- "sku": "faux-leaf-squares-fls-2519",
- "handle": "faux-leaf-squares-fls-2519",
- "title": "Faux Leaf Squares Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fls-2519-sample-faux-leaf-squares-wallpaper-hollywood-wallcoverings.jpg?v=1775711918",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Commercial",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Khaki",
- "Off-white",
- "Solid",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 34.55,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-leaf-squares-fls-2519"
- },
- {
- "sku": "dwtt-71267-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71267-designer-wallcoverings-los-angeles",
- "title": "Highline Straw | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T83047_16ef2e73-646d-4f62-b598-bfd23104c6ab.jpg?v=1733894330",
- "tags": [
- "Architectural",
- "beige",
- "Natural Resource 2",
- "Pattern",
- "Straw",
- "Stripe",
- "T83047",
- "Texture",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering",
- "yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71267-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "eur-80254-ncw4207-designer-wallcoverings-los-angeles",
- "handle": "eur-80254-ncw4207-designer-wallcoverings-los-angeles",
- "title": "Fontibre 01 - Neutral Beige Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fontibre_wp_main_05816e81-f879-4db1-a2ef-1e85be6416d6.webp?v=1738950177",
- "tags": [
- "Architectural",
- "Bedroom",
- "Botanical",
- "Burgundy",
- "Burnt Orange",
- "Charcoal",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Cottagecore",
- "Dining Room",
- "English Country",
- "Fontibre",
- "Grandmillennial",
- "Gray",
- "Green",
- "Leaf",
- "Living Room",
- "NCW4207",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Orange",
- "Pale Beige",
- "Paper",
- "Pattern",
- "Red",
- "Sage Green",
- "Traditional",
- "Vine",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80254-ncw4207-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "eur-80267-ncw4272-designer-wallcoverings-los-angeles",
- "handle": "eur-80267-ncw4272-designer-wallcoverings-los-angeles",
- "title": "Pavilion Garden 01 - Midnight Blue Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513501696051.jpg?v=1775523066",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Bedroom",
- "Bird",
- "Blue",
- "Botanical",
- "Chinoiserie",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "COROMANDEL",
- "Dining Room",
- "Light Blue",
- "Living Room",
- "Navy",
- "NCW4272",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Paper",
- "Pavilion",
- "Pavilion Garden",
- "Peacock",
- "Scenic",
- "Serene",
- "Traditional",
- "Tree",
- "Wallcovering",
- "Woman"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80267-ncw4272-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "haute-sena-durable-vinyl-dur-72319",
- "handle": "haute-sena-durable-vinyl-dur-72319",
- "title": "Haute Sena Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72319-sample-clean.jpg?v=1774485165",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Brown",
- "Burnt Sienna",
- "Class A Fire Rated",
- "Color: Red",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Geometric",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Orange",
- "Red",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Umber",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/haute-sena-durable-vinyl-dur-72319"
- },
- {
- "sku": "dwtt-71589-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71589-designer-wallcoverings-los-angeles",
- "title": "Caravan Beige | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T64123_84e02189-ca2b-414e-b27a-57c34e71bd17.jpg?v=1733893773",
- "tags": [
- "Architectural",
- "beige",
- "Caravan",
- "Floral",
- "Geometric",
- "off-white",
- "Pattern",
- "T64123",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71589-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "earby-type-ii-vinyl-wallcovering-xkz-47616",
- "handle": "earby-type-ii-vinyl-wallcovering-xkz-47616",
- "title": "Earby Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xkz-47616-sample-earby-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775710448",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Earby Type 2 Vinyl Wallcovering",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Solid",
- "Suede",
- "Tan",
- "Taupe",
- "Textured",
- "Timeless",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/earby-type-ii-vinyl-wallcovering-xkz-47616"
- },
- {
- "sku": "casco-bay-burgundy-ombre-pinstripe-wallpaper-cca-83111",
- "handle": "casco-bay-burgundy-ombre-pinstripe-wallpaper-cca-83111",
- "title": "Casco Bay Burgundy Ombre Pinstripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/e615819e87e505c1ef194dab950200e6.jpg?v=1572309969",
- "tags": [
- "Architectural",
- "Beige",
- "Brown",
- "Burgundy",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Masculine",
- "Prepasted",
- "Red",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Taupe",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/casco-bay-burgundy-ombre-pinstripe-wallpaper-cca-83111"
- },
- {
- "sku": "dwtt-71276-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71276-designer-wallcoverings-los-angeles",
- "title": "Highline Tan and Navy | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T83053_135b746f-ea76-41c5-a4d7-56ef2806ac8e.jpg?v=1733894313",
- "tags": [
- "Architectural",
- "beige",
- "blue",
- "Geometric",
- "Natural Resource 2",
- "Pattern",
- "T83053",
- "Tan and Navy",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71276-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "franko-faux-metallic-patina-ffm-44442",
- "handle": "franko-faux-metallic-patina-ffm-44442",
- "title": "Franko Faux Metallic Patina | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ffm-44442-sample-franko-faux-metallic-patina-hollywood-wallcoverings.jpg?v=1775714282",
- "tags": [
- "Architectural",
- "ASTM E84 Class A",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Faux Finish",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Living Room",
- "Off-white",
- "Organic Modern",
- "Pale Beige",
- "Serene",
- "Textured",
- "Tile",
- "Vinyl",
- "Wallcovering",
- "Wood Grain"
- ],
- "max_price": 43.76,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/franko-faux-metallic-patina-ffm-44442"
- },
- {
- "sku": "dwtt-72398-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72398-designer-wallcoverings-los-angeles",
- "title": "Verey Tobacco | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T6010.jpg?v=1733892221",
- "tags": [
- "Anniversary",
- "Architectural",
- "beige",
- "brown",
- "Pattern",
- "Scenic",
- "T6010",
- "Thibaut",
- "Tobacco",
- "Toile",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72398-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "natalia-moss-floral-scroll-wallpaper-wallpaper-cca-82826",
- "handle": "natalia-moss-floral-scroll-wallpaper-wallpaper-cca-82826",
- "title": "Natalia Moss Floral Scroll Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/73cc07073de8f7b9b4e324dff0ba2d94.jpg?v=1572309957",
- "tags": [
- "Architectural",
- "Beige",
- "Blue",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Floral",
- "Kids",
- "LA Walls",
- "Leaf",
- "Prepasted",
- "Scrolls",
- "Series: Brewster",
- "Strippable",
- "Teal",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/natalia-moss-floral-scroll-wallpaper-wallpaper-cca-82826"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_dprh-501-jpg",
- "handle": "wolfgordonwallcovering_dwwg_dprh-501-jpg",
- "title": "Perch - Dusk | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dprh-501.jpg?v=1762291526",
- "tags": [
- "100% Mylar",
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Digital Curated",
- "Dusk",
- "Geometric",
- "Gray",
- "Light Gray",
- "Mylar",
- "Paper",
- "Perch",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_dprh-501-jpg"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_em9400r-jpg",
- "handle": "wolfgordonwallcovering_dwwg_em9400r-jpg",
- "title": "EM9400R | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_elw-2323.jpg?v=1733873363",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "EM9400R",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_em9400r-jpg"
- },
- {
- "sku": "zoe-quartz-coco-texture-wallpaper-cca-83286",
- "handle": "zoe-quartz-coco-texture-wallpaper-cca-83286",
- "title": "Zoe Quartz Coco Texture Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/69c2dee5b3ad8849deaef84609f2cd93_6a50d6f6-f871-4a14-a576-76e256bd8c11.jpg?v=1572309983",
- "tags": [
- "Abstract",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Faux",
- "LA Walls",
- "Light Green",
- "Light Pink",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/zoe-quartz-coco-texture-wallpaper-cca-83286"
- },
- {
- "sku": "paddock-type-ii-vinyl-wallcovering-xpd-48178",
- "handle": "paddock-type-ii-vinyl-wallcovering-xpd-48178",
- "title": "Paddock Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xpd-48178-sample-paddock-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775728656",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Light Gray",
- "Linen",
- "Linen Texture",
- "Living Room",
- "Minimalist",
- "Office",
- "Organic Modern",
- "Paddock Type 2 Vinyl Wallcovering",
- "Serene",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/paddock-type-ii-vinyl-wallcovering-xpd-48178"
- },
- {
- "sku": "hollywood-tailored-xhw-2010177",
- "handle": "hollywood-tailored-xhw-2010177",
- "title": "Hollywood Tailored | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/harrison-park_row.jpg?v=1777480970",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Gray",
- "Bedroom",
- "Brown",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Gray",
- "Grey",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Gray",
- "Linen",
- "Linen Texture",
- "Living Room",
- "Medium Gray",
- "Mfr-Image-Refreshed",
- "Minimalist",
- "Office",
- "Serene",
- "Taupe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Look"
- ],
- "max_price": 59.87,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hollywood-tailored-xhw-2010177"
- },
- {
- "sku": "ncw4392-04",
- "handle": "ncw4392-04",
- "title": "Ashdown Chelwood Green/Ivory - Green Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497265786931.jpg?v=1775520756",
- "tags": [
- "Architectural",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Floral",
- "Green",
- "NCW4392-04",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Paper",
- "Traditional",
- "Wallcovering",
- "Wallcoverings",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4392-04"
- },
- {
- "sku": "hollywood-skyline-xhw-201082",
- "handle": "hollywood-skyline-xhw-201082",
- "title": "Hollywood Skyline | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/bentley-mayfair.jpg?v=1777480946",
- "tags": [
- "24.96 oz",
- "54 Inch Width",
- "54\" Width",
- "Abstract",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Beige",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Grasscloth",
- "Healthcare",
- "Heavy Duty",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Grey",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Minimalist",
- "Off-white",
- "Office",
- "Organic Modern",
- "Serene",
- "Stripe",
- "Textured",
- "Type 2 Durable Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 24.96 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Look"
- ],
- "max_price": 62.77,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hollywood-skyline-xhw-201082"
- },
- {
- "sku": "eur-80224-ncw4202-designer-wallcoverings-los-angeles",
- "handle": "eur-80224-ncw4202-designer-wallcoverings-los-angeles",
- "title": "Estella 01 - Azure Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513500287027.jpg?v=1775522826",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Cool",
- "Denim Blue",
- "Estella",
- "Floral",
- "FONTIBRE",
- "Hallway",
- "Light Beige",
- "Light Blue",
- "Living Room",
- "Modern",
- "Navy",
- "NCW4202",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Paper",
- "Sky Blue",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80224-ncw4202-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "rob-s-folk-art-animals-scr-8165",
- "handle": "rob-s-folk-art-animals-scr-8165",
- "title": "Rob's Folk Art Animals",
- "vendor": "Designer Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/5dc6350ff8222184486def0932ead021_e3f6b2c7-1d37-46dd-950a-b9ffaca36171.jpg?v=1572309108",
- "tags": [
- "AI-Analyzed-v2",
- "Animal/Insects",
- "Animals",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Deer",
- "Designer Wallcoverings",
- "Dog",
- "Paper",
- "Red",
- "Red on Off-white",
- "Rob's Folk Art Animals",
- "Rooster",
- "Screen Print",
- "Toile",
- "Traditional",
- "vinyl",
- "Wallcovering",
- "Whimsical Screen Prints Vol. 1",
- "White"
- ],
- "max_price": 193.24,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/rob-s-folk-art-animals-scr-8165"
- },
- {
- "sku": "jutely-vinyl-dwx-58128",
- "handle": "jutely-vinyl-dwx-58128",
- "title": "Jutely Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58128-sample-jutely-vinyl-hollywood-wallcoverings.jpg?v=1775720249",
- "tags": [
- "54\" Width",
- "Architectural",
- "Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contract",
- "Contract Wallcovering",
- "Grasscloth",
- "hollywood",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Jute",
- "Natural Look",
- "Neutral",
- "Tan",
- "Texture",
- "Textured",
- "Traditional",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wide Width",
- "Woven"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/jutely-vinyl-dwx-58128"
- },
- {
- "sku": "asha-gold-lotus-damask-wallpaper-cca-83234",
- "handle": "asha-gold-lotus-damask-wallpaper-cca-83234",
- "title": "Asha Gold Lotus Damask Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/5d4a363f07f49d7ada8dda4ca37bee3d.jpg?v=1572309981",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Cream",
- "Damask",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/asha-gold-lotus-damask-wallpaper-cca-83234"
- },
- {
- "sku": "gianna-blackberry-texture-wallpaper-wallpaper-cca-82879",
- "handle": "gianna-blackberry-texture-wallpaper-wallpaper-cca-82879",
- "title": "Gianna Blackberry Texture Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/1b4ec75e87cefefd6dcbe8fcc21040a6.jpg?v=1572309958",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Faux",
- "Faux Effects",
- "LA Walls",
- "Mauve",
- "Pink",
- "Prepasted",
- "Purple",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/gianna-blackberry-texture-wallpaper-wallpaper-cca-82879"
- },
- {
- "sku": "eur-80282-ncw4274-designer-wallcoverings-los-angeles",
- "handle": "eur-80282-ncw4274-designer-wallcoverings-los-angeles",
- "title": "Palmetto 06 - Ecru Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513502220339.jpg?v=1775523148",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "COROMANDEL",
- "Cream",
- "Hallway",
- "Living Room",
- "Minimalist",
- "NCW4274",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Palmetto",
- "Paper",
- "Serene",
- "Stripe",
- "Taupe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80282-ncw4274-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwtt-71510-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71510-designer-wallcoverings-los-angeles",
- "title": "Kendall White on Sea Mist | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/Heritage-ArboretaFAB-colorseries.jpg?v=1773244317",
- "tags": [
- "Architectural",
- "Geometric",
- "Geometric Resource 2",
- "light green",
- "Pattern",
- "T11059",
- "Thibaut",
- "Transitional",
- "Trellis",
- "Unknown",
- "Wallcovering",
- "white",
- "White on Sea Mist"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71510-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "seine-marne-durable-vinyl-dur-72124",
- "handle": "seine-marne-durable-vinyl-dur-72124",
- "title": "Seine Marne Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72124-sample-clean.jpg?v=1774484481",
- "tags": [
- "Architectural",
- "Basketweave",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Durable Type 2 Vinyl",
- "Geometric",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Light Gray",
- "Living Room",
- "Pale Beige",
- "Serene",
- "Textured",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/seine-marne-durable-vinyl-dur-72124"
- },
- {
- "sku": "benedict-canyon-sisal-hlw-73023",
- "handle": "benedict-canyon-sisal-hlw-73023",
- "title": "Benedict Canyon Sisal | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/hlw-73023-sample-benedict-canyon-sisal-hollywood-wallcoverings.jpg?v=1775703748",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Charcoal Gray",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Grasscloth Weave",
- "Gray",
- "Grey",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Natural",
- "Natural Texture",
- "Naturally Glamorous",
- "Off-white",
- "Organic",
- "Organic Modern",
- "Rustic",
- "Sisal",
- "Stripe",
- "Tan",
- "Textured",
- "Wallcovering",
- "Woven"
- ],
- "max_price": 63.43,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/benedict-canyon-sisal-hlw-73023"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_wwdf-210-jpg",
- "handle": "wolfgordonwallcovering_dwwg_wwdf-210-jpg",
- "title": "WonderWood® - Gray Barn Oak Qtd | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/wwdf-210f.jpg?v=1762312408",
- "tags": [
- "100% Reconstituted Wood Veneer",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Farmhouse",
- "Gray Barn Oak Qtd",
- "Light Brown",
- "Natural",
- "Reconstituted",
- "Scandinavian",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings",
- "WonderWood®"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_wwdf-210-jpg"
- },
- {
- "sku": "nicky-sky-textured-pinstripe-wallpaper-cca-83030",
- "handle": "nicky-sky-textured-pinstripe-wallpaper-cca-83030",
- "title": "Nicky Sky Textured Pinstripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/a840708a1f5b29ad1e205d9a4bdb909c.jpg?v=1572309966",
- "tags": [
- "Architectural",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Kids",
- "LA Walls",
- "Light Blue",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 64.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/nicky-sky-textured-pinstripe-wallpaper-cca-83030"
- },
- {
- "sku": "fairford-vinyl-wallcovering-xlb-47661",
- "handle": "fairford-vinyl-wallcovering-xlb-47661",
- "title": "Fairford Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xlb-47661-sample-fairford-vinyl-hollywood-wallcoverings.jpg?v=1775711712",
- "tags": [
- "Architectural",
- "Bedroom",
- "Brown",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Gray",
- "Grey",
- "Hollywood Wallcoverings",
- "Light Grey",
- "Living Room",
- "Minimalist",
- "Office",
- "Serene",
- "Silver",
- "Stripe",
- "Taupe",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/fairford-vinyl-wallcovering-xlb-47661"
- },
- {
- "sku": "captiva-light-pink-floral-toss-wallpaper-cca-83046",
- "handle": "captiva-light-pink-floral-toss-wallpaper-cca-83046",
- "title": "Captiva Light Pink Floral Toss Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/990a597d9507031518df912cab255638.jpg?v=1572309966",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Floral",
- "Flowers",
- "Gray",
- "LA Walls",
- "Light Pink",
- "Pink",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 64.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/captiva-light-pink-floral-toss-wallpaper-cca-83046"
- },
- {
- "sku": "puna-drive-natural-grassweave-hlw-73121",
- "handle": "puna-drive-natural-grassweave-hlw-73121",
- "title": "Puna Drive - Natural Grassweave | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73121-sample-clean.jpg?v=1774483559",
- "tags": [
- "Architectural",
- "Bedroom",
- "Brown",
- "Charcoal Gray",
- "Coastal",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Grasscloth Weave",
- "Gray",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Natural",
- "Naturally Glamorous",
- "Organic",
- "Organic Modern",
- "Rustic",
- "Textured",
- "Umber",
- "Wallcovering",
- "Woven"
- ],
- "max_price": 41.7,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/puna-drive-natural-grassweave-hlw-73121"
- },
- {
- "sku": "vomera-snow-white-faux-travertine-wbs-39653",
- "handle": "vomera-snow-white-faux-travertine-wbs-39653",
- "title": "Vomera Snow White Faux Travertine | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/wbs-39653-sample-vomera-snow-white-faux-travertine-hollywood-wallcoverings.jpg?v=1775736186",
- "tags": [
- "Architectural",
- "Bedroom",
- "Bricks and Stones",
- "Class A Fire Rated",
- "Color: White",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed Texture",
- "Faux",
- "Faux Finish",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Grey",
- "Living Room",
- "Minimalist",
- "Off-white",
- "Paper Backed Solid Vinyl Wallcoverings",
- "Rich Woods",
- "Serene",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wallcoverings",
- "White",
- "Wood"
- ],
- "max_price": 34.29,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/vomera-snow-white-faux-travertine-wbs-39653"
- },
- {
- "sku": "dwtt-71194-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71194-designer-wallcoverings-los-angeles",
- "title": "Alicia Metallic Silver | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T89119_751b265b-c46e-40c9-a657-55f7f09a82b1.jpg?v=1733894508",
- "tags": [
- "Architectural",
- "Damask",
- "Damask Resource 4",
- "light gray",
- "Metallic Silver",
- "Pattern",
- "silver",
- "T89119",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71194-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "daytona-faux-embossed-durable-walls-xwc-53236",
- "handle": "daytona-faux-embossed-durable-walls-xwc-53236",
- "title": "Daytona Faux Embossed Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwc-53236-sample-daytona-faux-embossed-durable-hollywood-wallcoverings.jpg?v=1775710130",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Embossed Texture",
- "Faux",
- "Faux Finish",
- "Grasscloth",
- "Hallway",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Light Beige",
- "Living Room",
- "Stripe",
- "Taupe",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/daytona-faux-embossed-durable-walls-xwc-53236"
- },
- {
- "sku": "sullivan-lilac-ombre-vine-trail-wallpaper-wallpaper-cca-82901",
- "handle": "sullivan-lilac-ombre-vine-trail-wallpaper-wallpaper-cca-82901",
- "title": "Sullivan Lilac Ombre Vine Trail Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/b4ac54a862758569e3d13f2310ce9b42.jpg?v=1572309961",
- "tags": [
- "Architectural",
- "Beige",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Green",
- "Kids",
- "LA Walls",
- "Leaf",
- "Lilac",
- "Multi",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Vine",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/sullivan-lilac-ombre-vine-trail-wallpaper-wallpaper-cca-82901"
- },
- {
- "sku": "susie-brown-chevron-wallpaper-cca-83038",
- "handle": "susie-brown-chevron-wallpaper-cca-83038",
- "title": "Susie Brown Chevron Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/670d2d4595e526a8571526228d461c4e.jpg?v=1572309966",
- "tags": [
- "Architectural",
- "Beige",
- "Chevron",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Geometric",
- "Green",
- "Kids",
- "LA Walls",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/susie-brown-chevron-wallpaper-cca-83038"
- },
- {
- "sku": "cubism-drive-hlw-73044",
- "handle": "cubism-drive-hlw-73044",
- "title": "Cubism Drive | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73044-sample-clean.jpg?v=1774483184",
- "tags": [
- "Architectural",
- "Art Deco",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Geometric",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Modern",
- "Natural",
- "Naturally Glamorous",
- "Sophisticated",
- "Taupe",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 159.27,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/cubism-drive-hlw-73044"
- },
- {
- "sku": "biscay-bay-bourbon-wood-grain-wbs-39614",
- "handle": "biscay-bay-bourbon-wood-grain-wbs-39614",
- "title": "Biscay Bay Bourbon Wood Grain | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/wbs-39614-sample-biscay-bay-bourbon-wood-grain-hollywood-wallcoverings.jpg?v=1775705249",
- "tags": [
- "Architectural",
- "Beige",
- "Brick",
- "Bricks and Stones",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Conference Room",
- "Contemporary",
- "Dark Green",
- "Embossed Texture",
- "Faux",
- "Faux Wood",
- "Glamorous",
- "Gold",
- "Hollywood Wallcoverings",
- "Hotel Lobby",
- "Living Room",
- "Luxe",
- "Luxurious",
- "Paper Backed Solid Vinyl Wallcoverings",
- "Regencycore",
- "Rich Woods",
- "Solid",
- "Tan",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Wallcoverings",
- "White",
- "Wood",
- "Wood Grain",
- "Yellow"
- ],
- "max_price": 54.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/biscay-bay-bourbon-wood-grain-wbs-39614"
- },
- {
- "sku": "ncw4394-03",
- "handle": "ncw4394-03",
- "title": "Nina Campbell Wallcoverings - Aqua Tint Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497266311219.jpg?v=1775520824",
- "tags": [
- "Architectural",
- "Beige",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Leaf",
- "Light Blue",
- "NCW4394-03",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Paper",
- "Stripe",
- "Textured",
- "Traditional",
- "Vine",
- "Wallcovering",
- "Wallcoverings",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4394-03"
- },
- {
- "sku": "loftus-type-ii-vinyl-wallcovering-xlz-47885",
- "handle": "loftus-type-ii-vinyl-wallcovering-xlz-47885",
- "title": "Loftus Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xlz-47885-sample-loftus-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775722225",
- "tags": [
- "Architectural",
- "Blue",
- "Brown",
- "Class A Fire Rated",
- "Color: Purple",
- "Commercial",
- "Commercial Wallcovering",
- "Conference Room",
- "Contemporary",
- "Eggplant",
- "Glamorous",
- "Gold",
- "Grasscloth",
- "Green",
- "Hallway",
- "Hollywood Wallcoverings",
- "Hotel Lobby",
- "Ivory",
- "Loftus Type 2 Vinyl Wallcovering",
- "Luxe",
- "Luxurious",
- "Mahogany",
- "Olive",
- "Purple",
- "Regencycore",
- "Solid",
- "Stripe",
- "Teal",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/loftus-type-ii-vinyl-wallcovering-xlz-47885"
- },
- {
- "sku": "canal-texture-durable-walls-xwa-52094",
- "handle": "canal-texture-durable-walls-xwa-52094",
- "title": "Canal Texture Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/capulet-spice.jpg?v=1777480398",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Brown",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Dining Room",
- "Fire Rated",
- "Flame Certificate Available",
- "Golden Brown",
- "Grasscloth",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Stripe",
- "Tan",
- "Texture",
- "Textured",
- "Traditional",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering",
- "Warm",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\""
- ],
- "max_price": 66.82,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/canal-texture-durable-walls-xwa-52094"
- },
- {
- "sku": "rustic-glam-vinyl-gpr-76642",
- "handle": "rustic-glam-vinyl-gpr-76642",
- "title": "Rustic Glam Vinyl",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/GPR-76642-sample-clean_159bebae-b7d0-4f9d-869e-0e4213655524.jpg?v=1774479040",
- "tags": [
- "Architectural",
- "Bedroom",
- "Bling",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Farmhouse",
- "Glass Bead",
- "Hallway",
- "Hand Crafted",
- "Hollywood Wallcoverings",
- "Living Room",
- "Mural",
- "Mushroom",
- "Organic",
- "Organic Modern",
- "Rustic",
- "Stone Gray",
- "Stripe",
- "Taupe",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Wood Grain"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/rustic-glam-vinyl-gpr-76642"
- },
- {
- "sku": "frank-s-faux-finish-fff-2936",
- "handle": "frank-s-faux-finish-fff-2936",
- "title": "Frank's Faux Finish Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fff-2936-sample-frank-s-faux-finish-wallpaper-hollywood-wallcoverings.jpg?v=1775714268",
- "tags": [
- "Architectural",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 36.21,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/frank-s-faux-finish-fff-2936"
- },
- {
- "sku": "mia-orange-faux-zebra-stripes-wallpaper-wallpaper-cca-82861",
- "handle": "mia-orange-faux-zebra-stripes-wallpaper-wallpaper-cca-82861",
- "title": "Mia Orange Faux Zebra Stripes Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ca3c9d56eb9407aa0dc9a113d78fd614.jpg?v=1572309958",
- "tags": [
- "Animal Prints",
- "Animal/Insects",
- "Animals",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Fauna",
- "Faux",
- "LA Walls",
- "Orange",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Strippable",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04",
- "Zebra"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/mia-orange-faux-zebra-stripes-wallpaper-wallpaper-cca-82861"
- },
- {
- "sku": "pearl-bay-vertical-faux-durable-walls-xwh-52375",
- "handle": "pearl-bay-vertical-faux-durable-walls-xwh-52375",
- "title": "Pearl Bay Vertical Faux Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/perplex-jetstream.jpg?v=1777480544",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Faux",
- "Faux Finish",
- "Geometric",
- "Gray",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Light Taupe",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Modern",
- "Office",
- "Sophisticated",
- "Stripe",
- "Taupe",
- "Textured",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/pearl-bay-vertical-faux-durable-walls-xwh-52375"
- },
- {
- "sku": "twinkle-twinkle-large-mural-by-retro-walls-rtr-37258",
- "handle": "twinkle-twinkle-large-mural-by-retro-walls-rtr-37258",
- "title": "Twinkle Twinkle Large Mural by Retro Walls",
- "vendor": "Traditional Whimsy",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/7d2e5e4dbb7a15416396a41484e30530.jpg?v=1572309703",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Bird",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Heavy-duty Wallcovering with paper top-layer and non-woven backing // Colourfast and washable with a soft cloth // Butted seam (but",
- "House",
- "Multi",
- "Mural",
- "Mushroom",
- "Purple",
- "Red",
- "Scenic",
- "Star",
- "Teal",
- "Traditional Whimsy",
- "Vinyl",
- "Wallcovering",
- "Whimsical",
- "Yellow"
- ],
- "max_price": 94,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/twinkle-twinkle-large-mural-by-retro-walls-rtr-37258"
- },
- {
- "sku": "oxford-type-ii-vinyl-wallcovering-xvg-49322",
- "handle": "oxford-type-ii-vinyl-wallcovering-xvg-49322",
- "title": "Oxford Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/baccarat-lumiere.jpg?v=1777480351",
- "tags": [
- "Architectural",
- "Bedroom",
- "Charcoal Gray",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gray",
- "Grey",
- "Hollywood Wallcoverings",
- "Living Room",
- "Medium Gray",
- "Mfr-Image-Refreshed",
- "Minimalist",
- "Modern",
- "Office",
- "Serene",
- "Silver",
- "Silver Gray",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/oxford-type-ii-vinyl-wallcovering-xvg-49322"
- },
- {
- "sku": "ncw4354-03",
- "handle": "ncw4354-03",
- "title": "Les Indiennes Garance Fresh Grey - Grey Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497264836659.jpg?v=1775520601",
- "tags": [
- "Architectural",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Floral",
- "Gray",
- "Medallion",
- "NCW4354-03",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Paper",
- "Traditional",
- "Wallcovering",
- "Wallcoverings",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4354-03"
- },
- {
- "sku": "tarsia-grey-green-wallcovering-versace-1",
- "handle": "tarsia-grey-green-wallcovering-versace-1",
- "title": "Tarsia Grey Green Wallcovering | Versace",
- "vendor": "Versace",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/123dea43c17e95c76a8c00bee63b56dc.jpg?v=1773710608",
- "tags": [
- "A.S. Création",
- "AI-Analyzed-v2",
- "Architectural",
- "Bathroom",
- "Class A Fire Rated",
- "Color: Green",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "display_variant",
- "Geometric",
- "Green",
- "Grey",
- "Grey Green",
- "Hallway",
- "Italian",
- "Light Green",
- "Living Room",
- "Luxury",
- "Needs-Image",
- "Off-white",
- "Paste the wall",
- "Seafoam Green",
- "Serene",
- "Tarsia",
- "Tarsia Grey Green Wallcovering",
- "Tile",
- "Trending Wallpaper Collection 2026",
- "Versace",
- "Versace VI",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 352.94,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/tarsia-grey-green-wallcovering-versace-1"
- },
- {
- "sku": "saint-lore-durable-vinyl-dur-72220",
- "handle": "saint-lore-durable-vinyl-dur-72220",
- "title": "Soft Faux Suede - Beige Commercial Wallcovering | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72220-sample-clean.jpg?v=1774484785",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Grasscloth",
- "Green",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Office",
- "Sage",
- "Taupe",
- "Textured",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/saint-lore-durable-vinyl-dur-72220"
- },
- {
- "sku": "dwtt-71527-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71527-designer-wallcoverings-los-angeles",
- "title": "Gilon Aqua | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T11015_54b4cf35-0ef8-401a-b286-2d783a139fea.jpg?v=1733893903",
- "tags": [
- "Aqua",
- "Architectural",
- "Geometric",
- "Geometric Resource 2",
- "light blue",
- "Pattern",
- "T11015",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71527-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwtt-72185-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72185-designer-wallcoverings-los-angeles",
- "title": "Stablewood Blue | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T3612.jpg?v=1733892539",
- "tags": [
- "Architectural",
- "beige",
- "Blue",
- "Coastal",
- "Grasscloth Resource 2",
- "light blue",
- "Pattern",
- "Stripe",
- "T3612",
- "tan",
- "Texture",
- "Thibaut",
- "Transitional",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72185-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwc-1001657",
- "handle": "dwc-1001657",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693310799923.jpg?v=1775521403",
- "tags": [
- "AI-Analyzed-v2",
- "Animal/Insects",
- "Architectural",
- "Beige",
- "Bird",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Gold",
- "NCW4356-01",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paper",
- "Traditional",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001657"
- },
- {
- "sku": "caterina-embossed-vinyl-wallpaper-type-2-xwa-73274",
- "handle": "caterina-embossed-vinyl-wallpaper-type-2-xwa-73274",
- "title": "Caterina Embossed Vinyl - Type 2 | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwa-73274-sample-caterina-embossed-vinyl-type-2-hollywood.jpg?v=1775707602",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Camel",
- "Caterina Embossed Vinyl",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Embossed Texture",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Living Room",
- "Minimalist",
- "Office",
- "Organic Modern",
- "Paper",
- "Phillip Romano Commercial",
- "Solid",
- "Tan",
- "Textured",
- "Traditional",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Wood Grain"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/caterina-embossed-vinyl-wallpaper-type-2-xwa-73274"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_act-5072-jpg",
- "handle": "wolfgordonwallcovering_dwwg_act-5072-jpg",
- "title": "Acute - Sienna | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/act-5072.jpg?v=1762357945",
- "tags": [
- "100% Vinyl",
- "Abstract",
- "Acute",
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Geometric",
- "Paper",
- "Tan",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_act-5072-jpg"
- },
- {
- "sku": "motif-typhoon-romo",
- "handle": "motif-typhoon-romo",
- "title": "Motif Typhoon | Romo",
- "vendor": "Romo",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/MW162-04-motif-wallcovering-typhoon_01.jpg?v=1776398652",
- "tags": [
- "Architectural",
- "Background Color green",
- "Collage IV",
- "Commercial",
- "Contemporary",
- "Geometric",
- "Grasscloth",
- "gray",
- "green",
- "Handcrafted Wallcovering",
- "Hotel",
- "Minimalist",
- "Motif",
- "MW162/04",
- "Non-woven",
- "Office",
- "Reception Area",
- "Romo",
- "Sage Green",
- "Scandinavian",
- "Small",
- "Soft White",
- "Texture",
- "Textured",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/motif-typhoon-romo"
- },
- {
- "sku": "wells-denim-candy-stripe-wallpaper-cca-83226",
- "handle": "wells-denim-candy-stripe-wallpaper-cca-83226",
- "title": "Wells Denim Candy Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/8c01d4dd9df15fb67c0218204b63c00d.jpg?v=1572309973",
- "tags": [
- "Architectural",
- "Beige",
- "Blue",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Traditional",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wells-denim-candy-stripe-wallpaper-cca-83226"
- },
- {
- "sku": "carved-squares-wallcovering-xcs-44046",
- "handle": "carved-squares-wallcovering-xcs-44046",
- "title": "Carved Squares | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xcs-44046-sample-carved-squares-hollywood-wallcoverings.jpg?v=1775707214",
- "tags": [
- "Abstract",
- "Architectural",
- "ASTM E84 Class A",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Geometric",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Living Room",
- "Minimalist",
- "Organic Modern",
- "Serene",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 41.41,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/carved-squares-wallcovering-xcs-44046"
- },
- {
- "sku": "pauline-s-retro-geometric-scr-8000",
- "handle": "pauline-s-retro-geometric-scr-8000",
- "title": "Pauline's Retro Geometric",
- "vendor": "Designer Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/61c211a316e9c035169ed4bff1cf56bb.jpg?v=1572309104",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Designer Wallcoverings",
- "Floral",
- "Geometric",
- "Mid-Century Modern",
- "Paper",
- "Pauline's Retro Geometric",
- "Pink",
- "Pink White",
- "Screen Print",
- "Wallcovering",
- "Whimsical Screen Prints Vol. 1",
- "White"
- ],
- "max_price": 146.18,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/pauline-s-retro-geometric-scr-8000"
- },
- {
- "sku": "kenley-pink-polka-dots-wallpaper-wallpaper-cca-82869",
- "handle": "kenley-pink-polka-dots-wallpaper-wallpaper-cca-82869",
- "title": "Kenley Pink Polka Dots Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/6a6dd48b682e87fd0de9486dd28d9994.jpg?v=1572309958",
- "tags": [
- "Architectural",
- "Commercial",
- "Discontinued",
- "Dots",
- "Easy Walls",
- "LA Walls",
- "Paper",
- "Pink",
- "Polka Dots",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Wallcovering",
- "Washable",
- "Whimsical",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/kenley-pink-polka-dots-wallpaper-wallpaper-cca-82869"
- },
- {
- "sku": "faux-leaf-squares-fls-2760",
- "handle": "faux-leaf-squares-fls-2760",
- "title": "Faux Leaf Squares | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fls-2760-sample-faux-leaf-squares-hollywood-wallcoverings.jpg?v=1775712030",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Cream",
- "Faux Finish",
- "Faux Leaf Squares",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Khaki",
- "Textured",
- "Traditional",
- "Transitional",
- "vinyl",
- "Wallcovering",
- "White",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 31.92,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-leaf-squares-fls-2760"
- },
- {
- "sku": "la-voltere-durable-vinyl-dur-72299",
- "handle": "la-voltere-durable-vinyl-dur-72299",
- "title": "la Voltere Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72299-sample-clean.jpg?v=1774485096",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Linen",
- "Linen Texture",
- "Living Room",
- "Serene",
- "Solid",
- "Taupe",
- "Textured",
- "Traditional",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/la-voltere-durable-vinyl-dur-72299"
- },
- {
- "sku": "dwss-72653",
- "handle": "dwss-72653",
- "title": "Simons Ang white Sample Wallcovering | Sandberg",
- "vendor": "Sandberg",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/708-01_image1_d560f694-babd-4b7d-a9f0-7fd580c05eaa.jpg?v=1646104958",
- "tags": [
- "AI-Analyzed-v2",
- "ANG WHITE",
- "Architectural",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Floral",
- "Green",
- "P708-01",
- "Paper",
- "Pattern",
- "Pink",
- "Sandberg",
- "Simons",
- "Simons Ang white Sample",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwss-72653"
- },
- {
- "sku": "hollywood-contemporary-coast-xhw-2010369",
- "handle": "hollywood-contemporary-coast-xhw-2010369",
- "title": "Hollywood Contemporary Coast | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/XHW-2010369-sample-clean.jpg?v=1774482605",
- "tags": [
- "35.04 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Yellow",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Coastal",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Extra Heavy Duty",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Gold",
- "Golden Yellow",
- "Hallway",
- "Healthcare",
- "Heavy Duty",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Living Room",
- "Modern",
- "Mustard Yellow",
- "Organic Modern",
- "Stripe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Warranty Available",
- "Weight: 35.04 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Look",
- "Yellow"
- ],
- "max_price": 96.58,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hollywood-contemporary-coast-xhw-2010369"
- },
- {
- "sku": "coldwater-hills-panels-hlw-73060",
- "handle": "coldwater-hills-panels-hlw-73060",
- "title": "Coldwater Hills - Panels | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73060-sample-clean.jpg?v=1774483273",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Biophilic",
- "Brown",
- "Class A Fire Rated",
- "Coldwater Hills",
- "Color: Green",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Green",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Living Room",
- "Natural",
- "Naturally Glamorous",
- "Non-woven",
- "Office",
- "Organic Modern",
- "Sage Green",
- "Scenic",
- "Serene",
- "Taupe",
- "Wallcovering",
- "Watercolor"
- ],
- "max_price": 139.52,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/coldwater-hills-panels-hlw-73060"
- },
- {
- "sku": "dwtt-71364-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71364-designer-wallcoverings-los-angeles",
- "title": "Fair Isle Red | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T88733_91326d2d-ea9c-4a4c-8a87-5de88c359834.jpg?v=1733894175",
- "tags": [
- "Architectural",
- "beige",
- "Botanical",
- "gold",
- "Pattern",
- "Red",
- "Stripe",
- "T88733",
- "Thibaut",
- "Trade Routes",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71364-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "pippy-s-peacock-wallpaper-dark-blue-pea-53621",
- "handle": "pippy-s-peacock-wallpaper-dark-blue-pea-53621",
- "title": "Pippy's Peacock Wallcovering - Dark Blue",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/3352a14315a70e4bc17173f26461d4a2.jpg?v=1572309270",
- "tags": [
- "AI-Analyzed-v2",
- "Animal Print",
- "Animal/Insects",
- "Architectural",
- "Art Deco",
- "Bedroom",
- "Blue",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Dark Purple",
- "Dining Room",
- "European",
- "European Import",
- "European Prints",
- "Glam",
- "Gold",
- "Hollywood Regency",
- "Living Room",
- "Navy Blue",
- "Office",
- "Paper",
- "Peacock",
- "Phillipe Romano",
- "Pippy's Peacock Wallcovering",
- "Purple",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 5,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/pippy-s-peacock-wallpaper-dark-blue-pea-53621"
- },
- {
- "sku": "essone-durable-vinyl-dur-72267",
- "handle": "essone-durable-vinyl-dur-72267",
- "title": "Essone Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72267-sample-clean.jpg?v=1774484941",
- "tags": [
- "Architectural",
- "Bedroom",
- "Blue",
- "Burnt Orange",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Blue",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Gray",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Modern",
- "Orange",
- "Organic Modern",
- "Serene",
- "Sky Blue",
- "Stripe",
- "Teal",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/essone-durable-vinyl-dur-72267"
- },
- {
- "sku": "edgware-type-ii-vinyl-wallcovering-xlb-47640",
- "handle": "edgware-type-ii-vinyl-wallcovering-xlb-47640",
- "title": "Edgware Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xlb-47640-sample-edgware-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775711022",
- "tags": [
- "Architectural",
- "Basketweave",
- "Bedroom",
- "Brown",
- "Burnt Sienna",
- "Class A Fire Rated",
- "Color: Red",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Coral",
- "Edgware Type 2 Vinyl Wallcovering",
- "Geometric",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Orange",
- "Red",
- "Terra Cotta",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/edgware-type-ii-vinyl-wallcovering-xlb-47640"
- },
- {
- "sku": "dwc-1001671",
- "handle": "dwc-1001671",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693311455283.jpg?v=1775521495",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Floral",
- "Light Blue",
- "NCW4392-01",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paper",
- "Traditional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001671"
- },
- {
- "sku": "dwkk-130027",
- "handle": "dwkk-130027",
- "title": "Kravet Design - Beige Wallcovering | Kravet",
- "vendor": "Kravet",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W4013_86_1e712722-15d2-440b-9f64-84411f60fa51.jpg?v=1753321469",
- "tags": [
- "36In",
- "Architectural",
- "Archived-Triple-Verified",
- "Archived-Vendor-Gone",
- "Basketweave",
- "Beige",
- "Brown",
- "Charcoal",
- "China",
- "Coastal",
- "Commercial",
- "Contemporary",
- "Dining Room",
- "display_variant",
- "Elements Ii Naturals",
- "Farmhouse",
- "Grasscloth",
- "Grasscloth Texture",
- "Grasscloth Wallcovering",
- "Gray",
- "Hallway",
- "Kravet",
- "Kravet Design",
- "Lattice",
- "Living Room",
- "Organic",
- "Paper - 100%",
- "Pattern",
- "Rustic",
- "Taupe",
- "Texture",
- "Textured",
- "Traditional",
- "W4013-86",
- "W4013.86.0",
- "Wallcovering",
- "Woven"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwkk-130027"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_lyr-3369_8-jpg",
- "handle": "wolfgordonwallcovering_dwwg_lyr-3369_8-jpg",
- "title": "Lyra - Honeycomb | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/lyr-3369_8.jpg?v=1762299581",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Gold",
- "Honeycomb",
- "Lyra",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_lyr-3369_8-jpg"
- },
- {
- "sku": "iksel-wall-panel-murals-at-designer-wallcoverings-iksel",
- "handle": "iksel-wall-panel-murals-at-designer-wallcoverings-iksel",
- "title": "IKSEL Wall Panel Murals at Designer s Wallcovering | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/IKSEL-clean.jpg?v=1774482697",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Bedroom",
- "Bird",
- "Blue",
- "Botanical",
- "Brown",
- "Chinoiserie",
- "Color: Green",
- "Commercial",
- "Commercial Wallcovering",
- "Coral",
- "Cottagecore",
- "Dining Room",
- "Floral",
- "Grandmillennial",
- "Green",
- "Hollywood Wallcoverings",
- "Light Blue",
- "Living Room",
- "Moss",
- "Mural",
- "Orange",
- "Paper",
- "Peach",
- "Red",
- "Sage Green",
- "Serene",
- "Smoke",
- "Taupe",
- "Teal",
- "Traditional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/iksel-wall-panel-murals-at-designer-wallcoverings-iksel"
- },
- {
- "sku": "emerson-aqua-paisley-stripe-wallpaper-cca-82909",
- "handle": "emerson-aqua-paisley-stripe-wallpaper-cca-82909",
- "title": "Emerson Aqua Paisley Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/667d04c7067bd2ad9fe25619b8f3c3a3.jpg?v=1572309961",
- "tags": [
- "Aqua",
- "Architectural",
- "Beige",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Global",
- "Green",
- "LA Walls",
- "Masculine",
- "Paisley",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/emerson-aqua-paisley-stripe-wallpaper-cca-82909"
- },
- {
- "sku": "vomera-snow-faux-tile-wbs-39646",
- "handle": "vomera-snow-faux-tile-wbs-39646",
- "title": "Vomera Snow Faux Tile | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/wbs-39646-sample-vomera-snow-faux-tile-hollywood-wallcoverings.jpg?v=1775736157",
- "tags": [
- "Architectural",
- "Bathroom",
- "Bedroom",
- "Beige",
- "Brick",
- "Bricks and Stones",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Eggshell",
- "Embossed Texture",
- "Faux",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Ivory",
- "Living Room",
- "Minimalist",
- "Off-White",
- "Paper Backed Solid Vinyl Wallcoverings",
- "Rich Woods",
- "Serene",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wallcoverings",
- "White",
- "Wood"
- ],
- "max_price": 34.29,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/vomera-snow-faux-tile-wbs-39646"
- },
- {
- "sku": "ghost-ship-large-mural-by-retro-walls-rtr-37232",
- "handle": "ghost-ship-large-mural-by-retro-walls-rtr-37232",
- "title": "Ghost Ship Large Mural by Retro Walls",
- "vendor": "Traditional Whimsy",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/830d7ff51cade96c455cbccb5528a8ce.jpg?v=1572309702",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Gray",
- "Heavy-duty Wallcovering with paper top-layer and non-woven backing // Colourfast and washable with a soft cloth // Butted seam (but",
- "Mural",
- "Scenic",
- "Ship",
- "Traditional Whimsy",
- "Vinyl",
- "Wallcovering",
- "Whimsical",
- "White",
- "Yellow"
- ],
- "max_price": 94,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ghost-ship-large-mural-by-retro-walls-rtr-37232"
- },
- {
- "sku": "murano-luxe-texure-by-versace-ver-40505",
- "handle": "murano-luxe-texure-by-versace-ver-40505",
- "title": "Murano Luxe Texure | Versace",
- "vendor": "Versace",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/370505_482c76e9-09df-4c8e-9e9b-3fd78cf7c46a.jpg?v=1745349489",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Luxury",
- "Textured",
- "Versace",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 108.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/murano-luxe-texure-by-versace-ver-40505"
- },
- {
- "sku": "bleinheim-lanvino-wallpaper-xe7-66835",
- "handle": "bleinheim-lanvino-wallpaper-xe7-66835",
- "title": "Bleinheim Lanvino Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/d4a1c1104271f8d48a0a59e578dc7bed.jpg?v=1572309567",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Bleinheim Lanvino Wallcovering",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Light Beige",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Textured",
- "Transitional",
- "vinyl",
- "Vinyls",
- "Wallcovering",
- "White"
- ],
- "max_price": 37.27,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/bleinheim-lanvino-wallpaper-xe7-66835"
- },
- {
- "sku": "sophie-s-scrim-wallcovering-dwx-58087",
- "handle": "sophie-s-scrim-wallcovering-dwx-58087",
- "title": "Sophie's Scrim | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58087-sample-sophie-s-scrim-hollywood-wallcoverings.jpg?v=1775734095",
- "tags": [
- "54\" Width",
- "Animal",
- "Architectural",
- "Basketweave",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Embossed Texture",
- "Grasscloth",
- "Hallway",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Insects",
- "Living Room",
- "Organic Modern",
- "Scrim",
- "Serene",
- "Tan",
- "Textile Weave",
- "Texture",
- "Textured",
- "Tropicana Durable Vinyls",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wide Width",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/sophie-s-scrim-wallcovering-dwx-58087"
- },
- {
- "sku": "sebago-burnt-sienna-dry-brush-stripe-wallpaper-cca-83105",
- "handle": "sebago-burnt-sienna-dry-brush-stripe-wallpaper-cca-83105",
- "title": "Sebago Burnt Sienna Dry Brush Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/b276bf98563139f870173bbf77f74c28.jpg?v=1572309968",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Brown",
- "Burnt Sienna",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Prepasted",
- "Sebago Burnt Sienna Dry Brush Stripe Wallcovering",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Tan",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/sebago-burnt-sienna-dry-brush-stripe-wallpaper-cca-83105"
- },
- {
- "sku": "provence-durable-vinyl-dur-72028",
- "handle": "provence-durable-vinyl-dur-72028",
- "title": "Wool Look - Faux Suede Commercial Wallcovering | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72028-sample-clean.jpg?v=1774484031",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Durable Type 2 Vinyl",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Living Room",
- "Minimalist",
- "Non-woven",
- "Off-white",
- "Organic Modern",
- "Pale Beige",
- "Paper",
- "Provence Durable Vinyl",
- "Serene",
- "Solid",
- "Textured",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/provence-durable-vinyl-dur-72028"
- },
- {
- "sku": "ashbourne-type-ii-vinyl-wallcovering-xjg-47144",
- "handle": "ashbourne-type-ii-vinyl-wallcovering-xjg-47144",
- "title": "Ashbourne Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xjg-47144-sample-ashbourne-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775700866",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Ashbourne Type 2 Vinyl",
- "Bedroom",
- "Champagne",
- "Class A Fire Rated",
- "Color: Yellow",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Light Yellow",
- "Living Room",
- "Minimalist",
- "Organic Modern",
- "Serene",
- "Solid",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ashbourne-type-ii-vinyl-wallcovering-xjg-47144"
- },
- {
- "sku": "jonesport-navy-cabin-stripe-wallpaper-cca-83178",
- "handle": "jonesport-navy-cabin-stripe-wallpaper-cca-83178",
- "title": "Jonesport Navy Cabin Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ab5f33da7b0703511165d46f616d2cca.jpg?v=1572309971",
- "tags": [
- "Architectural",
- "Blue",
- "Coastal",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Navy",
- "Paper",
- "Prepasted",
- "Red",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Traditional",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/jonesport-navy-cabin-stripe-wallpaper-cca-83178"
- },
- {
- "sku": "dwtt-72320-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72320-designer-wallcoverings-los-angeles",
- "title": "Bankun Raffia Butter | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/room-living_room-t6809.jpg?v=1775153618",
- "tags": [
- "Architectural",
- "beige",
- "Butter",
- "light tan",
- "Pattern",
- "T6809",
- "Texture",
- "Texture Resource 3",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72320-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "saint-helene-durable-vinyl-dur-72051",
- "handle": "saint-helene-durable-vinyl-dur-72051",
- "title": "Saint Helene Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72051-sample-clean.jpg?v=1774484151",
- "tags": [
- "Architectural",
- "Bedroom",
- "Champagne",
- "Class A Fire Rated",
- "Color: Yellow",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Grasscloth",
- "Green",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Yellow",
- "Living Room",
- "Minimalist",
- "Organic Modern",
- "Sage",
- "Serene",
- "Solid",
- "Stripe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/saint-helene-durable-vinyl-dur-72051"
- },
- {
- "sku": "dwtt-72221-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72221-designer-wallcoverings-los-angeles",
- "title": "St. Barts Blue | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T4970.jpg?v=1733892463",
- "tags": [
- "Architectural",
- "Blue",
- "Contemporary",
- "Geometric",
- "Jubilee",
- "light blue",
- "Pattern",
- "T4970",
- "Thibaut",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72221-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "corkytown-real-cork-wallpaper-cork-98612",
- "handle": "corkytown-real-cork-wallpaper-cork-98612",
- "title": "Corkytown Real Cork | Phillipe Romano",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/2182ea27d357d499e1e8370e5728e6cd.jpg?v=1775081685",
- "tags": [
- "Architectural",
- "Bathroom",
- "Bedroom",
- "Commercial",
- "Contemporary",
- "Cork",
- "Gray",
- "Living Room",
- "Minimalist",
- "Natural",
- "Naturals",
- "Paper",
- "Phillipe Romano",
- "Phillipe Romano Naturals",
- "Solid/Textural",
- "Spa",
- "Textured",
- "Wallcovering",
- "White",
- "White Cream",
- "Wuhan Woven Wallcovering"
- ],
- "max_price": 34.41,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/corkytown-real-cork-wallpaper-cork-98612"
- },
- {
- "sku": "immersion-by-innovations-usa-dwc-immersion-1",
- "handle": "immersion-by-innovations-usa-dwc-immersion-1",
- "title": "Immersion | Innovations USA",
- "vendor": "Innovations USA",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/Immersion-1.jpg?v=1736199381",
- "tags": [
- "Abstract",
- "Architectural",
- "ASTM E84",
- "Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Gold",
- "Immersion-1",
- "Innovations USA",
- "Metallic",
- "Paper",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/immersion-by-innovations-usa-dwc-immersion-1"
- },
- {
- "sku": "zoe-olive-coco-damask-wallpaper-cca-83262",
- "handle": "zoe-olive-coco-damask-wallpaper-cca-83262",
- "title": "Zoe Olive Coco Damask Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/5d3945163ff4a2339807343a7b6c4347.jpg?v=1572309982",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Cream",
- "Damask",
- "Discontinued",
- "Easy Walls",
- "Embossed",
- "LA Walls",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/zoe-olive-coco-damask-wallpaper-cca-83262"
- },
- {
- "sku": "lanvin-arpergeo-wallpaper-xb8-66605",
- "handle": "lanvin-arpergeo-wallpaper-xb8-66605",
- "title": "Lanvin Arpergeo Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/c71da520066935dd7352452217184be2.jpg?v=1775132191",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Brown",
- "Burgundy",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Brown",
- "Dining Room",
- "Lanvin Arpergeo Wallcovering",
- "Living Room",
- "Office",
- "Paper",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Red",
- "Stripe",
- "Striped",
- "Traditional",
- "Transitional",
- "vinyl",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 38.55,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/lanvin-arpergeo-wallpaper-xb8-66605"
- },
- {
- "sku": "dwtt-71241-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71241-designer-wallcoverings-los-angeles",
- "title": "Volar Putty | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T89145_e8d9eace-7b3b-494b-bf5d-e1400836b1c1.jpg?v=1733894390",
- "tags": [
- "Architectural",
- "beige",
- "Damask",
- "Damask Resource 4",
- "gray",
- "Pattern",
- "Putty",
- "T89145",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71241-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "eur-80427-ncw4491-designer-wallcoverings-los-angeles",
- "handle": "eur-80427-ncw4491-designer-wallcoverings-los-angeles",
- "title": "Almora 02 - Green Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513507659827.jpg?v=1775524023",
- "tags": [
- "Almora",
- "Architectural",
- "Bedroom",
- "Beige",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Cottagecore",
- "Cream",
- "Dining Room",
- "English Country",
- "Floral",
- "Grandmillennial",
- "Green",
- "Lavender",
- "Living Room",
- "Mustard Yellow",
- "NCW4491",
- "NCW4491-02",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Paper",
- "Purple",
- "Sage Green",
- "Serene",
- "SIGNATURE COLLECTION",
- "Traditional",
- "Vine",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80427-ncw4491-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "surry-grey-soft-stripe-wallpaper-cca-83216",
- "handle": "surry-grey-soft-stripe-wallpaper-cca-83216",
- "title": "Surry Grey Soft Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/6bb6af09fc9bfc028fde64fe1d105356.jpg?v=1572309973",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/surry-grey-soft-stripe-wallpaper-cca-83216"
- },
- {
- "sku": "dwtt-72231-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72231-designer-wallcoverings-los-angeles",
- "title": "Gibraltar Light Grey | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T4950.jpg?v=1733892445",
- "tags": [
- "Architectural",
- "beige",
- "Damask",
- "gray",
- "Grey",
- "Jubilee",
- "off-white",
- "Pattern",
- "T4950",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72231-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "chataqua-metallic-contemporary-durable-vinyl-walls-xws-52825",
- "handle": "chataqua-metallic-contemporary-durable-vinyl-walls-xws-52825",
- "title": "Chataqua Metallic Contemporary Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/como-faded_fresco.jpg?v=1777480693",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Hollywood Wallcoverings",
- "Lattice",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Off-white",
- "Organic Modern",
- "Serene",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Woven",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/chataqua-metallic-contemporary-durable-vinyl-walls-xws-52825"
- },
- {
- "sku": "la-roche-durable-vinyl-dur-72078",
- "handle": "la-roche-durable-vinyl-dur-72078",
- "title": "La Roche Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72078-sample-clean.jpg?v=1774484310",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Grasscloth",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Linen Texture",
- "Living Room",
- "Rustic",
- "Taupe",
- "Textured",
- "Traditional",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/la-roche-durable-vinyl-dur-72078"
- },
- {
- "sku": "wells-sky-candy-stripe-wallpaper-cca-83224",
- "handle": "wells-sky-candy-stripe-wallpaper-cca-83224",
- "title": "Wells Sky Candy Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/a0049c27c9eb317b1db38f86af3811fb.jpg?v=1572309973",
- "tags": [
- "Architectural",
- "Beige",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Gray",
- "LA Walls",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Traditional",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wells-sky-candy-stripe-wallpaper-cca-83224"
- },
- {
- "sku": "cote-marine-durable-vinyl-dur-72147",
- "handle": "cote-marine-durable-vinyl-dur-72147",
- "title": "Cote Marine Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72147-sample-clean.jpg?v=1774484565",
- "tags": [
- "Architectural",
- "Basketweave",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Geometric",
- "Gray",
- "Grey",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Gray",
- "Living Room",
- "Minimalist",
- "Serene",
- "Silver",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/cote-marine-durable-vinyl-dur-72147"
- },
- {
- "sku": "faux-wild-rice-fwr-9371",
- "handle": "faux-wild-rice-fwr-9371",
- "title": "Faux Wild Rice | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fwr-9371-sample-faux-wild-rice-hollywood-wallcoverings.jpg?v=1775712090",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial - Cleanable",
- "Contemporary",
- "Elegant Vinyls Vol. 1",
- "Faux Finish",
- "Faux Wild Rice",
- "Hollywood Wallcoverings",
- "Off-white",
- "Textured",
- "Transitional",
- "vinyl",
- "Wallcovering"
- ],
- "max_price": 31.73,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-wild-rice-fwr-9371"
- },
- {
- "sku": "ashbourne-type-ii-vinyl-wallcovering-xjg-47154",
- "handle": "ashbourne-type-ii-vinyl-wallcovering-xjg-47154",
- "title": "Ashbourne Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xjg-47154-sample-ashbourne-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775701125",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Ashbourne Type 2 Vinyl",
- "Bedroom",
- "Class A Fire Rated",
- "Color: White",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Grey",
- "Living Room",
- "Minimalist",
- "Off-white",
- "Serene",
- "Solid",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ashbourne-type-ii-vinyl-wallcovering-xjg-47154"
- },
- {
- "sku": "millinocket-charcoal-illusion-stripe-wallpaper-cca-83114",
- "handle": "millinocket-charcoal-illusion-stripe-wallpaper-cca-83114",
- "title": "Millinocket Charcoal Illusion Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/7508cc63576d2fe963c8d703aa96e4fc.jpg?v=1572309969",
- "tags": [
- "Architectural",
- "Beige",
- "Charcoal",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Gray",
- "LA Walls",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Taupe",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/millinocket-charcoal-illusion-stripe-wallpaper-cca-83114"
- },
- {
- "sku": "biejing-embossed-walls-bew-9507",
- "handle": "biejing-embossed-walls-bew-9507",
- "title": "Biejing Embossed | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/bew-9507-sample-biejing-embossed-hollywood-wallcoverings.jpg?v=1775705138",
- "tags": [
- "Abstract",
- "Architectural",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial - Cleanable",
- "Commercial Wallcovering",
- "Contemporary",
- "Elegant Vinyls Vol. 1",
- "Embossed",
- "Embossed Texture",
- "Geometric",
- "Hollywood Wallcoverings",
- "Hotel Lobby",
- "Light Beige",
- "Living Room",
- "Minimalist",
- "Modern",
- "Office",
- "Serene",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 39.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/biejing-embossed-walls-bew-9507"
- },
- {
- "sku": "villa-velore-durable-vinyl-dur-72323",
- "handle": "villa-velore-durable-vinyl-dur-72323",
- "title": "Villa Velore Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72323-sample-clean.jpg?v=1774485184",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Color: White",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Durable Type 2 Vinyl",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Non-woven",
- "Off-white",
- "Organic Modern",
- "Serene",
- "Stripe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/villa-velore-durable-vinyl-dur-72323"
- },
- {
- "sku": "colby-pink-love-spots-wallpaper-cca-83001",
- "handle": "colby-pink-love-spots-wallpaper-cca-83001",
- "title": "Colby Pink Love Spots Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/aafaf3e0e93f56dfbfe5ae941cad3790.jpg?v=1572309965",
- "tags": [
- "Architectural",
- "Beige",
- "Commercial",
- "Discontinued",
- "Dots",
- "Easy Walls",
- "Geometric",
- "Green",
- "LA Walls",
- "Paper",
- "Pink",
- "Polka Dots",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Wallcovering",
- "Washable",
- "Whimsical",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/colby-pink-love-spots-wallpaper-cca-83001"
- },
- {
- "sku": "cote-marine-durable-vinyl-dur-72148",
- "handle": "cote-marine-durable-vinyl-dur-72148",
- "title": "Cote Marine Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72148-sample-clean.jpg?v=1774484571",
- "tags": [
- "Architectural",
- "Basketweave",
- "Bedroom",
- "Blue",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Blue",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Gray",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Lattice",
- "Living Room",
- "Minimalist",
- "Navy",
- "Office",
- "Serene",
- "Slate Gray",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/cote-marine-durable-vinyl-dur-72148"
- },
- {
- "sku": "lovela-faux-vertical-durable-walls-xwo-53612",
- "handle": "lovela-faux-vertical-durable-walls-xwo-53612",
- "title": "Lovela Faux Vertical Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/tableau-camel_hair.jpg?v=1777480899",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Faux",
- "Faux Finish",
- "Gold",
- "Grasscloth",
- "Hallway",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Organic Modern",
- "Tan",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/lovela-faux-vertical-durable-walls-xwo-53612"
- },
- {
- "sku": "dwc-1001639",
- "handle": "dwc-1001639",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693309980723.jpg?v=1775521287",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Art Deco",
- "Class A Fire Rated",
- "Commercial",
- "Geometric",
- "Light Blue",
- "NCW4352-03",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Pale Blue",
- "Paper",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001639"
- },
- {
- "sku": "cottondale-contemporary-durable-vinyl-walls-xwp-52648",
- "handle": "cottondale-contemporary-durable-vinyl-walls-xwp-52648",
- "title": "Cottondale Contemporary Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwp-52648-sample-cottondale-contemporary-durable-vinyl-hollywood-wallcoverings.jpg?v=1775709256",
- "tags": [
- "Abstract",
- "Architectural",
- "Burnt Orange",
- "Class A Fire Rated",
- "Color: Orange",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cotton",
- "Energetic",
- "Geometric",
- "Hallway",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Light Grey",
- "Living Room",
- "Mid-century",
- "Mid-century Modern",
- "Modern",
- "Office",
- "Orange",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/cottondale-contemporary-durable-vinyl-walls-xwp-52648"
- },
- {
- "sku": "juno-faux-silk-durable-walls-xje-53771",
- "handle": "juno-faux-silk-durable-walls-xje-53771",
- "title": "Juno Faux Silk Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/XJE-53771-sample-clean.jpg?v=1774482305",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Brown",
- "Burnt Sienna",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Copper",
- "Faux",
- "Faux Finish",
- "Grasscloth",
- "Hallway",
- "Hollywood Wallcoverings",
- "Juno Faux Silk Durable",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Orange",
- "Russet",
- "Rustic",
- "Stripe",
- "Textured",
- "Traditional",
- "Umber",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/juno-faux-silk-durable-walls-xje-53771"
- },
- {
- "sku": "eastport-pewter-arabelle-stripe-wallpaper-cca-83143",
- "handle": "eastport-pewter-arabelle-stripe-wallpaper-cca-83143",
- "title": "Eastport Pewter Arabelle Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/d2a65f2e1632cdbff44062662ba52943.jpg?v=1572309970",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Damask",
- "Discontinued",
- "Easy Walls",
- "Gray",
- "LA Walls",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eastport-pewter-arabelle-stripe-wallpaper-cca-83143"
- },
- {
- "sku": "bleinheim-lanvino-wallpaper-xe7-66841",
- "handle": "bleinheim-lanvino-wallpaper-xe7-66841",
- "title": "Bleinheim Lanvino Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/f37dcb77353b19c7eeababca69241df0.jpg?v=1572309567",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bleinheim Lanvino Wallcovering",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Dark Brown",
- "Fabric",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Stripe",
- "Textured",
- "Traditional",
- "vinyl",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 37.27,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/bleinheim-lanvino-wallpaper-xe7-66841"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_sm10259-jpg",
- "handle": "wolfgordonwallcovering_dwwg_sm10259-jpg",
- "title": "SM10259 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_sm10258.jpg?v=1733872446",
- "tags": [
- "Architectural",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_sm10259-jpg"
- },
- {
- "sku": "susie-pink-chevron-wallpaper-cca-83036",
- "handle": "susie-pink-chevron-wallpaper-cca-83036",
- "title": "Susie Pink Chevron Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/863936ee67c10001ceab04198d5994b6.jpg?v=1572309966",
- "tags": [
- "Architectural",
- "Chevron",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Geometric",
- "Kids",
- "LA Walls",
- "Light Green",
- "Modern",
- "Paper",
- "Pink",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/susie-pink-chevron-wallpaper-cca-83036"
- },
- {
- "sku": "saint-lore-durable-vinyl-dur-72225",
- "handle": "saint-lore-durable-vinyl-dur-72225",
- "title": "Saint Lore Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72225-sample-clean.jpg?v=1774484809",
- "tags": [
- "Architectural",
- "Bedroom",
- "Blue",
- "Class A Fire Rated",
- "Color: Blue",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Teal",
- "Durable Type 2 Vinyl",
- "Gray",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Gray",
- "Linen Texture",
- "Living Room",
- "Minimalist",
- "Office",
- "Serene",
- "Slate Gray",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/saint-lore-durable-vinyl-dur-72225"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_grv-2892_8-jpg",
- "handle": "wolfgordonwallcovering_dwwg_grv-2892_8-jpg",
- "title": "Grove - Khaki | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/grv-2892_8.jpg?v=1762296236",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Beige",
- "Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Grasscloth",
- "Grove",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_grv-2892_8-jpg"
- },
- {
- "sku": "camila-lilac-modern-damask-wallpaper-wallpaper-cca-82840",
- "handle": "camila-lilac-modern-damask-wallpaper-wallpaper-cca-82840",
- "title": "Camila Lilac Modern Damask Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/6ed3a9091307458f7700bb5e226dae92_72be2b7a-ca25-4124-bf72-b2095bd9a55f.jpg?v=1572309957",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Damask",
- "Damasks",
- "Discontinued",
- "Easy Walls",
- "Floral",
- "Green",
- "LA Walls",
- "Lilac",
- "Modern",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/camila-lilac-modern-damask-wallpaper-wallpaper-cca-82840"
- },
- {
- "sku": "shin-moss-golden-scroll-texture-wallpaper-cca-83266",
- "handle": "shin-moss-golden-scroll-texture-wallpaper-cca-83266",
- "title": "Shin Moss Golden Scroll Texture Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/7bff8e81ca009191e5910dcd922ef6cd.jpg?v=1572309982",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Faux",
- "Green",
- "LA Walls",
- "Light Beige",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Shin Moss Golden Scroll Texture Wallcovering",
- "Strippable",
- "Tan",
- "Traditional",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/shin-moss-golden-scroll-texture-wallpaper-cca-83266"
- },
- {
- "sku": "ellsworth-beige-sunny-stripe-wallpaper-cca-83146",
- "handle": "ellsworth-beige-sunny-stripe-wallpaper-cca-83146",
- "title": "Ellsworth Beige Sunny Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/a8fa35eb141e98b06681e90560c52a15.jpg?v=1572309970",
- "tags": [
- "Architectural",
- "Beige",
- "Commercial",
- "Country",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Light Blue",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ellsworth-beige-sunny-stripe-wallpaper-cca-83146"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_sp9507-jpg",
- "handle": "wolfgordonwallcovering_dwwg_sp9507-jpg",
- "title": "SP9507 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_sp9506.jpg?v=1733872416",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Gold",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_sp9507-jpg"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_fdn-5414-jpg",
- "handle": "wolfgordonwallcovering_dwwg_fdn-5414-jpg",
- "title": "Foundation - Slate | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fdn-5414.jpg?v=1762294642",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Dark Gray",
- "Foundation",
- "Gray",
- "Industrial",
- "RAMPART®",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_fdn-5414-jpg"
- },
- {
- "sku": "dwtt-71544-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71544-designer-wallcoverings-los-angeles",
- "title": "Kendall Charcoal | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T11069_2dec507d-a3db-4e76-b7bf-fce71e1618dc.jpg?v=1733893869",
- "tags": [
- "Architectural",
- "brown",
- "Charcoal",
- "Geometric",
- "Geometric Resource 2",
- "gray",
- "Pattern",
- "T11069",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71544-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwkk-127832",
- "handle": "dwkk-127832",
- "title": "Wonderlust Wp - Teal Multi By Clarke And Clarke | Clarke & Clarke Botanical Wonders Wallcovering |Animal/Insects Novelty Wallcovering Print",
- "vendor": "Clarke And Clarke",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W0136_03_CAC_cb823810-8af9-4186-92bb-17addff25b8a.jpg?v=1753321565",
- "tags": [
- "20.5In",
- "Animal Print",
- "Animal/Insects",
- "Architectural",
- "Archived-Triple-Verified",
- "Archived-Vendor-Gone",
- "Bedroom",
- "Biophilic",
- "Bird",
- "Botanical",
- "Branches",
- "Champagne",
- "Charcoal",
- "Chartreuse",
- "Clarke & Clarke Botanical Wonders Wallcovering",
- "Clarke And Clarke",
- "Commercial",
- "Contemporary",
- "Dining Room",
- "display_variant",
- "Dramatic",
- "Eclectic",
- "Emerald Green",
- "Fauna",
- "Floral",
- "Flowers",
- "Gray",
- "Green",
- "Ivory",
- "Leaves",
- "Leopard",
- "Living Room",
- "Maximalist",
- "Moss",
- "Non Woven - 100%",
- "Non-woven",
- "Novelty",
- "Paper",
- "Pink",
- "Print",
- "Rose Quartz",
- "Teal",
- "Tropical",
- "United Kingdom",
- "W0136/03.Cac.0",
- "Wallcovering",
- "White",
- "Wonderlust Wp",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwkk-127832"
- },
- {
- "sku": "hollywood-antique-damask-xhw-2010217",
- "handle": "hollywood-antique-damask-xhw-2010217",
- "title": "Hollywood Antique Damask | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/luca-aquarelle_f5726e93-25cc-456f-a988-cfebf808a278.jpg?v=1777481296",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "Abstract",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "AI-Analyzed-v2",
- "Antique",
- "Architectural",
- "Background Color White",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Purple",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Damask",
- "Dining Room",
- "Fire Rated",
- "Flame Certificate Available",
- "Grandmillennial",
- "Healthcare",
- "Hollywood Antique Damask",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Lavender",
- "Light Blue",
- "Light Grey",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Non-woven",
- "Pattern",
- "Purple",
- "Serene",
- "Traditional",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "White",
- "Wide Width",
- "Width: 54\""
- ],
- "max_price": 53.5,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hollywood-antique-damask-xhw-2010217"
- },
- {
- "sku": "biscay-bay-warm-mahogany-wood-grain-wbs-39628",
- "handle": "biscay-bay-warm-mahogany-wood-grain-wbs-39628",
- "title": "Biscay Bay Warm Mahogany Wood Grain | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/wbs-39628-sample-biscay-bay-warm-mahogany-wood-grain-hollywood-wallcoverings.jpg?v=1775705706",
- "tags": [
- "Architectural",
- "Bricks and Stones",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Conference Room",
- "Dark Brown",
- "Embossed Texture",
- "Faux",
- "Faux Wood",
- "Green",
- "Hollywood Wallcoverings",
- "Hotel Lobby",
- "Living Room",
- "Luxe",
- "Mahogany",
- "Marble White",
- "Olive Green",
- "Paper Backed Solid Vinyl Wallcoverings",
- "Plantation",
- "Rich Woods",
- "Solid",
- "Sophisticated",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Wallcoverings",
- "White",
- "Wood",
- "Wood Grain",
- "Yellow"
- ],
- "max_price": 34.29,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/biscay-bay-warm-mahogany-wood-grain-wbs-39628"
- },
- {
- "sku": "ncw4304-04",
- "handle": "ncw4304-04",
- "title": "Les Rêves Marguerite Chocolate/Orange - Brown Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497262346291.jpg?v=1775520302",
- "tags": [
- "Architectural",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Damask",
- "Floral",
- "Multi",
- "NCW4304-04",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Orange",
- "Paper",
- "Taupe",
- "Traditional",
- "Wallcovering",
- "Wallcoverings",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4304-04"
- },
- {
- "sku": "sunset-stone-vinyl-dwx-58045",
- "handle": "sunset-stone-vinyl-dwx-58045",
- "title": "Sunset Stone Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58045-sample-sunset-stone-vinyl-hollywood-wallcoverings.jpg?v=1775735121",
- "tags": [
- "54\" Width",
- "Animal",
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Embossed Texture",
- "Faux Stone",
- "Hallway",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Insects",
- "Light Beige",
- "Living Room",
- "Minimalist",
- "Natural Look",
- "Off-white",
- "Pale Beige",
- "Serene",
- "Stone",
- "Stucco",
- "Texture",
- "Textured",
- "Traditional",
- "Tropicana Durable Vinyls",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wide Width"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/sunset-stone-vinyl-dwx-58045"
- },
- {
- "sku": "st-silken-durable-vinyl-dur-72172",
- "handle": "st-silken-durable-vinyl-dur-72172",
- "title": "St. Silken Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72172-sample-clean.jpg?v=1774484661",
- "tags": [
- "Architectural",
- "Bedroom",
- "Biophilic",
- "Class A Fire Rated",
- "Color: Green",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Green",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Sage",
- "Linen",
- "Linen Texture",
- "Living Room",
- "Organic Modern",
- "Sage Green",
- "Serene",
- "Solid",
- "Textured",
- "Traditional",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/st-silken-durable-vinyl-dur-72172"
- },
- {
- "sku": "narcisse-noir-wallpaper-xa7-66455",
- "handle": "narcisse-noir-wallpaper-xa7-66455",
- "title": "Narcisse Noir Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/50339da2b9117c69f9f9a5c29fcb9165.jpg?v=1775123183",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "calcium carbonate/pulp",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Fabric",
- "Gray",
- "Hotel Lobby",
- "Light Beige",
- "Light Gray",
- "Living Room",
- "Narcisse Noir Wallcovering",
- "Office",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Scandinavian",
- "Stripe",
- "Striped",
- "Textured",
- "Traditional",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 49.3,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/narcisse-noir-wallpaper-xa7-66455"
- },
- {
- "sku": "ashbourne-type-ii-vinyl-wallcovering-xjg-47108",
- "handle": "ashbourne-type-ii-vinyl-wallcovering-xjg-47108",
- "title": "Ashbourne Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xjg-47108-sample-ashbourne-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775699877",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Ashbourne Type 2 Vinyl",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Living Room",
- "Minimalist",
- "Organic Modern",
- "Solid",
- "Tan",
- "Textured",
- "Timeless",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ashbourne-type-ii-vinyl-wallcovering-xjg-47108"
- },
- {
- "sku": "ashbourne-type-ii-vinyl-wallcovering-xjg-47099",
- "handle": "ashbourne-type-ii-vinyl-wallcovering-xjg-47099",
- "title": "Ashbourne Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xjg-47099-sample-ashbourne-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775699645",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gold",
- "Hallway",
- "Hollywood Wallcoverings",
- "Khaki",
- "Living Room",
- "Rustic",
- "Solid",
- "Textured",
- "Timeless",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ashbourne-type-ii-vinyl-wallcovering-xjg-47099"
- },
- {
- "sku": "ventnor-vinyl-wallcovering-xqq-48559",
- "handle": "ventnor-vinyl-wallcovering-xqq-48559",
- "title": "Ventnor Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xqq-48559-sample-ventnor-vinyl-hollywood-wallcoverings.jpg?v=1775735697",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Rustic",
- "Solid",
- "Tan",
- "Taupe",
- "Textured",
- "Traditional",
- "Ventnor Vinyl Wallcovering",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ventnor-vinyl-wallcovering-xqq-48559"
- },
- {
- "sku": "ashbourne-type-ii-vinyl-wallcovering-xjg-47127",
- "handle": "ashbourne-type-ii-vinyl-wallcovering-xjg-47127",
- "title": "Ashbourne Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xjg-47127-sample-ashbourne-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775700406",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Ashbourne Type 2 Vinyl",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Living Room",
- "Minimalist",
- "Organic Modern",
- "Serene",
- "Solid",
- "Tan",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ashbourne-type-ii-vinyl-wallcovering-xjg-47127"
- },
- {
- "sku": "ashbourne-type-ii-vinyl-wallcovering-xjg-47095",
- "handle": "ashbourne-type-ii-vinyl-wallcovering-xjg-47095",
- "title": "Ashbourne Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xjg-47095-sample-ashbourne-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775699543",
- "tags": [
- "Architectural",
- "Beige",
- "Charcoal Gray",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Conference Room",
- "Contemporary",
- "Estimated Type: Textured",
- "Glamorous",
- "Gold",
- "Gray",
- "Grey",
- "Hollywood Wallcoverings",
- "Hotel Lobby",
- "Living Room",
- "Luxe",
- "Luxurious",
- "Solid",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ashbourne-type-ii-vinyl-wallcovering-xjg-47095"
- },
- {
- "sku": "rhone-durable-vinyl-dur-72093",
- "handle": "rhone-durable-vinyl-dur-72093",
- "title": "Rhone Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72093-sample-clean.jpg?v=1774484365",
- "tags": [
- "Architectural",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Geometric",
- "Herringbone",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Red",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/rhone-durable-vinyl-dur-72093"
- },
- {
- "sku": "castine-blue-tuscan-stripe-wallpaper-cca-83212",
- "handle": "castine-blue-tuscan-stripe-wallpaper-cca-83212",
- "title": "Castine Blue Tuscan Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/673a2be4549fccc187a7e0b5ae98cf22.jpg?v=1572309973",
- "tags": [
- "Architectural",
- "Beige",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Marble",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Tan",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/castine-blue-tuscan-stripe-wallpaper-cca-83212"
- },
- {
- "sku": "dylan-cream-candy-stripe-wallpaper-cca-82979",
- "handle": "dylan-cream-candy-stripe-wallpaper-cca-82979",
- "title": "Dylan Cream Candy Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ed5566aef834fd8f19b5328fcf3f6d2d.jpg?v=1572309964",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Cream",
- "Discontinued",
- "Easy Walls",
- "Gold",
- "LA Walls",
- "Masculine",
- "Phasing-2026-04",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04",
- "Yellow"
- ],
- "max_price": 49.01,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dylan-cream-candy-stripe-wallpaper-cca-82979"
- },
- {
- "sku": "faux-leaf-squares-fls-2513",
- "handle": "faux-leaf-squares-fls-2513",
- "title": "Faux Leaf Squares Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fls-2513-sample-faux-leaf-squares-wallpaper-hollywood-wallcoverings.jpg?v=1775711898",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Commercial",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Light Rosy Brown",
- "Rosy Brown",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 34.55,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-leaf-squares-fls-2513"
- },
- {
- "sku": "dwtt-70903-designer-wallcoverings-los-angeles",
- "handle": "dwtt-70903-designer-wallcoverings-los-angeles",
- "title": "Marine Coral Navy | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T10125_a643313e-a2d9-47dc-a17f-f49929f30adf.jpg?v=1733895117",
- "tags": [
- "abstract",
- "Architectural",
- "contemporary",
- "light teal",
- "Navy",
- "navy blue",
- "off-white",
- "Pattern",
- "stripe",
- "T10125",
- "Thibaut",
- "Tropics",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-70903-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "steuben-wheat-turf-stripe-wallpaper-cca-83167",
- "handle": "steuben-wheat-turf-stripe-wallpaper-cca-83167",
- "title": "Steuben Wheat Turf Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/2c41844e9e4c4cf5752f9573c81379fb.jpg?v=1572309971",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Light Blue",
- "Linen",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Steuben Wheat Turf Stripe Wallcovering",
- "Stripe",
- "Stripes",
- "Strippable",
- "Tan",
- "Traditional",
- "Wallcovering",
- "Washable",
- "Wheat",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/steuben-wheat-turf-stripe-wallpaper-cca-83167"
- },
- {
- "sku": "doral-faux-silk-durable-walls-xwc-53216",
- "handle": "doral-faux-silk-durable-walls-xwc-53216",
- "title": "Doral Faux Silk Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwc-53216-sample-doral-faux-silk-durable-hollywood-wallcoverings.jpg?v=1775710270",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Coastal",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Faux",
- "Faux Finish",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Organic Modern",
- "Serene",
- "Textured",
- "Traditional",
- "Transitional",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/doral-faux-silk-durable-walls-xwc-53216"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_lun-9494-jpg",
- "handle": "wolfgordonwallcovering_dwwg_lun-9494-jpg",
- "title": "Lune - Teal | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/lun-9494.jpg?v=1762299433",
- "tags": [
- "100% Vinyl",
- "Abstract",
- "Architectural",
- "Blue",
- "Class A Fire Rated",
- "Coated Upholstery",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Geometric",
- "Light Gray",
- "Lune",
- "Teal",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_lun-9494-jpg"
- },
- {
- "sku": "eur-80114-ncw4120-designer-wallcoverings-los-angeles",
- "handle": "eur-80114-ncw4120-designer-wallcoverings-los-angeles",
- "title": "Holmwood 03 | Nina Campbell Europe",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513496256563.jpg?v=1775522201",
- "tags": [
- "Architectural",
- "Bedroom",
- "BRAEMAR",
- "Color: White",
- "Commercial",
- "Contemporary",
- "Damask",
- "Dining Room",
- "Floral",
- "Grandmillennial",
- "Gray",
- "Holmwood",
- "Living Room",
- "NCW4120",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Off-white",
- "Paper",
- "Scroll",
- "Serene",
- "Silver",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80114-ncw4120-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "pleated-perfect-paradise-ppp-2627",
- "handle": "pleated-perfect-paradise-ppp-2627",
- "title": "Pleated Perfect Paradise | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ppp-2627-sample-pleated-perfect-paradise-hollywood-wallcoverings.jpg?v=1775729183",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Pleated Perfect Paradise",
- "Stripe",
- "Textured",
- "Transitional",
- "vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 35.66,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/pleated-perfect-paradise-ppp-2627"
- },
- {
- "sku": "ferryhill-type-ii-vinyl-wallcovering-xld-47701",
- "handle": "ferryhill-type-ii-vinyl-wallcovering-xld-47701",
- "title": "Ferryhill Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xld-47701-sample-ferryhill-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775712545",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Ferryhill Type 2 Vinyl Wallcovering",
- "Hallway",
- "Hollywood Wallcoverings",
- "Ivory",
- "Linen",
- "Linen Texture",
- "Living Room",
- "Minimalist",
- "Serene",
- "Solid",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ferryhill-type-ii-vinyl-wallcovering-xld-47701"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_mru-3288_8-jpg",
- "handle": "wolfgordonwallcovering_dwwg_mru-3288_8-jpg",
- "title": "Marlu - Blush | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/mru-3288_8.jpg?v=1762301319",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Geometric",
- "Light Gray",
- "Marlu",
- "Pink",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_mru-3288_8-jpg"
- },
- {
- "sku": "rochester-type-ii-vinyl-wallcovering-xpk-48223",
- "handle": "rochester-type-ii-vinyl-wallcovering-xpk-48223",
- "title": "Rochester Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xpk-48223-sample-rochester-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775730919",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Organic Modern",
- "Rochester Type 2 Vinyl Wallcovering",
- "Serene",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/rochester-type-ii-vinyl-wallcovering-xpk-48223"
- },
- {
- "sku": "dwtt-71105-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71105-designer-wallcoverings-los-angeles",
- "title": "Ophelia Green | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T3000_31d62861-4235-4610-9e19-b2bf1fc98cdf.jpg?v=1733894692",
- "tags": [
- "Architectural",
- "Damask",
- "Green",
- "Paramount",
- "Pattern",
- "T3000",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71105-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwtt-72186-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72186-designer-wallcoverings-los-angeles",
- "title": "Stablewood Aqua | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T3613.jpg?v=1733892535",
- "tags": [
- "Aqua",
- "Architectural",
- "beige",
- "brown",
- "Coastal",
- "Grasscloth Resource 2",
- "light blue",
- "Pattern",
- "Stripe",
- "T3613",
- "Texture",
- "Thibaut",
- "Transitional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72186-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_tgm-5983-jpg",
- "handle": "wolfgordonwallcovering_dwwg_tgm-5983-jpg",
- "title": "Tangram - Ocean | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/tgm-5983.jpg?v=1762311221",
- "tags": [
- "31% Polyester",
- "69% Acrylic",
- "Acrylic",
- "Architectural",
- "Beige",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Geometric",
- "Ocean",
- "Tangram",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings",
- "Woven Upholstery"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_tgm-5983-jpg"
- },
- {
- "sku": "xanadu-s-retro-geometric-scr-8034",
- "handle": "xanadu-s-retro-geometric-scr-8034",
- "title": "Xanadu's Retro Geometric",
- "vendor": "Designer Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/9e1efb5ed3cb7a3fb2c890e9f36998e7.jpg?v=1572309105",
- "tags": [
- "Architectural",
- "Beige",
- "Commercial",
- "Designer Wallcoverings",
- "Geometric",
- "Gray",
- "Luxury Screen Printed Wallpapers",
- "Mid-Century Modern",
- "Paper",
- "Screen Print",
- "Turquoise",
- "Wallcovering",
- "Whimsical Screen Prints Vol. 1"
- ],
- "max_price": 271.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/xanadu-s-retro-geometric-scr-8034"
- },
- {
- "sku": "faux-leaf-squares-fls-2527",
- "handle": "faux-leaf-squares-fls-2527",
- "title": "Faux Leaf Squares Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fls-2527-sample-faux-leaf-squares-wallpaper-hollywood-wallcoverings.jpg?v=1775711945",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Commercial",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 34.55,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-leaf-squares-fls-2527"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_blg-5639-jpg",
- "handle": "wolfgordonwallcovering_dwwg_blg-5639-jpg",
- "title": "Belgrade - Limestone | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/blg-5639.jpg?v=1762287826",
- "tags": [
- "100% Vinyl",
- "Abstract",
- "Architectural",
- "Belgrade",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Gray",
- "Light Gray",
- "Limestone",
- "RAMPART®",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_blg-5639-jpg"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_blr-5021m-jpg",
- "handle": "wolfgordonwallcovering_dwwg_blr-5021m-jpg",
- "title": "Ballari Mylar - Copper | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/blr-5021M.jpg?v=1762288193",
- "tags": [
- "100% Mylar",
- "Abstract",
- "Architectural",
- "Ballari Mylar",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Copper",
- "Gray",
- "Industrial",
- "Metallic",
- "Mylar",
- "Orange",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_blr-5021m-jpg"
- },
- {
- "sku": "dwtt-71556-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71556-designer-wallcoverings-los-angeles",
- "title": "Caravan Green | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T64151_150b8c09-f53f-404d-98be-8beec26b398b.jpg?v=1733893850",
- "tags": [
- "Architectural",
- "Caravan",
- "Geometric",
- "green",
- "Pattern",
- "T64151",
- "Thibaut",
- "Transitional",
- "Trellis",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71556-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_sm10239-jpg",
- "handle": "wolfgordonwallcovering_dwwg_sm10239-jpg",
- "title": "SM10239 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_sm10238.jpg?v=1733872482",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Coffee",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Gray",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_sm10239-jpg"
- },
- {
- "sku": "caterina-embossed-vinyl-wallpaper-type-2-xwa-73275",
- "handle": "caterina-embossed-vinyl-wallpaper-type-2-xwa-73275",
- "title": "Caterina Embossed Vinyl - Type 2 | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwa-73275-sample-caterina-embossed-vinyl-type-2-hollywood.jpg?v=1775707635",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Brown",
- "Caterina Embossed Vinyl",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Embossed Texture",
- "Farmhouse",
- "Hollywood Wallcoverings",
- "Living Room",
- "Office",
- "Organic Modern",
- "Phillip Romano Commercial",
- "Rustic",
- "Sepia",
- "Sienna",
- "Solid",
- "Tan",
- "Textured",
- "Traditional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Umber",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Wood Grain"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/caterina-embossed-vinyl-wallpaper-type-2-xwa-73275"
- },
- {
- "sku": "eloise-aqua-damask-wallpaper-cca-82999",
- "handle": "eloise-aqua-damask-wallpaper-cca-82999",
- "title": "Eloise Aqua Damask Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/b8becd288546efc79fba37d00d8f8dad.jpg?v=1572309964",
- "tags": [
- "Architectural",
- "Commercial",
- "Damask",
- "Damasks",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Light Blue",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eloise-aqua-damask-wallpaper-cca-82999"
- },
- {
- "sku": "whittier-way-twisted-paper-weave-hlw-73164",
- "handle": "whittier-way-twisted-paper-weave-hlw-73164",
- "title": "Whittier Way - Twisted Paper Weave | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73164-sample-clean.jpg?v=1774483826",
- "tags": [
- "Architectural",
- "Bedroom",
- "Charcoal",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Slate Gray",
- "Gray",
- "Grey",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Minimalist",
- "Modern",
- "Natural",
- "Naturally Glamorous",
- "Paper",
- "Sophisticated",
- "Stripe",
- "Textured",
- "Wallcovering"
- ],
- "max_price": 43.22,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/whittier-way-twisted-paper-weave-hlw-73164"
- },
- {
- "sku": "last-night-small-mural-by-retro-walls-rtr-37207",
- "handle": "last-night-small-mural-by-retro-walls-rtr-37207",
- "title": "Last Night Small Mural by Retro Walls",
- "vendor": "Traditional Whimsy",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/650ba1dfd5f144bd5015050bc0077d53.jpg?v=1572309701",
- "tags": [
- "Abstract",
- "Animal/Insects",
- "Architectural",
- "Commercial",
- "Commercial Wallcovering",
- "Fish",
- "Heavy-duty Wallcovering with paper top-layer and non-woven backing // Colourfast and washable with a soft cloth // Butted seam (but",
- "Mural",
- "Paper",
- "Pink",
- "Purple",
- "Traditional Whimsy",
- "Wallcovering",
- "Whimsical"
- ],
- "max_price": 84,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/last-night-small-mural-by-retro-walls-rtr-37207"
- },
- {
- "sku": "frederick-brown-quatrefoil-medallion-wallpaper-cca-82949",
- "handle": "frederick-brown-quatrefoil-medallion-wallpaper-cca-82949",
- "title": "Frederick Brown Quatrefoil Medallion Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/9e2d88bd57d36645802fe8b074f85287.jpg?v=1572309963",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Damask",
- "Damasks",
- "Discontinued",
- "Easy Walls",
- "Frederick Brown Quatrefoil Medallion Wallcovering",
- "LA Walls",
- "Masculine",
- "Paper",
- "Prepasted",
- "Quatrefoil",
- "Series: Brewster",
- "Strippable",
- "Tan",
- "Traditional",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/frederick-brown-quatrefoil-medallion-wallpaper-cca-82949"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_ad9501-jpg",
- "handle": "wolfgordonwallcovering_dwwg_ad9501-jpg",
- "title": "Ambient Design - AD9501 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_ad9500.jpg?v=1733874163",
- "tags": [
- "AI-Analyzed-v2",
- "Ambient Design",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Light Beige",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_ad9501-jpg"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_wwdf-218_8-jpg",
- "handle": "wolfgordonwallcovering_dwwg_wwdf-218_8-jpg",
- "title": "WonderWood® - Grey Skyline Oak Qtd | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/wwdf-218f.jpg?v=1762312675",
- "tags": [
- "100% Reconstituted Wood Veneer",
- "Architectural",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Gray",
- "Grey Skyline Oak Qtd",
- "Natural",
- "Reconstituted",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings",
- "WonderWood®"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_wwdf-218_8-jpg"
- },
- {
- "sku": "tigressa-bargea-wallpaper-xb3-66535",
- "handle": "tigressa-bargea-wallpaper-xb3-66535",
- "title": "Tigressa Bargea Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/3167bc971f11f7ee97265a138c2b299c.jpg?v=1775129966",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Geometric",
- "Gray",
- "Light Gray",
- "Living Room",
- "Minimalist",
- "Modern",
- "Office",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Spa",
- "Textural",
- "Textured",
- "Tigressa Bargea Wallcovering",
- "vinyl",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 37.2,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/tigressa-bargea-wallpaper-xb3-66535"
- },
- {
- "sku": "dwtt-70883-designer-wallcoverings-los-angeles",
- "handle": "dwtt-70883-designer-wallcoverings-los-angeles",
- "title": "Box Kite Black | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T10134_376ef94e-d29f-4c11-86c1-f426e1c2eeaa.jpg?v=1733895160",
- "tags": [
- "Architectural",
- "Black",
- "Contemporary",
- "Geometric",
- "gray",
- "Pattern",
- "T10134",
- "Thibaut",
- "Trellis",
- "Tropics",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-70883-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "hairly-hide-faux-vinyl-hide-wallpaper-lighter-mocha-brown-fvh-40406",
- "handle": "hairly-hide-faux-vinyl-hide-wallpaper-lighter-mocha-brown-fvh-40406",
- "title": "Hairly Hide - Faux Vinyl Hide - Lighter Mocha Brown | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fvh-40406-sample-hairly-hide-faux-vinyl-hide-lighter-mocha-brown-hollywood.jpg?v=1775715529",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Faux Finish",
- "Hide",
- "Hollywood Wallcoverings",
- "Lighter Mocha Brown",
- "Mocha",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 204.94,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hairly-hide-faux-vinyl-hide-wallpaper-lighter-mocha-brown-fvh-40406"
- },
- {
- "sku": "dwtt-71745-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71745-designer-wallcoverings-los-angeles",
- "title": "Halie Circle Aqua and | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T36182_3217c5f7-d63c-4d63-ae4d-a8f06bc53c93.jpg?v=1733893486",
- "tags": [
- "Animal",
- "Aqua and",
- "Architectural",
- "Collection Name",
- "Contemporary",
- "light blue",
- "orange",
- "Pattern",
- "T36182",
- "Thibaut",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71745-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "faux-leaf-squares-fls-2531",
- "handle": "faux-leaf-squares-fls-2531",
- "title": "Faux Leaf Squares Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fls-2531-sample-faux-leaf-squares-wallpaper-hollywood-wallcoverings.jpg?v=1775711958",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Commercial",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Khaki",
- "Saddlebrown",
- "Tan",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 34.55,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-leaf-squares-fls-2531"
- },
- {
- "sku": "vanderbilt-durable-walls-xwp-52597",
- "handle": "vanderbilt-durable-walls-xwp-52597",
- "title": "Vanderbilt Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/tulum-yellow_bell.jpg?v=1777480645",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Geometric",
- "Gold",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Light Brown",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Office",
- "Organic Modern",
- "Textured",
- "Vinyl",
- "Vinyl Wallcoverings",
- "Wallcovering",
- "Warm",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/vanderbilt-durable-walls-xwp-52597"
- },
- {
- "sku": "dwtt-71595-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71595-designer-wallcoverings-los-angeles",
- "title": "Caravan Light Blue | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T64164_06539f3a-1957-488f-bb81-4c1aa4c93242.jpg?v=1733893758",
- "tags": [
- "Architectural",
- "blue",
- "Caravan",
- "Damask",
- "Light Blue",
- "Pattern",
- "T64164",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71595-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "pleated-perfect-paradise-ppp-2617",
- "handle": "pleated-perfect-paradise-ppp-2617",
- "title": "Pleated Perfect Paradise | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ppp-2617-sample-pleated-perfect-paradise-hollywood-wallcoverings.jpg?v=1775729150",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Embossed",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Moss",
- "Off-White",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 35.66,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/pleated-perfect-paradise-ppp-2617"
- },
- {
- "sku": "hallandale-rice-paper-effect-durable-walls-xwt-53476",
- "handle": "hallandale-rice-paper-effect-durable-walls-xwt-53476",
- "title": "Hallandale Rice Paper Effect Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwt-53476-sample-hallandale-rice-paper-effect-durable-hollywood-wallcoverings.jpg?v=1775715913",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Grasscloth",
- "Hallandale Rice Paper Effect Durable",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Minimalist",
- "Office",
- "Organic Modern",
- "Serene",
- "Tan",
- "Taupe",
- "Textured",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hallandale-rice-paper-effect-durable-walls-xwt-53476"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_dgbj-532-jpg",
- "handle": "wolfgordonwallcovering_dwwg_dgbj-532-jpg",
- "title": "Green Bog Jasper - Sage | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dgbj-532.jpg?v=1762291132",
- "tags": [
- "100% Vinyl",
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Digital Curated",
- "Green",
- "Green Bog Jasper",
- "Light Beige",
- "Orange",
- "Paper",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_dgbj-532-jpg"
- },
- {
- "sku": "nassau-contemporary-emboosed-walls-xwh-52329",
- "handle": "nassau-contemporary-emboosed-walls-xwh-52329",
- "title": "Nassau Contemporary Emboosed | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nest-white_egg.jpg?v=1777480475",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Color: White",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Hallway",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Light Grey",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Minimalist",
- "Off-white",
- "Serene",
- "Textured",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/nassau-contemporary-emboosed-walls-xwh-52329"
- },
- {
- "sku": "eur-80146-ncw4150-designer-wallcoverings-los-angeles",
- "handle": "eur-80146-ncw4150-designer-wallcoverings-los-angeles",
- "title": "Rosslyn 04 - Soft Gray Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513497305139.jpg?v=1775522384",
- "tags": [
- "Aqua Blue",
- "Architectural",
- "Bathroom",
- "Bedroom",
- "Blue",
- "Blush Pink",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Cottagecore",
- "Floral",
- "Grandmillennial",
- "Green",
- "Leaf",
- "Lemon Yellow",
- "Living Room",
- "NCW4150",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Pale Beige",
- "Paper",
- "Pink",
- "Rosslyn",
- "Sage Green",
- "Serene",
- "Traditional",
- "Tropical",
- "Vinyl",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80146-ncw4150-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "tucker-s-tree-silhouette-scr-8156",
- "handle": "tucker-s-tree-silhouette-scr-8156",
- "title": "Tucker's Tree Silhouette",
- "vendor": "Designer Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/aab0897d004243dca4414f77461bdc23.jpg?v=1572309108",
- "tags": [
- "Abstract",
- "Architectural",
- "Black",
- "Commercial",
- "Designer Wallcoverings",
- "Luxury Screen Printed Wallpapers",
- "Paper",
- "Screen Print",
- "Wallcovering",
- "Whimsical Screen Prints Vol. 1",
- "White"
- ],
- "max_price": 146.18,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/tucker-s-tree-silhouette-scr-8156"
- },
- {
- "sku": "fukaura-durable-vinyl-xrm-34136",
- "handle": "fukaura-durable-vinyl-xrm-34136",
- "title": "Fukaura Durable Vinyl",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/d42a493201fd673d436d2c2f0293b39a_53371983-55f5-4844-a8c6-f02e0721ef04.jpg?v=1572310410",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gray",
- "Phillipe Romano",
- "Phillipe Romano Essential Textures",
- "Phillipe Romano Vinyls",
- "Stripe",
- "Textured",
- "Type 2",
- "Type 2 Durable Commercial and Residential - Cleanable",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/fukaura-durable-vinyl-xrm-34136"
- },
- {
- "sku": "canal-stripe-texture-durable-walls-xwd-52106",
- "handle": "canal-stripe-texture-durable-walls-xwd-52106",
- "title": "Canal Stripe Texture Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwd-52106-sample-canal-stripe-texture-durable-hollywood-wallcoverings.jpg?v=1775707089",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Beige",
- "Champagne",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Cream",
- "Fire Rated",
- "Flame Certificate Available",
- "Geometric",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Brown",
- "Linear",
- "Living Room",
- "Minimalist",
- "Oatmeal",
- "Organic Modern",
- "Pattern",
- "Serene",
- "Stripe",
- "Striped",
- "Textured",
- "Transitional",
- "Type 2 Durable Vinyl",
- "USA",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Yellow"
- ],
- "max_price": 66.82,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/canal-stripe-texture-durable-walls-xwd-52106"
- },
- {
- "sku": "cody-cantina-wallpaper-xb1-66504",
- "handle": "cody-cantina-wallpaper-xb1-66504",
- "title": "Cody Cantina Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/e24d7708f5ebd647027496cfacd9474c.jpg?v=1775127416",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Cody Cantina Wallcovering",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Fabric",
- "Gray",
- "Hotel Lobby",
- "Living Room",
- "Office",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Red",
- "Stripe",
- "Striped",
- "Transitional",
- "vinyl",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 38.61,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/cody-cantina-wallpaper-xb1-66504"
- },
- {
- "sku": "lucas-ocean-puffy-clouds-wallpaper-cca-83035",
- "handle": "lucas-ocean-puffy-clouds-wallpaper-cca-83035",
- "title": "Lucas Ocean Puffy Clouds Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/153678fb92a34f2d22fb808409a54db7.jpg?v=1572309966",
- "tags": [
- "Architectural",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Novelty",
- "Ocean",
- "Prepasted",
- "Scenic",
- "Series: Brewster",
- "Strippable",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "Whimsical",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 64.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/lucas-ocean-puffy-clouds-wallpaper-cca-83035"
- },
- {
- "sku": "dwc-1001594",
- "handle": "dwc-1001594",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693307129907.jpg?v=1775520994",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Geometric",
- "Light Green",
- "NCW4302-03",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paper",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001594"
- },
- {
- "sku": "skelton-type-ii-vinyl-wallcovering-xpy-48390",
- "handle": "skelton-type-ii-vinyl-wallcovering-xpy-48390",
- "title": "Skelton Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xpy-48390-sample-skelton-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775734082",
- "tags": [
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gray",
- "Grey",
- "Hollywood Wallcoverings",
- "Light Gray",
- "Living Room",
- "Minimalist",
- "Modern",
- "Office",
- "Serene",
- "Silver",
- "Skelton Type 2 Vinyl Wallcovering",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/skelton-type-ii-vinyl-wallcovering-xpy-48390"
- },
- {
- "sku": "cottondale-contemporary-durable-vinyl-walls-xwp-52647",
- "handle": "cottondale-contemporary-durable-vinyl-walls-xwp-52647",
- "title": "Cottondale Contemporary Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwp-52647-sample-cottondale-contemporary-durable-vinyl-hollywood-wallcoverings.jpg?v=1775709252",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cotton",
- "Cream",
- "Estimated Type: Paper",
- "Geometric",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Living Room",
- "Minimalist",
- "Modern",
- "Office",
- "Serene",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/cottondale-contemporary-durable-vinyl-walls-xwp-52647"
- },
- {
- "sku": "hanover-faux-embossed-faux-linen-walls-xwy-53164",
- "handle": "hanover-faux-embossed-faux-linen-walls-xwy-53164",
- "title": "Hanover Faux Embossed Faux Linen | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/loom-tumeric.jpg?v=1777480777",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Brown",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Embossed",
- "Embossed Texture",
- "Faux",
- "Faux Finish",
- "Faux Linen",
- "Fire Rated",
- "Flame Certificate Available",
- "Golden Brown",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "LEED",
- "Leed Walls",
- "Linen",
- "Linen Look",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Rustic",
- "Tan",
- "Texture",
- "Textured",
- "Traditional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Woven"
- ],
- "max_price": 15.06,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hanover-faux-embossed-faux-linen-walls-xwy-53164"
- },
- {
- "sku": "benedict-canyon-sisal-hlw-73009",
- "handle": "benedict-canyon-sisal-hlw-73009",
- "title": "Benedict Canyon Sisal | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73009-sample-clean.jpg?v=1774483012",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Coastal",
- "Color: Green",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Grasscloth Weave",
- "Green",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Brown",
- "Living Room",
- "Natural",
- "Natural Texture",
- "Naturally Glamorous",
- "Organic Modern",
- "Sage Green",
- "Serene",
- "Sisal",
- "Stripe",
- "Tan",
- "Textured",
- "Transitional",
- "Wallcovering",
- "Woven"
- ],
- "max_price": 67.78,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/benedict-canyon-sisal-hlw-73009"
- },
- {
- "sku": "oakland-beige-grasscloth-stripe-wallpaper-cca-83161",
- "handle": "oakland-beige-grasscloth-stripe-wallpaper-cca-83161",
- "title": "Oakland Beige Grasscloth Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/d468dff860e2fd715a6485f49b3061e9.jpg?v=1572309971",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Grasscloth",
- "Grasscloth Texture",
- "LA Walls",
- "Light Gray",
- "Natural",
- "Natural Wallcovering",
- "Oakland Beige Grasscloth Stripe Wallcovering",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Strippable",
- "Tan",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/oakland-beige-grasscloth-stripe-wallpaper-cca-83161"
- },
- {
- "sku": "skelton-type-ii-vinyl-wallcovering-xpy-48397",
- "handle": "skelton-type-ii-vinyl-wallcovering-xpy-48397",
- "title": "Skelton Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xpy-48397-sample-skelton-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775734092",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Brown",
- "Living Room",
- "Minimalist",
- "Organic Modern",
- "Serene",
- "Skelton Type 2 Vinyl Wallcovering",
- "Solid",
- "Stripe",
- "Taupe",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/skelton-type-ii-vinyl-wallcovering-xpy-48397"
- },
- {
- "sku": "dwtt-72152-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72152-designer-wallcoverings-los-angeles",
- "title": "Pacific Weave Grey | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T3658.jpg?v=1733892618",
- "tags": [
- "Architectural",
- "beige",
- "Grasscloth Resource 2",
- "Grey",
- "light brown",
- "Pattern",
- "T3658",
- "Texture",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72152-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "alfred-paintable-supaglypta-wallpaper-gga-82651",
- "handle": "alfred-paintable-supaglypta-wallpaper-gga-82651",
- "title": "Alfred Paintable Supaglypta | Jeffrey Stevens",
- "vendor": "Jeffrey Stevens",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/486d3669a0b9e67f585ef327b1f648dc.jpg?v=1750790457",
- "tags": [
- "Architectural",
- "Classic",
- "Commercial",
- "Commercial Wallcovering",
- "Damask",
- "Decorative",
- "Discontinued",
- "Durable",
- "Embossed",
- "Floral",
- "Global",
- "Jeffrey Stevens",
- "Light Gray",
- "Off-white",
- "Paintable",
- "Paper",
- "Phasing-2026-04",
- "Renovation",
- "Residential",
- "Series: Brewster",
- "Strippable",
- "Texture",
- "Textured",
- "Traditional",
- "Unpasted",
- "Versatile",
- "Victorian",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White"
- ],
- "max_price": 49.02,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/alfred-paintable-supaglypta-wallpaper-gga-82651"
- },
- {
- "sku": "dwss-72688",
- "handle": "dwss-72688",
- "title": "Fredrik yellow Sample Wallcovering | Sandberg",
- "vendor": "Sandberg",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/808-22_image1_b2e9db00-17c6-47f0-af1b-3cf1bdb2757b.jpg?v=1646105073",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Fredrik",
- "Fredrik yellow Sample",
- "Geometric",
- "Japonisme",
- "Light Goldenrodyellow",
- "P808-22",
- "Paper",
- "Pattern",
- "Sandberg",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwss-72688"
- },
- {
- "sku": "dwtt-71941-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71941-designer-wallcoverings-los-angeles",
- "title": "Flanders Camel | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T14159_bed5364e-32fa-4d1e-b8f6-0d23b1f3302d.jpg?v=1733893092",
- "tags": [
- "Architectural",
- "beige",
- "Camel",
- "Pattern",
- "Solid",
- "T14159",
- "tan",
- "Texture",
- "Texture Resource 4",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71941-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_hug-3325_8-jpg",
- "handle": "wolfgordonwallcovering_dwwg_hug-3325_8-jpg",
- "title": "Hugo - Steel | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/hug-3325_8.jpg?v=1762297681",
- "tags": [
- "100% Vinyl",
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contract",
- "Gray",
- "Herringbone",
- "Hugo",
- "Light Gray",
- "Paper",
- "Silver",
- "Steel",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_hug-3325_8-jpg"
- },
- {
- "sku": "forsyth-embossed-contemporary-durable-walls-xwd-52164",
- "handle": "forsyth-embossed-contemporary-durable-walls-xwd-52164",
- "title": "Forsyth Embossed Contemporary Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fractal-pyrite_6f31a569-1c53-4ceb-a9d8-d2d8d978e15c.jpg?v=1777481491",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Brown",
- "Chocolate Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Embossed Texture",
- "Geometric",
- "Hallway",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Modern",
- "Taupe",
- "Textured",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/forsyth-embossed-contemporary-durable-walls-xwd-52164"
- },
- {
- "sku": "eur-80127-ncw4125-designer-wallcoverings-los-angeles",
- "handle": "eur-80127-ncw4125-designer-wallcoverings-los-angeles",
- "title": "Rothesay 01 - Cool Gray Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513496682547.jpg?v=1775522284",
- "tags": [
- "Architectural",
- "Bedroom",
- "BRAEMAR",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Hallway",
- "Light Grey",
- "Living Room",
- "Minimalist",
- "NCW4125",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Non-Woven",
- "Off-white",
- "Paper",
- "Rothesay",
- "Serene",
- "Solid",
- "Stripe",
- "Textured",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80127-ncw4125-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "st-joseph-embossed-contemporary-faux-vertical-stria-walls-xwq-52930",
- "handle": "st-joseph-embossed-contemporary-faux-vertical-stria-walls-xwq-52930",
- "title": "St Joseph Embossed Contemporary Faux Vertical Stria | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwq-52930-sample-st-joseph-embossed-contemporary-faux-vertical-stria-hollywood-wallcoverings.jpg?v=1775734525",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Embossed Texture",
- "Faux",
- "Faux Finish",
- "Hallway",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Light Beige",
- "Light Brown",
- "Living Room",
- "Minimalist",
- "Pale Beige",
- "Serene",
- "Solid",
- "Stripe",
- "Taupe",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/st-joseph-embossed-contemporary-faux-vertical-stria-walls-xwq-52930"
- },
- {
- "sku": "dwc-1001672",
- "handle": "dwc-1001672",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693311488051.jpg?v=1775521502",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Damask",
- "Floral",
- "NCW4392-02",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paper",
- "Traditional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001672"
- },
- {
- "sku": "floating-fibers-dwx-58182",
- "handle": "floating-fibers-dwx-58182",
- "title": "Floating Fibers | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58182-sample-floating-fibers-hollywood-wallcoverings.jpg?v=1775714018",
- "tags": [
- "54\" Width",
- "Abstract",
- "Architectural",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Fiber",
- "hollywood",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Gray",
- "Minimalist",
- "Natural Look",
- "Neutral",
- "Texture",
- "Textured",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wide Width"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/floating-fibers-dwx-58182"
- },
- {
- "sku": "dwtt-71146-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71146-designer-wallcoverings-los-angeles",
- "title": "Nira Neutral | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T4048_a191d6db-08ff-4516-a937-946a825e8bdd.jpg?v=1733894614",
- "tags": [
- "Architectural",
- "beige",
- "Geometric",
- "Neutral",
- "off-white",
- "Pattern",
- "Surface Resource",
- "T4048",
- "Texture",
- "Thibaut",
- "Transitional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71146-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "barnard-type-ii-vinyl-wallcovering-xjp-47217",
- "handle": "barnard-type-ii-vinyl-wallcovering-xjp-47217",
- "title": "Barnard Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xjp-47217-sample-barnard-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775702261",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "AI-Analyzed-v2",
- "Architectural",
- "Background Color Tan",
- "Barnard Type 2 Vinyl",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Grasscloth",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Linen Texture",
- "Living Room",
- "Minimalist",
- "Off-white",
- "Office",
- "Organic Modern",
- "Serene",
- "Tan",
- "Textured",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Look",
- "Yellow"
- ],
- "max_price": 52.78,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/barnard-type-ii-vinyl-wallcovering-xjp-47217"
- },
- {
- "sku": "highlands-honeycomb-wood-weave-hlw-73134",
- "handle": "highlands-honeycomb-wood-weave-hlw-73134",
- "title": "Bernardo Embossed Vinyl - Type 2 Commercial Wallcovering | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73134-sample-clean.jpg?v=1774483651",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Brown",
- "Faux Wood",
- "Geometric",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Modern",
- "Natural",
- "Naturally Glamorous",
- "Sophisticated",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Walnut",
- "Wood"
- ],
- "max_price": 96.04,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/highlands-honeycomb-wood-weave-hlw-73134"
- },
- {
- "sku": "ncw4352-06",
- "handle": "ncw4352-06",
- "title": "Les Indiennes Bonnelles Black/Silver - Black Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497264476211.jpg?v=1775520543",
- "tags": [
- "Architectural",
- "Art Deco",
- "Beige",
- "Black",
- "Class A Fire Rated",
- "Commercial",
- "Geometric",
- "Gold",
- "Leaf",
- "NCW4352-06",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Paper",
- "Wallcovering",
- "Wallcoverings",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4352-06"
- },
- {
- "sku": "ncw4396-01",
- "handle": "ncw4396-01",
- "title": "Ashdown Brideshead Grey - Grey Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497266999347.jpg?v=1775520885",
- "tags": [
- "Arabesque",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Damask",
- "NCW4396-01",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Paper",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Wallcoverings",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4396-01"
- },
- {
- "sku": "bellaire-faux-finish-durable-walls-xww-53068",
- "handle": "bellaire-faux-finish-durable-walls-xww-53068",
- "title": "Bellaire Faux Finish Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/XWW-53068-sample-clean.jpg?v=1774481813",
- "tags": [
- "Architectural",
- "Bedroom",
- "Charcoal Gray",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Faux",
- "Faux Finish",
- "Gray",
- "Grey",
- "Hollywood Wallcoverings",
- "LEED",
- "Living Room",
- "Minimalist",
- "Off-white",
- "Office",
- "Serene",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/bellaire-faux-finish-durable-walls-xww-53068"
- },
- {
- "sku": "dwkk-129173",
- "handle": "dwkk-129173",
- "title": "W3762-5 Silver | Kravet Design |Geometric Wallcovering Print",
- "vendor": "Kravet",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W3762_5_788396e9-41ac-4786-bd60-13cc9dc01c47.jpg?v=1753121487",
- "tags": [
- "27In",
- "Abstract",
- "Architectural",
- "Archived-Triple-Verified",
- "Archived-Vendor-Gone",
- "Bedroom",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Dark Blue",
- "display_variant",
- "Geometric",
- "Gray",
- "Kravet",
- "Kravet Design",
- "Living Room",
- "Modern",
- "Navy",
- "Non-Woven",
- "Office",
- "Paper - 100%",
- "Pattern",
- "Print",
- "Silver",
- "Sophisticated",
- "Textured",
- "United States",
- "Vinyl",
- "W3762-5",
- "W3762.5.0",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwkk-129173"
- },
- {
- "sku": "bellaire-faux-finish-durable-walls-xww-53069",
- "handle": "bellaire-faux-finish-durable-walls-xww-53069",
- "title": "Bellaire Faux Finish Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xww-53069-sample-bellaire-faux-finish-durable-hollywood-wallcoverings.jpg?v=1775703563",
- "tags": [
- "Architectural",
- "Bedroom",
- "Black",
- "Class A Fire Rated",
- "Color: Purple",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Faux",
- "Faux Finish",
- "Hallway",
- "Hollywood Wallcoverings",
- "LEED",
- "Living Room",
- "Mauve",
- "Modern",
- "Pink",
- "Purple",
- "Serene",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/bellaire-faux-finish-durable-walls-xww-53069"
- },
- {
- "sku": "splice-by-innovations-usa-dwc-splice-1",
- "handle": "splice-by-innovations-usa-dwc-splice-1",
- "title": "Splice | Innovations USA",
- "vendor": "Innovations USA",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/Splice-1.jpg?v=1736199078",
- "tags": [
- "Abstract",
- "Architectural",
- "ASTM E84",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Innovations USA",
- "Purple",
- "Splice-1",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/splice-by-innovations-usa-dwc-splice-1"
- },
- {
- "sku": "chataqua-metallic-contemporary-durable-vinyl-walls-xws-52835",
- "handle": "chataqua-metallic-contemporary-durable-vinyl-walls-xws-52835",
- "title": "Chataqua Metallic Contemporary Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/como-blue_bellini.jpg?v=1777480710",
- "tags": [
- "Architectural",
- "Basketweave",
- "Bedroom",
- "Blue",
- "Class A Fire Rated",
- "Color: Blue",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gold",
- "Grasscloth",
- "Hollywood Wallcoverings",
- "Lattice",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Navy",
- "Office",
- "Sophisticated",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Woven",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/chataqua-metallic-contemporary-durable-vinyl-walls-xws-52835"
- },
- {
- "sku": "milbanks-metallic-grasscloth-vinyl-dwx-58164",
- "handle": "milbanks-metallic-grasscloth-vinyl-dwx-58164",
- "title": "Milbanks Metallic Grasscloth Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58164-sample-milbanks-metallic-grasscloth-vinyl-hollywood-wallcoverings.jpg?v=1775725666",
- "tags": [
- "54\" Width",
- "Animal",
- "Architectural",
- "Bedroom",
- "Blue",
- "Color: Blue",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Embossed Texture",
- "Grasscloth",
- "Grasscloth Texture",
- "Grasscloth Wallcovering",
- "Gray",
- "Hallway",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Insects",
- "Light Gray",
- "Living Room",
- "Metallic",
- "Minimalist",
- "Modern",
- "Natural",
- "Natural Look",
- "Natural Texture",
- "Serene",
- "Silver",
- "Stripe",
- "Teal",
- "Textured",
- "Tropicana Durable Vinyls",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wide Width",
- "Woven"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/milbanks-metallic-grasscloth-vinyl-dwx-58164"
- },
- {
- "sku": "dwkk-115518",
- "handle": "dwkk-115518",
- "title": "Newton - Linen | Kravet Couture | Andrew Martin Navigator | Novelty Wallcovering Print",
- "vendor": "Kravet",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/AMW10044_16_ef2f8e24-41d2-4842-8334-7cadaf46988e.jpg?v=1753123155",
- "tags": [
- "20.5In",
- "Amw10044.16.0",
- "Architectural",
- "Archived-Triple-Verified",
- "Archived-Vendor-Gone",
- "Brown",
- "Champagne",
- "Commercial",
- "Dark Academia",
- "display_variant",
- "Eclectic",
- "Geometric",
- "Hallway",
- "Italy",
- "Kravet",
- "Kravet Couture",
- "Linen",
- "Living Room",
- "Newton",
- "Novelty",
- "Office",
- "Paper",
- "Paper - 100%",
- "Pattern",
- "Print",
- "Sophisticated",
- "Taupe",
- "Traditional",
- "Transitional",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwkk-115518"
- },
- {
- "sku": "floating-bubbles-vinyl-dwx-58118",
- "handle": "floating-bubbles-vinyl-dwx-58118",
- "title": "Floating Bubbles Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58118-sample-floating-bubbles-vinyl-hollywood-wallcoverings.jpg?v=1775713550",
- "tags": [
- "54\" Width",
- "Abstract",
- "Architectural",
- "Beige",
- "Bubbles",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "hollywood",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Gray",
- "Neutral",
- "Organic",
- "Textured",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wide Width"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/floating-bubbles-vinyl-dwx-58118"
- },
- {
- "sku": "fukaura-durable-vinyl-xrm-34133",
- "handle": "fukaura-durable-vinyl-xrm-34133",
- "title": "Fukaura Durable Vinyl",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/8fd341de233cc91097f7c8cbaa58c101_a5b8cbb9-f95e-45b7-854d-d80cc8489439.jpg?v=1572310410",
- "tags": [
- "Architectural",
- "Beige",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gray",
- "Phillipe Romano",
- "Phillipe Romano Essential Textures",
- "Phillipe Romano Vinyls",
- "Stripe",
- "Textured",
- "Type 2",
- "Type 2 Durable Commercial and Residential - Cleanable",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/fukaura-durable-vinyl-xrm-34133"
- },
- {
- "sku": "douglas-blue-vintage-planes-wallpaper-cca-82939",
- "handle": "douglas-blue-vintage-planes-wallpaper-cca-82939",
- "title": "Douglas Blue Vintage Planes Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/688904c4fdfad7b1c2295a83871cead6.jpg?v=1572309962",
- "tags": [
- "Airplane",
- "Architectural",
- "Blue",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Industrial",
- "LA Walls",
- "Masculine",
- "Novelty",
- "Paper",
- "Prepasted",
- "Scenic",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Vintage",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/douglas-blue-vintage-planes-wallpaper-cca-82939"
- },
- {
- "sku": "puget-s-pineapple-scr-7915",
- "handle": "puget-s-pineapple-scr-7915",
- "title": "Puget's Pineapple",
- "vendor": "Designer Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/dfda2890df9f5c0553e103f4a91dd7a2.jpg?v=1572309083",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Aubergine Yellow",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Designer Wallcoverings",
- "Light Yellow",
- "Maroon",
- "Paper",
- "Puget's Pineapple",
- "Red",
- "Screen Print",
- "Tropical",
- "vinyl",
- "Wallcovering",
- "Whimsical Screen Prints Vol. 1",
- "Yellow"
- ],
- "max_price": 146.18,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/puget-s-pineapple-scr-7915"
- },
- {
- "sku": "dwtt-71392-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71392-designer-wallcoverings-los-angeles",
- "title": "Island Coral | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T88763_4cd859f6-d18c-4fde-9952-3e0a77547ef5.jpg?v=1733894150",
- "tags": [
- "Architectural",
- "Contemporary",
- "Coral",
- "Geometric",
- "Pattern",
- "T88763",
- "Thibaut",
- "Trade Routes",
- "Trellis",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71392-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "lanvin-arpergeo-wallpaper-xb8-66599",
- "handle": "lanvin-arpergeo-wallpaper-xb8-66599",
- "title": "Lanvin Arpergeo Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/375df90dec8e0f74a8a6ef3f32da27ed.jpg?v=1775131476",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Bathroom",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Coastal",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Geometric",
- "Lanvin Arpergeo Wallcovering",
- "Light Beige",
- "Light Green",
- "Living Room",
- "Paper",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Spa",
- "Stripe",
- "Tan",
- "Transitional",
- "vinyl",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 38.55,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/lanvin-arpergeo-wallpaper-xb8-66599"
- },
- {
- "sku": "austin-blue-plaid-wallpaper-cca-82965",
- "handle": "austin-blue-plaid-wallpaper-cca-82965",
- "title": "Austin Blue Plaid Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/bab73402eccf680bae3abdc59704d58e.jpg?v=1572309963",
- "tags": [
- "Architectural",
- "Beige",
- "Brown",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Green",
- "LA Walls",
- "Masculine",
- "Paper",
- "Plaid",
- "Plaids",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/austin-blue-plaid-wallpaper-cca-82965"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_sm10238-jpg",
- "handle": "wolfgordonwallcovering_dwwg_sm10238-jpg",
- "title": "SM10238 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_sm10237.jpg?v=1733872484",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Gray",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_sm10238-jpg"
- },
- {
- "sku": "hawthorne-faux-vertical-silk-durable-walls-xwo-53629",
- "handle": "hawthorne-faux-vertical-silk-durable-walls-xwo-53629",
- "title": "Hawthorne Faux Vertical Silk Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/XWO-53629-sample-clean.jpg?v=1774482231",
- "tags": [
- "Architectural",
- "Bedroom",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Gray",
- "Faux",
- "Faux Finish",
- "Gray",
- "Grey",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Minimalist",
- "Office",
- "Slate Gray",
- "Solid",
- "Sophisticated",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hawthorne-faux-vertical-silk-durable-walls-xwo-53629"
- },
- {
- "sku": "rivington-rice-paper-durable-vinyl-walls-xwj-52436",
- "handle": "rivington-rice-paper-durable-vinyl-walls-xwj-52436",
- "title": "Rivington Rice Paper Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwj-52436-sample-rivington-rice-paper-durable-vinyl-hollywood-wallcoverings.jpg?v=1775730713",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gold",
- "Hallway",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Light Brown",
- "Living Room",
- "Organic Modern",
- "Paper",
- "Solid",
- "Textured",
- "Timeless",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Vinyl Wallcoverings",
- "Wallcovering",
- "Warm",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/rivington-rice-paper-durable-vinyl-walls-xwj-52436"
- },
- {
- "sku": "saint-helene-durable-vinyl-dur-72057",
- "handle": "saint-helene-durable-vinyl-dur-72057",
- "title": "Saint Helene Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72057-sample-clean.jpg?v=1774484187",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Grasscloth",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Living Room",
- "Minimalist",
- "Off-white",
- "Organic Modern",
- "Serene",
- "Stripe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/saint-helene-durable-vinyl-dur-72057"
- },
- {
- "sku": "canal-damask-durable-vinyl-xwa-52077",
- "handle": "canal-damask-durable-vinyl-xwa-52077",
- "title": "Canal Damask Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwa-52077-sample-canal-damask-durable-vinyl-hollywood-wallcoverings.jpg?v=1775707050",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Green",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Cream",
- "Damask",
- "Dining Room",
- "Fire Rated",
- "Flame Certificate Available",
- "Grandmillennial",
- "Green",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Living Room",
- "Pale Beige",
- "Pattern",
- "Sage Green",
- "Scroll",
- "Serene",
- "Textured",
- "Timeless",
- "Traditional",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vine",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\""
- ],
- "max_price": 66.82,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/canal-damask-durable-vinyl-xwa-52077"
- },
- {
- "sku": "eur-80313-ncw4302-designer-wallcoverings-los-angeles",
- "handle": "eur-80313-ncw4302-designer-wallcoverings-los-angeles",
- "title": "Mourlot 03 - Celadon Green Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513503662131.jpg?v=1775523314",
- "tags": [
- "Abstract",
- "Architectural",
- "Bathroom",
- "Bedroom",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Geometric",
- "Green",
- "Hallway",
- "LES REVES",
- "Light Green",
- "Minimalist",
- "Mourlot",
- "NCW4302",
- "NCW4302-03",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Off-white",
- "Organic Modern",
- "Pale Green",
- "Paper",
- "Serene",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80313-ncw4302-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwtt-80959-designer-wallcoverings-los-angeles",
- "handle": "dwtt-80959-designer-wallcoverings-los-angeles",
- "title": "Coromandel | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/T10228_423cfb00-88ce-4801-a1a8-cccd1bbaff49.jpg?v=1743193972",
- "tags": [
- "Architectural",
- "Botanical",
- "brown",
- "Chinoiserie",
- "cream",
- "Floral",
- "gray",
- "green",
- "Pattern",
- "red",
- "T10228",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-80959-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "fukaura-durable-vinyl-xrm-34134",
- "handle": "fukaura-durable-vinyl-xrm-34134",
- "title": "Fukaura Durable Vinyl",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/f7ee80f70186b3acc72bfd8b2d9ad26e_5d332c98-198c-4658-b045-2d6b893c2037.jpg?v=1572310410",
- "tags": [
- "Architectural",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Phillipe Romano",
- "Phillipe Romano Essential Textures",
- "Phillipe Romano Vinyls",
- "Stripe",
- "Textured",
- "Type 2",
- "Type 2 Durable Commercial and Residential - Cleanable",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/fukaura-durable-vinyl-xrm-34134"
- },
- {
- "sku": "steuben-embossed-vertical-durable-vinyl-walls-xwr-52785",
- "handle": "steuben-embossed-vertical-durable-vinyl-walls-xwr-52785",
- "title": "Steuben Embossed Vertical Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwr-52785-sample-steuben-embossed-vertical-durable-vinyl-hollywood-wallcoverings.jpg?v=1775734822",
- "tags": [
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Embossed Texture",
- "Grey",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Light Gray",
- "Linen",
- "Living Room",
- "Minimalist",
- "Office",
- "Pale Gray",
- "Serene",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/steuben-embossed-vertical-durable-vinyl-walls-xwr-52785"
- },
- {
- "sku": "hainsville-faux-leather-durable-walls-xwt-53385",
- "handle": "hainsville-faux-leather-durable-walls-xwt-53385",
- "title": "Hainsville Faux Leather Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/reserve-sonoma_f852b0ea-5f6b-4111-997a-74c47f1d6800.jpg?v=1777481527",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Camel",
- "Class A Fire Rated",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Faux",
- "Faux Finish",
- "Faux Leather",
- "Gold",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Office",
- "Pale Beige",
- "Solid",
- "Tan",
- "Textured",
- "Timeless",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hainsville-faux-leather-durable-walls-xwt-53385"
- },
- {
- "sku": "contempo-diamond-vinyl-dwx-58017",
- "handle": "contempo-diamond-vinyl-dwx-58017",
- "title": "Contempo Diamond Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58017-sample-contempo-diamond-vinyl-hollywood-wallcoverings.jpg?v=1775709051",
- "tags": [
- "54\" Width",
- "Architectural",
- "Beige",
- "Blue Gray",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Diamond",
- "Geometric",
- "hollywood",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Beige",
- "Light Blue Gray",
- "Modern",
- "Textured",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wide Width"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/contempo-diamond-vinyl-dwx-58017"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_qnt-5552-jpg",
- "handle": "wolfgordonwallcovering_dwwg_qnt-5552-jpg",
- "title": "Quinault - Spring | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/qnt-5552.jpg?v=1762303697",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Green",
- "Light Green",
- "Quinault",
- "RAMPART®",
- "Spring",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_qnt-5552-jpg"
- },
- {
- "sku": "gibby-purple-leafy-scroll-wallpaper-wallpaper-cca-82849",
- "handle": "gibby-purple-leafy-scroll-wallpaper-wallpaper-cca-82849",
- "title": "Gibby Purple Leafy Scroll Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/88fd9b7372678c41808b5659967b5762.jpg?v=1572309957",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Faux",
- "LA Walls",
- "Leaf",
- "Prepasted",
- "Purple",
- "Scroll",
- "Scrolls",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vine",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/gibby-purple-leafy-scroll-wallpaper-wallpaper-cca-82849"
- },
- {
- "sku": "barnes-rust-paisley-damask-wallpaper-cca-82911",
- "handle": "barnes-rust-paisley-damask-wallpaper-cca-82911",
- "title": "Barnes Rust Paisley Damask Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ce82d83043536140046b9e708813815a.jpg?v=1572309961",
- "tags": [
- "Architectural",
- "Beige",
- "Brown",
- "Commercial",
- "Damask",
- "Damasks",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Masculine",
- "Modern",
- "Orange",
- "Paisley",
- "Paper",
- "Prepasted",
- "Rust",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/barnes-rust-paisley-damask-wallpaper-cca-82911"
- },
- {
- "sku": "dwc-1001618",
- "handle": "dwc-1001618",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693308801075.jpg?v=1775521153",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Geometric",
- "Gray",
- "Light Gray",
- "NCW4307-02",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paper",
- "Stripe",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001618"
- },
- {
- "sku": "biscay-bay-leopard-cherry-wood-grain-wbs-39624",
- "handle": "biscay-bay-leopard-cherry-wood-grain-wbs-39624",
- "title": "Biscay Bay Leopard Cherry Wood Grain | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/wbs-39624-sample-biscay-bay-leopard-cherry-wood-grain-hollywood-wallcoverings.jpg?v=1775705399",
- "tags": [
- "Animal Print",
- "Architectural",
- "Beige",
- "Blue",
- "Bricks and Stones",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Conference Room",
- "Contemporary",
- "Dark Brown",
- "Embossed Texture",
- "Estimated Type: Vinyl",
- "Faux",
- "Faux Wood",
- "Glamorous",
- "Gold",
- "Gray",
- "Hollywood Wallcoverings",
- "Hotel Lobby",
- "Living Room",
- "Luxe",
- "Luxurious",
- "Navy Blue",
- "Paper Backed Solid Vinyl Wallcoverings",
- "Regencycore",
- "Rich Woods",
- "Solid",
- "Tan",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Wallcoverings",
- "Wood",
- "Yellow"
- ],
- "max_price": 54.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/biscay-bay-leopard-cherry-wood-grain-wbs-39624"
- },
- {
- "sku": "westville-contemporary-durable-walls-xje-53681",
- "handle": "westville-contemporary-durable-walls-xje-53681",
- "title": "Westville Contemporary Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xje-53681-sample-westville-contemporary-durable-hollywood-wallcoverings.jpg?v=1775736445",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gray",
- "Grey",
- "Hallway",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Light Gray",
- "Light Grey",
- "Living Room",
- "Minimalist",
- "Modern",
- "Serene",
- "Silver",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/westville-contemporary-durable-walls-xje-53681"
- },
- {
- "sku": "ncw4350-05",
- "handle": "ncw4350-05",
- "title": "Les Indiennes Les Indiennes Blue - Blue Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497263722547.jpg?v=1775520464",
- "tags": [
- "Architectural",
- "Beige",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "NCW4350-05",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Paisley",
- "Paper",
- "Traditional",
- "Wallcovering",
- "Wallcoverings",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4350-05"
- },
- {
- "sku": "dwtt-72549-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72549-designer-wallcoverings-los-angeles",
- "title": "Shangri-la Metallic on Taupe | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/room-living_room-t6861.jpg?v=1775153852",
- "tags": [
- "Architectural",
- "beige",
- "Damask",
- "gold",
- "Metallic on Taupe",
- "Pattern",
- "Shangri-La",
- "T8616",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72549-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "pleated-perfect-paradise-ppp-2616",
- "handle": "pleated-perfect-paradise-ppp-2616",
- "title": "Pleated Perfect Paradise | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ppp-2616-sample-pleated-perfect-paradise-hollywood-wallcoverings.jpg?v=1775729147",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Green",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Light Khaki",
- "Olive",
- "Pleated Perfect Paradise",
- "Stripe",
- "Textured",
- "vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 35.66,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/pleated-perfect-paradise-ppp-2616"
- },
- {
- "sku": "tressage-bark-romo",
- "handle": "tressage-bark-romo",
- "title": "Tressage Bark | Romo",
- "vendor": "Romo",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/MW165-01-tressage-wallcovering-bark_01.jpg?v=1776398735",
- "tags": [
- "Architectural",
- "Background Color brown",
- "beige",
- "brown",
- "Burnished Bronze",
- "Coastal",
- "Collage IV",
- "Commercial",
- "dark brown",
- "Grasscloth",
- "Handcrafted Wallcovering",
- "Lobby",
- "Medium",
- "MW165/01",
- "Natural",
- "Office",
- "Restaurant",
- "Romo",
- "Rustic",
- "Texture",
- "Textured",
- "Tressage",
- "Tropical",
- "Wallcovering",
- "Warm Taupe"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/tressage-bark-romo"
- },
- {
- "sku": "eur-80294-ncw4277-designer-wallcoverings-los-angeles",
- "handle": "eur-80294-ncw4277-designer-wallcoverings-los-angeles",
- "title": "Meredith 04 - Coral Pink Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513502580787.jpg?v=1775523211",
- "tags": [
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Commercial",
- "Coral",
- "COROMANDEL",
- "Damask",
- "Dining Room",
- "English Country",
- "Floral",
- "Grandmillennial",
- "Living Room",
- "Meredith",
- "NCW4277",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Off-white",
- "Paper",
- "Pink",
- "Red",
- "Sophisticated",
- "Textured",
- "Traditional",
- "Victorian",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80294-ncw4277-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "hollywood-tailored-xhw-2010186",
- "handle": "hollywood-tailored-xhw-2010186",
- "title": "Hollywood Tailored | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/harrison-carrere.jpg?v=1777480984",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Ecru",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Beige",
- "Linen Texture",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Organic Modern",
- "Serene",
- "Textured",
- "Timeless",
- "Traditional",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Look",
- "Yellow"
- ],
- "max_price": 59.87,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hollywood-tailored-xhw-2010186"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_br018-jpg",
- "handle": "wolfgordonwallcovering_dwwg_br018-jpg",
- "title": "BR018 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_br017.jpg?v=1733873677",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Green",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_br018-jpg"
- },
- {
- "sku": "hollywood-crystal-xhw-2010108",
- "handle": "hollywood-crystal-xhw-2010108",
- "title": "Hollywood Crystal | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/crystalline-sandstone.jpg?v=1777480963",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "Abstract",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Crystal",
- "Estimated Type: Paper",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Off-white",
- "Serene",
- "Textured",
- "Traditional",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Look",
- "Yellow"
- ],
- "max_price": 61.9,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hollywood-crystal-xhw-2010108"
- },
- {
- "sku": "crushed-costoluto-vinyl-dwx-58008",
- "handle": "crushed-costoluto-vinyl-dwx-58008",
- "title": "Crushed Costoluto Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58008-sample-crushed-costoluto-vinyl-hollywood-wallcoverings.jpg?v=1775709692",
- "tags": [
- "54\" Width",
- "Abstract",
- "Architectural",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Crushed",
- "Gold",
- "Gray",
- "hollywood",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Neutral",
- "Organic",
- "Texture",
- "Textured",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wide Width"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/crushed-costoluto-vinyl-dwx-58008"
- },
- {
- "sku": "dwkk-127815",
- "handle": "dwkk-127815",
- "title": "Menagerie Wp - Gilver Multi By Clarke And Clarke | Clarke & Clarke Botanical Wonders Wallcovering |Animal/Insects Novelty Wallcovering Print",
- "vendor": "Clarke And Clarke",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W0131_03_CAC_29e48b2f-824b-412f-a14a-57270b219690.jpg?v=1753321594",
- "tags": [
- "20.5In",
- "Animal Print",
- "Animal/Insects",
- "Architectural",
- "Archived-Triple-Verified",
- "Archived-Vendor-Gone",
- "Bedroom",
- "Bird",
- "Blue",
- "Botanical",
- "Clarke & Clarke Botanical Wonders Wallcovering",
- "Clarke And Clarke",
- "Commercial",
- "Contemporary",
- "Dining Room",
- "display_variant",
- "Eclectic",
- "Fauna",
- "Floral",
- "Flowers",
- "Gilver",
- "Green",
- "Ivory",
- "Leaves",
- "Leopard",
- "Leopard Print",
- "Living Room",
- "Maximalist",
- "Menagerie Wp",
- "Non Woven - 100%",
- "Non-woven",
- "Novelty",
- "Paper",
- "Pattern",
- "Pink",
- "Playful",
- "Print",
- "Rose Pink",
- "Sage Green",
- "Snake",
- "Taupe",
- "Teal",
- "Tropical",
- "United Kingdom",
- "W0131/03.Cac.0",
- "Wallcovering",
- "Whimsical",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwkk-127815"
- },
- {
- "sku": "jada-white-girly-floral-scroll-wallpaper-wallpaper-cca-82818",
- "handle": "jada-white-girly-floral-scroll-wallpaper-wallpaper-cca-82818",
- "title": "Jada White Girly Floral Scroll Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/0c43d29a94f42b1967e0e3472d55539e.jpg?v=1572309955",
- "tags": [
- "Architectural",
- "Black",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Floral",
- "Gray",
- "LA Walls",
- "Scrolls",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Unpasted",
- "Vine",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/jada-white-girly-floral-scroll-wallpaper-wallpaper-cca-82818"
- },
- {
- "sku": "ncw4392-01",
- "handle": "ncw4392-01",
- "title": "Ashdown Chelwood Aqua - Blue Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497265688627.jpg?v=1775520737",
- "tags": [
- "Architectural",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Floral",
- "Light Green",
- "NCW4392-01",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Paper",
- "Single Dominant Background Color Word",
- "Traditional",
- "Wallcovering",
- "Wallcoverings",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4392-01"
- },
- {
- "sku": "westville-contemporary-durable-walls-xje-53689",
- "handle": "westville-contemporary-durable-walls-xje-53689",
- "title": "Westville Contemporary Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xje-53689-sample-westville-contemporary-durable-hollywood-wallcoverings.jpg?v=1775736476",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Hallway",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Light Beige",
- "Light Brown",
- "Living Room",
- "Serene",
- "Taupe",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/westville-contemporary-durable-walls-xje-53689"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_lyr-3370_8-jpg",
- "handle": "wolfgordonwallcovering_dwwg_lyr-3370_8-jpg",
- "title": "Lyra - Ecru | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/lyr-3370_8.jpg?v=1762299616",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Light Brown",
- "Lyra",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_lyr-3370_8-jpg"
- },
- {
- "sku": "caterina-embossed-vinyl-wallpaper-type-2-xwa-73268",
- "handle": "caterina-embossed-vinyl-wallpaper-type-2-xwa-73268",
- "title": "Caterina Embossed Vinyl - Type 2 | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwa-73268-sample-caterina-embossed-vinyl-type-2-hollywood.jpg?v=1775707442",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Caterina Embossed Vinyl",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Embossed Texture",
- "Hollywood Wallcoverings",
- "Living Room",
- "Minimalist",
- "Modern",
- "Office",
- "Organic Modern",
- "Phillip Romano Commercial",
- "Serene",
- "Solid",
- "Taupe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wood Grain"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/caterina-embossed-vinyl-wallpaper-type-2-xwa-73268"
- },
- {
- "sku": "gramercy-emerald",
- "handle": "gramercy-emerald",
- "title": "GRAMERCY Emerald",
- "vendor": "Mind the Gap",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/MTG_403303_1_GRAMERCY_Emerald.jpg?v=1607114848",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Art Deco",
- "Class A Fire Rated",
- "Commercial",
- "Dark Green",
- "Emerald Green",
- "Geometric",
- "Gold",
- "GRAMERCY Emerald",
- "Maximalist",
- "Mind the Gap",
- "Non-woven",
- "Pattern",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/gramercy-emerald"
- },
- {
- "sku": "patoa-librato-wallpaper-xb7-66596",
- "handle": "patoa-librato-wallpaper-xb7-66596",
- "title": "Patoa Librato Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/424f47099f1af5b86b9e489d0806fc12.jpg?v=1775131144",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "cellulose",
- "Class A Fire Rated",
- "Coastal",
- "Commercial",
- "Entryway",
- "Farmhouse",
- "Grasscloth",
- "Light Brown",
- "Living Room",
- "Natural Wallcovering",
- "Office",
- "Patoa Librato Wallcovering",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Tan",
- "Textural",
- "Textured",
- "Traditional",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 52.06,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/patoa-librato-wallpaper-xb7-66596"
- },
- {
- "sku": "ncw4301-04",
- "handle": "ncw4301-04",
- "title": "Les Rêves Beau Rivage Beige/Taupe - Taupe. Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497261756467.jpg?v=1775520204",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Geometric",
- "Gray",
- "Mid-Century Modern",
- "NCW4301-04",
- "Nina Campbell Wallcoverings",
- "Paper",
- "Taupe",
- "Wallcovering",
- "Wallcoverings",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4301-04"
- },
- {
- "sku": "eur-80457-ncw4497-designer-wallcoverings-los-angeles",
- "handle": "eur-80457-ncw4497-designer-wallcoverings-los-angeles",
- "title": "Toile Chinoise 01 - Brown Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513508675635.jpg?v=1775524213",
- "tags": [
- "ANIMAL/INSECTS",
- "Architectural",
- "Bedroom",
- "bird",
- "Birds",
- "Blue",
- "Botanical",
- "Brown",
- "Buildings",
- "Chinoiserie",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Dining Room",
- "Green",
- "Living Room",
- "NCW4497",
- "NCW4497-01",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Off-white",
- "Paper",
- "Pink",
- "Rose",
- "Scenic",
- "Serene",
- "SIGNATURE COLLECTION",
- "Taupe",
- "Teal",
- "Toile",
- "Toile Chinoise",
- "Traditional",
- "Trees",
- "Tropical",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80457-ncw4497-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwtt-72067-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72067-designer-wallcoverings-los-angeles",
- "title": "Allison Light Blue | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T1823.jpg?v=1733892855",
- "tags": [
- "Architectural",
- "Damask",
- "Geometric Resource",
- "light blue",
- "Pattern",
- "T1823",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72067-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "canal-stripe-texture-durable-walls-xwd-52107",
- "handle": "canal-stripe-texture-durable-walls-xwd-52107",
- "title": "Canal Stripe Texture Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwd-52107-sample-canal-stripe-texture-durable-hollywood-wallcoverings.jpg?v=1775707093",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Beige",
- "Champagne",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Fire Rated",
- "Flame Certificate Available",
- "Geometric",
- "Gold",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Beige",
- "Linear",
- "Living Room",
- "Pale Beige",
- "Pattern",
- "Stripe",
- "Striped",
- "Textured",
- "Traditional",
- "Transitional",
- "Type 2 Durable Vinyl",
- "USA",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering",
- "Warm",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Yellow"
- ],
- "max_price": 66.82,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/canal-stripe-texture-durable-walls-xwd-52107"
- },
- {
- "sku": "dwc-1001687",
- "handle": "dwc-1001687",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693312438323.jpg?v=1775521602",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Floral",
- "NCW4395-01",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paper",
- "Teal",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001687"
- },
- {
- "sku": "nancy-wallpaper-xq7-68164",
- "handle": "nancy-wallpaper-xq7-68164",
- "title": "Nancy | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/5693d7da76b9c9eb44b04994a1e979a9.jpg?v=1733882470",
- "tags": [
- "AI-Analyzed-v2",
- "Animal Skin",
- "Animal/Insects",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Crocodile",
- "Faux Leather",
- "Glamorous",
- "Hollywood Regency",
- "Hollywood Wallcoverings",
- "Living Room",
- "Luxe",
- "Luxurious",
- "Nancy",
- "non-woven",
- "Phillip Romano Commercial",
- "Primary Suite",
- "Tan",
- "Taupe",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/nancy-wallpaper-xq7-68164"
- },
- {
- "sku": "dwtt-71457-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71457-designer-wallcoverings-los-angeles",
- "title": "Andreas Stripe Navy | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T14248_043e3172-facf-4396-8f6e-196b4b512eea.jpg?v=1733894037",
- "tags": [
- "Architectural",
- "Botanical",
- "Imperial Garden",
- "Navy",
- "navy blue",
- "Pattern",
- "T14248",
- "Thibaut",
- "Traditional",
- "Trellis",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71457-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "word-walls-scr-8125",
- "handle": "word-walls-scr-8125",
- "title": "Word Walls",
- "vendor": "Designer Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/75d805d4530a403045fe39195ee156e2.jpg?v=1572309108",
- "tags": [
- "Abstract",
- "Architectural",
- "Beige",
- "Blue",
- "Commercial",
- "Designer Wallcoverings",
- "Luxury Screen Printed Wallpapers",
- "Paper",
- "Screen Print",
- "Smoke",
- "Steel",
- "Wallcovering",
- "Whimsical",
- "Whimsical Screen Prints Vol. 1"
- ],
- "max_price": 263.82,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/word-walls-scr-8125"
- },
- {
- "sku": "jolie-madam-wallpaper-xa1-66400",
- "handle": "jolie-madam-wallpaper-xa1-66400",
- "title": "Jolie Madam Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/f5b1a7734c964d6119bc4a414b082d33.jpg?v=1775119587",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Coastal",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Entryway",
- "Grasscloth",
- "Jolie Madam Wallcovering",
- "Khaki",
- "Light Brown",
- "Living Room",
- "Office",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Scandinavian",
- "Stripe",
- "Striped",
- "Tan",
- "Textural",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 38.55,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/jolie-madam-wallpaper-xa1-66400"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_br10294-jpg",
- "handle": "wolfgordonwallcovering_dwwg_br10294-jpg",
- "title": "BR10294 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_br029.jpg?v=1733873652",
- "tags": [
- "AI-Analyzed-v2",
- "Animal/Insects",
- "Architectural",
- "Beige",
- "BR10294",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Khaki",
- "Paper",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_br10294-jpg"
- },
- {
- "sku": "faux-leaf-squares-fls-2742",
- "handle": "faux-leaf-squares-fls-2742",
- "title": "Faux Leaf Squares Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fls-2742-sample-faux-leaf-squares-wallpaper-hollywood-wallcoverings.jpg?v=1775711975",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Commercial",
- "Contemporary",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Light Gray",
- "Minimalist",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 31.92,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-leaf-squares-fls-2742"
- },
- {
- "sku": "vandal-by-innovations-usa-dwc-vandal-1",
- "handle": "vandal-by-innovations-usa-dwc-vandal-1",
- "title": "Vandal | Innovations USA",
- "vendor": "Innovations USA",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/Vandal-1.jpg?v=1736199028",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "ASTM E84",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Geometric",
- "Green",
- "Innovations USA",
- "Light Gray",
- "Non-woven",
- "Vandal",
- "Vandal-1",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/vandal-by-innovations-usa-dwc-vandal-1"
- },
- {
- "sku": "eur-80131-ncw4126-designer-wallcoverings-los-angeles",
- "handle": "eur-80131-ncw4126-designer-wallcoverings-los-angeles",
- "title": "Huntly 02 - Off-White Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513496813619.jpg?v=1775522303",
- "tags": [
- "Architectural",
- "Bedroom",
- "BRAEMAR",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Geometric",
- "Hallway",
- "Huntly",
- "Lattice",
- "Light Gray",
- "Light Grey",
- "Living Room",
- "NCW4126",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Off-white",
- "Paper",
- "Serene",
- "Traditional",
- "Transitional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80131-ncw4126-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "always-room-for-ice-cream-small-mural-by-retro-walls-rtr-37217",
- "handle": "always-room-for-ice-cream-small-mural-by-retro-walls-rtr-37217",
- "title": "Always Room For Ice Cream Small Mural by Retro Walls",
- "vendor": "Traditional Whimsy",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/02e8544327c89298ec5a27a291006a75.jpg?v=1572309701",
- "tags": [
- "Abstract",
- "Architectural",
- "Beige",
- "Blue",
- "Commercial",
- "Commercial Wallcovering",
- "Green",
- "Heavy-duty Wallcovering with paper top-layer and non-woven backing // Colourfast and washable with a soft cloth // Butted seam (but",
- "Ice Cream Cone",
- "Metallic",
- "Multi",
- "Mural",
- "Paper",
- "Pink",
- "Retro",
- "Textured",
- "Traditional Whimsy",
- "Wallcovering",
- "Whimsical"
- ],
- "max_price": 84,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/always-room-for-ice-cream-small-mural-by-retro-walls-rtr-37217"
- },
- {
- "sku": "ramsey-type-ii-vinyl-wallcovering-xph-48211",
- "handle": "ramsey-type-ii-vinyl-wallcovering-xph-48211",
- "title": "Ramsey Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xph-48211-sample-ramsey-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775730045",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gray",
- "Hollywood Wallcoverings",
- "Living Room",
- "Minimalist",
- "Modern",
- "Office",
- "Ramsey Type 2 Vinyl Wallcovering",
- "Serene",
- "Stripe",
- "Taupe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wood Grain"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ramsey-type-ii-vinyl-wallcovering-xph-48211"
- },
- {
- "sku": "dwkk-130169",
- "handle": "dwkk-130169",
- "title": "W4126-5 Blue | Kravet Design | New Origins | Solid Texture Wallcovering Print",
- "vendor": "Kravet",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W4126_5_9de5d88f-a0a1-4bf6-88f3-ad266710dfc0.jpg?v=1753321202",
- "tags": [
- "27In",
- "Architectural",
- "Archived-Triple-Verified",
- "Archived-Vendor-Gone",
- "Bedroom",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "display_variant",
- "Grasscloth",
- "Kravet",
- "Kravet Design",
- "Light Beige",
- "Living Room",
- "Minimalist",
- "New Origins",
- "Non Woven - 100%",
- "Non-Woven",
- "Office",
- "Organic Modern",
- "Print",
- "Seafoam",
- "Serene",
- "Solid",
- "Stripe",
- "Teal",
- "Texture",
- "Textured",
- "Turquoise",
- "United States",
- "W4126-5",
- "W4126.5.0",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwkk-130169"
- },
- {
- "sku": "bellaire-faux-finish-durable-walls-xww-53071",
- "handle": "bellaire-faux-finish-durable-walls-xww-53071",
- "title": "Bellaire Faux Finish Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xww-53071-sample-bellaire-faux-finish-durable-hollywood-wallcoverings.jpg?v=1775703570",
- "tags": [
- "Architectural",
- "Bedroom",
- "Black",
- "Class A Fire Rated",
- "Color: Red",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Coral",
- "Faux",
- "Faux Finish",
- "Hallway",
- "Hollywood Wallcoverings",
- "LEED",
- "Linen",
- "Living Room",
- "Minimalist",
- "Red",
- "Salmon",
- "Solid",
- "Terracotta",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/bellaire-faux-finish-durable-walls-xww-53071"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_ar10373-jpg",
- "handle": "wolfgordonwallcovering_dwwg_ar10373-jpg",
- "title": "Armor Paint - AR10373 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_ar10372.jpg?v=1733873849",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Minimalist",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_ar10373-jpg"
- },
- {
- "sku": "doral-faux-silk-durable-walls-xwc-53222",
- "handle": "doral-faux-silk-durable-walls-xwc-53222",
- "title": "Doral Faux Silk Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwc-53222-sample-doral-faux-silk-durable-hollywood-wallcoverings.jpg?v=1775710293",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Coastal",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Faux",
- "Faux Finish",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Light Brown",
- "Linen Texture",
- "Living Room",
- "Oatmeal",
- "Organic Modern",
- "Serene",
- "Textured",
- "Traditional",
- "Transitional",
- "Wallcovering",
- "Woven",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/doral-faux-silk-durable-walls-xwc-53222"
- },
- {
- "sku": "park-ave-contemporary-faux-grasscloth-walls-xwh-52342",
- "handle": "park-ave-contemporary-faux-grasscloth-walls-xwh-52342",
- "title": "Park Ave Contemporary Faux Grasscloth | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/passage-taupe_34e263cb-ce02-49cc-9028-8d38dfee2be5.jpg?v=1777481155",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Cream",
- "Faux",
- "Faux Finish",
- "Faux Grasscloth",
- "Fire Rated",
- "Flame Certificate Available",
- "Grasscloth",
- "Grasscloth Look",
- "Grasscloth Texture",
- "Grasscloth Wallcovering",
- "Grasscloth Weave",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Leed Walls",
- "Light Beige",
- "Light Brown",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Modern",
- "Natural",
- "Natural Texture",
- "Organic Modern",
- "Serene",
- "Taupe",
- "Texture",
- "Textured",
- "Type 2 Durable Vinyl",
- "USA",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Woven",
- "Yellow"
- ],
- "max_price": 63.57,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/park-ave-contemporary-faux-grasscloth-walls-xwh-52342"
- },
- {
- "sku": "dwc-1001683",
- "handle": "dwc-1001683",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693312208947.jpg?v=1775521575",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Gold",
- "Gray",
- "Ivory",
- "NCW4394-02",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paper",
- "Stripe",
- "Traditional",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001683"
- },
- {
- "sku": "dwtt-71538-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71538-designer-wallcoverings-los-angeles",
- "title": "Kendall Blue | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T11063_7ca641de-ace9-4c97-a673-27620cf6ef48.jpg?v=1733893880",
- "tags": [
- "Architectural",
- "Blue",
- "Geometric",
- "Geometric Resource 2",
- "light blue",
- "off-white",
- "Pattern",
- "T11063",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71538-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "ncw4306-04",
- "handle": "ncw4306-04",
- "title": "Les Rêves Belle Île Aqua/Beige - Blue Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497262837811.jpg?v=1775520374",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Geometric",
- "Light Blue",
- "NCW4306-04",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Paper",
- "Stripe",
- "Textured",
- "Wallcovering",
- "Wallcoverings",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4306-04"
- },
- {
- "sku": "robertocavalliwallpaper_dwrc16046-jpg",
- "handle": "robertocavalliwallpaper_dwrc16046-jpg",
- "title": "Roberto Cavalli Wallcovering",
- "vendor": "Roberto Cavalli Wallpaper",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/RobertoCavalliWallpaper_dwrc16046.jpg?v=1587153720",
- "tags": [
- "Abstract",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "European",
- "Gray",
- "Imported",
- "Italian",
- "Non-Woven",
- "Purple",
- "Roberto Cavalli Wallcovering",
- "Texture",
- "Textured",
- "Volume 5",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/robertocavalliwallpaper_dwrc16046-jpg"
- },
- {
- "sku": "eur-80175-ncw4181-designer-wallcoverings-los-angeles",
- "handle": "eur-80175-ncw4181-designer-wallcoverings-los-angeles",
- "title": "Sansui 02 | Nina Campbell Europe",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513498452019.jpg?v=1775522579",
- "tags": [
- "Architectural",
- "CATHAY",
- "Chinoiserie",
- "Color: Grey",
- "Commercial",
- "Contemporary",
- "Dining Room",
- "Fretwork",
- "Geometric",
- "Grey",
- "Hallway",
- "Lattice",
- "Living Room",
- "NCW4181",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Off-white",
- "Pale Grey",
- "Paper",
- "Sansui",
- "Serene",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80175-ncw4181-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "paddock-type-ii-vinyl-wallcovering-xpd-48177",
- "handle": "paddock-type-ii-vinyl-wallcovering-xpd-48177",
- "title": "Paddock Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xpd-48177-sample-paddock-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775728631",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Hollywood Wallcoverings",
- "Linen Texture",
- "Living Room",
- "Organic Modern",
- "Paddock Type 2 Vinyl Wallcovering",
- "Tan",
- "Taupe",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/paddock-type-ii-vinyl-wallcovering-xpd-48177"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_em10274b-jpg",
- "handle": "wolfgordonwallcovering_dwwg_em10274b-jpg",
- "title": "EM10274B | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_em10273b.jpg?v=1733873306",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "EM10274B",
- "Gray",
- "Light Slate Gray",
- "Paper",
- "Textured",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_em10274b-jpg"
- },
- {
- "sku": "asha-sand-lotus-damask-wallpaper-cca-83236",
- "handle": "asha-sand-lotus-damask-wallpaper-cca-83236",
- "title": "Asha Sand Lotus Damask Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/28629b77f38c77f7233042f353885a89.jpg?v=1572309981",
- "tags": [
- "Architectural",
- "Beige",
- "Bling",
- "Class A Fire Rated",
- "Commercial",
- "Damask",
- "Discontinued",
- "Easy Walls",
- "Glitter",
- "LA Walls",
- "Prepasted",
- "Sand",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/asha-sand-lotus-damask-wallpaper-cca-83236"
- },
- {
- "sku": "dwtt-70961-designer-wallcoverings-los-angeles",
- "handle": "dwtt-70961-designer-wallcoverings-los-angeles",
- "title": "Mekong Stripe Blue and Turquoise | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T10093_d2712fbb-8c50-4dd2-a96b-cee89a44113a.jpg?v=1733894977",
- "tags": [
- "Abstract",
- "Architectural",
- "Blue",
- "Blue and Turquoise",
- "Coastal",
- "Pattern",
- "T10093",
- "Thibaut",
- "Tropics",
- "Turquoise",
- "Unknown",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-70961-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "berkeley-type-ii-vinyl-wallcovering-xju-47304",
- "handle": "berkeley-type-ii-vinyl-wallcovering-xju-47304",
- "title": "Berkeley Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xju-47304-sample-berkeley-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775704191",
- "tags": [
- "Architectural",
- "Brown",
- "Charcoal Gray",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Conference Room",
- "Contemporary",
- "Estimated Type: Non-woven",
- "Gray",
- "Hollywood Wallcoverings",
- "Minimalist",
- "Modern",
- "Office",
- "Orange",
- "Primary Suite",
- "Solid",
- "Sophisticated",
- "Taupe",
- "Terracotta",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/berkeley-type-ii-vinyl-wallcovering-xju-47304"
- },
- {
- "sku": "tahiti-scenic-wallpaper-trf-56820",
- "handle": "tahiti-scenic-wallpaper-trf-56820",
- "title": "Tahiti Scenic | Jeffrey Stevens",
- "vendor": "Jeffrey Stevens",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ce37f2d0e88b9c7d5b0748c883bc8c30.jpg?v=1750789762",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Asian",
- "Beige",
- "Birds",
- "Blue",
- "Bridge",
- "bright",
- "cabana",
- "Chinoiserie",
- "Commercial",
- "Commercial Wallcovering",
- "Cream",
- "Discontinued",
- "floral",
- "flowers",
- "Jeffrey Stevens",
- "medium blue",
- "medium scale",
- "Modern",
- "Modern Tropics",
- "Navy Blue",
- "Non-Woven",
- "novelty",
- "Olive Green",
- "overall",
- "pagoda",
- "Paper",
- "Pastel",
- "Prepasted - Washable - Strippable",
- "Red",
- "red/orange",
- "scenic",
- "Series: York",
- "Tan",
- "Toile",
- "Tomato Red",
- "Traditional",
- "tropical",
- "USA",
- "Wallcovering",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 60.53,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/tahiti-scenic-wallpaper-trf-56820"
- },
- {
- "sku": "maidstone-type-ii-vinyl-wallcovering-xmh-47944",
- "handle": "maidstone-type-ii-vinyl-wallcovering-xmh-47944",
- "title": "Maidstone - Mushroom Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/marquise-amazonite_8b0caeb7-4767-4c9c-ad3b-4ada556b4de1.jpg?v=1777481413",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Teal",
- "Bedroom",
- "Blue",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Turquoise",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Cool",
- "Faux Finish",
- "Faux Stone",
- "Fire Rated",
- "Flame Certificate Available",
- "Geometric",
- "Gray",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Living Room",
- "Maidstone Type 2 Vinyl Wallcovering",
- "Mfr-Image-Refreshed",
- "Modern",
- "Office",
- "Stone Look",
- "Stripe",
- "Teal",
- "Textured",
- "Turquoise",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\""
- ],
- "max_price": 55.38,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/maidstone-type-ii-vinyl-wallcovering-xmh-47944"
- },
- {
- "sku": "dwkk-127826",
- "handle": "dwkk-127826",
- "title": "Wild Strawberry Wp - Blush Multi By Clarke And Clarke | Clarke & Clarke Botanical Wonders Wallcovering | Animal/Insects Wallcovering Print",
- "vendor": "Clarke And Clarke",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W0135_01_CAC_010a6708-eaa4-45a3-8ae0-21f53ec6f9ba.jpg?v=1753321576",
- "tags": [
- "20.5In",
- "Animal/Insects",
- "Architectural",
- "Archived-Triple-Verified",
- "Archived-Vendor-Gone",
- "Bathroom",
- "Bedroom",
- "Bird",
- "Blue",
- "Botanical",
- "Brown",
- "Clarke & Clarke Botanical Wonders Wallcovering",
- "Clarke And Clarke",
- "Commercial",
- "Contemporary",
- "Cottagecore",
- "Cream",
- "display_variant",
- "English Country",
- "Floral",
- "Flower",
- "Golden Yellow",
- "Grandmillennial",
- "Green",
- "Leaf",
- "Non Woven - 100%",
- "Nursery",
- "Paper",
- "Pattern",
- "Peach",
- "Playful",
- "Print",
- "Sage Green",
- "Sky Blue",
- "Strawberry",
- "Strawberry Red",
- "Taupe",
- "Traditional",
- "United Kingdom",
- "Vine",
- "W0135/01.Cac.0",
- "Wallcovering",
- "Whimsical",
- "White",
- "Wild Strawberry Wp"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwkk-127826"
- },
- {
- "sku": "villa-velore-durable-vinyl-dur-72325",
- "handle": "villa-velore-durable-vinyl-dur-72325",
- "title": "Villa Velore Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72325-sample-clean.jpg?v=1774485194",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Brown",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Gray",
- "Grey",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Organic Modern",
- "Serene",
- "Taupe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/villa-velore-durable-vinyl-dur-72325"
- },
- {
- "sku": "dwtt-80950-designer-wallcoverings-los-angeles",
- "handle": "dwtt-80950-designer-wallcoverings-los-angeles",
- "title": "Mombasa | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/T10212_d3fc688e-36f1-41c2-bc07-985b0c9183cf.jpg?v=1743193944",
- "tags": [
- "Architectural",
- "Contemporary",
- "Geometric",
- "gray",
- "off-white",
- "Pattern",
- "T10212",
- "Thibaut",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 114.03,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-80950-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "sumatra-by-innovations-usa-dwc-sumatra-2",
- "handle": "sumatra-by-innovations-usa-dwc-sumatra-2",
- "title": "Sumatra | Innovations USA",
- "vendor": "Innovations USA",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/Sumatra-2.jpg?v=1736198828",
- "tags": [
- "AI-Analyzed-v2",
- "Almond",
- "Architectural",
- "ASTM E84",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Innovations USA",
- "Latte",
- "Light Beige",
- "Linen",
- "Off-white",
- "Stripe",
- "Sumatra",
- "Sumatra-2",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/sumatra-by-innovations-usa-dwc-sumatra-2"
- },
- {
- "sku": "programa-piento-durable-vinyl-dur-72426",
- "handle": "programa-piento-durable-vinyl-dur-72426",
- "title": "Programa Piento Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72426-sample-clean.jpg?v=1774485501",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Brown",
- "Chevron",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Geometric",
- "Grayish Brown",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Taupe",
- "Living Room",
- "Modern",
- "Office",
- "Organic Modern",
- "Programa Piento Durable Vinyl",
- "Tan",
- "Taupe",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Wood Grain"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/programa-piento-durable-vinyl-dur-72426"
- },
- {
- "sku": "nassau-gold-dusk",
- "handle": "nassau-gold-dusk",
- "title": "Nappa - Metallic - Dusk 100% SIlicone | Phillipe Romano Wallcoverings",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/Ziro_Nappa_Dusk.jpg?v=1772569952",
- "tags": [
- "Antimicrobial-Free",
- "Architectural",
- "Bedroom",
- "Bleach Cleanable",
- "BS 5852 Crib 5",
- "CA TB 117 Compliant",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract Grade",
- "Dark Gray",
- "Dark Grey",
- "DMF-Free",
- "Fabric",
- "Faux Leather",
- "Fine",
- "Fine Texture",
- "FR Additives Free",
- "Graffiti-Free",
- "Grain",
- "Gray",
- "Green Building",
- "Grey",
- "Healthcare",
- "Hospitality",
- "IMO 8.2 & 8.3 Certified",
- "IMO Marine Grade",
- "Indoor/Outdoor",
- "LEED Compatible",
- "Living Room",
- "Minimalist",
- "Modern",
- "Monochromatic",
- "Multi-Purpose",
- "MVSS-302 Automotive",
- "Neutral Tones",
- "NFPA 260 Compliant",
- "Office",
- "Pebble",
- "PFAS-Free",
- "Phillipe Romano",
- "Silicone",
- "Solid",
- "Sophisticated",
- "Textured",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/nassau-gold-dusk"
- },
- {
- "sku": "natalia-blue-curly-scroll-wallpaper-wallpaper-cca-82824",
- "handle": "natalia-blue-curly-scroll-wallpaper-wallpaper-cca-82824",
- "title": "Natalia Blue Curly Scroll Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/47c919234233c22b6a5d9c7705f2d228.jpg?v=1572309956",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Floral",
- "Green",
- "LA Walls",
- "Leaf",
- "Pink",
- "Prepasted",
- "Scrolls",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/natalia-blue-curly-scroll-wallpaper-wallpaper-cca-82824"
- },
- {
- "sku": "faux-leaf-squares-fls-2504",
- "handle": "faux-leaf-squares-fls-2504",
- "title": "Faux Leaf Squares Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fls-2504-sample-faux-leaf-squares-wallpaper-hollywood-wallcoverings.jpg?v=1775711868",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Commercial",
- "Dark Seagreen",
- "Faux Finish",
- "Gray",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Solid",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 34.55,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-leaf-squares-fls-2504"
- },
- {
- "sku": "fairford-vinyl-wallcovering-xlb-47654",
- "handle": "fairford-vinyl-wallcovering-xlb-47654",
- "title": "Fairford Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xlb-47654-sample-fairford-vinyl-hollywood-wallcoverings.jpg?v=1775711526",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Hollywood Wallcoverings",
- "Linen Texture",
- "Living Room",
- "Minimalist",
- "Office",
- "Organic Modern",
- "Serene",
- "Stripe",
- "Taupe",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/fairford-vinyl-wallcovering-xlb-47654"
- },
- {
- "sku": "vernon-durable-walls-xwp-52683",
- "handle": "vernon-durable-walls-xwp-52683",
- "title": "Vernon Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwp-52683-sample-vernon-durable-hollywood-wallcoverings.jpg?v=1775735745",
- "tags": [
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grey",
- "Hallway",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Light Gray",
- "Living Room",
- "Minimalist",
- "Pale Blue-gray",
- "Serene",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/vernon-durable-walls-xwp-52683"
- },
- {
- "sku": "dwtt-72220-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72220-designer-wallcoverings-los-angeles",
- "title": "St. Barts Grey | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/TextureResource9-SaddleWeaveWP-taupe-PolluxFAB-skyblue.jpg?v=1773244765",
- "tags": [
- "Architectural",
- "beige",
- "Contemporary",
- "Geometric",
- "Grey",
- "Jubilee",
- "Pattern",
- "T4969",
- "Thibaut",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72220-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwkk-128648",
- "handle": "dwkk-128648",
- "title": "W3635-4 Gold | Kravet Design | Texture Wallcovering",
- "vendor": "Kravet",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W3635_4_78c564d3-e013-4635-8256-b436a2a4433d.jpg?v=1753122073",
- "tags": [
- "52In",
- "Architectural",
- "Archived-Triple-Verified",
- "Archived-Vendor-Gone",
- "Bedroom",
- "Beige",
- "Brown",
- "Chevron",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Dark Brown",
- "display_variant",
- "Hallway",
- "Kravet",
- "Kravet Design",
- "Living Room",
- "Poly Vinyl Chloride - 74.7%;Recycled Poly Vinyl Chloride - 8.3%;Pvc Compound - 6.9%;Polyester - 6.24%;Other - 2%;Cotton - 1.86%",
- "Sophisticated",
- "Stripe",
- "Taupe",
- "Texture",
- "Textured",
- "Traditional",
- "Transitional",
- "United States",
- "Vinyl",
- "W3635-4",
- "W3635.4.0",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwkk-128648"
- },
- {
- "sku": "dwtt-71475-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71475-designer-wallcoverings-los-angeles",
- "title": "Trelawny Damask Yellow | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T14206_549eefd1-d7ad-4655-9cf9-19875cf318fc.jpg?v=1733893994",
- "tags": [
- "Architectural",
- "Chinoiserie",
- "gray",
- "Imperial Garden",
- "Pattern",
- "Scenic",
- "T14206",
- "Thibaut",
- "Unknown",
- "Wallcovering",
- "white",
- "yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71475-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "meander-border-metallic-red-wallcovering-versace",
- "handle": "meander-border-metallic-red-wallcovering-versace",
- "title": "Meander Border Metallic, Red Wallcovering | Versace",
- "vendor": "Versace",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/a8132d7035c2674e2606f3bca5cf7837.jpg?v=1773706318",
- "tags": [
- "A.S. Création",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brick Red",
- "Class A Fire Rated",
- "Color: Red",
- "Commercial",
- "Commercial Wallcovering",
- "Dining Room",
- "display_variant",
- "Geometric",
- "Gold",
- "Greek Key",
- "Italian",
- "Living Room",
- "Luxe",
- "Luxury",
- "Meander Border",
- "Meander Border Metallic",
- "Neoclassical",
- "Paper",
- "Paste the wall",
- "Red",
- "Red Wallcovering",
- "Regencycore",
- "Sophisticated",
- "Trending Wallcovering Collection 2026",
- "Trending Wallpaper Collection 2026",
- "Versace",
- "Versace Home",
- "Versace VI",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/meander-border-metallic-red-wallcovering-versace"
- },
- {
- "sku": "marketfield-faux-durable-walls-xwh-52319",
- "handle": "marketfield-faux-durable-walls-xwh-52319",
- "title": "Marketfield Faux Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/mindscape-ginseng.jpg?v=1777480458",
- "tags": [
- "Architectural",
- "Bedroom",
- "Black",
- "Burnt Orange",
- "Class A Fire Rated",
- "Color: Orange",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Faux",
- "Faux Finish",
- "Grasscloth",
- "Hallway",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Orange",
- "Solid",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/marketfield-faux-durable-walls-xwh-52319"
- },
- {
- "sku": "route-66-car-wallpaper-scr-7922",
- "handle": "route-66-car-wallpaper-scr-7922",
- "title": "Route 66 Car Wallcovering",
- "vendor": "Designer Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/5fea65c8e4f4b9645c7427b1dd25f9a8.jpg?v=1572309084",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Blue",
- "Blues White",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Designer Wallcoverings",
- "Light Blue",
- "Paper",
- "Route 66 Car Wallcovering",
- "Screen Print",
- "Wallcovering",
- "Whimsical Screen Prints Vol. 1",
- "White"
- ],
- "max_price": 146.18,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/route-66-car-wallpaper-scr-7922"
- },
- {
- "sku": "dwtt-72056-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72056-designer-wallcoverings-los-angeles",
- "title": "Henley Plaid Camel | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T1021_c3f85462-4ba7-49c4-a073-4f02842020c8.jpg?v=1733892881",
- "tags": [
- "Architectural",
- "beige",
- "Camel",
- "cream",
- "Geometric",
- "Menswear Resource",
- "Pattern",
- "T1021",
- "Texture",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72056-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "bleinheim-lanvino-wallpaper-xe7-66830",
- "handle": "bleinheim-lanvino-wallpaper-xe7-66830",
- "title": "Bleinheim Lanvino Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/2f8e9db6f6ea06efe09d639585e8c7f7.jpg?v=1572309567",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Bleinheim Lanvino Wallcovering",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Fabric",
- "Light Beige",
- "Off-white",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Textured",
- "vinyl",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 37.27,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/bleinheim-lanvino-wallpaper-xe7-66830"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_sm10260-jpg",
- "handle": "wolfgordonwallcovering_dwwg_sm10260-jpg",
- "title": "SM10260 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_sm10259.jpg?v=1733872444",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_sm10260-jpg"
- },
- {
- "sku": "versace-floral-pastel-multicoloured-metallic-wallcovering-versace",
- "handle": "versace-floral-pastel-multicoloured-metallic-wallcovering-versace",
- "title": "Versace Floral Pastel Multicoloured, Metallic Wallcovering | Versace",
- "vendor": "Versace",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/a6f5aa0623799309964658ef4f3db170.jpg?v=1773706398",
- "tags": [
- "A.S. Création",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Blush Pink",
- "Botanical",
- "Class A Fire Rated",
- "Color: Yellow",
- "Commercial",
- "Commercial Wallcovering",
- "Cottagecore",
- "Cream",
- "Dining Room",
- "display_variant",
- "Floral",
- "Grandmillennial",
- "Green",
- "Italian",
- "Light Green",
- "Light Pink",
- "Light Yellow",
- "Living Room",
- "Luxury",
- "Metallic Wallcovering",
- "Multi",
- "Multicoloured",
- "Off-white",
- "Pale Green",
- "Pale Pink",
- "Pale Yellow",
- "Paper",
- "Paste the wall",
- "Pink",
- "Seafoam Green",
- "Serene",
- "Traditional",
- "Trending Wallcovering Collection 2026",
- "Trending Wallpaper Collection 2026",
- "Versace",
- "Versace Floral Pastel",
- "Versace Floral Pastel Multicoloured",
- "Versace Home",
- "Versace VI",
- "Victorian",
- "Vine",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/versace-floral-pastel-multicoloured-metallic-wallcovering-versace"
- },
- {
- "sku": "rustic-glam-vinyl-gpr-76631",
- "handle": "rustic-glam-vinyl-gpr-76631",
- "title": "Rustic Glam Vinyl",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/gpr-76631-sample-rustic-glam-vinyl.jpg?v=1775731634",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Bling",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Farmhouse",
- "Glass Bead",
- "Hand Crafted",
- "Hollywood Wallcoverings",
- "Living Room",
- "Minimalist",
- "Modern",
- "Mural",
- "Office",
- "Organic Modern",
- "Sand",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Wheat",
- "Wood Grain"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/rustic-glam-vinyl-gpr-76631"
- },
- {
- "sku": "jonesport-pink-cabin-stripe-wallpaper-cca-83184",
- "handle": "jonesport-pink-cabin-stripe-wallpaper-cca-83184",
- "title": "Jonesport Pink Cabin Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/8270cc5a5f79cdff211fccac035db35e.jpg?v=1572309971",
- "tags": [
- "Architectural",
- "Coastal",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Green",
- "LA Walls",
- "Lightblue",
- "Paper",
- "Pink",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/jonesport-pink-cabin-stripe-wallpaper-cca-83184"
- },
- {
- "sku": "ncw4306-02",
- "handle": "ncw4306-02",
- "title": "Les Rêves Belle Île Grey/Gold - Brown Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497262739507.jpg?v=1775520361",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Geometric",
- "Gray",
- "NCW4306-02",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Paper",
- "Stripe",
- "Textured",
- "Wallcovering",
- "Wallcoverings",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4306-02"
- }
-]
\ No newline at end of file
diff --git a/data/products.json.bak.tagscrub.1778220122394 b/data/products.json.bak.tagscrub.1778220122394
deleted file mode 100644
index db3d3b3..0000000
--- a/data/products.json.bak.tagscrub.1778220122394
+++ /dev/null
@@ -1,21500 +0,0 @@
-[
- {
- "sku": "whittier-way-twisted-paper-weave-hlw-73158",
- "handle": "whittier-way-twisted-paper-weave-hlw-73158",
- "title": "Whittier Way - Twisted Paper Weave | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73158-sample-clean.jpg?v=1774483793",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "contemporary",
- "Cream",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Minimalist",
- "Natural",
- "Naturally Glamorous",
- "Organic Modern",
- "Paper",
- "Serene",
- "stripe",
- "Taupe",
- "textured",
- "Vinyl",
- "Wallcovering",
- "Wood Grain",
- "Yellow"
- ],
- "max_price": 43.22,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/whittier-way-twisted-paper-weave-hlw-73158"
- },
- {
- "sku": "kittery-brick-affinity-stria-wallpaper-cca-83137",
- "handle": "kittery-brick-affinity-stria-wallpaper-cca-83137",
- "title": "Kittery Brick Affinity Stria Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/86fbcc9218a5c9975ece2f334a984895.jpg?v=1572309970",
- "tags": [
- "Architectural",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Prepasted",
- "Red",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/kittery-brick-affinity-stria-wallpaper-cca-83137"
- },
- {
- "sku": "dwc-1001613",
- "handle": "dwc-1001613",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693308538931.jpg?v=1775521121",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Bohemian",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Geometric",
- "Gray",
- "NCW4306-02",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paper",
- "Stripe",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001613"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_mya-9440-jpg",
- "handle": "wolfgordonwallcovering_dwwg_mya-9440-jpg",
- "title": "Maya - Carbon | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/mya-9440.jpg?v=1762302154",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Carbon",
- "Class A Fire Rated",
- "Coated Upholstery",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Gray",
- "Maya",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings",
- "Woven"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_mya-9440-jpg"
- },
- {
- "sku": "kylie-denim-cabin-stripe-wallpaper-cca-83042",
- "handle": "kylie-denim-cabin-stripe-wallpaper-cca-83042",
- "title": "Kylie Denim Cabin Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/91e4f7ec4e5049165d03386432d1012b.jpg?v=1572309966",
- "tags": [
- "Architectural",
- "Beige",
- "Blue",
- "Brown",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 64.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/kylie-denim-cabin-stripe-wallpaper-cca-83042"
- },
- {
- "sku": "douglas-beige-vintage-planes-wallpaper-cca-82938",
- "handle": "douglas-beige-vintage-planes-wallpaper-cca-82938",
- "title": "Douglas Beige Vintage Planes Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/2ef20e0c22cd0f2242f3d4a7ea615dfb.jpg?v=1572309962",
- "tags": [
- "Airplane",
- "Architectural",
- "Beige",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Masculine",
- "Novelty",
- "Paper",
- "Prepasted",
- "Scenic",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Vintage",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/douglas-beige-vintage-planes-wallpaper-cca-82938"
- },
- {
- "sku": "dwtt-71501-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71501-designer-wallcoverings-los-angeles",
- "title": "Brad Silver on Charcoal | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T11039_bbf9171b-cc7a-4ccd-af85-64f9f0ee4ed8.jpg?v=1733893952",
- "tags": [
- "Architectural",
- "contemporary",
- "geometric",
- "Geometric Resource 2",
- "Pattern",
- "Silver on Charcoal",
- "T11039",
- "taupe",
- "Thibaut",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71501-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "aubrey-brown-crystal-medallion-texture-wallpaper-cca-83246",
- "handle": "aubrey-brown-crystal-medallion-texture-wallpaper-cca-83246",
- "title": "Aubrey Brown Crystal Medallion Texture Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/a3a8ba28305ae159ec06200be7174985.jpg?v=1572309982",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Damask",
- "Discontinued",
- "Easy Walls",
- "Gray",
- "LA Walls",
- "Medallion",
- "Modern",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/aubrey-brown-crystal-medallion-texture-wallpaper-cca-83246"
- },
- {
- "sku": "ludlow-blue-paisley-wallpaper-cca-82915",
- "handle": "ludlow-blue-paisley-wallpaper-cca-82915",
- "title": "Ludlow Blue Paisley Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/4ba15b366076591cb8059c1a8082d095.jpg?v=1572309962",
- "tags": [
- "Architectural",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Gray",
- "LA Walls",
- "Masculine",
- "Paisley",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ludlow-blue-paisley-wallpaper-cca-82915"
- },
- {
- "sku": "essone-durable-vinyl-dur-72275",
- "handle": "essone-durable-vinyl-dur-72275",
- "title": "Essone Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72275-sample-clean.jpg?v=1774484981",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Organic Modern",
- "Serene",
- "Stripe",
- "Taupe",
- "Textured",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/essone-durable-vinyl-dur-72275"
- },
- {
- "sku": "kennebunk-lavender-textured-pinstripe-wallpaper-cca-83099",
- "handle": "kennebunk-lavender-textured-pinstripe-wallpaper-cca-83099",
- "title": "Kennebunk Lavender Textured Pinstripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ef173076d27e89824fdbe2e21fbef4f7.jpg?v=1572309968",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Kennebunk Lavender Textured Pinstripe Wallcovering",
- "LA Walls",
- "Lavender",
- "Light Gray",
- "Paper",
- "Prepasted",
- "Purple",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/kennebunk-lavender-textured-pinstripe-wallpaper-cca-83099"
- },
- {
- "sku": "oxford-type-ii-vinyl-wallcovering-xvg-49323",
- "handle": "oxford-type-ii-vinyl-wallcovering-xvg-49323",
- "title": "Oxford Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/baccarat-vesper.jpg?v=1777480352",
- "tags": [
- "Almond",
- "Architectural",
- "Basil",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Fern",
- "Grasscloth",
- "Green",
- "Hazel",
- "Hollywood Wallcoverings",
- "Lemon",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Moss",
- "Office",
- "Olive Green",
- "Organic Modern",
- "Serene",
- "Solid",
- "Taupe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Walnut"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/oxford-type-ii-vinyl-wallcovering-xvg-49323"
- },
- {
- "sku": "dwtt-81111-designer-wallcoverings-los-angeles",
- "handle": "dwtt-81111-designer-wallcoverings-los-angeles",
- "title": "Tanglewood | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/T24376_07b98fe4-25fe-4095-8c37-e9eecf36bebe.jpg?v=1743194492",
- "tags": [
- "Architectural",
- "Damask",
- "Pattern",
- "silver",
- "T24376",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 65.16,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-81111-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_qnt-5542-jpg",
- "handle": "wolfgordonwallcovering_dwwg_qnt-5542-jpg",
- "title": "Quinault - Oak | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/qnt-5542.jpg?v=1762303363",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Beige",
- "Black",
- "Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Grasscloth",
- "Oak",
- "Quinault",
- "RAMPART®",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings",
- "Woven"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_qnt-5542-jpg"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_sp10217-jpg",
- "handle": "wolfgordonwallcovering_dwwg_sp10217-jpg",
- "title": "SP10217 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_sp10216.jpg?v=1733872370",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Gray",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_sp10217-jpg"
- },
- {
- "sku": "canal-texture-durable-walls-xwd-52099",
- "handle": "canal-texture-durable-walls-xwd-52099",
- "title": "Canal Texture Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/capulet-sandalwood.jpg?v=1777480406",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Brown",
- "Bedroom",
- "Beige",
- "Brown",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Fire Rated",
- "Flame Certificate Available",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Brown",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Minimalist",
- "Organic Modern",
- "Stripe",
- "Tan",
- "Texture",
- "Textured",
- "Type 2 Durable Vinyl",
- "USA",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering",
- "Warm",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\""
- ],
- "max_price": 66.82,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/canal-texture-durable-walls-xwd-52099"
- },
- {
- "sku": "pleated-perfect-paradise-ppp-2618",
- "handle": "pleated-perfect-paradise-ppp-2618",
- "title": "Pleated Perfect Paradise | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ppp-2618-sample-pleated-perfect-paradise-hollywood-wallcoverings.jpg?v=1775729153",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Light Brown",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 35.66,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/pleated-perfect-paradise-ppp-2618"
- },
- {
- "sku": "xanadu-s-retro-geometric-scr-8035",
- "handle": "xanadu-s-retro-geometric-scr-8035",
- "title": "Xanadu's Retro Geometric",
- "vendor": "Studio Toten",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/6e57f895aa6cf29866877ccc4f96150b.jpg?v=1572309105",
- "tags": [
- "Architectural",
- "Blue",
- "Commercial",
- "Designer Wallcoverings",
- "Geometric",
- "Luxury Screen Printed Wallpapers",
- "Mid-Century Modern",
- "Paper",
- "Screen Print",
- "Wallcovering",
- "Whimsical Screen Prints Vol. 1",
- "White"
- ],
- "max_price": 271.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/xanadu-s-retro-geometric-scr-8035"
- },
- {
- "sku": "canal-stripe-texture-durable-walls-xwd-52115",
- "handle": "canal-stripe-texture-durable-walls-xwd-52115",
- "title": "Canal Stripe Texture Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwd-52115-sample-canal-stripe-texture-durable-hollywood-wallcoverings.jpg?v=1775707121",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Beige",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Fire Rated",
- "Flame Certificate Available",
- "Geometric",
- "Gold",
- "Grasscloth",
- "Grasscloth Weave",
- "Green",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Khaki",
- "Light Beige",
- "Linear",
- "Living Room",
- "Olive Green",
- "Organic Modern",
- "Pale Beige",
- "Pattern",
- "Serene",
- "Stripe",
- "Striped",
- "Textured",
- "Timeless",
- "Traditional",
- "Transitional",
- "Type 2 Durable Vinyl",
- "USA",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\""
- ],
- "max_price": 66.82,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/canal-stripe-texture-durable-walls-xwd-52115"
- },
- {
- "sku": "narcisse-noir-wallpaper-xa7-66457",
- "handle": "narcisse-noir-wallpaper-xa7-66457",
- "title": "Narcisse Noir Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/0ae098032c1fe847886f615cbc3b9cf5.jpg?v=1775123534",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "calcium carbonate/pulp",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Entryway",
- "Farmhouse",
- "Grasscloth",
- "Living Room",
- "Narcisse Noir Wallcovering",
- "Natural Wallcovering",
- "Office",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Rustic",
- "Stripe",
- "Striped",
- "Tan",
- "Textural",
- "Textured",
- "Traditional",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 49.3,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/narcisse-noir-wallpaper-xa7-66457"
- },
- {
- "sku": "chinese-fret-walls-cfw-9486",
- "handle": "chinese-fret-walls-cfw-9486",
- "title": "Chinese Fret | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/cfw-9486-sample-chinese-fret-hollywood-wallcoverings.jpg?v=1775708053",
- "tags": [
- "Architectural",
- "Beige",
- "Chinoiserie",
- "Class A Fire Rated",
- "Commercial",
- "Commercial - Cleanable",
- "Elegant Vinyls Vol. 1",
- "Fretwork",
- "Geometric",
- "Gold",
- "Hollywood Wallcoverings",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 39.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/chinese-fret-walls-cfw-9486"
- },
- {
- "sku": "hollywood-contemporary-coast-xhw-2010378",
- "handle": "hollywood-contemporary-coast-xhw-2010378",
- "title": "Hollywood Contemporary Coast | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/surf-el_dorado_30b2926f-2cf8-4c70-8ca5-34407aca0a34.jpg?v=1777481083",
- "tags": [
- "35.04 oz",
- "54 Inch Width",
- "54\" Width",
- "Abstract",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "AI-Analyzed-v2",
- "Architectural",
- "Background Color Tan",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Hallway",
- "Healthcare",
- "Heavy Duty",
- "Hollywood Contemporary Coast",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Brown",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Minimalist",
- "Modern",
- "Organic Modern",
- "Serene",
- "Tan",
- "Taupe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 35.04 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Look",
- "Yellow"
- ],
- "max_price": 96.58,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hollywood-contemporary-coast-xhw-2010378"
- },
- {
- "sku": "ncw4395-04",
- "handle": "ncw4395-04",
- "title": "Ashdown Kingsley Silver/Ivory - Neutral Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497266901043.jpg?v=1775520865",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Floral",
- "NCW4395-04",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Paper",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Wallcoverings",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4395-04"
- },
- {
- "sku": "canal-texture-durable-walls-xwa-52087",
- "handle": "canal-texture-durable-walls-xwa-52087",
- "title": "Canal Texture Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/capulet-cream.jpg?v=1777480386",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Cream",
- "Fire Rated",
- "Flame Certificate Available",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Linen",
- "Linen Texture",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Minimalist",
- "Organic Modern",
- "Serene",
- "Stripe",
- "Texture",
- "Textured",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Yellow"
- ],
- "max_price": 66.82,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/canal-texture-durable-walls-xwa-52087"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_blr-5017-jpg",
- "handle": "wolfgordonwallcovering_dwwg_blr-5017-jpg",
- "title": "Ballari - Parchment | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/blr-5017.jpg?v=1762288047",
- "tags": [
- "100% Vinyl",
- "Abstract",
- "Architectural",
- "Ballari",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Cream",
- "Parchment",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_blr-5017-jpg"
- },
- {
- "sku": "chesterfield-acoustical-wallcovering-xjz-47386",
- "handle": "chesterfield-acoustical-wallcovering-xjz-47386",
- "title": "Chesterfield Acoustical Wallcovering",
- "vendor": "Hollywood Acoustical",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/f2b6e0b2b79fa872224f8527bcfc1aae.jpg?v=1572310051",
- "tags": [
- "100% recycled polyester",
- "Architectural",
- "Bedroom",
- "Charcoal Gray",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Fabric",
- "Fabric-backed Vinyl",
- "Gray",
- "Grey",
- "Hallway",
- "Hollywood Acoustical",
- "Living Room",
- "Minimalist",
- "Polyester",
- "Serene",
- "Silver Gray",
- "Stripe",
- "Textured",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/chesterfield-acoustical-wallcovering-xjz-47386"
- },
- {
- "sku": "eur-80334-ncw4306-designer-wallcoverings-los-angeles",
- "handle": "eur-80334-ncw4306-designer-wallcoverings-los-angeles",
- "title": "Belle Ile Stripe 04 - Blue Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513504546867.jpg?v=1775523446",
- "tags": [
- "Architectural",
- "Bedroom",
- "Belle Ile Stripe",
- "Bohemian",
- "Brown",
- "Class A Fire Rated",
- "Coastal",
- "Commercial",
- "Contemporary",
- "Geometric",
- "Global",
- "Hallway",
- "LES REVES",
- "Light Blue",
- "Living Room",
- "NCW4306",
- "NCW4306-04",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Paper",
- "Seafoam Green",
- "Serene",
- "Stripe",
- "Takumi",
- "Taupe",
- "Textured",
- "Turquoise",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80334-ncw4306-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "zeya-mural-ashlar-romo",
- "handle": "zeya-mural-ashlar-romo",
- "title": "Zeya Mural Ashlar | Romo",
- "vendor": "Romo",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W971-01-zeya-mural-ashlar_04.jpg?v=1776399030",
- "tags": [
- "Abstract",
- "Architectural",
- "Background Color white",
- "beige",
- "brown",
- "Burnished Bronze",
- "Commercial",
- "Conference Room",
- "Contemporary",
- "gray",
- "Kabu Wallcoverings",
- "Large",
- "Lobby",
- "Mural",
- "Non-woven",
- "Office",
- "Romo",
- "Sage Green",
- "Slate Blue",
- "Smooth",
- "Soft White",
- "Texture",
- "Transitional",
- "W971/01",
- "Wallcovering",
- "Warm Taupe",
- "Zeya Mural"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/zeya-mural-ashlar-romo"
- },
- {
- "sku": "artisma-croco-vinyl-dwx-58152",
- "handle": "artisma-croco-vinyl-dwx-58152",
- "title": "Artisma Croco Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58152-sample-artisma-croco-vinyl-hollywood-wallcoverings.jpg?v=1775699281",
- "tags": [
- "54\" Width",
- "Animal Skin",
- "Architectural",
- "Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Crocodile",
- "Dark Brown",
- "Faux Leather",
- "hollywood",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Neutral",
- "Organic",
- "Texture",
- "Textured",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wide Width"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/artisma-croco-vinyl-dwx-58152"
- },
- {
- "sku": "hollywood-modern-wood-xhw-2010209",
- "handle": "hollywood-modern-wood-xhw-2010209",
- "title": "Hollywood Modern Wood | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/intarsia-depth_e68d1a56-b25e-4061-b995-7931e48e1889.jpg?v=1777481263",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Brown",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Dark Brown",
- "Dining Room",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Geometric",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Living Room",
- "Medium Brown",
- "Mfr-Image-Refreshed",
- "Modern",
- "Office",
- "Sophisticated",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Grain",
- "Wood Look"
- ],
- "max_price": 50.75,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hollywood-modern-wood-xhw-2010209"
- },
- {
- "sku": "dwkk-127696",
- "handle": "dwkk-127696",
- "title": "Rafi - Limestone By Clarke And Clarke | Clarke & Clarke Reflections | Tone On Tone Wallcovering Print",
- "vendor": "Clarke And Clarke",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W0060_04_CAC_0c54e4df-7ffe-488c-81e8-cf24a4812e86.jpg?v=1726037784",
- "tags": [
- "20.875In",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Clarke & Clarke Reflections",
- "Clarke And Clarke",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "display_variant",
- "Grey",
- "Hallway",
- "Light Gray",
- "Light Grey",
- "Limestone",
- "Living Room",
- "Minimalist",
- "Pale Grey",
- "Paper",
- "Print",
- "Rafi",
- "Serene",
- "Solid",
- "Texture",
- "Textured",
- "Tone On Tone",
- "United Kingdom",
- "W0060/04.Cac.0",
- "Wallcovering",
- "Wood Pulp - 74%;Binder - 13%;Polyester - 13%"
- ],
- "max_price": 176.24,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwkk-127696"
- },
- {
- "sku": "john-s-thick-embossed-vinyl-xjt-44466",
- "handle": "john-s-thick-embossed-vinyl-xjt-44466",
- "title": "John's Thick Embossed Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/XJT-44466-clean_aedb4dc7-2d2f-4dff-9d0f-5196efd6825b.jpg?v=1774479196",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "ASTM E84 Class A",
- "Bedroom",
- "Beige",
- "Brown",
- "Check",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Embossed Texture",
- "Geometric",
- "Hallway",
- "Hollywood Wallcoverings",
- "John's Thick Embossed Vinyl",
- "Living Room",
- "Rustic",
- "Tan",
- "Taupe",
- "Textured",
- "Tile",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/john-s-thick-embossed-vinyl-xjt-44466"
- },
- {
- "sku": "jutely-vinyl-dwx-58129",
- "handle": "jutely-vinyl-dwx-58129",
- "title": "Jutely Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58129-sample-jutely-vinyl-hollywood-wallcoverings.jpg?v=1775720277",
- "tags": [
- "54\" Width",
- "Architectural",
- "Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contract",
- "Contract Wallcovering",
- "Durable",
- "Grasscloth",
- "hollywood",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Jute",
- "Light Beige",
- "Natural Look",
- "Neutral",
- "Texture",
- "Textured",
- "Traditional",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wide Width",
- "Woven"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/jutely-vinyl-dwx-58129"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_mru-3301_8-jpg",
- "handle": "wolfgordonwallcovering_dwwg_mru-3301_8-jpg",
- "title": "Marlu - Gunmetal | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/mru-3301_8.jpg?v=1762301801",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Black",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Embossed",
- "Geometric",
- "Gray",
- "Marlu",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_mru-3301_8-jpg"
- },
- {
- "sku": "vernon-durable-walls-xwr-52698",
- "handle": "vernon-durable-walls-xwr-52698",
- "title": "Vernon Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwr-52698-sample-vernon-durable-hollywood-wallcoverings.jpg?v=1775735785",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Green",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Brown",
- "Dark Olive Green",
- "Grasscloth",
- "Green",
- "Hollywood Wallcoverings",
- "Khaki",
- "Leed Walls",
- "Living Room",
- "Office",
- "Olive",
- "Olive Green",
- "Solid",
- "Sophisticated",
- "Textured",
- "Traditional",
- "Transitional",
- "Vernon Durable",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/vernon-durable-walls-xwr-52698"
- },
- {
- "sku": "jonesport-cream-cabin-stripe-wallpaper-cca-83175",
- "handle": "jonesport-cream-cabin-stripe-wallpaper-cca-83175",
- "title": "Jonesport Cream Cabin Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/8af5af0a7c4631387aeeb157c845ba05.jpg?v=1572309971",
- "tags": [
- "Architectural",
- "Brown",
- "Commercial",
- "Cream",
- "Discontinued",
- "Easy Walls",
- "Gray",
- "LA Walls",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Traditional",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/jonesport-cream-cabin-stripe-wallpaper-cca-83175"
- },
- {
- "sku": "eur-80158-ncw4152-designer-wallcoverings-los-angeles",
- "handle": "eur-80158-ncw4152-designer-wallcoverings-los-angeles",
- "title": "Lochwood 05 - Soft White Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513497731123.jpg?v=1775522469",
- "tags": [
- "Architectural",
- "Bedroom",
- "Biophilic",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Gray",
- "Grey",
- "Hallway",
- "Light Grey",
- "Living Room",
- "Lochwood",
- "NCW4152",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Organic Modern",
- "Pale Green",
- "Paper",
- "ROSSLYN",
- "Scenic",
- "Serene",
- "Silver",
- "Traditional",
- "Trees",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80158-ncw4152-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "eur-80375-ncw4354-designer-wallcoverings-los-angeles",
- "handle": "eur-80375-ncw4354-designer-wallcoverings-los-angeles",
- "title": "Garance 05 - Black Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513505857587.jpg?v=1775523691",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Black",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Dining Room",
- "Eclectic",
- "Floral",
- "Garance",
- "LES INDIENNES",
- "Living Room",
- "Medallion",
- "NCW4354",
- "NCW4354-05",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Paper",
- "Sophisticated",
- "Traditional",
- "Transitional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80375-ncw4354-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "rivington-rice-paper-durable-vinyl-walls-xwj-52447",
- "handle": "rivington-rice-paper-durable-vinyl-walls-xwj-52447",
- "title": "Rivington Rice Paper Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwj-52447-sample-rivington-rice-paper-durable-vinyl-hollywood-wallcoverings.jpg?v=1775730763",
- "tags": [
- "Architectural",
- "Bedroom",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Yellow",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gray",
- "Hallway",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Light Brown",
- "Living Room",
- "Minimalist",
- "Pale Yellow",
- "Paper",
- "Serene",
- "Solid",
- "Textured",
- "Vinyl",
- "Vinyl Wallcoverings",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/rivington-rice-paper-durable-vinyl-walls-xwj-52447"
- },
- {
- "sku": "eur-80537-pcl695-designer-wallcoverings-los-angeles",
- "handle": "eur-80537-pcl695-designer-wallcoverings-los-angeles",
- "title": "Malmaison Botanical 07 | Christian Lacroix Europe",
- "vendor": "Christian Lacroix Europe",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/56557_2aa0baad-0b1a-45f4-8e9a-32f79b3c45d8.webp?v=1738950909",
- "tags": [
- "Almond",
- "Architectural",
- "Bedroom",
- "Botanical",
- "Charcoal Gray",
- "Christian Lacroix Europe",
- "Class A Fire Rated",
- "Color: Green",
- "Commercial",
- "Contemporary",
- "Cottagecore",
- "Creme",
- "Dining Room",
- "Estimated Type: Paper",
- "Floral",
- "Grandmillennial",
- "Gray",
- "Green",
- "INCROYABLE ET MARVEILLEUS",
- "Living Room",
- "Malmaison Botanical",
- "Non-Woven",
- "Off-white",
- "Olive",
- "Organic",
- "Pattern",
- "PCL695",
- "Smoke",
- "Traditional",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80537-pcl695-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "frank-s-faux-finish-fff-2934",
- "handle": "frank-s-faux-finish-fff-2934",
- "title": "Frank's Faux Finish Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fff-2934-sample-frank-s-faux-finish-wallpaper-hollywood-wallcoverings.jpg?v=1775714262",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Commercial",
- "Fabric",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Light Brown",
- "Textured",
- "Traditional",
- "Transitional",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 36.21,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/frank-s-faux-finish-fff-2934"
- },
- {
- "sku": "hairly-hide-faux-vinyl-hide-wallpaper-burnt-orange-spice-fvh-40402",
- "handle": "hairly-hide-faux-vinyl-hide-wallpaper-burnt-orange-spice-fvh-40402",
- "title": "Hairly Hide - Faux Vinyl Hide - Burnt Orange Spice | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fvh-40402-sample-hairly-hide-faux-vinyl-hide-burnt-orange-spice-hollywood.jpg?v=1775715526",
- "tags": [
- "Architectural",
- "Bold",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Orange",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 204.94,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hairly-hide-faux-vinyl-hide-wallpaper-burnt-orange-spice-fvh-40402"
- },
- {
- "sku": "spencer-paintable-supaglypta-wallpaper-gga-82652",
- "handle": "spencer-paintable-supaglypta-wallpaper-gga-82652",
- "title": "Spencer Paintable Supaglypta | Jeffrey Stevens",
- "vendor": "Jeffrey Stevens",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/7f5da467c7415dd1cf9614c61e0de49b.jpg?v=1750790456",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Discontinued",
- "Embossed",
- "Floral",
- "Flowers",
- "Geometric",
- "Jeffrey Stevens",
- "Light Gray",
- "Neutral",
- "Off-white",
- "Paintable",
- "Paper",
- "Phasing-2026-04",
- "Renovation",
- "Residential",
- "Series: Brewster",
- "Spencer Paintable Supaglypta",
- "Strippable",
- "Textured",
- "Traditional",
- "Unpasted",
- "Victorian",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White"
- ],
- "max_price": 49.02,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/spencer-paintable-supaglypta-wallpaper-gga-82652"
- },
- {
- "sku": "cumberland-natural-wood-texture-wallpaper-cca-82906",
- "handle": "cumberland-natural-wood-texture-wallpaper-cca-82906",
- "title": "Cumberland Natural Wood Texture Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ac6f395c88361509340e1eb314ecf5ca.jpg?v=1572309961",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Farmhouse",
- "Faux",
- "Faux Effects",
- "LA Walls",
- "Light Brown",
- "Masculine",
- "Natural",
- "Prepasted",
- "Scandinavian",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "Wood",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/cumberland-natural-wood-texture-wallpaper-cca-82906"
- },
- {
- "sku": "kylie-aqua-cabin-stripe-wallpaper-cca-83040",
- "handle": "kylie-aqua-cabin-stripe-wallpaper-cca-83040",
- "title": "Kylie Aqua Cabin Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/3d3ab6dfc50297b502fa1b4520903da1.jpg?v=1572309966",
- "tags": [
- "Architectural",
- "Beige",
- "Blue",
- "Coastal",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Gold",
- "LA Walls",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04",
- "Yellow"
- ],
- "max_price": 64.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/kylie-aqua-cabin-stripe-wallpaper-cca-83040"
- },
- {
- "sku": "midnight-in-the-stone-garden-small-mural-by-retro-walls-rtr-37237",
- "handle": "midnight-in-the-stone-garden-small-mural-by-retro-walls-rtr-37237",
- "title": "Midnight in the Stone Garden Small Mural by Retro Walls",
- "vendor": "Traditional Whimsy",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/392be6d2a56abca3ec50dc6cb363ace4.jpg?v=1572309702",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Blue",
- "Commercial",
- "Commercial Wallcovering",
- "Elephant",
- "Gray",
- "Heavy-duty Wallcovering with paper top-layer and non-woven backing // Colourfast and washable with a soft cloth // Butted seam (but",
- "Lion",
- "Mural",
- "Owl",
- "Paper",
- "Scenic",
- "Traditional Whimsy",
- "Wallcovering",
- "Whimsical"
- ],
- "max_price": 84,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/midnight-in-the-stone-garden-small-mural-by-retro-walls-rtr-37237"
- },
- {
- "sku": "austin-grey-plaid-wallpaper-cca-82962",
- "handle": "austin-grey-plaid-wallpaper-cca-82962",
- "title": "Austin Grey Plaid Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/da265c34b61a7abf31892dfe38cd9051.jpg?v=1572309963",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Gray",
- "Green",
- "LA Walls",
- "Masculine",
- "Plaid",
- "Plaids",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/austin-grey-plaid-wallpaper-cca-82962"
- },
- {
- "sku": "eur-80309-ncw4301-designer-wallcoverings-los-angeles",
- "handle": "eur-80309-ncw4301-designer-wallcoverings-los-angeles",
- "title": "Beau Rivage 06 - Blue Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513503334451.jpg?v=1775523294",
- "tags": [
- "Abstract",
- "Architectural",
- "Bathroom",
- "Beau Rivage",
- "Bedroom",
- "Blue",
- "Class A Fire Rated",
- "Coastal",
- "Commercial",
- "Contemporary",
- "Geometric",
- "Hallway",
- "LES REVES",
- "Light Blue",
- "Navy Blue",
- "NCW4301",
- "NCW4301-06",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Paper",
- "Scandinavian",
- "Serene",
- "Sky Blue",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80309-ncw4301-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "flagler-embossed-durable-walls-xwq-52973",
- "handle": "flagler-embossed-durable-walls-xwq-52973",
- "title": "Flagler Embossed Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwq-52973-sample-flagler-embossed-durable-hollywood-wallcoverings.jpg?v=1775713325",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Beige",
- "Biophilic",
- "Botanical",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Embossed Texture",
- "Gold",
- "Grasscloth",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Organic Modern",
- "Primary Suite",
- "Serene",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/flagler-embossed-durable-walls-xwq-52973"
- },
- {
- "sku": "zebilini-wallpaper-xd6-66708",
- "handle": "zebilini-wallpaper-xd6-66708",
- "title": "Zebilini Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/5e873b73bde0ae9320aa5064dbc329cb.jpg?v=1775133931",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Black",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Entryway",
- "Geometric",
- "Gray",
- "Living Room",
- "Modern",
- "Office",
- "Paper",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Transitional",
- "vinyl",
- "Vinyls",
- "Wallcovering",
- "White",
- "Zebilini Wallcovering"
- ],
- "max_price": 38.55,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/zebilini-wallpaper-xd6-66708"
- },
- {
- "sku": "peter-s-plastered-walls-ppw-2868",
- "handle": "peter-s-plastered-walls-ppw-2868",
- "title": "Peter's Plastered | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ppw-2868-sample-peter-s-plastered-hollywood-wallcoverings.jpg?v=1775729042",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Light Gray",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 40.54,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/peter-s-plastered-walls-ppw-2868"
- },
- {
- "sku": "newcastle-type-ii-vinyl-wallcovering-xve-49310",
- "handle": "newcastle-type-ii-vinyl-wallcovering-xve-49310",
- "title": "Newcastle Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/belize-sea_almond_71a67f34-74e6-4fbd-9a42-ae42ba51de7c.jpg?v=1777481421",
- "tags": [
- "Architectural",
- "Basketweave",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Newcastle Type 2 Vinyl Wallcovering",
- "Taupe",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/newcastle-type-ii-vinyl-wallcovering-xve-49310"
- },
- {
- "sku": "nautilus-by-innovations-usa-dwc-nautilus-1",
- "handle": "nautilus-by-innovations-usa-dwc-nautilus-1",
- "title": "Nautilus | Innovations USA",
- "vendor": "Innovations USA",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/Nautilus-1.jpg?v=1736198903",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "ASTM E84",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gold",
- "Innovations USA",
- "Light Beige",
- "Light Gray",
- "Nautilus",
- "Nautilus-1",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/nautilus-by-innovations-usa-dwc-nautilus-1"
- },
- {
- "sku": "dwtt-72169-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72169-designer-wallcoverings-los-angeles",
- "title": "Ramie Bay Plum | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T3633.jpg?v=1733892577",
- "tags": [
- "Architectural",
- "beige",
- "brown",
- "Grasscloth Resource 2",
- "Pattern",
- "Plum",
- "T3633",
- "tan",
- "Texture",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72169-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "peter-s-plastered-walls-ppw-2870",
- "handle": "peter-s-plastered-walls-ppw-2870",
- "title": "Peter's Plastered | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ppw-2870-sample-peter-s-plastered-hollywood-wallcoverings.jpg?v=1775729048",
- "tags": [
- "Architectural",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Gray",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 40.54,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/peter-s-plastered-walls-ppw-2870"
- },
- {
- "sku": "eur-80293-ncw4277-designer-wallcoverings-los-angeles",
- "handle": "eur-80293-ncw4277-designer-wallcoverings-los-angeles",
- "title": "Meredith 03 - Taupe Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513502515251.jpg?v=1775523205",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Commercial",
- "COROMANDEL",
- "Damask",
- "Dining Room",
- "Floral",
- "Grandmillennial",
- "Living Room",
- "Meredith",
- "NCW4277",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Oatmeal",
- "Paper",
- "Scroll",
- "Sophisticated",
- "Textured",
- "Traditional",
- "Victorian",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80293-ncw4277-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "chinese-fret-walls-cfw-9495",
- "handle": "chinese-fret-walls-cfw-9495",
- "title": "Chinese Fret | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/cfw-9495-sample-chinese-fret-hollywood-wallcoverings.jpg?v=1775708085",
- "tags": [
- "Architectural",
- "Beige",
- "Brown",
- "Chinoiserie",
- "Class A Fire Rated",
- "Commercial",
- "Commercial - Cleanable",
- "Elegant Vinyls Vol. 1",
- "Fretwork",
- "Geometric",
- "Hollywood Wallcoverings",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 39.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/chinese-fret-walls-cfw-9495"
- },
- {
- "sku": "saint-lore-durable-vinyl-dur-72230",
- "handle": "saint-lore-durable-vinyl-dur-72230",
- "title": "Saint Lore Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72230-sample-clean.jpg?v=1774484834",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Linen Texture",
- "Living Room",
- "Organic Modern",
- "Pink",
- "Rose Gold",
- "Serene",
- "Taupe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/saint-lore-durable-vinyl-dur-72230"
- },
- {
- "sku": "wiscasset-cream-farmhouse-stripe-wallpaper-cca-83200",
- "handle": "wiscasset-cream-farmhouse-stripe-wallpaper-cca-83200",
- "title": "Wiscasset Cream Farmhouse Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/676bbda185aff8d8334ca60778f6ad73.jpg?v=1572309972",
- "tags": [
- "Architectural",
- "Beige",
- "Commercial",
- "Country",
- "Cream",
- "Discontinued",
- "Easy Walls",
- "Farmhouse",
- "LA Walls",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wiscasset-cream-farmhouse-stripe-wallpaper-cca-83200"
- },
- {
- "sku": "seres-pampas-romo",
- "handle": "seres-pampas-romo",
- "title": "Seres Pampas | Romo",
- "vendor": "Romo",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W969-01-seres-wallcovering-pampas_01.jpg?v=1776485658",
- "tags": [
- "Architectural",
- "Background Color beige",
- "beige",
- "Commercial",
- "cream",
- "Embossed Wallcovering",
- "Grasscloth",
- "Hotel Room",
- "Ivory",
- "Kabu Wallcoverings",
- "light brown",
- "Lobby",
- "Natural",
- "Non-Woven",
- "Office",
- "Romo",
- "Scandinavian",
- "Seres",
- "Small",
- "Stripe",
- "Texture",
- "Textured",
- "Traditional",
- "Transitional",
- "W969/01",
- "Wallcovering",
- "Warm Taupe"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/seres-pampas-romo"
- },
- {
- "sku": "dwc-1001667",
- "handle": "dwc-1001667",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693311258675.jpg?v=1775521469",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Bohemian",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Geometric",
- "Gold",
- "NCW4391-01",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paper",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001667"
- },
- {
- "sku": "hilo-highway-diamond-grass-hlw-73129",
- "handle": "hilo-highway-diamond-grass-hlw-73129",
- "title": "Hilo Highway - Diamond Grass | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73129-sample-clean.jpg?v=1774483613",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Brown",
- "Charcoal",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Gray",
- "Grey",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Natural",
- "Naturally Glamorous",
- "Organic",
- "Organic Modern",
- "Rustic",
- "Taupe",
- "Textured",
- "Wallcovering"
- ],
- "max_price": 89.52,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hilo-highway-diamond-grass-hlw-73129"
- },
- {
- "sku": "pauline-s-retro-geometric-scr-8002",
- "handle": "pauline-s-retro-geometric-scr-8002",
- "title": "Pauline's Retro Geometric",
- "vendor": "Studio Toten",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/9092bce2599e0c8a6f04624c9558ebde.jpg?v=1572309104",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Designer Wallcoverings",
- "Floral",
- "Ivory",
- "Light Blue",
- "Mid-Century Modern",
- "Paper",
- "Pauline's Retro Geometric",
- "Powder",
- "Screen Print",
- "Steel",
- "vinyl",
- "Wallcovering",
- "Whimsical Screen Prints Vol. 1",
- "White"
- ],
- "max_price": 146.18,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/pauline-s-retro-geometric-scr-8002"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_act-5079-jpg",
- "handle": "wolfgordonwallcovering_dwwg_act-5079-jpg",
- "title": "Acute - Emerald | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/act-5079.jpg?v=1762283618",
- "tags": [
- "100% Vinyl",
- "Abstract",
- "Acute",
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Dark Green",
- "Geometric",
- "Light Gray",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_act-5079-jpg"
- },
- {
- "sku": "ncw4394-04",
- "handle": "ncw4394-04",
- "title": "Ashdown Posingford Dove/Taupe - Brown Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497266540595.jpg?v=1775520831",
- "tags": [
- "Architectural",
- "Beige",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Cream",
- "Leaf",
- "NCW4394-04",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Paper",
- "Taupe",
- "Textured",
- "Traditional",
- "Vine",
- "Wallcovering",
- "Wallcoverings",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4394-04"
- },
- {
- "sku": "frank-s-faux-finish-fff-2926",
- "handle": "frank-s-faux-finish-fff-2926",
- "title": "Frank's Faux Finish Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fff-2926-sample-frank-s-faux-finish-wallpaper-hollywood-wallcoverings.jpg?v=1775714237",
- "tags": [
- "Architectural",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Tan",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 36.21,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/frank-s-faux-finish-fff-2926"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_ad10341-jpg",
- "handle": "wolfgordonwallcovering_dwwg_ad10341-jpg",
- "title": "Ambient Design - AD10341 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_ad10340.jpg?v=1733874105",
- "tags": [
- "AI-Analyzed-v2",
- "Ambient Design",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Maroon",
- "Red",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_ad10341-jpg"
- },
- {
- "sku": "dwtt-72293-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72293-designer-wallcoverings-los-angeles",
- "title": "Damask Resource 3 Green | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T7639.jpg?v=1733892342",
- "tags": [
- "Architectural",
- "Damask",
- "Damask Resource 3",
- "Green",
- "light green",
- "light yellow",
- "light yellow-green",
- "Pattern",
- "T7639",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72293-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "hereford-type-ii-vinyl-wallcovering-xuy-49262",
- "handle": "hereford-type-ii-vinyl-wallcovering-xuy-49262",
- "title": "Hereford Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/malachite-onyx.jpg?v=1777480316",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Blue",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Blue",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gray",
- "Hallway",
- "Hereford Type 2 Vinyl Wallcovering",
- "Hollywood Wallcoverings",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Modern",
- "Moody",
- "Navy",
- "Slate Grey",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hereford-type-ii-vinyl-wallcovering-xuy-49262"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_st9513-jpg",
- "handle": "wolfgordonwallcovering_dwwg_st9513-jpg",
- "title": "ST9513 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_st9511.jpg?v=1733872237",
- "tags": [
- "AI-Analyzed-v2",
- "Animal/Insects",
- "Architectural",
- "Black",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Solid",
- "ST9513",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_st9513-jpg"
- },
- {
- "sku": "frank-s-faux-finish-fff-2930",
- "handle": "frank-s-faux-finish-fff-2930",
- "title": "Frank's Faux Finish Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fff-2930-sample-frank-s-faux-finish-wallpaper-hollywood-wallcoverings.jpg?v=1775714249",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Faux Finish",
- "Gray",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 36.21,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/frank-s-faux-finish-fff-2930"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_hug-3327_8-jpg",
- "handle": "wolfgordonwallcovering_dwwg_hug-3327_8-jpg",
- "title": "Hugo - Pebble | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/hug-3327_8.jpg?v=1762297753",
- "tags": [
- "100% Vinyl",
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contract",
- "Gray",
- "Herringbone",
- "Hugo",
- "Light Gray",
- "Paper",
- "Pebble",
- "Silver",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_hug-3327_8-jpg"
- },
- {
- "sku": "eur-80200-ncw4185-designer-wallcoverings-los-angeles",
- "handle": "eur-80200-ncw4185-designer-wallcoverings-los-angeles",
- "title": "Mahayana 03 - Cool Gray Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513499435059.jpg?v=1775522720",
- "tags": [
- "Architectural",
- "Basketweave",
- "Bedroom",
- "CATHAY",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Geometric",
- "Gray",
- "Grey",
- "Hallway",
- "Light Silver",
- "Living Room",
- "Mahayana",
- "Minimalist",
- "Modern",
- "NCW4185",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Non-Woven",
- "Serene",
- "Silver",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80200-ncw4185-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwtt-71225-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71225-designer-wallcoverings-los-angeles",
- "title": "Passaro Damask Cream on Metallic Beige | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T89135_02e246d3-5124-4cef-984e-81e436103c56.jpg?v=1733894434",
- "tags": [
- "Architectural",
- "beige",
- "Damask",
- "Damask Resource 4",
- "off-white",
- "Pattern",
- "T89135",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71225-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "floating-fibers-dwx-58187",
- "handle": "floating-fibers-dwx-58187",
- "title": "Floating Fibers | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58187-sample-floating-fibers-hollywood-wallcoverings.jpg?v=1775714143",
- "tags": [
- "54\" Width",
- "Abstract",
- "Architectural",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Dark Olive Green",
- "Fiber",
- "hollywood",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Natural",
- "Natural Look",
- "Neutral",
- "Olive Green",
- "Texture",
- "Textured",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wide Width"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/floating-fibers-dwx-58187"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_ar9502-jpg",
- "handle": "wolfgordonwallcovering_dwwg_ar9502-jpg",
- "title": "Armor Paint - AR9502 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_ar9501.jpg?v=1733873907",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_ar9502-jpg"
- },
- {
- "sku": "dwtt-72074-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72074-designer-wallcoverings-los-angeles",
- "title": "Petite Diamond Beige | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T1802.jpg?v=1733892832",
- "tags": [
- "Architectural",
- "beige",
- "Geometric",
- "Geometric Resource",
- "off-white",
- "Pattern",
- "T1802",
- "Thibaut",
- "Traditional",
- "Trellis",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72074-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "frank-s-faux-finish-fff-2932",
- "handle": "frank-s-faux-finish-fff-2932",
- "title": "Frank's Faux Finish Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fff-2932-sample-frank-s-faux-finish-wallpaper-hollywood-wallcoverings.jpg?v=1775714255",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Commercial",
- "Faux Finish",
- "Gray",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Light Gray",
- "Stripe",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 36.21,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/frank-s-faux-finish-fff-2932"
- },
- {
- "sku": "capri-lavender-floral-scroll-wallpaper-cca-83048",
- "handle": "capri-lavender-floral-scroll-wallpaper-cca-83048",
- "title": "Capri Lavender Floral Scroll Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/248109dec3381ef4a1b6ec2ac77eb2fa.jpg?v=1572309967",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Floral",
- "Flowers",
- "Green",
- "LA Walls",
- "Lavender",
- "Prepasted",
- "Purple",
- "Series: Brewster",
- "Strippable",
- "Traditional",
- "Vine",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 64.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/capri-lavender-floral-scroll-wallpaper-cca-83048"
- },
- {
- "sku": "hollywood-tower-deco-xhw-201047",
- "handle": "hollywood-tower-deco-xhw-201047",
- "title": "Hollywood Tower Deco | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/avant-gazelle.jpg?v=1777480915",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "Abstract",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Art Deco",
- "Background Color White",
- "Bedroom",
- "Chevron",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contract Grade",
- "Contract Wallcovering",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Geometric",
- "Grey",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Gray",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Modern",
- "Off-white",
- "Paper",
- "Sophisticated",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Look"
- ],
- "max_price": 59.87,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hollywood-tower-deco-xhw-201047"
- },
- {
- "sku": "dwtt-72020-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72020-designer-wallcoverings-los-angeles",
- "title": "Wallcoverings Cream | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/Grasscloth5-Tabacon-Abaca-01.jpg?v=1773244677",
- "tags": [
- "Architectural",
- "Bedroom",
- "Blue",
- "Botanical",
- "Calm",
- "Commercial",
- "Dining Room",
- "Floral",
- "Grasscloth",
- "Living Room",
- "Medium Scale",
- "Paper",
- "Pattern",
- "REVIEW",
- "Serene",
- "T5750",
- "Textured",
- "Thibaut",
- "Thibaut Wallcoverings",
- "Traditional",
- "Wallcovering",
- "Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72020-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_sft-5025-jpg",
- "handle": "wolfgordonwallcovering_dwwg_sft-5025-jpg",
- "title": "Shift - Ash | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/sft-5025_2024-09-13-182529_zwsg.jpg?v=1762306140",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Geometric",
- "Light Gray",
- "RAMPART®",
- "Shift",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_sft-5025-jpg"
- },
- {
- "sku": "peter-s-plastered-walls-ppw-2883",
- "handle": "peter-s-plastered-walls-ppw-2883",
- "title": "Peter's Plastered | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ppw-2883-sample-peter-s-plastered-hollywood-wallcoverings.jpg?v=1775729092",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Light Brown",
- "Mediterranean",
- "Solid",
- "Tan",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 40.54,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/peter-s-plastered-walls-ppw-2883"
- },
- {
- "sku": "daytona-faux-contemporary-durable-walls-xwc-53204",
- "handle": "daytona-faux-contemporary-durable-walls-xwc-53204",
- "title": "Daytona Faux Contemporary Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwc-53204-sample-daytona-faux-contemporary-durable-hollywood-wallcoverings.jpg?v=1775710068",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Faux",
- "Faux Finish",
- "Geometric",
- "Hallway",
- "Hollywood Wallcoverings",
- "Lattice",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Pale Beige",
- "Serene",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/daytona-faux-contemporary-durable-walls-xwc-53204"
- },
- {
- "sku": "mason-light-grey-stripe-texture-wallpaper-cca-82923",
- "handle": "mason-light-grey-stripe-texture-wallpaper-cca-82923",
- "title": "Mason Light Grey Stripe Texture Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/14602e03a16ebb6042459dce858d7b05.jpg?v=1572309962",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Light Grey",
- "Masculine",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/mason-light-grey-stripe-texture-wallpaper-cca-82923"
- },
- {
- "sku": "fukaura-durable-vinyl-xrm-34137",
- "handle": "fukaura-durable-vinyl-xrm-34137",
- "title": "Fukaura Durable Vinyl",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/955326ca3871af6530de080107357834_6858c0bf-98d6-44d3-8149-cde6d1b0a898.jpg?v=1572310410",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Phillipe Romano",
- "Phillipe Romano Essential Textures",
- "Phillipe Romano Vinyls",
- "Stripe",
- "Textured",
- "Type 2",
- "Type 2 Durable Commercial and Residential - Cleanable",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Vinyls",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/fukaura-durable-vinyl-xrm-34137"
- },
- {
- "sku": "hainsville-faux-leather-durable-walls-xwt-53389",
- "handle": "hainsville-faux-leather-durable-walls-xwt-53389",
- "title": "Hainsville Faux Leather Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/reserve-riesling_b60c1d27-3390-488e-8624-f14cd6a5ede8.jpg?v=1777481518",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Faux",
- "Faux Finish",
- "Faux Leather",
- "Hallway",
- "Hollywood Wallcoverings",
- "Ivory",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Minimalist",
- "Serene",
- "Solid",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hainsville-faux-leather-durable-walls-xwt-53389"
- },
- {
- "sku": "mr-diorio-wallpaper-xa8-66468",
- "handle": "mr-diorio-wallpaper-xa8-66468",
- "title": "Mr. Diorio Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/b83a01426625ba59fcda32981b59d90a_688cb4fa-a421-4118-bdb5-614bc9a94967.jpg?v=1775124737",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gray",
- "Hotel Lobby",
- "Light Gray",
- "Living Room",
- "Minimalist",
- "Mr. Diorio Wallcovering",
- "Office",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Taupe",
- "Textured",
- "Transitional",
- "vinyl",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 35.92,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/mr-diorio-wallpaper-xa8-66468"
- },
- {
- "sku": "skelton-type-ii-vinyl-wallcovering-xpy-48387",
- "handle": "skelton-type-ii-vinyl-wallcovering-xpy-48387",
- "title": "Skelton Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/XPY-48387-sample-clean.jpg?v=1774480440",
- "tags": [
- "Architectural",
- "Bedroom",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Grey",
- "Gray",
- "Grey",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Minimalist",
- "Sophisticated",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/skelton-type-ii-vinyl-wallcovering-xpy-48387"
- },
- {
- "sku": "dwss-72726",
- "handle": "dwss-72726",
- "title": "Charlotta spring green sample Wallcovering | Sandberg",
- "vendor": "Sandberg",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/830-28_image1_90883b53-fb5c-4123-b913-4d317baad7df.jpg?v=1646105210",
- "tags": [
- "Architectural",
- "Art Nouveau",
- "Arts & Crafts",
- "Beige",
- "Botanical",
- "Charlotta",
- "Charlotta spring green sample",
- "Commercial",
- "Floral",
- "Green",
- "Leaf",
- "P830-28",
- "Paper",
- "Pattern",
- "Sage",
- "Sandberg",
- "Sandberg Wallcovering",
- "SPRING GREEN",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwss-72726"
- },
- {
- "sku": "dwtt-72051-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72051-designer-wallcoverings-los-angeles",
- "title": "Curtis Linen Metallic Gold on Natural | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T1004_01c69d83-2991-4fe1-b35a-d5f0379a2122.jpg?v=1733892893",
- "tags": [
- "Architectural",
- "beige",
- "cream",
- "Damask",
- "Menswear Resource",
- "Metallic Gold on Natural",
- "Pattern",
- "T1004",
- "Texture",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72051-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwtt-72392-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72392-designer-wallcoverings-los-angeles",
- "title": "Braxton Texture Silver Grey | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T6028.jpg?v=1733892236",
- "tags": [
- "Anniversary",
- "Architectural",
- "Damask",
- "gray",
- "Pattern",
- "Silver Grey",
- "T6028",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72392-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_ril-6373-jpg",
- "handle": "wolfgordonwallcovering_dwwg_ril-6373-jpg",
- "title": "Riley - Turquoise | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ril-6373.jpg?v=1762304635",
- "tags": [
- "27% Polyester",
- "73% Acrylic",
- "Acrylic",
- "Architectural",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Geometric",
- "Polka Dot",
- "Riley",
- "Teal",
- "Textured",
- "Turquoise",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings",
- "Woven Upholstery"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_ril-6373-jpg"
- },
- {
- "sku": "dwtt-71758-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71758-designer-wallcoverings-los-angeles",
- "title": "Dedalo Metallic Gold on Coral | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T35146_590fad8f-4251-42af-9161-fc642a26faad.jpg?v=1733893464",
- "tags": [
- "Architectural",
- "Art Deco",
- "coral",
- "Geometric",
- "gold",
- "Graphic Resource",
- "Metallic Gold on Coral",
- "Pattern",
- "T35146",
- "Thibaut",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71758-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_vrl001-jpg",
- "handle": "wolfgordonwallcovering_dwwg_vrl001-jpg",
- "title": "VRL001 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_VR008.jpg?v=1733872018",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Solid",
- "Tan",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_vrl001-jpg"
- },
- {
- "sku": "barnard-type-ii-vinyl-wallcovering-xjp-47227",
- "handle": "barnard-type-ii-vinyl-wallcovering-xjp-47227",
- "title": "Barnard Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xjp-47227-sample-barnard-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775702520",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Beige",
- "Light Brown",
- "Linen",
- "Linen Texture",
- "Living Room",
- "Minimalist",
- "Serene",
- "Solid",
- "Taupe",
- "Textured",
- "Traditional",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Look",
- "Yellow"
- ],
- "max_price": 52.78,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/barnard-type-ii-vinyl-wallcovering-xjp-47227"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_mru-3302_8-jpg",
- "handle": "wolfgordonwallcovering_dwwg_mru-3302_8-jpg",
- "title": "Marlu - Denim | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/mru-3302_8.jpg?v=1762301836",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Denim",
- "Geometric",
- "Marlu",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_mru-3302_8-jpg"
- },
- {
- "sku": "colby-lavender-love-spots-wallpaper-cca-83003",
- "handle": "colby-lavender-love-spots-wallpaper-cca-83003",
- "title": "Colby Lavender Love Spots Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/3af9e47b886dbf49d740ae9158e8713b.jpg?v=1572309965",
- "tags": [
- "Architectural",
- "Beige",
- "Blue",
- "Commercial",
- "Discontinued",
- "Dots",
- "Easy Walls",
- "Geometric",
- "LA Walls",
- "Lavender",
- "Paper",
- "Polka Dots",
- "Prepasted",
- "Purple",
- "Series: Brewster",
- "Strippable",
- "Teal",
- "Wallcovering",
- "Washable",
- "Whimsical",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/colby-lavender-love-spots-wallpaper-cca-83003"
- },
- {
- "sku": "eur-80435-ncw4492-designer-wallcoverings-los-angeles",
- "handle": "eur-80435-ncw4492-designer-wallcoverings-los-angeles",
- "title": "Sackville Stripe 05 - Blue Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513507954739.jpg?v=1775524076",
- "tags": [
- "Architectural",
- "Bathroom",
- "Bedroom",
- "Beige",
- "Blue",
- "Class A Fire Rated",
- "Coastal",
- "Commercial",
- "Contemporary",
- "Cornflower Blue",
- "Denim",
- "Gray",
- "Hallway",
- "Light Beige",
- "Nautical",
- "NCW4492",
- "NCW4492-05",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Paper",
- "Sackville Stripe",
- "Serene",
- "SIGNATURE COLLECTION",
- "Steel",
- "Stripe",
- "Textured",
- "Traditional",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80435-ncw4492-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "seine-marne-durable-vinyl-dur-72133",
- "handle": "seine-marne-durable-vinyl-dur-72133",
- "title": "Raked Faux Suede - Beige Commercial Wallcovering | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72133-sample-clean.jpg?v=1774484510",
- "tags": [
- "Architectural",
- "Basketweave",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Geometric",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Lattice",
- "Light Beige",
- "Light Brown",
- "Living Room",
- "Serene",
- "Taupe",
- "Textured",
- "Traditional",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/seine-marne-durable-vinyl-dur-72133"
- },
- {
- "sku": "dwc-1001628",
- "handle": "dwc-1001628",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693309358131.jpg?v=1775521217",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Black",
- "Class A Fire Rated",
- "Commercial",
- "Green",
- "NCW4350-04",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paisley",
- "Paper",
- "Traditional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001628"
- },
- {
- "sku": "limoges-durable-vinyl-dur-72018",
- "handle": "limoges-durable-vinyl-dur-72018",
- "title": "Wool Look - Faux Suede Commercial Wallcovering | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72018-sample-clean.jpg?v=1774483995",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Durable Type 2 Vinyl",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Gray",
- "Light Grey",
- "Limoges Durable Vinyl",
- "Living Room",
- "Off-white",
- "Organic",
- "Organic Modern",
- "Rustic",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/limoges-durable-vinyl-dur-72018"
- },
- {
- "sku": "caron-tabac-wallpaper-xa6-66445",
- "handle": "caron-tabac-wallpaper-xa6-66445",
- "title": "Caron Tabac Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/7a8582dab8c5beb8e851f2dc93ec486e.jpg?v=1775121416",
- "tags": [
- "Acoustical",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Caron Tabac Wallcovering",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Light Beige",
- "Living Room",
- "Minimalist",
- "Off-white",
- "Office",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "polyester",
- "Scandinavian",
- "Spa",
- "Textural",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 43.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/caron-tabac-wallpaper-xa6-66445"
- },
- {
- "sku": "ikeley-type-ii-vinyl-wallcovering-xls-47819",
- "handle": "ikeley-type-ii-vinyl-wallcovering-xls-47819",
- "title": "Ikeley Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xls-47819-sample-ikeley-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775719348",
- "tags": [
- "Architectural",
- "Art Deco",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Dining Room",
- "Fretwork",
- "Geometric",
- "Glamorous",
- "Hollywood Wallcoverings",
- "Ikeley Type 2 Vinyl Wallcovering",
- "Living Room",
- "Modern",
- "Sophisticated",
- "Tan",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ikeley-type-ii-vinyl-wallcovering-xls-47819"
- },
- {
- "sku": "dwc-1001634",
- "handle": "dwc-1001634",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693309751347.jpg?v=1775521255",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Floral",
- "Green",
- "NCW4351-04",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paisley",
- "Paper",
- "Traditional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001634"
- },
- {
- "sku": "la-voltere-durable-vinyl-dur-72301",
- "handle": "la-voltere-durable-vinyl-dur-72301",
- "title": "la Voltere Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72301-sample-clean.jpg?v=1774485106",
- "tags": [
- "Architectural",
- "Bedroom",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Charcoal",
- "Dark Gray",
- "Durable Type 2 Vinyl",
- "Gray",
- "Grey",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Minimalist",
- "Solid",
- "Sophisticated",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/la-voltere-durable-vinyl-dur-72301"
- },
- {
- "sku": "dwc-1001622",
- "handle": "dwc-1001622",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693309063219.jpg?v=1775521178",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Fretwork",
- "Geometric",
- "Gray",
- "Light Gray",
- "NCW4308-02",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paper",
- "Silver",
- "Traditional",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001622"
- },
- {
- "sku": "belfast-aqua-galop-stripe-wallpaper-cca-83131",
- "handle": "belfast-aqua-galop-stripe-wallpaper-cca-83131",
- "title": "Belfast Aqua Galop Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ca0e7c3e0cf115a0aa19cc40ba20bb13.jpg?v=1572309970",
- "tags": [
- "Architectural",
- "Blue",
- "Coastal",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Green",
- "LA Walls",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/belfast-aqua-galop-stripe-wallpaper-cca-83131"
- },
- {
- "sku": "peter-s-plastered-walls-ppw-2872",
- "handle": "peter-s-plastered-walls-ppw-2872",
- "title": "Peter's Plastered | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ppw-2872-sample-peter-s-plastered-hollywood-wallcoverings.jpg?v=1775729054",
- "tags": [
- "Architectural",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Red",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 40.54,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/peter-s-plastered-walls-ppw-2872"
- },
- {
- "sku": "doral-faux-silk-durable-walls-xwc-53231",
- "handle": "doral-faux-silk-durable-walls-xwc-53231",
- "title": "Doral Faux Silk Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwc-53231-sample-doral-faux-silk-durable-hollywood-wallcoverings.jpg?v=1775710347",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Faux",
- "Faux Finish",
- "Grasscloth",
- "Grasscloth Weave",
- "Gray",
- "Green",
- "Grey",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Minimalist",
- "Office",
- "Organic Modern",
- "Sage",
- "Serene",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/doral-faux-silk-durable-walls-xwc-53231"
- },
- {
- "sku": "contempo-diamond-vinyl-dwx-58024",
- "handle": "contempo-diamond-vinyl-dwx-58024",
- "title": "Contempo Diamond Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DWX-58024-sample-clean_209db010-69fb-4a70-b9bf-65623c51da80.jpg?v=1774479263",
- "tags": [
- "54\" Width",
- "Architectural",
- "Basketweave",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Cream",
- "Dark Brown",
- "Diamond",
- "Durable",
- "Embossed Texture",
- "Geometric",
- "Gray",
- "Hallway",
- "High-traffic",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Living Room",
- "Modern",
- "Neutral",
- "Rustic",
- "Taupe",
- "Textured",
- "Traditional",
- "Tropicana Durable Vinyls",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "White",
- "Wide Width"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/contempo-diamond-vinyl-dwx-58024"
- },
- {
- "sku": "dwss-72696",
- "handle": "dwss-72696",
- "title": "Lisabet sandstone Sample Wallcovering | Sandberg",
- "vendor": "Sandberg",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/812-21_image1_fedda062-cfb7-4123-8a5f-3f177b99f674.jpg?v=1646105107",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Geometric",
- "Gray",
- "Lattice",
- "Light Gray",
- "Lisabet",
- "Lisabet sandstone Sample",
- "P812-21",
- "Paper",
- "Pattern",
- "Sandberg",
- "SANDSTONE",
- "Traditional",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwss-72696"
- },
- {
- "sku": "saint-helene-durable-vinyl-dur-72043",
- "handle": "saint-helene-durable-vinyl-dur-72043",
- "title": "Saint Helene Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72043-sample-clean.jpg?v=1774484104",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Grasscloth",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Minimalist",
- "Off-white",
- "Organic Modern",
- "Serene",
- "Stripe",
- "Tan",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/saint-helene-durable-vinyl-dur-72043"
- },
- {
- "sku": "dwss-72541",
- "handle": "dwss-72541",
- "title": "Sten light pink Sample Wallcovering | Sandberg",
- "vendor": "Sandberg",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/583-03_image1_bd47a72a-dc1b-47a4-9937-35ea24292bfe.jpg?v=1646104595",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Cyan",
- "LIGHT PINK",
- "P583-03",
- "Paper",
- "Sandberg",
- "Solid",
- "Sten",
- "Sten light pink Sample",
- "Textured",
- "Traditional",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwss-72541"
- },
- {
- "sku": "decorator-grasscloth-vol-2-by-phillipe-romano-488-444",
- "handle": "decorator-grasscloth-vol-2-by-phillipe-romano-488-444",
- "title": "Decorator Grasscloth Vol. 2 | Phillipe Romano",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/52b3ace36d45ee3034fed930887c5356_916f6881-3771-4ed3-a0de-dc9bde3f576e.jpg?v=1745458236",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "ASTM E84 Class A",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Decorator Grasscloth Vol. 2",
- "Grasscloth",
- "Grasscloth Texture",
- "Natural",
- "Natural Wallcovering",
- "Naturals",
- "Off-white",
- "Phillipe Romano",
- "Phillipe Romano Naturals",
- "Stripe",
- "Textured",
- "Wallcovering"
- ],
- "max_price": 21.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/decorator-grasscloth-vol-2-by-phillipe-romano-488-444"
- },
- {
- "sku": "benedict-canyon-sisal-hlw-73003",
- "handle": "benedict-canyon-sisal-hlw-73003",
- "title": "Benedict Canyon Sisal | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73003-sample-clean.jpg?v=1774482988",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Coastal Farmhouse",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Hollywood Wallcoverings",
- "Ivory",
- "Living Room",
- "Natural",
- "Natural Texture",
- "Naturally Glamorous",
- "Organic Modern",
- "Serene",
- "Sisal",
- "Stripe",
- "Textured",
- "Traditional",
- "Transitional",
- "Wallcovering",
- "White",
- "Woven",
- "Yellow"
- ],
- "max_price": 67.78,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/benedict-canyon-sisal-hlw-73003"
- },
- {
- "sku": "pleated-perfect-paradise-ppp-2622",
- "handle": "pleated-perfect-paradise-ppp-2622",
- "title": "Pleated Perfect Paradise | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ppp-2622-sample-pleated-perfect-paradise-hollywood-wallcoverings.jpg?v=1775729166",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Cream",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Pleated Perfect Paradise",
- "Stripe",
- "Tan",
- "Textured",
- "Transitional",
- "vinyl",
- "Wallcovering",
- "White",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 35.66,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/pleated-perfect-paradise-ppp-2622"
- },
- {
- "sku": "eur-80325-ncw4304-designer-wallcoverings-los-angeles",
- "handle": "eur-80325-ncw4304-designer-wallcoverings-los-angeles",
- "title": "Marguerite Damask 06 - Blue Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513504251955.jpg?v=1775523390",
- "tags": [
- "Alabaster",
- "Architectural",
- "Bedroom",
- "Beige",
- "Blue",
- "Botanical",
- "Chinoiserie",
- "Class A Fire Rated",
- "Cloud",
- "Commercial",
- "Contemporary",
- "Cornflower Blue",
- "Damask",
- "Denim",
- "Dining Room",
- "Floral",
- "Frost",
- "Grandmillennial",
- "LES REVES",
- "Living Room",
- "Marguerite Damask",
- "Navy Blue",
- "NCW4304",
- "NCW4304-06",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Off-white",
- "Paper",
- "Periwinkle",
- "Powder",
- "Serene",
- "Smoke",
- "Steel",
- "Storm",
- "Traditional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80325-ncw4304-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwss-72595",
- "handle": "dwss-72595",
- "title": "Marieberg blue sample Wallcovering | Sandberg",
- "vendor": "Sandberg",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/647-04FS_image1_84b3538e-d9f5-44bd-b33d-f9ef09ae4b7a.jpg?v=1646104771",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Blue",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Floral",
- "Light Blue",
- "Marieberg",
- "Marieberg blue sample",
- "P647-04FS",
- "Paper",
- "Sandberg",
- "Traditional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwss-72595"
- },
- {
- "sku": "dwtt-71196-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71196-designer-wallcoverings-los-angeles",
- "title": "Alicia Blue | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/T89123.jpg?v=1762227360",
- "tags": [
- "Architectural",
- "blue",
- "Damask",
- "Damask Resource 4",
- "Pattern",
- "T89123",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71196-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "biejing-embossed-walls-bew-9498",
- "handle": "biejing-embossed-walls-bew-9498",
- "title": "Biejing Embossed | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/bew-9498-sample-biejing-embossed-hollywood-wallcoverings.jpg?v=1775705116",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial - Cleanable",
- "Commercial Wallcovering",
- "Contemporary",
- "Elegant Vinyls Vol. 1",
- "Embossed",
- "Embossed Texture",
- "Geometric",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Living Room",
- "Modern",
- "Office",
- "Sophisticated",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 39.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/biejing-embossed-walls-bew-9498"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_lyr-3372_8-jpg",
- "handle": "wolfgordonwallcovering_dwwg_lyr-3372_8-jpg",
- "title": "Lyra - Tangerine | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/lyr-3372_8.jpg?v=1762299687",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Lyra",
- "Orange",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_lyr-3372_8-jpg"
- },
- {
- "sku": "capri-light-pink-floral-scroll-wallpaper-cca-83050",
- "handle": "capri-light-pink-floral-scroll-wallpaper-cca-83050",
- "title": "Capri Light Pink Floral Scroll Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/cf5ffdcfacb4e46fef880076786e8379.jpg?v=1572309967",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Floral",
- "Flowers",
- "Gray",
- "LA Walls",
- "Light Pink",
- "Pink",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vine",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 64.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/capri-light-pink-floral-scroll-wallpaper-cca-83050"
- },
- {
- "sku": "dwtt-72386-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72386-designer-wallcoverings-los-angeles",
- "title": "Klein Trellis Cream | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T6066.jpg?v=1733892249",
- "tags": [
- "Anniversary",
- "Architectural",
- "brown",
- "cream",
- "green",
- "olive green",
- "Paisley",
- "Pattern",
- "T6066",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72386-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "faux-leaf-squares-fls-2505",
- "handle": "faux-leaf-squares-fls-2505",
- "title": "Faux Leaf Squares Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fls-2505-sample-faux-leaf-squares-wallpaper-hollywood-wallcoverings.jpg?v=1775711872",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Commercial",
- "Contemporary",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Light Gray",
- "Minimalist",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 34.55,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-leaf-squares-fls-2505"
- },
- {
- "sku": "aubrey-celery-crystal-medallion-texture-wallpaper-cca-83244",
- "handle": "aubrey-celery-crystal-medallion-texture-wallpaper-cca-83244",
- "title": "Aubrey Celery Crystal Medallion Texture Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/d5dca5883a73a0ac7f6c85ac177dca2c.jpg?v=1572309981",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Damask",
- "Discontinued",
- "Easy Walls",
- "Gray",
- "LA Walls",
- "Medallion",
- "Modern",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/aubrey-celery-crystal-medallion-texture-wallpaper-cca-83244"
- },
- {
- "sku": "heritage-black-gold-wallcovering-versace",
- "handle": "heritage-black-gold-wallcovering-versace",
- "title": "Heritage Black Gold Wallcovering | Versace",
- "vendor": "Versace",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/f3a0ffdb8cd553d94046d97f087b0f2c.jpg?v=1773710458",
- "tags": [
- "[Object Object]",
- "A.S. Création",
- "AI-Analyzed-v2",
- "Architectural",
- "Black",
- "Black Gold",
- "Class A Fire Rated",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Dining Room",
- "display_variant",
- "Geometric",
- "Haute Couture",
- "Heritage",
- "Heritage Black Gold Wallcovering",
- "Hotel Lobby",
- "Italian",
- "Living Room",
- "Luxe",
- "Luxurious",
- "Luxury",
- "Maximalist",
- "Paste the wall",
- "Traditional",
- "Trending Wallpaper Collection 2026",
- "Versace",
- "Versace VI",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 407.24,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/heritage-black-gold-wallcovering-versace"
- },
- {
- "sku": "crushed-costoluto-vinyl-dwx-58012",
- "handle": "crushed-costoluto-vinyl-dwx-58012",
- "title": "Crushed Costoluto Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58012-sample-crushed-costoluto-vinyl-hollywood-wallcoverings.jpg?v=1775709706",
- "tags": [
- "54\" Width",
- "Abstract",
- "Architectural",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Crushed",
- "Dark Green",
- "Durable",
- "Green",
- "hollywood",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Organic",
- "Texture",
- "Textured",
- "Type 2 Vinyl",
- "Unique",
- "Vinyl",
- "Wallcovering",
- "Wide Width"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/crushed-costoluto-vinyl-dwx-58012"
- },
- {
- "sku": "hilo-highway-diamond-grass-hlw-73131",
- "handle": "hilo-highway-diamond-grass-hlw-73131",
- "title": "Hilo Highway - Diamond Grass | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73131-sample-clean.jpg?v=1774483626",
- "tags": [
- "Architectural",
- "Bedroom",
- "Color: Green",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Olive Green",
- "Grasscloth",
- "Grasscloth Weave",
- "Green",
- "Hallway",
- "Hollywood Wallcoverings",
- "Khaki",
- "Living Room",
- "Natural",
- "Naturally Glamorous",
- "Olive",
- "Organic",
- "Rustic",
- "Textured",
- "Traditional",
- "Tropical",
- "Wallcovering",
- "Woven"
- ],
- "max_price": 89.52,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hilo-highway-diamond-grass-hlw-73131"
- },
- {
- "sku": "dwtt-72390-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72390-designer-wallcoverings-los-angeles",
- "title": "Seraphina Pearl on Aqua | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/room-living_room-t41147.jpg?v=1775151883",
- "tags": [
- "Anniversary",
- "Architectural",
- "beige",
- "blue",
- "Damask",
- "Pattern",
- "Pearl on Aqua",
- "T6025",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72390-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_sm10244-jpg",
- "handle": "wolfgordonwallcovering_dwwg_sm10244-jpg",
- "title": "SM10244 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_SM10243.jpg?v=1733872472",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Gray",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_sm10244-jpg"
- },
- {
- "sku": "dwtt-71126-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71126-designer-wallcoverings-los-angeles",
- "title": "Inyo Wood Navy | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T4019_60b179cd-8823-400d-8aa9-49ba1c1d66a6.jpg?v=1733894656",
- "tags": [
- "abstract",
- "Architectural",
- "contemporary",
- "gold",
- "Navy",
- "navy blue",
- "Pattern",
- "Surface Resource",
- "T4019",
- "texture",
- "Thibaut",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71126-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "eur-80402-ncw4393-designer-wallcoverings-los-angeles",
- "handle": "eur-80402-ncw4393-designer-wallcoverings-los-angeles",
- "title": "Benmore 03 - Blue Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513506775091.jpg?v=1775523856",
- "tags": [
- "Architectural",
- "ASHDOWN",
- "Bathroom",
- "Bedroom",
- "Benmore",
- "Biophilic",
- "Blue",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Green",
- "Leaf",
- "Lightblue",
- "Lightgreen",
- "Living Room",
- "NCW4393",
- "NCW4393-03",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Non-woven",
- "Organic Modern",
- "Pale Aqua",
- "Paper",
- "Sage Green",
- "Seafoam Green",
- "Serene",
- "Tropical",
- "Tropical Leaf",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80402-ncw4393-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "faux-leaf-squares-fls-2747",
- "handle": "faux-leaf-squares-fls-2747",
- "title": "Faux Leaf Squares Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fls-2747-sample-faux-leaf-squares-wallpaper-hollywood-wallcoverings.jpg?v=1775711991",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Commercial",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 31.92,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-leaf-squares-fls-2747"
- },
- {
- "sku": "saint-brittany-durable-vinyl-dur-72243",
- "handle": "saint-brittany-durable-vinyl-dur-72243",
- "title": "Saint Brittany Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72243-sample-clean.jpg?v=1774484886",
- "tags": [
- "Architectural",
- "Bedroom",
- "Brown",
- "Class A Fire Rated",
- "Color: Pink",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Dusty Rose",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Brown",
- "Living Room",
- "Minimalist",
- "Pink",
- "Serene",
- "Solid",
- "Taupe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/saint-brittany-durable-vinyl-dur-72243"
- },
- {
- "sku": "dwss-72658",
- "handle": "dwss-72658",
- "title": "Bok yellow Sample Wallcovering | Sandberg",
- "vendor": "Sandberg",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/710-22_image1_a133b380-a8a2-42c3-a2ee-409c6785a392.jpg?v=1646104972",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Bok",
- "Bok yellow Sample",
- "Class A Fire Rated",
- "Commercial",
- "Fretwork",
- "Geometric",
- "Light Yellow",
- "P710-22",
- "Paper",
- "Pattern",
- "Sandberg",
- "Traditional",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwss-72658"
- },
- {
- "sku": "versace-golden-floral-wallcovering-versace",
- "handle": "versace-golden-floral-wallcovering-versace",
- "title": "Versace Golden Floral Wallcovering | Versace",
- "vendor": "Versace",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/4f93e2069725e2240d20aba952f5b9a5.jpg?v=1773706406",
- "tags": [
- "A.S. Création",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Botanical",
- "Brown",
- "Class A Fire Rated",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Cottagecore",
- "Dining Room",
- "display_variant",
- "English Country",
- "Floral",
- "Gold",
- "Golden Yellow",
- "Goldenrod",
- "Grandmillennial",
- "Italian",
- "Living Room",
- "Luxury",
- "Mustard",
- "Mustard Yellow",
- "Paper",
- "Paste the wall",
- "Traditional",
- "Trending Wallcovering Collection 2026",
- "Trending Wallpaper Collection 2026",
- "Versace",
- "Versace Golden Floral",
- "Versace Golden Floral Wallcovering",
- "Versace Home",
- "Versace VI",
- "Vine",
- "Wallcovering",
- "Warm",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/versace-golden-floral-wallcovering-versace"
- },
- {
- "sku": "puna-drive-natural-grassweave-hlw-73109",
- "handle": "puna-drive-natural-grassweave-hlw-73109",
- "title": "Puna Drive - Natural Grassweave | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73109-sample-clean.jpg?v=1774483485",
- "tags": [
- "Architectural",
- "Bedroom",
- "Brown",
- "Coastal",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Hollywood Wallcoverings",
- "Lattice",
- "Living Room",
- "Natural",
- "Naturally Glamorous",
- "Organic",
- "Organic Modern",
- "Rustic",
- "Textured",
- "Wallcovering",
- "Wheat",
- "Woven"
- ],
- "max_price": 41.7,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/puna-drive-natural-grassweave-hlw-73109"
- },
- {
- "sku": "jonesport-celery-cabin-stripe-wallpaper-cca-83176",
- "handle": "jonesport-celery-cabin-stripe-wallpaper-cca-83176",
- "title": "Jonesport Celery Cabin Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/3abb2aef9d440e9e86ab73ca6be4d0e6.jpg?v=1572309971",
- "tags": [
- "Architectural",
- "Blue",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Green",
- "LA Walls",
- "Multi",
- "Orange",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/jonesport-celery-cabin-stripe-wallpaper-cca-83176"
- },
- {
- "sku": "mr-diorio-wallpaper-xa8-66465",
- "handle": "mr-diorio-wallpaper-xa8-66465",
- "title": "Mr. Diorio Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ce2de2f0129839a4415f480362863233.jpg?v=1775124479",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Hotel Lobby",
- "Light Beige",
- "Living Room",
- "Mr. Diorio Wallcovering",
- "Off-white",
- "Office",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Scandinavian",
- "Textural",
- "Textured",
- "Traditional",
- "Transitional",
- "vinyl",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 35.92,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/mr-diorio-wallpaper-xa8-66465"
- },
- {
- "sku": "baroque-ornament-cream-silver-wallcovering-versace",
- "handle": "baroque-ornament-cream-silver-wallcovering-versace",
- "title": "Baroque Ornament Cream, Silver Wallcovering | Versace",
- "vendor": "Versace",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/6ae9f17e781e6e9f49a83dc3528248e4.jpg?v=1773706284",
- "tags": [
- "A.S. Création",
- "AI-Analyzed-v2",
- "Architectural",
- "Baroque",
- "Baroque Ornament",
- "Baroque Ornament Cream",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Cream",
- "Damask",
- "Dining Room",
- "display_variant",
- "Floral",
- "Grandmillennial",
- "Italian",
- "Light Beige",
- "Living Room",
- "Luxury",
- "Off-white",
- "Paste the wall",
- "Silver Wallcovering",
- "Sophisticated",
- "Traditional",
- "Trending Wallcovering Collection 2026",
- "Trending Wallpaper Collection 2026",
- "Versace",
- "Versace Home",
- "Versace VI",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 325.79,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/baroque-ornament-cream-silver-wallcovering-versace"
- },
- {
- "sku": "contempo-diamond-vinyl-dwx-58018",
- "handle": "contempo-diamond-vinyl-dwx-58018",
- "title": "Contempo Diamond Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58018-sample-contempo-diamond-vinyl-hollywood-wallcoverings.jpg?v=1775709054",
- "tags": [
- "54\" Width",
- "Architectural",
- "Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Diamond",
- "Geometric",
- "hollywood",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Neutral",
- "Olive Green",
- "Textured",
- "Transitional",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wide Width"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/contempo-diamond-vinyl-dwx-58018"
- },
- {
- "sku": "dwc-1001666",
- "handle": "dwc-1001666",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693311225907.jpg?v=1775521462",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Floral",
- "NCW4390-05",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paper",
- "Stripe",
- "Traditional",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001666"
- },
- {
- "sku": "dwtt-71421-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71421-designer-wallcoverings-los-angeles",
- "title": "Ogden Metallic Silver | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T14260_e6b40042-1601-4e86-b688-a1343e560dc9.jpg?v=1733894102",
- "tags": [
- "abstract",
- "Architectural",
- "brown",
- "contemporary",
- "gray",
- "Imperial Garden",
- "Metallic Silver",
- "Pattern",
- "silver",
- "T14260",
- "Thibaut",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71421-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "zoe-snow-coco-texture-wallpaper-cca-83292",
- "handle": "zoe-snow-coco-texture-wallpaper-cca-83292",
- "title": "Zoe Snow Coco Texture Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/67ed6df3aa596bac95c571eaf2a622a3.jpg?v=1572309983",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Cream",
- "Discontinued",
- "Easy Walls",
- "Faux",
- "LA Walls",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/zoe-snow-coco-texture-wallpaper-cca-83292"
- },
- {
- "sku": "cubism-drive-hlw-73049",
- "handle": "cubism-drive-hlw-73049",
- "title": "Cubism Drive | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73049-sample-clean.jpg?v=1774483215",
- "tags": [
- "Architectural",
- "Art Deco",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Green",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Copper",
- "Dark Green",
- "Forest Green",
- "Geometric",
- "Green",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Modern",
- "Natural",
- "Naturally Glamorous",
- "Orange",
- "Sophisticated",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 159.27,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/cubism-drive-hlw-73049"
- },
- {
- "sku": "vaticano-durable-vinyl-dur-72377",
- "handle": "vaticano-durable-vinyl-dur-72377",
- "title": "Vaticano Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72377-sample-clean.jpg?v=1774485271",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Art Deco",
- "Bedroom",
- "Black",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Black",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Fretwork",
- "Geometric",
- "Glamorous",
- "Gray",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Modern",
- "Silver",
- "Sophisticated",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vaticano Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/vaticano-durable-vinyl-dur-72377"
- },
- {
- "sku": "palazzo-no-12-blush-wallcovering-versace-1",
- "handle": "palazzo-no-12-blush-wallcovering-versace-1",
- "title": "Palazzo No 12 Blush Wallcovering | Versace",
- "vendor": "Versace",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/522e5849c0f09262a5c7745fa4648102_be2b85d4-6ac8-47e0-a319-095d36ad9c6f.jpg?v=1773710494",
- "tags": [
- "[Object Object]",
- "A.S. Création",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Blush",
- "Charcoal Gray",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Gray",
- "display_variant",
- "Dusty Rose",
- "Italian",
- "Light Beige",
- "Living Room",
- "Luxury",
- "Minimalist",
- "Needs-Image",
- "Office",
- "Organic Modern",
- "Palazzo No 12",
- "Palazzo No 12 Blush Wallcovering",
- "Pale Peach",
- "Paper",
- "Paste the wall",
- "Serene",
- "Solid",
- "Textured",
- "Trending Wallpaper Collection 2026",
- "Versace",
- "Versace VI",
- "Wallcovering"
- ],
- "max_price": 289.59,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/palazzo-no-12-blush-wallcovering-versace-1"
- },
- {
- "sku": "dwtt-71996-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71996-designer-wallcoverings-los-angeles",
- "title": "Lyndon Damask Grey | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T10030_5f3c3959-8af6-4545-8f6f-6401a25a40eb.jpg?v=1733892996",
- "tags": [
- "Architectural",
- "beige",
- "cream",
- "Damask",
- "Grey",
- "Neutral Resource",
- "Pattern",
- "T10030",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71996-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "eur-80196-ncw4184-designer-wallcoverings-los-angeles",
- "handle": "eur-80196-ncw4184-designer-wallcoverings-los-angeles",
- "title": "Suzhou 03 - Off-White Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513499205683.jpg?v=1775522700",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Botanical",
- "CATHAY",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Cottagecore",
- "Dining Room",
- "English Country",
- "Floral",
- "Grandmillennial",
- "Gray",
- "Green",
- "Living Room",
- "Multi",
- "NCW4184",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Olive Green",
- "Pale Pink",
- "Paper",
- "Pink",
- "Rose Red",
- "Seafoam Green",
- "Serene",
- "Suzhou",
- "Traditional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80196-ncw4184-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_hug-3313_8-jpg",
- "handle": "wolfgordonwallcovering_dwwg_hug-3313_8-jpg",
- "title": "Hugo - Jet | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/hug-3313_8.jpg?v=1762297238",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Gray",
- "Herringbone",
- "Hugo",
- "Silver",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_hug-3313_8-jpg"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_qnt-5547-jpg",
- "handle": "wolfgordonwallcovering_dwwg_qnt-5547-jpg",
- "title": "Quinault - Petrichor | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/QNT-5547.jpg?v=1762303521",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Petrichor",
- "Quinault",
- "RAMPART®",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_qnt-5547-jpg"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_obt-9465_8-jpg",
- "handle": "wolfgordonwallcovering_dwwg_obt-9465_8-jpg",
- "title": "Orbit - Earl Gray | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/obt-9465_8.jpg?v=1762302746",
- "tags": [
- "100% Polycarbonate",
- "Architectural",
- "Brown",
- "Class A Fire Rated",
- "Coated Upholstery",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Earl Gray",
- "Geometric",
- "Orbit",
- "Polycarbonate",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_obt-9465_8-jpg"
- },
- {
- "sku": "kenley-taupe-polka-dots-wallpaper-wallpaper-cca-82875",
- "handle": "kenley-taupe-polka-dots-wallpaper-wallpaper-cca-82875",
- "title": "Kenley Taupe Polka Dots Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/13e55af7272e8e4a3c06f1931df00179.jpg?v=1572309958",
- "tags": [
- "Architectural",
- "Commercial",
- "Discontinued",
- "Dots",
- "Easy Walls",
- "LA Walls",
- "Light Blue",
- "Paper",
- "Polka Dots",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Wallcovering",
- "Washable",
- "Whimsical",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/kenley-taupe-polka-dots-wallpaper-wallpaper-cca-82875"
- },
- {
- "sku": "kia-island-palm-shadow-wallpaper-trf-56860",
- "handle": "kia-island-palm-shadow-wallpaper-trf-56860",
- "title": "Kia Island Palm Shadow | Jeffrey Stevens",
- "vendor": "Jeffrey Stevens",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ab0187666f11ab54b914c945ecb48a19.jpg?v=1750789730",
- "tags": [
- "Architectural",
- "Beige",
- "Botanical",
- "Commercial",
- "Commercial Wallcovering",
- "Cream",
- "Discontinued",
- "floral",
- "flowers",
- "grasscloth",
- "Grasscloth Texture",
- "Grasscloth Wallcovering",
- "Jeffrey Stevens",
- "jungle",
- "large scale",
- "leaf",
- "Modern",
- "Modern Tropics",
- "Natural",
- "Non-Woven",
- "palm",
- "Prepasted - Washable - Strippable",
- "rain forest",
- "Series: York",
- "Tan",
- "Textured",
- "Traditional",
- "trees",
- "tropical",
- "USA",
- "Wallcovering",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 60.53,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/kia-island-palm-shadow-wallpaper-trf-56860"
- },
- {
- "sku": "ludlow-chocolate-paisley-wallpaper-cca-82917",
- "handle": "ludlow-chocolate-paisley-wallpaper-cca-82917",
- "title": "Ludlow Chocolate Paisley Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/29e030a2513e6a883c38c2fc1930f688.jpg?v=1572309962",
- "tags": [
- "Architectural",
- "Brown",
- "Chocolate",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Masculine",
- "Paisley",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ludlow-chocolate-paisley-wallpaper-cca-82917"
- },
- {
- "sku": "verwood-type-ii-vinyl-wallcovering-xqr-48588",
- "handle": "verwood-type-ii-vinyl-wallcovering-xqr-48588",
- "title": "Verwood Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/vanadis-sif.jpg?v=1777480231",
- "tags": [
- "20 oz",
- "41 Inch Width",
- "41\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Rustic",
- "Sand",
- "Stucco",
- "Tan",
- "Textured",
- "Traditional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Warranty Available",
- "Weight: 20 oz",
- "Width: 41\"",
- "Wood",
- "Wood Look"
- ],
- "max_price": 12.6,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/verwood-type-ii-vinyl-wallcovering-xqr-48588"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_gsg9-5395-jpg",
- "handle": "wolfgordonwallcovering_dwwg_gsg9-5395-jpg",
- "title": "Glasgow - Brandy | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/gsg9-5395.jpg?v=1762297027",
- "tags": [
- "100% Vinyl",
- "Abstract",
- "Architectural",
- "Black",
- "Brandy",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Glasgow",
- "Gray",
- "Red",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_gsg9-5395-jpg"
- },
- {
- "sku": "eur-80210-ncw4186-designer-wallcoverings-los-angeles",
- "handle": "eur-80210-ncw4186-designer-wallcoverings-los-angeles",
- "title": "Khitan 07 | Nina Campbell Europe",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513499992115.jpg?v=1775522773",
- "tags": [
- "Architectural",
- "CATHAY",
- "Commercial",
- "Damask",
- "Embossed",
- "Khitan",
- "NCW4186",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Paisley",
- "Pale Blue",
- "Paper",
- "Traditional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80210-ncw4186-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "amity-bear-bleeding-heart-texture-wallpaper-cca-83290",
- "handle": "amity-bear-bleeding-heart-texture-wallpaper-cca-83290",
- "title": "Amity Bear Bleeding Heart Texture Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/3fbec77b09581fbe0be068de836c568d.jpg?v=1572309983",
- "tags": [
- "Architectural",
- "Beige",
- "Brewster-CCA-Discontinued-2026-04",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Faux",
- "LA Walls",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Tan",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/amity-bear-bleeding-heart-texture-wallpaper-cca-83290"
- },
- {
- "sku": "dwtt-71635-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71635-designer-wallcoverings-los-angeles",
- "title": "Maze Grasscloth Cream | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T41197_06f8c293-718c-4f59-951e-a1784da43605.jpg?v=1733893682",
- "tags": [
- "Architectural",
- "cream",
- "Geometric",
- "Grasscloth Resource 3",
- "off-white",
- "Pattern",
- "T41197",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71635-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "amity-snow-bleeding-heart-texture-wallpaper-cca-83291",
- "handle": "amity-snow-bleeding-heart-texture-wallpaper-cca-83291",
- "title": "Amity Snow Bleeding Heart Texture Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/dc1830f953e1c0ee99259a0444eed422.jpg?v=1572309983",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Light Gray",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/amity-snow-bleeding-heart-texture-wallpaper-cca-83291"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_em10269b-jpg",
- "handle": "wolfgordonwallcovering_dwwg_em10269b-jpg",
- "title": "EM10269B | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_em10268r.jpg?v=1733873315",
- "tags": [
- "AI-Analyzed-v2",
- "Animal/Insects",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "EM10269B",
- "Gray",
- "Light Gray",
- "Minimalist",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_em10269b-jpg"
- },
- {
- "sku": "eur-80144-ncw4150-designer-wallcoverings-los-angeles",
- "handle": "eur-80144-ncw4150-designer-wallcoverings-los-angeles",
- "title": "Rosslyn 02 - Warm Gray Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513497239603.jpg?v=1775522370",
- "tags": [
- "Architectural",
- "Beige",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Floral",
- "Green",
- "Multi",
- "NCW4150",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Paper",
- "Red",
- "Rosslyn",
- "Traditional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80144-ncw4150-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "verwood-type-ii-vinyl-wallcovering-xqr-48580",
- "handle": "verwood-type-ii-vinyl-wallcovering-xqr-48580",
- "title": "Verwood Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/XQR-48580-sample-clean.jpg?v=1774480659",
- "tags": [
- "20 oz",
- "41 Inch Width",
- "41\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Black",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Concrete",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Dark Grey",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Gray",
- "Grey",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Industrial",
- "Living Room",
- "Moody",
- "Office",
- "Rustic",
- "Slate Grey",
- "Solid",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Width: 41\"",
- "Wood",
- "Wood Look"
- ],
- "max_price": 12.6,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/verwood-type-ii-vinyl-wallcovering-xqr-48580"
- },
- {
- "sku": "dwtt-71307-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71307-designer-wallcoverings-los-angeles",
- "title": "Tiger Flock Light Grey | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T83063_c9148d70-f238-4ecc-b4e2-9159b120af72.jpg?v=1733894249",
- "tags": [
- "Abstract",
- "Architectural",
- "Contemporary",
- "gray",
- "light gray",
- "Light Grey",
- "Natural Resource 2",
- "Pattern",
- "T83063",
- "Thibaut",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71307-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_gai-5110-jpg",
- "handle": "wolfgordonwallcovering_dwwg_gai-5110-jpg",
- "title": "Grain - Poplar | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/gai-5110.jpg?v=1762295874",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Dark Gray",
- "Grain",
- "Gray",
- "Light Gray",
- "Poplar",
- "RAMPART®",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_gai-5110-jpg"
- },
- {
- "sku": "bosa-marina-boardwalk-wood-grain-wbs-39634",
- "handle": "bosa-marina-boardwalk-wood-grain-wbs-39634",
- "title": "Bosa Marina Boardwalk Wood Grain | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/wbs-39634-sample-bosa-marina-boardwalk-wood-grain-hollywood-wallcoverings.jpg?v=1775705849",
- "tags": [
- "Architectural",
- "Beige",
- "Blue",
- "Bricks and Stones",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Conference Room",
- "Contemporary",
- "Dark Brown",
- "Embossed Texture",
- "Farmhouse",
- "Faux",
- "Faux Wood",
- "Green",
- "Hallway",
- "Hollywood Wallcoverings",
- "Hotel Lobby",
- "Luxe",
- "Navy Blue",
- "Olive Green",
- "Paper Backed Solid Vinyl Wallcoverings",
- "Rich Woods",
- "Solid",
- "Sophisticated",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Wallcoverings",
- "White",
- "Wood",
- "Wood Grain"
- ],
- "max_price": 34.29,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/bosa-marina-boardwalk-wood-grain-wbs-39634"
- },
- {
- "sku": "shubert-faux-rice-paper-durable-walls-xwk-52504",
- "handle": "shubert-faux-rice-paper-durable-walls-xwk-52504",
- "title": "Shubert Faux Rice Paper Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwk-52504-sample-shubert-faux-rice-paper-durable-hollywood-wallcoverings.jpg?v=1775733229",
- "tags": [
- "Abstract",
- "Architectural",
- "Bathroom",
- "Bedroom",
- "Blue",
- "Class A Fire Rated",
- "Color: Blue",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Faux",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Light Blue",
- "Living Room",
- "Off-white",
- "Serene",
- "Textured",
- "Vinyl",
- "Vinyl Wallcoverings",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/shubert-faux-rice-paper-durable-walls-xwk-52504"
- },
- {
- "sku": "eur-80451-ncw4496-designer-wallcoverings-los-angeles",
- "handle": "eur-80451-ncw4496-designer-wallcoverings-los-angeles",
- "title": "Plumier Stripe 01 - Blue Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513508479027.jpg?v=1775524174",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Cottagecore",
- "English Country",
- "Feathered leaves are presented either side of a decorative stem in a stripe repeat.",
- "Green",
- "Hallway",
- "Leaf",
- "Light Beige",
- "Light Blue",
- "Light Green",
- "Living Room",
- "NCW4496",
- "NCW4496-01",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Off White",
- "Pale Blue",
- "Paper",
- "Plumier Stripe",
- "Sage Green",
- "Serene",
- "SIGNATURE COLLECTION",
- "Stripe",
- "Traditional",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80451-ncw4496-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "rustic-glam-vinyl-gpr-76626",
- "handle": "rustic-glam-vinyl-gpr-76626",
- "title": "Rustic Glam Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/gpr-76626-sample-rustic-glam-vinyl-hollywood-wallcoverings.jpg?v=1775731734",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Farmhouse",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Light Gray",
- "Living Room",
- "Organic",
- "Rustic",
- "Stripe",
- "Taupe",
- "Textured",
- "Traditional",
- "USFCID#vp885-049",
- "Very Good Stain Abrasion Resistance - Washable",
- "Vinyl",
- "Wallcovering",
- "Wood Grain"
- ],
- "max_price": 41.95,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/rustic-glam-vinyl-gpr-76626"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_blg-5640-jpg",
- "handle": "wolfgordonwallcovering_dwwg_blg-5640-jpg",
- "title": "Belgrade - Shale | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/blg-5640.jpg?v=1762287863",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Belgrade",
- "Black",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Gray",
- "Industrial",
- "RAMPART®",
- "Shale",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_blg-5640-jpg"
- },
- {
- "sku": "peter-s-plastered-walls-ppw-2886",
- "handle": "peter-s-plastered-walls-ppw-2886",
- "title": "Peter's Plastered | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ppw-2886-sample-peter-s-plastered-hollywood-wallcoverings.jpg?v=1775729101",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Cream",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 40.54,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/peter-s-plastered-walls-ppw-2886"
- },
- {
- "sku": "world-map-modern-colourway-small-mural-by-retro-walls-rtr-37221",
- "handle": "world-map-modern-colourway-small-mural-by-retro-walls-rtr-37221",
- "title": "World Map - Modern (colourway) Small Mural by Retro Walls",
- "vendor": "Traditional Whimsy",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/d6aff66cdb809babd72d66e9fe314c0a.jpg?v=1572309701",
- "tags": [
- "Architectural",
- "Beige",
- "Blue",
- "Commercial",
- "Commercial Wallcovering",
- "Green",
- "Heavy-duty Wallcovering with paper top-layer and non-woven backing // Colourfast and washable with a soft cloth // Butted seam (but",
- "Modern",
- "Multi",
- "Mural",
- "Paper",
- "Scenic",
- "Traditional Whimsy",
- "Wallcovering",
- "Whimsical",
- "White"
- ],
- "max_price": 84,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/world-map-modern-colourway-small-mural-by-retro-walls-rtr-37221"
- },
- {
- "sku": "natalia-purple-curly-scroll-wallpaper-wallpaper-cca-82822",
- "handle": "natalia-purple-curly-scroll-wallpaper-wallpaper-cca-82822",
- "title": "Natalia Purple Curly Scroll Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/b4fbd757fe54a9cd5ca21316c7591e1b.jpg?v=1572309955",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Floral",
- "Green",
- "Kids",
- "LA Walls",
- "Leaf",
- "Pink",
- "Prepasted",
- "Scrolls",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/natalia-purple-curly-scroll-wallpaper-wallpaper-cca-82822"
- },
- {
- "sku": "daytona-faux-contemporary-durable-walls-xwc-53200",
- "handle": "daytona-faux-contemporary-durable-walls-xwc-53200",
- "title": "Daytona Faux Contemporary Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwc-53200-sample-daytona-faux-contemporary-durable-hollywood-wallcoverings.jpg?v=1775710049",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Faux",
- "Faux Finish",
- "Geometric",
- "Gray Beige",
- "Hallway",
- "Hollywood Wallcoverings",
- "Lattice",
- "LEED",
- "Leed Walls",
- "Light Beige",
- "Light Gray",
- "Living Room",
- "Pale Beige",
- "Serene",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/daytona-faux-contemporary-durable-walls-xwc-53200"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_metm-574-jpg",
- "handle": "wolfgordonwallcovering_dwwg_metm-574-jpg",
- "title": "Metamorphosis - Cream | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/metm-574.jpg?v=1762301022",
- "tags": [
- "39% Polyester",
- "61% Olefin",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "contemporary",
- "Cream",
- "geometric",
- "Metamorphosis",
- "Olefin",
- "Textile",
- "textured",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_metm-574-jpg"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_sp9501-jpg",
- "handle": "wolfgordonwallcovering_dwwg_sp9501-jpg",
- "title": "SP9501 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_sp9500.jpg?v=1733872427",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Beige",
- "Black",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Minimalist",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_sp9501-jpg"
- },
- {
- "sku": "dwkk-127666",
- "handle": "dwkk-127666",
- "title": "Echo - Pearl By Clarke And Clarke | Clarke & Clarke Reflections | Tone On Tone Wallcovering Print",
- "vendor": "Clarke And Clarke",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W0055_04_CAC_6055ddb4-d71c-4f06-8b34-98fac6057728.jpg?v=1726037706",
- "tags": [
- "20.875In",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Clarke & Clarke Reflections",
- "Clarke And Clarke",
- "Class A Fire Rated",
- "Commercial",
- "contemporary",
- "Cream",
- "display_variant",
- "Echo",
- "Hallway",
- "Living Room",
- "Non-Woven",
- "Off-white",
- "Organic Modern",
- "Pattern",
- "Print",
- "Serene",
- "stripe",
- "Taupe",
- "textured",
- "Tone On Tone",
- "United Kingdom",
- "W0055/04.Cac.0",
- "Wallcovering",
- "Wood Pulp - 74%;Binder - 13%;Polyester - 13%"
- ],
- "max_price": 179.53,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwkk-127666"
- },
- {
- "sku": "marseilles-durable-vinyl-dur-72003",
- "handle": "marseilles-durable-vinyl-dur-72003",
- "title": "Marseilles Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72003-sample-clean.jpg?v=1774483916",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Brown",
- "Living Room",
- "Marseilles Durable Vinyl",
- "Minimalist",
- "Organic Modern",
- "Serene",
- "Stripe",
- "Taupe",
- "Textured",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wood Grain",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/marseilles-durable-vinyl-dur-72003"
- },
- {
- "sku": "dwkk-115516",
- "handle": "dwkk-115516",
- "title": "Library - Leather Espresso | Kravet Couture | Andrew Martin Navigator | Novelty Wallcovering Print",
- "vendor": "Kravet",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/AMW10042_6_031ce615-2020-4589-b995-96f836589824.jpg?v=1753123160",
- "tags": [
- "53.5In",
- "Abstract",
- "Almond",
- "Amw10042.6.0",
- "Architectural",
- "Archived-Triple-Verified",
- "Archived-Vendor-Gone",
- "Beige",
- "Brown",
- "Cocoa",
- "Coffee",
- "Commercial",
- "Dark Academia",
- "display_variant",
- "Hallway",
- "Kravet",
- "Kravet Couture",
- "Leather",
- "Library",
- "Living Room",
- "Murals / Panels",
- "Novelty",
- "Office",
- "Paper",
- "Paper - 100%",
- "Pattern",
- "Print",
- "Rustic",
- "Sepia",
- "Sienna",
- "Sophisticated",
- "Tan",
- "Textured",
- "Traditional",
- "United Kingdom",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwkk-115516"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_ar9810-jpg",
- "handle": "wolfgordonwallcovering_dwwg_ar9810-jpg",
- "title": "Armor Paint - AR9810 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_ar9809.jpg?v=1733873870",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Green",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_ar9810-jpg"
- },
- {
- "sku": "dwtt-72299-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72299-designer-wallcoverings-los-angeles",
- "title": "T7617 Aqua on Metallic | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T7617.jpg?v=1733892330",
- "tags": [
- "Aqua on Metallic",
- "Architectural",
- "Damask",
- "gold",
- "light green",
- "Pattern",
- "T7617",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72299-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "route-66-car-wallpaper-scr-7923",
- "handle": "route-66-car-wallpaper-scr-7923",
- "title": "Route 66 Car Wallcovering",
- "vendor": "Studio Toten",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/4ba93629c619d6a45a0975b13990731b.jpg?v=1572309084",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Designer Wallcoverings",
- "Greens White",
- "Light Green",
- "Paper",
- "Route 66 Car Wallcovering",
- "Scenic",
- "Screen Print",
- "Wallcovering",
- "Whimsical Screen Prints Vol. 1",
- "White"
- ],
- "max_price": 146.18,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/route-66-car-wallpaper-scr-7923"
- },
- {
- "sku": "faux-wild-rice-fwr-9368",
- "handle": "faux-wild-rice-fwr-9368",
- "title": "Faux Wild Rice | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fwr-9368-sample-faux-wild-rice-hollywood-wallcoverings.jpg?v=1775712081",
- "tags": [
- "Abstract",
- "Architectural",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial - Cleanable",
- "Contemporary",
- "Elegant Vinyls Vol. 1",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 31.73,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-wild-rice-fwr-9368"
- },
- {
- "sku": "crosby-acoustical-wallcovering-xkl-47472",
- "handle": "crosby-acoustical-wallcovering-xkl-47472",
- "title": "Crosby Acoustical Wallcovering",
- "vendor": "Hollywood Acoustical",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/91477928ca30ee461e01e1a2b06f406b.jpg?v=1572310054",
- "tags": [
- "100% Recycled Polyester",
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Burgundy",
- "Class A Fire Rated",
- "Color: Red",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Crosby Acoustical Wallcovering",
- "Fabric",
- "Fabric-backed Vinyl",
- "Hallway",
- "Hollywood Acoustical",
- "Light Beige",
- "Light Gray",
- "Living Room",
- "Maroon",
- "Polyester",
- "Red",
- "Rustic",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/crosby-acoustical-wallcovering-xkl-47472"
- },
- {
- "sku": "floating-bubbles-vinyl-dwx-58119",
- "handle": "floating-bubbles-vinyl-dwx-58119",
- "title": "Floating Bubbles Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58119-sample-floating-bubbles-vinyl-hollywood-wallcoverings.jpg?v=1775713580",
- "tags": [
- "54\" Width",
- "Abstract",
- "Architectural",
- "Beige",
- "Bubbles",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Gold",
- "hollywood",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Minimalist",
- "Neutral",
- "Organic",
- "Textured",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wide Width"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/floating-bubbles-vinyl-dwx-58119"
- },
- {
- "sku": "ettie-rose-circus-damask-wallpaper-cca-83005",
- "handle": "ettie-rose-circus-damask-wallpaper-cca-83005",
- "title": "Ettie Rose Circus Damask Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/2e4be099f3d07526acc600668597116d.jpg?v=1572309965",
- "tags": [
- "Architectural",
- "Beige",
- "Commercial",
- "Cream",
- "Damask",
- "Damasks",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Paper",
- "Pink",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Traditional",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ettie-rose-circus-damask-wallpaper-cca-83005"
- },
- {
- "sku": "leena-pink-loopy-hoops-wallpaper-cca-83013",
- "handle": "leena-pink-loopy-hoops-wallpaper-cca-83013",
- "title": "Leena Pink Loopy Hoops Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/7b306090182738e0a9d84612c4cbf500.jpg?v=1572309965",
- "tags": [
- "Architectural",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Geometric",
- "LA Walls",
- "Lattice",
- "Paper",
- "Pink",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Texture",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 64.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/leena-pink-loopy-hoops-wallpaper-cca-83013"
- },
- {
- "sku": "bellaire-faux-finish-durable-walls-xww-53073",
- "handle": "bellaire-faux-finish-durable-walls-xww-53073",
- "title": "Bellaire Faux Finish Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xww-53073-sample-bellaire-faux-finish-durable-hollywood-wallcoverings.jpg?v=1775703576",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Faux",
- "Faux Finish",
- "Hallway",
- "Hollywood Wallcoverings",
- "Khaki",
- "LEED",
- "Living Room",
- "Serene",
- "Solid",
- "Taupe",
- "Textured",
- "Timeless",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/bellaire-faux-finish-durable-walls-xww-53073"
- },
- {
- "sku": "bosa-marina-midnight-wood-grain-wbs-39632",
- "handle": "bosa-marina-midnight-wood-grain-wbs-39632",
- "title": "Bosa Marina Midnight Wood Grain | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/wbs-39632-sample-bosa-marina-midnight-wood-grain-hollywood-wallcoverings.jpg?v=1775705874",
- "tags": [
- "Architectural",
- "Beige",
- "Bricks and Stones",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Brown",
- "Embossed Texture",
- "Faux",
- "Faux Wood",
- "Gold",
- "Gray",
- "Grey",
- "Hallway",
- "Hollywood Wallcoverings",
- "Hotel Lobby",
- "Living Room",
- "Luxe",
- "Paper",
- "Paper Backed Solid Vinyl Wallcoverings",
- "Regencycore",
- "Rich Woods",
- "Sophisticated",
- "Stripe",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Wallcoverings",
- "Wood",
- "Yellow"
- ],
- "max_price": 54.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/bosa-marina-midnight-wood-grain-wbs-39632"
- },
- {
- "sku": "dwc-1001601",
- "handle": "dwc-1001601",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693307555891.jpg?v=1775521039",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Damask",
- "Floral",
- "Green",
- "NCW4304-01",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paper",
- "Traditional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001601"
- },
- {
- "sku": "hollywood-contemporary-coast-xhw-2010363",
- "handle": "hollywood-contemporary-coast-xhw-2010363",
- "title": "Hollywood Contemporary Coast | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/surf-gidget_df8e1d65-db81-4bc4-a71e-3ded6b63cec6.jpg?v=1777481069",
- "tags": [
- "35.04 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "AI-Analyzed-v2",
- "Architectural",
- "Background Color Light Blue",
- "Bedroom",
- "Blue",
- "Class A Fire Rated",
- "Color: Blue",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Dark Gray",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Gray",
- "Hallway",
- "Healthcare",
- "Heavy Duty",
- "Hollywood Contemporary Coast",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Blue",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Modern",
- "Samantha",
- "Serene",
- "Solid",
- "Steel Blue",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 35.04 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Look"
- ],
- "max_price": 96.58,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hollywood-contemporary-coast-xhw-2010363"
- },
- {
- "sku": "croydon-type-ii-vinyl-wallcovering-xkm-47476",
- "handle": "croydon-type-ii-vinyl-wallcovering-xkm-47476",
- "title": "Croydon Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xkm-47476-sample-croydon-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775709458",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Croydon Type 2 Vinyl Wallcovering",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Light Gray",
- "Living Room",
- "Oatmeal",
- "Serene",
- "Solid",
- "Taupe",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/croydon-type-ii-vinyl-wallcovering-xkm-47476"
- },
- {
- "sku": "marseilles-durable-vinyl-dur-72006",
- "handle": "marseilles-durable-vinyl-dur-72006",
- "title": "Marseilles Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72006-sample-clean.jpg?v=1774483931",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Brown",
- "Burnt Sienna",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Brown",
- "Durable Type 2 Vinyl",
- "Estimated Type: Paper",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Marseilles Durable Vinyl",
- "Minimalist",
- "Office",
- "Orange",
- "Organic Modern",
- "Rustic",
- "Stripe",
- "Terra Cotta",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Wood Grain"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/marseilles-durable-vinyl-dur-72006"
- },
- {
- "sku": "eur-80264-ncw4270-designer-wallcoverings-los-angeles",
- "handle": "eur-80264-ncw4270-designer-wallcoverings-los-angeles",
- "title": "Coromandel 06 - Deep Forest Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513501597747.jpg?v=1775523047",
- "tags": [
- "Architectural",
- "Bedroom",
- "Botanical",
- "Champagne",
- "Charcoal",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Coromandel",
- "Dark Academia",
- "Dining Room",
- "Ebony",
- "English Country",
- "Floral",
- "Grandmillennial",
- "Gray",
- "Grey",
- "Living Room",
- "NCW4270",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Pale Gold",
- "Paper",
- "Sophisticated",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80264-ncw4270-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwtt-72241-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72241-designer-wallcoverings-los-angeles",
- "title": "Medici Brick | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T7675.jpg?v=1733892428",
- "tags": [
- "Architectural",
- "Brick",
- "burnt orange",
- "Damask",
- "Damask Resource 3",
- "Pattern",
- "T7675",
- "terracotta",
- "Texture",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72241-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "crosby-acoustical-wallcovering-xkl-47474",
- "handle": "crosby-acoustical-wallcovering-xkl-47474",
- "title": "Crosby Acoustical Wallcovering",
- "vendor": "Hollywood Acoustical",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/52fe4ae2bf070d81613f3c25d4ffca71.jpg?v=1572310054",
- "tags": [
- "100% Recycled Polyester",
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Black",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Black",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Crosby Acoustical Wallcovering",
- "Fabric",
- "Gray",
- "Hollywood Acoustical",
- "Light Grey",
- "Living Room",
- "Modern",
- "Office",
- "Polyester",
- "Sophisticated",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/crosby-acoustical-wallcovering-xkl-47474"
- },
- {
- "sku": "dwtt-71074-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71074-designer-wallcoverings-los-angeles",
- "title": "Kasai Plum | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T2931_6271d5f3-cb1d-4f69-8c4c-883cd87cebe5.jpg?v=1733894773",
- "tags": [
- "Architectural",
- "Bohemian",
- "Geometric",
- "off-white",
- "Paramount",
- "Pattern",
- "Plum",
- "T2931",
- "Thibaut",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71074-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "paddock-type-ii-vinyl-wallcovering-xpd-48179",
- "handle": "paddock-type-ii-vinyl-wallcovering-xpd-48179",
- "title": "Paddock Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xpd-48179-sample-paddock-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775728684",
- "tags": [
- "Architectural",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Conference Room",
- "Contemporary",
- "Dark Brown",
- "Gray",
- "Hollywood Wallcoverings",
- "Minimalist",
- "Modern",
- "Non-woven",
- "Office",
- "Organic Modern",
- "Primary Suite",
- "Silver Gray",
- "Solid",
- "Sophisticated",
- "Taupe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Walnut"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/paddock-type-ii-vinyl-wallcovering-xpd-48179"
- },
- {
- "sku": "dwtt-72154-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72154-designer-wallcoverings-los-angeles",
- "title": "Stablewood Metallic Gold | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T3627.jpg?v=1733892615",
- "tags": [
- "Architectural",
- "beige",
- "Geometric",
- "gold",
- "Grasscloth Resource 2",
- "Metallic Gold",
- "Pattern",
- "T3627",
- "Texture",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72154-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "tahlia-pink-stucco-texture-wallpaper-cca-83026",
- "handle": "tahlia-pink-stucco-texture-wallpaper-cca-83026",
- "title": "Tahlia Pink Stucco Texture Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/c156cb1926d7a868f133593ae46ef7f8.jpg?v=1572309966",
- "tags": [
- "Abstract",
- "Architectural",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Kids",
- "LA Walls",
- "Pink",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 64.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/tahlia-pink-stucco-texture-wallpaper-cca-83026"
- },
- {
- "sku": "boothbay-harbor-sky-waterside-stripe-wallpaper-cca-83192",
- "handle": "boothbay-harbor-sky-waterside-stripe-wallpaper-cca-83192",
- "title": "Boothbay Harbor Sky Waterside Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/d5c5749ceaa3e98f63b6763fb21b3ba6.jpg?v=1572309972",
- "tags": [
- "Architectural",
- "Coastal",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Light Blue",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/boothbay-harbor-sky-waterside-stripe-wallpaper-cca-83192"
- },
- {
- "sku": "eur-80360-ncw4352-designer-wallcoverings-los-angeles",
- "handle": "eur-80360-ncw4352-designer-wallcoverings-los-angeles",
- "title": "Bonnelles Diamond 04 - Bisque Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513505398835.jpg?v=1775523607",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Beige",
- "Bonnelles Diamond",
- "Champagne",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Cream",
- "Geometric",
- "Hallway",
- "LES INDIENNES",
- "Living Room",
- "Minimalist",
- "Modern",
- "NCW4352",
- "NCW4352-04",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Organic Modern",
- "Paper",
- "Serene",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80360-ncw4352-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "vanessa-white-henna-brocade-wallpaper-wallpaper-cca-82836",
- "handle": "vanessa-white-henna-brocade-wallpaper-wallpaper-cca-82836",
- "title": "Vanessa White Henna Brocade Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/45766882022ade37d5794a6580198513.jpg?v=1572309957",
- "tags": [
- "Architectural",
- "Beige",
- "Commercial",
- "Damask",
- "Damasks",
- "Discontinued",
- "Easy Walls",
- "Floral",
- "Kids",
- "LA Walls",
- "Modern",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Traditional",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/vanessa-white-henna-brocade-wallpaper-wallpaper-cca-82836"
- },
- {
- "sku": "grimsby-type-ii-vinyl-wallcovering-xlh-47749",
- "handle": "grimsby-type-ii-vinyl-wallcovering-xlh-47749",
- "title": "Grimsby Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xlh-47749-sample-grimsby-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775715011",
- "tags": [
- "Architectural",
- "Bedroom",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Gray",
- "Grey",
- "Grimsby Type 2 Vinyl Wallcovering",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Gray",
- "Living Room",
- "Minimalist",
- "Modern",
- "Serene",
- "Silver",
- "Slate Gray",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/grimsby-type-ii-vinyl-wallcovering-xlh-47749"
- },
- {
- "sku": "ncw4390-04",
- "handle": "ncw4390-04",
- "title": "Nina Campbell Wallcoverings - Golden Yellow Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497265360947.jpg?v=1775520696",
- "tags": [
- "Architectural",
- "Botanical",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Floral",
- "Gold",
- "NCW4390-04",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Paper",
- "Stripe",
- "Traditional",
- "Vine",
- "Wallcovering",
- "Wallcoverings",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4390-04"
- },
- {
- "sku": "asha-pearl-lotus-texture-wallpaper-cca-83274",
- "handle": "asha-pearl-lotus-texture-wallpaper-cca-83274",
- "title": "Asha Pearl Lotus Texture Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/05be3c8ff17cd44c99b5c5482a6410a9.jpg?v=1572309983",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Light Gray",
- "Non-Woven",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/asha-pearl-lotus-texture-wallpaper-cca-83274"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_em9500-jpg",
- "handle": "wolfgordonwallcovering_dwwg_em9500-jpg",
- "title": "EM9500 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_em9400r.jpg?v=1733873361",
- "tags": [
- "AI-Analyzed-v2",
- "Animal/Insects",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "EM9500",
- "Gray",
- "Light Gray",
- "Paper",
- "Textured",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_em9500-jpg"
- },
- {
- "sku": "waterlily-drive-metal-and-wood-hlw-73078",
- "handle": "waterlily-drive-metal-and-wood-hlw-73078",
- "title": "Waterlily Drive - Metal and Wood | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73078-sample-clean.jpg?v=1774483371",
- "tags": [
- "abstract",
- "Architectural",
- "Bedroom",
- "Biophilic",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Green",
- "Commercial",
- "Commercial Wallcovering",
- "contemporary",
- "Faux Wood",
- "Floral",
- "Gray",
- "Green",
- "Hollywood Wallcoverings",
- "Living Room",
- "Modern",
- "Natural",
- "Naturally Glamorous",
- "Non-Woven",
- "Office",
- "Olive Green",
- "Organic",
- "Organic Modern",
- "Paper",
- "textured",
- "Wallcovering",
- "Wood"
- ],
- "max_price": 111.26,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/waterlily-drive-metal-and-wood-hlw-73078"
- },
- {
- "sku": "seres-spice-romo",
- "handle": "seres-spice-romo",
- "title": "Seres Spice | Romo",
- "vendor": "Romo",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W969-06-seres-wallcovering-spice_01.jpg?v=1776398979",
- "tags": [
- "Architectural",
- "Background Color beige",
- "beige",
- "Coastal",
- "Commercial",
- "Conference Room",
- "cream",
- "Embossed Wallcovering",
- "Grasscloth",
- "Ivory",
- "Kabu Wallcoverings",
- "Light Beige",
- "Lobby",
- "Natural",
- "Office",
- "Romo",
- "Seres",
- "Small",
- "Stripe",
- "tan",
- "Texture",
- "Textured",
- "Traditional",
- "Transitional",
- "W969/06",
- "Wallcovering",
- "Warm Taupe"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/seres-spice-romo"
- },
- {
- "sku": "dwtt-71230-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71230-designer-wallcoverings-los-angeles",
- "title": "Passaro Damask Cream on Metallic Metallic Gold on Red | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/room-living_room-t34038.jpg?v=1775149519",
- "tags": [
- "Architectural",
- "Damask",
- "Damask Resource 4",
- "gold",
- "Metallic Gold on Red",
- "Pattern",
- "red",
- "T89142",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71230-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "santa-rosa-contemporary-durable-walls-xwt-53488",
- "handle": "santa-rosa-contemporary-durable-walls-xwt-53488",
- "title": "Santa Rosa Contemporary Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwt-53488-sample-santa-rosa-contemporary-durable-hollywood-wallcoverings.jpg?v=1775732865",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Art Deco",
- "Bedroom",
- "Blue",
- "Class A Fire Rated",
- "Color: Blue",
- "Commercial",
- "Commercial Wallcovering",
- "Dining Room",
- "Geometric",
- "Glamorous",
- "Gray",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Light Blue",
- "Light Steelblue",
- "Living Room",
- "Modern",
- "Non-woven",
- "Santa Rosa Contemporary Durable",
- "Silver",
- "Sophisticated",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/santa-rosa-contemporary-durable-walls-xwt-53488"
- },
- {
- "sku": "fairford-vinyl-wallcovering-xlb-47652",
- "handle": "fairford-vinyl-wallcovering-xlb-47652",
- "title": "Fairford Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xlb-47652-sample-fairford-vinyl-hollywood-wallcoverings.jpg?v=1775711465",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Organic Modern",
- "Stripe",
- "Tan",
- "Taupe",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/fairford-vinyl-wallcovering-xlb-47652"
- },
- {
- "sku": "mia-pink-faux-zebra-stripes-wallpaper-wallpaper-cca-82857",
- "handle": "mia-pink-faux-zebra-stripes-wallpaper-wallpaper-cca-82857",
- "title": "Mia Pink Faux Zebra Stripes Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/0b62946781f52da914ecf128b06950f7.jpg?v=1572309958",
- "tags": [
- "Animal Prints",
- "Animal/Insects",
- "Animals",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Fauna",
- "Faux",
- "LA Walls",
- "Light Pink",
- "Pink",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Strippable",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04",
- "Zebra"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/mia-pink-faux-zebra-stripes-wallpaper-wallpaper-cca-82857"
- },
- {
- "sku": "dwtt-72252-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72252-designer-wallcoverings-los-angeles",
- "title": "Damask Resource 3 Metallic Silver | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T7602.jpg?v=1733892406",
- "tags": [
- "Architectural",
- "black",
- "Damask",
- "Damask Resource 3",
- "Metallic Silver",
- "Pattern",
- "silver",
- "T7602",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72252-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "croydon-type-ii-vinyl-wallcovering-xkm-47484",
- "handle": "croydon-type-ii-vinyl-wallcovering-xkm-47484",
- "title": "Croydon Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xkm-47484-sample-croydon-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775709617",
- "tags": [
- "Abstract",
- "Architectural",
- "Beige",
- "Blue",
- "Brown",
- "Burgundy",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Croydon Type 2 Vinyl Wallcovering",
- "Dark Brown",
- "Dining Room",
- "Estimated Type: Paper",
- "Forest Green",
- "Glamorous",
- "Gold",
- "Green",
- "Hollywood Wallcoverings",
- "Hotel Lobby",
- "Industrial",
- "Living Room",
- "Luxe",
- "Luxurious",
- "Navy Blue",
- "Red",
- "Regencycore",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/croydon-type-ii-vinyl-wallcovering-xkm-47484"
- },
- {
- "sku": "hardee-embossed-contemporary-durable-walls-xwy-53110",
- "handle": "hardee-embossed-contemporary-durable-walls-xwy-53110",
- "title": "Hardee Embossed Contemporary Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/XWY-53110-sample-clean.jpg?v=1774481833",
- "tags": [
- "Architectural",
- "Brown",
- "Burnt Sienna",
- "Chocolate Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Copper",
- "Dark Brown",
- "Dining Room",
- "Embossed",
- "Embossed Texture",
- "Geometric",
- "Hallway",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Mosaic",
- "Orange",
- "Rustic",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hardee-embossed-contemporary-durable-walls-xwy-53110"
- },
- {
- "sku": "dwtt-71729-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71729-designer-wallcoverings-los-angeles",
- "title": "Myanmar Trellis Black | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T36135_7d0a399e-a388-4a0f-aaa7-6128404a0ed2.jpg?v=1733893533",
- "tags": [
- "Architectural",
- "Beige",
- "Black",
- "Contemporary",
- "Enchantment",
- "Geometric",
- "Pattern",
- "T36135",
- "Thibaut",
- "Trellis",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71729-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "hollywood-crystal-xhw-2010107",
- "handle": "hollywood-crystal-xhw-2010107",
- "title": "Hollywood Crystal | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/crystalline-carnelian.jpg?v=1777480960",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "Abstract",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Beige",
- "Brown",
- "Burnt Sienna",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Crystal",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Orange",
- "Organic Modern",
- "Paper",
- "Rustic",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Look"
- ],
- "max_price": 61.9,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hollywood-crystal-xhw-2010107"
- },
- {
- "sku": "elaris-ashlar-romo",
- "handle": "elaris-ashlar-romo",
- "title": "Elaris Ashlar | Romo Wallcovering",
- "vendor": "Romo",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W970-01-elaris-wallcovering-ashlar_05.jpg?v=1776398951",
- "tags": [
- "Abstract",
- "Architectural",
- "Background Color beige",
- "beige",
- "blue",
- "brown",
- "Commercial",
- "Contemporary",
- "Eclectic",
- "Elaris",
- "Embossed Wallcovering",
- "Hotel Room",
- "Kabu Wallcoverings",
- "Lobby",
- "Medium",
- "Non-woven",
- "Office",
- "Romo",
- "Sage Green",
- "Slate Blue",
- "Soft White",
- "Stripe",
- "Texture",
- "Textured",
- "Transitional",
- "W970/01",
- "Wallcovering",
- "Warm Taupe"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/elaris-ashlar-romo"
- },
- {
- "sku": "labasa-taupe-zebra-wbs-39655",
- "handle": "labasa-taupe-zebra-wbs-39655",
- "title": "Labasa Taupe Zebra | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/wbs-39655-sample-labasa-taupe-zebra-hollywood-wallcoverings.jpg?v=1775721027",
- "tags": [
- "Abstract",
- "Animal Print",
- "Animal Skin",
- "Animal/Insects",
- "Animals",
- "Architectural",
- "Beige",
- "Bricks and Stones",
- "Brown",
- "Champagne",
- "Chocolate Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed Texture",
- "Fauna",
- "Faux",
- "Glamorous",
- "Hallway",
- "Hollywood Regency",
- "Hollywood Wallcoverings",
- "Hotel Lobby",
- "Living Room",
- "Luxe",
- "Luxurious",
- "Non-Woven",
- "Paper",
- "Paper Backed Solid Vinyl Wallcoverings",
- "Rich Woods",
- "Stripe",
- "Taupe",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Wallcoverings",
- "Walnut",
- "Wood",
- "Yellow",
- "Zebra"
- ],
- "max_price": 34.29,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/labasa-taupe-zebra-wbs-39655"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_br10297-jpg",
- "handle": "wolfgordonwallcovering_dwwg_br10297-jpg",
- "title": "BR10297 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_br10296.jpg?v=1733873645",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "BR10297",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Light Gray",
- "Paper",
- "Textured",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_br10297-jpg"
- },
- {
- "sku": "harpswell-beige-herringbone-awning-stripe-wallpaper-cca-83157",
- "handle": "harpswell-beige-herringbone-awning-stripe-wallpaper-cca-83157",
- "title": "Harpswell Beige Herringbone Awning Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/b519a00a568542fdbd5fa6be95fc418b.jpg?v=1572309971",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Cream",
- "Discontinued",
- "Easy Walls",
- "Harpswell Beige Herringbone Awning Stripe Wallcovering",
- "LA Walls",
- "Light Beige",
- "Light Yellow",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/harpswell-beige-herringbone-awning-stripe-wallpaper-cca-83157"
- },
- {
- "sku": "versace-plain-metallic-pink-wallcovering-versace",
- "handle": "versace-plain-metallic-pink-wallcovering-versace",
- "title": "Versace Plain Metallic Pink Wallcovering | Versace",
- "vendor": "Versace",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/47413ebeaa8c17791fd641dc54701b52.jpg?v=1773706481",
- "tags": [
- "A.S. Création",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Pink",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "display_variant",
- "Hallway",
- "Italian",
- "Light Beige",
- "Light Pink",
- "Living Room",
- "Luxury",
- "Pale Pink",
- "Paper",
- "Pink",
- "Serene",
- "Solid",
- "Textured",
- "Trending Wallcovering Collection 2026",
- "Trending Wallpaper Collection 2026",
- "Versace",
- "Versace Home",
- "Versace Plain Metallic",
- "Versace Plain Metallic Pink Wallcovering",
- "Versace VI",
- "Wallcovering",
- "Walnut Brown"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/versace-plain-metallic-pink-wallcovering-versace"
- },
- {
- "sku": "dwtt-72282-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72282-designer-wallcoverings-los-angeles",
- "title": "Medici Brown | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T7695.jpg?v=1733892363",
- "tags": [
- "Architectural",
- "beige",
- "brown",
- "Damask",
- "Damask Resource 3",
- "Pattern",
- "T7695",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72282-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "marseilles-durable-vinyl-dur-72011",
- "handle": "marseilles-durable-vinyl-dur-72011",
- "title": "Wool Look - Faux Suede Commercial Wallcovering | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72011-sample-clean.jpg?v=1774483962",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Brown",
- "Durable Type 2 Vinyl",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Minimalist",
- "Organic",
- "Organic Modern",
- "Rustic",
- "Stripe",
- "Taupe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wood Grain"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/marseilles-durable-vinyl-dur-72011"
- },
- {
- "sku": "steuben-grey-turf-stripe-wallpaper-cca-83170",
- "handle": "steuben-grey-turf-stripe-wallpaper-cca-83170",
- "title": "Steuben Grey Turf Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/c878064273aa46bd1ea303c49d8d22b5.jpg?v=1572309971",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Grey",
- "LA Walls",
- "Light Gray",
- "Off-white",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Steuben Grey Turf Stripe Wallcovering",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Traditional",
- "Transitional",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/steuben-grey-turf-stripe-wallpaper-cca-83170"
- },
- {
- "sku": "prince-vertical-emboss-durable-walls-xwh-52391",
- "handle": "prince-vertical-emboss-durable-walls-xwh-52391",
- "title": "Prince Vertical Emboss Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwh-52391-sample-prince-vertical-emboss-durable-hollywood-wallcoverings.jpg?v=1775729391",
- "tags": [
- "74%-100% post-consumer (Eco-fi polyester)",
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Dining Room",
- "Embossed",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Living Room",
- "Minimalist",
- "Organic Modern",
- "Polyester",
- "remaining fiber is pre-consumer (polyester)",
- "Serene",
- "Stripe",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/prince-vertical-emboss-durable-walls-xwh-52391"
- },
- {
- "sku": "dwkk-ge20640bc",
- "handle": "dwkk-ge20640bc",
- "title": "Kravet Design - W3492-52 Slate Commercial Wallcovering | Kravet",
- "vendor": "Kravet",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W3492_52_34f04674-c640-442c-8be7-975f2b1bb93e.jpg?v=1753122293",
- "tags": [
- "36In",
- "Abstract",
- "Architectural",
- "Bedroom",
- "Brown",
- "Candice Olson Collection",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cork - 100%",
- "display_variant",
- "Grasscloth",
- "Grasscloth Texture",
- "Grasscloth Wallcovering",
- "Gray",
- "Grey",
- "Hallway",
- "Korea",
- "Kravet",
- "Kravet Design",
- "Living Room",
- "Republic Of",
- "Rustic",
- "Silver",
- "Taupe",
- "Texture",
- "Textured",
- "Vinyl",
- "W3492-52",
- "W3492.52.0",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwkk-ge20640bc"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_st9807-jpg",
- "handle": "wolfgordonwallcovering_dwwg_st9807-jpg",
- "title": "ST9807 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_st9805.jpg?v=1733872221",
- "tags": [
- "AI-Analyzed-v2",
- "Animal/Insects",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Khaki",
- "Minimalist",
- "Paper",
- "Solid",
- "ST9807",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_st9807-jpg"
- },
- {
- "sku": "st-joseph-embossed-contemporary-faux-vertical-stria-walls-xwq-52931",
- "handle": "st-joseph-embossed-contemporary-faux-vertical-stria-walls-xwq-52931",
- "title": "St Joseph Embossed Contemporary Faux Vertical Stria | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwq-52931-sample-st-joseph-embossed-contemporary-faux-vertical-stria-hollywood-wallcoverings.jpg?v=1775734528",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Embossed Texture",
- "Faux",
- "Faux Finish",
- "Hallway",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Light Brown",
- "Linen",
- "Linen Texture",
- "Living Room",
- "Ochre",
- "Stripe",
- "Tan",
- "Taupe",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/st-joseph-embossed-contemporary-faux-vertical-stria-walls-xwq-52931"
- },
- {
- "sku": "dwtt-71305-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71305-designer-wallcoverings-los-angeles",
- "title": "Tribeca Sisal Black | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T83004_b6d232fc-2748-4190-9e17-389a15e46d5f.jpg?v=1733894250",
- "tags": [
- "Architectural",
- "Black",
- "Geometric",
- "gray",
- "Natural Resource 2",
- "Pattern",
- "T83004",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71305-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "glambeads-shagreen-glass-bead-wallpaper-purple-gbs-8500",
- "handle": "glambeads-shagreen-glass-bead-wallpaper-purple-gbs-8500",
- "title": "Glambeads - Shagreen Glass Bead Wallcovering -- Purple",
- "vendor": "Glass Beaded",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/d233a1db49cb33ca525fc9e3b11fd24d.jpg?v=1572309082",
- "tags": [
- "AI-Analyzed-v2",
- "Animal/Insects",
- "Architectural",
- "Bling",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Glambeads",
- "Glass Bead",
- "Glass Beaded",
- "Glass Beaded Walls",
- "Glass Beads",
- "Gray",
- "Modern",
- "Purple",
- "Stingray",
- "Textured",
- "vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 195.48,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/glambeads-shagreen-glass-bead-wallpaper-purple-gbs-8500"
- },
- {
- "sku": "berkeley-type-ii-vinyl-wallcovering-xju-47312",
- "handle": "berkeley-type-ii-vinyl-wallcovering-xju-47312",
- "title": "Berkeley Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xju-47312-sample-berkeley-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775704406",
- "tags": [
- "Architectural",
- "Beige",
- "Berkeley Type 2 Vinyl Wallcovering",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Conference Room",
- "Contemporary",
- "Cream",
- "Dark Brown",
- "Estimated Type: Paper",
- "Hallway",
- "Hollywood Wallcoverings",
- "Hotel Lobby",
- "Luxe",
- "Luxurious",
- "Neoclassical",
- "Regencycore",
- "Solid",
- "Taupe",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/berkeley-type-ii-vinyl-wallcovering-xju-47312"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_st9502-jpg",
- "handle": "wolfgordonwallcovering_dwwg_st9502-jpg",
- "title": "ST9502 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_st9501.jpg?v=1733872259",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Minimalist",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_st9502-jpg"
- },
- {
- "sku": "pleated-perfect-paradise-ppp-2637",
- "handle": "pleated-perfect-paradise-ppp-2637",
- "title": "Pleated Perfect Paradise | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ppp-2637-sample-pleated-perfect-paradise-hollywood-wallcoverings.jpg?v=1775729212",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Light Gray",
- "Pleated Perfect Paradise",
- "Stripe",
- "Textured",
- "vinyl",
- "Wallcovering",
- "White",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 35.66,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/pleated-perfect-paradise-ppp-2637"
- },
- {
- "sku": "lafayette-modern-embossed-durable-walls-xwf-52260",
- "handle": "lafayette-modern-embossed-durable-walls-xwf-52260",
- "title": "Lafayette Modern Embossed Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwf-52260-sample-lafayette-modern-embossed-durable-hollywood-wallcoverings.jpg?v=1775721117",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Embossed Texture",
- "Hallway",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Light Brown",
- "Light Taupe",
- "Living Room",
- "Modern",
- "Organic Modern",
- "Serene",
- "Taupe",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/lafayette-modern-embossed-durable-walls-xwf-52260"
- },
- {
- "sku": "nassau-contemporary-emboosed-walls-xwh-52336",
- "handle": "nassau-contemporary-emboosed-walls-xwh-52336",
- "title": "Nassau Contemporary Emboosed | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nest-forage.jpg?v=1777480485",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Hallway",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Light Brown",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Serene",
- "Taupe",
- "Textured",
- "Transitional",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/nassau-contemporary-emboosed-walls-xwh-52336"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_sm8006-jpg",
- "handle": "wolfgordonwallcovering_dwwg_sm8006-jpg",
- "title": "SM8006 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_sm8005.jpg?v=1733872548",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_sm8006-jpg"
- },
- {
- "sku": "dwtt-71840-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71840-designer-wallcoverings-los-angeles",
- "title": "South Sea Turquoise and Green | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/Grasscloth5-Sutton-03_e67b4c84-9389-44bb-adac-1824e57ae3e0.jpg?v=1773244651",
- "tags": [
- "Architectural",
- "Botanical",
- "Contemporary",
- "Floral",
- "light green",
- "Pattern",
- "Resort",
- "T16017",
- "teal",
- "Thibaut",
- "Turquoise and Green",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71840-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "cotes-d-amore-durable-vinyl-dur-72145",
- "handle": "cotes-d-amore-durable-vinyl-dur-72145",
- "title": "Cotes D'Amore Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72145-sample-clean.jpg?v=1774484555",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Geometric",
- "Gray",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Minimalist",
- "Modern",
- "Serene",
- "Silver",
- "Stripe",
- "Taupe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/cotes-d-amore-durable-vinyl-dur-72145"
- },
- {
- "sku": "essone-durable-vinyl-dur-72272",
- "handle": "essone-durable-vinyl-dur-72272",
- "title": "Essone Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72272-sample-clean.jpg?v=1774484966",
- "tags": [
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Grasscloth",
- "Gray",
- "Grey",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Grey",
- "Living Room",
- "Minimalist",
- "Modern",
- "Serene",
- "Silver",
- "Stripe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/essone-durable-vinyl-dur-72272"
- },
- {
- "sku": "rangeley-beige-new-avalon-stripe-wallpaper-cca-83126",
- "handle": "rangeley-beige-new-avalon-stripe-wallpaper-cca-83126",
- "title": "Rangeley Beige New Avalon Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/b56fc7797effaf6e4a6d2c5c7b02ca03.jpg?v=1572309969",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Cream",
- "Damask",
- "Damasks",
- "Discontinued",
- "Easy Walls",
- "Ivory",
- "LA Walls",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/rangeley-beige-new-avalon-stripe-wallpaper-cca-83126"
- },
- {
- "sku": "marseilles-wallpaper-xp3-68074",
- "handle": "marseilles-wallpaper-xp3-68074",
- "title": "Marseilles Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/7688fb217fd2c97b3eba54c9ebe7a1ba.jpg?v=1733882134",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Hallway",
- "Hollywood Wallcoverings",
- "Linen",
- "Linen Texture",
- "Living Room",
- "Marseilles Vinyl",
- "Phillip Romano Commercial",
- "Tan",
- "Taupe",
- "Textured",
- "Traditional",
- "Transitional",
- "vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/marseilles-wallpaper-xp3-68074"
- },
- {
- "sku": "versace-golden-stripe-metallic-wallcovering-versace",
- "handle": "versace-golden-stripe-metallic-wallcovering-versace",
- "title": "Versace Golden Stripe Metallic Wallcovering | Versace",
- "vendor": "Versace",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/06978277d2c8184444db41ab926ae8e2.jpg?v=1773706410",
- "tags": [
- "[Object Object]",
- "A.S. Création",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Dining Room",
- "display_variant",
- "French Country",
- "Italian",
- "Living Room",
- "Luxury",
- "Pale Goldenrod",
- "Paper",
- "Paste the wall",
- "Stripe",
- "Traditional",
- "Trending Wallcovering Collection 2026",
- "Trending Wallpaper Collection 2026",
- "Versace",
- "Versace Golden Stripe",
- "Versace Golden Stripe Metallic Wallcovering",
- "Versace Home",
- "Versace VI",
- "Victorian",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/versace-golden-stripe-metallic-wallcovering-versace"
- },
- {
- "sku": "delilah-cream-tulip-damask-wallpaper-cca-83240",
- "handle": "delilah-cream-tulip-damask-wallpaper-cca-83240",
- "title": "Delilah Cream Tulip Damask Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/e9aad6c07fa0483b2b58f6b77ece20ee.jpg?v=1572309981",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Cream",
- "Damask",
- "Discontinued",
- "Easy Walls",
- "Gray",
- "LA Walls",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/delilah-cream-tulip-damask-wallpaper-cca-83240"
- },
- {
- "sku": "dwss-72685",
- "handle": "dwss-72685",
- "title": "Karolina dark blue Sample Wallcovering | Sandberg",
- "vendor": "Sandberg",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/807-76_image1_1d798f85-5630-4b04-a224-b48a23683f6c.jpg?v=1646105061",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "DARK BLUE",
- "Gray",
- "Karolina",
- "Karolina dark blue Sample",
- "Midnightblue",
- "P807-76",
- "Paper",
- "Pattern",
- "Sandberg",
- "Silver",
- "Traditional",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwss-72685"
- },
- {
- "sku": "highlands-honeycomb-wood-weave-hlw-73063",
- "handle": "highlands-honeycomb-wood-weave-hlw-73063",
- "title": "Highlands Honeycomb Wood Weave | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73063-sample-clean.jpg?v=1774483291",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bathroom",
- "Bedroom",
- "Brown",
- "Class A Fire Rated",
- "Color: Green",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Green",
- "Faux Wood",
- "Forest Green",
- "Geometric",
- "Green",
- "Highlands Honeycomb Wood Weave",
- "Hollywood Wallcoverings",
- "Living Room",
- "Minimalist",
- "Modern",
- "Natural",
- "Naturally Glamorous",
- "Organic Modern",
- "Serene",
- "Taupe",
- "Textured",
- "Tile",
- "Vinyl",
- "Wallcovering",
- "Wood"
- ],
- "max_price": 31.09,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/highlands-honeycomb-wood-weave-hlw-73063"
- },
- {
- "sku": "eur-70393-designer-wallcoverings-los-angeles",
- "handle": "eur-70393-designer-wallcoverings-los-angeles",
- "title": "Crocodilo Crocodile | Osborne & Little Europe",
- "vendor": "Osborne & Little",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/5041_e19433e3-481a-4181-97d7-0f5b660df083.webp?v=1738614525",
- "tags": [
- "Animal Skin",
- "Animal/Insects",
- "Architectural",
- "Bathroom",
- "Bedroom",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Crocodile",
- "Crocodilo Crocodile",
- "Embossed",
- "Light Gray",
- "Light Grey",
- "Living Room",
- "Luxe",
- "Luxury",
- "METROPOLIS VINYLS 2",
- "Minimalist",
- "Modern",
- "Off-white",
- "Osborne & Little",
- "Osborne & Little Europe",
- "Sophisticated",
- "Texture",
- "Textured",
- "Vinyl",
- "W6337",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-70393-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "delilah-champagne-tulip-damask-wallpaper-cca-83242",
- "handle": "delilah-champagne-tulip-damask-wallpaper-cca-83242",
- "title": "Delilah Champagne Tulip Damask Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/4b804fe18507aae7dad1fad1e16778f3.jpg?v=1572309981",
- "tags": [
- "Architectural",
- "Beige",
- "Bling",
- "Class A Fire Rated",
- "Commercial",
- "Damask",
- "Discontinued",
- "Easy Walls",
- "Glitter",
- "Gray",
- "LA Walls",
- "Modern",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Taupe",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/delilah-champagne-tulip-damask-wallpaper-cca-83242"
- },
- {
- "sku": "st-dennis-durable-vinyl-dur-72284",
- "handle": "st-dennis-durable-vinyl-dur-72284",
- "title": "St Dennis Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72284-sample-clean.jpg?v=1774485025",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Brushstroke",
- "Burnt Orange",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Gray",
- "Grey",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Blue",
- "Light Gray",
- "Living Room",
- "Modern",
- "Office",
- "Orange",
- "Sophisticated",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/st-dennis-durable-vinyl-dur-72284"
- },
- {
- "sku": "anahi-light-pink-forest-fauna-wallpaper-cca-82985",
- "handle": "anahi-light-pink-forest-fauna-wallpaper-cca-82985",
- "title": "Anahi Light Pink Forest Fauna Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/8a4bc515949001796aa5e3fdc6fe8a04.jpg?v=1572309964",
- "tags": [
- "Animal/Insects",
- "Animals",
- "Architectural",
- "Bird",
- "Botanical",
- "Commercial",
- "Deer",
- "Discontinued",
- "Easy Walls",
- "Fauna",
- "Flowers",
- "LA Walls",
- "Light Pink",
- "Paper",
- "Pink",
- "Prepasted",
- "Rabbit",
- "Series: Brewster",
- "Strippable",
- "Trees",
- "Wallcovering",
- "Washable",
- "Whimsical",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 64.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/anahi-light-pink-forest-fauna-wallpaper-cca-82985"
- },
- {
- "sku": "gibby-peach-leafy-scroll-wallpaper-wallpaper-cca-82851",
- "handle": "gibby-peach-leafy-scroll-wallpaper-wallpaper-cca-82851",
- "title": "Gibby Peach Leafy Scroll Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/15d47bbd9ed51ccb48c149dab69627d9.jpg?v=1572309958",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Leaf",
- "Peach",
- "Prepasted",
- "Scrolls",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vine",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04",
- "Yellow"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/gibby-peach-leafy-scroll-wallpaper-wallpaper-cca-82851"
- },
- {
- "sku": "dwtt-70924-designer-wallcoverings-los-angeles",
- "handle": "dwtt-70924-designer-wallcoverings-los-angeles",
- "title": "Solis Turquoise and Navy | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T10088_83b49516-4bd1-4362-862c-f86872ac70ae.jpg?v=1733895066",
- "tags": [
- "abstract",
- "Architectural",
- "contemporary",
- "light blue",
- "light teal",
- "navy blue",
- "Pattern",
- "stripe",
- "T10088",
- "teal",
- "Thibaut",
- "Tropics",
- "Turquoise and Navy",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-70924-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_reh-5511-jpg",
- "handle": "wolfgordonwallcovering_dwwg_reh-5511-jpg",
- "title": "Resham - Glacier Gray | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/reh-5511.jpg?v=1762304178",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Dark Gray",
- "Glacier Gray",
- "Gray",
- "Light Gray",
- "RAMPART®",
- "Resham",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings",
- "Woven"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_reh-5511-jpg"
- },
- {
- "sku": "provence-durable-vinyl-dur-72036",
- "handle": "provence-durable-vinyl-dur-72036",
- "title": "Provence Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72036-sample-clean.jpg?v=1774484060",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Brown",
- "Durable Type 2 Vinyl",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Industrial",
- "Living Room",
- "Moody",
- "Office",
- "Rustic",
- "Taupe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/provence-durable-vinyl-dur-72036"
- },
- {
- "sku": "chesterfield-acoustical-wallcovering-xjz-47384",
- "handle": "chesterfield-acoustical-wallcovering-xjz-47384",
- "title": "Chesterfield Acoustical Wallcovering",
- "vendor": "Hollywood Acoustical",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/9aa8bb50ea5c0d5e346aaa49bf3e776e.jpg?v=1572310051",
- "tags": [
- "100% recycled polyester",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Ecru",
- "Fabric",
- "Grasscloth",
- "Hallway",
- "Hollywood Acoustical",
- "Light Beige",
- "Living Room",
- "Minimalist",
- "Off-white",
- "Organic Modern",
- "Pale Taupe",
- "Polyester",
- "Serene",
- "Stripe",
- "Textured",
- "Transitional",
- "Wallcovering"
- ],
- "max_price": 5,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/chesterfield-acoustical-wallcovering-xjz-47384"
- },
- {
- "sku": "twickenham-type-ii-vinyl-wallcovering-xqm-48544",
- "handle": "twickenham-type-ii-vinyl-wallcovering-xqm-48544",
- "title": "Twickenham Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xqm-48544-sample-twickenham-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775735498",
- "tags": [
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grey",
- "Hollywood Wallcoverings",
- "Light Grey",
- "Living Room",
- "Minimalist",
- "Office",
- "Organic Modern",
- "Pale Grey",
- "Serene",
- "Stripe",
- "Textured",
- "Twickenham Type 2 Vinyl Wallcovering",
- "Vinyl",
- "Wallcovering",
- "Wood Grain"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/twickenham-type-ii-vinyl-wallcovering-xqm-48544"
- },
- {
- "sku": "eur-80143-ncw4150-designer-wallcoverings-los-angeles",
- "handle": "eur-80143-ncw4150-designer-wallcoverings-los-angeles",
- "title": "Rosslyn 01 - Neutral Gray Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513497174067.jpg?v=1775522364",
- "tags": [
- "Architectural",
- "Bedroom",
- "Botanical",
- "Butter Yellow",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Coral",
- "Cottagecore",
- "Crimson",
- "Dining Room",
- "Floral",
- "Grandmillennial",
- "Green",
- "Living Room",
- "NCW4150",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Organic",
- "Pale Beige",
- "Pale Lavender",
- "Paper",
- "Pink",
- "Purple",
- "Red",
- "Rose",
- "Rosslyn",
- "Sage Green",
- "Traditional",
- "Tropical",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80143-ncw4150-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "faux-leaf-squares-fls-2529",
- "handle": "faux-leaf-squares-fls-2529",
- "title": "Faux Leaf Squares Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fls-2529-sample-faux-leaf-squares-wallpaper-hollywood-wallcoverings.jpg?v=1775711952",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Commercial",
- "Contemporary",
- "Cream",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Off-white",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 34.55,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-leaf-squares-fls-2529"
- },
- {
- "sku": "faux-leaf-squares-fls-2753",
- "handle": "faux-leaf-squares-fls-2753",
- "title": "Faux Leaf Squares Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fls-2753-sample-faux-leaf-squares-wallpaper-hollywood-wallcoverings.jpg?v=1775712008",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Dark Gray",
- "Faux Finish",
- "Gray",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 31.92,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-leaf-squares-fls-2753"
- },
- {
- "sku": "dwtt-71524-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71524-designer-wallcoverings-los-angeles",
- "title": "Gilon Beige | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T11012_87913635-a46a-4ecc-b079-43a8421e290c.jpg?v=1733893909",
- "tags": [
- "Architectural",
- "beige",
- "Geometric",
- "Geometric Resource 2",
- "off-white",
- "Pattern",
- "T11012",
- "Thibaut",
- "Traditional",
- "Trellis",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71524-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_dsm-5037-jpg",
- "handle": "wolfgordonwallcovering_dwwg_dsm-5037-jpg",
- "title": "Dasma - Gold | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dsm-5037.jpg?v=1762291602",
- "tags": [
- "100% Vinyl",
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contract",
- "Dasma",
- "Grasscloth",
- "Light Brown",
- "Stripe",
- "Tan",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_dsm-5037-jpg"
- },
- {
- "sku": "decorator-grasscloth-vol-2-by-phillipe-romano-488-431",
- "handle": "decorator-grasscloth-vol-2-by-phillipe-romano-488-431",
- "title": "Decorator Grasscloth Vol. 2 | Phillipe Romano",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/bac9bab8319c6e530b2227084d175633_7b78eabd-17c9-4b41-91ae-e2a039e397fa.jpg?v=1745458269",
- "tags": [
- "Architectural",
- "Beige",
- "Commercial",
- "Grasscloth",
- "Grasscloth Texture",
- "Grasscloth Wallcovering",
- "Lemon",
- "Natural",
- "Natural Wallcovering",
- "Naturals",
- "Phillipe Romano",
- "Phillipe Romano Naturals",
- "Tan",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Woven"
- ],
- "max_price": 21.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/decorator-grasscloth-vol-2-by-phillipe-romano-488-431"
- },
- {
- "sku": "wtw0454fire",
- "handle": "wtw0454fire",
- "title": "Fire Island Grass - Cream | Scalamandre",
- "vendor": "Scalamandre Wallpaper",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WTW0454FIRE.jpg?v=1745346314",
- "tags": [
- "Architectural",
- "Beige",
- "Coastal",
- "Commercial",
- "Cream",
- "FIRE ISLAND GRASS",
- "Grasscloth",
- "Scalamandre Wallcovering",
- "Stripe",
- "Tan",
- "Texture",
- "Textured",
- "Wallcovering",
- "White",
- "Woven"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wtw0454fire"
- },
- {
- "sku": "rushden-type-ii-vinyl-wallcovering-xpq-48277",
- "handle": "rushden-type-ii-vinyl-wallcovering-xpq-48277",
- "title": "Rushden Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xpq-48277-sample-rushden-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775731480",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gold",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Hollywood Wallcoverings",
- "Khaki",
- "Living Room",
- "Organic Modern",
- "Rushden Type 2 Vinyl Wallcovering",
- "Sand",
- "Tan",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Woven"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/rushden-type-ii-vinyl-wallcovering-xpq-48277"
- },
- {
- "sku": "dwtt-72396-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72396-designer-wallcoverings-los-angeles",
- "title": "Klein Trellis Tobacco | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T6072.jpg?v=1733892225",
- "tags": [
- "Anniversary",
- "Architectural",
- "beige",
- "Geometric",
- "Pattern",
- "T6072",
- "tan",
- "Thibaut",
- "Tobacco",
- "Traditional",
- "Trellis",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72396-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "john-s-thick-embossed-vinyl-xjt-44462",
- "handle": "john-s-thick-embossed-vinyl-xjt-44462",
- "title": "John's Thick Embossed Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/XJT-44462-clean_e003c6f3-0b05-4085-ad26-ee962f4423f8.jpg?v=1774479175",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "ASTM E84 Class A",
- "Basketweave",
- "Brown",
- "Check",
- "Chocolate Brown",
- "Class A Fire Rated",
- "Coffee",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Dining Room",
- "Embossed",
- "Embossed Texture",
- "Farmhouse",
- "Hallway",
- "Hollywood Wallcoverings",
- "John's Thick Embossed Vinyl",
- "Living Room",
- "Lodge",
- "Rustic",
- "Sepia",
- "Sienna",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Walnut",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/john-s-thick-embossed-vinyl-xjt-44462"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_ar10391xl-jpg",
- "handle": "wolfgordonwallcovering_dwwg_ar10391xl-jpg",
- "title": "Armor XL | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ar10391xl.jpg?v=1762286332",
- "tags": [
- "Architectural",
- "Armor XL",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Scuffmaster",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_ar10391xl-jpg"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_dnuv-512-jpg",
- "handle": "wolfgordonwallcovering_dwwg_dnuv-512-jpg",
- "title": "Digital Nouveau - Gunmetal | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dnuv-512.jpg?v=1762291227",
- "tags": [
- "100% Mylar",
- "AI-Analyzed-v2",
- "Architectural",
- "Art Deco",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Copper",
- "Digital Curated",
- "Digital Nouveau",
- "Geometric",
- "Gray",
- "Lattice",
- "Mylar",
- "Orange",
- "Paper",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_dnuv-512-jpg"
- },
- {
- "sku": "manatee-faux-vertical-stria-durable-walls-xwq-52980",
- "handle": "manatee-faux-vertical-stria-durable-walls-xwq-52980",
- "title": "Manatee Faux Vertical Stria Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/76f2820096b816a553dffed95a3e43f7.jpg?v=1733881909",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Faux",
- "Faux Finish",
- "Grasscloth",
- "Hallway",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Minimalist",
- "Off-white",
- "Organic Modern",
- "Serene",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/manatee-faux-vertical-stria-durable-walls-xwq-52980"
- },
- {
- "sku": "dwtt-71922-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71922-designer-wallcoverings-los-angeles",
- "title": "Coastal Sisal Antique | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T14110_05e4cad0-eae4-47a5-98b1-5b55879734f6.jpg?v=1733893125",
- "tags": [
- "Antique",
- "Architectural",
- "beige",
- "light brown",
- "Pattern",
- "T14110",
- "Texture",
- "Texture Resource 4",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71922-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "barnard-type-ii-vinyl-wallcovering-xjp-47225",
- "handle": "barnard-type-ii-vinyl-wallcovering-xjp-47225",
- "title": "Barnard Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/batiste-french_white.jpg?v=1777480098",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Gray",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Grey",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Grey",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Minimalist",
- "Off-white",
- "Office",
- "Serene",
- "Solid",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Look"
- ],
- "max_price": 52.78,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/barnard-type-ii-vinyl-wallcovering-xjp-47225"
- },
- {
- "sku": "faux-wild-rice-fwr-9372",
- "handle": "faux-wild-rice-fwr-9372",
- "title": "Faux Wild Rice | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fwr-9372-sample-faux-wild-rice-hollywood-wallcoverings.jpg?v=1775712093",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial - Cleanable",
- "Contemporary",
- "Elegant Vinyls Vol. 1",
- "Faux Finish",
- "Faux Wild Rice",
- "Hollywood Wallcoverings",
- "Light Gray",
- "Textured",
- "vinyl",
- "Wallcovering"
- ],
- "max_price": 31.73,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-wild-rice-fwr-9372"
- },
- {
- "sku": "rivo-dulce-durable-vinyl-dur-72421",
- "handle": "rivo-dulce-durable-vinyl-dur-72421",
- "title": "Rivo Dulce Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72421-sample-clean.jpg?v=1774485480",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Basketweave",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Green",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Gray-green",
- "Durable Type 2 Vinyl",
- "Green",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Olive Drab",
- "Rivo Dulce Durable Vinyl",
- "Rustic",
- "Sage",
- "Serene",
- "Textured",
- "Traditional",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/rivo-dulce-durable-vinyl-dur-72421"
- },
- {
- "sku": "bali-grasscloth-stripe-wallpaper-trf-56847",
- "handle": "bali-grasscloth-stripe-wallpaper-trf-56847",
- "title": "Bali Grasscloth Stripe | Jeffrey Stevens",
- "vendor": "Jeffrey Stevens",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/8f9ed29c1377a5145fdd007e2debe67c.jpg?v=1750789749",
- "tags": [
- "Architectural",
- "Asian",
- "Bali Grasscloth Stripe",
- "beach",
- "Beige",
- "broad stripe",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Discontinued",
- "Faux",
- "Faux Grasscloth",
- "grasscloth",
- "Grasscloth Texture",
- "Grasscloth Wallcovering",
- "Jeffrey Stevens",
- "Modern",
- "Modern Tropics",
- "Natural",
- "Non-Woven",
- "Pastel",
- "Prepasted - Washable - Strippable",
- "Series: York",
- "stripe",
- "Tan",
- "Texture",
- "Textured",
- "Traditional",
- "Transitional",
- "tropical",
- "USA",
- "Wallcovering",
- "Warm Taupe",
- "wide stripe",
- "woven",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 62.79,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/bali-grasscloth-stripe-wallpaper-trf-56847"
- },
- {
- "sku": "steuben-aqua-turf-stripe-wallpaper-cca-83169",
- "handle": "steuben-aqua-turf-stripe-wallpaper-cca-83169",
- "title": "Steuben Aqua Turf Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/368f6eec141e7fdf697ff54cd40f71b7.jpg?v=1572309971",
- "tags": [
- "AI-Analyzed-v2",
- "Aqua",
- "Architectural",
- "Beige",
- "Blue",
- "Class A Fire Rated",
- "Coastal",
- "Commercial",
- "Coral",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Light Blue",
- "Linen",
- "Paper",
- "Pink",
- "Prepasted",
- "Series: Brewster",
- "Steuben Aqua Turf Stripe Wallcovering",
- "Stripe",
- "Stripes",
- "Strippable",
- "Traditional",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/steuben-aqua-turf-stripe-wallpaper-cca-83169"
- },
- {
- "sku": "vaticano-durable-vinyl-dur-72376",
- "handle": "vaticano-durable-vinyl-dur-72376",
- "title": "Vaticano Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72376-sample-clean.jpg?v=1774485266",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Art Deco",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Fretwork",
- "Geometric",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Minimalist",
- "Off-white",
- "Paper",
- "Serene",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vaticano Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/vaticano-durable-vinyl-dur-72376"
- },
- {
- "sku": "dwtt-72410-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72410-designer-wallcoverings-los-angeles",
- "title": "Spotted Orchid Harvest Gold | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/room-living_room-t41149.jpg?v=1775151891",
- "tags": [
- "Anniversary",
- "Architectural",
- "beige",
- "Geometric",
- "gold",
- "Harvest Gold",
- "Pattern",
- "T6045",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72410-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "norman-rust-medallion-wallpaper-cca-82951",
- "handle": "norman-rust-medallion-wallpaper-cca-82951",
- "title": "Norman Rust Medallion Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/43331d772a722584505d1756582069e0.jpg?v=1572309963",
- "tags": [
- "Architectural",
- "Beige",
- "Brown",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Geometric",
- "LA Walls",
- "Masculine",
- "Medallion",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/norman-rust-medallion-wallpaper-cca-82951"
- },
- {
- "sku": "ikeley-type-ii-vinyl-wallcovering-xls-47823",
- "handle": "ikeley-type-ii-vinyl-wallcovering-xls-47823",
- "title": "Ikeley Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xls-47823-sample-ikeley-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775719452",
- "tags": [
- "Abstract",
- "Architectural",
- "Art Deco",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Fretwork",
- "Geometric",
- "Glamorous",
- "Gold",
- "Hollywood Wallcoverings",
- "Hotel Lobby",
- "Ikeley Type 2 Vinyl Wallcovering",
- "Ivory",
- "Living Room",
- "Modern",
- "Sophisticated",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ikeley-type-ii-vinyl-wallcovering-xls-47823"
- },
- {
- "sku": "hollywood-getty-texture-xhw-2010297",
- "handle": "hollywood-getty-texture-xhw-2010297",
- "title": "Hollywood Getty Texture | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/rivoli-specter_f2917f64-4503-43ac-b9c9-080aa5aa8d19.jpg?v=1777481195",
- "tags": [
- "24.96 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Cream",
- "Fire Rated",
- "Flame Certificate Available",
- "Hallway",
- "Healthcare",
- "Heavy Duty",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Beige",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Modern",
- "Serene",
- "Stripe",
- "Taupe",
- "Texture",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 24.96 oz",
- "Wide Width",
- "Width: 54\""
- ],
- "max_price": 62.33,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hollywood-getty-texture-xhw-2010297"
- },
- {
- "sku": "ventnor-vinyl-wallcovering-xqq-48570",
- "handle": "ventnor-vinyl-wallcovering-xqq-48570",
- "title": "Ventnor Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/XQQ-48570-sample-clean.jpg?v=1774480637",
- "tags": [
- "Architectural",
- "Bedroom",
- "Brown",
- "Chocolate Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Brown",
- "Green",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Olive Brown",
- "Organic Modern",
- "Rustic",
- "Solid",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ventnor-vinyl-wallcovering-xqq-48570"
- },
- {
- "sku": "harrison-type-ii-vinyl-wallcovering-xlg-47723",
- "handle": "harrison-type-ii-vinyl-wallcovering-xlg-47723",
- "title": "Harrison Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xlg-47723-sample-harrison-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775716113",
- "tags": [
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Yellow",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Green",
- "Hallway",
- "Hollywood Wallcoverings",
- "Khaki",
- "Light Brown",
- "Living Room",
- "Moss",
- "Organic Modern",
- "Sage",
- "Serene",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/harrison-type-ii-vinyl-wallcovering-xlg-47723"
- },
- {
- "sku": "crushed-costoluto-vinyl-dwx-58004",
- "handle": "crushed-costoluto-vinyl-dwx-58004",
- "title": "Crushed Costoluto Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58004-sample-crushed-costoluto-vinyl-hollywood-wallcoverings.jpg?v=1775709679",
- "tags": [
- "54 Inch Width",
- "54\" Width",
- "Architectural",
- "Beige",
- "Commercial",
- "Commercial Grade",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Crushed",
- "hollywood",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Blue",
- "Minimalist",
- "Neutral",
- "Organic",
- "Striped",
- "Subtle",
- "Texture",
- "Textured",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wide Width"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/crushed-costoluto-vinyl-dwx-58004"
- },
- {
- "sku": "peter-s-plastered-walls-ppw-2878",
- "handle": "peter-s-plastered-walls-ppw-2878",
- "title": "Peter's Plastered | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ppw-2878-sample-peter-s-plastered-hollywood-wallcoverings.jpg?v=1775729074",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Light Brown",
- "Mediterranean",
- "Tan",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 40.54,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/peter-s-plastered-walls-ppw-2878"
- },
- {
- "sku": "eur-80368-ncw4353-designer-wallcoverings-los-angeles",
- "handle": "eur-80368-ncw4353-designer-wallcoverings-los-angeles",
- "title": "Colbert 04 - Chartreuse Green Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513505595443.jpg?v=1775523646",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Biophilic",
- "Botanical",
- "Brown",
- "Class A Fire Rated",
- "Colbert",
- "Commercial",
- "Contemporary",
- "Dark Brown",
- "Green",
- "Hallway",
- "Leaf",
- "LES INDIENNES",
- "Light Yellow",
- "Lime Green",
- "Living Room",
- "NCW4353",
- "NCW4353-04",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Off-white",
- "Olive Green",
- "Organic",
- "Organic Modern",
- "Paper",
- "Sage Green",
- "Taupe",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80368-ncw4353-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_doxm-551-jpg",
- "handle": "wolfgordonwallcovering_dwwg_doxm-551-jpg",
- "title": "Onyx Mexicano - Mica | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/doxm-551.jpg?v=1762291302",
- "tags": [
- "100% Vinyl",
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Digital Curated",
- "Mica",
- "Onyx Mexicano",
- "Orange",
- "Paper",
- "Tan",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_doxm-551-jpg"
- },
- {
- "sku": "narcisse-noir-wallpaper-xa7-66456",
- "handle": "narcisse-noir-wallpaper-xa7-66456",
- "title": "Narcisse Noir Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/6e61cc5efc2b205847ac5990d23902c9.jpg?v=1775123364",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "calcium carbonate/pulp",
- "Class A Fire Rated",
- "Commercial",
- "Entryway",
- "Geometric",
- "Grasscloth",
- "Living Room",
- "Narcisse Noir Wallcovering",
- "Natural Wallcovering",
- "Office",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Scandinavian",
- "Stripe",
- "Tan",
- "Textural",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 49.3,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/narcisse-noir-wallpaper-xa7-66456"
- },
- {
- "sku": "decorator-grasscloth-vol-2-by-phillipe-romano-488-442",
- "handle": "decorator-grasscloth-vol-2-by-phillipe-romano-488-442",
- "title": "Decorator Grasscloth Vol. 2 | Phillipe Romano",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/04e200302bc8798dc0af6b48f813ed15_4d1504c2-ecd1-4804-b6e7-23158e00b5ba.jpg?v=1745458241",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "ASTM E84 Class A",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Decorator Grasscloth Vol. 2",
- "Fabric",
- "Grasscloth",
- "Grasscloth Texture",
- "Light Brown",
- "Natural",
- "Natural Wallcovering",
- "Naturals",
- "Phillipe Romano",
- "Phillipe Romano Naturals",
- "Tan",
- "Textured",
- "Traditional",
- "Transitional",
- "Wallcovering"
- ],
- "max_price": 19.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/decorator-grasscloth-vol-2-by-phillipe-romano-488-442"
- },
- {
- "sku": "eur-80299-ncw4300-designer-wallcoverings-los-angeles",
- "handle": "eur-80299-ncw4300-designer-wallcoverings-los-angeles",
- "title": "Collioure 01 - Off-White Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513502744627.jpg?v=1775523237",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Collioure",
- "Commercial",
- "Contemporary",
- "Dining Room",
- "Eclectic",
- "Geometric",
- "Gold",
- "Gray",
- "LES REVES",
- "Light Blue",
- "Light Pink",
- "Living Room",
- "Mid-century",
- "Mid-century Modern",
- "Moss",
- "Multi",
- "NCW4300",
- "NCW4300-01",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Paper",
- "Playful",
- "Taupe",
- "Vases",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80299-ncw4300-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwtt-71577-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71577-designer-wallcoverings-los-angeles",
- "title": "Caravan Coral | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T64146_2d517055-b13e-46dc-80e0-91c6be945d11.jpg?v=1733893805",
- "tags": [
- "Architectural",
- "Bohemian",
- "Caravan",
- "Coral",
- "Damask",
- "Pattern",
- "T64146",
- "Thibaut",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71577-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "bosa-marina-rustic-plum-wood-grain-wbs-39640",
- "handle": "bosa-marina-rustic-plum-wood-grain-wbs-39640",
- "title": "Bosa Marina Rustic Plum Wood Grain | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/wbs-39640-sample-bosa-marina-rustic-plum-wood-grain-hollywood-wallcoverings.jpg?v=1775706008",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Bricks and Stones",
- "Brown",
- "Charcoal",
- "Class A Fire Rated",
- "Coastal Farmhouse",
- "Color: Pink",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed Texture",
- "Farmhouse",
- "Faux",
- "Faux Wood",
- "Gray",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Paper Backed Solid Vinyl Wallcoverings",
- "Pink",
- "Rich Woods",
- "Rose",
- "Rustic",
- "Stripe",
- "Taupe",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Wallcoverings",
- "Warm",
- "Wood",
- "Wood Grain"
- ],
- "max_price": 34.29,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/bosa-marina-rustic-plum-wood-grain-wbs-39640"
- },
- {
- "sku": "faux-leaf-squares-fls-2519",
- "handle": "faux-leaf-squares-fls-2519",
- "title": "Faux Leaf Squares Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fls-2519-sample-faux-leaf-squares-wallpaper-hollywood-wallcoverings.jpg?v=1775711918",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Commercial",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Khaki",
- "Off-white",
- "Solid",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 34.55,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-leaf-squares-fls-2519"
- },
- {
- "sku": "dwtt-71267-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71267-designer-wallcoverings-los-angeles",
- "title": "Highline Straw | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T83047_16ef2e73-646d-4f62-b598-bfd23104c6ab.jpg?v=1733894330",
- "tags": [
- "Architectural",
- "beige",
- "Natural Resource 2",
- "Pattern",
- "Straw",
- "Stripe",
- "T83047",
- "Texture",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering",
- "yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71267-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "eur-80254-ncw4207-designer-wallcoverings-los-angeles",
- "handle": "eur-80254-ncw4207-designer-wallcoverings-los-angeles",
- "title": "Fontibre 01 - Neutral Beige Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fontibre_wp_main_05816e81-f879-4db1-a2ef-1e85be6416d6.webp?v=1738950177",
- "tags": [
- "Architectural",
- "Bedroom",
- "Botanical",
- "Burgundy",
- "Burnt Orange",
- "Charcoal",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Cottagecore",
- "Dining Room",
- "English Country",
- "Fontibre",
- "Grandmillennial",
- "Gray",
- "Green",
- "Leaf",
- "Living Room",
- "NCW4207",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Orange",
- "Pale Beige",
- "Paper",
- "Pattern",
- "Red",
- "Sage Green",
- "Traditional",
- "Vine",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80254-ncw4207-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "eur-80267-ncw4272-designer-wallcoverings-los-angeles",
- "handle": "eur-80267-ncw4272-designer-wallcoverings-los-angeles",
- "title": "Pavilion Garden 01 - Midnight Blue Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513501696051.jpg?v=1775523066",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Bedroom",
- "Bird",
- "Blue",
- "Botanical",
- "Chinoiserie",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "COROMANDEL",
- "Dining Room",
- "Light Blue",
- "Living Room",
- "Navy",
- "NCW4272",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Paper",
- "Pavilion",
- "Pavilion Garden",
- "Peacock",
- "Scenic",
- "Serene",
- "Traditional",
- "Tree",
- "Wallcovering",
- "Woman"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80267-ncw4272-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "haute-sena-durable-vinyl-dur-72319",
- "handle": "haute-sena-durable-vinyl-dur-72319",
- "title": "Haute Sena Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72319-sample-clean.jpg?v=1774485165",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Brown",
- "Burnt Sienna",
- "Class A Fire Rated",
- "Color: Red",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Geometric",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Orange",
- "Red",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Umber",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/haute-sena-durable-vinyl-dur-72319"
- },
- {
- "sku": "dwtt-71589-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71589-designer-wallcoverings-los-angeles",
- "title": "Caravan Beige | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T64123_84e02189-ca2b-414e-b27a-57c34e71bd17.jpg?v=1733893773",
- "tags": [
- "Architectural",
- "beige",
- "Caravan",
- "Floral",
- "Geometric",
- "off-white",
- "Pattern",
- "T64123",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71589-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "earby-type-ii-vinyl-wallcovering-xkz-47616",
- "handle": "earby-type-ii-vinyl-wallcovering-xkz-47616",
- "title": "Earby Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xkz-47616-sample-earby-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775710448",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Earby Type 2 Vinyl Wallcovering",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Solid",
- "Suede",
- "Tan",
- "Taupe",
- "Textured",
- "Timeless",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/earby-type-ii-vinyl-wallcovering-xkz-47616"
- },
- {
- "sku": "casco-bay-burgundy-ombre-pinstripe-wallpaper-cca-83111",
- "handle": "casco-bay-burgundy-ombre-pinstripe-wallpaper-cca-83111",
- "title": "Casco Bay Burgundy Ombre Pinstripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/e615819e87e505c1ef194dab950200e6.jpg?v=1572309969",
- "tags": [
- "Architectural",
- "Beige",
- "Brown",
- "Burgundy",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Masculine",
- "Prepasted",
- "Red",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Taupe",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/casco-bay-burgundy-ombre-pinstripe-wallpaper-cca-83111"
- },
- {
- "sku": "dwtt-71276-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71276-designer-wallcoverings-los-angeles",
- "title": "Highline Tan and Navy | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T83053_135b746f-ea76-41c5-a4d7-56ef2806ac8e.jpg?v=1733894313",
- "tags": [
- "Architectural",
- "beige",
- "blue",
- "Geometric",
- "Natural Resource 2",
- "Pattern",
- "T83053",
- "Tan and Navy",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71276-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "franko-faux-metallic-patina-ffm-44442",
- "handle": "franko-faux-metallic-patina-ffm-44442",
- "title": "Franko Faux Metallic Patina | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ffm-44442-sample-franko-faux-metallic-patina-hollywood-wallcoverings.jpg?v=1775714282",
- "tags": [
- "Architectural",
- "ASTM E84 Class A",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Faux Finish",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Living Room",
- "Off-white",
- "Organic Modern",
- "Pale Beige",
- "Serene",
- "Textured",
- "Tile",
- "Vinyl",
- "Wallcovering",
- "Wood Grain"
- ],
- "max_price": 43.76,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/franko-faux-metallic-patina-ffm-44442"
- },
- {
- "sku": "dwtt-72398-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72398-designer-wallcoverings-los-angeles",
- "title": "Verey Tobacco | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T6010.jpg?v=1733892221",
- "tags": [
- "Anniversary",
- "Architectural",
- "beige",
- "brown",
- "Pattern",
- "Scenic",
- "T6010",
- "Thibaut",
- "Tobacco",
- "Toile",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72398-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "natalia-moss-floral-scroll-wallpaper-wallpaper-cca-82826",
- "handle": "natalia-moss-floral-scroll-wallpaper-wallpaper-cca-82826",
- "title": "Natalia Moss Floral Scroll Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/73cc07073de8f7b9b4e324dff0ba2d94.jpg?v=1572309957",
- "tags": [
- "Architectural",
- "Beige",
- "Blue",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Floral",
- "Kids",
- "LA Walls",
- "Leaf",
- "Prepasted",
- "Scrolls",
- "Series: Brewster",
- "Strippable",
- "Teal",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/natalia-moss-floral-scroll-wallpaper-wallpaper-cca-82826"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_dprh-501-jpg",
- "handle": "wolfgordonwallcovering_dwwg_dprh-501-jpg",
- "title": "Perch - Dusk | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dprh-501.jpg?v=1762291526",
- "tags": [
- "100% Mylar",
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Digital Curated",
- "Dusk",
- "Geometric",
- "Gray",
- "Light Gray",
- "Mylar",
- "Paper",
- "Perch",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_dprh-501-jpg"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_em9400r-jpg",
- "handle": "wolfgordonwallcovering_dwwg_em9400r-jpg",
- "title": "EM9400R | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_elw-2323.jpg?v=1733873363",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "EM9400R",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_em9400r-jpg"
- },
- {
- "sku": "zoe-quartz-coco-texture-wallpaper-cca-83286",
- "handle": "zoe-quartz-coco-texture-wallpaper-cca-83286",
- "title": "Zoe Quartz Coco Texture Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/69c2dee5b3ad8849deaef84609f2cd93_6a50d6f6-f871-4a14-a576-76e256bd8c11.jpg?v=1572309983",
- "tags": [
- "Abstract",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Faux",
- "LA Walls",
- "Light Green",
- "Light Pink",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/zoe-quartz-coco-texture-wallpaper-cca-83286"
- },
- {
- "sku": "paddock-type-ii-vinyl-wallcovering-xpd-48178",
- "handle": "paddock-type-ii-vinyl-wallcovering-xpd-48178",
- "title": "Paddock Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xpd-48178-sample-paddock-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775728656",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Light Gray",
- "Linen",
- "Linen Texture",
- "Living Room",
- "Minimalist",
- "Office",
- "Organic Modern",
- "Paddock Type 2 Vinyl Wallcovering",
- "Serene",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/paddock-type-ii-vinyl-wallcovering-xpd-48178"
- },
- {
- "sku": "hollywood-tailored-xhw-2010177",
- "handle": "hollywood-tailored-xhw-2010177",
- "title": "Hollywood Tailored | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/harrison-park_row.jpg?v=1777480970",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Gray",
- "Bedroom",
- "Brown",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Gray",
- "Grey",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Gray",
- "Linen",
- "Linen Texture",
- "Living Room",
- "Medium Gray",
- "Mfr-Image-Refreshed",
- "Minimalist",
- "Office",
- "Serene",
- "Taupe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Look"
- ],
- "max_price": 59.87,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hollywood-tailored-xhw-2010177"
- },
- {
- "sku": "ncw4392-04",
- "handle": "ncw4392-04",
- "title": "Ashdown Chelwood Green/Ivory - Green Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497265786931.jpg?v=1775520756",
- "tags": [
- "Architectural",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Floral",
- "Green",
- "NCW4392-04",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Paper",
- "Traditional",
- "Wallcovering",
- "Wallcoverings",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4392-04"
- },
- {
- "sku": "hollywood-skyline-xhw-201082",
- "handle": "hollywood-skyline-xhw-201082",
- "title": "Hollywood Skyline | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/bentley-mayfair.jpg?v=1777480946",
- "tags": [
- "24.96 oz",
- "54 Inch Width",
- "54\" Width",
- "Abstract",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Beige",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Grasscloth",
- "Healthcare",
- "Heavy Duty",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Grey",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Minimalist",
- "Off-white",
- "Office",
- "Organic Modern",
- "Serene",
- "Stripe",
- "Textured",
- "Type 2 Durable Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 24.96 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Look"
- ],
- "max_price": 62.77,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hollywood-skyline-xhw-201082"
- },
- {
- "sku": "eur-80224-ncw4202-designer-wallcoverings-los-angeles",
- "handle": "eur-80224-ncw4202-designer-wallcoverings-los-angeles",
- "title": "Estella 01 - Azure Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513500287027.jpg?v=1775522826",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Cool",
- "Denim Blue",
- "Estella",
- "Floral",
- "FONTIBRE",
- "Hallway",
- "Light Beige",
- "Light Blue",
- "Living Room",
- "Modern",
- "Navy",
- "NCW4202",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Paper",
- "Sky Blue",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80224-ncw4202-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "rob-s-folk-art-animals-scr-8165",
- "handle": "rob-s-folk-art-animals-scr-8165",
- "title": "Rob's Folk Art Animals",
- "vendor": "Studio Toten",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/5dc6350ff8222184486def0932ead021_e3f6b2c7-1d37-46dd-950a-b9ffaca36171.jpg?v=1572309108",
- "tags": [
- "AI-Analyzed-v2",
- "Animal/Insects",
- "Animals",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Deer",
- "Designer Wallcoverings",
- "Dog",
- "Paper",
- "Red",
- "Red on Off-white",
- "Rob's Folk Art Animals",
- "Rooster",
- "Screen Print",
- "Toile",
- "Traditional",
- "vinyl",
- "Wallcovering",
- "Whimsical Screen Prints Vol. 1",
- "White"
- ],
- "max_price": 193.24,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/rob-s-folk-art-animals-scr-8165"
- },
- {
- "sku": "jutely-vinyl-dwx-58128",
- "handle": "jutely-vinyl-dwx-58128",
- "title": "Jutely Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58128-sample-jutely-vinyl-hollywood-wallcoverings.jpg?v=1775720249",
- "tags": [
- "54\" Width",
- "Architectural",
- "Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contract",
- "Contract Wallcovering",
- "Grasscloth",
- "hollywood",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Jute",
- "Natural Look",
- "Neutral",
- "Tan",
- "Texture",
- "Textured",
- "Traditional",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wide Width",
- "Woven"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/jutely-vinyl-dwx-58128"
- },
- {
- "sku": "asha-gold-lotus-damask-wallpaper-cca-83234",
- "handle": "asha-gold-lotus-damask-wallpaper-cca-83234",
- "title": "Asha Gold Lotus Damask Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/5d4a363f07f49d7ada8dda4ca37bee3d.jpg?v=1572309981",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Cream",
- "Damask",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/asha-gold-lotus-damask-wallpaper-cca-83234"
- },
- {
- "sku": "gianna-blackberry-texture-wallpaper-wallpaper-cca-82879",
- "handle": "gianna-blackberry-texture-wallpaper-wallpaper-cca-82879",
- "title": "Gianna Blackberry Texture Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/1b4ec75e87cefefd6dcbe8fcc21040a6.jpg?v=1572309958",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Faux",
- "Faux Effects",
- "LA Walls",
- "Mauve",
- "Pink",
- "Prepasted",
- "Purple",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/gianna-blackberry-texture-wallpaper-wallpaper-cca-82879"
- },
- {
- "sku": "eur-80282-ncw4274-designer-wallcoverings-los-angeles",
- "handle": "eur-80282-ncw4274-designer-wallcoverings-los-angeles",
- "title": "Palmetto 06 - Ecru Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513502220339.jpg?v=1775523148",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "COROMANDEL",
- "Cream",
- "Hallway",
- "Living Room",
- "Minimalist",
- "NCW4274",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Palmetto",
- "Paper",
- "Serene",
- "Stripe",
- "Taupe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80282-ncw4274-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwtt-71510-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71510-designer-wallcoverings-los-angeles",
- "title": "Kendall White on Sea Mist | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/Heritage-ArboretaFAB-colorseries.jpg?v=1773244317",
- "tags": [
- "Architectural",
- "Geometric",
- "Geometric Resource 2",
- "light green",
- "Pattern",
- "T11059",
- "Thibaut",
- "Transitional",
- "Trellis",
- "Unknown",
- "Wallcovering",
- "white",
- "White on Sea Mist"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71510-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "seine-marne-durable-vinyl-dur-72124",
- "handle": "seine-marne-durable-vinyl-dur-72124",
- "title": "Seine Marne Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72124-sample-clean.jpg?v=1774484481",
- "tags": [
- "Architectural",
- "Basketweave",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Durable Type 2 Vinyl",
- "Geometric",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Light Gray",
- "Living Room",
- "Pale Beige",
- "Serene",
- "Textured",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/seine-marne-durable-vinyl-dur-72124"
- },
- {
- "sku": "benedict-canyon-sisal-hlw-73023",
- "handle": "benedict-canyon-sisal-hlw-73023",
- "title": "Benedict Canyon Sisal | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/hlw-73023-sample-benedict-canyon-sisal-hollywood-wallcoverings.jpg?v=1775703748",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Charcoal Gray",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Grasscloth Weave",
- "Gray",
- "Grey",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Natural",
- "Natural Texture",
- "Naturally Glamorous",
- "Off-white",
- "Organic",
- "Organic Modern",
- "Rustic",
- "Sisal",
- "Stripe",
- "Tan",
- "Textured",
- "Wallcovering",
- "Woven"
- ],
- "max_price": 63.43,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/benedict-canyon-sisal-hlw-73023"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_wwdf-210-jpg",
- "handle": "wolfgordonwallcovering_dwwg_wwdf-210-jpg",
- "title": "WonderWood® - Gray Barn Oak Qtd | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/wwdf-210f.jpg?v=1762312408",
- "tags": [
- "100% Reconstituted Wood Veneer",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Farmhouse",
- "Gray Barn Oak Qtd",
- "Light Brown",
- "Natural",
- "Reconstituted",
- "Scandinavian",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings",
- "WonderWood®"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_wwdf-210-jpg"
- },
- {
- "sku": "nicky-sky-textured-pinstripe-wallpaper-cca-83030",
- "handle": "nicky-sky-textured-pinstripe-wallpaper-cca-83030",
- "title": "Nicky Sky Textured Pinstripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/a840708a1f5b29ad1e205d9a4bdb909c.jpg?v=1572309966",
- "tags": [
- "Architectural",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Kids",
- "LA Walls",
- "Light Blue",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 64.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/nicky-sky-textured-pinstripe-wallpaper-cca-83030"
- },
- {
- "sku": "fairford-vinyl-wallcovering-xlb-47661",
- "handle": "fairford-vinyl-wallcovering-xlb-47661",
- "title": "Fairford Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xlb-47661-sample-fairford-vinyl-hollywood-wallcoverings.jpg?v=1775711712",
- "tags": [
- "Architectural",
- "Bedroom",
- "Brown",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Gray",
- "Grey",
- "Hollywood Wallcoverings",
- "Light Grey",
- "Living Room",
- "Minimalist",
- "Office",
- "Serene",
- "Silver",
- "Stripe",
- "Taupe",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/fairford-vinyl-wallcovering-xlb-47661"
- },
- {
- "sku": "captiva-light-pink-floral-toss-wallpaper-cca-83046",
- "handle": "captiva-light-pink-floral-toss-wallpaper-cca-83046",
- "title": "Captiva Light Pink Floral Toss Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/990a597d9507031518df912cab255638.jpg?v=1572309966",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Floral",
- "Flowers",
- "Gray",
- "LA Walls",
- "Light Pink",
- "Pink",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 64.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/captiva-light-pink-floral-toss-wallpaper-cca-83046"
- },
- {
- "sku": "puna-drive-natural-grassweave-hlw-73121",
- "handle": "puna-drive-natural-grassweave-hlw-73121",
- "title": "Puna Drive - Natural Grassweave | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73121-sample-clean.jpg?v=1774483559",
- "tags": [
- "Architectural",
- "Bedroom",
- "Brown",
- "Charcoal Gray",
- "Coastal",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Grasscloth Weave",
- "Gray",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Natural",
- "Naturally Glamorous",
- "Organic",
- "Organic Modern",
- "Rustic",
- "Textured",
- "Umber",
- "Wallcovering",
- "Woven"
- ],
- "max_price": 41.7,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/puna-drive-natural-grassweave-hlw-73121"
- },
- {
- "sku": "vomera-snow-white-faux-travertine-wbs-39653",
- "handle": "vomera-snow-white-faux-travertine-wbs-39653",
- "title": "Vomera Snow White Faux Travertine | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/wbs-39653-sample-vomera-snow-white-faux-travertine-hollywood-wallcoverings.jpg?v=1775736186",
- "tags": [
- "Architectural",
- "Bedroom",
- "Bricks and Stones",
- "Class A Fire Rated",
- "Color: White",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed Texture",
- "Faux",
- "Faux Finish",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Grey",
- "Living Room",
- "Minimalist",
- "Off-white",
- "Paper Backed Solid Vinyl Wallcoverings",
- "Rich Woods",
- "Serene",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wallcoverings",
- "White",
- "Wood"
- ],
- "max_price": 34.29,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/vomera-snow-white-faux-travertine-wbs-39653"
- },
- {
- "sku": "dwtt-71194-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71194-designer-wallcoverings-los-angeles",
- "title": "Alicia Metallic Silver | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T89119_751b265b-c46e-40c9-a657-55f7f09a82b1.jpg?v=1733894508",
- "tags": [
- "Architectural",
- "Damask",
- "Damask Resource 4",
- "light gray",
- "Metallic Silver",
- "Pattern",
- "silver",
- "T89119",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71194-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "daytona-faux-embossed-durable-walls-xwc-53236",
- "handle": "daytona-faux-embossed-durable-walls-xwc-53236",
- "title": "Daytona Faux Embossed Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwc-53236-sample-daytona-faux-embossed-durable-hollywood-wallcoverings.jpg?v=1775710130",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Embossed Texture",
- "Faux",
- "Faux Finish",
- "Grasscloth",
- "Hallway",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Light Beige",
- "Living Room",
- "Stripe",
- "Taupe",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/daytona-faux-embossed-durable-walls-xwc-53236"
- },
- {
- "sku": "sullivan-lilac-ombre-vine-trail-wallpaper-wallpaper-cca-82901",
- "handle": "sullivan-lilac-ombre-vine-trail-wallpaper-wallpaper-cca-82901",
- "title": "Sullivan Lilac Ombre Vine Trail Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/b4ac54a862758569e3d13f2310ce9b42.jpg?v=1572309961",
- "tags": [
- "Architectural",
- "Beige",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Green",
- "Kids",
- "LA Walls",
- "Leaf",
- "Lilac",
- "Multi",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Vine",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/sullivan-lilac-ombre-vine-trail-wallpaper-wallpaper-cca-82901"
- },
- {
- "sku": "susie-brown-chevron-wallpaper-cca-83038",
- "handle": "susie-brown-chevron-wallpaper-cca-83038",
- "title": "Susie Brown Chevron Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/670d2d4595e526a8571526228d461c4e.jpg?v=1572309966",
- "tags": [
- "Architectural",
- "Beige",
- "Chevron",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Geometric",
- "Green",
- "Kids",
- "LA Walls",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/susie-brown-chevron-wallpaper-cca-83038"
- },
- {
- "sku": "cubism-drive-hlw-73044",
- "handle": "cubism-drive-hlw-73044",
- "title": "Cubism Drive | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73044-sample-clean.jpg?v=1774483184",
- "tags": [
- "Architectural",
- "Art Deco",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Geometric",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Modern",
- "Natural",
- "Naturally Glamorous",
- "Sophisticated",
- "Taupe",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 159.27,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/cubism-drive-hlw-73044"
- },
- {
- "sku": "biscay-bay-bourbon-wood-grain-wbs-39614",
- "handle": "biscay-bay-bourbon-wood-grain-wbs-39614",
- "title": "Biscay Bay Bourbon Wood Grain | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/wbs-39614-sample-biscay-bay-bourbon-wood-grain-hollywood-wallcoverings.jpg?v=1775705249",
- "tags": [
- "Architectural",
- "Beige",
- "Brick",
- "Bricks and Stones",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Conference Room",
- "Contemporary",
- "Dark Green",
- "Embossed Texture",
- "Faux",
- "Faux Wood",
- "Glamorous",
- "Gold",
- "Hollywood Wallcoverings",
- "Hotel Lobby",
- "Living Room",
- "Luxe",
- "Luxurious",
- "Paper Backed Solid Vinyl Wallcoverings",
- "Regencycore",
- "Rich Woods",
- "Solid",
- "Tan",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Wallcoverings",
- "White",
- "Wood",
- "Wood Grain",
- "Yellow"
- ],
- "max_price": 54.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/biscay-bay-bourbon-wood-grain-wbs-39614"
- },
- {
- "sku": "ncw4394-03",
- "handle": "ncw4394-03",
- "title": "Nina Campbell Wallcoverings - Aqua Tint Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497266311219.jpg?v=1775520824",
- "tags": [
- "Architectural",
- "Beige",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Leaf",
- "Light Blue",
- "NCW4394-03",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Paper",
- "Stripe",
- "Textured",
- "Traditional",
- "Vine",
- "Wallcovering",
- "Wallcoverings",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4394-03"
- },
- {
- "sku": "loftus-type-ii-vinyl-wallcovering-xlz-47885",
- "handle": "loftus-type-ii-vinyl-wallcovering-xlz-47885",
- "title": "Loftus Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xlz-47885-sample-loftus-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775722225",
- "tags": [
- "Architectural",
- "Blue",
- "Brown",
- "Class A Fire Rated",
- "Color: Purple",
- "Commercial",
- "Commercial Wallcovering",
- "Conference Room",
- "Contemporary",
- "Eggplant",
- "Glamorous",
- "Gold",
- "Grasscloth",
- "Green",
- "Hallway",
- "Hollywood Wallcoverings",
- "Hotel Lobby",
- "Ivory",
- "Loftus Type 2 Vinyl Wallcovering",
- "Luxe",
- "Luxurious",
- "Mahogany",
- "Olive",
- "Purple",
- "Regencycore",
- "Solid",
- "Stripe",
- "Teal",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/loftus-type-ii-vinyl-wallcovering-xlz-47885"
- },
- {
- "sku": "canal-texture-durable-walls-xwa-52094",
- "handle": "canal-texture-durable-walls-xwa-52094",
- "title": "Canal Texture Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/capulet-spice.jpg?v=1777480398",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Brown",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Dining Room",
- "Fire Rated",
- "Flame Certificate Available",
- "Golden Brown",
- "Grasscloth",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Stripe",
- "Tan",
- "Texture",
- "Textured",
- "Traditional",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering",
- "Warm",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\""
- ],
- "max_price": 66.82,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/canal-texture-durable-walls-xwa-52094"
- },
- {
- "sku": "rustic-glam-vinyl-gpr-76642",
- "handle": "rustic-glam-vinyl-gpr-76642",
- "title": "Rustic Glam Vinyl",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/GPR-76642-sample-clean_159bebae-b7d0-4f9d-869e-0e4213655524.jpg?v=1774479040",
- "tags": [
- "Architectural",
- "Bedroom",
- "Bling",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Farmhouse",
- "Glass Bead",
- "Hallway",
- "Hand Crafted",
- "Hollywood Wallcoverings",
- "Living Room",
- "Mural",
- "Mushroom",
- "Organic",
- "Organic Modern",
- "Rustic",
- "Stone Gray",
- "Stripe",
- "Taupe",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Wood Grain"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/rustic-glam-vinyl-gpr-76642"
- },
- {
- "sku": "frank-s-faux-finish-fff-2936",
- "handle": "frank-s-faux-finish-fff-2936",
- "title": "Frank's Faux Finish Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fff-2936-sample-frank-s-faux-finish-wallpaper-hollywood-wallcoverings.jpg?v=1775714268",
- "tags": [
- "Architectural",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 36.21,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/frank-s-faux-finish-fff-2936"
- },
- {
- "sku": "mia-orange-faux-zebra-stripes-wallpaper-wallpaper-cca-82861",
- "handle": "mia-orange-faux-zebra-stripes-wallpaper-wallpaper-cca-82861",
- "title": "Mia Orange Faux Zebra Stripes Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ca3c9d56eb9407aa0dc9a113d78fd614.jpg?v=1572309958",
- "tags": [
- "Animal Prints",
- "Animal/Insects",
- "Animals",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Fauna",
- "Faux",
- "LA Walls",
- "Orange",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Strippable",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04",
- "Zebra"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/mia-orange-faux-zebra-stripes-wallpaper-wallpaper-cca-82861"
- },
- {
- "sku": "pearl-bay-vertical-faux-durable-walls-xwh-52375",
- "handle": "pearl-bay-vertical-faux-durable-walls-xwh-52375",
- "title": "Pearl Bay Vertical Faux Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/perplex-jetstream.jpg?v=1777480544",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Faux",
- "Faux Finish",
- "Geometric",
- "Gray",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Light Taupe",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Modern",
- "Office",
- "Sophisticated",
- "Stripe",
- "Taupe",
- "Textured",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/pearl-bay-vertical-faux-durable-walls-xwh-52375"
- },
- {
- "sku": "twinkle-twinkle-large-mural-by-retro-walls-rtr-37258",
- "handle": "twinkle-twinkle-large-mural-by-retro-walls-rtr-37258",
- "title": "Twinkle Twinkle Large Mural by Retro Walls",
- "vendor": "Traditional Whimsy",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/7d2e5e4dbb7a15416396a41484e30530.jpg?v=1572309703",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Bird",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Heavy-duty Wallcovering with paper top-layer and non-woven backing // Colourfast and washable with a soft cloth // Butted seam (but",
- "House",
- "Multi",
- "Mural",
- "Mushroom",
- "Purple",
- "Red",
- "Scenic",
- "Star",
- "Teal",
- "Traditional Whimsy",
- "Vinyl",
- "Wallcovering",
- "Whimsical",
- "Yellow"
- ],
- "max_price": 94,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/twinkle-twinkle-large-mural-by-retro-walls-rtr-37258"
- },
- {
- "sku": "oxford-type-ii-vinyl-wallcovering-xvg-49322",
- "handle": "oxford-type-ii-vinyl-wallcovering-xvg-49322",
- "title": "Oxford Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/baccarat-lumiere.jpg?v=1777480351",
- "tags": [
- "Architectural",
- "Bedroom",
- "Charcoal Gray",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gray",
- "Grey",
- "Hollywood Wallcoverings",
- "Living Room",
- "Medium Gray",
- "Mfr-Image-Refreshed",
- "Minimalist",
- "Modern",
- "Office",
- "Serene",
- "Silver",
- "Silver Gray",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/oxford-type-ii-vinyl-wallcovering-xvg-49322"
- },
- {
- "sku": "ncw4354-03",
- "handle": "ncw4354-03",
- "title": "Les Indiennes Garance Fresh Grey - Grey Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497264836659.jpg?v=1775520601",
- "tags": [
- "Architectural",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Floral",
- "Gray",
- "Medallion",
- "NCW4354-03",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Paper",
- "Traditional",
- "Wallcovering",
- "Wallcoverings",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4354-03"
- },
- {
- "sku": "tarsia-grey-green-wallcovering-versace-1",
- "handle": "tarsia-grey-green-wallcovering-versace-1",
- "title": "Tarsia Grey Green Wallcovering | Versace",
- "vendor": "Versace",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/123dea43c17e95c76a8c00bee63b56dc.jpg?v=1773710608",
- "tags": [
- "A.S. Création",
- "AI-Analyzed-v2",
- "Architectural",
- "Bathroom",
- "Class A Fire Rated",
- "Color: Green",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "display_variant",
- "Geometric",
- "Green",
- "Grey",
- "Grey Green",
- "Hallway",
- "Italian",
- "Light Green",
- "Living Room",
- "Luxury",
- "Needs-Image",
- "Off-white",
- "Paste the wall",
- "Seafoam Green",
- "Serene",
- "Tarsia",
- "Tarsia Grey Green Wallcovering",
- "Tile",
- "Trending Wallpaper Collection 2026",
- "Versace",
- "Versace VI",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 352.94,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/tarsia-grey-green-wallcovering-versace-1"
- },
- {
- "sku": "saint-lore-durable-vinyl-dur-72220",
- "handle": "saint-lore-durable-vinyl-dur-72220",
- "title": "Soft Faux Suede - Beige Commercial Wallcovering | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72220-sample-clean.jpg?v=1774484785",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Grasscloth",
- "Green",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Office",
- "Sage",
- "Taupe",
- "Textured",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/saint-lore-durable-vinyl-dur-72220"
- },
- {
- "sku": "dwtt-71527-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71527-designer-wallcoverings-los-angeles",
- "title": "Gilon Aqua | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T11015_54b4cf35-0ef8-401a-b286-2d783a139fea.jpg?v=1733893903",
- "tags": [
- "Aqua",
- "Architectural",
- "Geometric",
- "Geometric Resource 2",
- "light blue",
- "Pattern",
- "T11015",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71527-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwtt-72185-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72185-designer-wallcoverings-los-angeles",
- "title": "Stablewood Blue | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T3612.jpg?v=1733892539",
- "tags": [
- "Architectural",
- "beige",
- "Blue",
- "Coastal",
- "Grasscloth Resource 2",
- "light blue",
- "Pattern",
- "Stripe",
- "T3612",
- "tan",
- "Texture",
- "Thibaut",
- "Transitional",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72185-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwc-1001657",
- "handle": "dwc-1001657",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693310799923.jpg?v=1775521403",
- "tags": [
- "AI-Analyzed-v2",
- "Animal/Insects",
- "Architectural",
- "Beige",
- "Bird",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Gold",
- "NCW4356-01",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paper",
- "Traditional",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001657"
- },
- {
- "sku": "caterina-embossed-vinyl-wallpaper-type-2-xwa-73274",
- "handle": "caterina-embossed-vinyl-wallpaper-type-2-xwa-73274",
- "title": "Caterina Embossed Vinyl - Type 2 | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwa-73274-sample-caterina-embossed-vinyl-type-2-hollywood.jpg?v=1775707602",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Camel",
- "Caterina Embossed Vinyl",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Embossed Texture",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Living Room",
- "Minimalist",
- "Office",
- "Organic Modern",
- "Paper",
- "Phillip Romano Commercial",
- "Solid",
- "Tan",
- "Textured",
- "Traditional",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Wood Grain"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/caterina-embossed-vinyl-wallpaper-type-2-xwa-73274"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_act-5072-jpg",
- "handle": "wolfgordonwallcovering_dwwg_act-5072-jpg",
- "title": "Acute - Sienna | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/act-5072.jpg?v=1762357945",
- "tags": [
- "100% Vinyl",
- "Abstract",
- "Acute",
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Geometric",
- "Paper",
- "Tan",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_act-5072-jpg"
- },
- {
- "sku": "motif-typhoon-romo",
- "handle": "motif-typhoon-romo",
- "title": "Motif Typhoon | Romo",
- "vendor": "Romo",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/MW162-04-motif-wallcovering-typhoon_01.jpg?v=1776398652",
- "tags": [
- "Architectural",
- "Background Color green",
- "Collage IV",
- "Commercial",
- "Contemporary",
- "Geometric",
- "Grasscloth",
- "gray",
- "green",
- "Handcrafted Wallcovering",
- "Hotel",
- "Minimalist",
- "Motif",
- "MW162/04",
- "Non-woven",
- "Office",
- "Reception Area",
- "Romo",
- "Sage Green",
- "Scandinavian",
- "Small",
- "Soft White",
- "Texture",
- "Textured",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/motif-typhoon-romo"
- },
- {
- "sku": "wells-denim-candy-stripe-wallpaper-cca-83226",
- "handle": "wells-denim-candy-stripe-wallpaper-cca-83226",
- "title": "Wells Denim Candy Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/8c01d4dd9df15fb67c0218204b63c00d.jpg?v=1572309973",
- "tags": [
- "Architectural",
- "Beige",
- "Blue",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Traditional",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wells-denim-candy-stripe-wallpaper-cca-83226"
- },
- {
- "sku": "carved-squares-wallcovering-xcs-44046",
- "handle": "carved-squares-wallcovering-xcs-44046",
- "title": "Carved Squares | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xcs-44046-sample-carved-squares-hollywood-wallcoverings.jpg?v=1775707214",
- "tags": [
- "Abstract",
- "Architectural",
- "ASTM E84 Class A",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Geometric",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Living Room",
- "Minimalist",
- "Organic Modern",
- "Serene",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 41.41,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/carved-squares-wallcovering-xcs-44046"
- },
- {
- "sku": "pauline-s-retro-geometric-scr-8000",
- "handle": "pauline-s-retro-geometric-scr-8000",
- "title": "Pauline's Retro Geometric",
- "vendor": "Studio Toten",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/61c211a316e9c035169ed4bff1cf56bb.jpg?v=1572309104",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Designer Wallcoverings",
- "Floral",
- "Geometric",
- "Mid-Century Modern",
- "Paper",
- "Pauline's Retro Geometric",
- "Pink",
- "Pink White",
- "Screen Print",
- "Wallcovering",
- "Whimsical Screen Prints Vol. 1",
- "White"
- ],
- "max_price": 146.18,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/pauline-s-retro-geometric-scr-8000"
- },
- {
- "sku": "kenley-pink-polka-dots-wallpaper-wallpaper-cca-82869",
- "handle": "kenley-pink-polka-dots-wallpaper-wallpaper-cca-82869",
- "title": "Kenley Pink Polka Dots Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/6a6dd48b682e87fd0de9486dd28d9994.jpg?v=1572309958",
- "tags": [
- "Architectural",
- "Commercial",
- "Discontinued",
- "Dots",
- "Easy Walls",
- "LA Walls",
- "Paper",
- "Pink",
- "Polka Dots",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Wallcovering",
- "Washable",
- "Whimsical",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/kenley-pink-polka-dots-wallpaper-wallpaper-cca-82869"
- },
- {
- "sku": "faux-leaf-squares-fls-2760",
- "handle": "faux-leaf-squares-fls-2760",
- "title": "Faux Leaf Squares | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fls-2760-sample-faux-leaf-squares-hollywood-wallcoverings.jpg?v=1775712030",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Cream",
- "Faux Finish",
- "Faux Leaf Squares",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Khaki",
- "Textured",
- "Traditional",
- "Transitional",
- "vinyl",
- "Wallcovering",
- "White",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 31.92,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-leaf-squares-fls-2760"
- },
- {
- "sku": "la-voltere-durable-vinyl-dur-72299",
- "handle": "la-voltere-durable-vinyl-dur-72299",
- "title": "la Voltere Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72299-sample-clean.jpg?v=1774485096",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Linen",
- "Linen Texture",
- "Living Room",
- "Serene",
- "Solid",
- "Taupe",
- "Textured",
- "Traditional",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/la-voltere-durable-vinyl-dur-72299"
- },
- {
- "sku": "dwss-72653",
- "handle": "dwss-72653",
- "title": "Simons Ang white Sample Wallcovering | Sandberg",
- "vendor": "Sandberg",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/708-01_image1_d560f694-babd-4b7d-a9f0-7fd580c05eaa.jpg?v=1646104958",
- "tags": [
- "AI-Analyzed-v2",
- "ANG WHITE",
- "Architectural",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Floral",
- "Green",
- "P708-01",
- "Paper",
- "Pattern",
- "Pink",
- "Sandberg",
- "Simons",
- "Simons Ang white Sample",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwss-72653"
- },
- {
- "sku": "hollywood-contemporary-coast-xhw-2010369",
- "handle": "hollywood-contemporary-coast-xhw-2010369",
- "title": "Hollywood Contemporary Coast | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/XHW-2010369-sample-clean.jpg?v=1774482605",
- "tags": [
- "35.04 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Yellow",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Coastal",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Extra Heavy Duty",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Gold",
- "Golden Yellow",
- "Hallway",
- "Healthcare",
- "Heavy Duty",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Living Room",
- "Modern",
- "Mustard Yellow",
- "Organic Modern",
- "Stripe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Warranty Available",
- "Weight: 35.04 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Look",
- "Yellow"
- ],
- "max_price": 96.58,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hollywood-contemporary-coast-xhw-2010369"
- },
- {
- "sku": "coldwater-hills-panels-hlw-73060",
- "handle": "coldwater-hills-panels-hlw-73060",
- "title": "Coldwater Hills - Panels | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73060-sample-clean.jpg?v=1774483273",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Biophilic",
- "Brown",
- "Class A Fire Rated",
- "Coldwater Hills",
- "Color: Green",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Green",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Living Room",
- "Natural",
- "Naturally Glamorous",
- "Non-woven",
- "Office",
- "Organic Modern",
- "Sage Green",
- "Scenic",
- "Serene",
- "Taupe",
- "Wallcovering",
- "Watercolor"
- ],
- "max_price": 139.52,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/coldwater-hills-panels-hlw-73060"
- },
- {
- "sku": "dwtt-71364-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71364-designer-wallcoverings-los-angeles",
- "title": "Fair Isle Red | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T88733_91326d2d-ea9c-4a4c-8a87-5de88c359834.jpg?v=1733894175",
- "tags": [
- "Architectural",
- "beige",
- "Botanical",
- "gold",
- "Pattern",
- "Red",
- "Stripe",
- "T88733",
- "Thibaut",
- "Trade Routes",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71364-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "pippy-s-peacock-wallpaper-dark-blue-pea-53621",
- "handle": "pippy-s-peacock-wallpaper-dark-blue-pea-53621",
- "title": "Pippy's Peacock Wallcovering - Dark Blue",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/3352a14315a70e4bc17173f26461d4a2.jpg?v=1572309270",
- "tags": [
- "AI-Analyzed-v2",
- "Animal Print",
- "Animal/Insects",
- "Architectural",
- "Art Deco",
- "Bedroom",
- "Blue",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Dark Purple",
- "Dining Room",
- "European",
- "European Import",
- "European Prints",
- "Glam",
- "Gold",
- "Hollywood Regency",
- "Living Room",
- "Navy Blue",
- "Office",
- "Paper",
- "Peacock",
- "Phillipe Romano",
- "Pippy's Peacock Wallcovering",
- "Purple",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 5,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/pippy-s-peacock-wallpaper-dark-blue-pea-53621"
- },
- {
- "sku": "essone-durable-vinyl-dur-72267",
- "handle": "essone-durable-vinyl-dur-72267",
- "title": "Essone Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72267-sample-clean.jpg?v=1774484941",
- "tags": [
- "Architectural",
- "Bedroom",
- "Blue",
- "Burnt Orange",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Blue",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Gray",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Modern",
- "Orange",
- "Organic Modern",
- "Serene",
- "Sky Blue",
- "Stripe",
- "Teal",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/essone-durable-vinyl-dur-72267"
- },
- {
- "sku": "edgware-type-ii-vinyl-wallcovering-xlb-47640",
- "handle": "edgware-type-ii-vinyl-wallcovering-xlb-47640",
- "title": "Edgware Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xlb-47640-sample-edgware-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775711022",
- "tags": [
- "Architectural",
- "Basketweave",
- "Bedroom",
- "Brown",
- "Burnt Sienna",
- "Class A Fire Rated",
- "Color: Red",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Coral",
- "Edgware Type 2 Vinyl Wallcovering",
- "Geometric",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Orange",
- "Red",
- "Terra Cotta",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/edgware-type-ii-vinyl-wallcovering-xlb-47640"
- },
- {
- "sku": "dwc-1001671",
- "handle": "dwc-1001671",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693311455283.jpg?v=1775521495",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Floral",
- "Light Blue",
- "NCW4392-01",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paper",
- "Traditional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001671"
- },
- {
- "sku": "dwkk-130027",
- "handle": "dwkk-130027",
- "title": "Kravet Design - Beige Wallcovering | Kravet",
- "vendor": "Kravet",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W4013_86_1e712722-15d2-440b-9f64-84411f60fa51.jpg?v=1753321469",
- "tags": [
- "36In",
- "Architectural",
- "Archived-Triple-Verified",
- "Archived-Vendor-Gone",
- "Basketweave",
- "Beige",
- "Brown",
- "Charcoal",
- "China",
- "Coastal",
- "Commercial",
- "Contemporary",
- "Dining Room",
- "display_variant",
- "Elements Ii Naturals",
- "Farmhouse",
- "Grasscloth",
- "Grasscloth Texture",
- "Grasscloth Wallcovering",
- "Gray",
- "Hallway",
- "Kravet",
- "Kravet Design",
- "Lattice",
- "Living Room",
- "Organic",
- "Paper - 100%",
- "Pattern",
- "Rustic",
- "Taupe",
- "Texture",
- "Textured",
- "Traditional",
- "W4013-86",
- "W4013.86.0",
- "Wallcovering",
- "Woven"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwkk-130027"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_lyr-3369_8-jpg",
- "handle": "wolfgordonwallcovering_dwwg_lyr-3369_8-jpg",
- "title": "Lyra - Honeycomb | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/lyr-3369_8.jpg?v=1762299581",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Gold",
- "Honeycomb",
- "Lyra",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_lyr-3369_8-jpg"
- },
- {
- "sku": "iksel-wall-panel-murals-at-designer-wallcoverings-iksel",
- "handle": "iksel-wall-panel-murals-at-designer-wallcoverings-iksel",
- "title": "IKSEL Wall Panel Murals at Designer s Wallcovering | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/IKSEL-clean.jpg?v=1774482697",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Bedroom",
- "Bird",
- "Blue",
- "Botanical",
- "Brown",
- "Chinoiserie",
- "Color: Green",
- "Commercial",
- "Commercial Wallcovering",
- "Coral",
- "Cottagecore",
- "Dining Room",
- "Floral",
- "Grandmillennial",
- "Green",
- "Hollywood Wallcoverings",
- "Light Blue",
- "Living Room",
- "Moss",
- "Mural",
- "Orange",
- "Paper",
- "Peach",
- "Red",
- "Sage Green",
- "Serene",
- "Smoke",
- "Taupe",
- "Teal",
- "Traditional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/iksel-wall-panel-murals-at-designer-wallcoverings-iksel"
- },
- {
- "sku": "emerson-aqua-paisley-stripe-wallpaper-cca-82909",
- "handle": "emerson-aqua-paisley-stripe-wallpaper-cca-82909",
- "title": "Emerson Aqua Paisley Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/667d04c7067bd2ad9fe25619b8f3c3a3.jpg?v=1572309961",
- "tags": [
- "Aqua",
- "Architectural",
- "Beige",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Global",
- "Green",
- "LA Walls",
- "Masculine",
- "Paisley",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/emerson-aqua-paisley-stripe-wallpaper-cca-82909"
- },
- {
- "sku": "vomera-snow-faux-tile-wbs-39646",
- "handle": "vomera-snow-faux-tile-wbs-39646",
- "title": "Vomera Snow Faux Tile | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/wbs-39646-sample-vomera-snow-faux-tile-hollywood-wallcoverings.jpg?v=1775736157",
- "tags": [
- "Architectural",
- "Bathroom",
- "Bedroom",
- "Beige",
- "Brick",
- "Bricks and Stones",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Eggshell",
- "Embossed Texture",
- "Faux",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Ivory",
- "Living Room",
- "Minimalist",
- "Off-White",
- "Paper Backed Solid Vinyl Wallcoverings",
- "Rich Woods",
- "Serene",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wallcoverings",
- "White",
- "Wood"
- ],
- "max_price": 34.29,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/vomera-snow-faux-tile-wbs-39646"
- },
- {
- "sku": "ghost-ship-large-mural-by-retro-walls-rtr-37232",
- "handle": "ghost-ship-large-mural-by-retro-walls-rtr-37232",
- "title": "Ghost Ship Large Mural by Retro Walls",
- "vendor": "Traditional Whimsy",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/830d7ff51cade96c455cbccb5528a8ce.jpg?v=1572309702",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Gray",
- "Heavy-duty Wallcovering with paper top-layer and non-woven backing // Colourfast and washable with a soft cloth // Butted seam (but",
- "Mural",
- "Scenic",
- "Ship",
- "Traditional Whimsy",
- "Vinyl",
- "Wallcovering",
- "Whimsical",
- "White",
- "Yellow"
- ],
- "max_price": 94,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ghost-ship-large-mural-by-retro-walls-rtr-37232"
- },
- {
- "sku": "murano-luxe-texure-by-versace-ver-40505",
- "handle": "murano-luxe-texure-by-versace-ver-40505",
- "title": "Murano Luxe Texure | Versace",
- "vendor": "Versace",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/370505_482c76e9-09df-4c8e-9e9b-3fd78cf7c46a.jpg?v=1745349489",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Luxury",
- "Textured",
- "Versace",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 108.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/murano-luxe-texure-by-versace-ver-40505"
- },
- {
- "sku": "bleinheim-lanvino-wallpaper-xe7-66835",
- "handle": "bleinheim-lanvino-wallpaper-xe7-66835",
- "title": "Bleinheim Lanvino Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/d4a1c1104271f8d48a0a59e578dc7bed.jpg?v=1572309567",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Bleinheim Lanvino Wallcovering",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Light Beige",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Textured",
- "Transitional",
- "vinyl",
- "Vinyls",
- "Wallcovering",
- "White"
- ],
- "max_price": 37.27,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/bleinheim-lanvino-wallpaper-xe7-66835"
- },
- {
- "sku": "sophie-s-scrim-wallcovering-dwx-58087",
- "handle": "sophie-s-scrim-wallcovering-dwx-58087",
- "title": "Sophie's Scrim | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58087-sample-sophie-s-scrim-hollywood-wallcoverings.jpg?v=1775734095",
- "tags": [
- "54\" Width",
- "Animal",
- "Architectural",
- "Basketweave",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Embossed Texture",
- "Grasscloth",
- "Hallway",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Insects",
- "Living Room",
- "Organic Modern",
- "Scrim",
- "Serene",
- "Tan",
- "Textile Weave",
- "Texture",
- "Textured",
- "Tropicana Durable Vinyls",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wide Width",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/sophie-s-scrim-wallcovering-dwx-58087"
- },
- {
- "sku": "sebago-burnt-sienna-dry-brush-stripe-wallpaper-cca-83105",
- "handle": "sebago-burnt-sienna-dry-brush-stripe-wallpaper-cca-83105",
- "title": "Sebago Burnt Sienna Dry Brush Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/b276bf98563139f870173bbf77f74c28.jpg?v=1572309968",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Brown",
- "Burnt Sienna",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Prepasted",
- "Sebago Burnt Sienna Dry Brush Stripe Wallcovering",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Tan",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/sebago-burnt-sienna-dry-brush-stripe-wallpaper-cca-83105"
- },
- {
- "sku": "provence-durable-vinyl-dur-72028",
- "handle": "provence-durable-vinyl-dur-72028",
- "title": "Wool Look - Faux Suede Commercial Wallcovering | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72028-sample-clean.jpg?v=1774484031",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Durable Type 2 Vinyl",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Living Room",
- "Minimalist",
- "Non-woven",
- "Off-white",
- "Organic Modern",
- "Pale Beige",
- "Paper",
- "Provence Durable Vinyl",
- "Serene",
- "Solid",
- "Textured",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/provence-durable-vinyl-dur-72028"
- },
- {
- "sku": "ashbourne-type-ii-vinyl-wallcovering-xjg-47144",
- "handle": "ashbourne-type-ii-vinyl-wallcovering-xjg-47144",
- "title": "Ashbourne Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xjg-47144-sample-ashbourne-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775700866",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Ashbourne Type 2 Vinyl",
- "Bedroom",
- "Champagne",
- "Class A Fire Rated",
- "Color: Yellow",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Light Yellow",
- "Living Room",
- "Minimalist",
- "Organic Modern",
- "Serene",
- "Solid",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ashbourne-type-ii-vinyl-wallcovering-xjg-47144"
- },
- {
- "sku": "jonesport-navy-cabin-stripe-wallpaper-cca-83178",
- "handle": "jonesport-navy-cabin-stripe-wallpaper-cca-83178",
- "title": "Jonesport Navy Cabin Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ab5f33da7b0703511165d46f616d2cca.jpg?v=1572309971",
- "tags": [
- "Architectural",
- "Blue",
- "Coastal",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Navy",
- "Paper",
- "Prepasted",
- "Red",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Traditional",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/jonesport-navy-cabin-stripe-wallpaper-cca-83178"
- },
- {
- "sku": "dwtt-72320-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72320-designer-wallcoverings-los-angeles",
- "title": "Bankun Raffia Butter | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/room-living_room-t6809.jpg?v=1775153618",
- "tags": [
- "Architectural",
- "beige",
- "Butter",
- "light tan",
- "Pattern",
- "T6809",
- "Texture",
- "Texture Resource 3",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72320-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "saint-helene-durable-vinyl-dur-72051",
- "handle": "saint-helene-durable-vinyl-dur-72051",
- "title": "Saint Helene Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72051-sample-clean.jpg?v=1774484151",
- "tags": [
- "Architectural",
- "Bedroom",
- "Champagne",
- "Class A Fire Rated",
- "Color: Yellow",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Grasscloth",
- "Green",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Yellow",
- "Living Room",
- "Minimalist",
- "Organic Modern",
- "Sage",
- "Serene",
- "Solid",
- "Stripe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/saint-helene-durable-vinyl-dur-72051"
- },
- {
- "sku": "dwtt-72221-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72221-designer-wallcoverings-los-angeles",
- "title": "St. Barts Blue | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T4970.jpg?v=1733892463",
- "tags": [
- "Architectural",
- "Blue",
- "Contemporary",
- "Geometric",
- "Jubilee",
- "light blue",
- "Pattern",
- "T4970",
- "Thibaut",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72221-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "corkytown-real-cork-wallpaper-cork-98612",
- "handle": "corkytown-real-cork-wallpaper-cork-98612",
- "title": "Corkytown Real Cork | Phillipe Romano",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/2182ea27d357d499e1e8370e5728e6cd.jpg?v=1775081685",
- "tags": [
- "Architectural",
- "Bathroom",
- "Bedroom",
- "Commercial",
- "Contemporary",
- "Cork",
- "Gray",
- "Living Room",
- "Minimalist",
- "Natural",
- "Naturals",
- "Paper",
- "Phillipe Romano",
- "Phillipe Romano Naturals",
- "Solid/Textural",
- "Spa",
- "Textured",
- "Wallcovering",
- "White",
- "White Cream",
- "Wuhan Woven Wallcovering"
- ],
- "max_price": 34.41,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/corkytown-real-cork-wallpaper-cork-98612"
- },
- {
- "sku": "immersion-by-innovations-usa-dwc-immersion-1",
- "handle": "immersion-by-innovations-usa-dwc-immersion-1",
- "title": "Immersion | Innovations USA",
- "vendor": "Innovations USA",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/Immersion-1.jpg?v=1736199381",
- "tags": [
- "Abstract",
- "Architectural",
- "ASTM E84",
- "Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Gold",
- "Immersion-1",
- "Innovations USA",
- "Metallic",
- "Paper",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/immersion-by-innovations-usa-dwc-immersion-1"
- },
- {
- "sku": "zoe-olive-coco-damask-wallpaper-cca-83262",
- "handle": "zoe-olive-coco-damask-wallpaper-cca-83262",
- "title": "Zoe Olive Coco Damask Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/5d3945163ff4a2339807343a7b6c4347.jpg?v=1572309982",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Cream",
- "Damask",
- "Discontinued",
- "Easy Walls",
- "Embossed",
- "LA Walls",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/zoe-olive-coco-damask-wallpaper-cca-83262"
- },
- {
- "sku": "lanvin-arpergeo-wallpaper-xb8-66605",
- "handle": "lanvin-arpergeo-wallpaper-xb8-66605",
- "title": "Lanvin Arpergeo Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/c71da520066935dd7352452217184be2.jpg?v=1775132191",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Brown",
- "Burgundy",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Brown",
- "Dining Room",
- "Lanvin Arpergeo Wallcovering",
- "Living Room",
- "Office",
- "Paper",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Red",
- "Stripe",
- "Striped",
- "Traditional",
- "Transitional",
- "vinyl",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 38.55,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/lanvin-arpergeo-wallpaper-xb8-66605"
- },
- {
- "sku": "dwtt-71241-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71241-designer-wallcoverings-los-angeles",
- "title": "Volar Putty | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T89145_e8d9eace-7b3b-494b-bf5d-e1400836b1c1.jpg?v=1733894390",
- "tags": [
- "Architectural",
- "beige",
- "Damask",
- "Damask Resource 4",
- "gray",
- "Pattern",
- "Putty",
- "T89145",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71241-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "eur-80427-ncw4491-designer-wallcoverings-los-angeles",
- "handle": "eur-80427-ncw4491-designer-wallcoverings-los-angeles",
- "title": "Almora 02 - Green Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513507659827.jpg?v=1775524023",
- "tags": [
- "Almora",
- "Architectural",
- "Bedroom",
- "Beige",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Cottagecore",
- "Cream",
- "Dining Room",
- "English Country",
- "Floral",
- "Grandmillennial",
- "Green",
- "Lavender",
- "Living Room",
- "Mustard Yellow",
- "NCW4491",
- "NCW4491-02",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Paper",
- "Purple",
- "Sage Green",
- "Serene",
- "SIGNATURE COLLECTION",
- "Traditional",
- "Vine",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80427-ncw4491-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "surry-grey-soft-stripe-wallpaper-cca-83216",
- "handle": "surry-grey-soft-stripe-wallpaper-cca-83216",
- "title": "Surry Grey Soft Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/6bb6af09fc9bfc028fde64fe1d105356.jpg?v=1572309973",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/surry-grey-soft-stripe-wallpaper-cca-83216"
- },
- {
- "sku": "dwtt-72231-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72231-designer-wallcoverings-los-angeles",
- "title": "Gibraltar Light Grey | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T4950.jpg?v=1733892445",
- "tags": [
- "Architectural",
- "beige",
- "Damask",
- "gray",
- "Grey",
- "Jubilee",
- "off-white",
- "Pattern",
- "T4950",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72231-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "chataqua-metallic-contemporary-durable-vinyl-walls-xws-52825",
- "handle": "chataqua-metallic-contemporary-durable-vinyl-walls-xws-52825",
- "title": "Chataqua Metallic Contemporary Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/como-faded_fresco.jpg?v=1777480693",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Hollywood Wallcoverings",
- "Lattice",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Off-white",
- "Organic Modern",
- "Serene",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Woven",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/chataqua-metallic-contemporary-durable-vinyl-walls-xws-52825"
- },
- {
- "sku": "la-roche-durable-vinyl-dur-72078",
- "handle": "la-roche-durable-vinyl-dur-72078",
- "title": "La Roche Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72078-sample-clean.jpg?v=1774484310",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Grasscloth",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Linen Texture",
- "Living Room",
- "Rustic",
- "Taupe",
- "Textured",
- "Traditional",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/la-roche-durable-vinyl-dur-72078"
- },
- {
- "sku": "wells-sky-candy-stripe-wallpaper-cca-83224",
- "handle": "wells-sky-candy-stripe-wallpaper-cca-83224",
- "title": "Wells Sky Candy Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/a0049c27c9eb317b1db38f86af3811fb.jpg?v=1572309973",
- "tags": [
- "Architectural",
- "Beige",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Gray",
- "LA Walls",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Traditional",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wells-sky-candy-stripe-wallpaper-cca-83224"
- },
- {
- "sku": "cote-marine-durable-vinyl-dur-72147",
- "handle": "cote-marine-durable-vinyl-dur-72147",
- "title": "Cote Marine Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72147-sample-clean.jpg?v=1774484565",
- "tags": [
- "Architectural",
- "Basketweave",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Geometric",
- "Gray",
- "Grey",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Gray",
- "Living Room",
- "Minimalist",
- "Serene",
- "Silver",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/cote-marine-durable-vinyl-dur-72147"
- },
- {
- "sku": "faux-wild-rice-fwr-9371",
- "handle": "faux-wild-rice-fwr-9371",
- "title": "Faux Wild Rice | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fwr-9371-sample-faux-wild-rice-hollywood-wallcoverings.jpg?v=1775712090",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial - Cleanable",
- "Contemporary",
- "Elegant Vinyls Vol. 1",
- "Faux Finish",
- "Faux Wild Rice",
- "Hollywood Wallcoverings",
- "Off-white",
- "Textured",
- "Transitional",
- "vinyl",
- "Wallcovering"
- ],
- "max_price": 31.73,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-wild-rice-fwr-9371"
- },
- {
- "sku": "ashbourne-type-ii-vinyl-wallcovering-xjg-47154",
- "handle": "ashbourne-type-ii-vinyl-wallcovering-xjg-47154",
- "title": "Ashbourne Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xjg-47154-sample-ashbourne-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775701125",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Ashbourne Type 2 Vinyl",
- "Bedroom",
- "Class A Fire Rated",
- "Color: White",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Grey",
- "Living Room",
- "Minimalist",
- "Off-white",
- "Serene",
- "Solid",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ashbourne-type-ii-vinyl-wallcovering-xjg-47154"
- },
- {
- "sku": "millinocket-charcoal-illusion-stripe-wallpaper-cca-83114",
- "handle": "millinocket-charcoal-illusion-stripe-wallpaper-cca-83114",
- "title": "Millinocket Charcoal Illusion Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/7508cc63576d2fe963c8d703aa96e4fc.jpg?v=1572309969",
- "tags": [
- "Architectural",
- "Beige",
- "Charcoal",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Gray",
- "LA Walls",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Taupe",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/millinocket-charcoal-illusion-stripe-wallpaper-cca-83114"
- },
- {
- "sku": "biejing-embossed-walls-bew-9507",
- "handle": "biejing-embossed-walls-bew-9507",
- "title": "Biejing Embossed | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/bew-9507-sample-biejing-embossed-hollywood-wallcoverings.jpg?v=1775705138",
- "tags": [
- "Abstract",
- "Architectural",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial - Cleanable",
- "Commercial Wallcovering",
- "Contemporary",
- "Elegant Vinyls Vol. 1",
- "Embossed",
- "Embossed Texture",
- "Geometric",
- "Hollywood Wallcoverings",
- "Hotel Lobby",
- "Light Beige",
- "Living Room",
- "Minimalist",
- "Modern",
- "Office",
- "Serene",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 39.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/biejing-embossed-walls-bew-9507"
- },
- {
- "sku": "villa-velore-durable-vinyl-dur-72323",
- "handle": "villa-velore-durable-vinyl-dur-72323",
- "title": "Villa Velore Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72323-sample-clean.jpg?v=1774485184",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Color: White",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Durable Type 2 Vinyl",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Non-woven",
- "Off-white",
- "Organic Modern",
- "Serene",
- "Stripe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/villa-velore-durable-vinyl-dur-72323"
- },
- {
- "sku": "colby-pink-love-spots-wallpaper-cca-83001",
- "handle": "colby-pink-love-spots-wallpaper-cca-83001",
- "title": "Colby Pink Love Spots Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/aafaf3e0e93f56dfbfe5ae941cad3790.jpg?v=1572309965",
- "tags": [
- "Architectural",
- "Beige",
- "Commercial",
- "Discontinued",
- "Dots",
- "Easy Walls",
- "Geometric",
- "Green",
- "LA Walls",
- "Paper",
- "Pink",
- "Polka Dots",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Wallcovering",
- "Washable",
- "Whimsical",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/colby-pink-love-spots-wallpaper-cca-83001"
- },
- {
- "sku": "cote-marine-durable-vinyl-dur-72148",
- "handle": "cote-marine-durable-vinyl-dur-72148",
- "title": "Cote Marine Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72148-sample-clean.jpg?v=1774484571",
- "tags": [
- "Architectural",
- "Basketweave",
- "Bedroom",
- "Blue",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Blue",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Gray",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Lattice",
- "Living Room",
- "Minimalist",
- "Navy",
- "Office",
- "Serene",
- "Slate Gray",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/cote-marine-durable-vinyl-dur-72148"
- },
- {
- "sku": "lovela-faux-vertical-durable-walls-xwo-53612",
- "handle": "lovela-faux-vertical-durable-walls-xwo-53612",
- "title": "Lovela Faux Vertical Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/tableau-camel_hair.jpg?v=1777480899",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Faux",
- "Faux Finish",
- "Gold",
- "Grasscloth",
- "Hallway",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Organic Modern",
- "Tan",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/lovela-faux-vertical-durable-walls-xwo-53612"
- },
- {
- "sku": "dwc-1001639",
- "handle": "dwc-1001639",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693309980723.jpg?v=1775521287",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Art Deco",
- "Class A Fire Rated",
- "Commercial",
- "Geometric",
- "Light Blue",
- "NCW4352-03",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Pale Blue",
- "Paper",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001639"
- },
- {
- "sku": "cottondale-contemporary-durable-vinyl-walls-xwp-52648",
- "handle": "cottondale-contemporary-durable-vinyl-walls-xwp-52648",
- "title": "Cottondale Contemporary Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwp-52648-sample-cottondale-contemporary-durable-vinyl-hollywood-wallcoverings.jpg?v=1775709256",
- "tags": [
- "Abstract",
- "Architectural",
- "Burnt Orange",
- "Class A Fire Rated",
- "Color: Orange",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cotton",
- "Energetic",
- "Geometric",
- "Hallway",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Light Grey",
- "Living Room",
- "Mid-century",
- "Mid-century Modern",
- "Modern",
- "Office",
- "Orange",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/cottondale-contemporary-durable-vinyl-walls-xwp-52648"
- },
- {
- "sku": "juno-faux-silk-durable-walls-xje-53771",
- "handle": "juno-faux-silk-durable-walls-xje-53771",
- "title": "Juno Faux Silk Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/XJE-53771-sample-clean.jpg?v=1774482305",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Brown",
- "Burnt Sienna",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Copper",
- "Faux",
- "Faux Finish",
- "Grasscloth",
- "Hallway",
- "Hollywood Wallcoverings",
- "Juno Faux Silk Durable",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Orange",
- "Russet",
- "Rustic",
- "Stripe",
- "Textured",
- "Traditional",
- "Umber",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/juno-faux-silk-durable-walls-xje-53771"
- },
- {
- "sku": "eastport-pewter-arabelle-stripe-wallpaper-cca-83143",
- "handle": "eastport-pewter-arabelle-stripe-wallpaper-cca-83143",
- "title": "Eastport Pewter Arabelle Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/d2a65f2e1632cdbff44062662ba52943.jpg?v=1572309970",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Damask",
- "Discontinued",
- "Easy Walls",
- "Gray",
- "LA Walls",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eastport-pewter-arabelle-stripe-wallpaper-cca-83143"
- },
- {
- "sku": "bleinheim-lanvino-wallpaper-xe7-66841",
- "handle": "bleinheim-lanvino-wallpaper-xe7-66841",
- "title": "Bleinheim Lanvino Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/f37dcb77353b19c7eeababca69241df0.jpg?v=1572309567",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bleinheim Lanvino Wallcovering",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Dark Brown",
- "Fabric",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Stripe",
- "Textured",
- "Traditional",
- "vinyl",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 37.27,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/bleinheim-lanvino-wallpaper-xe7-66841"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_sm10259-jpg",
- "handle": "wolfgordonwallcovering_dwwg_sm10259-jpg",
- "title": "SM10259 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_sm10258.jpg?v=1733872446",
- "tags": [
- "Architectural",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_sm10259-jpg"
- },
- {
- "sku": "susie-pink-chevron-wallpaper-cca-83036",
- "handle": "susie-pink-chevron-wallpaper-cca-83036",
- "title": "Susie Pink Chevron Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/863936ee67c10001ceab04198d5994b6.jpg?v=1572309966",
- "tags": [
- "Architectural",
- "Chevron",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Geometric",
- "Kids",
- "LA Walls",
- "Light Green",
- "Modern",
- "Paper",
- "Pink",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/susie-pink-chevron-wallpaper-cca-83036"
- },
- {
- "sku": "saint-lore-durable-vinyl-dur-72225",
- "handle": "saint-lore-durable-vinyl-dur-72225",
- "title": "Saint Lore Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72225-sample-clean.jpg?v=1774484809",
- "tags": [
- "Architectural",
- "Bedroom",
- "Blue",
- "Class A Fire Rated",
- "Color: Blue",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Teal",
- "Durable Type 2 Vinyl",
- "Gray",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Gray",
- "Linen Texture",
- "Living Room",
- "Minimalist",
- "Office",
- "Serene",
- "Slate Gray",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/saint-lore-durable-vinyl-dur-72225"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_grv-2892_8-jpg",
- "handle": "wolfgordonwallcovering_dwwg_grv-2892_8-jpg",
- "title": "Grove - Khaki | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/grv-2892_8.jpg?v=1762296236",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Beige",
- "Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Grasscloth",
- "Grove",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_grv-2892_8-jpg"
- },
- {
- "sku": "camila-lilac-modern-damask-wallpaper-wallpaper-cca-82840",
- "handle": "camila-lilac-modern-damask-wallpaper-wallpaper-cca-82840",
- "title": "Camila Lilac Modern Damask Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/6ed3a9091307458f7700bb5e226dae92_72be2b7a-ca25-4124-bf72-b2095bd9a55f.jpg?v=1572309957",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Damask",
- "Damasks",
- "Discontinued",
- "Easy Walls",
- "Floral",
- "Green",
- "LA Walls",
- "Lilac",
- "Modern",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/camila-lilac-modern-damask-wallpaper-wallpaper-cca-82840"
- },
- {
- "sku": "shin-moss-golden-scroll-texture-wallpaper-cca-83266",
- "handle": "shin-moss-golden-scroll-texture-wallpaper-cca-83266",
- "title": "Shin Moss Golden Scroll Texture Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/7bff8e81ca009191e5910dcd922ef6cd.jpg?v=1572309982",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Faux",
- "Green",
- "LA Walls",
- "Light Beige",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Shin Moss Golden Scroll Texture Wallcovering",
- "Strippable",
- "Tan",
- "Traditional",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/shin-moss-golden-scroll-texture-wallpaper-cca-83266"
- },
- {
- "sku": "ellsworth-beige-sunny-stripe-wallpaper-cca-83146",
- "handle": "ellsworth-beige-sunny-stripe-wallpaper-cca-83146",
- "title": "Ellsworth Beige Sunny Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/a8fa35eb141e98b06681e90560c52a15.jpg?v=1572309970",
- "tags": [
- "Architectural",
- "Beige",
- "Commercial",
- "Country",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Light Blue",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ellsworth-beige-sunny-stripe-wallpaper-cca-83146"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_sp9507-jpg",
- "handle": "wolfgordonwallcovering_dwwg_sp9507-jpg",
- "title": "SP9507 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_sp9506.jpg?v=1733872416",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Gold",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_sp9507-jpg"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_fdn-5414-jpg",
- "handle": "wolfgordonwallcovering_dwwg_fdn-5414-jpg",
- "title": "Foundation - Slate | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fdn-5414.jpg?v=1762294642",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Dark Gray",
- "Foundation",
- "Gray",
- "Industrial",
- "RAMPART®",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_fdn-5414-jpg"
- },
- {
- "sku": "dwtt-71544-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71544-designer-wallcoverings-los-angeles",
- "title": "Kendall Charcoal | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T11069_2dec507d-a3db-4e76-b7bf-fce71e1618dc.jpg?v=1733893869",
- "tags": [
- "Architectural",
- "brown",
- "Charcoal",
- "Geometric",
- "Geometric Resource 2",
- "gray",
- "Pattern",
- "T11069",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71544-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwkk-127832",
- "handle": "dwkk-127832",
- "title": "Wonderlust Wp - Teal Multi By Clarke And Clarke | Clarke & Clarke Botanical Wonders Wallcovering |Animal/Insects Novelty Wallcovering Print",
- "vendor": "Clarke And Clarke",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W0136_03_CAC_cb823810-8af9-4186-92bb-17addff25b8a.jpg?v=1753321565",
- "tags": [
- "20.5In",
- "Animal Print",
- "Animal/Insects",
- "Architectural",
- "Archived-Triple-Verified",
- "Archived-Vendor-Gone",
- "Bedroom",
- "Biophilic",
- "Bird",
- "Botanical",
- "Branches",
- "Champagne",
- "Charcoal",
- "Chartreuse",
- "Clarke & Clarke Botanical Wonders Wallcovering",
- "Clarke And Clarke",
- "Commercial",
- "Contemporary",
- "Dining Room",
- "display_variant",
- "Dramatic",
- "Eclectic",
- "Emerald Green",
- "Fauna",
- "Floral",
- "Flowers",
- "Gray",
- "Green",
- "Ivory",
- "Leaves",
- "Leopard",
- "Living Room",
- "Maximalist",
- "Moss",
- "Non Woven - 100%",
- "Non-woven",
- "Novelty",
- "Paper",
- "Pink",
- "Print",
- "Rose Quartz",
- "Teal",
- "Tropical",
- "United Kingdom",
- "W0136/03.Cac.0",
- "Wallcovering",
- "White",
- "Wonderlust Wp",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwkk-127832"
- },
- {
- "sku": "hollywood-antique-damask-xhw-2010217",
- "handle": "hollywood-antique-damask-xhw-2010217",
- "title": "Hollywood Antique Damask | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/luca-aquarelle_f5726e93-25cc-456f-a988-cfebf808a278.jpg?v=1777481296",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "Abstract",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "AI-Analyzed-v2",
- "Antique",
- "Architectural",
- "Background Color White",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Purple",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Damask",
- "Dining Room",
- "Fire Rated",
- "Flame Certificate Available",
- "Grandmillennial",
- "Healthcare",
- "Hollywood Antique Damask",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Lavender",
- "Light Blue",
- "Light Grey",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Non-woven",
- "Pattern",
- "Purple",
- "Serene",
- "Traditional",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "White",
- "Wide Width",
- "Width: 54\""
- ],
- "max_price": 53.5,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hollywood-antique-damask-xhw-2010217"
- },
- {
- "sku": "biscay-bay-warm-mahogany-wood-grain-wbs-39628",
- "handle": "biscay-bay-warm-mahogany-wood-grain-wbs-39628",
- "title": "Biscay Bay Warm Mahogany Wood Grain | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/wbs-39628-sample-biscay-bay-warm-mahogany-wood-grain-hollywood-wallcoverings.jpg?v=1775705706",
- "tags": [
- "Architectural",
- "Bricks and Stones",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Conference Room",
- "Dark Brown",
- "Embossed Texture",
- "Faux",
- "Faux Wood",
- "Green",
- "Hollywood Wallcoverings",
- "Hotel Lobby",
- "Living Room",
- "Luxe",
- "Mahogany",
- "Marble White",
- "Olive Green",
- "Paper Backed Solid Vinyl Wallcoverings",
- "Plantation",
- "Rich Woods",
- "Solid",
- "Sophisticated",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Wallcoverings",
- "White",
- "Wood",
- "Wood Grain",
- "Yellow"
- ],
- "max_price": 34.29,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/biscay-bay-warm-mahogany-wood-grain-wbs-39628"
- },
- {
- "sku": "ncw4304-04",
- "handle": "ncw4304-04",
- "title": "Les Rêves Marguerite Chocolate/Orange - Brown Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497262346291.jpg?v=1775520302",
- "tags": [
- "Architectural",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Damask",
- "Floral",
- "Multi",
- "NCW4304-04",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Orange",
- "Paper",
- "Taupe",
- "Traditional",
- "Wallcovering",
- "Wallcoverings",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4304-04"
- },
- {
- "sku": "sunset-stone-vinyl-dwx-58045",
- "handle": "sunset-stone-vinyl-dwx-58045",
- "title": "Sunset Stone Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58045-sample-sunset-stone-vinyl-hollywood-wallcoverings.jpg?v=1775735121",
- "tags": [
- "54\" Width",
- "Animal",
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Embossed Texture",
- "Faux Stone",
- "Hallway",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Insects",
- "Light Beige",
- "Living Room",
- "Minimalist",
- "Natural Look",
- "Off-white",
- "Pale Beige",
- "Serene",
- "Stone",
- "Stucco",
- "Texture",
- "Textured",
- "Traditional",
- "Tropicana Durable Vinyls",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wide Width"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/sunset-stone-vinyl-dwx-58045"
- },
- {
- "sku": "st-silken-durable-vinyl-dur-72172",
- "handle": "st-silken-durable-vinyl-dur-72172",
- "title": "St. Silken Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72172-sample-clean.jpg?v=1774484661",
- "tags": [
- "Architectural",
- "Bedroom",
- "Biophilic",
- "Class A Fire Rated",
- "Color: Green",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Green",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Sage",
- "Linen",
- "Linen Texture",
- "Living Room",
- "Organic Modern",
- "Sage Green",
- "Serene",
- "Solid",
- "Textured",
- "Traditional",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/st-silken-durable-vinyl-dur-72172"
- },
- {
- "sku": "narcisse-noir-wallpaper-xa7-66455",
- "handle": "narcisse-noir-wallpaper-xa7-66455",
- "title": "Narcisse Noir Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/50339da2b9117c69f9f9a5c29fcb9165.jpg?v=1775123183",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "calcium carbonate/pulp",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Fabric",
- "Gray",
- "Hotel Lobby",
- "Light Beige",
- "Light Gray",
- "Living Room",
- "Narcisse Noir Wallcovering",
- "Office",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Scandinavian",
- "Stripe",
- "Striped",
- "Textured",
- "Traditional",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 49.3,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/narcisse-noir-wallpaper-xa7-66455"
- },
- {
- "sku": "ashbourne-type-ii-vinyl-wallcovering-xjg-47108",
- "handle": "ashbourne-type-ii-vinyl-wallcovering-xjg-47108",
- "title": "Ashbourne Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xjg-47108-sample-ashbourne-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775699877",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Ashbourne Type 2 Vinyl",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Living Room",
- "Minimalist",
- "Organic Modern",
- "Solid",
- "Tan",
- "Textured",
- "Timeless",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ashbourne-type-ii-vinyl-wallcovering-xjg-47108"
- },
- {
- "sku": "ashbourne-type-ii-vinyl-wallcovering-xjg-47099",
- "handle": "ashbourne-type-ii-vinyl-wallcovering-xjg-47099",
- "title": "Ashbourne Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xjg-47099-sample-ashbourne-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775699645",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gold",
- "Hallway",
- "Hollywood Wallcoverings",
- "Khaki",
- "Living Room",
- "Rustic",
- "Solid",
- "Textured",
- "Timeless",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ashbourne-type-ii-vinyl-wallcovering-xjg-47099"
- },
- {
- "sku": "ventnor-vinyl-wallcovering-xqq-48559",
- "handle": "ventnor-vinyl-wallcovering-xqq-48559",
- "title": "Ventnor Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xqq-48559-sample-ventnor-vinyl-hollywood-wallcoverings.jpg?v=1775735697",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Rustic",
- "Solid",
- "Tan",
- "Taupe",
- "Textured",
- "Traditional",
- "Ventnor Vinyl Wallcovering",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ventnor-vinyl-wallcovering-xqq-48559"
- },
- {
- "sku": "ashbourne-type-ii-vinyl-wallcovering-xjg-47127",
- "handle": "ashbourne-type-ii-vinyl-wallcovering-xjg-47127",
- "title": "Ashbourne Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xjg-47127-sample-ashbourne-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775700406",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Ashbourne Type 2 Vinyl",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Living Room",
- "Minimalist",
- "Organic Modern",
- "Serene",
- "Solid",
- "Tan",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ashbourne-type-ii-vinyl-wallcovering-xjg-47127"
- },
- {
- "sku": "ashbourne-type-ii-vinyl-wallcovering-xjg-47095",
- "handle": "ashbourne-type-ii-vinyl-wallcovering-xjg-47095",
- "title": "Ashbourne Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xjg-47095-sample-ashbourne-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775699543",
- "tags": [
- "Architectural",
- "Beige",
- "Charcoal Gray",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Conference Room",
- "Contemporary",
- "Estimated Type: Textured",
- "Glamorous",
- "Gold",
- "Gray",
- "Grey",
- "Hollywood Wallcoverings",
- "Hotel Lobby",
- "Living Room",
- "Luxe",
- "Luxurious",
- "Solid",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ashbourne-type-ii-vinyl-wallcovering-xjg-47095"
- },
- {
- "sku": "rhone-durable-vinyl-dur-72093",
- "handle": "rhone-durable-vinyl-dur-72093",
- "title": "Rhone Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72093-sample-clean.jpg?v=1774484365",
- "tags": [
- "Architectural",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Geometric",
- "Herringbone",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Red",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/rhone-durable-vinyl-dur-72093"
- },
- {
- "sku": "castine-blue-tuscan-stripe-wallpaper-cca-83212",
- "handle": "castine-blue-tuscan-stripe-wallpaper-cca-83212",
- "title": "Castine Blue Tuscan Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/673a2be4549fccc187a7e0b5ae98cf22.jpg?v=1572309973",
- "tags": [
- "Architectural",
- "Beige",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Marble",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Tan",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/castine-blue-tuscan-stripe-wallpaper-cca-83212"
- },
- {
- "sku": "dylan-cream-candy-stripe-wallpaper-cca-82979",
- "handle": "dylan-cream-candy-stripe-wallpaper-cca-82979",
- "title": "Dylan Cream Candy Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ed5566aef834fd8f19b5328fcf3f6d2d.jpg?v=1572309964",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Cream",
- "Discontinued",
- "Easy Walls",
- "Gold",
- "LA Walls",
- "Masculine",
- "Phasing-2026-04",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04",
- "Yellow"
- ],
- "max_price": 49.01,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dylan-cream-candy-stripe-wallpaper-cca-82979"
- },
- {
- "sku": "faux-leaf-squares-fls-2513",
- "handle": "faux-leaf-squares-fls-2513",
- "title": "Faux Leaf Squares Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fls-2513-sample-faux-leaf-squares-wallpaper-hollywood-wallcoverings.jpg?v=1775711898",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Commercial",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Light Rosy Brown",
- "Rosy Brown",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 34.55,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-leaf-squares-fls-2513"
- },
- {
- "sku": "dwtt-70903-designer-wallcoverings-los-angeles",
- "handle": "dwtt-70903-designer-wallcoverings-los-angeles",
- "title": "Marine Coral Navy | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T10125_a643313e-a2d9-47dc-a17f-f49929f30adf.jpg?v=1733895117",
- "tags": [
- "abstract",
- "Architectural",
- "contemporary",
- "light teal",
- "Navy",
- "navy blue",
- "off-white",
- "Pattern",
- "stripe",
- "T10125",
- "Thibaut",
- "Tropics",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-70903-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "steuben-wheat-turf-stripe-wallpaper-cca-83167",
- "handle": "steuben-wheat-turf-stripe-wallpaper-cca-83167",
- "title": "Steuben Wheat Turf Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/2c41844e9e4c4cf5752f9573c81379fb.jpg?v=1572309971",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Light Blue",
- "Linen",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Steuben Wheat Turf Stripe Wallcovering",
- "Stripe",
- "Stripes",
- "Strippable",
- "Tan",
- "Traditional",
- "Wallcovering",
- "Washable",
- "Wheat",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/steuben-wheat-turf-stripe-wallpaper-cca-83167"
- },
- {
- "sku": "doral-faux-silk-durable-walls-xwc-53216",
- "handle": "doral-faux-silk-durable-walls-xwc-53216",
- "title": "Doral Faux Silk Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwc-53216-sample-doral-faux-silk-durable-hollywood-wallcoverings.jpg?v=1775710270",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Coastal",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Faux",
- "Faux Finish",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Organic Modern",
- "Serene",
- "Textured",
- "Traditional",
- "Transitional",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/doral-faux-silk-durable-walls-xwc-53216"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_lun-9494-jpg",
- "handle": "wolfgordonwallcovering_dwwg_lun-9494-jpg",
- "title": "Lune - Teal | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/lun-9494.jpg?v=1762299433",
- "tags": [
- "100% Vinyl",
- "Abstract",
- "Architectural",
- "Blue",
- "Class A Fire Rated",
- "Coated Upholstery",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Geometric",
- "Light Gray",
- "Lune",
- "Teal",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_lun-9494-jpg"
- },
- {
- "sku": "eur-80114-ncw4120-designer-wallcoverings-los-angeles",
- "handle": "eur-80114-ncw4120-designer-wallcoverings-los-angeles",
- "title": "Holmwood 03 | Nina Campbell Europe",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513496256563.jpg?v=1775522201",
- "tags": [
- "Architectural",
- "Bedroom",
- "BRAEMAR",
- "Color: White",
- "Commercial",
- "Contemporary",
- "Damask",
- "Dining Room",
- "Floral",
- "Grandmillennial",
- "Gray",
- "Holmwood",
- "Living Room",
- "NCW4120",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Off-white",
- "Paper",
- "Scroll",
- "Serene",
- "Silver",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80114-ncw4120-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "pleated-perfect-paradise-ppp-2627",
- "handle": "pleated-perfect-paradise-ppp-2627",
- "title": "Pleated Perfect Paradise | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ppp-2627-sample-pleated-perfect-paradise-hollywood-wallcoverings.jpg?v=1775729183",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Pleated Perfect Paradise",
- "Stripe",
- "Textured",
- "Transitional",
- "vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 35.66,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/pleated-perfect-paradise-ppp-2627"
- },
- {
- "sku": "ferryhill-type-ii-vinyl-wallcovering-xld-47701",
- "handle": "ferryhill-type-ii-vinyl-wallcovering-xld-47701",
- "title": "Ferryhill Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xld-47701-sample-ferryhill-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775712545",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Ferryhill Type 2 Vinyl Wallcovering",
- "Hallway",
- "Hollywood Wallcoverings",
- "Ivory",
- "Linen",
- "Linen Texture",
- "Living Room",
- "Minimalist",
- "Serene",
- "Solid",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ferryhill-type-ii-vinyl-wallcovering-xld-47701"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_mru-3288_8-jpg",
- "handle": "wolfgordonwallcovering_dwwg_mru-3288_8-jpg",
- "title": "Marlu - Blush | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/mru-3288_8.jpg?v=1762301319",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Geometric",
- "Light Gray",
- "Marlu",
- "Pink",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_mru-3288_8-jpg"
- },
- {
- "sku": "rochester-type-ii-vinyl-wallcovering-xpk-48223",
- "handle": "rochester-type-ii-vinyl-wallcovering-xpk-48223",
- "title": "Rochester Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xpk-48223-sample-rochester-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775730919",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Organic Modern",
- "Rochester Type 2 Vinyl Wallcovering",
- "Serene",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/rochester-type-ii-vinyl-wallcovering-xpk-48223"
- },
- {
- "sku": "dwtt-71105-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71105-designer-wallcoverings-los-angeles",
- "title": "Ophelia Green | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T3000_31d62861-4235-4610-9e19-b2bf1fc98cdf.jpg?v=1733894692",
- "tags": [
- "Architectural",
- "Damask",
- "Green",
- "Paramount",
- "Pattern",
- "T3000",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71105-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwtt-72186-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72186-designer-wallcoverings-los-angeles",
- "title": "Stablewood Aqua | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T3613.jpg?v=1733892535",
- "tags": [
- "Aqua",
- "Architectural",
- "beige",
- "brown",
- "Coastal",
- "Grasscloth Resource 2",
- "light blue",
- "Pattern",
- "Stripe",
- "T3613",
- "Texture",
- "Thibaut",
- "Transitional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72186-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_tgm-5983-jpg",
- "handle": "wolfgordonwallcovering_dwwg_tgm-5983-jpg",
- "title": "Tangram - Ocean | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/tgm-5983.jpg?v=1762311221",
- "tags": [
- "31% Polyester",
- "69% Acrylic",
- "Acrylic",
- "Architectural",
- "Beige",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Geometric",
- "Ocean",
- "Tangram",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings",
- "Woven Upholstery"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_tgm-5983-jpg"
- },
- {
- "sku": "xanadu-s-retro-geometric-scr-8034",
- "handle": "xanadu-s-retro-geometric-scr-8034",
- "title": "Xanadu's Retro Geometric",
- "vendor": "Studio Toten",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/9e1efb5ed3cb7a3fb2c890e9f36998e7.jpg?v=1572309105",
- "tags": [
- "Architectural",
- "Beige",
- "Commercial",
- "Designer Wallcoverings",
- "Geometric",
- "Gray",
- "Luxury Screen Printed Wallpapers",
- "Mid-Century Modern",
- "Paper",
- "Screen Print",
- "Turquoise",
- "Wallcovering",
- "Whimsical Screen Prints Vol. 1"
- ],
- "max_price": 271.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/xanadu-s-retro-geometric-scr-8034"
- },
- {
- "sku": "faux-leaf-squares-fls-2527",
- "handle": "faux-leaf-squares-fls-2527",
- "title": "Faux Leaf Squares Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fls-2527-sample-faux-leaf-squares-wallpaper-hollywood-wallcoverings.jpg?v=1775711945",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Commercial",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 34.55,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-leaf-squares-fls-2527"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_blg-5639-jpg",
- "handle": "wolfgordonwallcovering_dwwg_blg-5639-jpg",
- "title": "Belgrade - Limestone | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/blg-5639.jpg?v=1762287826",
- "tags": [
- "100% Vinyl",
- "Abstract",
- "Architectural",
- "Belgrade",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Gray",
- "Light Gray",
- "Limestone",
- "RAMPART®",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_blg-5639-jpg"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_blr-5021m-jpg",
- "handle": "wolfgordonwallcovering_dwwg_blr-5021m-jpg",
- "title": "Ballari Mylar - Copper | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/blr-5021M.jpg?v=1762288193",
- "tags": [
- "100% Mylar",
- "Abstract",
- "Architectural",
- "Ballari Mylar",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Copper",
- "Gray",
- "Industrial",
- "Metallic",
- "Mylar",
- "Orange",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_blr-5021m-jpg"
- },
- {
- "sku": "dwtt-71556-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71556-designer-wallcoverings-los-angeles",
- "title": "Caravan Green | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T64151_150b8c09-f53f-404d-98be-8beec26b398b.jpg?v=1733893850",
- "tags": [
- "Architectural",
- "Caravan",
- "Geometric",
- "green",
- "Pattern",
- "T64151",
- "Thibaut",
- "Transitional",
- "Trellis",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71556-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_sm10239-jpg",
- "handle": "wolfgordonwallcovering_dwwg_sm10239-jpg",
- "title": "SM10239 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_sm10238.jpg?v=1733872482",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Coffee",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Gray",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_sm10239-jpg"
- },
- {
- "sku": "caterina-embossed-vinyl-wallpaper-type-2-xwa-73275",
- "handle": "caterina-embossed-vinyl-wallpaper-type-2-xwa-73275",
- "title": "Caterina Embossed Vinyl - Type 2 | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwa-73275-sample-caterina-embossed-vinyl-type-2-hollywood.jpg?v=1775707635",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Brown",
- "Caterina Embossed Vinyl",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Embossed Texture",
- "Farmhouse",
- "Hollywood Wallcoverings",
- "Living Room",
- "Office",
- "Organic Modern",
- "Phillip Romano Commercial",
- "Rustic",
- "Sepia",
- "Sienna",
- "Solid",
- "Tan",
- "Textured",
- "Traditional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Umber",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Wood Grain"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/caterina-embossed-vinyl-wallpaper-type-2-xwa-73275"
- },
- {
- "sku": "eloise-aqua-damask-wallpaper-cca-82999",
- "handle": "eloise-aqua-damask-wallpaper-cca-82999",
- "title": "Eloise Aqua Damask Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/b8becd288546efc79fba37d00d8f8dad.jpg?v=1572309964",
- "tags": [
- "Architectural",
- "Commercial",
- "Damask",
- "Damasks",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Light Blue",
- "Paper",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eloise-aqua-damask-wallpaper-cca-82999"
- },
- {
- "sku": "whittier-way-twisted-paper-weave-hlw-73164",
- "handle": "whittier-way-twisted-paper-weave-hlw-73164",
- "title": "Whittier Way - Twisted Paper Weave | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73164-sample-clean.jpg?v=1774483826",
- "tags": [
- "Architectural",
- "Bedroom",
- "Charcoal",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Slate Gray",
- "Gray",
- "Grey",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Minimalist",
- "Modern",
- "Natural",
- "Naturally Glamorous",
- "Paper",
- "Sophisticated",
- "Stripe",
- "Textured",
- "Wallcovering"
- ],
- "max_price": 43.22,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/whittier-way-twisted-paper-weave-hlw-73164"
- },
- {
- "sku": "last-night-small-mural-by-retro-walls-rtr-37207",
- "handle": "last-night-small-mural-by-retro-walls-rtr-37207",
- "title": "Last Night Small Mural by Retro Walls",
- "vendor": "Traditional Whimsy",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/650ba1dfd5f144bd5015050bc0077d53.jpg?v=1572309701",
- "tags": [
- "Abstract",
- "Animal/Insects",
- "Architectural",
- "Commercial",
- "Commercial Wallcovering",
- "Fish",
- "Heavy-duty Wallcovering with paper top-layer and non-woven backing // Colourfast and washable with a soft cloth // Butted seam (but",
- "Mural",
- "Paper",
- "Pink",
- "Purple",
- "Traditional Whimsy",
- "Wallcovering",
- "Whimsical"
- ],
- "max_price": 84,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/last-night-small-mural-by-retro-walls-rtr-37207"
- },
- {
- "sku": "frederick-brown-quatrefoil-medallion-wallpaper-cca-82949",
- "handle": "frederick-brown-quatrefoil-medallion-wallpaper-cca-82949",
- "title": "Frederick Brown Quatrefoil Medallion Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/9e2d88bd57d36645802fe8b074f85287.jpg?v=1572309963",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Damask",
- "Damasks",
- "Discontinued",
- "Easy Walls",
- "Frederick Brown Quatrefoil Medallion Wallcovering",
- "LA Walls",
- "Masculine",
- "Paper",
- "Prepasted",
- "Quatrefoil",
- "Series: Brewster",
- "Strippable",
- "Tan",
- "Traditional",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/frederick-brown-quatrefoil-medallion-wallpaper-cca-82949"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_ad9501-jpg",
- "handle": "wolfgordonwallcovering_dwwg_ad9501-jpg",
- "title": "Ambient Design - AD9501 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_ad9500.jpg?v=1733874163",
- "tags": [
- "AI-Analyzed-v2",
- "Ambient Design",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Light Beige",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_ad9501-jpg"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_wwdf-218_8-jpg",
- "handle": "wolfgordonwallcovering_dwwg_wwdf-218_8-jpg",
- "title": "WonderWood® - Grey Skyline Oak Qtd | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/wwdf-218f.jpg?v=1762312675",
- "tags": [
- "100% Reconstituted Wood Veneer",
- "Architectural",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Gray",
- "Grey Skyline Oak Qtd",
- "Natural",
- "Reconstituted",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings",
- "WonderWood®"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_wwdf-218_8-jpg"
- },
- {
- "sku": "tigressa-bargea-wallpaper-xb3-66535",
- "handle": "tigressa-bargea-wallpaper-xb3-66535",
- "title": "Tigressa Bargea Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/3167bc971f11f7ee97265a138c2b299c.jpg?v=1775129966",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Geometric",
- "Gray",
- "Light Gray",
- "Living Room",
- "Minimalist",
- "Modern",
- "Office",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Spa",
- "Textural",
- "Textured",
- "Tigressa Bargea Wallcovering",
- "vinyl",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 37.2,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/tigressa-bargea-wallpaper-xb3-66535"
- },
- {
- "sku": "dwtt-70883-designer-wallcoverings-los-angeles",
- "handle": "dwtt-70883-designer-wallcoverings-los-angeles",
- "title": "Box Kite Black | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T10134_376ef94e-d29f-4c11-86c1-f426e1c2eeaa.jpg?v=1733895160",
- "tags": [
- "Architectural",
- "Black",
- "Contemporary",
- "Geometric",
- "gray",
- "Pattern",
- "T10134",
- "Thibaut",
- "Trellis",
- "Tropics",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-70883-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "hairly-hide-faux-vinyl-hide-wallpaper-lighter-mocha-brown-fvh-40406",
- "handle": "hairly-hide-faux-vinyl-hide-wallpaper-lighter-mocha-brown-fvh-40406",
- "title": "Hairly Hide - Faux Vinyl Hide - Lighter Mocha Brown | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fvh-40406-sample-hairly-hide-faux-vinyl-hide-lighter-mocha-brown-hollywood.jpg?v=1775715529",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Faux Finish",
- "Hide",
- "Hollywood Wallcoverings",
- "Lighter Mocha Brown",
- "Mocha",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 204.94,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hairly-hide-faux-vinyl-hide-wallpaper-lighter-mocha-brown-fvh-40406"
- },
- {
- "sku": "dwtt-71745-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71745-designer-wallcoverings-los-angeles",
- "title": "Halie Circle Aqua and | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T36182_3217c5f7-d63c-4d63-ae4d-a8f06bc53c93.jpg?v=1733893486",
- "tags": [
- "Animal",
- "Aqua and",
- "Architectural",
- "Collection Name",
- "Contemporary",
- "light blue",
- "orange",
- "Pattern",
- "T36182",
- "Thibaut",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71745-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "faux-leaf-squares-fls-2531",
- "handle": "faux-leaf-squares-fls-2531",
- "title": "Faux Leaf Squares Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fls-2531-sample-faux-leaf-squares-wallpaper-hollywood-wallcoverings.jpg?v=1775711958",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Commercial",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Khaki",
- "Saddlebrown",
- "Tan",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 34.55,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-leaf-squares-fls-2531"
- },
- {
- "sku": "vanderbilt-durable-walls-xwp-52597",
- "handle": "vanderbilt-durable-walls-xwp-52597",
- "title": "Vanderbilt Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/tulum-yellow_bell.jpg?v=1777480645",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Geometric",
- "Gold",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Light Brown",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Office",
- "Organic Modern",
- "Textured",
- "Vinyl",
- "Vinyl Wallcoverings",
- "Wallcovering",
- "Warm",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/vanderbilt-durable-walls-xwp-52597"
- },
- {
- "sku": "dwtt-71595-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71595-designer-wallcoverings-los-angeles",
- "title": "Caravan Light Blue | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T64164_06539f3a-1957-488f-bb81-4c1aa4c93242.jpg?v=1733893758",
- "tags": [
- "Architectural",
- "blue",
- "Caravan",
- "Damask",
- "Light Blue",
- "Pattern",
- "T64164",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71595-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "pleated-perfect-paradise-ppp-2617",
- "handle": "pleated-perfect-paradise-ppp-2617",
- "title": "Pleated Perfect Paradise | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ppp-2617-sample-pleated-perfect-paradise-hollywood-wallcoverings.jpg?v=1775729150",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Embossed",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Moss",
- "Off-White",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 35.66,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/pleated-perfect-paradise-ppp-2617"
- },
- {
- "sku": "hallandale-rice-paper-effect-durable-walls-xwt-53476",
- "handle": "hallandale-rice-paper-effect-durable-walls-xwt-53476",
- "title": "Hallandale Rice Paper Effect Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwt-53476-sample-hallandale-rice-paper-effect-durable-hollywood-wallcoverings.jpg?v=1775715913",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Grasscloth",
- "Hallandale Rice Paper Effect Durable",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Minimalist",
- "Office",
- "Organic Modern",
- "Serene",
- "Tan",
- "Taupe",
- "Textured",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hallandale-rice-paper-effect-durable-walls-xwt-53476"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_dgbj-532-jpg",
- "handle": "wolfgordonwallcovering_dwwg_dgbj-532-jpg",
- "title": "Green Bog Jasper - Sage | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dgbj-532.jpg?v=1762291132",
- "tags": [
- "100% Vinyl",
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Digital Curated",
- "Green",
- "Green Bog Jasper",
- "Light Beige",
- "Orange",
- "Paper",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_dgbj-532-jpg"
- },
- {
- "sku": "nassau-contemporary-emboosed-walls-xwh-52329",
- "handle": "nassau-contemporary-emboosed-walls-xwh-52329",
- "title": "Nassau Contemporary Emboosed | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nest-white_egg.jpg?v=1777480475",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Color: White",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Hallway",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Light Grey",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Minimalist",
- "Off-white",
- "Serene",
- "Textured",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/nassau-contemporary-emboosed-walls-xwh-52329"
- },
- {
- "sku": "eur-80146-ncw4150-designer-wallcoverings-los-angeles",
- "handle": "eur-80146-ncw4150-designer-wallcoverings-los-angeles",
- "title": "Rosslyn 04 - Soft Gray Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513497305139.jpg?v=1775522384",
- "tags": [
- "Aqua Blue",
- "Architectural",
- "Bathroom",
- "Bedroom",
- "Blue",
- "Blush Pink",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Cottagecore",
- "Floral",
- "Grandmillennial",
- "Green",
- "Leaf",
- "Lemon Yellow",
- "Living Room",
- "NCW4150",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Pale Beige",
- "Paper",
- "Pink",
- "Rosslyn",
- "Sage Green",
- "Serene",
- "Traditional",
- "Tropical",
- "Vinyl",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80146-ncw4150-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "tucker-s-tree-silhouette-scr-8156",
- "handle": "tucker-s-tree-silhouette-scr-8156",
- "title": "Tucker's Tree Silhouette",
- "vendor": "Studio Toten",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/aab0897d004243dca4414f77461bdc23.jpg?v=1572309108",
- "tags": [
- "Abstract",
- "Architectural",
- "Black",
- "Commercial",
- "Designer Wallcoverings",
- "Luxury Screen Printed Wallpapers",
- "Paper",
- "Screen Print",
- "Wallcovering",
- "Whimsical Screen Prints Vol. 1",
- "White"
- ],
- "max_price": 146.18,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/tucker-s-tree-silhouette-scr-8156"
- },
- {
- "sku": "fukaura-durable-vinyl-xrm-34136",
- "handle": "fukaura-durable-vinyl-xrm-34136",
- "title": "Fukaura Durable Vinyl",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/d42a493201fd673d436d2c2f0293b39a_53371983-55f5-4844-a8c6-f02e0721ef04.jpg?v=1572310410",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gray",
- "Phillipe Romano",
- "Phillipe Romano Essential Textures",
- "Phillipe Romano Vinyls",
- "Stripe",
- "Textured",
- "Type 2",
- "Type 2 Durable Commercial and Residential - Cleanable",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/fukaura-durable-vinyl-xrm-34136"
- },
- {
- "sku": "canal-stripe-texture-durable-walls-xwd-52106",
- "handle": "canal-stripe-texture-durable-walls-xwd-52106",
- "title": "Canal Stripe Texture Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwd-52106-sample-canal-stripe-texture-durable-hollywood-wallcoverings.jpg?v=1775707089",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Beige",
- "Champagne",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Cream",
- "Fire Rated",
- "Flame Certificate Available",
- "Geometric",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Brown",
- "Linear",
- "Living Room",
- "Minimalist",
- "Oatmeal",
- "Organic Modern",
- "Pattern",
- "Serene",
- "Stripe",
- "Striped",
- "Textured",
- "Transitional",
- "Type 2 Durable Vinyl",
- "USA",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Yellow"
- ],
- "max_price": 66.82,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/canal-stripe-texture-durable-walls-xwd-52106"
- },
- {
- "sku": "cody-cantina-wallpaper-xb1-66504",
- "handle": "cody-cantina-wallpaper-xb1-66504",
- "title": "Cody Cantina Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/e24d7708f5ebd647027496cfacd9474c.jpg?v=1775127416",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Cody Cantina Wallcovering",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Fabric",
- "Gray",
- "Hotel Lobby",
- "Living Room",
- "Office",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Red",
- "Stripe",
- "Striped",
- "Transitional",
- "vinyl",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 38.61,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/cody-cantina-wallpaper-xb1-66504"
- },
- {
- "sku": "lucas-ocean-puffy-clouds-wallpaper-cca-83035",
- "handle": "lucas-ocean-puffy-clouds-wallpaper-cca-83035",
- "title": "Lucas Ocean Puffy Clouds Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/153678fb92a34f2d22fb808409a54db7.jpg?v=1572309966",
- "tags": [
- "Architectural",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Novelty",
- "Ocean",
- "Prepasted",
- "Scenic",
- "Series: Brewster",
- "Strippable",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "Whimsical",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 64.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/lucas-ocean-puffy-clouds-wallpaper-cca-83035"
- },
- {
- "sku": "dwc-1001594",
- "handle": "dwc-1001594",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693307129907.jpg?v=1775520994",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Geometric",
- "Light Green",
- "NCW4302-03",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paper",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001594"
- },
- {
- "sku": "skelton-type-ii-vinyl-wallcovering-xpy-48390",
- "handle": "skelton-type-ii-vinyl-wallcovering-xpy-48390",
- "title": "Skelton Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xpy-48390-sample-skelton-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775734082",
- "tags": [
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gray",
- "Grey",
- "Hollywood Wallcoverings",
- "Light Gray",
- "Living Room",
- "Minimalist",
- "Modern",
- "Office",
- "Serene",
- "Silver",
- "Skelton Type 2 Vinyl Wallcovering",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/skelton-type-ii-vinyl-wallcovering-xpy-48390"
- },
- {
- "sku": "cottondale-contemporary-durable-vinyl-walls-xwp-52647",
- "handle": "cottondale-contemporary-durable-vinyl-walls-xwp-52647",
- "title": "Cottondale Contemporary Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwp-52647-sample-cottondale-contemporary-durable-vinyl-hollywood-wallcoverings.jpg?v=1775709252",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cotton",
- "Cream",
- "Estimated Type: Paper",
- "Geometric",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Living Room",
- "Minimalist",
- "Modern",
- "Office",
- "Serene",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/cottondale-contemporary-durable-vinyl-walls-xwp-52647"
- },
- {
- "sku": "hanover-faux-embossed-faux-linen-walls-xwy-53164",
- "handle": "hanover-faux-embossed-faux-linen-walls-xwy-53164",
- "title": "Hanover Faux Embossed Faux Linen | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/loom-tumeric.jpg?v=1777480777",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Brown",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Embossed",
- "Embossed Texture",
- "Faux",
- "Faux Finish",
- "Faux Linen",
- "Fire Rated",
- "Flame Certificate Available",
- "Golden Brown",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "LEED",
- "Leed Walls",
- "Linen",
- "Linen Look",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Rustic",
- "Tan",
- "Texture",
- "Textured",
- "Traditional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Woven"
- ],
- "max_price": 15.06,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hanover-faux-embossed-faux-linen-walls-xwy-53164"
- },
- {
- "sku": "benedict-canyon-sisal-hlw-73009",
- "handle": "benedict-canyon-sisal-hlw-73009",
- "title": "Benedict Canyon Sisal | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73009-sample-clean.jpg?v=1774483012",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Coastal",
- "Color: Green",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Grasscloth Weave",
- "Green",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Brown",
- "Living Room",
- "Natural",
- "Natural Texture",
- "Naturally Glamorous",
- "Organic Modern",
- "Sage Green",
- "Serene",
- "Sisal",
- "Stripe",
- "Tan",
- "Textured",
- "Transitional",
- "Wallcovering",
- "Woven"
- ],
- "max_price": 67.78,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/benedict-canyon-sisal-hlw-73009"
- },
- {
- "sku": "oakland-beige-grasscloth-stripe-wallpaper-cca-83161",
- "handle": "oakland-beige-grasscloth-stripe-wallpaper-cca-83161",
- "title": "Oakland Beige Grasscloth Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/d468dff860e2fd715a6485f49b3061e9.jpg?v=1572309971",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Grasscloth",
- "Grasscloth Texture",
- "LA Walls",
- "Light Gray",
- "Natural",
- "Natural Wallcovering",
- "Oakland Beige Grasscloth Stripe Wallcovering",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Strippable",
- "Tan",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/oakland-beige-grasscloth-stripe-wallpaper-cca-83161"
- },
- {
- "sku": "skelton-type-ii-vinyl-wallcovering-xpy-48397",
- "handle": "skelton-type-ii-vinyl-wallcovering-xpy-48397",
- "title": "Skelton Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xpy-48397-sample-skelton-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775734092",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Hallway",
- "Hollywood Wallcoverings",
- "Light Brown",
- "Living Room",
- "Minimalist",
- "Organic Modern",
- "Serene",
- "Skelton Type 2 Vinyl Wallcovering",
- "Solid",
- "Stripe",
- "Taupe",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/skelton-type-ii-vinyl-wallcovering-xpy-48397"
- },
- {
- "sku": "dwtt-72152-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72152-designer-wallcoverings-los-angeles",
- "title": "Pacific Weave Grey | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T3658.jpg?v=1733892618",
- "tags": [
- "Architectural",
- "beige",
- "Grasscloth Resource 2",
- "Grey",
- "light brown",
- "Pattern",
- "T3658",
- "Texture",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72152-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "alfred-paintable-supaglypta-wallpaper-gga-82651",
- "handle": "alfred-paintable-supaglypta-wallpaper-gga-82651",
- "title": "Alfred Paintable Supaglypta | Jeffrey Stevens",
- "vendor": "Jeffrey Stevens",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/486d3669a0b9e67f585ef327b1f648dc.jpg?v=1750790457",
- "tags": [
- "Architectural",
- "Classic",
- "Commercial",
- "Commercial Wallcovering",
- "Damask",
- "Decorative",
- "Discontinued",
- "Durable",
- "Embossed",
- "Floral",
- "Global",
- "Jeffrey Stevens",
- "Light Gray",
- "Off-white",
- "Paintable",
- "Paper",
- "Phasing-2026-04",
- "Renovation",
- "Residential",
- "Series: Brewster",
- "Strippable",
- "Texture",
- "Textured",
- "Traditional",
- "Unpasted",
- "Versatile",
- "Victorian",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White"
- ],
- "max_price": 49.02,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/alfred-paintable-supaglypta-wallpaper-gga-82651"
- },
- {
- "sku": "dwss-72688",
- "handle": "dwss-72688",
- "title": "Fredrik yellow Sample Wallcovering | Sandberg",
- "vendor": "Sandberg",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/808-22_image1_b2e9db00-17c6-47f0-af1b-3cf1bdb2757b.jpg?v=1646105073",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Fredrik",
- "Fredrik yellow Sample",
- "Geometric",
- "Japonisme",
- "Light Goldenrodyellow",
- "P808-22",
- "Paper",
- "Pattern",
- "Sandberg",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwss-72688"
- },
- {
- "sku": "dwtt-71941-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71941-designer-wallcoverings-los-angeles",
- "title": "Flanders Camel | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T14159_bed5364e-32fa-4d1e-b8f6-0d23b1f3302d.jpg?v=1733893092",
- "tags": [
- "Architectural",
- "beige",
- "Camel",
- "Pattern",
- "Solid",
- "T14159",
- "tan",
- "Texture",
- "Texture Resource 4",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71941-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_hug-3325_8-jpg",
- "handle": "wolfgordonwallcovering_dwwg_hug-3325_8-jpg",
- "title": "Hugo - Steel | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/hug-3325_8.jpg?v=1762297681",
- "tags": [
- "100% Vinyl",
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contract",
- "Gray",
- "Herringbone",
- "Hugo",
- "Light Gray",
- "Paper",
- "Silver",
- "Steel",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_hug-3325_8-jpg"
- },
- {
- "sku": "forsyth-embossed-contemporary-durable-walls-xwd-52164",
- "handle": "forsyth-embossed-contemporary-durable-walls-xwd-52164",
- "title": "Forsyth Embossed Contemporary Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fractal-pyrite_6f31a569-1c53-4ceb-a9d8-d2d8d978e15c.jpg?v=1777481491",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Brown",
- "Chocolate Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Embossed Texture",
- "Geometric",
- "Hallway",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Modern",
- "Taupe",
- "Textured",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/forsyth-embossed-contemporary-durable-walls-xwd-52164"
- },
- {
- "sku": "eur-80127-ncw4125-designer-wallcoverings-los-angeles",
- "handle": "eur-80127-ncw4125-designer-wallcoverings-los-angeles",
- "title": "Rothesay 01 - Cool Gray Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513496682547.jpg?v=1775522284",
- "tags": [
- "Architectural",
- "Bedroom",
- "BRAEMAR",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Hallway",
- "Light Grey",
- "Living Room",
- "Minimalist",
- "NCW4125",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Non-Woven",
- "Off-white",
- "Paper",
- "Rothesay",
- "Serene",
- "Solid",
- "Stripe",
- "Textured",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80127-ncw4125-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "st-joseph-embossed-contemporary-faux-vertical-stria-walls-xwq-52930",
- "handle": "st-joseph-embossed-contemporary-faux-vertical-stria-walls-xwq-52930",
- "title": "St Joseph Embossed Contemporary Faux Vertical Stria | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwq-52930-sample-st-joseph-embossed-contemporary-faux-vertical-stria-hollywood-wallcoverings.jpg?v=1775734525",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Embossed Texture",
- "Faux",
- "Faux Finish",
- "Hallway",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Light Beige",
- "Light Brown",
- "Living Room",
- "Minimalist",
- "Pale Beige",
- "Serene",
- "Solid",
- "Stripe",
- "Taupe",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/st-joseph-embossed-contemporary-faux-vertical-stria-walls-xwq-52930"
- },
- {
- "sku": "dwc-1001672",
- "handle": "dwc-1001672",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693311488051.jpg?v=1775521502",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Damask",
- "Floral",
- "NCW4392-02",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paper",
- "Traditional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001672"
- },
- {
- "sku": "floating-fibers-dwx-58182",
- "handle": "floating-fibers-dwx-58182",
- "title": "Floating Fibers | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58182-sample-floating-fibers-hollywood-wallcoverings.jpg?v=1775714018",
- "tags": [
- "54\" Width",
- "Abstract",
- "Architectural",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Fiber",
- "hollywood",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Gray",
- "Minimalist",
- "Natural Look",
- "Neutral",
- "Texture",
- "Textured",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wide Width"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/floating-fibers-dwx-58182"
- },
- {
- "sku": "dwtt-71146-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71146-designer-wallcoverings-los-angeles",
- "title": "Nira Neutral | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T4048_a191d6db-08ff-4516-a937-946a825e8bdd.jpg?v=1733894614",
- "tags": [
- "Architectural",
- "beige",
- "Geometric",
- "Neutral",
- "off-white",
- "Pattern",
- "Surface Resource",
- "T4048",
- "Texture",
- "Thibaut",
- "Transitional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71146-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "barnard-type-ii-vinyl-wallcovering-xjp-47217",
- "handle": "barnard-type-ii-vinyl-wallcovering-xjp-47217",
- "title": "Barnard Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xjp-47217-sample-barnard-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775702261",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "AI-Analyzed-v2",
- "Architectural",
- "Background Color Tan",
- "Barnard Type 2 Vinyl",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Grasscloth",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Linen Texture",
- "Living Room",
- "Minimalist",
- "Off-white",
- "Office",
- "Organic Modern",
- "Serene",
- "Tan",
- "Textured",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Look",
- "Yellow"
- ],
- "max_price": 52.78,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/barnard-type-ii-vinyl-wallcovering-xjp-47217"
- },
- {
- "sku": "highlands-honeycomb-wood-weave-hlw-73134",
- "handle": "highlands-honeycomb-wood-weave-hlw-73134",
- "title": "Bernardo Embossed Vinyl - Type 2 Commercial Wallcovering | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/HLW-73134-sample-clean.jpg?v=1774483651",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Brown",
- "Faux Wood",
- "Geometric",
- "Hallway",
- "Hollywood Wallcoverings",
- "Living Room",
- "Modern",
- "Natural",
- "Naturally Glamorous",
- "Sophisticated",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Walnut",
- "Wood"
- ],
- "max_price": 96.04,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/highlands-honeycomb-wood-weave-hlw-73134"
- },
- {
- "sku": "ncw4352-06",
- "handle": "ncw4352-06",
- "title": "Les Indiennes Bonnelles Black/Silver - Black Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497264476211.jpg?v=1775520543",
- "tags": [
- "Architectural",
- "Art Deco",
- "Beige",
- "Black",
- "Class A Fire Rated",
- "Commercial",
- "Geometric",
- "Gold",
- "Leaf",
- "NCW4352-06",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Paper",
- "Wallcovering",
- "Wallcoverings",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4352-06"
- },
- {
- "sku": "ncw4396-01",
- "handle": "ncw4396-01",
- "title": "Ashdown Brideshead Grey - Grey Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497266999347.jpg?v=1775520885",
- "tags": [
- "Arabesque",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Damask",
- "NCW4396-01",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Paper",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Wallcoverings",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4396-01"
- },
- {
- "sku": "bellaire-faux-finish-durable-walls-xww-53068",
- "handle": "bellaire-faux-finish-durable-walls-xww-53068",
- "title": "Bellaire Faux Finish Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/XWW-53068-sample-clean.jpg?v=1774481813",
- "tags": [
- "Architectural",
- "Bedroom",
- "Charcoal Gray",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Faux",
- "Faux Finish",
- "Gray",
- "Grey",
- "Hollywood Wallcoverings",
- "LEED",
- "Living Room",
- "Minimalist",
- "Off-white",
- "Office",
- "Serene",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/bellaire-faux-finish-durable-walls-xww-53068"
- },
- {
- "sku": "dwkk-129173",
- "handle": "dwkk-129173",
- "title": "W3762-5 Silver | Kravet Design |Geometric Wallcovering Print",
- "vendor": "Kravet",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W3762_5_788396e9-41ac-4786-bd60-13cc9dc01c47.jpg?v=1753121487",
- "tags": [
- "27In",
- "Abstract",
- "Architectural",
- "Archived-Triple-Verified",
- "Archived-Vendor-Gone",
- "Bedroom",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Dark Blue",
- "display_variant",
- "Geometric",
- "Gray",
- "Kravet",
- "Kravet Design",
- "Living Room",
- "Modern",
- "Navy",
- "Non-Woven",
- "Office",
- "Paper - 100%",
- "Pattern",
- "Print",
- "Silver",
- "Sophisticated",
- "Textured",
- "United States",
- "Vinyl",
- "W3762-5",
- "W3762.5.0",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwkk-129173"
- },
- {
- "sku": "bellaire-faux-finish-durable-walls-xww-53069",
- "handle": "bellaire-faux-finish-durable-walls-xww-53069",
- "title": "Bellaire Faux Finish Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xww-53069-sample-bellaire-faux-finish-durable-hollywood-wallcoverings.jpg?v=1775703563",
- "tags": [
- "Architectural",
- "Bedroom",
- "Black",
- "Class A Fire Rated",
- "Color: Purple",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Faux",
- "Faux Finish",
- "Hallway",
- "Hollywood Wallcoverings",
- "LEED",
- "Living Room",
- "Mauve",
- "Modern",
- "Pink",
- "Purple",
- "Serene",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/bellaire-faux-finish-durable-walls-xww-53069"
- },
- {
- "sku": "splice-by-innovations-usa-dwc-splice-1",
- "handle": "splice-by-innovations-usa-dwc-splice-1",
- "title": "Splice | Innovations USA",
- "vendor": "Innovations USA",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/Splice-1.jpg?v=1736199078",
- "tags": [
- "Abstract",
- "Architectural",
- "ASTM E84",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Innovations USA",
- "Purple",
- "Splice-1",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/splice-by-innovations-usa-dwc-splice-1"
- },
- {
- "sku": "chataqua-metallic-contemporary-durable-vinyl-walls-xws-52835",
- "handle": "chataqua-metallic-contemporary-durable-vinyl-walls-xws-52835",
- "title": "Chataqua Metallic Contemporary Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/como-blue_bellini.jpg?v=1777480710",
- "tags": [
- "Architectural",
- "Basketweave",
- "Bedroom",
- "Blue",
- "Class A Fire Rated",
- "Color: Blue",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gold",
- "Grasscloth",
- "Hollywood Wallcoverings",
- "Lattice",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Navy",
- "Office",
- "Sophisticated",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Woven",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/chataqua-metallic-contemporary-durable-vinyl-walls-xws-52835"
- },
- {
- "sku": "milbanks-metallic-grasscloth-vinyl-dwx-58164",
- "handle": "milbanks-metallic-grasscloth-vinyl-dwx-58164",
- "title": "Milbanks Metallic Grasscloth Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58164-sample-milbanks-metallic-grasscloth-vinyl-hollywood-wallcoverings.jpg?v=1775725666",
- "tags": [
- "54\" Width",
- "Animal",
- "Architectural",
- "Bedroom",
- "Blue",
- "Color: Blue",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Embossed Texture",
- "Grasscloth",
- "Grasscloth Texture",
- "Grasscloth Wallcovering",
- "Gray",
- "Hallway",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Insects",
- "Light Gray",
- "Living Room",
- "Metallic",
- "Minimalist",
- "Modern",
- "Natural",
- "Natural Look",
- "Natural Texture",
- "Serene",
- "Silver",
- "Stripe",
- "Teal",
- "Textured",
- "Tropicana Durable Vinyls",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wide Width",
- "Woven"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/milbanks-metallic-grasscloth-vinyl-dwx-58164"
- },
- {
- "sku": "dwkk-115518",
- "handle": "dwkk-115518",
- "title": "Newton - Linen | Kravet Couture | Andrew Martin Navigator | Novelty Wallcovering Print",
- "vendor": "Kravet",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/AMW10044_16_ef2f8e24-41d2-4842-8334-7cadaf46988e.jpg?v=1753123155",
- "tags": [
- "20.5In",
- "Amw10044.16.0",
- "Architectural",
- "Archived-Triple-Verified",
- "Archived-Vendor-Gone",
- "Brown",
- "Champagne",
- "Commercial",
- "Dark Academia",
- "display_variant",
- "Eclectic",
- "Geometric",
- "Hallway",
- "Italy",
- "Kravet",
- "Kravet Couture",
- "Linen",
- "Living Room",
- "Newton",
- "Novelty",
- "Office",
- "Paper",
- "Paper - 100%",
- "Pattern",
- "Print",
- "Sophisticated",
- "Taupe",
- "Traditional",
- "Transitional",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwkk-115518"
- },
- {
- "sku": "floating-bubbles-vinyl-dwx-58118",
- "handle": "floating-bubbles-vinyl-dwx-58118",
- "title": "Floating Bubbles Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58118-sample-floating-bubbles-vinyl-hollywood-wallcoverings.jpg?v=1775713550",
- "tags": [
- "54\" Width",
- "Abstract",
- "Architectural",
- "Beige",
- "Bubbles",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "hollywood",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Gray",
- "Neutral",
- "Organic",
- "Textured",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wide Width"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/floating-bubbles-vinyl-dwx-58118"
- },
- {
- "sku": "fukaura-durable-vinyl-xrm-34133",
- "handle": "fukaura-durable-vinyl-xrm-34133",
- "title": "Fukaura Durable Vinyl",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/8fd341de233cc91097f7c8cbaa58c101_a5b8cbb9-f95e-45b7-854d-d80cc8489439.jpg?v=1572310410",
- "tags": [
- "Architectural",
- "Beige",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gray",
- "Phillipe Romano",
- "Phillipe Romano Essential Textures",
- "Phillipe Romano Vinyls",
- "Stripe",
- "Textured",
- "Type 2",
- "Type 2 Durable Commercial and Residential - Cleanable",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/fukaura-durable-vinyl-xrm-34133"
- },
- {
- "sku": "douglas-blue-vintage-planes-wallpaper-cca-82939",
- "handle": "douglas-blue-vintage-planes-wallpaper-cca-82939",
- "title": "Douglas Blue Vintage Planes Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/688904c4fdfad7b1c2295a83871cead6.jpg?v=1572309962",
- "tags": [
- "Airplane",
- "Architectural",
- "Blue",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Industrial",
- "LA Walls",
- "Masculine",
- "Novelty",
- "Paper",
- "Prepasted",
- "Scenic",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Vintage",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/douglas-blue-vintage-planes-wallpaper-cca-82939"
- },
- {
- "sku": "puget-s-pineapple-scr-7915",
- "handle": "puget-s-pineapple-scr-7915",
- "title": "Puget's Pineapple",
- "vendor": "Studio Toten",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/dfda2890df9f5c0553e103f4a91dd7a2.jpg?v=1572309083",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Aubergine Yellow",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Designer Wallcoverings",
- "Light Yellow",
- "Maroon",
- "Paper",
- "Puget's Pineapple",
- "Red",
- "Screen Print",
- "Tropical",
- "vinyl",
- "Wallcovering",
- "Whimsical Screen Prints Vol. 1",
- "Yellow"
- ],
- "max_price": 146.18,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/puget-s-pineapple-scr-7915"
- },
- {
- "sku": "dwtt-71392-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71392-designer-wallcoverings-los-angeles",
- "title": "Island Coral | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T88763_4cd859f6-d18c-4fde-9952-3e0a77547ef5.jpg?v=1733894150",
- "tags": [
- "Architectural",
- "Contemporary",
- "Coral",
- "Geometric",
- "Pattern",
- "T88763",
- "Thibaut",
- "Trade Routes",
- "Trellis",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71392-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "lanvin-arpergeo-wallpaper-xb8-66599",
- "handle": "lanvin-arpergeo-wallpaper-xb8-66599",
- "title": "Lanvin Arpergeo Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/375df90dec8e0f74a8a6ef3f32da27ed.jpg?v=1775131476",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Bathroom",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Coastal",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Geometric",
- "Lanvin Arpergeo Wallcovering",
- "Light Beige",
- "Light Green",
- "Living Room",
- "Paper",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Spa",
- "Stripe",
- "Tan",
- "Transitional",
- "vinyl",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 38.55,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/lanvin-arpergeo-wallpaper-xb8-66599"
- },
- {
- "sku": "austin-blue-plaid-wallpaper-cca-82965",
- "handle": "austin-blue-plaid-wallpaper-cca-82965",
- "title": "Austin Blue Plaid Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/bab73402eccf680bae3abdc59704d58e.jpg?v=1572309963",
- "tags": [
- "Architectural",
- "Beige",
- "Brown",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Green",
- "LA Walls",
- "Masculine",
- "Paper",
- "Plaid",
- "Plaids",
- "Prepasted",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/austin-blue-plaid-wallpaper-cca-82965"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_sm10238-jpg",
- "handle": "wolfgordonwallcovering_dwwg_sm10238-jpg",
- "title": "SM10238 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_sm10237.jpg?v=1733872484",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Gray",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_sm10238-jpg"
- },
- {
- "sku": "hawthorne-faux-vertical-silk-durable-walls-xwo-53629",
- "handle": "hawthorne-faux-vertical-silk-durable-walls-xwo-53629",
- "title": "Hawthorne Faux Vertical Silk Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/XWO-53629-sample-clean.jpg?v=1774482231",
- "tags": [
- "Architectural",
- "Bedroom",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Dark Gray",
- "Faux",
- "Faux Finish",
- "Gray",
- "Grey",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Minimalist",
- "Office",
- "Slate Gray",
- "Solid",
- "Sophisticated",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hawthorne-faux-vertical-silk-durable-walls-xwo-53629"
- },
- {
- "sku": "rivington-rice-paper-durable-vinyl-walls-xwj-52436",
- "handle": "rivington-rice-paper-durable-vinyl-walls-xwj-52436",
- "title": "Rivington Rice Paper Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwj-52436-sample-rivington-rice-paper-durable-vinyl-hollywood-wallcoverings.jpg?v=1775730713",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gold",
- "Hallway",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Light Brown",
- "Living Room",
- "Organic Modern",
- "Paper",
- "Solid",
- "Textured",
- "Timeless",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Vinyl Wallcoverings",
- "Wallcovering",
- "Warm",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/rivington-rice-paper-durable-vinyl-walls-xwj-52436"
- },
- {
- "sku": "saint-helene-durable-vinyl-dur-72057",
- "handle": "saint-helene-durable-vinyl-dur-72057",
- "title": "Saint Helene Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72057-sample-clean.jpg?v=1774484187",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Grasscloth",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Beige",
- "Living Room",
- "Minimalist",
- "Off-white",
- "Organic Modern",
- "Serene",
- "Stripe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/saint-helene-durable-vinyl-dur-72057"
- },
- {
- "sku": "canal-damask-durable-vinyl-xwa-52077",
- "handle": "canal-damask-durable-vinyl-xwa-52077",
- "title": "Canal Damask Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwa-52077-sample-canal-damask-durable-vinyl-hollywood-wallcoverings.jpg?v=1775707050",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Green",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Cream",
- "Damask",
- "Dining Room",
- "Fire Rated",
- "Flame Certificate Available",
- "Grandmillennial",
- "Green",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Living Room",
- "Pale Beige",
- "Pattern",
- "Sage Green",
- "Scroll",
- "Serene",
- "Textured",
- "Timeless",
- "Traditional",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vine",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\""
- ],
- "max_price": 66.82,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/canal-damask-durable-vinyl-xwa-52077"
- },
- {
- "sku": "eur-80313-ncw4302-designer-wallcoverings-los-angeles",
- "handle": "eur-80313-ncw4302-designer-wallcoverings-los-angeles",
- "title": "Mourlot 03 - Celadon Green Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513503662131.jpg?v=1775523314",
- "tags": [
- "Abstract",
- "Architectural",
- "Bathroom",
- "Bedroom",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Geometric",
- "Green",
- "Hallway",
- "LES REVES",
- "Light Green",
- "Minimalist",
- "Mourlot",
- "NCW4302",
- "NCW4302-03",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Off-white",
- "Organic Modern",
- "Pale Green",
- "Paper",
- "Serene",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80313-ncw4302-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwtt-80959-designer-wallcoverings-los-angeles",
- "handle": "dwtt-80959-designer-wallcoverings-los-angeles",
- "title": "Coromandel | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/T10228_423cfb00-88ce-4801-a1a8-cccd1bbaff49.jpg?v=1743193972",
- "tags": [
- "Architectural",
- "Botanical",
- "brown",
- "Chinoiserie",
- "cream",
- "Floral",
- "gray",
- "green",
- "Pattern",
- "red",
- "T10228",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-80959-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "fukaura-durable-vinyl-xrm-34134",
- "handle": "fukaura-durable-vinyl-xrm-34134",
- "title": "Fukaura Durable Vinyl",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/f7ee80f70186b3acc72bfd8b2d9ad26e_5d332c98-198c-4658-b045-2d6b893c2037.jpg?v=1572310410",
- "tags": [
- "Architectural",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Phillipe Romano",
- "Phillipe Romano Essential Textures",
- "Phillipe Romano Vinyls",
- "Stripe",
- "Textured",
- "Type 2",
- "Type 2 Durable Commercial and Residential - Cleanable",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/fukaura-durable-vinyl-xrm-34134"
- },
- {
- "sku": "steuben-embossed-vertical-durable-vinyl-walls-xwr-52785",
- "handle": "steuben-embossed-vertical-durable-vinyl-walls-xwr-52785",
- "title": "Steuben Embossed Vertical Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwr-52785-sample-steuben-embossed-vertical-durable-vinyl-hollywood-wallcoverings.jpg?v=1775734822",
- "tags": [
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Embossed Texture",
- "Grey",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Light Gray",
- "Linen",
- "Living Room",
- "Minimalist",
- "Office",
- "Pale Gray",
- "Serene",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/steuben-embossed-vertical-durable-vinyl-walls-xwr-52785"
- },
- {
- "sku": "hainsville-faux-leather-durable-walls-xwt-53385",
- "handle": "hainsville-faux-leather-durable-walls-xwt-53385",
- "title": "Hainsville Faux Leather Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/reserve-sonoma_f852b0ea-5f6b-4111-997a-74c47f1d6800.jpg?v=1777481527",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Camel",
- "Class A Fire Rated",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Faux",
- "Faux Finish",
- "Faux Leather",
- "Gold",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Office",
- "Pale Beige",
- "Solid",
- "Tan",
- "Textured",
- "Timeless",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hainsville-faux-leather-durable-walls-xwt-53385"
- },
- {
- "sku": "contempo-diamond-vinyl-dwx-58017",
- "handle": "contempo-diamond-vinyl-dwx-58017",
- "title": "Contempo Diamond Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58017-sample-contempo-diamond-vinyl-hollywood-wallcoverings.jpg?v=1775709051",
- "tags": [
- "54\" Width",
- "Architectural",
- "Beige",
- "Blue Gray",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Diamond",
- "Geometric",
- "hollywood",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Beige",
- "Light Blue Gray",
- "Modern",
- "Textured",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wide Width"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/contempo-diamond-vinyl-dwx-58017"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_qnt-5552-jpg",
- "handle": "wolfgordonwallcovering_dwwg_qnt-5552-jpg",
- "title": "Quinault - Spring | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/qnt-5552.jpg?v=1762303697",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Green",
- "Light Green",
- "Quinault",
- "RAMPART®",
- "Spring",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_qnt-5552-jpg"
- },
- {
- "sku": "gibby-purple-leafy-scroll-wallpaper-wallpaper-cca-82849",
- "handle": "gibby-purple-leafy-scroll-wallpaper-wallpaper-cca-82849",
- "title": "Gibby Purple Leafy Scroll Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/88fd9b7372678c41808b5659967b5762.jpg?v=1572309957",
- "tags": [
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Faux",
- "LA Walls",
- "Leaf",
- "Prepasted",
- "Purple",
- "Scroll",
- "Scrolls",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vine",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/gibby-purple-leafy-scroll-wallpaper-wallpaper-cca-82849"
- },
- {
- "sku": "barnes-rust-paisley-damask-wallpaper-cca-82911",
- "handle": "barnes-rust-paisley-damask-wallpaper-cca-82911",
- "title": "Barnes Rust Paisley Damask Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ce82d83043536140046b9e708813815a.jpg?v=1572309961",
- "tags": [
- "Architectural",
- "Beige",
- "Brown",
- "Commercial",
- "Damask",
- "Damasks",
- "Discontinued",
- "Easy Walls",
- "LA Walls",
- "Masculine",
- "Modern",
- "Orange",
- "Paisley",
- "Paper",
- "Prepasted",
- "Rust",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/barnes-rust-paisley-damask-wallpaper-cca-82911"
- },
- {
- "sku": "dwc-1001618",
- "handle": "dwc-1001618",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693308801075.jpg?v=1775521153",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Geometric",
- "Gray",
- "Light Gray",
- "NCW4307-02",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paper",
- "Stripe",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001618"
- },
- {
- "sku": "biscay-bay-leopard-cherry-wood-grain-wbs-39624",
- "handle": "biscay-bay-leopard-cherry-wood-grain-wbs-39624",
- "title": "Biscay Bay Leopard Cherry Wood Grain | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/wbs-39624-sample-biscay-bay-leopard-cherry-wood-grain-hollywood-wallcoverings.jpg?v=1775705399",
- "tags": [
- "Animal Print",
- "Architectural",
- "Beige",
- "Blue",
- "Bricks and Stones",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Conference Room",
- "Contemporary",
- "Dark Brown",
- "Embossed Texture",
- "Estimated Type: Vinyl",
- "Faux",
- "Faux Wood",
- "Glamorous",
- "Gold",
- "Gray",
- "Hollywood Wallcoverings",
- "Hotel Lobby",
- "Living Room",
- "Luxe",
- "Luxurious",
- "Navy Blue",
- "Paper Backed Solid Vinyl Wallcoverings",
- "Regencycore",
- "Rich Woods",
- "Solid",
- "Tan",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Wallcoverings",
- "Wood",
- "Yellow"
- ],
- "max_price": 54.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/biscay-bay-leopard-cherry-wood-grain-wbs-39624"
- },
- {
- "sku": "westville-contemporary-durable-walls-xje-53681",
- "handle": "westville-contemporary-durable-walls-xje-53681",
- "title": "Westville Contemporary Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xje-53681-sample-westville-contemporary-durable-hollywood-wallcoverings.jpg?v=1775736445",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gray",
- "Grey",
- "Hallway",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Light Gray",
- "Light Grey",
- "Living Room",
- "Minimalist",
- "Modern",
- "Serene",
- "Silver",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/westville-contemporary-durable-walls-xje-53681"
- },
- {
- "sku": "ncw4350-05",
- "handle": "ncw4350-05",
- "title": "Les Indiennes Les Indiennes Blue - Blue Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497263722547.jpg?v=1775520464",
- "tags": [
- "Architectural",
- "Beige",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "NCW4350-05",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Paisley",
- "Paper",
- "Traditional",
- "Wallcovering",
- "Wallcoverings",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4350-05"
- },
- {
- "sku": "dwtt-72549-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72549-designer-wallcoverings-los-angeles",
- "title": "Shangri-la Metallic on Taupe | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/room-living_room-t6861.jpg?v=1775153852",
- "tags": [
- "Architectural",
- "beige",
- "Damask",
- "gold",
- "Metallic on Taupe",
- "Pattern",
- "Shangri-La",
- "T8616",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72549-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "pleated-perfect-paradise-ppp-2616",
- "handle": "pleated-perfect-paradise-ppp-2616",
- "title": "Pleated Perfect Paradise | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/ppp-2616-sample-pleated-perfect-paradise-hollywood-wallcoverings.jpg?v=1775729147",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Green",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Light Khaki",
- "Olive",
- "Pleated Perfect Paradise",
- "Stripe",
- "Textured",
- "vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 35.66,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/pleated-perfect-paradise-ppp-2616"
- },
- {
- "sku": "tressage-bark-romo",
- "handle": "tressage-bark-romo",
- "title": "Tressage Bark | Romo",
- "vendor": "Romo",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/MW165-01-tressage-wallcovering-bark_01.jpg?v=1776398735",
- "tags": [
- "Architectural",
- "Background Color brown",
- "beige",
- "brown",
- "Burnished Bronze",
- "Coastal",
- "Collage IV",
- "Commercial",
- "dark brown",
- "Grasscloth",
- "Handcrafted Wallcovering",
- "Lobby",
- "Medium",
- "MW165/01",
- "Natural",
- "Office",
- "Restaurant",
- "Romo",
- "Rustic",
- "Texture",
- "Textured",
- "Tressage",
- "Tropical",
- "Wallcovering",
- "Warm Taupe"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/tressage-bark-romo"
- },
- {
- "sku": "eur-80294-ncw4277-designer-wallcoverings-los-angeles",
- "handle": "eur-80294-ncw4277-designer-wallcoverings-los-angeles",
- "title": "Meredith 04 - Coral Pink Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513502580787.jpg?v=1775523211",
- "tags": [
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Commercial",
- "Coral",
- "COROMANDEL",
- "Damask",
- "Dining Room",
- "English Country",
- "Floral",
- "Grandmillennial",
- "Living Room",
- "Meredith",
- "NCW4277",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Off-white",
- "Paper",
- "Pink",
- "Red",
- "Sophisticated",
- "Textured",
- "Traditional",
- "Victorian",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80294-ncw4277-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "hollywood-tailored-xhw-2010186",
- "handle": "hollywood-tailored-xhw-2010186",
- "title": "Hollywood Tailored | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/harrison-carrere.jpg?v=1777480984",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Ecru",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Beige",
- "Linen Texture",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Organic Modern",
- "Serene",
- "Textured",
- "Timeless",
- "Traditional",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Look",
- "Yellow"
- ],
- "max_price": 59.87,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hollywood-tailored-xhw-2010186"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_br018-jpg",
- "handle": "wolfgordonwallcovering_dwwg_br018-jpg",
- "title": "BR018 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_br017.jpg?v=1733873677",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Green",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_br018-jpg"
- },
- {
- "sku": "hollywood-crystal-xhw-2010108",
- "handle": "hollywood-crystal-xhw-2010108",
- "title": "Hollywood Crystal | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/crystalline-sandstone.jpg?v=1777480963",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "Abstract",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Beige",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Crystal",
- "Estimated Type: Paper",
- "Faux Finish",
- "Faux Wood",
- "Fire Rated",
- "Flame Certificate Available",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Off-white",
- "Serene",
- "Textured",
- "Traditional",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Wood",
- "Wood Look",
- "Yellow"
- ],
- "max_price": 61.9,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/hollywood-crystal-xhw-2010108"
- },
- {
- "sku": "crushed-costoluto-vinyl-dwx-58008",
- "handle": "crushed-costoluto-vinyl-dwx-58008",
- "title": "Crushed Costoluto Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwx-58008-sample-crushed-costoluto-vinyl-hollywood-wallcoverings.jpg?v=1775709692",
- "tags": [
- "54\" Width",
- "Abstract",
- "Architectural",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract",
- "Contract Wallcovering",
- "Crushed",
- "Gold",
- "Gray",
- "hollywood",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Neutral",
- "Organic",
- "Texture",
- "Textured",
- "Type 2 Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wide Width"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/crushed-costoluto-vinyl-dwx-58008"
- },
- {
- "sku": "dwkk-127815",
- "handle": "dwkk-127815",
- "title": "Menagerie Wp - Gilver Multi By Clarke And Clarke | Clarke & Clarke Botanical Wonders Wallcovering |Animal/Insects Novelty Wallcovering Print",
- "vendor": "Clarke And Clarke",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W0131_03_CAC_29e48b2f-824b-412f-a14a-57270b219690.jpg?v=1753321594",
- "tags": [
- "20.5In",
- "Animal Print",
- "Animal/Insects",
- "Architectural",
- "Archived-Triple-Verified",
- "Archived-Vendor-Gone",
- "Bedroom",
- "Bird",
- "Blue",
- "Botanical",
- "Clarke & Clarke Botanical Wonders Wallcovering",
- "Clarke And Clarke",
- "Commercial",
- "Contemporary",
- "Dining Room",
- "display_variant",
- "Eclectic",
- "Fauna",
- "Floral",
- "Flowers",
- "Gilver",
- "Green",
- "Ivory",
- "Leaves",
- "Leopard",
- "Leopard Print",
- "Living Room",
- "Maximalist",
- "Menagerie Wp",
- "Non Woven - 100%",
- "Non-woven",
- "Novelty",
- "Paper",
- "Pattern",
- "Pink",
- "Playful",
- "Print",
- "Rose Pink",
- "Sage Green",
- "Snake",
- "Taupe",
- "Teal",
- "Tropical",
- "United Kingdom",
- "W0131/03.Cac.0",
- "Wallcovering",
- "Whimsical",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwkk-127815"
- },
- {
- "sku": "jada-white-girly-floral-scroll-wallpaper-wallpaper-cca-82818",
- "handle": "jada-white-girly-floral-scroll-wallpaper-wallpaper-cca-82818",
- "title": "Jada White Girly Floral Scroll Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/0c43d29a94f42b1967e0e3472d55539e.jpg?v=1572309955",
- "tags": [
- "Architectural",
- "Black",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Discontinued",
- "Easy Walls",
- "Floral",
- "Gray",
- "LA Walls",
- "Scrolls",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Unpasted",
- "Vine",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "White",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/jada-white-girly-floral-scroll-wallpaper-wallpaper-cca-82818"
- },
- {
- "sku": "ncw4392-01",
- "handle": "ncw4392-01",
- "title": "Ashdown Chelwood Aqua - Blue Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497265688627.jpg?v=1775520737",
- "tags": [
- "Architectural",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Floral",
- "Light Green",
- "NCW4392-01",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Paper",
- "Single Dominant Background Color Word",
- "Traditional",
- "Wallcovering",
- "Wallcoverings",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4392-01"
- },
- {
- "sku": "westville-contemporary-durable-walls-xje-53689",
- "handle": "westville-contemporary-durable-walls-xje-53689",
- "title": "Westville Contemporary Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xje-53689-sample-westville-contemporary-durable-hollywood-wallcoverings.jpg?v=1775736476",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Hallway",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Light Beige",
- "Light Brown",
- "Living Room",
- "Serene",
- "Taupe",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/westville-contemporary-durable-walls-xje-53689"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_lyr-3370_8-jpg",
- "handle": "wolfgordonwallcovering_dwwg_lyr-3370_8-jpg",
- "title": "Lyra - Ecru | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/lyr-3370_8.jpg?v=1762299616",
- "tags": [
- "100% Vinyl",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract",
- "Light Brown",
- "Lyra",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_lyr-3370_8-jpg"
- },
- {
- "sku": "caterina-embossed-vinyl-wallpaper-type-2-xwa-73268",
- "handle": "caterina-embossed-vinyl-wallpaper-type-2-xwa-73268",
- "title": "Caterina Embossed Vinyl - Type 2 | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwa-73268-sample-caterina-embossed-vinyl-type-2-hollywood.jpg?v=1775707442",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Caterina Embossed Vinyl",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Embossed",
- "Embossed Texture",
- "Hollywood Wallcoverings",
- "Living Room",
- "Minimalist",
- "Modern",
- "Office",
- "Organic Modern",
- "Phillip Romano Commercial",
- "Serene",
- "Solid",
- "Taupe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Wood Grain"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/caterina-embossed-vinyl-wallpaper-type-2-xwa-73268"
- },
- {
- "sku": "gramercy-emerald",
- "handle": "gramercy-emerald",
- "title": "GRAMERCY Emerald",
- "vendor": "Mind the Gap",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/MTG_403303_1_GRAMERCY_Emerald.jpg?v=1607114848",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Art Deco",
- "Class A Fire Rated",
- "Commercial",
- "Dark Green",
- "Emerald Green",
- "Geometric",
- "Gold",
- "GRAMERCY Emerald",
- "Maximalist",
- "Mind the Gap",
- "Non-woven",
- "Pattern",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/gramercy-emerald"
- },
- {
- "sku": "patoa-librato-wallpaper-xb7-66596",
- "handle": "patoa-librato-wallpaper-xb7-66596",
- "title": "Patoa Librato Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/424f47099f1af5b86b9e489d0806fc12.jpg?v=1775131144",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "cellulose",
- "Class A Fire Rated",
- "Coastal",
- "Commercial",
- "Entryway",
- "Farmhouse",
- "Grasscloth",
- "Light Brown",
- "Living Room",
- "Natural Wallcovering",
- "Office",
- "Patoa Librato Wallcovering",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Tan",
- "Textural",
- "Textured",
- "Traditional",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 52.06,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/patoa-librato-wallpaper-xb7-66596"
- },
- {
- "sku": "ncw4301-04",
- "handle": "ncw4301-04",
- "title": "Les Rêves Beau Rivage Beige/Taupe - Taupe. Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497261756467.jpg?v=1775520204",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Geometric",
- "Gray",
- "Mid-Century Modern",
- "NCW4301-04",
- "Nina Campbell Wallcoverings",
- "Paper",
- "Taupe",
- "Wallcovering",
- "Wallcoverings",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4301-04"
- },
- {
- "sku": "eur-80457-ncw4497-designer-wallcoverings-los-angeles",
- "handle": "eur-80457-ncw4497-designer-wallcoverings-los-angeles",
- "title": "Toile Chinoise 01 - Brown Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513508675635.jpg?v=1775524213",
- "tags": [
- "ANIMAL/INSECTS",
- "Architectural",
- "Bedroom",
- "bird",
- "Birds",
- "Blue",
- "Botanical",
- "Brown",
- "Buildings",
- "Chinoiserie",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Dining Room",
- "Green",
- "Living Room",
- "NCW4497",
- "NCW4497-01",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Off-white",
- "Paper",
- "Pink",
- "Rose",
- "Scenic",
- "Serene",
- "SIGNATURE COLLECTION",
- "Taupe",
- "Teal",
- "Toile",
- "Toile Chinoise",
- "Traditional",
- "Trees",
- "Tropical",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80457-ncw4497-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwtt-72067-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72067-designer-wallcoverings-los-angeles",
- "title": "Allison Light Blue | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T1823.jpg?v=1733892855",
- "tags": [
- "Architectural",
- "Damask",
- "Geometric Resource",
- "light blue",
- "Pattern",
- "T1823",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72067-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "canal-stripe-texture-durable-walls-xwd-52107",
- "handle": "canal-stripe-texture-durable-walls-xwd-52107",
- "title": "Canal Stripe Texture Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwd-52107-sample-canal-stripe-texture-durable-hollywood-wallcoverings.jpg?v=1775707093",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Beige",
- "Champagne",
- "Color: Gold",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Fire Rated",
- "Flame Certificate Available",
- "Geometric",
- "Gold",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Light Beige",
- "Linear",
- "Living Room",
- "Pale Beige",
- "Pattern",
- "Stripe",
- "Striped",
- "Textured",
- "Traditional",
- "Transitional",
- "Type 2 Durable Vinyl",
- "USA",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering",
- "Warm",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Yellow"
- ],
- "max_price": 66.82,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/canal-stripe-texture-durable-walls-xwd-52107"
- },
- {
- "sku": "dwc-1001687",
- "handle": "dwc-1001687",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693312438323.jpg?v=1775521602",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Floral",
- "NCW4395-01",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paper",
- "Teal",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001687"
- },
- {
- "sku": "nancy-wallpaper-xq7-68164",
- "handle": "nancy-wallpaper-xq7-68164",
- "title": "Nancy | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/5693d7da76b9c9eb44b04994a1e979a9.jpg?v=1733882470",
- "tags": [
- "AI-Analyzed-v2",
- "Animal Skin",
- "Animal/Insects",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Crocodile",
- "Faux Leather",
- "Glamorous",
- "Hollywood Regency",
- "Hollywood Wallcoverings",
- "Living Room",
- "Luxe",
- "Luxurious",
- "Nancy",
- "non-woven",
- "Phillip Romano Commercial",
- "Primary Suite",
- "Tan",
- "Taupe",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/nancy-wallpaper-xq7-68164"
- },
- {
- "sku": "dwtt-71457-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71457-designer-wallcoverings-los-angeles",
- "title": "Andreas Stripe Navy | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T14248_043e3172-facf-4396-8f6e-196b4b512eea.jpg?v=1733894037",
- "tags": [
- "Architectural",
- "Botanical",
- "Imperial Garden",
- "Navy",
- "navy blue",
- "Pattern",
- "T14248",
- "Thibaut",
- "Traditional",
- "Trellis",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71457-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "word-walls-scr-8125",
- "handle": "word-walls-scr-8125",
- "title": "Word Walls",
- "vendor": "Studio Toten",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/75d805d4530a403045fe39195ee156e2.jpg?v=1572309108",
- "tags": [
- "Abstract",
- "Architectural",
- "Beige",
- "Blue",
- "Commercial",
- "Designer Wallcoverings",
- "Luxury Screen Printed Wallpapers",
- "Paper",
- "Screen Print",
- "Smoke",
- "Steel",
- "Wallcovering",
- "Whimsical",
- "Whimsical Screen Prints Vol. 1"
- ],
- "max_price": 263.82,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/word-walls-scr-8125"
- },
- {
- "sku": "jolie-madam-wallpaper-xa1-66400",
- "handle": "jolie-madam-wallpaper-xa1-66400",
- "title": "Jolie Madam Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/f5b1a7734c964d6119bc4a414b082d33.jpg?v=1775119587",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Class A Fire Rated",
- "Coastal",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Entryway",
- "Grasscloth",
- "Jolie Madam Wallcovering",
- "Khaki",
- "Light Brown",
- "Living Room",
- "Office",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Scandinavian",
- "Stripe",
- "Striped",
- "Tan",
- "Textural",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 38.55,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/jolie-madam-wallpaper-xa1-66400"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_br10294-jpg",
- "handle": "wolfgordonwallcovering_dwwg_br10294-jpg",
- "title": "BR10294 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_br029.jpg?v=1733873652",
- "tags": [
- "AI-Analyzed-v2",
- "Animal/Insects",
- "Architectural",
- "Beige",
- "BR10294",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Khaki",
- "Paper",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_br10294-jpg"
- },
- {
- "sku": "faux-leaf-squares-fls-2742",
- "handle": "faux-leaf-squares-fls-2742",
- "title": "Faux Leaf Squares Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fls-2742-sample-faux-leaf-squares-wallpaper-hollywood-wallcoverings.jpg?v=1775711975",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Commercial",
- "Contemporary",
- "Faux Finish",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Light Gray",
- "Minimalist",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "White",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 31.92,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-leaf-squares-fls-2742"
- },
- {
- "sku": "vandal-by-innovations-usa-dwc-vandal-1",
- "handle": "vandal-by-innovations-usa-dwc-vandal-1",
- "title": "Vandal | Innovations USA",
- "vendor": "Innovations USA",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/Vandal-1.jpg?v=1736199028",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "ASTM E84",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Geometric",
- "Green",
- "Innovations USA",
- "Light Gray",
- "Non-woven",
- "Vandal",
- "Vandal-1",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/vandal-by-innovations-usa-dwc-vandal-1"
- },
- {
- "sku": "eur-80131-ncw4126-designer-wallcoverings-los-angeles",
- "handle": "eur-80131-ncw4126-designer-wallcoverings-los-angeles",
- "title": "Huntly 02 - Off-White Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513496813619.jpg?v=1775522303",
- "tags": [
- "Architectural",
- "Bedroom",
- "BRAEMAR",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Geometric",
- "Hallway",
- "Huntly",
- "Lattice",
- "Light Gray",
- "Light Grey",
- "Living Room",
- "NCW4126",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Off-white",
- "Paper",
- "Serene",
- "Traditional",
- "Transitional",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80131-ncw4126-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "always-room-for-ice-cream-small-mural-by-retro-walls-rtr-37217",
- "handle": "always-room-for-ice-cream-small-mural-by-retro-walls-rtr-37217",
- "title": "Always Room For Ice Cream Small Mural by Retro Walls",
- "vendor": "Traditional Whimsy",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/02e8544327c89298ec5a27a291006a75.jpg?v=1572309701",
- "tags": [
- "Abstract",
- "Architectural",
- "Beige",
- "Blue",
- "Commercial",
- "Commercial Wallcovering",
- "Green",
- "Heavy-duty Wallcovering with paper top-layer and non-woven backing // Colourfast and washable with a soft cloth // Butted seam (but",
- "Ice Cream Cone",
- "Metallic",
- "Multi",
- "Mural",
- "Paper",
- "Pink",
- "Retro",
- "Textured",
- "Traditional Whimsy",
- "Wallcovering",
- "Whimsical"
- ],
- "max_price": 84,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/always-room-for-ice-cream-small-mural-by-retro-walls-rtr-37217"
- },
- {
- "sku": "ramsey-type-ii-vinyl-wallcovering-xph-48211",
- "handle": "ramsey-type-ii-vinyl-wallcovering-xph-48211",
- "title": "Ramsey Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xph-48211-sample-ramsey-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775730045",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Gray",
- "Hollywood Wallcoverings",
- "Living Room",
- "Minimalist",
- "Modern",
- "Office",
- "Ramsey Type 2 Vinyl Wallcovering",
- "Serene",
- "Stripe",
- "Taupe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wood Grain"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ramsey-type-ii-vinyl-wallcovering-xph-48211"
- },
- {
- "sku": "dwkk-130169",
- "handle": "dwkk-130169",
- "title": "W4126-5 Blue | Kravet Design | New Origins | Solid Texture Wallcovering Print",
- "vendor": "Kravet",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W4126_5_9de5d88f-a0a1-4bf6-88f3-ad266710dfc0.jpg?v=1753321202",
- "tags": [
- "27In",
- "Architectural",
- "Archived-Triple-Verified",
- "Archived-Vendor-Gone",
- "Bedroom",
- "Blue",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "display_variant",
- "Grasscloth",
- "Kravet",
- "Kravet Design",
- "Light Beige",
- "Living Room",
- "Minimalist",
- "New Origins",
- "Non Woven - 100%",
- "Non-Woven",
- "Office",
- "Organic Modern",
- "Print",
- "Seafoam",
- "Serene",
- "Solid",
- "Stripe",
- "Teal",
- "Texture",
- "Textured",
- "Turquoise",
- "United States",
- "W4126-5",
- "W4126.5.0",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwkk-130169"
- },
- {
- "sku": "bellaire-faux-finish-durable-walls-xww-53071",
- "handle": "bellaire-faux-finish-durable-walls-xww-53071",
- "title": "Bellaire Faux Finish Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xww-53071-sample-bellaire-faux-finish-durable-hollywood-wallcoverings.jpg?v=1775703570",
- "tags": [
- "Architectural",
- "Bedroom",
- "Black",
- "Class A Fire Rated",
- "Color: Red",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Coral",
- "Faux",
- "Faux Finish",
- "Hallway",
- "Hollywood Wallcoverings",
- "LEED",
- "Linen",
- "Living Room",
- "Minimalist",
- "Red",
- "Salmon",
- "Solid",
- "Terracotta",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/bellaire-faux-finish-durable-walls-xww-53071"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_ar10373-jpg",
- "handle": "wolfgordonwallcovering_dwwg_ar10373-jpg",
- "title": "Armor Paint - AR10373 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_ar10372.jpg?v=1733873849",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Minimalist",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_ar10373-jpg"
- },
- {
- "sku": "doral-faux-silk-durable-walls-xwc-53222",
- "handle": "doral-faux-silk-durable-walls-xwc-53222",
- "title": "Doral Faux Silk Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwc-53222-sample-doral-faux-silk-durable-hollywood-wallcoverings.jpg?v=1775710293",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Champagne",
- "Coastal",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Cream",
- "Faux",
- "Faux Finish",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Hollywood Wallcoverings",
- "LEED",
- "Leed Walls",
- "Light Brown",
- "Linen Texture",
- "Living Room",
- "Oatmeal",
- "Organic Modern",
- "Serene",
- "Textured",
- "Traditional",
- "Transitional",
- "Wallcovering",
- "Woven",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/doral-faux-silk-durable-walls-xwc-53222"
- },
- {
- "sku": "park-ave-contemporary-faux-grasscloth-walls-xwh-52342",
- "handle": "park-ave-contemporary-faux-grasscloth-walls-xwh-52342",
- "title": "Park Ave Contemporary Faux Grasscloth | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/passage-taupe_34e263cb-ce02-49cc-9028-8d38dfee2be5.jpg?v=1777481155",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Beige",
- "Bedroom",
- "Beige",
- "Brown",
- "Champagne",
- "Color: Beige",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Cream",
- "Faux",
- "Faux Finish",
- "Faux Grasscloth",
- "Fire Rated",
- "Flame Certificate Available",
- "Grasscloth",
- "Grasscloth Look",
- "Grasscloth Texture",
- "Grasscloth Wallcovering",
- "Grasscloth Weave",
- "Hallway",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Leed Walls",
- "Light Beige",
- "Light Brown",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Modern",
- "Natural",
- "Natural Texture",
- "Organic Modern",
- "Serene",
- "Taupe",
- "Texture",
- "Textured",
- "Type 2 Durable Vinyl",
- "USA",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\"",
- "Woven",
- "Yellow"
- ],
- "max_price": 63.57,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/park-ave-contemporary-faux-grasscloth-walls-xwh-52342"
- },
- {
- "sku": "dwc-1001683",
- "handle": "dwc-1001683",
- "title": "Nina Campbell Wallcovering",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4693312208947.jpg?v=1775521575",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Botanical",
- "Class A Fire Rated",
- "Commercial",
- "Gold",
- "Gray",
- "Ivory",
- "NCW4394-02",
- "Nina Campbell",
- "Nina Campbell Wallcovering Wallcovering",
- "Paper",
- "Stripe",
- "Traditional",
- "Wallcovering",
- "White",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwc-1001683"
- },
- {
- "sku": "dwtt-71538-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71538-designer-wallcoverings-los-angeles",
- "title": "Kendall Blue | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T11063_7ca641de-ace9-4c97-a673-27620cf6ef48.jpg?v=1733893880",
- "tags": [
- "Architectural",
- "Blue",
- "Geometric",
- "Geometric Resource 2",
- "light blue",
- "off-white",
- "Pattern",
- "T11063",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71538-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "ncw4306-04",
- "handle": "ncw4306-04",
- "title": "Les Rêves Belle Île Aqua/Beige - Blue Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497262837811.jpg?v=1775520374",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Geometric",
- "Light Blue",
- "NCW4306-04",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Paper",
- "Stripe",
- "Textured",
- "Wallcovering",
- "Wallcoverings",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4306-04"
- },
- {
- "sku": "robertocavalliwallpaper_dwrc16046-jpg",
- "handle": "robertocavalliwallpaper_dwrc16046-jpg",
- "title": "Roberto Cavalli Wallcovering",
- "vendor": "Roberto Cavalli Wallpaper",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/RobertoCavalliWallpaper_dwrc16046.jpg?v=1587153720",
- "tags": [
- "Abstract",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "European",
- "Gray",
- "Imported",
- "Italian",
- "Non-Woven",
- "Purple",
- "Roberto Cavalli Wallcovering",
- "Texture",
- "Textured",
- "Volume 5",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/robertocavalliwallpaper_dwrc16046-jpg"
- },
- {
- "sku": "eur-80175-ncw4181-designer-wallcoverings-los-angeles",
- "handle": "eur-80175-ncw4181-designer-wallcoverings-los-angeles",
- "title": "Sansui 02 | Nina Campbell Europe",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_7513498452019.jpg?v=1775522579",
- "tags": [
- "Architectural",
- "CATHAY",
- "Chinoiserie",
- "Color: Grey",
- "Commercial",
- "Contemporary",
- "Dining Room",
- "Fretwork",
- "Geometric",
- "Grey",
- "Hallway",
- "Lattice",
- "Living Room",
- "NCW4181",
- "Nina Campbell",
- "Nina Campbell Europe",
- "Off-white",
- "Pale Grey",
- "Paper",
- "Sansui",
- "Serene",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/eur-80175-ncw4181-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "paddock-type-ii-vinyl-wallcovering-xpd-48177",
- "handle": "paddock-type-ii-vinyl-wallcovering-xpd-48177",
- "title": "Paddock Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xpd-48177-sample-paddock-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775728631",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Grasscloth Weave",
- "Hallway",
- "Hollywood Wallcoverings",
- "Linen Texture",
- "Living Room",
- "Organic Modern",
- "Paddock Type 2 Vinyl Wallcovering",
- "Tan",
- "Taupe",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/paddock-type-ii-vinyl-wallcovering-xpd-48177"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_em10274b-jpg",
- "handle": "wolfgordonwallcovering_dwwg_em10274b-jpg",
- "title": "EM10274B | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_em10273b.jpg?v=1733873306",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "EM10274B",
- "Gray",
- "Light Slate Gray",
- "Paper",
- "Textured",
- "Wallcovering",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_em10274b-jpg"
- },
- {
- "sku": "asha-sand-lotus-damask-wallpaper-cca-83236",
- "handle": "asha-sand-lotus-damask-wallpaper-cca-83236",
- "title": "Asha Sand Lotus Damask Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/28629b77f38c77f7233042f353885a89.jpg?v=1572309981",
- "tags": [
- "Architectural",
- "Beige",
- "Bling",
- "Class A Fire Rated",
- "Commercial",
- "Damask",
- "Discontinued",
- "Easy Walls",
- "Glitter",
- "LA Walls",
- "Prepasted",
- "Sand",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 75.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/asha-sand-lotus-damask-wallpaper-cca-83236"
- },
- {
- "sku": "dwtt-70961-designer-wallcoverings-los-angeles",
- "handle": "dwtt-70961-designer-wallcoverings-los-angeles",
- "title": "Mekong Stripe Blue and Turquoise | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T10093_d2712fbb-8c50-4dd2-a96b-cee89a44113a.jpg?v=1733894977",
- "tags": [
- "Abstract",
- "Architectural",
- "Blue",
- "Blue and Turquoise",
- "Coastal",
- "Pattern",
- "T10093",
- "Thibaut",
- "Tropics",
- "Turquoise",
- "Unknown",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-70961-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "berkeley-type-ii-vinyl-wallcovering-xju-47304",
- "handle": "berkeley-type-ii-vinyl-wallcovering-xju-47304",
- "title": "Berkeley Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xju-47304-sample-berkeley-type-ii-vinyl-hollywood-wallcoverings.jpg?v=1775704191",
- "tags": [
- "Architectural",
- "Brown",
- "Charcoal Gray",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Conference Room",
- "Contemporary",
- "Estimated Type: Non-woven",
- "Gray",
- "Hollywood Wallcoverings",
- "Minimalist",
- "Modern",
- "Office",
- "Orange",
- "Primary Suite",
- "Solid",
- "Sophisticated",
- "Taupe",
- "Terracotta",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/berkeley-type-ii-vinyl-wallcovering-xju-47304"
- },
- {
- "sku": "tahiti-scenic-wallpaper-trf-56820",
- "handle": "tahiti-scenic-wallpaper-trf-56820",
- "title": "Tahiti Scenic | Jeffrey Stevens",
- "vendor": "Jeffrey Stevens",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ce37f2d0e88b9c7d5b0748c883bc8c30.jpg?v=1750789762",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Asian",
- "Beige",
- "Birds",
- "Blue",
- "Bridge",
- "bright",
- "cabana",
- "Chinoiserie",
- "Commercial",
- "Commercial Wallcovering",
- "Cream",
- "Discontinued",
- "floral",
- "flowers",
- "Jeffrey Stevens",
- "medium blue",
- "medium scale",
- "Modern",
- "Modern Tropics",
- "Navy Blue",
- "Non-Woven",
- "novelty",
- "Olive Green",
- "overall",
- "pagoda",
- "Paper",
- "Pastel",
- "Prepasted - Washable - Strippable",
- "Red",
- "red/orange",
- "scenic",
- "Series: York",
- "Tan",
- "Toile",
- "Tomato Red",
- "Traditional",
- "tropical",
- "USA",
- "Wallcovering",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 60.53,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/tahiti-scenic-wallpaper-trf-56820"
- },
- {
- "sku": "maidstone-type-ii-vinyl-wallcovering-xmh-47944",
- "handle": "maidstone-type-ii-vinyl-wallcovering-xmh-47944",
- "title": "Maidstone - Mushroom Type II Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/marquise-amazonite_8b0caeb7-4767-4c9c-ad3b-4ada556b4de1.jpg?v=1777481413",
- "tags": [
- "20 oz",
- "54 Inch Width",
- "54\" Width",
- "ACT Colorfastness",
- "ACT Compliant",
- "ACT Crocking",
- "ACT Crocking Tested",
- "ACT Flammability",
- "Architectural",
- "Background Color Teal",
- "Bedroom",
- "Blue",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Turquoise",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Contract Grade",
- "Contract Wallcovering",
- "Cool",
- "Faux Finish",
- "Faux Stone",
- "Fire Rated",
- "Flame Certificate Available",
- "Geometric",
- "Gray",
- "Healthcare",
- "Hollywood Wallcoverings",
- "Hospitality",
- "Living Room",
- "Maidstone Type 2 Vinyl Wallcovering",
- "Mfr-Image-Refreshed",
- "Modern",
- "Office",
- "Stone Look",
- "Stripe",
- "Teal",
- "Textured",
- "Turquoise",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Type 2 Vinyl",
- "USA",
- "Vinyl",
- "Wallcovering",
- "Warranty Available",
- "Weight: 20 oz",
- "Wide Width",
- "Width: 54\""
- ],
- "max_price": 55.38,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/maidstone-type-ii-vinyl-wallcovering-xmh-47944"
- },
- {
- "sku": "dwkk-127826",
- "handle": "dwkk-127826",
- "title": "Wild Strawberry Wp - Blush Multi By Clarke And Clarke | Clarke & Clarke Botanical Wonders Wallcovering | Animal/Insects Wallcovering Print",
- "vendor": "Clarke And Clarke",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W0135_01_CAC_010a6708-eaa4-45a3-8ae0-21f53ec6f9ba.jpg?v=1753321576",
- "tags": [
- "20.5In",
- "Animal/Insects",
- "Architectural",
- "Archived-Triple-Verified",
- "Archived-Vendor-Gone",
- "Bathroom",
- "Bedroom",
- "Bird",
- "Blue",
- "Botanical",
- "Brown",
- "Clarke & Clarke Botanical Wonders Wallcovering",
- "Clarke And Clarke",
- "Commercial",
- "Contemporary",
- "Cottagecore",
- "Cream",
- "display_variant",
- "English Country",
- "Floral",
- "Flower",
- "Golden Yellow",
- "Grandmillennial",
- "Green",
- "Leaf",
- "Non Woven - 100%",
- "Nursery",
- "Paper",
- "Pattern",
- "Peach",
- "Playful",
- "Print",
- "Sage Green",
- "Sky Blue",
- "Strawberry",
- "Strawberry Red",
- "Taupe",
- "Traditional",
- "United Kingdom",
- "Vine",
- "W0135/01.Cac.0",
- "Wallcovering",
- "Whimsical",
- "White",
- "Wild Strawberry Wp"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwkk-127826"
- },
- {
- "sku": "villa-velore-durable-vinyl-dur-72325",
- "handle": "villa-velore-durable-vinyl-dur-72325",
- "title": "Villa Velore Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72325-sample-clean.jpg?v=1774485194",
- "tags": [
- "Abstract",
- "Architectural",
- "Bedroom",
- "Brown",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Gray",
- "Grey",
- "Hallway",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Living Room",
- "Organic Modern",
- "Serene",
- "Taupe",
- "Textured",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/villa-velore-durable-vinyl-dur-72325"
- },
- {
- "sku": "dwtt-80950-designer-wallcoverings-los-angeles",
- "handle": "dwtt-80950-designer-wallcoverings-los-angeles",
- "title": "Mombasa | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/T10212_d3fc688e-36f1-41c2-bc07-985b0c9183cf.jpg?v=1743193944",
- "tags": [
- "Architectural",
- "Contemporary",
- "Geometric",
- "gray",
- "off-white",
- "Pattern",
- "T10212",
- "Thibaut",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 114.03,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-80950-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "sumatra-by-innovations-usa-dwc-sumatra-2",
- "handle": "sumatra-by-innovations-usa-dwc-sumatra-2",
- "title": "Sumatra | Innovations USA",
- "vendor": "Innovations USA",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/Sumatra-2.jpg?v=1736198828",
- "tags": [
- "AI-Analyzed-v2",
- "Almond",
- "Architectural",
- "ASTM E84",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Innovations USA",
- "Latte",
- "Light Beige",
- "Linen",
- "Off-white",
- "Stripe",
- "Sumatra",
- "Sumatra-2",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/sumatra-by-innovations-usa-dwc-sumatra-2"
- },
- {
- "sku": "programa-piento-durable-vinyl-dur-72426",
- "handle": "programa-piento-durable-vinyl-dur-72426",
- "title": "Programa Piento Durable Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DUR-72426-sample-clean.jpg?v=1774485501",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Brown",
- "Chevron",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Durable Type 2 Vinyl",
- "Geometric",
- "Grayish Brown",
- "Hollywood Textures Vol. 1",
- "Hollywood Wallcoverings",
- "Light Taupe",
- "Living Room",
- "Modern",
- "Office",
- "Organic Modern",
- "Programa Piento Durable Vinyl",
- "Tan",
- "Taupe",
- "Transitional",
- "Type 2",
- "Type 2 Durable Vinyl",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Wood Grain"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/programa-piento-durable-vinyl-dur-72426"
- },
- {
- "sku": "nassau-gold-dusk",
- "handle": "nassau-gold-dusk",
- "title": "Nappa - Metallic - Dusk 100% SIlicone | Phillipe Romano Wallcoverings",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/Ziro_Nappa_Dusk.jpg?v=1772569952",
- "tags": [
- "Antimicrobial-Free",
- "Architectural",
- "Bedroom",
- "Bleach Cleanable",
- "BS 5852 Crib 5",
- "CA TB 117 Compliant",
- "Charcoal",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Contract Grade",
- "Dark Gray",
- "Dark Grey",
- "DMF-Free",
- "Fabric",
- "Faux Leather",
- "Fine",
- "Fine Texture",
- "FR Additives Free",
- "Graffiti-Free",
- "Grain",
- "Gray",
- "Green Building",
- "Grey",
- "Healthcare",
- "Hospitality",
- "IMO 8.2 & 8.3 Certified",
- "IMO Marine Grade",
- "Indoor/Outdoor",
- "LEED Compatible",
- "Living Room",
- "Minimalist",
- "Modern",
- "Monochromatic",
- "Multi-Purpose",
- "MVSS-302 Automotive",
- "Neutral Tones",
- "NFPA 260 Compliant",
- "Office",
- "Pebble",
- "PFAS-Free",
- "Phillipe Romano",
- "Silicone",
- "Solid",
- "Sophisticated",
- "Textured",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/nassau-gold-dusk"
- },
- {
- "sku": "natalia-blue-curly-scroll-wallpaper-wallpaper-cca-82824",
- "handle": "natalia-blue-curly-scroll-wallpaper-wallpaper-cca-82824",
- "title": "Natalia Blue Curly Scroll Wallcovering Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/47c919234233c22b6a5d9c7705f2d228.jpg?v=1572309956",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Floral",
- "Green",
- "LA Walls",
- "Leaf",
- "Pink",
- "Prepasted",
- "Scrolls",
- "Series: Brewster",
- "Strippable",
- "Textured",
- "Traditional",
- "Vinyl",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 79.99,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/natalia-blue-curly-scroll-wallpaper-wallpaper-cca-82824"
- },
- {
- "sku": "faux-leaf-squares-fls-2504",
- "handle": "faux-leaf-squares-fls-2504",
- "title": "Faux Leaf Squares Wallpaper | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/fls-2504-sample-faux-leaf-squares-wallpaper-hollywood-wallcoverings.jpg?v=1775711868",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Commercial",
- "Dark Seagreen",
- "Faux Finish",
- "Gray",
- "Hollywood Wallcoverings",
- "Industrial Elegance",
- "Solid",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Wallcovering",
- "Wide Serviceable Texture - Cleanable"
- ],
- "max_price": 34.55,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/faux-leaf-squares-fls-2504"
- },
- {
- "sku": "fairford-vinyl-wallcovering-xlb-47654",
- "handle": "fairford-vinyl-wallcovering-xlb-47654",
- "title": "Fairford Vinyl | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xlb-47654-sample-fairford-vinyl-hollywood-wallcoverings.jpg?v=1775711526",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grasscloth",
- "Hollywood Wallcoverings",
- "Linen Texture",
- "Living Room",
- "Minimalist",
- "Office",
- "Organic Modern",
- "Serene",
- "Stripe",
- "Taupe",
- "Textured",
- "Transitional",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/fairford-vinyl-wallcovering-xlb-47654"
- },
- {
- "sku": "vernon-durable-walls-xwp-52683",
- "handle": "vernon-durable-walls-xwp-52683",
- "title": "Vernon Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/xwp-52683-sample-vernon-durable-hollywood-wallcoverings.jpg?v=1775735745",
- "tags": [
- "Architectural",
- "Bedroom",
- "Class A Fire Rated",
- "Color: Grey",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Grey",
- "Hallway",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Light Gray",
- "Living Room",
- "Minimalist",
- "Pale Blue-gray",
- "Serene",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/vernon-durable-walls-xwp-52683"
- },
- {
- "sku": "dwtt-72220-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72220-designer-wallcoverings-los-angeles",
- "title": "St. Barts Grey | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/TextureResource9-SaddleWeaveWP-taupe-PolluxFAB-skyblue.jpg?v=1773244765",
- "tags": [
- "Architectural",
- "beige",
- "Contemporary",
- "Geometric",
- "Grey",
- "Jubilee",
- "Pattern",
- "T4969",
- "Thibaut",
- "Unknown",
- "Wallcovering",
- "white"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72220-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "dwkk-128648",
- "handle": "dwkk-128648",
- "title": "W3635-4 Gold | Kravet Design | Texture Wallcovering",
- "vendor": "Kravet",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W3635_4_78c564d3-e013-4635-8256-b436a2a4433d.jpg?v=1753122073",
- "tags": [
- "52In",
- "Architectural",
- "Archived-Triple-Verified",
- "Archived-Vendor-Gone",
- "Bedroom",
- "Beige",
- "Brown",
- "Chevron",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Dark Brown",
- "display_variant",
- "Hallway",
- "Kravet",
- "Kravet Design",
- "Living Room",
- "Poly Vinyl Chloride - 74.7%;Recycled Poly Vinyl Chloride - 8.3%;Pvc Compound - 6.9%;Polyester - 6.24%;Other - 2%;Cotton - 1.86%",
- "Sophisticated",
- "Stripe",
- "Taupe",
- "Texture",
- "Textured",
- "Traditional",
- "Transitional",
- "United States",
- "Vinyl",
- "W3635-4",
- "W3635.4.0",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwkk-128648"
- },
- {
- "sku": "dwtt-71475-designer-wallcoverings-los-angeles",
- "handle": "dwtt-71475-designer-wallcoverings-los-angeles",
- "title": "Trelawny Damask Yellow | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T14206_549eefd1-d7ad-4655-9cf9-19875cf318fc.jpg?v=1733893994",
- "tags": [
- "Architectural",
- "Chinoiserie",
- "gray",
- "Imperial Garden",
- "Pattern",
- "Scenic",
- "T14206",
- "Thibaut",
- "Unknown",
- "Wallcovering",
- "white",
- "yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-71475-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "meander-border-metallic-red-wallcovering-versace",
- "handle": "meander-border-metallic-red-wallcovering-versace",
- "title": "Meander Border Metallic, Red Wallcovering | Versace",
- "vendor": "Versace",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/a8132d7035c2674e2606f3bca5cf7837.jpg?v=1773706318",
- "tags": [
- "A.S. Création",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Brick Red",
- "Class A Fire Rated",
- "Color: Red",
- "Commercial",
- "Commercial Wallcovering",
- "Dining Room",
- "display_variant",
- "Geometric",
- "Gold",
- "Greek Key",
- "Italian",
- "Living Room",
- "Luxe",
- "Luxury",
- "Meander Border",
- "Meander Border Metallic",
- "Neoclassical",
- "Paper",
- "Paste the wall",
- "Red",
- "Red Wallcovering",
- "Regencycore",
- "Sophisticated",
- "Trending Wallcovering Collection 2026",
- "Trending Wallpaper Collection 2026",
- "Versace",
- "Versace Home",
- "Versace VI",
- "Vinyl",
- "Wallcovering",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/meander-border-metallic-red-wallcovering-versace"
- },
- {
- "sku": "marketfield-faux-durable-walls-xwh-52319",
- "handle": "marketfield-faux-durable-walls-xwh-52319",
- "title": "Marketfield Faux Durable | Hollywood Wallcoverings",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/mindscape-ginseng.jpg?v=1777480458",
- "tags": [
- "Architectural",
- "Bedroom",
- "Black",
- "Burnt Orange",
- "Class A Fire Rated",
- "Color: Orange",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Faux",
- "Faux Finish",
- "Grasscloth",
- "Hallway",
- "Hollywood Wallcoverings",
- "Leed Walls",
- "Living Room",
- "Mfr-Image-Refreshed",
- "Orange",
- "Solid",
- "Textured",
- "Traditional",
- "Transitional",
- "Vinyl",
- "Vinyl Wallcovering",
- "Wallcovering",
- "Warm"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/marketfield-faux-durable-walls-xwh-52319"
- },
- {
- "sku": "route-66-car-wallpaper-scr-7922",
- "handle": "route-66-car-wallpaper-scr-7922",
- "title": "Route 66 Car Wallcovering",
- "vendor": "Studio Toten",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/5fea65c8e4f4b9645c7427b1dd25f9a8.jpg?v=1572309084",
- "tags": [
- "Abstract",
- "AI-Analyzed-v2",
- "Architectural",
- "Blue",
- "Blues White",
- "Class A Fire Rated",
- "Commercial",
- "Contemporary",
- "Designer Wallcoverings",
- "Light Blue",
- "Paper",
- "Route 66 Car Wallcovering",
- "Screen Print",
- "Wallcovering",
- "Whimsical Screen Prints Vol. 1",
- "White"
- ],
- "max_price": 146.18,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/route-66-car-wallpaper-scr-7922"
- },
- {
- "sku": "dwtt-72056-designer-wallcoverings-los-angeles",
- "handle": "dwtt-72056-designer-wallcoverings-los-angeles",
- "title": "Henley Plaid Camel | Thibaut",
- "vendor": "Thibaut",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/T1021_c3f85462-4ba7-49c4-a073-4f02842020c8.jpg?v=1733892881",
- "tags": [
- "Architectural",
- "beige",
- "Camel",
- "cream",
- "Geometric",
- "Menswear Resource",
- "Pattern",
- "T1021",
- "Texture",
- "Thibaut",
- "Traditional",
- "Unknown",
- "Wallcovering"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/dwtt-72056-designer-wallcoverings-los-angeles"
- },
- {
- "sku": "bleinheim-lanvino-wallpaper-xe7-66830",
- "handle": "bleinheim-lanvino-wallpaper-xe7-66830",
- "title": "Bleinheim Lanvino Wallcovering",
- "vendor": "Phillipe Romano",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/2f8e9db6f6ea06efe09d639585e8c7f7.jpg?v=1572309567",
- "tags": [
- "AI-Analyzed-v2",
- "Architectural",
- "Beige",
- "Bleinheim Lanvino Wallcovering",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Fabric",
- "Light Beige",
- "Off-white",
- "Phillip Romano Commercial",
- "Phillipe Romano",
- "Phillipe Romano Vinyls",
- "Textured",
- "vinyl",
- "Vinyls",
- "Wallcovering"
- ],
- "max_price": 37.27,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/bleinheim-lanvino-wallpaper-xe7-66830"
- },
- {
- "sku": "wolfgordonwallcovering_dwwg_sm10260-jpg",
- "handle": "wolfgordonwallcovering_dwwg_sm10260-jpg",
- "title": "SM10260 | Wolf Gordon Wallcoverings",
- "vendor": "Wolf Gordon",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/WolfGordonWallcovering_DWWG_sm10259.jpg?v=1733872444",
- "tags": [
- "Animal/Insects",
- "Architectural",
- "Brown",
- "Class A Fire Rated",
- "Commercial",
- "Commercial Wallcovering",
- "Commercial Wallcoverings",
- "Contemporary",
- "Solid",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Wolf",
- "Wolf Gordon",
- "Wolf Gordon Wallcoverings"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/wolfgordonwallcovering_dwwg_sm10260-jpg"
- },
- {
- "sku": "versace-floral-pastel-multicoloured-metallic-wallcovering-versace",
- "handle": "versace-floral-pastel-multicoloured-metallic-wallcovering-versace",
- "title": "Versace Floral Pastel Multicoloured, Metallic Wallcovering | Versace",
- "vendor": "Versace",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/a6f5aa0623799309964658ef4f3db170.jpg?v=1773706398",
- "tags": [
- "A.S. Création",
- "AI-Analyzed-v2",
- "Architectural",
- "Bedroom",
- "Beige",
- "Blush Pink",
- "Botanical",
- "Class A Fire Rated",
- "Color: Yellow",
- "Commercial",
- "Commercial Wallcovering",
- "Cottagecore",
- "Cream",
- "Dining Room",
- "display_variant",
- "Floral",
- "Grandmillennial",
- "Green",
- "Italian",
- "Light Green",
- "Light Pink",
- "Light Yellow",
- "Living Room",
- "Luxury",
- "Metallic Wallcovering",
- "Multi",
- "Multicoloured",
- "Off-white",
- "Pale Green",
- "Pale Pink",
- "Pale Yellow",
- "Paper",
- "Paste the wall",
- "Pink",
- "Seafoam Green",
- "Serene",
- "Traditional",
- "Trending Wallcovering Collection 2026",
- "Trending Wallpaper Collection 2026",
- "Versace",
- "Versace Floral Pastel",
- "Versace Floral Pastel Multicoloured",
- "Versace Home",
- "Versace VI",
- "Victorian",
- "Vine",
- "Vinyl",
- "Wallcovering",
- "Yellow"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/versace-floral-pastel-multicoloured-metallic-wallcovering-versace"
- },
- {
- "sku": "rustic-glam-vinyl-gpr-76631",
- "handle": "rustic-glam-vinyl-gpr-76631",
- "title": "Rustic Glam Vinyl",
- "vendor": "Hollywood Wallcoverings",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/gpr-76631-sample-rustic-glam-vinyl.jpg?v=1775731634",
- "tags": [
- "Architectural",
- "Bedroom",
- "Beige",
- "Bling",
- "Brown",
- "Class A Fire Rated",
- "Color: Brown",
- "Commercial",
- "Commercial Wallcovering",
- "Contemporary",
- "Farmhouse",
- "Glass Bead",
- "Hand Crafted",
- "Hollywood Wallcoverings",
- "Living Room",
- "Minimalist",
- "Modern",
- "Mural",
- "Office",
- "Organic Modern",
- "Sand",
- "Stripe",
- "Textured",
- "Vinyl",
- "Wallcovering",
- "Warm",
- "Wheat",
- "Wood Grain"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/rustic-glam-vinyl-gpr-76631"
- },
- {
- "sku": "jonesport-pink-cabin-stripe-wallpaper-cca-83184",
- "handle": "jonesport-pink-cabin-stripe-wallpaper-cca-83184",
- "title": "Jonesport Pink Cabin Stripe Wallcovering",
- "vendor": "LA Walls",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/8270cc5a5f79cdff211fccac035db35e.jpg?v=1572309971",
- "tags": [
- "Architectural",
- "Coastal",
- "Commercial",
- "Discontinued",
- "Easy Walls",
- "Green",
- "LA Walls",
- "Lightblue",
- "Paper",
- "Pink",
- "Prepasted",
- "Series: Brewster",
- "Stripe",
- "Stripes",
- "Strippable",
- "Textured",
- "Traditional",
- "Wallcovering",
- "Washable",
- "YB-Discontinued-2026-04"
- ],
- "max_price": 72.49,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/jonesport-pink-cabin-stripe-wallpaper-cca-83184"
- },
- {
- "sku": "ncw4306-02",
- "handle": "ncw4306-02",
- "title": "Les Rêves Belle Île Grey/Gold - Brown Wallcovering | Nina Campbell",
- "vendor": "Nina Campbell",
- "product_type": "Wallcovering",
- "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/nina_crop_4497262739507.jpg?v=1775520361",
- "tags": [
- "Architectural",
- "Beige",
- "Class A Fire Rated",
- "Commercial",
- "Geometric",
- "Gray",
- "NCW4306-02",
- "Nina Campbell Wallcovering",
- "Nina Campbell Wallcoverings",
- "Paper",
- "Stripe",
- "Textured",
- "Wallcovering",
- "Wallcoverings",
- "White"
- ],
- "max_price": 4.25,
- "aesthetic": "all",
- "product_url": "https://designerwallcoverings.com/products/ncw4306-02"
- }
-]
\ No newline at end of file
diff --git a/public/hero-bg.jpg.pre-pass9.bak b/public/hero-bg.jpg.pre-pass9.bak
deleted file mode 100644
index 11eb8ae..0000000
Binary files a/public/hero-bg.jpg.pre-pass9.bak and /dev/null differ
diff --git a/public/index.html.bak.1778114769303 b/public/index.html.bak.1778114769303
deleted file mode 100644
index 04a0047..0000000
--- a/public/index.html.bak.1778114769303
+++ /dev/null
@@ -1,630 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
-<meta charset="utf-8">
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>ARCHITECTURAL — Spec. Build. Repeat.</title>
-<meta name="description" content="ARCHITECTURAL · Spec. Build. Repeat.. Curated wallcoverings sourced through the Designer Wallcoverings trade channel.">
-<meta name="theme-color" content="#0a0e10">
-<link rel="canonical" href="https://architecturalwallcoverings.com/">
-<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,400;1,400&display=swap" rel="stylesheet">
-<link rel="preload" as="image" href="/hero-bg.jpg" fetchpriority="high">
-<script type="application/ld+json">
-{
- "@context": "https://schema.org",
- "@type": "Organization",
- "name": "ARCHITECTURAL",
- "url": "https://architecturalwallcoverings.com/",
- "email": "info@architecturalwallcoverings.com",
- "parentOrganization": {
- "@type": "Organization",
- "name": "Designer Wallcoverings",
- "url": "https://designerwallcoverings.com/"
- }
-}
-</script>
-<script src="/zd-loader.js" defer></script>
-<style>
-:root {
- --bg: #0a0e10;
- --paper: #ffffff;
- --muted: #909090;
- --line: rgba(255,255,255,0.10);
- --accent: #a0a0a0;
- --bg-soft: #141a1c;
- --cols: 6; /* default grid density — slider controls this */
-}
-html[data-theme="light"] {
- --bg: #fafaf6;
- --paper: #1b1814;
- --muted: #6b5f56;
- --line: rgba(10,9,5,0.12);
- --accent: #652929;
- --bg-soft: #d9c9c9;
-}
-* { margin:0; padding:0; box-sizing:border-box }
-html { scroll-behavior:smooth }
-body { font-family:'Inter', sans-serif; color:var(--paper); -webkit-font-smoothing:antialiased; background:var(--bg); min-height:100vh; overflow-x:hidden }
-
-/* ===== Auto-hide header ===== */
-header { position:fixed; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 32px; z-index:100; background:rgba(0,0,0,0.55); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:transform .3s }
-.h-link { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); text-decoration:none; cursor:pointer; background:transparent; border:0 }
-.h-link:hover { opacity:0.7 }
-.h-icon { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }
-
-/* ===== Cinema hero ===== */
-.cinema { position:relative; height:100vh; width:100%; overflow:hidden }
-.cinema-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-image:url('/hero-bg.jpg') }
-.cinema-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.75) 100%) }
-.corner-mark { position:absolute; top:24px; left:32px; font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; mix-blend-mode:difference; color:#fff; z-index:5 }
-.corner-mark::before { content:"◆ "; margin-right:6px }
-.center-mark { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-size:clamp(34px,5vw,72px); font-weight:300; letter-spacing:0.42em; text-transform:uppercase; text-align:center; color:#fff; z-index:5; mix-blend-mode:difference }
-.center-mark .tm { font-size:14px; vertical-align:super; opacity:0.7; margin-left:0.2em }
-.center-mark .sub { display:block; font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400; font-size:0.4em; letter-spacing:0.04em; text-transform:none; margin-top:14px; opacity:0.85 }
-.meta-line { position:absolute; bottom:32px; left:32px; font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:700; color:#fff; z-index:5; opacity:0.85 }
-.meta-line .num { font-size:12px; display:block; margin-top:4px; letter-spacing:0.05em }
-.enter { position:absolute; bottom:32px; right:32px; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:0.36em; text-transform:uppercase; font-weight:700; color:#fff; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #fff; transition:gap 0.25s; z-index:5 }
-.enter:hover { gap:22px }
-.enter svg { width:24px; height:12px }
-
-/* ===== Section ===== */
-.section { padding:96px 32px }
-.section-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--line) }
-.section-title { font-size:clamp(36px,5vw,64px); font-weight:300; letter-spacing:-0.02em; line-height:1 }
-.section-title .accent { color: var(--accent); font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400 }
-.section-eyebrow { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:16px }
-.section-meta { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--muted); text-align:right; line-height:1.6 }
-
-/* ===== Filter bar ===== */
-.filters { display:flex; gap:8px; align-items:center; margin-bottom:18px; flex-wrap:wrap }
-.chip { padding:8px 16px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); background:transparent; border:1px solid var(--line); cursor:pointer; transition:all 0.2s; font-family:inherit }
-.chip:hover { border-color:var(--paper) }
-.chip.active { background:var(--paper); color:var(--bg); border-color:var(--paper) }
-.search { flex:0 1 280px; margin-left:auto; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:6px 0 }
-.search input { flex:1; background:transparent; border:0; color:var(--paper); font-family:inherit; font-size:13px; outline:none; letter-spacing:0.04em }
-.search input::placeholder { color:var(--muted) }
-.search svg { width:16px; height:16px; stroke:var(--muted); fill:none; stroke-width:1.5 }
-
-/* ===== Grid-density slider ===== */
-.density { display:flex; align-items:center; gap:14px; padding:6px 0; margin-bottom:24px }
-.density label { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--muted) }
-.density input[type=range] { flex:1; max-width:240px; -webkit-appearance:none; appearance:none; height:1px; background:var(--line); outline:none }
-.density input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50% }
-.density input[type=range]::-moz-range-thumb { width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50%; border:0 }
-.density .ct { font-size:11px; color:var(--muted); letter-spacing:0.18em; text-transform:uppercase; font-weight:600; min-width:80px }
-
-/* ===== Stats line ===== */
-.stat-line { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:24px }
-
-/* ===== Product grid (novasuede pattern: flush grid + slide-up overlay) ===== */
-.grid { display:grid; grid-template-columns:repeat(var(--cols), 1fr); gap:0 }
-.card { position:relative; aspect-ratio:1/1.15; cursor:pointer; overflow:hidden; border:1px solid var(--bg); transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1); background:var(--bg-soft) }
-.card:hover { transform:scale(1.04); z-index:5 }
-.card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease }
-.card .overlay { position:absolute; left:0; right:0; bottom:0; padding:20px 16px 14px; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%); transform:translateY(48%); opacity:0.85; transition:transform 0.3s ease, opacity 0.3s ease }
-.card:hover .overlay { transform:translateY(0); opacity:1 }
-.card .pat { font-size:13px; font-weight:600; letter-spacing:0.02em; color:#fff; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
-.card .ven { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#fff; opacity:0.7; font-weight:500; margin-top:4px }
-.card .actions { margin-top:10px; display:flex; gap:6px }
-.card .sample-btn { flex:1; padding:7px 10px; background:#fff; color:#000; font-family:inherit; font-size:10px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; border:0; cursor:pointer; text-align:center; transition:all 0.2s }
-.card .sample-btn:hover { background:var(--accent); color:#fff }
-
-@media (max-width:1024px) { .grid { grid-template-columns:repeat(min(var(--cols), 4), 1fr) } }
-@media (max-width:720px) { .grid { grid-template-columns:repeat(2, 1fr) } .density { display:none } }
-
-.sentinel { height:1px }
-.loading { text-align:center; color:var(--muted); padding:32px; font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700 }
-
-/* ===== Footer ===== */
-footer { padding:64px 32px 32px; border-top:1px solid var(--line); margin-top:32px }
-.footer-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr; gap:48px; margin-bottom:48px }
-.footer-brand { font-size:24px; font-weight:300; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:12px }
-.footer-text { font-size:13px; line-height:1.6; color:var(--muted); max-width:380px }
-.footer-col h4 { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--paper); margin-bottom:18px }
-.footer-col a { display:block; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:8px; transition:color 0.2s; cursor:pointer; background:transparent; border:0; font-family:inherit; padding:0; text-align:left }
-.footer-col a:hover { color:var(--accent) }
-.footer-bottom { max-width:1400px; margin:0 auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted) }
-
-@media (max-width:720px) {
- .corner-mark, .meta-line, .enter { font-size:10px }
- .center-mark { font-size:30px; letter-spacing:0.32em }
- .section, footer { padding-left:20px; padding-right:20px }
- .footer-grid { grid-template-columns:1fr; gap:32px }
- .search { margin-left:0; flex:1 1 100% }
-}
-
-.theme-toggle { background:transparent; border:1px solid var(--line); width:32px; height:32px; cursor:pointer; color:var(--paper); display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; transition:all .15s; padding:0 }
-.theme-toggle:hover { border-color:var(--accent); color:var(--accent) }
-
-/* ===== WCAG 2.4.7 — keyboard focus indicators ===== */
-/* Strictly :focus-visible so mouse clicks do NOT show the ring */
-a:focus-visible,
-button:focus-visible,
-input:focus-visible,
-select:focus-visible,
-textarea:focus-visible,
-[tabindex]:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
-}
-</style>
-<script>
-(function(){ try { var t = localStorage.getItem('arch_theme') || 'dark'; document.documentElement.dataset.theme = t; } catch(e){} })();
-</script>
-</head>
-<body>
-
-<header>
- <button class="h-link" onclick="dwmOpen('Contact')" aria-label="Contact"><svg class="h-icon" viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/></svg><span>Contact</span></button>
- <button class="theme-toggle" id="theme-toggle" aria-label="Theme toggle">☾</button>
-</header>
-
-<section class="cinema">
- <div class="cinema-bg"></div>
- <div class="corner-mark">Specifier-Grade</div>
- <div class="center-mark">ARCHITECTURAL<span class="tm">.</span><span class="sub">Spec. Build. Repeat.</span></div>
- <div class="meta-line">Architectural · Specifier · Class A · Contract<span class="num" id="heroNum"></span></div>
- <a class="enter" href="#shop">Enter <svg viewBox="0 0 24 12" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M0 6h22M16 1l6 5-6 5"/></svg></a>
-</section>
-
-<section class="section" id="shop">
- <div class="section-header">
- <div>
- <div class="section-eyebrow">The Collection</div>
- <h2 class="section-title"><span class="accent" id="totalCount">—</span> Patterns.</h2>
- </div>
- <div class="section-meta">Architectural · Specifier · Class A · Contract</div>
- </div>
-
- <div class="filters" id="facets">
- <button class="chip active" data-facet="all">All</button>
- </div>
-
- <div class="density">
- <label>Grid</label>
- <input type="range" id="densitySlider" min="4" max="12" step="1" value="6" aria-label="Grid columns">
- <span class="ct" id="densityLabel">6 cols</span>
- <div class="search">
- <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-5.5-5.5"/></svg>
- <input type="text" id="searchInput" placeholder="Search by pattern, color…" autocomplete="off">
- </div>
- </div>
-
- <div class="stat-line" id="statLine">Loading…</div>
- <div class="grid" id="grid"></div>
- <div class="loading" id="loading">Loading more…</div>
- <div class="sentinel" id="sentinel"></div>
-</section>
-
-<footer>
- <div class="footer-grid">
- <div>
- <div class="footer-brand">ARCHITECTURAL</div>
- <p class="footer-text">A specialty archive within the Designer Wallcoverings family. Curated architectural · specifier · class a · contract from heritage mills, fulfilled through the DW trade channel — memo samples ship free.</p>
- <p class="footer-text" style="margin-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;color:var(--paper);opacity:0.7">DesignerWallcoverings.com — Authorized Trade Channel</p>
- </div>
- <div class="footer-col">
- <h4>Aesthetic</h4>
- <div id="footerFacets"></div>
- </div>
- <div class="footer-col">
- <h4>Trade</h4>
- <button onclick="dwmOpen('Inquiry')">Project Inquiry</button>
- <button onclick="dwmOpen('Sample')">Request Sample</button>
- <button onclick="dwmOpen('Contact')">Contact</button>
- </div>
- </div>
- <!-- mini-constellation: every storefront shows its position in the family -->
- <div style="max-width:1400px;margin:0 auto 24px;padding:32px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)">
- <div style="display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:12px;margin-bottom:18px">
- <div>
- <div style="font-size:10px;letter-spacing:0.32em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:6px">★ DW FAMILY · 43 niches</div>
- <div style="font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:18px;color:var(--paper);letter-spacing:0.01em">You're on <span style="color:var(--accent);font-weight:500">architecturalwallcoverings</span>. Hover any star to leap.</div>
- </div>
- <a href="https://retrowalls.com/universe/" target="_blank" rel="noopener" style="font-size:10px;letter-spacing:0.32em;text-transform:uppercase;color:var(--accent);font-weight:600;text-decoration:none;border:1px solid var(--accent);padding:8px 14px">DW Universe →</a>
- </div>
- <svg id="miniConst" viewBox="0 0 1080 200" style="width:100%;height:200px;display:block" role="img" aria-label="DW family constellation: 43 niche sites; current site highlighted">
- <defs>
- <pattern id="dna-mat" width="5" height="5" patternUnits="userSpaceOnUse" patternTransform="rotate(45)"><line x1="0" y1="0" x2="0" y2="5" stroke="#c9b687" stroke-width="0.6"/></pattern>
- <pattern id="dna-dec" width="8" height="5" patternUnits="userSpaceOnUse"><polyline points="0,4 4,1 8,4" stroke="#b86a4a" stroke-width="0.6" fill="none"/></pattern>
- <pattern id="dna-cra" width="5" height="5" patternUnits="userSpaceOnUse" patternTransform="rotate(-30)"><line x1="0" y1="2.5" x2="5" y2="2.5" stroke="#6b8e6f" stroke-width="0.5" stroke-dasharray="1.4 1.2"/></pattern>
- <pattern id="dna-use" width="4" height="4" patternUnits="userSpaceOnUse"><path d="M0 0 L4 0 M0 0 L0 4" stroke="#4a6b8e" stroke-width="0.4" fill="none"/></pattern>
- </defs>
- </svg>
- <div style="display:flex;justify-content:space-between;font-size:9px;letter-spacing:0.32em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-top:6px;padding:0 8px">
- <span style="display:flex;align-items:center;gap:5px"><i style="display:inline-block;width:6px;height:6px;background:#c9b687;border-radius:50%"></i>Material</span>
- <span style="display:flex;align-items:center;gap:5px"><i style="display:inline-block;width:6px;height:6px;background:#b86a4a;border-radius:50%"></i>Decade</span>
- <span style="display:flex;align-items:center;gap:5px"><i style="display:inline-block;width:6px;height:6px;background:#6b8e6f;border-radius:50%"></i>Craft</span>
- <span style="display:flex;align-items:center;gap:5px"><i style="display:inline-block;width:6px;height:6px;background:#4a6b8e;border-radius:50%"></i>Use-case</span>
- </div>
- </div>
-
- <div class="footer-bottom">
- <span>architecturalwallcoverings.com · a designer wallcoverings family vertical</span>
- <span><a href="mailto:info@architecturalwallcoverings.com" style="color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px">info@architecturalwallcoverings.com</a></span>
- <span><a href="https://retrowalls.com/universe/" target="_blank" rel="noopener" style="color:var(--accent);text-decoration:none;letter-spacing:0.18em">DW Universe — search all 43 niches at once →</a></span>
- <span id="footerStat"></span>
- </div>
-</footer>
-
-<script>
-// mini-constellation — 43 niche-stars, current site highlighted in gold
-(function(){
- const SLUG = "architecturalwallcoverings";
- const NICHES = [
- ['silkwallpaper','Silk','mat'],['silkwallcoverings','Silk W/C','mat'],['linenwallpaper','Linen','mat'],
- ['jutewallpaper','Jute','mat'],['raffiawallcoverings','Raffia W/C','mat'],['raffiawalls','Raffia Walls','mat'],
- ['corkwallcovering','Cork','mat'],['fabricwallpaper','Fabric','mat'],['textilewallpaper','Textile','mat'],
- ['metallicwallpaper','Metallic','mat'],['silverleafwallpaper','Silver Leaf','mat'],['vinylwallpaper','Vinyl','mat'],
- ['micawallpaper','Mica','mat'],['madagascarwallpaper','Madagascar','mat'],['mylarwallpaper','Mylar','mat'],
- ['suedewallpaper','Suede','mat'],
- ['1800swallpaper','1800s','dec'],['1890swallpaper','1890s','dec'],['1900swallpaper','1900s','dec'],
- ['1920swallpaper','1920s','dec'],['1930swallpaper','1930s','dec'],['1940swallpaper','1940s','dec'],
- ['1950swallpaper','1950s','dec'],['1960swallpaper','1960s','dec'],['1970swallpaper','1970s','dec'],
- ['1980swallpaper','1980s','dec'],['retrowalls','Retro','dec'],['wallpapersback','W. Back','dec'],
- ['agedwallpaper','Aged','cra'],['handcraftedwallpaper','Handcrafted','cra'],['museumwallpaper','Museum','cra'],
- ['restorationwallpaper','Restoration','cra'],['pastelwallpaper','Pastel','cra'],['glitterwalls','Glitter','cra'],
- ['greenwallcoverings','Green','cra'],['naturalwallcoverings','Natural','cra'],['saloonwallpaper','Saloon','cra'],
- ['contractwallpaper','Contract','use'],['hotelwallcoverings','Hotel','use'],['hospitalitywallpaper','Hospitality','use'],
- ['healthcarewallpaper','Healthcare','use'],['restaurantwallpaper','Restaurant','use'],['architecturalwallcoverings','Architectural','use']
- ];
- const COLOR = { mat:'#c9b687', dec:'#b86a4a', cra:'#6b8e6f', use:'#4a6b8e' };
- const W = 1080, H = 200, BANDS = ['mat','dec','cra','use'];
- const groups = { mat:[], dec:[], cra:[], use:[] };
- for (const n of NICHES) groups[n[2]].push(n);
- const svg = document.getElementById('miniConst');
- if (!svg) return;
- const bandW = W / BANDS.length;
- let nodes = '';
- BANDS.forEach((band, bi) => {
- const list = groups[band];
- const cx = bi * bandW + bandW / 2;
- list.forEach((n, i) => {
- const t = list.length === 1 ? 0.5 : i / (list.length - 1);
- // deterministic jitter per slug
- let h = 0; for (let k = 0; k < n[0].length; k++) h = (h * 31 + n[0].charCodeAt(k)) | 0;
- const jx = ((h & 0xff) / 255 - 0.5) * (bandW * 0.5);
- const jy = (((h >> 8) & 0xff) / 255 - 0.5) * 6; // tightened from 14 → 6 to prevent same-band collisions (16 mat nodes / 144px = 9px spacing)
- const x = cx + jx, y = 28 + t * (H - 56) + jy;
- const isCurrent = n[0] === SLUG;
- const r = isCurrent ? 8 : 4;
- const op = isCurrent ? 1 : 0.55;
- nodes += `<g class="mc-node" data-slug="${n[0]}" data-label="${n[1]}" style="cursor:pointer">
- <circle cx="${x}" cy="${y}" r="${r}" fill="url(#dna-${band})" fill-opacity="${op}" stroke="${COLOR[band]}" stroke-opacity="${isCurrent?1:0.7}" stroke-width="${isCurrent?2:1}">
- <title>${n[1]} — ${n[0]}.com</title>
- </circle>
- ${isCurrent ? `<circle cx="${x}" cy="${y}" r="${r+5}" fill="none" stroke="${COLOR[band]}" stroke-opacity="0.4" stroke-width="1"><animate attributeName="r" values="${r+5};${r+12};${r+5}" dur="2.4s" repeatCount="indefinite"/><animate attributeName="stroke-opacity" values="0.4;0;0.4" dur="2.4s" repeatCount="indefinite"/></circle>` : ''}
- </g>`;
- });
- });
- // append nodes after defs
- svg.insertAdjacentHTML('beforeend', nodes);
- svg.querySelectorAll('.mc-node').forEach(n => {
- n.addEventListener('mouseenter', () => n.querySelector('circle').setAttribute('fill-opacity', '1'));
- n.addEventListener('mouseleave', e => {
- const isCurrent = n.dataset.slug === SLUG;
- n.querySelector('circle').setAttribute('fill-opacity', isCurrent ? '1' : '0.55');
- });
- n.addEventListener('click', () => window.open('https://' + n.dataset.slug + '.com', '_blank'));
- });
-})();
-</script>
-
-<script>
-const state = { q:'', facet:'all', page:1, pages:1, total:0, loading:false, exhausted:false };
-const LABELS = {"all":"All"};
-
-function escAttr(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[c])); }
-// Image-URL allowlist: only DW Shopify CDN + designerwallcoverings.com (defends against XSS via crafted products.json)
-function safeImg(u) { return /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(u || '') ? u : '/hero-bg.jpg'; }
-function cardHTML(p) {
- const eager = state.page === 1;
- return '<img loading="' + (eager ? 'eager' : 'lazy') + '"' + (eager ? ' fetchpriority="high"' : '') + ' src="' + escAttr(safeImg(p.image_url)) + '" alt="' + escAttr(p.title) + '">'
- + '<div class="overlay">'
- + '<div class="pat">' + escAttr(p.pattern_name || p.title) + '</div>'
- + '<div class="ven">' + escAttr((p.vendor || '').replace(/-/g, ' ')) + '</div>'
- + '<div class="actions">'
- + '<button class="sample-btn" onclick="event.stopPropagation();dwmOpen(\'Sample\',' + JSON.stringify({sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}).replace(/"/g,'"') + ')">Sample</button>'
- + '</div></div>';
-}
-
-async function loadFacets() {
- let f;
- try {
- const r = await fetch('/api/facets');
- if (!r.ok) throw new Error('HTTP ' + r.status);
- f = await r.json();
- } catch (e) { console.error('loadFacets failed:', e); return; }
- const el = document.getElementById('facets');
- for (const [k, v] of Object.entries(f.aesthetics).sort((a,b) => b[1] - a[1])) {
- const b = document.createElement('button');
- b.className = 'chip'; b.dataset.facet = k;
- b.innerHTML = (LABELS[k] || k) + ' <span style="opacity:.55;font-weight:500;margin-left:4px">' + v + '</span>';
- el.appendChild(b);
- }
- el.addEventListener('click', e => {
- if (e.target.tagName !== 'BUTTON') return;
- document.querySelectorAll('#facets button').forEach(b => b.classList.remove('active'));
- e.target.classList.add('active');
- state.facet = e.target.dataset.facet;
- resetGrid();
- });
- document.getElementById('totalCount').textContent = f.total;
- document.getElementById('footerStat').textContent = f.total + ' patterns · live archive';
- // Footer aesthetic links
- const footerEl = document.getElementById('footerFacets');
- for (const [k] of Object.entries(f.aesthetics)) {
- const b = document.createElement('button');
- b.textContent = LABELS[k] || k;
- b.onclick = () => { state.facet = k; resetGrid(); document.querySelectorAll('#facets button').forEach(x => x.classList.toggle('active', x.dataset.facet === k)); document.getElementById('shop').scrollIntoView({behavior:'smooth'}); };
- footerEl.appendChild(b);
- }
-}
-
-function resetGrid() {
- state.page = 1; state.exhausted = false;
- document.getElementById('grid').innerHTML = '';
- document.getElementById('loading').textContent = 'Loading…';
- loadGridPage();
-}
-
-async function loadGridPage() {
- if (state.loading || state.exhausted) return;
- state.loading = true;
- const params = new URLSearchParams({ page:state.page, limit:24 });
- if (state.q) params.set('q', state.q);
- if (state.facet !== 'all') params.set('aesthetic', state.facet);
- let data;
- try {
- const r = await fetch('/api/products?' + params);
- if (!r.ok) throw new Error('HTTP ' + r.status);
- data = await r.json();
- } catch (e) {
- console.error('loadGridPage failed:', e);
- document.getElementById('loading').textContent = '— offline — refresh to retry —';
- state.loading = false;
- return;
- }
- state.total = data.total; state.pages = data.pages;
-
- if (state.page === 1) {
- document.getElementById('statLine').textContent = data.total + ' patterns · ' + (state.facet === 'all' ? 'all aesthetics' : (LABELS[state.facet] || state.facet)) + (state.q ? ' · matching "' + state.q + '"' : '');
- }
- const grid = document.getElementById('grid');
- for (const p of data.items) {
- const a = document.createElement('a');
- a.className = 'card'; a.href = '#'; a.onclick = (e) => { e.preventDefault(); dwmOpen('Sample',{sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}); };
- a.innerHTML = cardHTML(p);
- grid.appendChild(a);
- }
- if (state.page >= state.pages || data.items.length === 0) {
- state.exhausted = true;
- document.getElementById('loading').textContent = state.total > 0 ? '— end of archive · ' + state.total + ' patterns —' : '';
- } else state.page++;
- state.loading = false;
-}
-
-const io = new IntersectionObserver(es => { for (const e of es) if (e.isIntersecting) loadGridPage(); }, { rootMargin:'600px 0px' });
-io.observe(document.getElementById('sentinel'));
-
-document.getElementById('searchInput').addEventListener('input', e => {
- state.q = e.target.value.trim();
- clearTimeout(window._t);
- window._t = setTimeout(resetGrid, 220);
-});
-
-// Density slider
-const slider = document.getElementById('densitySlider');
-const dlabel = document.getElementById('densityLabel');
-function setDensity(n) {
- document.documentElement.style.setProperty('--cols', n);
- dlabel.textContent = n + ' cols';
- try { localStorage.setItem('arch_theme_density', n); } catch(e){}
-}
-slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
-const savedDensity = parseInt(localStorage.getItem('arch_theme_density') || '6');
-if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
-
-// Theme toggle
-const tb = document.getElementById('theme-toggle');
-function setTheme(t){ document.documentElement.dataset.theme = t; try { localStorage.setItem('arch_theme', t); } catch(e){} tb.textContent = t === 'dark' ? '☾' : '☀'; }
-setTheme(document.documentElement.dataset.theme || 'dark');
-tb.addEventListener('click', () => setTheme(document.documentElement.dataset.theme === 'dark' ? 'light' : 'dark'));
-
-loadFacets();
-loadGridPage();
-</script>
-<!-- ============================================================
- DW UNIVERSAL CONTACT MODULE — fashion-house UX
- Inject before </body> in every DW-family sister site.
- Self-contained: CSS + 4 modals + JS submission handlers.
- Uses host site's CSS vars (--bg, --fg, --gold, --rule).
- ============================================================ -->
-<style>
- /* === MODAL BASE === */
- .dwm{position:fixed;inset:0;background:rgba(0,0,0,0.78);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;overflow-y:auto}
- .dwm.open{display:flex}
- .dwm-box{background:var(--bg);border:1px solid var(--rule);max-width:520px;width:100%;padding:36px 32px;position:relative;max-height:90vh;overflow-y:auto;animation:dwm-in 0.25s ease}
- @keyframes dwm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
- .dwm-box h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;font-size:32px;line-height:1.05;margin-bottom:6px;color:var(--fg);letter-spacing:-0.01em}
- .dwm-box .sub{color:var(--muted);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
- .dwm-close{position:absolute;top:18px;right:18px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;width:32px;height:32px;line-height:1;padding:0}
- .dwm-close:hover{color:var(--gold)}
- .dwm-preview{display:flex;gap:14px;align-items:center;padding:12px;background:var(--bg-soft);margin-bottom:18px}
- .dwm-preview img{width:64px;height:64px;object-fit:cover}
- .dwm-preview .pn{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;line-height:1.2;color:var(--fg)}
- .dwm-preview .pc{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
- .dwm-field{margin-bottom:14px}
- .dwm-field label{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
- .dwm-field input,.dwm-field textarea,.dwm-field select{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:8px 4px;font-size:14px;font-family:inherit;color:var(--fg);outline:none;transition:border-color 0.2s}
- .dwm-field input:focus,.dwm-field textarea:focus{border-bottom-color:var(--gold)}
- .dwm-field textarea{min-height:60px;resize:vertical}
- .dwm-submit{background:var(--gold);color:#000;border:0;padding:14px 28px;font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:700;cursor:pointer;width:100%;margin-top:8px;transition:opacity 0.15s}
- .dwm-submit:hover{opacity:0.85}
- .dwm-submit:disabled{opacity:0.5;cursor:default}
- .dwm-status{margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;display:none}
- .dwm-status.ok{color:var(--sage);display:block}
- .dwm-status.err{color:#e08070;display:block}
- /* contact-options */
- .dwm-options{display:flex;flex-direction:column;gap:10px}
- .dwm-option{display:flex;align-items:center;gap:14px;padding:18px 20px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;transition:all 0.2s;text-align:left;width:100%}
- .dwm-option:hover{border-color:var(--gold);color:var(--gold)}
- .dwm-option svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}
- .dwm-option .lbl{flex:1;display:block}
- .dwm-option .val{display:block;font-size:10px;letter-spacing:0.14em;text-transform:none;font-weight:500;opacity:0.65;margin-top:4px}
-</style>
-
-<!-- Contact options modal -->
-<div class="dwm" id="dwmContact" onclick="if(event.target===this)dwmClose('Contact')">
- <div class="dwm-box" style="max-width:440px">
- <button class="dwm-close" onclick="dwmClose('Contact')" aria-label="Close">×</button>
- <h3>Contact</h3>
- <p class="sub" id="dwmContactSub">Three ways to reach us</p>
- <div class="dwm-options">
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Inquiry')">
- <svg viewBox="0 0 24 24"><path d="M4 4h16v12H7l-3 3z"/></svg>
- <span class="lbl">Send an Inquiry<span class="val">Project name · scope · all the details</span></span>
- </button>
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Sample')">
- <svg viewBox="0 0 24 24"><rect x="4" y="6" width="16" height="14"/><path d="M4 10h16M9 6V3h6v3"/></svg>
- <span class="lbl">Request a Sample<span class="val">Memo sample · ships free · 3–5 business days</span></span>
- </button>
- <a class="dwm-option" id="dwmContactEmailLink" href="mailto:info@{{DOMAIN}}">
- <svg viewBox="0 0 24 24"><path d="M3 6h18v12H3z"/><path d="M3 6l9 7 9-7"/></svg>
- <span class="lbl">Email Us<span class="val" id="dwmContactEmailLabel">info@{{DOMAIN}}</span></span>
- </a>
- </div>
- </div>
-</div>
-
-<!-- Inquiry modal -->
-<div class="dwm" id="dwmInquiry" onclick="if(event.target===this)dwmClose('Inquiry')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Inquiry')" aria-label="Close">×</button>
- <h3>Project Inquiry</h3>
- <p class="sub">We'll respond within one business day</p>
- <form id="dwmInquiryForm" onsubmit="return dwmSubmit(event,'inquiry')">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Phone</label><input type="tel" name="phone"></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Project Name</label><input type="text" name="projectName" required></div>
- <div class="dwm-field"><label>Project Scope</label><textarea name="projectScope" placeholder="Square footage · room count · timeline" required></textarea></div>
- <div class="dwm-field"><label>Additional Information</label><textarea name="message" placeholder="Patterns of interest, finish preferences, budget"></textarea></div>
- <button type="submit" class="dwm-submit">Send Inquiry</button>
- <div class="dwm-status" id="dwmInquiryStatus"></div>
- </form>
- </div>
-</div>
-
-<!-- Sample-request modal -->
-<div class="dwm" id="dwmSample" onclick="if(event.target===this)dwmClose('Sample')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Sample')" aria-label="Close">×</button>
- <h3>Request a Sample</h3>
- <p class="sub">Memo sample · ships free · 3–5 business days</p>
- <div class="dwm-preview" id="dwmSamplePreview" style="display:none">
- <img id="dwmSampleImg" src="" alt="">
- <div><div class="pn" id="dwmSampleName"></div><div class="pc" id="dwmSampleSku"></div></div>
- </div>
- <form id="dwmSampleForm" onsubmit="return dwmSubmit(event,'sample')">
- <input type="hidden" name="sku" id="dwmSampleSkuInput">
- <input type="hidden" name="title" id="dwmSampleTitleInput">
- <input type="hidden" name="image_url" id="dwmSampleImageInput">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Shipping Address</label><input type="text" name="address" placeholder="Street" required></div>
- <div class="dwm-field" style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px">
- <input type="text" name="city" placeholder="City" required>
- <input type="text" name="state" placeholder="State" required>
- <input type="text" name="zip" placeholder="ZIP" required>
- </div>
- <div class="dwm-field"><label>Notes (optional)</label><textarea name="message" placeholder="Project, sq.ft., timing"></textarea></div>
- <button type="submit" class="dwm-submit">Send Sample Request</button>
- <div class="dwm-status" id="dwmSampleStatus"></div>
- </form>
- </div>
-</div>
-
-<script>
- // Universal modal control
- function dwmOpen(name, opts){
- document.getElementById('dwm' + name).classList.add('open');
- document.body.style.overflow = 'hidden';
- if (name === 'Sample' && opts) {
- document.getElementById('dwmSamplePreview').style.display = 'flex';
- document.getElementById('dwmSampleImg').src = opts.image_url || '';
- document.getElementById('dwmSampleName').textContent = opts.title || '';
- document.getElementById('dwmSampleSku').textContent = opts.sku || '';
- document.getElementById('dwmSampleSkuInput').value = opts.sku || '';
- document.getElementById('dwmSampleTitleInput').value = opts.title || '';
- document.getElementById('dwmSampleImageInput').value = opts.image_url || '';
- } else if (name === 'Sample') {
- document.getElementById('dwmSamplePreview').style.display = 'none';
- document.getElementById('dwmSampleSkuInput').value = '';
- document.getElementById('dwmSampleTitleInput').value = '';
- document.getElementById('dwmSampleImageInput').value = '';
- }
- }
- function dwmClose(name){ document.getElementById('dwm'+name).classList.remove('open'); document.body.style.overflow=''; }
-
- // Universal form submit — POSTs to /api/send-{kind}
- async function dwmSubmit(e, kind) {
- e.preventDefault();
- const form = e.target;
- const data = Object.fromEntries(new FormData(form).entries());
- const btn = form.querySelector('.dwm-submit');
- const status = form.querySelector('.dwm-status');
- btn.disabled = true; const orig = btn.textContent; btn.textContent = 'Sending…';
- status.className = 'dwm-status';
- try {
- const r = await fetch('/api/send-' + kind, { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
- if (!r.ok) throw new Error('HTTP '+r.status);
- const j = await r.json();
- status.textContent = kind === 'sample' ? 'Sample request sent — ships within 3–5 business days' : 'Inquiry sent — we respond within 1 business day';
- status.className = 'dwm-status ok';
- btn.textContent = 'Sent ✓';
- setTimeout(() => { dwmClose(kind === 'sample' ? 'Sample' : 'Inquiry'); btn.disabled = false; btn.textContent = orig; status.className = 'dwm-status'; form.reset(); }, 2800);
- } catch (err) {
- status.textContent = 'Send failed — please email info@designerwallcoverings.com';
- status.className = 'dwm-status err';
- btn.disabled = false; btn.textContent = orig;
- }
- return false;
- }
-
- // Wire up "Memo samples ship free" badge in hero to open sample modal directly
- document.querySelectorAll('.hero .badge, [data-open-sample]').forEach(el => {
- el.style.cursor = 'pointer';
- el.addEventListener('click', () => dwmOpen('Sample'));
- });
-
- // Wire nav "Trade" link to inquiry modal
- document.querySelectorAll('nav a[href*="designerwallcoverings.com"]').forEach(a => {
- a.removeAttribute('target');
- a.removeAttribute('href');
- a.style.cursor = 'pointer';
- a.addEventListener('click', e => { e.preventDefault(); dwmOpen('Contact'); });
- });
-
- // Override product card clicks — open Sample modal pre-filled instead of redirecting to DW
- document.addEventListener('click', e => {
- const card = e.target.closest('.card, .rail-card');
- if (!card) return;
- if (card.tagName === 'A' && (card.getAttribute('href') || '').startsWith('/sample/')) {
- e.preventDefault();
- const img = card.querySelector('img');
- const pat = card.querySelector('.pat');
- const sku = card.getAttribute('href').replace('/sample/', '');
- dwmOpen('Sample', {
- sku,
- title: pat ? pat.textContent.trim() : '',
- image_url: img ? img.src : ''
- });
- }
- }, true);
-</script>
-
-</body>
-</html>
diff --git a/public/index.html.bak.1778117945099 b/public/index.html.bak.1778117945099
deleted file mode 100644
index e0156cc..0000000
--- a/public/index.html.bak.1778117945099
+++ /dev/null
@@ -1,649 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
-<meta charset="utf-8">
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>ARCHITECTURAL — Spec. Build. Repeat.</title>
-<meta name="description" content="ARCHITECTURAL · Spec. Build. Repeat.. Curated wallcoverings sourced through the Designer Wallcoverings trade channel.">
-<meta name="theme-color" content="#0a0e10">
-<link rel="canonical" href="https://architecturalwallcoverings.com/">
-<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,400;1,400&display=swap" rel="stylesheet">
-<link rel="preload" as="image" href="/hero-bg.jpg" fetchpriority="high">
-<script type="application/ld+json">
-{
- "@context": "https://schema.org",
- "@type": "Organization",
- "name": "ARCHITECTURAL",
- "url": "https://architecturalwallcoverings.com/",
- "email": "info@architecturalwallcoverings.com",
- "parentOrganization": {
- "@type": "Organization",
- "name": "Designer Wallcoverings",
- "url": "https://designerwallcoverings.com/"
- }
-}
-</script>
-<script src="/zd-loader.js" defer></script>
-<style>
-:root {
- --bg: #0a0e10;
- --paper: #ffffff;
- --muted: #909090;
- --line: rgba(255,255,255,0.10);
- --accent: #a0a0a0;
- --bg-soft: #141a1c;
- --cols: 6; /* default grid density — slider controls this */
-}
-html[data-theme="light"] {
- --bg: #fafaf6;
- --paper: #1b1814;
- --muted: #6b5f56;
- --line: rgba(10,9,5,0.12);
- --accent: #652929;
- --bg-soft: #d9c9c9;
-}
-* { margin:0; padding:0; box-sizing:border-box }
-html { scroll-behavior:smooth }
-body { font-family:'Inter', sans-serif; color:var(--paper); -webkit-font-smoothing:antialiased; background:var(--bg); min-height:100vh; overflow-x:hidden }
-
-/* ===== Auto-hide header ===== */
-header { position:fixed; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 32px; z-index:100; background:rgba(0,0,0,0.55); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:transform .3s }
-.h-link { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); text-decoration:none; cursor:pointer; background:transparent; border:0 }
-.h-link:hover { opacity:0.7 }
-.h-icon { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }
-
-/* ===== Cinema hero ===== */
-.cinema { position:relative; height:100vh; width:100%; overflow:hidden }
-.cinema-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-image:url('/hero-bg.jpg') }
-.cinema-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.75) 100%) }
-.corner-mark { position:absolute; top:24px; left:32px; font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; mix-blend-mode:difference; color:#fff; z-index:5 }
-.corner-mark::before { content:"◆ "; margin-right:6px }
-.center-mark { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-size:clamp(34px,5vw,72px); font-weight:300; letter-spacing:0.42em; text-transform:uppercase; text-align:center; color:#fff; z-index:5; mix-blend-mode:difference }
-.center-mark .tm { font-size:14px; vertical-align:super; opacity:0.7; margin-left:0.2em }
-.center-mark .sub { display:block; font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400; font-size:0.4em; letter-spacing:0.04em; text-transform:none; margin-top:14px; opacity:0.85 }
-.meta-line { position:absolute; bottom:32px; left:32px; font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:700; color:#fff; z-index:5; opacity:0.85 }
-.meta-line .num { font-size:12px; display:block; margin-top:4px; letter-spacing:0.05em }
-.enter { position:absolute; bottom:32px; right:32px; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:0.36em; text-transform:uppercase; font-weight:700; color:#fff; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #fff; transition:gap 0.25s; z-index:5 }
-.enter:hover { gap:22px }
-.enter svg { width:24px; height:12px }
-
-/* ===== Section ===== */
-.section { padding:96px 32px }
-.section-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--line) }
-.section-title { font-size:clamp(36px,5vw,64px); font-weight:300; letter-spacing:-0.02em; line-height:1 }
-.section-title .accent { color: var(--accent); font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400 }
-.section-eyebrow { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:16px }
-.section-meta { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--muted); text-align:right; line-height:1.6 }
-
-/* ===== Filter bar ===== */
-.filters { display:flex; gap:8px; align-items:center; margin-bottom:18px; flex-wrap:wrap }
-.chip { padding:8px 16px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); background:transparent; border:1px solid var(--line); cursor:pointer; transition:all 0.2s; font-family:inherit }
-.chip:hover { border-color:var(--paper) }
-.chip.active { background:var(--paper); color:var(--bg); border-color:var(--paper) }
-.search { flex:0 1 280px; margin-left:auto; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:6px 0 }
-.search input { flex:1; background:transparent; border:0; color:var(--paper); font-family:inherit; font-size:13px; outline:none; letter-spacing:0.04em }
-.search input::placeholder { color:var(--muted) }
-.search svg { width:16px; height:16px; stroke:var(--muted); fill:none; stroke-width:1.5 }
-
-/* ===== Grid-density slider ===== */
-.density { display:flex; align-items:center; gap:14px; padding:6px 0; margin-bottom:24px }
-.density label { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--muted) }
-.density input[type=range] { flex:1; max-width:240px; -webkit-appearance:none; appearance:none; height:1px; background:var(--line); outline:none }
-.density input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50% }
-.density input[type=range]::-moz-range-thumb { width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50%; border:0 }
-.density .ct { font-size:11px; color:var(--muted); letter-spacing:0.18em; text-transform:uppercase; font-weight:600; min-width:80px }
-
-/* ===== Stats line ===== */
-.stat-line { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:24px }
-
-/* ===== Product grid (novasuede pattern: flush grid + slide-up overlay) ===== */
-.grid { display:grid; grid-template-columns:repeat(var(--cols), 1fr); gap:0 }
-.card { position:relative; aspect-ratio:1/1.15; cursor:pointer; overflow:hidden; border:1px solid var(--bg); transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1); background:var(--bg-soft) }
-.card:hover { transform:scale(1.04); z-index:5 }
-.card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease }
-.card .overlay { position:absolute; left:0; right:0; bottom:0; padding:20px 16px 14px; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%); transform:translateY(48%); opacity:0.85; transition:transform 0.3s ease, opacity 0.3s ease }
-.card:hover .overlay { transform:translateY(0); opacity:1 }
-.card .pat { font-size:13px; font-weight:600; letter-spacing:0.02em; color:#fff; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
-.card .ven { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#fff; opacity:0.7; font-weight:500; margin-top:4px }
-.card .actions { margin-top:10px; display:flex; gap:6px }
-.card .sample-btn { flex:1; padding:7px 10px; background:#fff; color:#000; font-family:inherit; font-size:10px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; border:0; cursor:pointer; text-align:center; transition:all 0.2s }
-.card .sample-btn:hover { background:var(--accent); color:#fff }
-
-@media (max-width:1024px) { .grid { grid-template-columns:repeat(min(var(--cols), 4), 1fr) } }
-@media (max-width:720px) { .grid { grid-template-columns:repeat(2, 1fr) } .density { display:none } }
-
-.sentinel { height:1px }
-.loading { text-align:center; color:var(--muted); padding:32px; font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700 }
-
-/* ===== Footer ===== */
-footer { padding:64px 32px 32px; border-top:1px solid var(--line); margin-top:32px }
-.footer-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr; gap:48px; margin-bottom:48px }
-.footer-brand { font-size:24px; font-weight:300; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:12px }
-.footer-text { font-size:13px; line-height:1.6; color:var(--muted); max-width:380px }
-.footer-col h4 { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--paper); margin-bottom:18px }
-.footer-col a { display:block; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:8px; transition:color 0.2s; cursor:pointer; background:transparent; border:0; font-family:inherit; padding:0; text-align:left }
-.footer-col a:hover { color:var(--accent) }
-.footer-bottom { max-width:1400px; margin:0 auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted) }
-
-@media (max-width:720px) {
- .corner-mark, .meta-line, .enter { font-size:10px }
- .center-mark { font-size:30px; letter-spacing:0.32em }
- .section, footer { padding-left:20px; padding-right:20px }
- .footer-grid { grid-template-columns:1fr; gap:32px }
- .search { margin-left:0; flex:1 1 100% }
-}
-
-.theme-toggle { background:transparent; border:1px solid var(--line); width:32px; height:32px; cursor:pointer; color:var(--paper); display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; transition:all .15s; padding:0 }
-.theme-toggle:hover { border-color:var(--accent); color:var(--accent) }
-
-/* ===== WCAG 2.4.7 — keyboard focus indicators ===== */
-/* Strictly :focus-visible so mouse clicks do NOT show the ring */
-a:focus-visible,
-button:focus-visible,
-input:focus-visible,
-select:focus-visible,
-textarea:focus-visible,
-[tabindex]:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
-}
-</style>
-<script>
-(function(){ try { var t = localStorage.getItem('arch_theme') || 'dark'; document.documentElement.dataset.theme = t; } catch(e){} })();
-</script>
-</head>
-<body>
-
-<header>
- <button class="h-link" onclick="dwmOpen('Contact')" aria-label="Contact"><svg class="h-icon" viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/></svg><span>Contact</span></button>
- <button class="theme-toggle" id="theme-toggle" aria-label="Theme toggle">☾</button>
-</header>
-
-<section class="cinema">
- <div class="cinema-bg" id="heroBg"></div>
- <div class="corner-mark">Specifier-Grade</div>
- <div class="center-mark">ARCHITECTURAL<span class="tm">.</span><span class="sub">Spec. Build. Repeat.</span></div>
- <div class="meta-line">Architectural · Specifier · Class A · Contract<span class="num" id="heroNum"></span></div>
- <a class="enter" href="#shop">Enter <svg viewBox="0 0 24 12" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M0 6h22M16 1l6 5-6 5"/></svg></a>
-</section>
-
-<section class="section" id="shop">
- <div class="section-header">
- <div>
- <div class="section-eyebrow">The Collection</div>
- <h2 class="section-title"><span class="accent" id="totalCount">—</span> Patterns.</h2>
- </div>
- <div class="section-meta">Architectural · Specifier · Class A · Contract</div>
- </div>
-
- <div class="filters" id="facets">
- <button class="chip active" data-facet="all">All</button>
- </div>
-
- <div class="density">
- <label>Grid</label>
- <input type="range" id="densitySlider" min="4" max="12" step="1" value="6" aria-label="Grid columns">
- <span class="ct" id="densityLabel">6 cols</span>
- <div class="search">
- <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-5.5-5.5"/></svg>
- <input type="text" id="searchInput" placeholder="Search by pattern, color…" autocomplete="off">
- </div>
- </div>
-
- <div class="stat-line" id="statLine">Loading…</div>
- <div class="grid" id="grid"></div>
- <div class="loading" id="loading">Loading more…</div>
- <div class="sentinel" id="sentinel"></div>
-</section>
-
-<footer>
- <div class="footer-grid">
- <div>
- <div class="footer-brand">ARCHITECTURAL</div>
- <p class="footer-text">A specialty archive within the Designer Wallcoverings family. Curated architectural · specifier · class a · contract from heritage mills, fulfilled through the DW trade channel — memo samples ship free.</p>
- <p class="footer-text" style="margin-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;color:var(--paper);opacity:0.7">DesignerWallcoverings.com — Authorized Trade Channel</p>
- </div>
- <div class="footer-col">
- <h4>Aesthetic</h4>
- <div id="footerFacets"></div>
- </div>
- <div class="footer-col">
- <h4>Trade</h4>
- <button onclick="dwmOpen('Inquiry')">Project Inquiry</button>
- <button onclick="dwmOpen('Sample')">Request Sample</button>
- <button onclick="dwmOpen('Contact')">Contact</button>
- </div>
- </div>
- <!-- mini-constellation: every storefront shows its position in the family -->
- <div style="max-width:1400px;margin:0 auto 24px;padding:32px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)">
- <div style="display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:12px;margin-bottom:18px">
- <div>
- <div style="font-size:10px;letter-spacing:0.32em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:6px">★ DW FAMILY · 43 niches</div>
- <div style="font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:18px;color:var(--paper);letter-spacing:0.01em">You're on <span style="color:var(--accent);font-weight:500">architecturalwallcoverings</span>. Hover any star to leap.</div>
- </div>
- <a href="https://retrowalls.com/universe/" target="_blank" rel="noopener" style="font-size:10px;letter-spacing:0.32em;text-transform:uppercase;color:var(--accent);font-weight:600;text-decoration:none;border:1px solid var(--accent);padding:8px 14px">DW Universe →</a>
- </div>
- <svg id="miniConst" viewBox="0 0 1080 200" style="width:100%;height:200px;display:block" role="img" aria-label="DW family constellation: 43 niche sites; current site highlighted">
- <defs>
- <pattern id="dna-mat" width="5" height="5" patternUnits="userSpaceOnUse" patternTransform="rotate(45)"><line x1="0" y1="0" x2="0" y2="5" stroke="#c9b687" stroke-width="0.6"/></pattern>
- <pattern id="dna-dec" width="8" height="5" patternUnits="userSpaceOnUse"><polyline points="0,4 4,1 8,4" stroke="#b86a4a" stroke-width="0.6" fill="none"/></pattern>
- <pattern id="dna-cra" width="5" height="5" patternUnits="userSpaceOnUse" patternTransform="rotate(-30)"><line x1="0" y1="2.5" x2="5" y2="2.5" stroke="#6b8e6f" stroke-width="0.5" stroke-dasharray="1.4 1.2"/></pattern>
- <pattern id="dna-use" width="4" height="4" patternUnits="userSpaceOnUse"><path d="M0 0 L4 0 M0 0 L0 4" stroke="#4a6b8e" stroke-width="0.4" fill="none"/></pattern>
- </defs>
- </svg>
- <div style="display:flex;justify-content:space-between;font-size:9px;letter-spacing:0.32em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-top:6px;padding:0 8px">
- <span style="display:flex;align-items:center;gap:5px"><i style="display:inline-block;width:6px;height:6px;background:#c9b687;border-radius:50%"></i>Material</span>
- <span style="display:flex;align-items:center;gap:5px"><i style="display:inline-block;width:6px;height:6px;background:#b86a4a;border-radius:50%"></i>Decade</span>
- <span style="display:flex;align-items:center;gap:5px"><i style="display:inline-block;width:6px;height:6px;background:#6b8e6f;border-radius:50%"></i>Craft</span>
- <span style="display:flex;align-items:center;gap:5px"><i style="display:inline-block;width:6px;height:6px;background:#4a6b8e;border-radius:50%"></i>Use-case</span>
- </div>
- </div>
-
- <div class="footer-bottom">
- <span>architecturalwallcoverings.com · a designer wallcoverings family vertical</span>
- <span><a href="mailto:info@architecturalwallcoverings.com" style="color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px">info@architecturalwallcoverings.com</a></span>
- <span><a href="https://retrowalls.com/universe/" target="_blank" rel="noopener" style="color:var(--accent);text-decoration:none;letter-spacing:0.18em">DW Universe — search all 43 niches at once →</a></span>
- <span id="footerStat"></span>
- </div>
-</footer>
-
-<script>
-// mini-constellation — 43 niche-stars, current site highlighted in gold
-(function(){
- const SLUG = "architecturalwallcoverings";
- const NICHES = [
- ['silkwallpaper','Silk','mat'],['silkwallcoverings','Silk W/C','mat'],['linenwallpaper','Linen','mat'],
- ['jutewallpaper','Jute','mat'],['raffiawallcoverings','Raffia W/C','mat'],['raffiawalls','Raffia Walls','mat'],
- ['corkwallcovering','Cork','mat'],['fabricwallpaper','Fabric','mat'],['textilewallpaper','Textile','mat'],
- ['metallicwallpaper','Metallic','mat'],['silverleafwallpaper','Silver Leaf','mat'],['vinylwallpaper','Vinyl','mat'],
- ['micawallpaper','Mica','mat'],['madagascarwallpaper','Madagascar','mat'],['mylarwallpaper','Mylar','mat'],
- ['suedewallpaper','Suede','mat'],
- ['1800swallpaper','1800s','dec'],['1890swallpaper','1890s','dec'],['1900swallpaper','1900s','dec'],
- ['1920swallpaper','1920s','dec'],['1930swallpaper','1930s','dec'],['1940swallpaper','1940s','dec'],
- ['1950swallpaper','1950s','dec'],['1960swallpaper','1960s','dec'],['1970swallpaper','1970s','dec'],
- ['1980swallpaper','1980s','dec'],['retrowalls','Retro','dec'],['wallpapersback','W. Back','dec'],
- ['agedwallpaper','Aged','cra'],['handcraftedwallpaper','Handcrafted','cra'],['museumwallpaper','Museum','cra'],
- ['restorationwallpaper','Restoration','cra'],['pastelwallpaper','Pastel','cra'],['glitterwalls','Glitter','cra'],
- ['greenwallcoverings','Green','cra'],['naturalwallcoverings','Natural','cra'],['saloonwallpaper','Saloon','cra'],
- ['contractwallpaper','Contract','use'],['hotelwallcoverings','Hotel','use'],['hospitalitywallpaper','Hospitality','use'],
- ['healthcarewallpaper','Healthcare','use'],['restaurantwallpaper','Restaurant','use'],['architecturalwallcoverings','Architectural','use']
- ];
- const COLOR = { mat:'#c9b687', dec:'#b86a4a', cra:'#6b8e6f', use:'#4a6b8e' };
- const W = 1080, H = 200, BANDS = ['mat','dec','cra','use'];
- const groups = { mat:[], dec:[], cra:[], use:[] };
- for (const n of NICHES) groups[n[2]].push(n);
- const svg = document.getElementById('miniConst');
- if (!svg) return;
- const bandW = W / BANDS.length;
- let nodes = '';
- BANDS.forEach((band, bi) => {
- const list = groups[band];
- const cx = bi * bandW + bandW / 2;
- list.forEach((n, i) => {
- const t = list.length === 1 ? 0.5 : i / (list.length - 1);
- // deterministic jitter per slug
- let h = 0; for (let k = 0; k < n[0].length; k++) h = (h * 31 + n[0].charCodeAt(k)) | 0;
- const jx = ((h & 0xff) / 255 - 0.5) * (bandW * 0.5);
- const jy = (((h >> 8) & 0xff) / 255 - 0.5) * 6; // tightened from 14 → 6 to prevent same-band collisions (16 mat nodes / 144px = 9px spacing)
- const x = cx + jx, y = 28 + t * (H - 56) + jy;
- const isCurrent = n[0] === SLUG;
- const r = isCurrent ? 8 : 4;
- const op = isCurrent ? 1 : 0.55;
- nodes += `<g class="mc-node" data-slug="${n[0]}" data-label="${n[1]}" style="cursor:pointer">
- <circle cx="${x}" cy="${y}" r="${r}" fill="url(#dna-${band})" fill-opacity="${op}" stroke="${COLOR[band]}" stroke-opacity="${isCurrent?1:0.7}" stroke-width="${isCurrent?2:1}">
- <title>${n[1]} — ${n[0]}.com</title>
- </circle>
- ${isCurrent ? `<circle cx="${x}" cy="${y}" r="${r+5}" fill="none" stroke="${COLOR[band]}" stroke-opacity="0.4" stroke-width="1"><animate attributeName="r" values="${r+5};${r+12};${r+5}" dur="2.4s" repeatCount="indefinite"/><animate attributeName="stroke-opacity" values="0.4;0;0.4" dur="2.4s" repeatCount="indefinite"/></circle>` : ''}
- </g>`;
- });
- });
- // append nodes after defs
- svg.insertAdjacentHTML('beforeend', nodes);
- svg.querySelectorAll('.mc-node').forEach(n => {
- n.addEventListener('mouseenter', () => n.querySelector('circle').setAttribute('fill-opacity', '1'));
- n.addEventListener('mouseleave', e => {
- const isCurrent = n.dataset.slug === SLUG;
- n.querySelector('circle').setAttribute('fill-opacity', isCurrent ? '1' : '0.55');
- });
- n.addEventListener('click', () => window.open('https://' + n.dataset.slug + '.com', '_blank'));
- });
-})();
-</script>
-
-<script>
-const state = { q:'', facet:'all', page:1, pages:1, total:0, loading:false, exhausted:false };
-const LABELS = {"all":"All"};
-
-function escAttr(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[c])); }
-// Image-URL allowlist: only DW Shopify CDN + designerwallcoverings.com (defends against XSS via crafted products.json)
-function safeImg(u) { return /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(u || '') ? u : '/hero-bg.jpg'; }
-function cardHTML(p) {
- const eager = state.page === 1;
- return '<img loading="' + (eager ? 'eager' : 'lazy') + '"' + (eager ? ' fetchpriority="high"' : '') + ' src="' + escAttr(safeImg(p.image_url)) + '" alt="' + escAttr(p.title) + '">'
- + '<div class="overlay">'
- + '<div class="pat">' + escAttr(p.pattern_name || p.title) + '</div>'
- + '<div class="ven">' + escAttr((p.vendor || '').replace(/-/g, ' ')) + '</div>'
- + '<div class="actions">'
- + '<button class="sample-btn" onclick="event.stopPropagation();dwmOpen(\'Sample\',' + JSON.stringify({sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}).replace(/"/g,'"') + ')">Sample</button>'
- + '</div></div>';
-}
-
-async function loadFacets() {
- let f;
- try {
- const r = await fetch('/api/facets');
- if (!r.ok) throw new Error('HTTP ' + r.status);
- f = await r.json();
- } catch (e) { console.error('loadFacets failed:', e); return; }
- const el = document.getElementById('facets');
- for (const [k, v] of Object.entries(f.aesthetics).sort((a,b) => b[1] - a[1])) {
- const b = document.createElement('button');
- b.className = 'chip'; b.dataset.facet = k;
- b.innerHTML = (LABELS[k] || k) + ' <span style="opacity:.55;font-weight:500;margin-left:4px">' + v + '</span>';
- el.appendChild(b);
- }
- el.addEventListener('click', e => {
- if (e.target.tagName !== 'BUTTON') return;
- document.querySelectorAll('#facets button').forEach(b => b.classList.remove('active'));
- e.target.classList.add('active');
- state.facet = e.target.dataset.facet;
- resetGrid();
- });
- document.getElementById('totalCount').textContent = f.total;
- document.getElementById('footerStat').textContent = f.total + ' patterns · live archive';
- // Footer aesthetic links
- const footerEl = document.getElementById('footerFacets');
- for (const [k] of Object.entries(f.aesthetics)) {
- const b = document.createElement('button');
- b.textContent = LABELS[k] || k;
- b.onclick = () => { state.facet = k; resetGrid(); document.querySelectorAll('#facets button').forEach(x => x.classList.toggle('active', x.dataset.facet === k)); document.getElementById('shop').scrollIntoView({behavior:'smooth'}); };
- footerEl.appendChild(b);
- }
-}
-
-function resetGrid() {
- state.page = 1; state.exhausted = false;
- document.getElementById('grid').innerHTML = '';
- document.getElementById('loading').textContent = 'Loading…';
- loadGridPage();
-}
-
-async function loadGridPage() {
- if (state.loading || state.exhausted) return;
- state.loading = true;
- const params = new URLSearchParams({ page:state.page, limit:24 });
- if (state.q) params.set('q', state.q);
- if (state.facet !== 'all') params.set('aesthetic', state.facet);
- let data;
- try {
- const r = await fetch('/api/products?' + params);
- if (!r.ok) throw new Error('HTTP ' + r.status);
- data = await r.json();
- } catch (e) {
- console.error('loadGridPage failed:', e);
- document.getElementById('loading').textContent = '— offline — refresh to retry —';
- state.loading = false;
- return;
- }
- state.total = data.total; state.pages = data.pages;
-
- if (state.page === 1) {
- document.getElementById('statLine').textContent = data.total + ' patterns · ' + (state.facet === 'all' ? 'all aesthetics' : (LABELS[state.facet] || state.facet)) + (state.q ? ' · matching "' + state.q + '"' : '');
- }
- const grid = document.getElementById('grid');
- for (const p of data.items) {
- const a = document.createElement('a');
- a.className = 'card'; a.href = '#'; a.onclick = (e) => { e.preventDefault(); dwmOpen('Sample',{sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}); };
- a.innerHTML = cardHTML(p);
- grid.appendChild(a);
- }
- if (state.page >= state.pages || data.items.length === 0) {
- state.exhausted = true;
- document.getElementById('loading').textContent = state.total > 0 ? '— end of archive · ' + state.total + ' patterns —' : '';
- } else state.page++;
- state.loading = false;
-}
-
-const io = new IntersectionObserver(es => { for (const e of es) if (e.isIntersecting) loadGridPage(); }, { rootMargin:'600px 0px' });
-io.observe(document.getElementById('sentinel'));
-
-document.getElementById('searchInput').addEventListener('input', e => {
- state.q = e.target.value.trim();
- clearTimeout(window._t);
- window._t = setTimeout(resetGrid, 220);
-});
-
-// Density slider
-const slider = document.getElementById('densitySlider');
-const dlabel = document.getElementById('densityLabel');
-function setDensity(n) {
- document.documentElement.style.setProperty('--cols', n);
- dlabel.textContent = n + ' cols';
- try { localStorage.setItem('arch_theme_density', n); } catch(e){}
-}
-slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
-const savedDensity = parseInt(localStorage.getItem('arch_theme_density') || '6');
-if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
-
-// Theme toggle
-const tb = document.getElementById('theme-toggle');
-function setTheme(t){ document.documentElement.dataset.theme = t; try { localStorage.setItem('arch_theme', t); } catch(e){} tb.textContent = t === 'dark' ? '☾' : '☀'; }
-setTheme(document.documentElement.dataset.theme || 'dark');
-tb.addEventListener('click', () => setTheme(document.documentElement.dataset.theme === 'dark' ? 'light' : 'dark'));
-
-loadFacets();
-loadGridPage();
-</script>
-<!-- ============================================================
- DW UNIVERSAL CONTACT MODULE — fashion-house UX
- Inject before </body> in every DW-family sister site.
- Self-contained: CSS + 4 modals + JS submission handlers.
- Uses host site's CSS vars (--bg, --fg, --gold, --rule).
- ============================================================ -->
-<style>
- /* === MODAL BASE === */
- .dwm{position:fixed;inset:0;background:rgba(0,0,0,0.78);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;overflow-y:auto}
- .dwm.open{display:flex}
- .dwm-box{background:var(--bg);border:1px solid var(--rule);max-width:520px;width:100%;padding:36px 32px;position:relative;max-height:90vh;overflow-y:auto;animation:dwm-in 0.25s ease}
- @keyframes dwm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
- .dwm-box h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;font-size:32px;line-height:1.05;margin-bottom:6px;color:var(--fg);letter-spacing:-0.01em}
- .dwm-box .sub{color:var(--muted);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
- .dwm-close{position:absolute;top:18px;right:18px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;width:32px;height:32px;line-height:1;padding:0}
- .dwm-close:hover{color:var(--gold)}
- .dwm-preview{display:flex;gap:14px;align-items:center;padding:12px;background:var(--bg-soft);margin-bottom:18px}
- .dwm-preview img{width:64px;height:64px;object-fit:cover}
- .dwm-preview .pn{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;line-height:1.2;color:var(--fg)}
- .dwm-preview .pc{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
- .dwm-field{margin-bottom:14px}
- .dwm-field label{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
- .dwm-field input,.dwm-field textarea,.dwm-field select{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:8px 4px;font-size:14px;font-family:inherit;color:var(--fg);outline:none;transition:border-color 0.2s}
- .dwm-field input:focus,.dwm-field textarea:focus{border-bottom-color:var(--gold)}
- .dwm-field textarea{min-height:60px;resize:vertical}
- .dwm-submit{background:var(--gold);color:#000;border:0;padding:14px 28px;font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:700;cursor:pointer;width:100%;margin-top:8px;transition:opacity 0.15s}
- .dwm-submit:hover{opacity:0.85}
- .dwm-submit:disabled{opacity:0.5;cursor:default}
- .dwm-status{margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;display:none}
- .dwm-status.ok{color:var(--sage);display:block}
- .dwm-status.err{color:#e08070;display:block}
- /* contact-options */
- .dwm-options{display:flex;flex-direction:column;gap:10px}
- .dwm-option{display:flex;align-items:center;gap:14px;padding:18px 20px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;transition:all 0.2s;text-align:left;width:100%}
- .dwm-option:hover{border-color:var(--gold);color:var(--gold)}
- .dwm-option svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}
- .dwm-option .lbl{flex:1;display:block}
- .dwm-option .val{display:block;font-size:10px;letter-spacing:0.14em;text-transform:none;font-weight:500;opacity:0.65;margin-top:4px}
-</style>
-
-<!-- Contact options modal -->
-<div class="dwm" id="dwmContact" onclick="if(event.target===this)dwmClose('Contact')">
- <div class="dwm-box" style="max-width:440px">
- <button class="dwm-close" onclick="dwmClose('Contact')" aria-label="Close">×</button>
- <h3>Contact</h3>
- <p class="sub" id="dwmContactSub">Three ways to reach us</p>
- <div class="dwm-options">
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Inquiry')">
- <svg viewBox="0 0 24 24"><path d="M4 4h16v12H7l-3 3z"/></svg>
- <span class="lbl">Send an Inquiry<span class="val">Project name · scope · all the details</span></span>
- </button>
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Sample')">
- <svg viewBox="0 0 24 24"><rect x="4" y="6" width="16" height="14"/><path d="M4 10h16M9 6V3h6v3"/></svg>
- <span class="lbl">Request a Sample<span class="val">Memo sample · ships free · 3–5 business days</span></span>
- </button>
- <a class="dwm-option" id="dwmContactEmailLink" href="mailto:info@{{DOMAIN}}">
- <svg viewBox="0 0 24 24"><path d="M3 6h18v12H3z"/><path d="M3 6l9 7 9-7"/></svg>
- <span class="lbl">Email Us<span class="val" id="dwmContactEmailLabel">info@{{DOMAIN}}</span></span>
- </a>
- </div>
- </div>
-</div>
-
-<!-- Inquiry modal -->
-<div class="dwm" id="dwmInquiry" onclick="if(event.target===this)dwmClose('Inquiry')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Inquiry')" aria-label="Close">×</button>
- <h3>Project Inquiry</h3>
- <p class="sub">We'll respond within one business day</p>
- <form id="dwmInquiryForm" onsubmit="return dwmSubmit(event,'inquiry')">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Phone</label><input type="tel" name="phone"></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Project Name</label><input type="text" name="projectName" required></div>
- <div class="dwm-field"><label>Project Scope</label><textarea name="projectScope" placeholder="Square footage · room count · timeline" required></textarea></div>
- <div class="dwm-field"><label>Additional Information</label><textarea name="message" placeholder="Patterns of interest, finish preferences, budget"></textarea></div>
- <button type="submit" class="dwm-submit">Send Inquiry</button>
- <div class="dwm-status" id="dwmInquiryStatus"></div>
- </form>
- </div>
-</div>
-
-<!-- Sample-request modal -->
-<div class="dwm" id="dwmSample" onclick="if(event.target===this)dwmClose('Sample')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Sample')" aria-label="Close">×</button>
- <h3>Request a Sample</h3>
- <p class="sub">Memo sample · ships free · 3–5 business days</p>
- <div class="dwm-preview" id="dwmSamplePreview" style="display:none">
- <img id="dwmSampleImg" src="" alt="">
- <div><div class="pn" id="dwmSampleName"></div><div class="pc" id="dwmSampleSku"></div></div>
- </div>
- <form id="dwmSampleForm" onsubmit="return dwmSubmit(event,'sample')">
- <input type="hidden" name="sku" id="dwmSampleSkuInput">
- <input type="hidden" name="title" id="dwmSampleTitleInput">
- <input type="hidden" name="image_url" id="dwmSampleImageInput">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Shipping Address</label><input type="text" name="address" placeholder="Street" required></div>
- <div class="dwm-field" style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px">
- <input type="text" name="city" placeholder="City" required>
- <input type="text" name="state" placeholder="State" required>
- <input type="text" name="zip" placeholder="ZIP" required>
- </div>
- <div class="dwm-field"><label>Notes (optional)</label><textarea name="message" placeholder="Project, sq.ft., timing"></textarea></div>
- <button type="submit" class="dwm-submit">Send Sample Request</button>
- <div class="dwm-status" id="dwmSampleStatus"></div>
- </form>
- </div>
-</div>
-
-<script>
- // Universal modal control
- function dwmOpen(name, opts){
- document.getElementById('dwm' + name).classList.add('open');
- document.body.style.overflow = 'hidden';
- if (name === 'Sample' && opts) {
- document.getElementById('dwmSamplePreview').style.display = 'flex';
- document.getElementById('dwmSampleImg').src = opts.image_url || '';
- document.getElementById('dwmSampleName').textContent = opts.title || '';
- document.getElementById('dwmSampleSku').textContent = opts.sku || '';
- document.getElementById('dwmSampleSkuInput').value = opts.sku || '';
- document.getElementById('dwmSampleTitleInput').value = opts.title || '';
- document.getElementById('dwmSampleImageInput').value = opts.image_url || '';
- } else if (name === 'Sample') {
- document.getElementById('dwmSamplePreview').style.display = 'none';
- document.getElementById('dwmSampleSkuInput').value = '';
- document.getElementById('dwmSampleTitleInput').value = '';
- document.getElementById('dwmSampleImageInput').value = '';
- }
- }
- function dwmClose(name){ document.getElementById('dwm'+name).classList.remove('open'); document.body.style.overflow=''; }
-
- // Universal form submit — POSTs to /api/send-{kind}
- async function dwmSubmit(e, kind) {
- e.preventDefault();
- const form = e.target;
- const data = Object.fromEntries(new FormData(form).entries());
- const btn = form.querySelector('.dwm-submit');
- const status = form.querySelector('.dwm-status');
- btn.disabled = true; const orig = btn.textContent; btn.textContent = 'Sending…';
- status.className = 'dwm-status';
- try {
- const r = await fetch('/api/send-' + kind, { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
- if (!r.ok) throw new Error('HTTP '+r.status);
- const j = await r.json();
- status.textContent = kind === 'sample' ? 'Sample request sent — ships within 3–5 business days' : 'Inquiry sent — we respond within 1 business day';
- status.className = 'dwm-status ok';
- btn.textContent = 'Sent ✓';
- setTimeout(() => { dwmClose(kind === 'sample' ? 'Sample' : 'Inquiry'); btn.disabled = false; btn.textContent = orig; status.className = 'dwm-status'; form.reset(); }, 2800);
- } catch (err) {
- status.textContent = 'Send failed — please email info@designerwallcoverings.com';
- status.className = 'dwm-status err';
- btn.disabled = false; btn.textContent = orig;
- }
- return false;
- }
-
- // Wire up "Memo samples ship free" badge in hero to open sample modal directly
- document.querySelectorAll('.hero .badge, [data-open-sample]').forEach(el => {
- el.style.cursor = 'pointer';
- el.addEventListener('click', () => dwmOpen('Sample'));
- });
-
- // Wire nav "Trade" link to inquiry modal
- document.querySelectorAll('nav a[href*="designerwallcoverings.com"]').forEach(a => {
- a.removeAttribute('target');
- a.removeAttribute('href');
- a.style.cursor = 'pointer';
- a.addEventListener('click', e => { e.preventDefault(); dwmOpen('Contact'); });
- });
-
- // Override product card clicks — open Sample modal pre-filled instead of redirecting to DW
- document.addEventListener('click', e => {
- const card = e.target.closest('.card, .rail-card');
- if (!card) return;
- if (card.tagName === 'A' && (card.getAttribute('href') || '').startsWith('/sample/')) {
- e.preventDefault();
- const img = card.querySelector('img');
- const pat = card.querySelector('.pat');
- const sku = card.getAttribute('href').replace('/sample/', '');
- dwmOpen('Sample', {
- sku,
- title: pat ? pat.textContent.trim() : '',
- image_url: img ? img.src : ''
- });
- }
- }, true);
-// DW STANDARD: hero pulls from products.json[0].image_url so dw-collections-viewer
-// drag-drop / hero-pin updates the live front page on next deploy.
-// Always upgrades to the largest Shopify variant (strips _NxN size suffix) so
-// the full-page hero stays sharp.
-(async function hydrateHero() {
- try {
- const r = await fetch('/api/products?limit=1');
- if (!r.ok) return;
- const d = await r.json();
- let url = d.items && d.items[0] && d.items[0].image_url;
- if (!url) return;
- if (/^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(url)) {
- url = url.replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- const bg = document.getElementById('heroBg');
- if (bg) bg.style.backgroundImage = "url('" + url + "')";
- }
- } catch(e){}
-})();
-
-</script>
-
-</body>
-</html>
diff --git a/public/index.html.bak.1778124816342 b/public/index.html.bak.1778124816342
deleted file mode 100644
index 649c5b4..0000000
--- a/public/index.html.bak.1778124816342
+++ /dev/null
@@ -1,676 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
-<meta charset="utf-8">
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>ARCHITECTURAL — Spec. Build. Repeat.</title>
-<meta name="description" content="ARCHITECTURAL · Spec. Build. Repeat.. Curated wallcoverings sourced through the Designer Wallcoverings trade channel.">
-<meta name="theme-color" content="#0a0e10">
-<link rel="canonical" href="https://architecturalwallcoverings.com/">
-<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,400;1,400&display=swap" rel="stylesheet">
-<link rel="preload" as="image" href="/hero-bg.jpg" fetchpriority="high">
-<script type="application/ld+json">
-{
- "@context": "https://schema.org",
- "@type": "Organization",
- "name": "ARCHITECTURAL",
- "url": "https://architecturalwallcoverings.com/",
- "email": "info@architecturalwallcoverings.com",
- "parentOrganization": {
- "@type": "Organization",
- "name": "Designer Wallcoverings",
- "url": "https://designerwallcoverings.com/"
- }
-}
-</script>
-<script src="/zd-loader.js" defer></script>
-<style>
-:root {
- --bg: #0a0e10;
- --paper: #ffffff;
- --muted: #909090;
- --line: rgba(255,255,255,0.10);
- --accent: #a0a0a0;
- --bg-soft: #141a1c;
- --cols: 6; /* default grid density — slider controls this */
-}
-html[data-theme="light"] {
- --bg: #fafaf6;
- --paper: #1b1814;
- --muted: #6b5f56;
- --line: rgba(10,9,5,0.12);
- --accent: #652929;
- --bg-soft: #d9c9c9;
-}
-* { margin:0; padding:0; box-sizing:border-box }
-html { scroll-behavior:smooth }
-body { font-family:'Inter', sans-serif; color:var(--paper); -webkit-font-smoothing:antialiased; background:var(--bg); min-height:100vh; overflow-x:hidden }
-
-/* ===== Auto-hide header ===== */
-header { position:fixed; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 32px; z-index:100; background:rgba(0,0,0,0.55); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:transform .3s }
-.h-link { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); text-decoration:none; cursor:pointer; background:transparent; border:0 }
-.h-link:hover { opacity:0.7 }
-.h-icon { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }
-
-/* ===== Cinema hero ===== */
-.cinema { position:relative; height:100vh; width:100%; overflow:hidden }
-.cinema-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-image:url('/hero-bg.jpg') }
-.cinema-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.75) 100%) }
-.corner-mark { position:absolute; top:24px; left:32px; font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,0.55), 0 0 1px rgba(0,0,0,0.4); z-index:5 }
-.corner-mark::before { content:"◆ "; margin-right:6px }
-.center-mark { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-size:clamp(34px,5vw,72px); font-weight:300; letter-spacing:0.42em; text-transform:uppercase; text-align:center; color:#fff; z-index:5; mix-blend-mode:difference }
-.center-mark .tm { font-size:14px; vertical-align:super; opacity:0.7; margin-left:0.2em }
-.center-mark .sub { display:block; font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400; font-size:0.4em; letter-spacing:0.04em; text-transform:none; margin-top:14px; opacity:0.85 }
-.meta-line { position:absolute; bottom:32px; left:32px; font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:700; color:#fff; z-index:5; opacity:0.85 }
-.meta-line .num { font-size:12px; display:block; margin-top:4px; letter-spacing:0.05em }
-.enter { position:absolute; bottom:32px; right:32px; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:0.36em; text-transform:uppercase; font-weight:700; color:#fff; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #fff; transition:gap 0.25s; z-index:5 }
-.enter:hover { gap:22px }
-.enter svg { width:24px; height:12px }
-
-/* ===== Section ===== */
-.section { padding:96px 32px }
-.section-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--line) }
-.section-title { font-size:clamp(36px,5vw,64px); font-weight:300; letter-spacing:-0.02em; line-height:1 }
-.section-title .accent { color: var(--accent); font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400 }
-.section-eyebrow { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:16px }
-.section-meta { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--muted); text-align:right; line-height:1.6 }
-
-/* ===== Filter bar ===== */
-.filters { display:flex; gap:8px; align-items:center; margin-bottom:18px; flex-wrap:wrap }
-.chip { padding:8px 16px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); background:transparent; border:1px solid var(--line); cursor:pointer; transition:all 0.2s; font-family:inherit }
-.chip:hover { border-color:var(--paper) }
-.chip.active { background:var(--paper); color:var(--bg); border-color:var(--paper) }
-.search { flex:0 1 280px; margin-left:auto; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:6px 0 }
-.search input { flex:1; background:transparent; border:0; color:var(--paper); font-family:inherit; font-size:13px; outline:none; letter-spacing:0.04em }
-.search input::placeholder { color:var(--muted) }
-.search svg { width:16px; height:16px; stroke:var(--muted); fill:none; stroke-width:1.5 }
-
-/* ===== Grid-density slider ===== */
-.density { display:flex; align-items:center; gap:14px; padding:6px 0; margin-bottom:24px }
-.density label { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--muted) }
-.density input[type=range] { flex:1; max-width:240px; -webkit-appearance:none; appearance:none; height:1px; background:var(--line); outline:none }
-.density input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50% }
-.density input[type=range]::-moz-range-thumb { width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50%; border:0 }
-.density .ct { font-size:11px; color:var(--muted); letter-spacing:0.18em; text-transform:uppercase; font-weight:600; min-width:80px }
-
-/* ===== Stats line ===== */
-.stat-line { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:24px }
-
-/* ===== Product grid (novasuede pattern: flush grid + slide-up overlay) ===== */
-.grid { display:grid; grid-template-columns:repeat(var(--cols), 1fr); gap:0 }
-.card { position:relative; aspect-ratio:1/1.15; cursor:pointer; overflow:hidden; border:1px solid var(--bg); transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1); background:var(--bg-soft) }
-.card:hover { transform:scale(1.04); z-index:5 }
-.card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease }
-.card .overlay { position:absolute; left:0; right:0; bottom:0; padding:20px 16px 14px; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%); transform:translateY(48%); opacity:0.85; transition:transform 0.3s ease, opacity 0.3s ease }
-.card:hover .overlay { transform:translateY(0); opacity:1 }
-.card .pat { font-size:13px; font-weight:600; letter-spacing:0.02em; color:#fff; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
-.card .ven { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#fff; opacity:0.7; font-weight:500; margin-top:4px }
-.card .actions { margin-top:10px; display:flex; gap:6px }
-.card .sample-btn { flex:1; padding:7px 10px; background:#fff; color:#000; font-family:inherit; font-size:10px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; border:0; cursor:pointer; text-align:center; transition:all 0.2s }
-.card .sample-btn:hover { background:var(--accent); color:#fff }
-
-@media (max-width:1024px) { .grid { grid-template-columns:repeat(min(var(--cols), 4), 1fr) } }
-@media (max-width:720px) { .grid { grid-template-columns:repeat(2, 1fr) } .density { display:none } }
-
-.sentinel { height:1px }
-.loading { text-align:center; color:var(--muted); padding:32px; font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700 }
-
-/* ===== Footer ===== */
-footer { padding:64px 32px 32px; border-top:1px solid var(--line); margin-top:32px }
-.footer-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr; gap:48px; margin-bottom:48px }
-.footer-brand { font-size:24px; font-weight:300; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:12px }
-.footer-text { font-size:13px; line-height:1.6; color:var(--muted); max-width:380px }
-.footer-col h4 { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--paper); margin-bottom:18px }
-.footer-col a { display:block; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:8px; transition:color 0.2s; cursor:pointer; background:transparent; border:0; font-family:inherit; padding:0; text-align:left }
-.footer-col a:hover { color:var(--accent) }
-.footer-bottom { max-width:1400px; margin:0 auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted) }
-
-@media (max-width:720px) {
- .corner-mark, .meta-line, .enter { font-size:10px }
- .center-mark { font-size:30px; letter-spacing:0.32em }
- .section, footer { padding-left:20px; padding-right:20px }
- .footer-grid { grid-template-columns:1fr; gap:32px }
- .search { margin-left:0; flex:1 1 100% }
-}
-
-.theme-toggle { background:transparent; border:1px solid var(--line); width:32px; height:32px; cursor:pointer; color:var(--paper); display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; transition:all .15s; padding:0 }
-.theme-toggle:hover { border-color:var(--accent); color:var(--accent) }
-
-/* ===== WCAG 2.4.7 — keyboard focus indicators ===== */
-/* Strictly :focus-visible so mouse clicks do NOT show the ring */
-a:focus-visible,
-button:focus-visible,
-input:focus-visible,
-select:focus-visible,
-textarea:focus-visible,
-[tabindex]:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
-}
-</style>
-<script>
-(function(){ try { var t = localStorage.getItem('arch_theme') || 'dark'; document.documentElement.dataset.theme = t; } catch(e){} })();
-</script>
-</head>
-<body>
-
-<header>
- <button class="h-link" onclick="dwmOpen('Contact')" aria-label="Contact"><svg class="h-icon" viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/></svg><span>Contact</span></button>
- <button class="theme-toggle" id="theme-toggle" aria-label="Theme toggle">☾</button>
-</header>
-
-<section class="cinema">
- <div class="cinema-bg" id="heroBg"></div>
- <div class="corner-mark">Specifier-Grade</div>
- <div class="center-mark">ARCHITECTURAL<span class="tm">.</span><span class="sub">Spec. Build. Repeat.</span></div>
- <div class="meta-line">Architectural · Specifier · Class A · Contract<span class="num" id="heroNum"></span></div>
- <a class="enter" href="#shop">Enter <svg viewBox="0 0 24 12" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M0 6h22M16 1l6 5-6 5"/></svg></a>
-</section>
-
-<section class="section" id="shop">
- <div class="section-header">
- <div>
- <div class="section-eyebrow">The Collection</div>
- <h2 class="section-title"><span class="accent" id="totalCount">—</span> Patterns.</h2>
- </div>
- <div class="section-meta">Architectural · Specifier · Class A · Contract</div>
- </div>
-
- <div class="filters" id="facets">
- <button class="chip active" data-facet="all">All</button>
- </div>
-
- <div class="density">
- <label>Sort</label>
- <select id="sortSelect" aria-label="Sort products" style="background:transparent;color:inherit;border:1px solid var(--line,rgba(255,255,255,.2));font:inherit;font-size:11px;letter-spacing:.10em;text-transform:uppercase;padding:4px 8px;cursor:pointer;outline:none;margin-right:14px">
- <option value="newest">Newest</option>
- <option value="color">Color</option>
- <option value="style">Style</option>
- <option value="sku">SKU A→Z</option>
- <option value="title">Title A→Z</option>
- <option value="price-asc">Price ↑</option>
- <option value="price-desc">Price ↓</option>
- </select>
- <label>Grid</label>
- <input type="range" id="densitySlider" min="4" max="12" step="1" value="6" aria-label="Grid columns">
- <span class="ct" id="densityLabel">6 cols</span>
- <div class="search">
- <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-5.5-5.5"/></svg>
- <input type="text" id="searchInput" placeholder="Search by pattern, color…" autocomplete="off">
- </div>
- </div>
-
- <div class="stat-line" id="statLine">Loading…</div>
- <div class="grid" id="grid"></div>
- <div class="loading" id="loading">Loading more…</div>
- <div class="sentinel" id="sentinel"></div>
-</section>
-
-<footer>
- <div class="footer-grid">
- <div>
- <div class="footer-brand">ARCHITECTURAL</div>
- <p class="footer-text">A specialty archive within the Designer Wallcoverings family. Curated architectural · specifier · class a · contract from heritage mills, fulfilled through the DW trade channel — memo samples ship free.</p>
- <p class="footer-text" style="margin-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;color:var(--paper);opacity:0.7">DesignerWallcoverings.com — Authorized Trade Channel</p>
- </div>
- <div class="footer-col">
- <h4>Aesthetic</h4>
- <div id="footerFacets"></div>
- </div>
- <div class="footer-col">
- <h4>Trade</h4>
- <button onclick="dwmOpen('Inquiry')">Project Inquiry</button>
- <button onclick="dwmOpen('Sample')">Request Sample</button>
- <button onclick="dwmOpen('Contact')">Contact</button>
- </div>
- </div>
- <!-- mini-constellation: every storefront shows its position in the family -->
- <div style="max-width:1400px;margin:0 auto 24px;padding:32px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)">
- <div style="display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:12px;margin-bottom:18px">
- <div>
- <div style="font-size:10px;letter-spacing:0.32em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:6px">★ DW FAMILY · 43 niches</div>
- <div style="font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:18px;color:var(--paper);letter-spacing:0.01em">You're on <span style="color:var(--accent);font-weight:500">architecturalwallcoverings</span>. Hover any star to leap.</div>
- </div>
- <a href="https://retrowalls.com/universe/" target="_blank" rel="noopener" style="font-size:10px;letter-spacing:0.32em;text-transform:uppercase;color:var(--accent);font-weight:600;text-decoration:none;border:1px solid var(--accent);padding:8px 14px">DW Universe →</a>
- </div>
- <svg id="miniConst" viewBox="0 0 1080 200" style="width:100%;height:200px;display:block" role="img" aria-label="DW family constellation: 43 niche sites; current site highlighted">
- <defs>
- <pattern id="dna-mat" width="5" height="5" patternUnits="userSpaceOnUse" patternTransform="rotate(45)"><line x1="0" y1="0" x2="0" y2="5" stroke="#c9b687" stroke-width="0.6"/></pattern>
- <pattern id="dna-dec" width="8" height="5" patternUnits="userSpaceOnUse"><polyline points="0,4 4,1 8,4" stroke="#b86a4a" stroke-width="0.6" fill="none"/></pattern>
- <pattern id="dna-cra" width="5" height="5" patternUnits="userSpaceOnUse" patternTransform="rotate(-30)"><line x1="0" y1="2.5" x2="5" y2="2.5" stroke="#6b8e6f" stroke-width="0.5" stroke-dasharray="1.4 1.2"/></pattern>
- <pattern id="dna-use" width="4" height="4" patternUnits="userSpaceOnUse"><path d="M0 0 L4 0 M0 0 L0 4" stroke="#4a6b8e" stroke-width="0.4" fill="none"/></pattern>
- </defs>
- </svg>
- <div style="display:flex;justify-content:space-between;font-size:9px;letter-spacing:0.32em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-top:6px;padding:0 8px">
- <span style="display:flex;align-items:center;gap:5px"><i style="display:inline-block;width:6px;height:6px;background:#c9b687;border-radius:50%"></i>Material</span>
- <span style="display:flex;align-items:center;gap:5px"><i style="display:inline-block;width:6px;height:6px;background:#b86a4a;border-radius:50%"></i>Decade</span>
- <span style="display:flex;align-items:center;gap:5px"><i style="display:inline-block;width:6px;height:6px;background:#6b8e6f;border-radius:50%"></i>Craft</span>
- <span style="display:flex;align-items:center;gap:5px"><i style="display:inline-block;width:6px;height:6px;background:#4a6b8e;border-radius:50%"></i>Use-case</span>
- </div>
- </div>
-
- <div class="footer-bottom">
- <span>architecturalwallcoverings.com · a designer wallcoverings family vertical</span>
- <span><a href="mailto:info@architecturalwallcoverings.com" style="color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px">info@architecturalwallcoverings.com</a></span>
- <span><a href="https://retrowalls.com/universe/" target="_blank" rel="noopener" style="color:var(--accent);text-decoration:none;letter-spacing:0.18em">DW Universe — search all 43 niches at once →</a></span>
- <span id="footerStat"></span>
- </div>
-</footer>
-
-<script>
-// mini-constellation — 43 niche-stars, current site highlighted in gold
-(function(){
- const SLUG = "architecturalwallcoverings";
- const NICHES = [
- ['silkwallpaper','Silk','mat'],['silkwallcoverings','Silk W/C','mat'],['linenwallpaper','Linen','mat'],
- ['jutewallpaper','Jute','mat'],['raffiawallcoverings','Raffia W/C','mat'],['raffiawalls','Raffia Walls','mat'],
- ['corkwallcovering','Cork','mat'],['fabricwallpaper','Fabric','mat'],['textilewallpaper','Textile','mat'],
- ['metallicwallpaper','Metallic','mat'],['silverleafwallpaper','Silver Leaf','mat'],['vinylwallpaper','Vinyl','mat'],
- ['micawallpaper','Mica','mat'],['madagascarwallpaper','Madagascar','mat'],['mylarwallpaper','Mylar','mat'],
- ['suedewallpaper','Suede','mat'],
- ['1800swallpaper','1800s','dec'],['1890swallpaper','1890s','dec'],['1900swallpaper','1900s','dec'],
- ['1920swallpaper','1920s','dec'],['1930swallpaper','1930s','dec'],['1940swallpaper','1940s','dec'],
- ['1950swallpaper','1950s','dec'],['1960swallpaper','1960s','dec'],['1970swallpaper','1970s','dec'],
- ['1980swallpaper','1980s','dec'],['retrowalls','Retro','dec'],['wallpapersback','W. Back','dec'],
- ['agedwallpaper','Aged','cra'],['handcraftedwallpaper','Handcrafted','cra'],['museumwallpaper','Museum','cra'],
- ['restorationwallpaper','Restoration','cra'],['pastelwallpaper','Pastel','cra'],['glitterwalls','Glitter','cra'],
- ['greenwallcoverings','Green','cra'],['naturalwallcoverings','Natural','cra'],['saloonwallpaper','Saloon','cra'],
- ['contractwallpaper','Contract','use'],['hotelwallcoverings','Hotel','use'],['hospitalitywallpaper','Hospitality','use'],
- ['healthcarewallpaper','Healthcare','use'],['restaurantwallpaper','Restaurant','use'],['architecturalwallcoverings','Architectural','use']
- ];
- const COLOR = { mat:'#c9b687', dec:'#b86a4a', cra:'#6b8e6f', use:'#4a6b8e' };
- const W = 1080, H = 200, BANDS = ['mat','dec','cra','use'];
- const groups = { mat:[], dec:[], cra:[], use:[] };
- for (const n of NICHES) groups[n[2]].push(n);
- const svg = document.getElementById('miniConst');
- if (!svg) return;
- const bandW = W / BANDS.length;
- let nodes = '';
- BANDS.forEach((band, bi) => {
- const list = groups[band];
- const cx = bi * bandW + bandW / 2;
- list.forEach((n, i) => {
- const t = list.length === 1 ? 0.5 : i / (list.length - 1);
- // deterministic jitter per slug
- let h = 0; for (let k = 0; k < n[0].length; k++) h = (h * 31 + n[0].charCodeAt(k)) | 0;
- const jx = ((h & 0xff) / 255 - 0.5) * (bandW * 0.5);
- const jy = (((h >> 8) & 0xff) / 255 - 0.5) * 6; // tightened from 14 → 6 to prevent same-band collisions (16 mat nodes / 144px = 9px spacing)
- const x = cx + jx, y = 28 + t * (H - 56) + jy;
- const isCurrent = n[0] === SLUG;
- const r = isCurrent ? 8 : 4;
- const op = isCurrent ? 1 : 0.55;
- nodes += `<g class="mc-node" data-slug="${n[0]}" data-label="${n[1]}" style="cursor:pointer">
- <circle cx="${x}" cy="${y}" r="${r}" fill="url(#dna-${band})" fill-opacity="${op}" stroke="${COLOR[band]}" stroke-opacity="${isCurrent?1:0.7}" stroke-width="${isCurrent?2:1}">
- <title>${n[1]} — ${n[0]}.com</title>
- </circle>
- ${isCurrent ? `<circle cx="${x}" cy="${y}" r="${r+5}" fill="none" stroke="${COLOR[band]}" stroke-opacity="0.4" stroke-width="1"><animate attributeName="r" values="${r+5};${r+12};${r+5}" dur="2.4s" repeatCount="indefinite"/><animate attributeName="stroke-opacity" values="0.4;0;0.4" dur="2.4s" repeatCount="indefinite"/></circle>` : ''}
- </g>`;
- });
- });
- // append nodes after defs
- svg.insertAdjacentHTML('beforeend', nodes);
- svg.querySelectorAll('.mc-node').forEach(n => {
- n.addEventListener('mouseenter', () => n.querySelector('circle').setAttribute('fill-opacity', '1'));
- n.addEventListener('mouseleave', e => {
- const isCurrent = n.dataset.slug === SLUG;
- n.querySelector('circle').setAttribute('fill-opacity', isCurrent ? '1' : '0.55');
- });
- n.addEventListener('click', () => window.open('https://' + n.dataset.slug + '.com', '_blank'));
- });
-})();
-</script>
-
-<script>
-const state = { q:'', facet:'all', page:1, pages:1, total:0, loading:false, exhausted:false };
-const LABELS = {"all":"All"};
-
-function escAttr(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[c])); }
-// Image-URL allowlist: only DW Shopify CDN + designerwallcoverings.com (defends against XSS via crafted products.json)
-function safeImg(u) { return /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(u || '') ? u : '/hero-bg.jpg'; }
-function cardHTML(p) {
- const eager = state.page === 1;
- return '<img loading="' + (eager ? 'eager' : 'lazy') + '"' + (eager ? ' fetchpriority="high"' : '') + ' src="' + escAttr(safeImg(p.image_url)) + '" alt="' + escAttr(p.title) + '">'
- + '<div class="overlay">'
- + '<div class="pat">' + escAttr(p.pattern_name || p.title) + '</div>'
- + '<div class="ven">' + escAttr((p.vendor || '').replace(/-/g, ' ')) + '</div>'
- + '<div class="actions">'
- + '<button class="sample-btn" onclick="event.stopPropagation();dwmOpen(\'Sample\',' + JSON.stringify({sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}).replace(/"/g,'"') + ')">Sample</button>'
- + '</div></div>';
-}
-
-async function loadFacets() {
- let f;
- try {
- const r = await fetch('/api/facets');
- if (!r.ok) throw new Error('HTTP ' + r.status);
- f = await r.json();
- } catch (e) { console.error('loadFacets failed:', e); return; }
- const el = document.getElementById('facets');
- for (const [k, v] of Object.entries(f.aesthetics).sort((a,b) => b[1] - a[1])) {
- const b = document.createElement('button');
- b.className = 'chip'; b.dataset.facet = k;
- b.innerHTML = (LABELS[k] || k) + ' <span style="opacity:.55;font-weight:500;margin-left:4px">' + v + '</span>';
- el.appendChild(b);
- }
- el.addEventListener('click', e => {
- if (e.target.tagName !== 'BUTTON') return;
- document.querySelectorAll('#facets button').forEach(b => b.classList.remove('active'));
- e.target.classList.add('active');
- state.facet = e.target.dataset.facet;
- resetGrid();
- });
- document.getElementById('totalCount').textContent = f.total;
- document.getElementById('footerStat').textContent = f.total + ' patterns · live archive';
- // Footer aesthetic links
- const footerEl = document.getElementById('footerFacets');
- for (const [k] of Object.entries(f.aesthetics)) {
- const b = document.createElement('button');
- b.textContent = LABELS[k] || k;
- b.onclick = () => { state.facet = k; resetGrid(); document.querySelectorAll('#facets button').forEach(x => x.classList.toggle('active', x.dataset.facet === k)); document.getElementById('shop').scrollIntoView({behavior:'smooth'}); };
- footerEl.appendChild(b);
- }
-}
-
-function resetGrid() {
- state.page = 1; state.exhausted = false;
- document.getElementById('grid').innerHTML = '';
- document.getElementById('loading').textContent = 'Loading…';
- loadGridPage();
-}
-
-async function loadGridPage() {
- if (state.loading || state.exhausted) return;
- state.loading = true;
- const params = new URLSearchParams({ page:state.page, limit:24 });
- if (state.q) params.set('q', state.q);
- if (state.facet !== 'all') params.set('aesthetic', state.facet);
- let data;
- try {
- const r = await fetch('/api/products?' + params);
- if (!r.ok) throw new Error('HTTP ' + r.status);
- data = await r.json();
- } catch (e) {
- console.error('loadGridPage failed:', e);
- document.getElementById('loading').textContent = '— offline — refresh to retry —';
- state.loading = false;
- return;
- }
- state.total = data.total; state.pages = data.pages;
-
- if (state.page === 1) {
- document.getElementById('statLine').textContent = data.total + ' patterns · ' + (state.facet === 'all' ? 'all aesthetics' : (LABELS[state.facet] || state.facet)) + (state.q ? ' · matching "' + state.q + '"' : '');
- }
- const grid = document.getElementById('grid');
- for (const p of data.items) {
- const a = document.createElement('a');
- a.className = 'card'; a.href = '#'; a.onclick = (e) => { e.preventDefault(); dwmOpen('Sample',{sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}); };
- a.innerHTML = cardHTML(p);
- grid.appendChild(a);
- }
- if (state.page >= state.pages || data.items.length === 0) {
- state.exhausted = true;
- document.getElementById('loading').textContent = state.total > 0 ? '— end of archive · ' + state.total + ' patterns —' : '';
- } else state.page++;
- state.loading = false;
-}
-
-const io = new IntersectionObserver(es => { for (const e of es) if (e.isIntersecting) loadGridPage(); }, { rootMargin:'600px 0px' });
-io.observe(document.getElementById('sentinel'));
-
-document.getElementById('searchInput').addEventListener('input', e => {
- state.q = e.target.value.trim();
- clearTimeout(window._t);
- window._t = setTimeout(resetGrid, 220);
-});
-
-// Density slider
-const slider = document.getElementById('densitySlider');
-const dlabel = document.getElementById('densityLabel');
-function setDensity(n) {
- document.documentElement.style.setProperty('--cols', n);
- dlabel.textContent = n + ' cols';
- try { localStorage.setItem('arch_theme_density', n); } catch(e){}
-}
-slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
-const savedDensity = parseInt(localStorage.getItem('arch_theme_density') || '6');
-if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
-
-// Theme toggle
-const tb = document.getElementById('theme-toggle');
-function setTheme(t){ document.documentElement.dataset.theme = t; try { localStorage.setItem('arch_theme', t); } catch(e){} tb.textContent = t === 'dark' ? '☾' : '☀'; }
-setTheme(document.documentElement.dataset.theme || 'dark');
-tb.addEventListener('click', () => setTheme(document.documentElement.dataset.theme === 'dark' ? 'light' : 'dark'));
-
-loadFacets();
-loadGridPage();
-</script>
-<!-- ============================================================
- DW UNIVERSAL CONTACT MODULE — fashion-house UX
- Inject before </body> in every DW-family sister site.
- Self-contained: CSS + 4 modals + JS submission handlers.
- Uses host site's CSS vars (--bg, --fg, --gold, --rule).
- ============================================================ -->
-<style>
- /* === MODAL BASE === */
- .dwm{position:fixed;inset:0;background:rgba(0,0,0,0.78);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;overflow-y:auto}
- .dwm.open{display:flex}
- .dwm-box{background:var(--bg);border:1px solid var(--rule);max-width:520px;width:100%;padding:36px 32px;position:relative;max-height:90vh;overflow-y:auto;animation:dwm-in 0.25s ease}
- @keyframes dwm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
- .dwm-box h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;font-size:32px;line-height:1.05;margin-bottom:6px;color:var(--fg);letter-spacing:-0.01em}
- .dwm-box .sub{color:var(--muted);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
- .dwm-close{position:absolute;top:18px;right:18px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;width:32px;height:32px;line-height:1;padding:0}
- .dwm-close:hover{color:var(--gold)}
- .dwm-preview{display:flex;gap:14px;align-items:center;padding:12px;background:var(--bg-soft);margin-bottom:18px}
- .dwm-preview img{width:64px;height:64px;object-fit:cover}
- .dwm-preview .pn{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;line-height:1.2;color:var(--fg)}
- .dwm-preview .pc{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
- .dwm-field{margin-bottom:14px}
- .dwm-field label{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
- .dwm-field input,.dwm-field textarea,.dwm-field select{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:8px 4px;font-size:14px;font-family:inherit;color:var(--fg);outline:none;transition:border-color 0.2s}
- .dwm-field input:focus,.dwm-field textarea:focus{border-bottom-color:var(--gold)}
- .dwm-field textarea{min-height:60px;resize:vertical}
- .dwm-submit{background:var(--gold);color:#000;border:0;padding:14px 28px;font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:700;cursor:pointer;width:100%;margin-top:8px;transition:opacity 0.15s}
- .dwm-submit:hover{opacity:0.85}
- .dwm-submit:disabled{opacity:0.5;cursor:default}
- .dwm-status{margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;display:none}
- .dwm-status.ok{color:var(--sage);display:block}
- .dwm-status.err{color:#e08070;display:block}
- /* contact-options */
- .dwm-options{display:flex;flex-direction:column;gap:10px}
- .dwm-option{display:flex;align-items:center;gap:14px;padding:18px 20px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;transition:all 0.2s;text-align:left;width:100%}
- .dwm-option:hover{border-color:var(--gold);color:var(--gold)}
- .dwm-option svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}
- .dwm-option .lbl{flex:1;display:block}
- .dwm-option .val{display:block;font-size:10px;letter-spacing:0.14em;text-transform:none;font-weight:500;opacity:0.65;margin-top:4px}
-</style>
-
-<!-- Contact options modal -->
-<div class="dwm" id="dwmContact" onclick="if(event.target===this)dwmClose('Contact')">
- <div class="dwm-box" style="max-width:440px">
- <button class="dwm-close" onclick="dwmClose('Contact')" aria-label="Close">×</button>
- <h3>Contact</h3>
- <p class="sub" id="dwmContactSub">Three ways to reach us</p>
- <div class="dwm-options">
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Inquiry')">
- <svg viewBox="0 0 24 24"><path d="M4 4h16v12H7l-3 3z"/></svg>
- <span class="lbl">Send an Inquiry<span class="val">Project name · scope · all the details</span></span>
- </button>
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Sample')">
- <svg viewBox="0 0 24 24"><rect x="4" y="6" width="16" height="14"/><path d="M4 10h16M9 6V3h6v3"/></svg>
- <span class="lbl">Request a Sample<span class="val">Memo sample · ships free · 3–5 business days</span></span>
- </button>
- <a class="dwm-option" id="dwmContactEmailLink" href="mailto:info@{{DOMAIN}}">
- <svg viewBox="0 0 24 24"><path d="M3 6h18v12H3z"/><path d="M3 6l9 7 9-7"/></svg>
- <span class="lbl">Email Us<span class="val" id="dwmContactEmailLabel">info@{{DOMAIN}}</span></span>
- </a>
- </div>
- </div>
-</div>
-
-<!-- Inquiry modal -->
-<div class="dwm" id="dwmInquiry" onclick="if(event.target===this)dwmClose('Inquiry')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Inquiry')" aria-label="Close">×</button>
- <h3>Project Inquiry</h3>
- <p class="sub">We'll respond within one business day</p>
- <form id="dwmInquiryForm" onsubmit="return dwmSubmit(event,'inquiry')">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Phone</label><input type="tel" name="phone"></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Project Name</label><input type="text" name="projectName" required></div>
- <div class="dwm-field"><label>Project Scope</label><textarea name="projectScope" placeholder="Square footage · room count · timeline" required></textarea></div>
- <div class="dwm-field"><label>Additional Information</label><textarea name="message" placeholder="Patterns of interest, finish preferences, budget"></textarea></div>
- <button type="submit" class="dwm-submit">Send Inquiry</button>
- <div class="dwm-status" id="dwmInquiryStatus"></div>
- </form>
- </div>
-</div>
-
-<!-- Sample-request modal -->
-<div class="dwm" id="dwmSample" onclick="if(event.target===this)dwmClose('Sample')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Sample')" aria-label="Close">×</button>
- <h3>Request a Sample</h3>
- <p class="sub">Memo sample · ships free · 3–5 business days</p>
- <div class="dwm-preview" id="dwmSamplePreview" style="display:none">
- <img id="dwmSampleImg" src="" alt="">
- <div><div class="pn" id="dwmSampleName"></div><div class="pc" id="dwmSampleSku"></div></div>
- </div>
- <form id="dwmSampleForm" onsubmit="return dwmSubmit(event,'sample')">
- <input type="hidden" name="sku" id="dwmSampleSkuInput">
- <input type="hidden" name="title" id="dwmSampleTitleInput">
- <input type="hidden" name="image_url" id="dwmSampleImageInput">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Shipping Address</label><input type="text" name="address" placeholder="Street" required></div>
- <div class="dwm-field" style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px">
- <input type="text" name="city" placeholder="City" required>
- <input type="text" name="state" placeholder="State" required>
- <input type="text" name="zip" placeholder="ZIP" required>
- </div>
- <div class="dwm-field"><label>Notes (optional)</label><textarea name="message" placeholder="Project, sq.ft., timing"></textarea></div>
- <button type="submit" class="dwm-submit">Send Sample Request</button>
- <div class="dwm-status" id="dwmSampleStatus"></div>
- </form>
- </div>
-</div>
-
-<script>
- // Universal modal control
- function dwmOpen(name, opts){
- document.getElementById('dwm' + name).classList.add('open');
- document.body.style.overflow = 'hidden';
- if (name === 'Sample' && opts) {
- document.getElementById('dwmSamplePreview').style.display = 'flex';
- document.getElementById('dwmSampleImg').src = opts.image_url || '';
- document.getElementById('dwmSampleName').textContent = opts.title || '';
- document.getElementById('dwmSampleSku').textContent = opts.sku || '';
- document.getElementById('dwmSampleSkuInput').value = opts.sku || '';
- document.getElementById('dwmSampleTitleInput').value = opts.title || '';
- document.getElementById('dwmSampleImageInput').value = opts.image_url || '';
- } else if (name === 'Sample') {
- document.getElementById('dwmSamplePreview').style.display = 'none';
- document.getElementById('dwmSampleSkuInput').value = '';
- document.getElementById('dwmSampleTitleInput').value = '';
- document.getElementById('dwmSampleImageInput').value = '';
- }
- }
- function dwmClose(name){ document.getElementById('dwm'+name).classList.remove('open'); document.body.style.overflow=''; }
-
- // Universal form submit — POSTs to /api/send-{kind}
- async function dwmSubmit(e, kind) {
- e.preventDefault();
- const form = e.target;
- const data = Object.fromEntries(new FormData(form).entries());
- const btn = form.querySelector('.dwm-submit');
- const status = form.querySelector('.dwm-status');
- btn.disabled = true; const orig = btn.textContent; btn.textContent = 'Sending…';
- status.className = 'dwm-status';
- try {
- const r = await fetch('/api/send-' + kind, { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
- if (!r.ok) throw new Error('HTTP '+r.status);
- const j = await r.json();
- status.textContent = kind === 'sample' ? 'Sample request sent — ships within 3–5 business days' : 'Inquiry sent — we respond within 1 business day';
- status.className = 'dwm-status ok';
- btn.textContent = 'Sent ✓';
- setTimeout(() => { dwmClose(kind === 'sample' ? 'Sample' : 'Inquiry'); btn.disabled = false; btn.textContent = orig; status.className = 'dwm-status'; form.reset(); }, 2800);
- } catch (err) {
- status.textContent = 'Send failed — please email info@designerwallcoverings.com';
- status.className = 'dwm-status err';
- btn.disabled = false; btn.textContent = orig;
- }
- return false;
- }
-
- // Wire up "Memo samples ship free" badge in hero to open sample modal directly
- document.querySelectorAll('.hero .badge, [data-open-sample]').forEach(el => {
- el.style.cursor = 'pointer';
- el.addEventListener('click', () => dwmOpen('Sample'));
- });
-
- // Wire nav "Trade" link to inquiry modal
- document.querySelectorAll('nav a[href*="designerwallcoverings.com"]').forEach(a => {
- a.removeAttribute('target');
- a.removeAttribute('href');
- a.style.cursor = 'pointer';
- a.addEventListener('click', e => { e.preventDefault(); dwmOpen('Contact'); });
- });
-
- // Override product card clicks — open Sample modal pre-filled instead of redirecting to DW
- document.addEventListener('click', e => {
- const card = e.target.closest('.card, .rail-card');
- if (!card) return;
- if (card.tagName === 'A' && (card.getAttribute('href') || '').startsWith('/sample/')) {
- e.preventDefault();
- const img = card.querySelector('img');
- const pat = card.querySelector('.pat');
- const sku = card.getAttribute('href').replace('/sample/', '');
- dwmOpen('Sample', {
- sku,
- title: pat ? pat.textContent.trim() : '',
- image_url: img ? img.src : ''
- });
- }
- }, true);
-// DW STANDARD: hero pulls from products.json[0].image_url so dw-collections-viewer
-// drag-drop / hero-pin updates the live front page on next deploy.
-// Always upgrades to the largest Shopify variant (strips _NxN size suffix) so
-// the full-page hero stays sharp.
-(async function hydrateHero() {
- try {
- const r = await fetch('/api/products?limit=1');
- if (!r.ok) return;
- const d = await r.json();
- let url = d.items && d.items[0] && d.items[0].image_url;
- if (!url) return;
- if (/^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(url)) {
- url = url.replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- const bg = document.getElementById('heroBg');
- if (bg) bg.style.backgroundImage = "url('" + url + "')";
- }
- } catch(e){}
-})();
-
-
-// DW STANDARD sort-select wire-up (added by fleet patcher)
-(function(){
- const sortSel = document.getElementById('sortSelect');
- if (!sortSel) return;
- const KEY = location.hostname.replace(/\./g, '_') + '_sort';
- const saved = localStorage.getItem(KEY);
- if (saved) { try { sortSel.value = saved; } catch(e){} }
- if (typeof state !== 'undefined') state.sort = sortSel.value;
- sortSel.addEventListener('change', e => {
- const v = e.target.value;
- try { localStorage.setItem(KEY, v); } catch(e){}
- if (typeof state !== 'undefined') state.sort = v;
- if (typeof resetGrid === 'function') resetGrid();
- else location.reload();
- });
-})();
-</script>
-
-</body>
-</html>
diff --git a/public/index.html.bak.1778166279717 b/public/index.html.bak.1778166279717
deleted file mode 100644
index 12f7eea..0000000
--- a/public/index.html.bak.1778166279717
+++ /dev/null
@@ -1,654 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
-<meta charset="utf-8">
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>Studio Toten — architectural. Useful.</title>
-<meta name="description" content="Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.">
-<meta name="theme-color" content="#F5F2ED">
-<link rel="canonical" href="https://architecturalwallcoverings.com/">
-<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&display=swap" rel="stylesheet">
-<link rel="preload" as="image" href="/hero-bg.jpg" fetchpriority="high">
-<script type="application/ld+json">
-{
- "@context": "https://schema.org",
- "@type": "Organization",
- "name": "Studio Toten",
- "url": "https://architecturalwallcoverings.com/",
- "email": "info@architecturalwallcoverings.com"
-}
-</script>
-<script src="/zd-loader.js" defer></script>
-<style>
-:root {
- --bg: #F5F2ED;
- --paper: #1A1A1A;
- --muted: #8B7866;
- --line: #D5CFC4;
- --accent: #1A1A1A;
- --bg-soft: #D5CFC4;
- --cols: 6;
-}
-html[data-theme="dark"] {
- --bg: #1a1410;
- --paper: #F5F2ED;
- --muted: #C9B89E;
- --line: rgba(255,254,250,0.12);
- --accent: #1A1A1A;
- --bg-soft: #2a1f15;
-}
-* { margin:0; padding:0; box-sizing:border-box }
-html { scroll-behavior:smooth }
-body { font-family:'Inter', sans-serif; color:var(--paper); -webkit-font-smoothing:antialiased; background:var(--bg); min-height:100vh; overflow-x:hidden }
-/* DW-FASHION-TEMPLATE-OVERRIDE */
-.section-title .accent, .footer-brand, .center-mark, h1, h2, h3 { font-family:'Inter', Georgia, serif !important; font-weight:400 !important; }
-
-/* ===== Auto-hide header ===== */
-header { position:fixed; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 32px; z-index:100; background:rgba(0,0,0,0.55); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:transform .3s }
-.h-link { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); text-decoration:none; cursor:pointer; background:transparent; border:0 }
-.h-link:hover { opacity:0.7 }
-.h-icon { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }
-
-/* ===== Cinema hero ===== */
-.cinema { position:relative; height:100vh; width:100%; overflow:hidden }
-.cinema-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-image:url('/hero-bg.jpg') }
-.cinema-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.75) 100%) }
-.corner-mark { position:absolute; top:24px; left:32px; font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,0.55), 0 0 1px rgba(0,0,0,0.4); z-index:5 }
-.corner-mark::before { content:"◆ "; margin-right:6px }
-.center-mark { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-size:clamp(34px,5vw,72px); font-weight:300; letter-spacing:0.42em; text-transform:uppercase; text-align:center; color:#fff; z-index:5; mix-blend-mode:difference }
-.center-mark .tm { font-size:14px; vertical-align:super; opacity:0.7; margin-left:0.2em }
-.center-mark .sub { display:block; font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400; font-size:0.4em; letter-spacing:0.04em; text-transform:none; margin-top:14px; opacity:0.85 }
-.meta-line { position:absolute; bottom:32px; left:32px; font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:700; color:#fff; z-index:5; opacity:0.85 }
-.meta-line .num { font-size:12px; display:block; margin-top:4px; letter-spacing:0.05em }
-.enter { position:absolute; bottom:32px; right:32px; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:0.36em; text-transform:uppercase; font-weight:700; color:#fff; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #fff; transition:gap 0.25s; z-index:5 }
-.enter:hover { gap:22px }
-.enter svg { width:24px; height:12px }
-
-/* ===== Section ===== */
-.section { padding:96px 32px }
-.section-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--line) }
-.section-title { font-size:clamp(36px,5vw,64px); font-weight:300; letter-spacing:-0.02em; line-height:1 }
-.section-title .accent { color: var(--accent); font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400 }
-.section-eyebrow { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:16px }
-.section-meta { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--muted); text-align:right; line-height:1.6 }
-
-/* ===== Filter bar ===== */
-.filters { display:flex; gap:8px; align-items:center; margin-bottom:18px; flex-wrap:wrap }
-.chip { padding:8px 16px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); background:transparent; border:1px solid var(--line); cursor:pointer; transition:all 0.2s; font-family:inherit }
-.chip:hover { border-color:var(--paper) }
-.chip.active { background:var(--paper); color:var(--bg); border-color:var(--paper) }
-.search { flex:0 1 280px; margin-left:auto; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:6px 0 }
-.search input { flex:1; background:transparent; border:0; color:var(--paper); font-family:inherit; font-size:13px; outline:none; letter-spacing:0.04em }
-.search input::placeholder { color:var(--muted) }
-.search svg { width:16px; height:16px; stroke:var(--muted); fill:none; stroke-width:1.5 }
-
-/* ===== Grid-density slider ===== */
-.density { display:flex; align-items:center; gap:14px; padding:6px 0; margin-bottom:24px }
-.density label { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--muted) }
-.density input[type=range] { flex:1; max-width:240px; -webkit-appearance:none; appearance:none; height:1px; background:var(--line); outline:none }
-.density input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50% }
-.density input[type=range]::-moz-range-thumb { width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50%; border:0 }
-.density .ct { font-size:11px; color:var(--muted); letter-spacing:0.18em; text-transform:uppercase; font-weight:600; min-width:80px }
-
-/* ===== Stats line ===== */
-.stat-line { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:24px }
-
-/* ===== Product grid (novasuede pattern: flush grid + slide-up overlay) ===== */
-.grid { display:grid; grid-template-columns:repeat(var(--cols), 1fr); gap:0 }
-.card { position:relative; aspect-ratio:1/1.15; cursor:pointer; overflow:hidden; border:1px solid var(--bg); transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1); background:var(--bg-soft) }
-.card:hover { transform:scale(1.04); z-index:5 }
-.card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease }
-.card .overlay { position:absolute; left:0; right:0; bottom:0; padding:20px 16px 14px; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%); transform:translateY(48%); opacity:0.85; transition:transform 0.3s ease, opacity 0.3s ease }
-.card:hover .overlay { transform:translateY(0); opacity:1 }
-.card .pat { font-size:13px; font-weight:600; letter-spacing:0.02em; color:#fff; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
-.card .ven { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#fff; opacity:0.7; font-weight:500; margin-top:4px }
-.card .actions { margin-top:10px; display:flex; gap:6px }
-.card .sample-btn { flex:1; padding:7px 10px; background:#fff; color:#000; font-family:inherit; font-size:10px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; border:0; cursor:pointer; text-align:center; transition:all 0.2s }
-.card .sample-btn:hover { background:var(--accent); color:#fff }
-
-@media (max-width:1024px) { .grid { grid-template-columns:repeat(min(var(--cols), 4), 1fr) } }
-@media (max-width:720px) { .grid { grid-template-columns:repeat(2, 1fr) } .density { display:none } }
-
-.sentinel { height:1px }
-.loading { text-align:center; color:var(--muted); padding:32px; font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700 }
-
-/* ===== Footer ===== */
-footer { padding:64px 32px 32px; border-top:1px solid var(--line); margin-top:32px }
-.footer-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr; gap:48px; margin-bottom:48px }
-.footer-brand { font-size:24px; font-weight:300; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:12px }
-.footer-text { font-size:13px; line-height:1.6; color:var(--muted); max-width:380px }
-.footer-col h4 { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--paper); margin-bottom:18px }
-.footer-col a { display:block; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:8px; transition:color 0.2s; cursor:pointer; background:transparent; border:0; font-family:inherit; padding:0; text-align:left }
-.footer-col a:hover { color:var(--accent) }
-.footer-bottom { max-width:1400px; margin:0 auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted) }
-
-@media (max-width:720px) {
- .corner-mark, .meta-line, .enter { font-size:10px }
- .center-mark { font-size:30px; letter-spacing:0.32em }
- .section, footer { padding-left:20px; padding-right:20px }
- .footer-grid { grid-template-columns:1fr; gap:32px }
- .search { margin-left:0; flex:1 1 100% }
-}
-
-.theme-toggle { background:transparent; border:1px solid var(--line); width:32px; height:32px; cursor:pointer; color:var(--paper); display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; transition:all .15s; padding:0 }
-.theme-toggle:hover { border-color:var(--accent); color:var(--accent) }
-
-/* ===== WCAG 2.4.7 — keyboard focus indicators ===== */
-/* Strictly :focus-visible so mouse clicks do NOT show the ring */
-a:focus-visible,
-button:focus-visible,
-input:focus-visible,
-select:focus-visible,
-textarea:focus-visible,
-[tabindex]:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
-}
-</style>
-<script>
-(function(){ try { var t = localStorage.getItem('arch_theme') || 'light'; document.documentElement.dataset.theme = t; } catch(e){} })();
-</script>
-<link rel="preconnect" href="https://fonts.googleapis.com">
-<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&display=swap">
-</head>
-<body>
-
-<header>
- <button class="h-link" onclick="dwmOpen('Contact')" aria-label="Contact"><svg class="h-icon" viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/></svg><span>Contact</span></button>
- <button class="theme-toggle" id="theme-toggle" aria-label="Theme toggle">☾</button>
-</header>
-
-<section class="cinema">
- <div class="cinema-bg" id="heroBg"></div>
- <div class="corner-mark">Specifier-Grade</div>
- <div class="center-mark">ARCHITECTURAL<span class="tm">.</span><span class="sub">Spec. Build. Repeat.</span></div>
- <div class="meta-line">Architectural · Specifier · Class A · Contract<span class="num" id="heroNum"></span></div>
- <a class="enter" href="#shop">Enter <svg viewBox="0 0 24 12" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M0 6h22M16 1l6 5-6 5"/></svg></a>
-</section>
-
-<section class="section" id="shop">
- <div class="section-header">
- <div>
- <div class="section-eyebrow">The Collection</div>
- <h2 class="section-title"><span class="accent" id="totalCount">—</span> Patterns.</h2>
- </div>
- <div class="section-meta">Architectural · Specifier · Class A · Contract</div>
- </div>
-
- <div class="filters" id="facets">
- <button class="chip active" data-facet="all">All</button>
- </div>
-
- <div class="density">
- <label>Sort</label>
- <select id="sortSelect" aria-label="Sort products" style="background:transparent;color:inherit;border:1px solid var(--line,rgba(255,255,255,.2));font:inherit;font-size:11px;letter-spacing:.10em;text-transform:uppercase;padding:4px 8px;cursor:pointer;outline:none;margin-right:14px">
- <option value="newest">Newest</option>
- <option value="color">Color</option>
- <option value="style">Style</option>
- <option value="sku">SKU A→Z</option>
- <option value="title">Title A→Z</option>
- <option value="price-asc">Price ↑</option>
- <option value="price-desc">Price ↓</option>
- </select>
- <label>Grid</label>
- <input type="range" id="densitySlider" min="4" max="12" step="1" value="6" aria-label="Grid columns">
- <span class="ct" id="densityLabel">6 cols</span>
- <div class="search">
- <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-5.5-5.5"/></svg>
- <input type="text" id="searchInput" placeholder="Search by pattern, color…" autocomplete="off">
- </div>
- </div>
-
- <div class="stat-line" id="statLine">Loading…</div>
- <div class="grid" id="grid"></div>
- <div class="loading" id="loading">Loading more…</div>
- <div class="sentinel" id="sentinel"></div>
-</section>
-
-<footer>
- <div class="footer-grid">
- <div>
- <div class="footer-brand">ARCHITECTURAL</div>
- <p class="footer-text">Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.</p>
- <p class="footer-text" style="margin-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;color:var(--paper);opacity:0.7"><a href="/about" style="color:inherit;text-decoration:none;border-bottom:1px solid var(--accent)">About →</a></p>
- </div>
- <div class="footer-col">
- <h4>Aesthetic</h4>
- <div id="footerFacets"></div>
- </div>
- <div class="footer-col">
- <h4>Trade</h4>
- <button onclick="dwmOpen('Inquiry')">Project Inquiry</button>
- <button onclick="dwmOpen('Sample')">Request Sample</button>
- <button onclick="dwmOpen('Contact')">Contact</button>
- </div>
- </div>
- <div class="footer-bottom">
- <span>architecturalwallcoverings.com · Studio Toten</span>
- <span><a href="mailto:info@architecturalwallcoverings.com" style="color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px">info@architecturalwallcoverings.com</a></span>
- <span id="footerStat"></span>
- </div>
-</footer>
-
-<script>
-// mini-constellation — 43 niche-stars, current site highlighted in gold
-(function(){
- const SLUG = "architecturalwallcoverings";
- const NICHES = [
- ['silkwallpaper','Silk','mat'],['silkwallcoverings','Silk W/C','mat'],['linenwallpaper','Linen','mat'],
- ['jutewallpaper','Jute','mat'],['raffiawallcoverings','Raffia W/C','mat'],['raffiawalls','Raffia Walls','mat'],
- ['corkwallcovering','Cork','mat'],['fabricwallpaper','Fabric','mat'],['textilewallpaper','Textile','mat'],
- ['metallicwallpaper','Metallic','mat'],['silverleafwallpaper','Silver Leaf','mat'],['vinylwallpaper','Vinyl','mat'],
- ['micawallpaper','Mica','mat'],['madagascarwallpaper','Madagascar','mat'],['mylarwallpaper','Mylar','mat'],
- ['suedewallpaper','Suede','mat'],
- ['1800swallpaper','1800s','dec'],['1890swallpaper','1890s','dec'],['1900swallpaper','1900s','dec'],
- ['1920swallpaper','1920s','dec'],['1930swallpaper','1930s','dec'],['1940swallpaper','1940s','dec'],
- ['1950swallpaper','1950s','dec'],['1960swallpaper','1960s','dec'],['1970swallpaper','1970s','dec'],
- ['1980swallpaper','1980s','dec'],['retrowalls','Retro','dec'],['wallpapersback','W. Back','dec'],
- ['agedwallpaper','Aged','cra'],['handcraftedwallpaper','Handcrafted','cra'],['museumwallpaper','Museum','cra'],
- ['restorationwallpaper','Restoration','cra'],['pastelwallpaper','Pastel','cra'],['glitterwalls','Glitter','cra'],
- ['greenwallcoverings','Green','cra'],['naturalwallcoverings','Natural','cra'],['saloonwallpaper','Saloon','cra'],
- ['contractwallpaper','Contract','use'],['hotelwallcoverings','Hotel','use'],['hospitalitywallpaper','Hospitality','use'],
- ['healthcarewallpaper','Healthcare','use'],['restaurantwallpaper','Restaurant','use'],['architecturalwallcoverings','Architectural','use']
- ];
- const COLOR = { mat:'#c9b687', dec:'#b86a4a', cra:'#6b8e6f', use:'#4a6b8e' };
- const W = 1080, H = 200, BANDS = ['mat','dec','cra','use'];
- const groups = { mat:[], dec:[], cra:[], use:[] };
- for (const n of NICHES) groups[n[2]].push(n);
- const svg = document.getElementById('miniConst');
- if (!svg) return;
- const bandW = W / BANDS.length;
- let nodes = '';
- BANDS.forEach((band, bi) => {
- const list = groups[band];
- const cx = bi * bandW + bandW / 2;
- list.forEach((n, i) => {
- const t = list.length === 1 ? 0.5 : i / (list.length - 1);
- // deterministic jitter per slug
- let h = 0; for (let k = 0; k < n[0].length; k++) h = (h * 31 + n[0].charCodeAt(k)) | 0;
- const jx = ((h & 0xff) / 255 - 0.5) * (bandW * 0.5);
- const jy = (((h >> 8) & 0xff) / 255 - 0.5) * 6; // tightened from 14 → 6 to prevent same-band collisions (16 mat nodes / 144px = 9px spacing)
- const x = cx + jx, y = 28 + t * (H - 56) + jy;
- const isCurrent = n[0] === SLUG;
- const r = isCurrent ? 8 : 4;
- const op = isCurrent ? 1 : 0.55;
- nodes += `<g class="mc-node" data-slug="${n[0]}" data-label="${n[1]}" style="cursor:pointer">
- <circle cx="${x}" cy="${y}" r="${r}" fill="url(#dna-${band})" fill-opacity="${op}" stroke="${COLOR[band]}" stroke-opacity="${isCurrent?1:0.7}" stroke-width="${isCurrent?2:1}">
- <title>${n[1]} — ${n[0]}.com</title>
- </circle>
- ${isCurrent ? `<circle cx="${x}" cy="${y}" r="${r+5}" fill="none" stroke="${COLOR[band]}" stroke-opacity="0.4" stroke-width="1"><animate attributeName="r" values="${r+5};${r+12};${r+5}" dur="2.4s" repeatCount="indefinite"/><animate attributeName="stroke-opacity" values="0.4;0;0.4" dur="2.4s" repeatCount="indefinite"/></circle>` : ''}
- </g>`;
- });
- });
- // append nodes after defs
- svg.insertAdjacentHTML('beforeend', nodes);
- svg.querySelectorAll('.mc-node').forEach(n => {
- n.addEventListener('mouseenter', () => n.querySelector('circle').setAttribute('fill-opacity', '1'));
- n.addEventListener('mouseleave', e => {
- const isCurrent = n.dataset.slug === SLUG;
- n.querySelector('circle').setAttribute('fill-opacity', isCurrent ? '1' : '0.55');
- });
- n.addEventListener('click', () => window.open('https://' + n.dataset.slug + '.com', '_blank'));
- });
-})();
-</script>
-
-<script>
-const state = { q:'', facet:'all', page:1, pages:1, total:0, loading:false, exhausted:false };
-const LABELS = {"all":"All"};
-
-function escAttr(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[c])); }
-// Image-URL allowlist: only DW Shopify CDN + designerwallcoverings.com (defends against XSS via crafted products.json)
-function safeImg(u) { return /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(u || '') ? u : '/hero-bg.jpg'; }
-function cardHTML(p) {
- const eager = state.page === 1;
- return '<img loading="' + (eager ? 'eager' : 'lazy') + '"' + (eager ? ' fetchpriority="high"' : '') + ' src="' + escAttr(safeImg(p.image_url)) + '" alt="' + escAttr(p.title) + '">'
- + '<div class="overlay">'
- + '<div class="pat">' + escAttr(p.pattern_name || p.title) + '</div>'
- + '<div class="ven">' + escAttr((p.vendor || '').replace(/-/g, ' ')) + '</div>'
- + '<div class="actions">'
- + '<button class="sample-btn" onclick="event.stopPropagation();dwmOpen(\'Sample\',' + JSON.stringify({sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}).replace(/"/g,'"') + ')">Sample</button>'
- + '</div></div>';
-}
-
-async function loadFacets() {
- let f;
- try {
- const r = await fetch('/api/facets');
- if (!r.ok) throw new Error('HTTP ' + r.status);
- f = await r.json();
- } catch (e) { console.error('loadFacets failed:', e); return; }
- const el = document.getElementById('facets');
- for (const [k, v] of Object.entries(f.aesthetics).sort((a,b) => b[1] - a[1])) {
- const b = document.createElement('button');
- b.className = 'chip'; b.dataset.facet = k;
- b.innerHTML = (LABELS[k] || k) + ' <span style="opacity:.55;font-weight:500;margin-left:4px">' + v + '</span>';
- el.appendChild(b);
- }
- el.addEventListener('click', e => {
- if (e.target.tagName !== 'BUTTON') return;
- document.querySelectorAll('#facets button').forEach(b => b.classList.remove('active'));
- e.target.classList.add('active');
- state.facet = e.target.dataset.facet;
- resetGrid();
- });
- document.getElementById('totalCount').textContent = f.total;
- document.getElementById('footerStat').textContent = f.total + ' patterns · live archive';
- // Footer aesthetic links
- const footerEl = document.getElementById('footerFacets');
- for (const [k] of Object.entries(f.aesthetics)) {
- const b = document.createElement('button');
- b.textContent = LABELS[k] || k;
- b.onclick = () => { state.facet = k; resetGrid(); document.querySelectorAll('#facets button').forEach(x => x.classList.toggle('active', x.dataset.facet === k)); document.getElementById('shop').scrollIntoView({behavior:'smooth'}); };
- footerEl.appendChild(b);
- }
-}
-
-function resetGrid() {
- state.page = 1; state.exhausted = false;
- document.getElementById('grid').innerHTML = '';
- document.getElementById('loading').textContent = 'Loading…';
- loadGridPage();
-}
-
-async function loadGridPage() {
- if (state.loading || state.exhausted) return;
- state.loading = true;
- const params = new URLSearchParams({ page:state.page, limit:24 });
- if (state.q) params.set('q', state.q);
- if (state.facet !== 'all') params.set('aesthetic', state.facet);
- let data;
- try {
- const r = await fetch('/api/products?' + params);
- if (!r.ok) throw new Error('HTTP ' + r.status);
- data = await r.json();
- } catch (e) {
- console.error('loadGridPage failed:', e);
- document.getElementById('loading').textContent = '— offline — refresh to retry —';
- state.loading = false;
- return;
- }
- state.total = data.total; state.pages = data.pages;
-
- if (state.page === 1) {
- document.getElementById('statLine').textContent = data.total + ' patterns · ' + (state.facet === 'all' ? 'all aesthetics' : (LABELS[state.facet] || state.facet)) + (state.q ? ' · matching "' + state.q + '"' : '');
- }
- const grid = document.getElementById('grid');
- for (const p of data.items) {
- const a = document.createElement('a');
- a.className = 'card'; a.href = '#'; a.onclick = (e) => { e.preventDefault(); dwmOpen('Sample',{sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}); };
- a.innerHTML = cardHTML(p);
- grid.appendChild(a);
- }
- if (state.page >= state.pages || data.items.length === 0) {
- state.exhausted = true;
- document.getElementById('loading').textContent = state.total > 0 ? '— end of archive · ' + state.total + ' patterns —' : '';
- } else state.page++;
- state.loading = false;
-}
-
-const io = new IntersectionObserver(es => { for (const e of es) if (e.isIntersecting) loadGridPage(); }, { rootMargin:'600px 0px' });
-io.observe(document.getElementById('sentinel'));
-
-document.getElementById('searchInput').addEventListener('input', e => {
- state.q = e.target.value.trim();
- clearTimeout(window._t);
- window._t = setTimeout(resetGrid, 220);
-});
-
-// Density slider
-const slider = document.getElementById('densitySlider');
-const dlabel = document.getElementById('densityLabel');
-function setDensity(n) {
- document.documentElement.style.setProperty('--cols', n);
- dlabel.textContent = n + ' cols';
- try { localStorage.setItem('arch_theme_density', n); } catch(e){}
-}
-slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
-const savedDensity = parseInt(localStorage.getItem('arch_theme_density') || '6');
-if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
-
-// Theme toggle
-const tb = document.getElementById('theme-toggle');
-function setTheme(t){ document.documentElement.dataset.theme = t; try { localStorage.setItem('arch_theme', t); } catch(e){} tb.textContent = t === 'dark' ? '☾' : '☀'; }
-setTheme(document.documentElement.dataset.theme || 'light');
-tb.addEventListener('click', () => setTheme(document.documentElement.dataset.theme === 'dark' ? 'light' : 'dark'));
-
-loadFacets();
-loadGridPage();
-</script>
-<!-- ============================================================
- DW UNIVERSAL CONTACT MODULE — fashion-house UX
- Inject before </body> in every DW-family sister site.
- Self-contained: CSS + 4 modals + JS submission handlers.
- Uses host site's CSS vars (--bg, --fg, --gold, --rule).
- ============================================================ -->
-<style>
- /* === MODAL BASE === */
- .dwm{position:fixed;inset:0;background:rgba(0,0,0,0.78);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;overflow-y:auto}
- .dwm.open{display:flex}
- .dwm-box{background:var(--bg);border:1px solid var(--rule);max-width:520px;width:100%;padding:36px 32px;position:relative;max-height:90vh;overflow-y:auto;animation:dwm-in 0.25s ease}
- @keyframes dwm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
- .dwm-box h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;font-size:32px;line-height:1.05;margin-bottom:6px;color:var(--fg);letter-spacing:-0.01em}
- .dwm-box .sub{color:var(--muted);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
- .dwm-close{position:absolute;top:18px;right:18px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;width:32px;height:32px;line-height:1;padding:0}
- .dwm-close:hover{color:var(--gold)}
- .dwm-preview{display:flex;gap:14px;align-items:center;padding:12px;background:var(--bg-soft);margin-bottom:18px}
- .dwm-preview img{width:64px;height:64px;object-fit:cover}
- .dwm-preview .pn{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;line-height:1.2;color:var(--fg)}
- .dwm-preview .pc{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
- .dwm-field{margin-bottom:14px}
- .dwm-field label{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
- .dwm-field input,.dwm-field textarea,.dwm-field select{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:8px 4px;font-size:14px;font-family:inherit;color:var(--fg);outline:none;transition:border-color 0.2s}
- .dwm-field input:focus,.dwm-field textarea:focus{border-bottom-color:var(--gold)}
- .dwm-field textarea{min-height:60px;resize:vertical}
- .dwm-submit{background:var(--gold);color:#000;border:0;padding:14px 28px;font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:700;cursor:pointer;width:100%;margin-top:8px;transition:opacity 0.15s}
- .dwm-submit:hover{opacity:0.85}
- .dwm-submit:disabled{opacity:0.5;cursor:default}
- .dwm-status{margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;display:none}
- .dwm-status.ok{color:var(--sage);display:block}
- .dwm-status.err{color:#e08070;display:block}
- /* contact-options */
- .dwm-options{display:flex;flex-direction:column;gap:10px}
- .dwm-option{display:flex;align-items:center;gap:14px;padding:18px 20px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;transition:all 0.2s;text-align:left;width:100%}
- .dwm-option:hover{border-color:var(--gold);color:var(--gold)}
- .dwm-option svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}
- .dwm-option .lbl{flex:1;display:block}
- .dwm-option .val{display:block;font-size:10px;letter-spacing:0.14em;text-transform:none;font-weight:500;opacity:0.65;margin-top:4px}
-
-/* graphics-loop pass 5: serif hero typography + nav legibility */
-.cinema h1, h1.headline { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; letter-spacing: -0.01em }
-.h-link { font-size: 13px; letter-spacing: 0.06em }
-</style>
-
-<!-- Contact options modal -->
-<div class="dwm" id="dwmContact" onclick="if(event.target===this)dwmClose('Contact')">
- <div class="dwm-box" style="max-width:440px">
- <button class="dwm-close" onclick="dwmClose('Contact')" aria-label="Close">×</button>
- <h3>Contact</h3>
- <p class="sub" id="dwmContactSub">Three ways to reach us</p>
- <div class="dwm-options">
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Inquiry')">
- <svg viewBox="0 0 24 24"><path d="M4 4h16v12H7l-3 3z"/></svg>
- <span class="lbl">Send an Inquiry<span class="val">Project name · scope · all the details</span></span>
- </button>
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Sample')">
- <svg viewBox="0 0 24 24"><rect x="4" y="6" width="16" height="14"/><path d="M4 10h16M9 6V3h6v3"/></svg>
- <span class="lbl">Request a Sample<span class="val">Memo sample · ships free · 3–5 business days</span></span>
- </button>
- <a class="dwm-option" id="dwmContactEmailLink" href="mailto:info@{{DOMAIN}}">
- <svg viewBox="0 0 24 24"><path d="M3 6h18v12H3z"/><path d="M3 6l9 7 9-7"/></svg>
- <span class="lbl">Email Us<span class="val" id="dwmContactEmailLabel">info@{{DOMAIN}}</span></span>
- </a>
- </div>
- </div>
-</div>
-
-<!-- Inquiry modal -->
-<div class="dwm" id="dwmInquiry" onclick="if(event.target===this)dwmClose('Inquiry')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Inquiry')" aria-label="Close">×</button>
- <h3>Project Inquiry</h3>
- <p class="sub">We'll respond within one business day</p>
- <form id="dwmInquiryForm" onsubmit="return dwmSubmit(event,'inquiry')">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Phone</label><input type="tel" name="phone"></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Project Name</label><input type="text" name="projectName" required></div>
- <div class="dwm-field"><label>Project Scope</label><textarea name="projectScope" placeholder="Square footage · room count · timeline" required></textarea></div>
- <div class="dwm-field"><label>Additional Information</label><textarea name="message" placeholder="Patterns of interest, finish preferences, budget"></textarea></div>
- <button type="submit" class="dwm-submit">Send Inquiry</button>
- <div class="dwm-status" id="dwmInquiryStatus"></div>
- </form>
- </div>
-</div>
-
-<!-- Sample-request modal -->
-<div class="dwm" id="dwmSample" onclick="if(event.target===this)dwmClose('Sample')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Sample')" aria-label="Close">×</button>
- <h3>Request a Sample</h3>
- <p class="sub">Memo sample · ships free · 3–5 business days</p>
- <div class="dwm-preview" id="dwmSamplePreview" style="display:none">
- <img id="dwmSampleImg" src="" alt="">
- <div><div class="pn" id="dwmSampleName"></div><div class="pc" id="dwmSampleSku"></div></div>
- </div>
- <form id="dwmSampleForm" onsubmit="return dwmSubmit(event,'sample')">
- <input type="hidden" name="sku" id="dwmSampleSkuInput">
- <input type="hidden" name="title" id="dwmSampleTitleInput">
- <input type="hidden" name="image_url" id="dwmSampleImageInput">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Shipping Address</label><input type="text" name="address" placeholder="Street" required></div>
- <div class="dwm-field" style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px">
- <input type="text" name="city" placeholder="City" required>
- <input type="text" name="state" placeholder="State" required>
- <input type="text" name="zip" placeholder="ZIP" required>
- </div>
- <div class="dwm-field"><label>Notes (optional)</label><textarea name="message" placeholder="Project, sq.ft., timing"></textarea></div>
- <button type="submit" class="dwm-submit">Send Sample Request</button>
- <div class="dwm-status" id="dwmSampleStatus"></div>
- </form>
- </div>
-</div>
-
-<script>
- // Universal modal control
- function dwmOpen(name, opts){
- document.getElementById('dwm' + name).classList.add('open');
- document.body.style.overflow = 'hidden';
- if (name === 'Sample' && opts) {
- document.getElementById('dwmSamplePreview').style.display = 'flex';
- document.getElementById('dwmSampleImg').src = opts.image_url || '';
- document.getElementById('dwmSampleName').textContent = opts.title || '';
- document.getElementById('dwmSampleSku').textContent = opts.sku || '';
- document.getElementById('dwmSampleSkuInput').value = opts.sku || '';
- document.getElementById('dwmSampleTitleInput').value = opts.title || '';
- document.getElementById('dwmSampleImageInput').value = opts.image_url || '';
- } else if (name === 'Sample') {
- document.getElementById('dwmSamplePreview').style.display = 'none';
- document.getElementById('dwmSampleSkuInput').value = '';
- document.getElementById('dwmSampleTitleInput').value = '';
- document.getElementById('dwmSampleImageInput').value = '';
- }
- }
- function dwmClose(name){ document.getElementById('dwm'+name).classList.remove('open'); document.body.style.overflow=''; }
-
- // Universal form submit — POSTs to /api/send-{kind}
- async function dwmSubmit(e, kind) {
- e.preventDefault();
- const form = e.target;
- const data = Object.fromEntries(new FormData(form).entries());
- const btn = form.querySelector('.dwm-submit');
- const status = form.querySelector('.dwm-status');
- btn.disabled = true; const orig = btn.textContent; btn.textContent = 'Sending…';
- status.className = 'dwm-status';
- try {
- const r = await fetch('/api/send-' + kind, { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
- if (!r.ok) throw new Error('HTTP '+r.status);
- const j = await r.json();
- status.textContent = kind === 'sample' ? 'Sample request sent — ships within 3–5 business days' : 'Inquiry sent — we respond within 1 business day';
- status.className = 'dwm-status ok';
- btn.textContent = 'Sent ✓';
- setTimeout(() => { dwmClose(kind === 'sample' ? 'Sample' : 'Inquiry'); btn.disabled = false; btn.textContent = orig; status.className = 'dwm-status'; form.reset(); }, 2800);
- } catch (err) {
- status.textContent = 'Send failed — please email info@designerwallcoverings.com';
- status.className = 'dwm-status err';
- btn.disabled = false; btn.textContent = orig;
- }
- return false;
- }
-
- // Wire up "Memo samples ship free" badge in hero to open sample modal directly
- document.querySelectorAll('.hero .badge, [data-open-sample]').forEach(el => {
- el.style.cursor = 'pointer';
- el.addEventListener('click', () => dwmOpen('Sample'));
- });
-
- // Wire nav "Trade" link to inquiry modal
- document.querySelectorAll('nav a[href*="designerwallcoverings.com"]').forEach(a => {
- a.removeAttribute('target');
- a.removeAttribute('href');
- a.style.cursor = 'pointer';
- a.addEventListener('click', e => { e.preventDefault(); dwmOpen('Contact'); });
- });
-
- // Override product card clicks — open Sample modal pre-filled instead of redirecting to DW
- document.addEventListener('click', e => {
- const card = e.target.closest('.card, .rail-card');
- if (!card) return;
- if (card.tagName === 'A' && (card.getAttribute('href') || '').startsWith('/sample/')) {
- e.preventDefault();
- const img = card.querySelector('img');
- const pat = card.querySelector('.pat');
- const sku = card.getAttribute('href').replace('/sample/', '');
- dwmOpen('Sample', {
- sku,
- title: pat ? pat.textContent.trim() : '',
- image_url: img ? img.src : ''
- });
- }
- }, true);
-// DW STANDARD: hero pulls from products.json[0].image_url so dw-collections-viewer
-// drag-drop / hero-pin updates the live front page on next deploy.
-// Always upgrades to the largest Shopify variant (strips _NxN size suffix) so
-// the full-page hero stays sharp.
-(async function hydrateHero() {
- try {
- const r = await fetch('/api/products?limit=1');
- if (!r.ok) return;
- const d = await r.json();
- let url = d.items && d.items[0] && d.items[0].image_url;
- if (!url) return;
- if (/^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(url)) {
- url = url.replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- const bg = document.getElementById('heroBg');
- if (bg) bg.style.backgroundImage = "url('" + url + "')";
- }
- } catch(e){}
-})();
-
-
-// DW STANDARD sort-select wire-up (added by fleet patcher)
-(function(){
- const sortSel = document.getElementById('sortSelect');
- if (!sortSel) return;
- const KEY = location.hostname.replace(/\./g, '_') + '_sort';
- const saved = localStorage.getItem(KEY);
- if (saved) { try { sortSel.value = saved; } catch(e){} }
- if (typeof state !== 'undefined') state.sort = sortSel.value;
- sortSel.addEventListener('change', e => {
- const v = e.target.value;
- try { localStorage.setItem(KEY, v); } catch(e){}
- if (typeof state !== 'undefined') state.sort = v;
- if (typeof resetGrid === 'function') resetGrid();
- else location.reload();
- });
-})();
-</script>
-
-</body>
-</html>
diff --git a/public/index.html.bak.1778185356246 b/public/index.html.bak.1778185356246
deleted file mode 100644
index 95751c8..0000000
--- a/public/index.html.bak.1778185356246
+++ /dev/null
@@ -1,731 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
-<meta charset="utf-8">
-<!-- Google tag (gtag.js) -->
-<script async src="https://www.googletagmanager.com/gtag/js?id=G-PN839G9FD8"></script>
-<script>
- window.dataLayer = window.dataLayer || [];
- function gtag(){dataLayer.push(arguments);}
- gtag('js', new Date());
- gtag('config', 'G-PN839G9FD8');
-</script>
-
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>Architectural Wallcoverings</title>
-<meta name="description" content="Architectural Wallcoverings — Class A specifier-grade architectural wallcoverings.">
-<meta name="theme-color" content="#F5F2ED">
-<link rel="canonical" href="https://architecturalwallcoverings.com/">
-<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&display=swap" rel="stylesheet">
-<link rel="preload" as="image" href="/hero-bg.jpg" fetchpriority="high">
-<script type="application/ld+json">
-{
- "@context": "https://schema.org",
- "@type": "Organization",
- "name": "Studio Toten",
- "url": "https://architecturalwallcoverings.com/",
- "email": "info@architecturalwallcoverings.com"
-}
-</script>
-<script src="/zd-loader.js" defer></script>
-<style>
-:root {
- --bg: #F5F2ED;
- --paper: #1A1A1A;
- --muted: #8B7866;
- --line: #D5CFC4;
- --accent: #1A1A1A;
- --bg-soft: #D5CFC4;
- --cols: 6;
-}
-html[data-theme="dark"] {
- --bg: #1a1410;
- --paper: #F5F2ED;
- --muted: #C9B89E;
- --line: rgba(255,254,250,0.12);
- --accent: #1A1A1A;
- --bg-soft: #2a1f15;
-}
-* { margin:0; padding:0; box-sizing:border-box }
-html { scroll-behavior:smooth }
-body { font-family:'Inter', sans-serif; color:var(--paper); -webkit-font-smoothing:antialiased; background:var(--bg); min-height:100vh; overflow-x:hidden }
-/* DW-FASHION-TEMPLATE-OVERRIDE */
-.section-title .accent, .footer-brand, .center-mark, h1, h2, h3 { font-family:'Inter', Georgia, serif !important; font-weight:400 !important; }
-
-/* ===== Auto-hide header ===== */
-header { position:fixed; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 32px; z-index:100; background:rgba(0,0,0,0.55); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:transform .3s }
-.h-link { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); text-decoration:none; cursor:pointer; background:transparent; border:0 }
-.h-link:hover { opacity:0.7 }
-.h-icon { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }
-
-/* ===== Cinema hero ===== */
-.cinema { position:relative; height:100vh; width:100%; overflow:hidden }
-.cinema-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-image:url('/hero-bg.jpg') }
-.cinema-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.75) 100%) }
-.corner-mark { position:absolute; top:24px; left:32px; font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,0.55), 0 0 1px rgba(0,0,0,0.4); z-index:5 }
-.corner-mark::before { content:"◆ "; margin-right:6px }
-.center-mark { position:absolute; top:clamp(80px,12vh,140px); left:50%; transform:translateX(-50%); font-size:clamp(28px,4vw,56px); font-weight:500; letter-spacing:0.18em; text-transform:uppercase; text-align:center; color:#fff; text-shadow:0 2px 8px rgba(0,0,0,0.65), 0 0 1px rgba(0,0,0,0.5); z-index:5 }
-.center-mark .tm { font-size:14px; vertical-align:super; opacity:0.7; margin-left:0.2em }
-.center-mark .sub { display:block; font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400; font-size:0.4em; letter-spacing:0.04em; text-transform:none; margin-top:14px; opacity:0.85 }
-.meta-line { position:absolute; bottom:32px; left:32px; font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:700; color:#fff; z-index:5; opacity:0.85 }
-.meta-line .num { font-size:12px; display:block; margin-top:4px; letter-spacing:0.05em }
-.enter { position:absolute; bottom:32px; right:32px; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:0.36em; text-transform:uppercase; font-weight:700; color:#fff; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #fff; transition:gap 0.25s; z-index:5 }
-.enter:hover { gap:22px }
-.enter svg { width:24px; height:12px }
-
-/* ===== Section ===== */
-.section { padding:96px 32px }
-.section-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--line) }
-.section-title { font-size:clamp(36px,5vw,64px); font-weight:300; letter-spacing:-0.02em; line-height:1 }
-.section-title .accent { color: var(--accent); font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400 }
-.section-eyebrow { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:16px }
-.section-meta { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--muted); text-align:right; line-height:1.6 }
-
-/* ===== Filter bar ===== */
-.filters { display:flex; gap:8px; align-items:center; margin-bottom:18px; flex-wrap:wrap }
-.chip { padding:8px 16px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); background:transparent; border:1px solid var(--line); cursor:pointer; transition:all 0.2s; font-family:inherit }
-.chip:hover { border-color:var(--paper) }
-.chip.active { background:var(--paper); color:var(--bg); border-color:var(--paper) }
-.search { flex:0 1 280px; margin-left:auto; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:6px 0 }
-.search input { flex:1; background:transparent; border:0; color:var(--paper); font-family:inherit; font-size:13px; outline:none; letter-spacing:0.04em }
-.search input::placeholder { color:var(--muted) }
-.search svg { width:16px; height:16px; stroke:var(--muted); fill:none; stroke-width:1.5 }
-
-/* ===== Grid-density slider ===== */
-.density { display:flex; align-items:center; gap:14px; padding:6px 0; margin-bottom:24px }
-.density label { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--muted) }
-.density input[type=range] { flex:1; max-width:240px; -webkit-appearance:none; appearance:none; height:1px; background:var(--line); outline:none }
-.density input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50% }
-.density input[type=range]::-moz-range-thumb { width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50%; border:0 }
-.density .ct { font-size:11px; color:var(--muted); letter-spacing:0.18em; text-transform:uppercase; font-weight:600; min-width:80px }
-
-/* ===== Stats line ===== */
-.stat-line { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:24px }
-
-/* ===== Product grid (novasuede pattern: flush grid + slide-up overlay) ===== */
-.grid { display:grid; grid-template-columns:repeat(var(--cols), 1fr); gap:0 }
-.card { position:relative; aspect-ratio:1/1.15; cursor:pointer; overflow:hidden; border:1px solid var(--bg); transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1); background:var(--bg-soft) }
-.card:hover { transform:scale(1.04); z-index:5 }
-.card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease }
-.card .overlay { position:absolute; left:0; right:0; bottom:0; padding:20px 16px 14px; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%); transform:translateY(48%); opacity:0.85; transition:transform 0.3s ease, opacity 0.3s ease }
-.card:hover .overlay { transform:translateY(0); opacity:1 }
-.card .pat { font-size:13px; font-weight:600; letter-spacing:0.02em; color:#fff; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
-.card .ven { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#fff; opacity:0.7; font-weight:500; margin-top:4px }
-.card .actions { margin-top:10px; display:flex; gap:6px }
-.card .sample-btn { flex:1; padding:7px 10px; background:#fff; color:#000; font-family:inherit; font-size:10px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; border:0; cursor:pointer; text-align:center; transition:all 0.2s }
-.card .sample-btn:hover { background:var(--accent); color:#fff }
-
-@media (max-width:1024px) { .grid { grid-template-columns:repeat(min(var(--cols), 4), 1fr) } }
-@media (max-width:720px) { .grid { grid-template-columns:repeat(2, 1fr) } .density { display:none } }
-
-.sentinel { height:1px }
-.loading { text-align:center; color:var(--muted); padding:32px; font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700 }
-
-/* ===== Footer ===== */
-footer { padding:64px 32px 32px; border-top:1px solid var(--line); margin-top:32px }
-.footer-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr; gap:48px; margin-bottom:48px }
-.footer-brand { font-size:24px; font-weight:300; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:12px }
-.footer-text { font-size:13px; line-height:1.6; color:var(--muted); max-width:380px }
-.footer-col h4 { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--paper); margin-bottom:18px }
-.footer-col a { display:block; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:8px; transition:color 0.2s; cursor:pointer; background:transparent; border:0; font-family:inherit; padding:0; text-align:left }
-.footer-col a:hover { color:var(--accent) }
-.footer-bottom { max-width:1400px; margin:0 auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted) }
-
-@media (max-width:720px) {
- .corner-mark, .meta-line, .enter { font-size:10px }
- .center-mark { font-size:24px; letter-spacing:0.12em; top:clamp(60px,9vh,90px) }
- .section, footer { padding-left:20px; padding-right:20px }
- .footer-grid { grid-template-columns:1fr; gap:32px }
- .search { margin-left:0; flex:1 1 100% }
-}
-
-.theme-toggle { background:transparent; border:1px solid var(--line); width:32px; height:32px; cursor:pointer; color:var(--paper); display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; transition:all .15s; padding:0 }
-.theme-toggle:hover { border-color:var(--accent); color:var(--accent) }
-
-/* ===== WCAG 2.4.7 — keyboard focus indicators ===== */
-/* Strictly :focus-visible so mouse clicks do NOT show the ring */
-a:focus-visible,
-button:focus-visible,
-input:focus-visible,
-select:focus-visible,
-textarea:focus-visible,
-[tabindex]:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
-}
-</style>
-<script>
-(function(){ try { var t = localStorage.getItem('arch_theme') || 'light'; document.documentElement.dataset.theme = t; } catch(e){} })();
-</script>
-<link rel="preconnect" href="https://fonts.googleapis.com">
-<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap">
-</head>
-<body>
-
-<header>
- <button class="h-link" onclick="dwmOpen('Contact')" aria-label="Contact"><svg class="h-icon" viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/></svg><span>Contact</span></button>
- <button class="theme-toggle" id="theme-toggle" aria-label="Theme toggle">☾</button>
-</header>
-
-<section class="cinema">
- <div class="cinema-bg" id="heroBg"></div>
- <div class="corner-mark">Specifier-Grade</div>
- <div class="center-mark">Architectural Wallcoverings</div>
- <div class="meta-line">Architectural · Specifier · Class A · Contract<span class="num" id="heroNum"></span></div>
- <a class="enter" href="#shop">Enter <svg viewBox="0 0 24 12" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M0 6h22M16 1l6 5-6 5"/></svg></a>
-</section>
-
-
-<section class="section" id="ideas">
- <div class="rail-block">
- <div class="rail-eyebrow">Ideas</div>
- <h2 class="rail-title">New this week</h2>
- <div class="rail" id="railNewest"></div>
- </div>
- <div class="rail-block">
- <div class="rail-eyebrow">Ideas</div>
- <h2 class="rail-title">Curated picks</h2>
- <div class="rail" id="railCurated"></div>
- </div>
-</section>
-
-<section class="section" id="shop">
- <div class="section-header">
- <div>
- <div class="section-eyebrow">The Collection</div>
- <h2 class="section-title"><span class="accent" id="totalCount">—</span> Patterns.</h2>
- </div>
- <div class="section-meta">Architectural · Specifier · Class A · Contract</div>
- </div>
-
- <div class="filters" id="facets">
- <button class="chip active" data-facet="all">All</button>
- </div>
-
- <div class="density">
- <label>Sort</label>
- <select id="sortSelect" aria-label="Sort products" style="background:transparent;color:inherit;border:1px solid var(--line,rgba(255,255,255,.2));font:inherit;font-size:11px;letter-spacing:.10em;text-transform:uppercase;padding:4px 8px;cursor:pointer;outline:none;margin-right:14px">
- <option value="newest">Newest</option>
- <option value="color">Color</option>
- <option value="style">Style</option>
- <option value="sku">SKU A→Z</option>
- <option value="title">Title A→Z</option>
- <option value="price-asc">Price ↑</option>
- <option value="price-desc">Price ↓</option>
- </select>
- <label>Grid</label>
- <input type="range" id="densitySlider" min="4" max="12" step="1" value="6" aria-label="Grid columns">
- <span class="ct" id="densityLabel">6 cols</span>
- <div class="search">
- <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-5.5-5.5"/></svg>
- <input type="text" id="searchInput" placeholder="Search by pattern, color…" autocomplete="off">
- </div>
- </div>
-
- <div class="stat-line" id="statLine">Loading…</div>
- <div class="grid" id="grid"></div>
- <div class="loading" id="loading">Loading more…</div>
- <div class="sentinel" id="sentinel"></div>
-</section>
-
-<footer>
- <div class="footer-grid">
- <div>
- <div class="footer-brand">ARCHITECTURAL</div>
- <p class="footer-text">Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.</p>
- <p class="footer-text" style="margin-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;color:var(--paper);opacity:0.7"><a href="/about" style="color:inherit;text-decoration:none;border-bottom:1px solid var(--accent)">About →</a></p>
- </div>
- <div class="footer-col">
- <h4>Aesthetic</h4>
- <div id="footerFacets"></div>
- </div>
- <div class="footer-col">
- <h4>Trade</h4>
- <button onclick="dwmOpen('Inquiry')">Project Inquiry</button>
- <button onclick="dwmOpen('Sample')">Request Sample</button>
- <button onclick="dwmOpen('Contact')">Contact</button>
- </div>
- </div>
- <div class="footer-bottom">
- <span>architecturalwallcoverings.com · Studio Toten</span>
- <span><a href="mailto:info@architecturalwallcoverings.com" style="color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px">info@architecturalwallcoverings.com</a></span>
- <span id="footerStat"></span>
- </div>
-</footer>
-
-<script>
-// mini-constellation — 43 niche-stars, current site highlighted in gold
-(function(){
- const SLUG = "architecturalwallcoverings";
- const NICHES = [
- ['silkwallpaper','Silk','mat'],['silkwallcoverings','Silk W/C','mat'],['linenwallpaper','Linen','mat'],
- ['jutewallpaper','Jute','mat'],['raffiawallcoverings','Raffia W/C','mat'],['raffiawalls','Raffia Walls','mat'],
- ['corkwallcovering','Cork','mat'],['fabricwallpaper','Fabric','mat'],['textilewallpaper','Textile','mat'],
- ['metallicwallpaper','Metallic','mat'],['silverleafwallpaper','Silver Leaf','mat'],['vinylwallpaper','Vinyl','mat'],
- ['micawallpaper','Mica','mat'],['madagascarwallpaper','Madagascar','mat'],['mylarwallpaper','Mylar','mat'],
- ['suedewallpaper','Suede','mat'],
- ['1800swallpaper','1800s','dec'],['1890swallpaper','1890s','dec'],['1900swallpaper','1900s','dec'],
- ['1920swallpaper','1920s','dec'],['1930swallpaper','1930s','dec'],['1940swallpaper','1940s','dec'],
- ['1950swallpaper','1950s','dec'],['1960swallpaper','1960s','dec'],['1970swallpaper','1970s','dec'],
- ['1980swallpaper','1980s','dec'],['retrowalls','Retro','dec'],['wallpapersback','W. Back','dec'],
- ['agedwallpaper','Aged','cra'],['handcraftedwallpaper','Handcrafted','cra'],['museumwallpaper','Museum','cra'],
- ['restorationwallpaper','Restoration','cra'],['pastelwallpaper','Pastel','cra'],['glitterwalls','Glitter','cra'],
- ['greenwallcoverings','Green','cra'],['naturalwallcoverings','Natural','cra'],['saloonwallpaper','Saloon','cra'],
- ['contractwallpaper','Contract','use'],['hotelwallcoverings','Hotel','use'],['hospitalitywallpaper','Hospitality','use'],
- ['healthcarewallpaper','Healthcare','use'],['restaurantwallpaper','Restaurant','use'],['architecturalwallcoverings','Architectural','use']
- ];
- const COLOR = { mat:'#c9b687', dec:'#b86a4a', cra:'#6b8e6f', use:'#4a6b8e' };
- const W = 1080, H = 200, BANDS = ['mat','dec','cra','use'];
- const groups = { mat:[], dec:[], cra:[], use:[] };
- for (const n of NICHES) groups[n[2]].push(n);
- const svg = document.getElementById('miniConst');
- if (!svg) return;
- const bandW = W / BANDS.length;
- let nodes = '';
- BANDS.forEach((band, bi) => {
- const list = groups[band];
- const cx = bi * bandW + bandW / 2;
- list.forEach((n, i) => {
- const t = list.length === 1 ? 0.5 : i / (list.length - 1);
- // deterministic jitter per slug
- let h = 0; for (let k = 0; k < n[0].length; k++) h = (h * 31 + n[0].charCodeAt(k)) | 0;
- const jx = ((h & 0xff) / 255 - 0.5) * (bandW * 0.5);
- const jy = (((h >> 8) & 0xff) / 255 - 0.5) * 6; // tightened from 14 → 6 to prevent same-band collisions (16 mat nodes / 144px = 9px spacing)
- const x = cx + jx, y = 28 + t * (H - 56) + jy;
- const isCurrent = n[0] === SLUG;
- const r = isCurrent ? 8 : 4;
- const op = isCurrent ? 1 : 0.55;
- nodes += `<g class="mc-node" data-slug="${n[0]}" data-label="${n[1]}" style="cursor:pointer">
- <circle cx="${x}" cy="${y}" r="${r}" fill="url(#dna-${band})" fill-opacity="${op}" stroke="${COLOR[band]}" stroke-opacity="${isCurrent?1:0.7}" stroke-width="${isCurrent?2:1}">
- <title>${n[1]} — ${n[0]}.com</title>
- </circle>
- ${isCurrent ? `<circle cx="${x}" cy="${y}" r="${r+5}" fill="none" stroke="${COLOR[band]}" stroke-opacity="0.4" stroke-width="1"><animate attributeName="r" values="${r+5};${r+12};${r+5}" dur="2.4s" repeatCount="indefinite"/><animate attributeName="stroke-opacity" values="0.4;0;0.4" dur="2.4s" repeatCount="indefinite"/></circle>` : ''}
- </g>`;
- });
- });
- // append nodes after defs
- svg.insertAdjacentHTML('beforeend', nodes);
- svg.querySelectorAll('.mc-node').forEach(n => {
- n.addEventListener('mouseenter', () => n.querySelector('circle').setAttribute('fill-opacity', '1'));
- n.addEventListener('mouseleave', e => {
- const isCurrent = n.dataset.slug === SLUG;
- n.querySelector('circle').setAttribute('fill-opacity', isCurrent ? '1' : '0.55');
- });
- n.addEventListener('click', () => window.open('https://' + n.dataset.slug + '.com', '_blank'));
- });
-})();
-</script>
-
-<script>
-const state = { q:'', facet:'all', page:1, pages:1, total:0, loading:false, exhausted:false };
-const LABELS = {"all":"All"};
-
-function escAttr(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[c])); }
-// Image-URL allowlist: only DW Shopify CDN + designerwallcoverings.com (defends against XSS via crafted products.json)
-function safeImg(u) { return /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(u || '') ? u : '/hero-bg.jpg'; }
-function cardHTML(p) {
- const eager = state.page === 1;
- return '<img loading="' + (eager ? 'eager' : 'lazy') + '"' + (eager ? ' fetchpriority="high"' : '') + ' src="' + escAttr(safeImg(p.image_url)) + '" alt="' + escAttr(p.title) + '">'
- + '<div class="overlay">'
- + '<div class="pat">' + escAttr(p.pattern_name || p.title) + '</div>'
- + '<div class="ven">' + escAttr((p.vendor || '').replace(/-/g, ' ')) + '</div>'
- + '<div class="actions">'
- + '<button class="sample-btn" onclick="event.stopPropagation();dwmOpen(\'Sample\',' + JSON.stringify({sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}).replace(/"/g,'"') + ')">Sample</button>'
- + '</div></div>';
-}
-
-async function loadFacets() {
- let f;
- try {
- const r = await fetch('/api/facets');
- if (!r.ok) throw new Error('HTTP ' + r.status);
- f = await r.json();
- } catch (e) { console.error('loadFacets failed:', e); return; }
- const el = document.getElementById('facets');
- for (const [k, v] of Object.entries(f.aesthetics).sort((a,b) => b[1] - a[1])) {
- const b = document.createElement('button');
- b.className = 'chip'; b.dataset.facet = k;
- b.innerHTML = (LABELS[k] || k) + ' <span style="opacity:.55;font-weight:500;margin-left:4px">' + v + '</span>';
- el.appendChild(b);
- }
- el.addEventListener('click', e => {
- if (e.target.tagName !== 'BUTTON') return;
- document.querySelectorAll('#facets button').forEach(b => b.classList.remove('active'));
- e.target.classList.add('active');
- state.facet = e.target.dataset.facet;
- resetGrid();
- });
- document.getElementById('totalCount').textContent = f.total;
- document.getElementById('footerStat').textContent = f.total + ' patterns · live archive';
- // Footer aesthetic links
- const footerEl = document.getElementById('footerFacets');
- for (const [k] of Object.entries(f.aesthetics)) {
- const b = document.createElement('button');
- b.textContent = LABELS[k] || k;
- b.onclick = () => { state.facet = k; resetGrid(); document.querySelectorAll('#facets button').forEach(x => x.classList.toggle('active', x.dataset.facet === k)); document.getElementById('shop').scrollIntoView({behavior:'smooth'}); };
- footerEl.appendChild(b);
- }
-}
-
-function resetGrid() {
- state.page = 1; state.exhausted = false;
- document.getElementById('grid').innerHTML = '';
- document.getElementById('loading').textContent = 'Loading…';
- loadGridPage();
-}
-
-async function loadGridPage() {
- if (state.loading || state.exhausted) return;
- state.loading = true;
- const params = new URLSearchParams({ page:state.page, limit:24 });
- if (state.q) params.set('q', state.q);
- if (state.facet !== 'all') params.set('aesthetic', state.facet);
- let data;
- try {
- const r = await fetch('/api/products?' + params);
- if (!r.ok) throw new Error('HTTP ' + r.status);
- data = await r.json();
- } catch (e) {
- console.error('loadGridPage failed:', e);
- document.getElementById('loading').textContent = '— offline — refresh to retry —';
- state.loading = false;
- return;
- }
- state.total = data.total; state.pages = data.pages;
-
- if (state.page === 1) {
- document.getElementById('statLine').textContent = data.total + ' patterns · ' + (state.facet === 'all' ? 'all aesthetics' : (LABELS[state.facet] || state.facet)) + (state.q ? ' · matching "' + state.q + '"' : '');
- }
- const grid = document.getElementById('grid');
- for (const p of data.items) {
- const a = document.createElement('a');
- a.className = 'card'; a.href = '#'; a.onclick = (e) => { e.preventDefault(); dwmOpen('Sample',{sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}); };
- a.innerHTML = cardHTML(p);
- grid.appendChild(a);
- }
- if (state.page >= state.pages || data.items.length === 0) {
- state.exhausted = true;
- document.getElementById('loading').textContent = state.total > 0 ? '— end of archive · ' + state.total + ' patterns —' : '';
- } else state.page++;
- state.loading = false;
-}
-
-const io = new IntersectionObserver(es => { for (const e of es) if (e.isIntersecting) loadGridPage(); }, { rootMargin:'600px 0px' });
-io.observe(document.getElementById('sentinel'));
-
-document.getElementById('searchInput').addEventListener('input', e => {
- state.q = e.target.value.trim();
- clearTimeout(window._t);
- window._t = setTimeout(resetGrid, 220);
-});
-
-// Density slider
-const slider = document.getElementById('densitySlider');
-const dlabel = document.getElementById('densityLabel');
-function setDensity(n) {
- document.documentElement.style.setProperty('--cols', n);
- dlabel.textContent = n + ' cols';
- try { localStorage.setItem('arch_theme_density', n); } catch(e){}
-}
-slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
-const savedDensity = parseInt(localStorage.getItem('arch_theme_density') || '6');
-if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
-
-// Theme toggle
-const tb = document.getElementById('theme-toggle');
-function setTheme(t){ document.documentElement.dataset.theme = t; try { localStorage.setItem('arch_theme', t); } catch(e){} tb.textContent = t === 'dark' ? '☾' : '☀'; }
-setTheme(document.documentElement.dataset.theme || 'light');
-tb.addEventListener('click', () => setTheme(document.documentElement.dataset.theme === 'dark' ? 'light' : 'dark'));
-
-loadFacets();
-loadGridPage();
-</script>
-<!-- ============================================================
- DW UNIVERSAL CONTACT MODULE — fashion-house UX
- Inject before </body> in every DW-family sister site.
- Self-contained: CSS + 4 modals + JS submission handlers.
- Uses host site's CSS vars (--bg, --fg, --gold, --rule).
- ============================================================ -->
-<style>
- /* === MODAL BASE === */
- .dwm{position:fixed;inset:0;background:rgba(0,0,0,0.78);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;overflow-y:auto}
- .dwm.open{display:flex}
- .dwm-box{background:var(--bg);border:1px solid var(--rule);max-width:520px;width:100%;padding:36px 32px;position:relative;max-height:90vh;overflow-y:auto;animation:dwm-in 0.25s ease}
- @keyframes dwm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
- .dwm-box h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;font-size:32px;line-height:1.05;margin-bottom:6px;color:var(--fg);letter-spacing:-0.01em}
- .dwm-box .sub{color:var(--muted);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
- .dwm-close{position:absolute;top:18px;right:18px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;width:32px;height:32px;line-height:1;padding:0}
- .dwm-close:hover{color:var(--gold)}
- .dwm-preview{display:flex;gap:14px;align-items:center;padding:12px;background:var(--bg-soft);margin-bottom:18px}
- .dwm-preview img{width:64px;height:64px;object-fit:cover}
- .dwm-preview .pn{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;line-height:1.2;color:var(--fg)}
- .dwm-preview .pc{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
- .dwm-field{margin-bottom:14px}
- .dwm-field label{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
- .dwm-field input,.dwm-field textarea,.dwm-field select{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:8px 4px;font-size:14px;font-family:inherit;color:var(--fg);outline:none;transition:border-color 0.2s}
- .dwm-field input:focus,.dwm-field textarea:focus{border-bottom-color:var(--gold)}
- .dwm-field textarea{min-height:60px;resize:vertical}
- .dwm-submit{background:transparent;color:var(--muted, #c9b89e);border:1px solid var(--muted, #c9b89e);padding:14px 28px;font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:700;cursor:pointer;width:100%;margin-top:8px;transition:background 0.15s, color 0.15s}
- .dwm-submit:hover{background:var(--muted, #c9b89e);color:var(--bg, #000)}
-
- .dwm-submit:disabled{opacity:0.5;cursor:default}
- .dwm-status{margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;display:none}
- .dwm-status.ok{color:var(--sage);display:block}
- .dwm-status.err{color:#e08070;display:block}
- /* contact-options */
- .dwm-options{display:flex;flex-direction:column;gap:10px}
- .dwm-option{display:flex;align-items:center;gap:14px;padding:18px 20px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;transition:all 0.2s;text-align:left;width:100%}
- .dwm-option:hover{border-color:var(--gold);color:var(--gold)}
- .dwm-option svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}
- .dwm-option .lbl{flex:1;display:block}
- .dwm-option .val{display:block;font-size:10px;letter-spacing:0.14em;text-transform:none;font-weight:500;opacity:0.65;margin-top:4px}
-
-/* graphics-loop pass 5: serif hero typography + nav legibility */
-.cinema h1, h1.headline { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; letter-spacing: -0.01em }
-.h-link { font-size: 13px; letter-spacing: 0.06em }
-
-/* graphics-loop pass 11: Ideas rails */
-#ideas { padding: 56px 24px 24px; max-width:1600px; margin:0 auto }
-#ideas .rail-block { margin-bottom:48px }
-#ideas .rail-eyebrow { font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:var(--muted, #888); margin-bottom:8px }
-#ideas .rail-title { font-size:clamp(22px,2.6vw,32px); font-weight:500; letter-spacing:-0.01em; margin:0 0 18px; color:var(--ink,#fff) }
-#ideas .rail { display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:8px; scrollbar-width:none }
-#ideas .rail::-webkit-scrollbar { display:none }
-#ideas .rail-card { flex:0 0 240px; scroll-snap-align:start; cursor:pointer; transition:transform 0.2s }
-#ideas .rail-card:hover { transform:translateY(-3px) }
-#ideas .rail-card img { width:100%; aspect-ratio:1; object-fit:cover; display:block; background:var(--card,#222) }
-#ideas .rail-card .rc-title { font-size:13px; font-weight:500; color:var(--paper,#fff); padding:8px 0 2px; line-height:1.3 }
-#ideas .rail-card .rc-meta { font-size:11px; color:var(--muted,#888); letter-spacing:0.06em }
-@media (max-width:720px) { #ideas .rail-card { flex:0 0 160px } }
-</style>
-
-<!-- Contact options modal -->
-<div class="dwm" id="dwmContact" onclick="if(event.target===this)dwmClose('Contact')">
- <div class="dwm-box" style="max-width:440px">
- <button class="dwm-close" onclick="dwmClose('Contact')" aria-label="Close">×</button>
- <h3>Contact</h3>
- <p class="sub" id="dwmContactSub">Three ways to reach us</p>
- <div class="dwm-options">
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Inquiry')">
- <svg viewBox="0 0 24 24"><path d="M4 4h16v12H7l-3 3z"/></svg>
- <span class="lbl">Send an Inquiry<span class="val">Project name · scope · all the details</span></span>
- </button>
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Sample')">
- <svg viewBox="0 0 24 24"><rect x="4" y="6" width="16" height="14"/><path d="M4 10h16M9 6V3h6v3"/></svg>
- <span class="lbl">Request a Sample<span class="val">Memo sample · ships free · 3–5 business days</span></span>
- </button>
- <a class="dwm-option" id="dwmContactEmailLink" href="mailto:info@architecturalwallcoverings.com">
- <svg viewBox="0 0 24 24"><path d="M3 6h18v12H3z"/><path d="M3 6l9 7 9-7"/></svg>
- <span class="lbl">Email Us<span class="val" id="dwmContactEmailLabel">info@architecturalwallcoverings.com</span></span>
- </a>
- </div>
- </div>
-</div>
-
-<!-- Inquiry modal -->
-<div class="dwm" id="dwmInquiry" onclick="if(event.target===this)dwmClose('Inquiry')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Inquiry')" aria-label="Close">×</button>
- <h3>Project Inquiry</h3>
- <p class="sub">We'll respond within one business day</p>
- <form id="dwmInquiryForm" onsubmit="return dwmSubmit(event,'inquiry')">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Phone</label><input type="tel" name="phone"></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Project Name</label><input type="text" name="projectName" required></div>
- <div class="dwm-field"><label>Project Scope</label><textarea name="projectScope" placeholder="Square footage · room count · timeline" required></textarea></div>
- <div class="dwm-field"><label>Additional Information</label><textarea name="message" placeholder="Patterns of interest, finish preferences, budget"></textarea></div>
- <button type="submit" class="dwm-submit">Send Inquiry</button>
- <div class="dwm-status" id="dwmInquiryStatus"></div>
- </form>
- </div>
-</div>
-
-<!-- Sample-request modal -->
-<div class="dwm" id="dwmSample" onclick="if(event.target===this)dwmClose('Sample')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Sample')" aria-label="Close">×</button>
- <h3>Request a Sample</h3>
- <p class="sub">Memo sample · ships free · 3–5 business days</p>
- <div class="dwm-preview" id="dwmSamplePreview" style="display:none">
- <img id="dwmSampleImg" src="" alt="">
- <div><div class="pn" id="dwmSampleName"></div><div class="pc" id="dwmSampleSku"></div></div>
- </div>
- <form id="dwmSampleForm" onsubmit="return dwmSubmit(event,'sample')">
- <input type="hidden" name="sku" id="dwmSampleSkuInput">
- <input type="hidden" name="title" id="dwmSampleTitleInput">
- <input type="hidden" name="image_url" id="dwmSampleImageInput">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Shipping Address</label><input type="text" name="address" placeholder="Street" required></div>
- <div class="dwm-field" style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px">
- <input type="text" name="city" placeholder="City" required>
- <input type="text" name="state" placeholder="State" required>
- <input type="text" name="zip" placeholder="ZIP" required>
- </div>
- <div class="dwm-field"><label>Notes (optional)</label><textarea name="message" placeholder="Project, sq.ft., timing"></textarea></div>
- <button type="submit" class="dwm-submit">Send Sample Request</button>
- <div class="dwm-status" id="dwmSampleStatus"></div>
- </form>
- </div>
-</div>
-
-<script>
- // Universal modal control
- function dwmOpen(name, opts){
- document.getElementById('dwm' + name).classList.add('open');
- document.body.style.overflow = 'hidden';
- if (name === 'Sample' && opts) {
- document.getElementById('dwmSamplePreview').style.display = 'flex';
- document.getElementById('dwmSampleImg').src = opts.image_url || '';
- document.getElementById('dwmSampleName').textContent = opts.title || '';
- document.getElementById('dwmSampleSku').textContent = opts.sku || '';
- document.getElementById('dwmSampleSkuInput').value = opts.sku || '';
- document.getElementById('dwmSampleTitleInput').value = opts.title || '';
- document.getElementById('dwmSampleImageInput').value = opts.image_url || '';
- } else if (name === 'Sample') {
- document.getElementById('dwmSamplePreview').style.display = 'none';
- document.getElementById('dwmSampleSkuInput').value = '';
- document.getElementById('dwmSampleTitleInput').value = '';
- document.getElementById('dwmSampleImageInput').value = '';
- }
- }
- function dwmClose(name){ document.getElementById('dwm'+name).classList.remove('open'); document.body.style.overflow=''; }
-
- // Universal form submit — POSTs to /api/send-{kind}
- async function dwmSubmit(e, kind) {
- e.preventDefault();
- const form = e.target;
- const data = Object.fromEntries(new FormData(form).entries());
- const btn = form.querySelector('.dwm-submit');
- const status = form.querySelector('.dwm-status');
- btn.disabled = true; const orig = btn.textContent; btn.textContent = 'Sending…';
- status.className = 'dwm-status';
- try {
- const r = await fetch('/api/send-' + kind, { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
- if (!r.ok) throw new Error('HTTP '+r.status);
- const j = await r.json();
- status.textContent = kind === 'sample' ? 'Sample request sent — ships within 3–5 business days' : 'Inquiry sent — we respond within 1 business day';
- status.className = 'dwm-status ok';
- btn.textContent = 'Sent ✓';
- setTimeout(() => { dwmClose(kind === 'sample' ? 'Sample' : 'Inquiry'); btn.disabled = false; btn.textContent = orig; status.className = 'dwm-status'; form.reset(); }, 2800);
- } catch (err) {
- status.textContent = 'Send failed — please email info@designerwallcoverings.com';
- status.className = 'dwm-status err';
- btn.disabled = false; btn.textContent = orig;
- }
- return false;
- }
-
- // Wire up "Memo samples ship free" badge in hero to open sample modal directly
- document.querySelectorAll('.hero .badge, [data-open-sample]').forEach(el => {
- el.style.cursor = 'pointer';
- el.addEventListener('click', () => dwmOpen('Sample'));
- });
-
- // Wire nav "Trade" link to inquiry modal
- document.querySelectorAll('nav a[href*="designerwallcoverings.com"]').forEach(a => {
- a.removeAttribute('target');
- a.removeAttribute('href');
- a.style.cursor = 'pointer';
- a.addEventListener('click', e => { e.preventDefault(); dwmOpen('Contact'); });
- });
-
- // Override product card clicks — open Sample modal pre-filled instead of redirecting to DW
- document.addEventListener('click', e => {
- const card = e.target.closest('.card, .rail-card');
- if (!card) return;
- if (card.tagName === 'A' && (card.getAttribute('href') || '').startsWith('/sample/')) {
- e.preventDefault();
- const img = card.querySelector('img');
- const pat = card.querySelector('.pat');
- const sku = card.getAttribute('href').replace('/sample/', '');
- dwmOpen('Sample', {
- sku,
- title: pat ? pat.textContent.trim() : '',
- image_url: img ? img.src : ''
- });
- }
- }, true);
-// DW STANDARD: hero pulls from products.json[0].image_url so dw-collections-viewer
-// drag-drop / hero-pin updates the live front page on next deploy.
-// Always upgrades to the largest Shopify variant (strips _NxN size suffix) so
-// the full-page hero stays sharp.
-// DW STANDARD: hero rotates through top-20 NEWEST products on each visit
-// (novasuede.com pattern). Fetches /api/products?limit=100, sorts by created_at desc,
-// takes the freshest 20, picks one per visit via localStorage counter.
-// Falls back to static /hero-bg.jpg on any error.
-(async function rotateHero() {
- try {
- const r = await fetch('/api/products?limit=100');
- if (!r.ok) return;
- const d = await r.json();
- const items = (d.items || [])
- .filter(p => p && p.image_url && /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(p.image_url))
- .sort((a,b) => String(b.created_at || '').localeCompare(String(a.created_at || '')))
- .slice(0, 20);
- if (!items.length) return;
- let visits = 0;
- try {
- visits = parseInt(localStorage.getItem('hero_visits') || '0', 10) || 0;
- localStorage.setItem('hero_visits', String(visits + 1));
- } catch(e) {}
- const pick = items[visits % items.length];
- // Strip _NxN size suffix to get the largest CDN variant
- const url = pick.image_url.replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- const bg = document.getElementById('heroBg') || document.getElementById('cinemaBg');
- if (bg) bg.style.backgroundImage = "url('" + url + "')";
- } catch (e) {}
-})();
-
-
-// DW STANDARD sort-select wire-up (added by fleet patcher)
-(function(){
- const sortSel = document.getElementById('sortSelect');
- if (!sortSel) return;
- const KEY = location.hostname.replace(/\./g, '_') + '_sort';
- const saved = localStorage.getItem(KEY);
- if (saved) { try { sortSel.value = saved; } catch(e){} }
- if (typeof state !== 'undefined') state.sort = sortSel.value;
- sortSel.addEventListener('change', e => {
- const v = e.target.value;
- try { localStorage.setItem(KEY, v); } catch(e){}
- if (typeof state !== 'undefined') state.sort = v;
- if (typeof resetGrid === 'function') resetGrid();
- else location.reload();
- });
-})();
-
-// graphics-loop pass 11: hydrate Ideas rails from /api/products
-(async function hydrateIdeas() {
- try {
- const r = await fetch('/api/products?limit=80');
- if (!r.ok) return;
- const d = await r.json();
- const items = (d.items || []).filter(p => p && p.image_url);
- if (!items.length) return;
- const sorted = [...items].sort((a,b) => String(b.created_at || '').localeCompare(String(a.created_at || '')));
- const newest = sorted.slice(0, 12);
- // Curated = deterministic offset slice (every 5th item starting at idx 3) for variety
- const curated = items.filter((_, i) => i % 5 === 3).slice(0, 12);
- function card(p) {
- const url = (p.image_url || '').replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- return '<a class="rail-card" href="/sample/' + encodeURIComponent(p.handle || p.sku) + '">' +
- '<img src="' + url + '" alt="' + (p.title || '').replace(/"/g, '"') + '" loading="lazy">' +
- '<div class="rc-title">' + ((p.title || '').split('|')[0] || '').trim() + '</div>' +
- '<div class="rc-meta">' + (p.vendor || '') + '</div>' +
- '</a>';
- }
- const r1 = document.getElementById('railNewest');
- const r2 = document.getElementById('railCurated');
- if (r1) r1.innerHTML = newest.map(card).join('');
- if (r2) r2.innerHTML = curated.map(card).join('');
- } catch(e) {}
-})();
-</script>
-
-</body>
-</html>
diff --git a/public/index.html.bak.btn.1778168679426 b/public/index.html.bak.btn.1778168679426
deleted file mode 100644
index 9f4a4c2..0000000
--- a/public/index.html.bak.btn.1778168679426
+++ /dev/null
@@ -1,663 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
-<meta charset="utf-8">
-<!-- Google tag (gtag.js) -->
-<script async src="https://www.googletagmanager.com/gtag/js?id=G-PN839G9FD8"></script>
-<script>
- window.dataLayer = window.dataLayer || [];
- function gtag(){dataLayer.push(arguments);}
- gtag('js', new Date());
- gtag('config', 'G-PN839G9FD8');
-</script>
-
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>Studio Toten — architectural. Useful.</title>
-<meta name="description" content="Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.">
-<meta name="theme-color" content="#F5F2ED">
-<link rel="canonical" href="https://architecturalwallcoverings.com/">
-<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&display=swap" rel="stylesheet">
-<link rel="preload" as="image" href="/hero-bg.jpg" fetchpriority="high">
-<script type="application/ld+json">
-{
- "@context": "https://schema.org",
- "@type": "Organization",
- "name": "Studio Toten",
- "url": "https://architecturalwallcoverings.com/",
- "email": "info@architecturalwallcoverings.com"
-}
-</script>
-<script src="/zd-loader.js" defer></script>
-<style>
-:root {
- --bg: #F5F2ED;
- --paper: #1A1A1A;
- --muted: #8B7866;
- --line: #D5CFC4;
- --accent: #1A1A1A;
- --bg-soft: #D5CFC4;
- --cols: 6;
-}
-html[data-theme="dark"] {
- --bg: #1a1410;
- --paper: #F5F2ED;
- --muted: #C9B89E;
- --line: rgba(255,254,250,0.12);
- --accent: #1A1A1A;
- --bg-soft: #2a1f15;
-}
-* { margin:0; padding:0; box-sizing:border-box }
-html { scroll-behavior:smooth }
-body { font-family:'Inter', sans-serif; color:var(--paper); -webkit-font-smoothing:antialiased; background:var(--bg); min-height:100vh; overflow-x:hidden }
-/* DW-FASHION-TEMPLATE-OVERRIDE */
-.section-title .accent, .footer-brand, .center-mark, h1, h2, h3 { font-family:'Inter', Georgia, serif !important; font-weight:400 !important; }
-
-/* ===== Auto-hide header ===== */
-header { position:fixed; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 32px; z-index:100; background:rgba(0,0,0,0.55); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:transform .3s }
-.h-link { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); text-decoration:none; cursor:pointer; background:transparent; border:0 }
-.h-link:hover { opacity:0.7 }
-.h-icon { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }
-
-/* ===== Cinema hero ===== */
-.cinema { position:relative; height:100vh; width:100%; overflow:hidden }
-.cinema-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-image:url('/hero-bg.jpg') }
-.cinema-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.75) 100%) }
-.corner-mark { position:absolute; top:24px; left:32px; font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,0.55), 0 0 1px rgba(0,0,0,0.4); z-index:5 }
-.corner-mark::before { content:"◆ "; margin-right:6px }
-.center-mark { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-size:clamp(34px,5vw,72px); font-weight:300; letter-spacing:0.42em; text-transform:uppercase; text-align:center; color:#fff; z-index:5; mix-blend-mode:difference }
-.center-mark .tm { font-size:14px; vertical-align:super; opacity:0.7; margin-left:0.2em }
-.center-mark .sub { display:block; font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400; font-size:0.4em; letter-spacing:0.04em; text-transform:none; margin-top:14px; opacity:0.85 }
-.meta-line { position:absolute; bottom:32px; left:32px; font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:700; color:#fff; z-index:5; opacity:0.85 }
-.meta-line .num { font-size:12px; display:block; margin-top:4px; letter-spacing:0.05em }
-.enter { position:absolute; bottom:32px; right:32px; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:0.36em; text-transform:uppercase; font-weight:700; color:#fff; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #fff; transition:gap 0.25s; z-index:5 }
-.enter:hover { gap:22px }
-.enter svg { width:24px; height:12px }
-
-/* ===== Section ===== */
-.section { padding:96px 32px }
-.section-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--line) }
-.section-title { font-size:clamp(36px,5vw,64px); font-weight:300; letter-spacing:-0.02em; line-height:1 }
-.section-title .accent { color: var(--accent); font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400 }
-.section-eyebrow { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:16px }
-.section-meta { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--muted); text-align:right; line-height:1.6 }
-
-/* ===== Filter bar ===== */
-.filters { display:flex; gap:8px; align-items:center; margin-bottom:18px; flex-wrap:wrap }
-.chip { padding:8px 16px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); background:transparent; border:1px solid var(--line); cursor:pointer; transition:all 0.2s; font-family:inherit }
-.chip:hover { border-color:var(--paper) }
-.chip.active { background:var(--paper); color:var(--bg); border-color:var(--paper) }
-.search { flex:0 1 280px; margin-left:auto; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:6px 0 }
-.search input { flex:1; background:transparent; border:0; color:var(--paper); font-family:inherit; font-size:13px; outline:none; letter-spacing:0.04em }
-.search input::placeholder { color:var(--muted) }
-.search svg { width:16px; height:16px; stroke:var(--muted); fill:none; stroke-width:1.5 }
-
-/* ===== Grid-density slider ===== */
-.density { display:flex; align-items:center; gap:14px; padding:6px 0; margin-bottom:24px }
-.density label { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--muted) }
-.density input[type=range] { flex:1; max-width:240px; -webkit-appearance:none; appearance:none; height:1px; background:var(--line); outline:none }
-.density input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50% }
-.density input[type=range]::-moz-range-thumb { width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50%; border:0 }
-.density .ct { font-size:11px; color:var(--muted); letter-spacing:0.18em; text-transform:uppercase; font-weight:600; min-width:80px }
-
-/* ===== Stats line ===== */
-.stat-line { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:24px }
-
-/* ===== Product grid (novasuede pattern: flush grid + slide-up overlay) ===== */
-.grid { display:grid; grid-template-columns:repeat(var(--cols), 1fr); gap:0 }
-.card { position:relative; aspect-ratio:1/1.15; cursor:pointer; overflow:hidden; border:1px solid var(--bg); transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1); background:var(--bg-soft) }
-.card:hover { transform:scale(1.04); z-index:5 }
-.card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease }
-.card .overlay { position:absolute; left:0; right:0; bottom:0; padding:20px 16px 14px; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%); transform:translateY(48%); opacity:0.85; transition:transform 0.3s ease, opacity 0.3s ease }
-.card:hover .overlay { transform:translateY(0); opacity:1 }
-.card .pat { font-size:13px; font-weight:600; letter-spacing:0.02em; color:#fff; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
-.card .ven { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#fff; opacity:0.7; font-weight:500; margin-top:4px }
-.card .actions { margin-top:10px; display:flex; gap:6px }
-.card .sample-btn { flex:1; padding:7px 10px; background:#fff; color:#000; font-family:inherit; font-size:10px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; border:0; cursor:pointer; text-align:center; transition:all 0.2s }
-.card .sample-btn:hover { background:var(--accent); color:#fff }
-
-@media (max-width:1024px) { .grid { grid-template-columns:repeat(min(var(--cols), 4), 1fr) } }
-@media (max-width:720px) { .grid { grid-template-columns:repeat(2, 1fr) } .density { display:none } }
-
-.sentinel { height:1px }
-.loading { text-align:center; color:var(--muted); padding:32px; font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700 }
-
-/* ===== Footer ===== */
-footer { padding:64px 32px 32px; border-top:1px solid var(--line); margin-top:32px }
-.footer-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr; gap:48px; margin-bottom:48px }
-.footer-brand { font-size:24px; font-weight:300; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:12px }
-.footer-text { font-size:13px; line-height:1.6; color:var(--muted); max-width:380px }
-.footer-col h4 { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--paper); margin-bottom:18px }
-.footer-col a { display:block; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:8px; transition:color 0.2s; cursor:pointer; background:transparent; border:0; font-family:inherit; padding:0; text-align:left }
-.footer-col a:hover { color:var(--accent) }
-.footer-bottom { max-width:1400px; margin:0 auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted) }
-
-@media (max-width:720px) {
- .corner-mark, .meta-line, .enter { font-size:10px }
- .center-mark { font-size:30px; letter-spacing:0.32em }
- .section, footer { padding-left:20px; padding-right:20px }
- .footer-grid { grid-template-columns:1fr; gap:32px }
- .search { margin-left:0; flex:1 1 100% }
-}
-
-.theme-toggle { background:transparent; border:1px solid var(--line); width:32px; height:32px; cursor:pointer; color:var(--paper); display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; transition:all .15s; padding:0 }
-.theme-toggle:hover { border-color:var(--accent); color:var(--accent) }
-
-/* ===== WCAG 2.4.7 — keyboard focus indicators ===== */
-/* Strictly :focus-visible so mouse clicks do NOT show the ring */
-a:focus-visible,
-button:focus-visible,
-input:focus-visible,
-select:focus-visible,
-textarea:focus-visible,
-[tabindex]:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
-}
-</style>
-<script>
-(function(){ try { var t = localStorage.getItem('arch_theme') || 'light'; document.documentElement.dataset.theme = t; } catch(e){} })();
-</script>
-<link rel="preconnect" href="https://fonts.googleapis.com">
-<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap">
-</head>
-<body>
-
-<header>
- <button class="h-link" onclick="dwmOpen('Contact')" aria-label="Contact"><svg class="h-icon" viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/></svg><span>Contact</span></button>
- <button class="theme-toggle" id="theme-toggle" aria-label="Theme toggle">☾</button>
-</header>
-
-<section class="cinema">
- <div class="cinema-bg" id="heroBg"></div>
- <div class="corner-mark">Specifier-Grade</div>
- <div class="center-mark">ARCHITECTURAL<span class="tm">.</span><span class="sub">Spec. Build. Repeat.</span></div>
- <div class="meta-line">Architectural · Specifier · Class A · Contract<span class="num" id="heroNum"></span></div>
- <a class="enter" href="#shop">Enter <svg viewBox="0 0 24 12" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M0 6h22M16 1l6 5-6 5"/></svg></a>
-</section>
-
-<section class="section" id="shop">
- <div class="section-header">
- <div>
- <div class="section-eyebrow">The Collection</div>
- <h2 class="section-title"><span class="accent" id="totalCount">—</span> Patterns.</h2>
- </div>
- <div class="section-meta">Architectural · Specifier · Class A · Contract</div>
- </div>
-
- <div class="filters" id="facets">
- <button class="chip active" data-facet="all">All</button>
- </div>
-
- <div class="density">
- <label>Sort</label>
- <select id="sortSelect" aria-label="Sort products" style="background:transparent;color:inherit;border:1px solid var(--line,rgba(255,255,255,.2));font:inherit;font-size:11px;letter-spacing:.10em;text-transform:uppercase;padding:4px 8px;cursor:pointer;outline:none;margin-right:14px">
- <option value="newest">Newest</option>
- <option value="color">Color</option>
- <option value="style">Style</option>
- <option value="sku">SKU A→Z</option>
- <option value="title">Title A→Z</option>
- <option value="price-asc">Price ↑</option>
- <option value="price-desc">Price ↓</option>
- </select>
- <label>Grid</label>
- <input type="range" id="densitySlider" min="4" max="12" step="1" value="6" aria-label="Grid columns">
- <span class="ct" id="densityLabel">6 cols</span>
- <div class="search">
- <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-5.5-5.5"/></svg>
- <input type="text" id="searchInput" placeholder="Search by pattern, color…" autocomplete="off">
- </div>
- </div>
-
- <div class="stat-line" id="statLine">Loading…</div>
- <div class="grid" id="grid"></div>
- <div class="loading" id="loading">Loading more…</div>
- <div class="sentinel" id="sentinel"></div>
-</section>
-
-<footer>
- <div class="footer-grid">
- <div>
- <div class="footer-brand">ARCHITECTURAL</div>
- <p class="footer-text">Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.</p>
- <p class="footer-text" style="margin-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;color:var(--paper);opacity:0.7"><a href="/about" style="color:inherit;text-decoration:none;border-bottom:1px solid var(--accent)">About →</a></p>
- </div>
- <div class="footer-col">
- <h4>Aesthetic</h4>
- <div id="footerFacets"></div>
- </div>
- <div class="footer-col">
- <h4>Trade</h4>
- <button onclick="dwmOpen('Inquiry')">Project Inquiry</button>
- <button onclick="dwmOpen('Sample')">Request Sample</button>
- <button onclick="dwmOpen('Contact')">Contact</button>
- </div>
- </div>
- <div class="footer-bottom">
- <span>architecturalwallcoverings.com · Studio Toten</span>
- <span><a href="mailto:info@architecturalwallcoverings.com" style="color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px">info@architecturalwallcoverings.com</a></span>
- <span id="footerStat"></span>
- </div>
-</footer>
-
-<script>
-// mini-constellation — 43 niche-stars, current site highlighted in gold
-(function(){
- const SLUG = "architecturalwallcoverings";
- const NICHES = [
- ['silkwallpaper','Silk','mat'],['silkwallcoverings','Silk W/C','mat'],['linenwallpaper','Linen','mat'],
- ['jutewallpaper','Jute','mat'],['raffiawallcoverings','Raffia W/C','mat'],['raffiawalls','Raffia Walls','mat'],
- ['corkwallcovering','Cork','mat'],['fabricwallpaper','Fabric','mat'],['textilewallpaper','Textile','mat'],
- ['metallicwallpaper','Metallic','mat'],['silverleafwallpaper','Silver Leaf','mat'],['vinylwallpaper','Vinyl','mat'],
- ['micawallpaper','Mica','mat'],['madagascarwallpaper','Madagascar','mat'],['mylarwallpaper','Mylar','mat'],
- ['suedewallpaper','Suede','mat'],
- ['1800swallpaper','1800s','dec'],['1890swallpaper','1890s','dec'],['1900swallpaper','1900s','dec'],
- ['1920swallpaper','1920s','dec'],['1930swallpaper','1930s','dec'],['1940swallpaper','1940s','dec'],
- ['1950swallpaper','1950s','dec'],['1960swallpaper','1960s','dec'],['1970swallpaper','1970s','dec'],
- ['1980swallpaper','1980s','dec'],['retrowalls','Retro','dec'],['wallpapersback','W. Back','dec'],
- ['agedwallpaper','Aged','cra'],['handcraftedwallpaper','Handcrafted','cra'],['museumwallpaper','Museum','cra'],
- ['restorationwallpaper','Restoration','cra'],['pastelwallpaper','Pastel','cra'],['glitterwalls','Glitter','cra'],
- ['greenwallcoverings','Green','cra'],['naturalwallcoverings','Natural','cra'],['saloonwallpaper','Saloon','cra'],
- ['contractwallpaper','Contract','use'],['hotelwallcoverings','Hotel','use'],['hospitalitywallpaper','Hospitality','use'],
- ['healthcarewallpaper','Healthcare','use'],['restaurantwallpaper','Restaurant','use'],['architecturalwallcoverings','Architectural','use']
- ];
- const COLOR = { mat:'#c9b687', dec:'#b86a4a', cra:'#6b8e6f', use:'#4a6b8e' };
- const W = 1080, H = 200, BANDS = ['mat','dec','cra','use'];
- const groups = { mat:[], dec:[], cra:[], use:[] };
- for (const n of NICHES) groups[n[2]].push(n);
- const svg = document.getElementById('miniConst');
- if (!svg) return;
- const bandW = W / BANDS.length;
- let nodes = '';
- BANDS.forEach((band, bi) => {
- const list = groups[band];
- const cx = bi * bandW + bandW / 2;
- list.forEach((n, i) => {
- const t = list.length === 1 ? 0.5 : i / (list.length - 1);
- // deterministic jitter per slug
- let h = 0; for (let k = 0; k < n[0].length; k++) h = (h * 31 + n[0].charCodeAt(k)) | 0;
- const jx = ((h & 0xff) / 255 - 0.5) * (bandW * 0.5);
- const jy = (((h >> 8) & 0xff) / 255 - 0.5) * 6; // tightened from 14 → 6 to prevent same-band collisions (16 mat nodes / 144px = 9px spacing)
- const x = cx + jx, y = 28 + t * (H - 56) + jy;
- const isCurrent = n[0] === SLUG;
- const r = isCurrent ? 8 : 4;
- const op = isCurrent ? 1 : 0.55;
- nodes += `<g class="mc-node" data-slug="${n[0]}" data-label="${n[1]}" style="cursor:pointer">
- <circle cx="${x}" cy="${y}" r="${r}" fill="url(#dna-${band})" fill-opacity="${op}" stroke="${COLOR[band]}" stroke-opacity="${isCurrent?1:0.7}" stroke-width="${isCurrent?2:1}">
- <title>${n[1]} — ${n[0]}.com</title>
- </circle>
- ${isCurrent ? `<circle cx="${x}" cy="${y}" r="${r+5}" fill="none" stroke="${COLOR[band]}" stroke-opacity="0.4" stroke-width="1"><animate attributeName="r" values="${r+5};${r+12};${r+5}" dur="2.4s" repeatCount="indefinite"/><animate attributeName="stroke-opacity" values="0.4;0;0.4" dur="2.4s" repeatCount="indefinite"/></circle>` : ''}
- </g>`;
- });
- });
- // append nodes after defs
- svg.insertAdjacentHTML('beforeend', nodes);
- svg.querySelectorAll('.mc-node').forEach(n => {
- n.addEventListener('mouseenter', () => n.querySelector('circle').setAttribute('fill-opacity', '1'));
- n.addEventListener('mouseleave', e => {
- const isCurrent = n.dataset.slug === SLUG;
- n.querySelector('circle').setAttribute('fill-opacity', isCurrent ? '1' : '0.55');
- });
- n.addEventListener('click', () => window.open('https://' + n.dataset.slug + '.com', '_blank'));
- });
-})();
-</script>
-
-<script>
-const state = { q:'', facet:'all', page:1, pages:1, total:0, loading:false, exhausted:false };
-const LABELS = {"all":"All"};
-
-function escAttr(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[c])); }
-// Image-URL allowlist: only DW Shopify CDN + designerwallcoverings.com (defends against XSS via crafted products.json)
-function safeImg(u) { return /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(u || '') ? u : '/hero-bg.jpg'; }
-function cardHTML(p) {
- const eager = state.page === 1;
- return '<img loading="' + (eager ? 'eager' : 'lazy') + '"' + (eager ? ' fetchpriority="high"' : '') + ' src="' + escAttr(safeImg(p.image_url)) + '" alt="' + escAttr(p.title) + '">'
- + '<div class="overlay">'
- + '<div class="pat">' + escAttr(p.pattern_name || p.title) + '</div>'
- + '<div class="ven">' + escAttr((p.vendor || '').replace(/-/g, ' ')) + '</div>'
- + '<div class="actions">'
- + '<button class="sample-btn" onclick="event.stopPropagation();dwmOpen(\'Sample\',' + JSON.stringify({sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}).replace(/"/g,'"') + ')">Sample</button>'
- + '</div></div>';
-}
-
-async function loadFacets() {
- let f;
- try {
- const r = await fetch('/api/facets');
- if (!r.ok) throw new Error('HTTP ' + r.status);
- f = await r.json();
- } catch (e) { console.error('loadFacets failed:', e); return; }
- const el = document.getElementById('facets');
- for (const [k, v] of Object.entries(f.aesthetics).sort((a,b) => b[1] - a[1])) {
- const b = document.createElement('button');
- b.className = 'chip'; b.dataset.facet = k;
- b.innerHTML = (LABELS[k] || k) + ' <span style="opacity:.55;font-weight:500;margin-left:4px">' + v + '</span>';
- el.appendChild(b);
- }
- el.addEventListener('click', e => {
- if (e.target.tagName !== 'BUTTON') return;
- document.querySelectorAll('#facets button').forEach(b => b.classList.remove('active'));
- e.target.classList.add('active');
- state.facet = e.target.dataset.facet;
- resetGrid();
- });
- document.getElementById('totalCount').textContent = f.total;
- document.getElementById('footerStat').textContent = f.total + ' patterns · live archive';
- // Footer aesthetic links
- const footerEl = document.getElementById('footerFacets');
- for (const [k] of Object.entries(f.aesthetics)) {
- const b = document.createElement('button');
- b.textContent = LABELS[k] || k;
- b.onclick = () => { state.facet = k; resetGrid(); document.querySelectorAll('#facets button').forEach(x => x.classList.toggle('active', x.dataset.facet === k)); document.getElementById('shop').scrollIntoView({behavior:'smooth'}); };
- footerEl.appendChild(b);
- }
-}
-
-function resetGrid() {
- state.page = 1; state.exhausted = false;
- document.getElementById('grid').innerHTML = '';
- document.getElementById('loading').textContent = 'Loading…';
- loadGridPage();
-}
-
-async function loadGridPage() {
- if (state.loading || state.exhausted) return;
- state.loading = true;
- const params = new URLSearchParams({ page:state.page, limit:24 });
- if (state.q) params.set('q', state.q);
- if (state.facet !== 'all') params.set('aesthetic', state.facet);
- let data;
- try {
- const r = await fetch('/api/products?' + params);
- if (!r.ok) throw new Error('HTTP ' + r.status);
- data = await r.json();
- } catch (e) {
- console.error('loadGridPage failed:', e);
- document.getElementById('loading').textContent = '— offline — refresh to retry —';
- state.loading = false;
- return;
- }
- state.total = data.total; state.pages = data.pages;
-
- if (state.page === 1) {
- document.getElementById('statLine').textContent = data.total + ' patterns · ' + (state.facet === 'all' ? 'all aesthetics' : (LABELS[state.facet] || state.facet)) + (state.q ? ' · matching "' + state.q + '"' : '');
- }
- const grid = document.getElementById('grid');
- for (const p of data.items) {
- const a = document.createElement('a');
- a.className = 'card'; a.href = '#'; a.onclick = (e) => { e.preventDefault(); dwmOpen('Sample',{sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}); };
- a.innerHTML = cardHTML(p);
- grid.appendChild(a);
- }
- if (state.page >= state.pages || data.items.length === 0) {
- state.exhausted = true;
- document.getElementById('loading').textContent = state.total > 0 ? '— end of archive · ' + state.total + ' patterns —' : '';
- } else state.page++;
- state.loading = false;
-}
-
-const io = new IntersectionObserver(es => { for (const e of es) if (e.isIntersecting) loadGridPage(); }, { rootMargin:'600px 0px' });
-io.observe(document.getElementById('sentinel'));
-
-document.getElementById('searchInput').addEventListener('input', e => {
- state.q = e.target.value.trim();
- clearTimeout(window._t);
- window._t = setTimeout(resetGrid, 220);
-});
-
-// Density slider
-const slider = document.getElementById('densitySlider');
-const dlabel = document.getElementById('densityLabel');
-function setDensity(n) {
- document.documentElement.style.setProperty('--cols', n);
- dlabel.textContent = n + ' cols';
- try { localStorage.setItem('arch_theme_density', n); } catch(e){}
-}
-slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
-const savedDensity = parseInt(localStorage.getItem('arch_theme_density') || '6');
-if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
-
-// Theme toggle
-const tb = document.getElementById('theme-toggle');
-function setTheme(t){ document.documentElement.dataset.theme = t; try { localStorage.setItem('arch_theme', t); } catch(e){} tb.textContent = t === 'dark' ? '☾' : '☀'; }
-setTheme(document.documentElement.dataset.theme || 'light');
-tb.addEventListener('click', () => setTheme(document.documentElement.dataset.theme === 'dark' ? 'light' : 'dark'));
-
-loadFacets();
-loadGridPage();
-</script>
-<!-- ============================================================
- DW UNIVERSAL CONTACT MODULE — fashion-house UX
- Inject before </body> in every DW-family sister site.
- Self-contained: CSS + 4 modals + JS submission handlers.
- Uses host site's CSS vars (--bg, --fg, --gold, --rule).
- ============================================================ -->
-<style>
- /* === MODAL BASE === */
- .dwm{position:fixed;inset:0;background:rgba(0,0,0,0.78);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;overflow-y:auto}
- .dwm.open{display:flex}
- .dwm-box{background:var(--bg);border:1px solid var(--rule);max-width:520px;width:100%;padding:36px 32px;position:relative;max-height:90vh;overflow-y:auto;animation:dwm-in 0.25s ease}
- @keyframes dwm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
- .dwm-box h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;font-size:32px;line-height:1.05;margin-bottom:6px;color:var(--fg);letter-spacing:-0.01em}
- .dwm-box .sub{color:var(--muted);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
- .dwm-close{position:absolute;top:18px;right:18px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;width:32px;height:32px;line-height:1;padding:0}
- .dwm-close:hover{color:var(--gold)}
- .dwm-preview{display:flex;gap:14px;align-items:center;padding:12px;background:var(--bg-soft);margin-bottom:18px}
- .dwm-preview img{width:64px;height:64px;object-fit:cover}
- .dwm-preview .pn{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;line-height:1.2;color:var(--fg)}
- .dwm-preview .pc{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
- .dwm-field{margin-bottom:14px}
- .dwm-field label{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
- .dwm-field input,.dwm-field textarea,.dwm-field select{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:8px 4px;font-size:14px;font-family:inherit;color:var(--fg);outline:none;transition:border-color 0.2s}
- .dwm-field input:focus,.dwm-field textarea:focus{border-bottom-color:var(--gold)}
- .dwm-field textarea{min-height:60px;resize:vertical}
- .dwm-submit{background:var(--gold);color:#000;border:0;padding:14px 28px;font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:700;cursor:pointer;width:100%;margin-top:8px;transition:opacity 0.15s}
- .dwm-submit:hover{opacity:0.85}
- .dwm-submit:disabled{opacity:0.5;cursor:default}
- .dwm-status{margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;display:none}
- .dwm-status.ok{color:var(--sage);display:block}
- .dwm-status.err{color:#e08070;display:block}
- /* contact-options */
- .dwm-options{display:flex;flex-direction:column;gap:10px}
- .dwm-option{display:flex;align-items:center;gap:14px;padding:18px 20px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;transition:all 0.2s;text-align:left;width:100%}
- .dwm-option:hover{border-color:var(--gold);color:var(--gold)}
- .dwm-option svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}
- .dwm-option .lbl{flex:1;display:block}
- .dwm-option .val{display:block;font-size:10px;letter-spacing:0.14em;text-transform:none;font-weight:500;opacity:0.65;margin-top:4px}
-
-/* graphics-loop pass 5: serif hero typography + nav legibility */
-.cinema h1, h1.headline { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; letter-spacing: -0.01em }
-.h-link { font-size: 13px; letter-spacing: 0.06em }
-</style>
-
-<!-- Contact options modal -->
-<div class="dwm" id="dwmContact" onclick="if(event.target===this)dwmClose('Contact')">
- <div class="dwm-box" style="max-width:440px">
- <button class="dwm-close" onclick="dwmClose('Contact')" aria-label="Close">×</button>
- <h3>Contact</h3>
- <p class="sub" id="dwmContactSub">Three ways to reach us</p>
- <div class="dwm-options">
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Inquiry')">
- <svg viewBox="0 0 24 24"><path d="M4 4h16v12H7l-3 3z"/></svg>
- <span class="lbl">Send an Inquiry<span class="val">Project name · scope · all the details</span></span>
- </button>
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Sample')">
- <svg viewBox="0 0 24 24"><rect x="4" y="6" width="16" height="14"/><path d="M4 10h16M9 6V3h6v3"/></svg>
- <span class="lbl">Request a Sample<span class="val">Memo sample · ships free · 3–5 business days</span></span>
- </button>
- <a class="dwm-option" id="dwmContactEmailLink" href="mailto:info@architecturalwallcoverings.com">
- <svg viewBox="0 0 24 24"><path d="M3 6h18v12H3z"/><path d="M3 6l9 7 9-7"/></svg>
- <span class="lbl">Email Us<span class="val" id="dwmContactEmailLabel">info@architecturalwallcoverings.com</span></span>
- </a>
- </div>
- </div>
-</div>
-
-<!-- Inquiry modal -->
-<div class="dwm" id="dwmInquiry" onclick="if(event.target===this)dwmClose('Inquiry')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Inquiry')" aria-label="Close">×</button>
- <h3>Project Inquiry</h3>
- <p class="sub">We'll respond within one business day</p>
- <form id="dwmInquiryForm" onsubmit="return dwmSubmit(event,'inquiry')">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Phone</label><input type="tel" name="phone"></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Project Name</label><input type="text" name="projectName" required></div>
- <div class="dwm-field"><label>Project Scope</label><textarea name="projectScope" placeholder="Square footage · room count · timeline" required></textarea></div>
- <div class="dwm-field"><label>Additional Information</label><textarea name="message" placeholder="Patterns of interest, finish preferences, budget"></textarea></div>
- <button type="submit" class="dwm-submit">Send Inquiry</button>
- <div class="dwm-status" id="dwmInquiryStatus"></div>
- </form>
- </div>
-</div>
-
-<!-- Sample-request modal -->
-<div class="dwm" id="dwmSample" onclick="if(event.target===this)dwmClose('Sample')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Sample')" aria-label="Close">×</button>
- <h3>Request a Sample</h3>
- <p class="sub">Memo sample · ships free · 3–5 business days</p>
- <div class="dwm-preview" id="dwmSamplePreview" style="display:none">
- <img id="dwmSampleImg" src="" alt="">
- <div><div class="pn" id="dwmSampleName"></div><div class="pc" id="dwmSampleSku"></div></div>
- </div>
- <form id="dwmSampleForm" onsubmit="return dwmSubmit(event,'sample')">
- <input type="hidden" name="sku" id="dwmSampleSkuInput">
- <input type="hidden" name="title" id="dwmSampleTitleInput">
- <input type="hidden" name="image_url" id="dwmSampleImageInput">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Shipping Address</label><input type="text" name="address" placeholder="Street" required></div>
- <div class="dwm-field" style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px">
- <input type="text" name="city" placeholder="City" required>
- <input type="text" name="state" placeholder="State" required>
- <input type="text" name="zip" placeholder="ZIP" required>
- </div>
- <div class="dwm-field"><label>Notes (optional)</label><textarea name="message" placeholder="Project, sq.ft., timing"></textarea></div>
- <button type="submit" class="dwm-submit">Send Sample Request</button>
- <div class="dwm-status" id="dwmSampleStatus"></div>
- </form>
- </div>
-</div>
-
-<script>
- // Universal modal control
- function dwmOpen(name, opts){
- document.getElementById('dwm' + name).classList.add('open');
- document.body.style.overflow = 'hidden';
- if (name === 'Sample' && opts) {
- document.getElementById('dwmSamplePreview').style.display = 'flex';
- document.getElementById('dwmSampleImg').src = opts.image_url || '';
- document.getElementById('dwmSampleName').textContent = opts.title || '';
- document.getElementById('dwmSampleSku').textContent = opts.sku || '';
- document.getElementById('dwmSampleSkuInput').value = opts.sku || '';
- document.getElementById('dwmSampleTitleInput').value = opts.title || '';
- document.getElementById('dwmSampleImageInput').value = opts.image_url || '';
- } else if (name === 'Sample') {
- document.getElementById('dwmSamplePreview').style.display = 'none';
- document.getElementById('dwmSampleSkuInput').value = '';
- document.getElementById('dwmSampleTitleInput').value = '';
- document.getElementById('dwmSampleImageInput').value = '';
- }
- }
- function dwmClose(name){ document.getElementById('dwm'+name).classList.remove('open'); document.body.style.overflow=''; }
-
- // Universal form submit — POSTs to /api/send-{kind}
- async function dwmSubmit(e, kind) {
- e.preventDefault();
- const form = e.target;
- const data = Object.fromEntries(new FormData(form).entries());
- const btn = form.querySelector('.dwm-submit');
- const status = form.querySelector('.dwm-status');
- btn.disabled = true; const orig = btn.textContent; btn.textContent = 'Sending…';
- status.className = 'dwm-status';
- try {
- const r = await fetch('/api/send-' + kind, { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
- if (!r.ok) throw new Error('HTTP '+r.status);
- const j = await r.json();
- status.textContent = kind === 'sample' ? 'Sample request sent — ships within 3–5 business days' : 'Inquiry sent — we respond within 1 business day';
- status.className = 'dwm-status ok';
- btn.textContent = 'Sent ✓';
- setTimeout(() => { dwmClose(kind === 'sample' ? 'Sample' : 'Inquiry'); btn.disabled = false; btn.textContent = orig; status.className = 'dwm-status'; form.reset(); }, 2800);
- } catch (err) {
- status.textContent = 'Send failed — please email info@designerwallcoverings.com';
- status.className = 'dwm-status err';
- btn.disabled = false; btn.textContent = orig;
- }
- return false;
- }
-
- // Wire up "Memo samples ship free" badge in hero to open sample modal directly
- document.querySelectorAll('.hero .badge, [data-open-sample]').forEach(el => {
- el.style.cursor = 'pointer';
- el.addEventListener('click', () => dwmOpen('Sample'));
- });
-
- // Wire nav "Trade" link to inquiry modal
- document.querySelectorAll('nav a[href*="designerwallcoverings.com"]').forEach(a => {
- a.removeAttribute('target');
- a.removeAttribute('href');
- a.style.cursor = 'pointer';
- a.addEventListener('click', e => { e.preventDefault(); dwmOpen('Contact'); });
- });
-
- // Override product card clicks — open Sample modal pre-filled instead of redirecting to DW
- document.addEventListener('click', e => {
- const card = e.target.closest('.card, .rail-card');
- if (!card) return;
- if (card.tagName === 'A' && (card.getAttribute('href') || '').startsWith('/sample/')) {
- e.preventDefault();
- const img = card.querySelector('img');
- const pat = card.querySelector('.pat');
- const sku = card.getAttribute('href').replace('/sample/', '');
- dwmOpen('Sample', {
- sku,
- title: pat ? pat.textContent.trim() : '',
- image_url: img ? img.src : ''
- });
- }
- }, true);
-// DW STANDARD: hero pulls from products.json[0].image_url so dw-collections-viewer
-// drag-drop / hero-pin updates the live front page on next deploy.
-// Always upgrades to the largest Shopify variant (strips _NxN size suffix) so
-// the full-page hero stays sharp.
-(async function hydrateHero() {
- try {
- const r = await fetch('/api/products?limit=1');
- if (!r.ok) return;
- const d = await r.json();
- let url = d.items && d.items[0] && d.items[0].image_url;
- if (!url) return;
- if (/^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(url)) {
- url = url.replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- const bg = document.getElementById('heroBg');
- if (bg) bg.style.backgroundImage = "url('" + url + "')";
- }
- } catch(e){}
-})();
-
-
-// DW STANDARD sort-select wire-up (added by fleet patcher)
-(function(){
- const sortSel = document.getElementById('sortSelect');
- if (!sortSel) return;
- const KEY = location.hostname.replace(/\./g, '_') + '_sort';
- const saved = localStorage.getItem(KEY);
- if (saved) { try { sortSel.value = saved; } catch(e){} }
- if (typeof state !== 'undefined') state.sort = sortSel.value;
- sortSel.addEventListener('change', e => {
- const v = e.target.value;
- try { localStorage.setItem(KEY, v); } catch(e){}
- if (typeof state !== 'undefined') state.sort = v;
- if (typeof resetGrid === 'function') resetGrid();
- else location.reload();
- });
-})();
-</script>
-
-</body>
-</html>
diff --git a/public/index.html.bak.btn2.1778169410374 b/public/index.html.bak.btn2.1778169410374
deleted file mode 100644
index 9ef965a..0000000
--- a/public/index.html.bak.btn2.1778169410374
+++ /dev/null
@@ -1,664 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
-<meta charset="utf-8">
-<!-- Google tag (gtag.js) -->
-<script async src="https://www.googletagmanager.com/gtag/js?id=G-PN839G9FD8"></script>
-<script>
- window.dataLayer = window.dataLayer || [];
- function gtag(){dataLayer.push(arguments);}
- gtag('js', new Date());
- gtag('config', 'G-PN839G9FD8');
-</script>
-
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>Studio Toten — architectural. Useful.</title>
-<meta name="description" content="Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.">
-<meta name="theme-color" content="#F5F2ED">
-<link rel="canonical" href="https://architecturalwallcoverings.com/">
-<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&display=swap" rel="stylesheet">
-<link rel="preload" as="image" href="/hero-bg.jpg" fetchpriority="high">
-<script type="application/ld+json">
-{
- "@context": "https://schema.org",
- "@type": "Organization",
- "name": "Studio Toten",
- "url": "https://architecturalwallcoverings.com/",
- "email": "info@architecturalwallcoverings.com"
-}
-</script>
-<script src="/zd-loader.js" defer></script>
-<style>
-:root {
- --bg: #F5F2ED;
- --paper: #1A1A1A;
- --muted: #8B7866;
- --line: #D5CFC4;
- --accent: #1A1A1A;
- --bg-soft: #D5CFC4;
- --cols: 6;
-}
-html[data-theme="dark"] {
- --bg: #1a1410;
- --paper: #F5F2ED;
- --muted: #C9B89E;
- --line: rgba(255,254,250,0.12);
- --accent: #1A1A1A;
- --bg-soft: #2a1f15;
-}
-* { margin:0; padding:0; box-sizing:border-box }
-html { scroll-behavior:smooth }
-body { font-family:'Inter', sans-serif; color:var(--paper); -webkit-font-smoothing:antialiased; background:var(--bg); min-height:100vh; overflow-x:hidden }
-/* DW-FASHION-TEMPLATE-OVERRIDE */
-.section-title .accent, .footer-brand, .center-mark, h1, h2, h3 { font-family:'Inter', Georgia, serif !important; font-weight:400 !important; }
-
-/* ===== Auto-hide header ===== */
-header { position:fixed; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 32px; z-index:100; background:rgba(0,0,0,0.55); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:transform .3s }
-.h-link { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); text-decoration:none; cursor:pointer; background:transparent; border:0 }
-.h-link:hover { opacity:0.7 }
-.h-icon { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }
-
-/* ===== Cinema hero ===== */
-.cinema { position:relative; height:100vh; width:100%; overflow:hidden }
-.cinema-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-image:url('/hero-bg.jpg') }
-.cinema-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.75) 100%) }
-.corner-mark { position:absolute; top:24px; left:32px; font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,0.55), 0 0 1px rgba(0,0,0,0.4); z-index:5 }
-.corner-mark::before { content:"◆ "; margin-right:6px }
-.center-mark { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-size:clamp(34px,5vw,72px); font-weight:300; letter-spacing:0.42em; text-transform:uppercase; text-align:center; color:#fff; z-index:5; mix-blend-mode:difference }
-.center-mark .tm { font-size:14px; vertical-align:super; opacity:0.7; margin-left:0.2em }
-.center-mark .sub { display:block; font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400; font-size:0.4em; letter-spacing:0.04em; text-transform:none; margin-top:14px; opacity:0.85 }
-.meta-line { position:absolute; bottom:32px; left:32px; font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:700; color:#fff; z-index:5; opacity:0.85 }
-.meta-line .num { font-size:12px; display:block; margin-top:4px; letter-spacing:0.05em }
-.enter { position:absolute; bottom:32px; right:32px; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:0.36em; text-transform:uppercase; font-weight:700; color:#fff; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #fff; transition:gap 0.25s; z-index:5 }
-.enter:hover { gap:22px }
-.enter svg { width:24px; height:12px }
-
-/* ===== Section ===== */
-.section { padding:96px 32px }
-.section-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--line) }
-.section-title { font-size:clamp(36px,5vw,64px); font-weight:300; letter-spacing:-0.02em; line-height:1 }
-.section-title .accent { color: var(--accent); font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400 }
-.section-eyebrow { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:16px }
-.section-meta { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--muted); text-align:right; line-height:1.6 }
-
-/* ===== Filter bar ===== */
-.filters { display:flex; gap:8px; align-items:center; margin-bottom:18px; flex-wrap:wrap }
-.chip { padding:8px 16px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); background:transparent; border:1px solid var(--line); cursor:pointer; transition:all 0.2s; font-family:inherit }
-.chip:hover { border-color:var(--paper) }
-.chip.active { background:var(--paper); color:var(--bg); border-color:var(--paper) }
-.search { flex:0 1 280px; margin-left:auto; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:6px 0 }
-.search input { flex:1; background:transparent; border:0; color:var(--paper); font-family:inherit; font-size:13px; outline:none; letter-spacing:0.04em }
-.search input::placeholder { color:var(--muted) }
-.search svg { width:16px; height:16px; stroke:var(--muted); fill:none; stroke-width:1.5 }
-
-/* ===== Grid-density slider ===== */
-.density { display:flex; align-items:center; gap:14px; padding:6px 0; margin-bottom:24px }
-.density label { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--muted) }
-.density input[type=range] { flex:1; max-width:240px; -webkit-appearance:none; appearance:none; height:1px; background:var(--line); outline:none }
-.density input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50% }
-.density input[type=range]::-moz-range-thumb { width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50%; border:0 }
-.density .ct { font-size:11px; color:var(--muted); letter-spacing:0.18em; text-transform:uppercase; font-weight:600; min-width:80px }
-
-/* ===== Stats line ===== */
-.stat-line { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:24px }
-
-/* ===== Product grid (novasuede pattern: flush grid + slide-up overlay) ===== */
-.grid { display:grid; grid-template-columns:repeat(var(--cols), 1fr); gap:0 }
-.card { position:relative; aspect-ratio:1/1.15; cursor:pointer; overflow:hidden; border:1px solid var(--bg); transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1); background:var(--bg-soft) }
-.card:hover { transform:scale(1.04); z-index:5 }
-.card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease }
-.card .overlay { position:absolute; left:0; right:0; bottom:0; padding:20px 16px 14px; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%); transform:translateY(48%); opacity:0.85; transition:transform 0.3s ease, opacity 0.3s ease }
-.card:hover .overlay { transform:translateY(0); opacity:1 }
-.card .pat { font-size:13px; font-weight:600; letter-spacing:0.02em; color:#fff; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
-.card .ven { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#fff; opacity:0.7; font-weight:500; margin-top:4px }
-.card .actions { margin-top:10px; display:flex; gap:6px }
-.card .sample-btn { flex:1; padding:7px 10px; background:#fff; color:#000; font-family:inherit; font-size:10px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; border:0; cursor:pointer; text-align:center; transition:all 0.2s }
-.card .sample-btn:hover { background:var(--accent); color:#fff }
-
-@media (max-width:1024px) { .grid { grid-template-columns:repeat(min(var(--cols), 4), 1fr) } }
-@media (max-width:720px) { .grid { grid-template-columns:repeat(2, 1fr) } .density { display:none } }
-
-.sentinel { height:1px }
-.loading { text-align:center; color:var(--muted); padding:32px; font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700 }
-
-/* ===== Footer ===== */
-footer { padding:64px 32px 32px; border-top:1px solid var(--line); margin-top:32px }
-.footer-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr; gap:48px; margin-bottom:48px }
-.footer-brand { font-size:24px; font-weight:300; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:12px }
-.footer-text { font-size:13px; line-height:1.6; color:var(--muted); max-width:380px }
-.footer-col h4 { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--paper); margin-bottom:18px }
-.footer-col a { display:block; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:8px; transition:color 0.2s; cursor:pointer; background:transparent; border:0; font-family:inherit; padding:0; text-align:left }
-.footer-col a:hover { color:var(--accent) }
-.footer-bottom { max-width:1400px; margin:0 auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted) }
-
-@media (max-width:720px) {
- .corner-mark, .meta-line, .enter { font-size:10px }
- .center-mark { font-size:30px; letter-spacing:0.32em }
- .section, footer { padding-left:20px; padding-right:20px }
- .footer-grid { grid-template-columns:1fr; gap:32px }
- .search { margin-left:0; flex:1 1 100% }
-}
-
-.theme-toggle { background:transparent; border:1px solid var(--line); width:32px; height:32px; cursor:pointer; color:var(--paper); display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; transition:all .15s; padding:0 }
-.theme-toggle:hover { border-color:var(--accent); color:var(--accent) }
-
-/* ===== WCAG 2.4.7 — keyboard focus indicators ===== */
-/* Strictly :focus-visible so mouse clicks do NOT show the ring */
-a:focus-visible,
-button:focus-visible,
-input:focus-visible,
-select:focus-visible,
-textarea:focus-visible,
-[tabindex]:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
-}
-</style>
-<script>
-(function(){ try { var t = localStorage.getItem('arch_theme') || 'light'; document.documentElement.dataset.theme = t; } catch(e){} })();
-</script>
-<link rel="preconnect" href="https://fonts.googleapis.com">
-<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap">
-</head>
-<body>
-
-<header>
- <button class="h-link" onclick="dwmOpen('Contact')" aria-label="Contact"><svg class="h-icon" viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/></svg><span>Contact</span></button>
- <button class="theme-toggle" id="theme-toggle" aria-label="Theme toggle">☾</button>
-</header>
-
-<section class="cinema">
- <div class="cinema-bg" id="heroBg"></div>
- <div class="corner-mark">Specifier-Grade</div>
- <div class="center-mark">ARCHITECTURAL<span class="tm">.</span><span class="sub">Spec. Build. Repeat.</span></div>
- <div class="meta-line">Architectural · Specifier · Class A · Contract<span class="num" id="heroNum"></span></div>
- <a class="enter" href="#shop">Enter <svg viewBox="0 0 24 12" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M0 6h22M16 1l6 5-6 5"/></svg></a>
-</section>
-
-<section class="section" id="shop">
- <div class="section-header">
- <div>
- <div class="section-eyebrow">The Collection</div>
- <h2 class="section-title"><span class="accent" id="totalCount">—</span> Patterns.</h2>
- </div>
- <div class="section-meta">Architectural · Specifier · Class A · Contract</div>
- </div>
-
- <div class="filters" id="facets">
- <button class="chip active" data-facet="all">All</button>
- </div>
-
- <div class="density">
- <label>Sort</label>
- <select id="sortSelect" aria-label="Sort products" style="background:transparent;color:inherit;border:1px solid var(--line,rgba(255,255,255,.2));font:inherit;font-size:11px;letter-spacing:.10em;text-transform:uppercase;padding:4px 8px;cursor:pointer;outline:none;margin-right:14px">
- <option value="newest">Newest</option>
- <option value="color">Color</option>
- <option value="style">Style</option>
- <option value="sku">SKU A→Z</option>
- <option value="title">Title A→Z</option>
- <option value="price-asc">Price ↑</option>
- <option value="price-desc">Price ↓</option>
- </select>
- <label>Grid</label>
- <input type="range" id="densitySlider" min="4" max="12" step="1" value="6" aria-label="Grid columns">
- <span class="ct" id="densityLabel">6 cols</span>
- <div class="search">
- <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-5.5-5.5"/></svg>
- <input type="text" id="searchInput" placeholder="Search by pattern, color…" autocomplete="off">
- </div>
- </div>
-
- <div class="stat-line" id="statLine">Loading…</div>
- <div class="grid" id="grid"></div>
- <div class="loading" id="loading">Loading more…</div>
- <div class="sentinel" id="sentinel"></div>
-</section>
-
-<footer>
- <div class="footer-grid">
- <div>
- <div class="footer-brand">ARCHITECTURAL</div>
- <p class="footer-text">Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.</p>
- <p class="footer-text" style="margin-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;color:var(--paper);opacity:0.7"><a href="/about" style="color:inherit;text-decoration:none;border-bottom:1px solid var(--accent)">About →</a></p>
- </div>
- <div class="footer-col">
- <h4>Aesthetic</h4>
- <div id="footerFacets"></div>
- </div>
- <div class="footer-col">
- <h4>Trade</h4>
- <button onclick="dwmOpen('Inquiry')">Project Inquiry</button>
- <button onclick="dwmOpen('Sample')">Request Sample</button>
- <button onclick="dwmOpen('Contact')">Contact</button>
- </div>
- </div>
- <div class="footer-bottom">
- <span>architecturalwallcoverings.com · Studio Toten</span>
- <span><a href="mailto:info@architecturalwallcoverings.com" style="color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px">info@architecturalwallcoverings.com</a></span>
- <span id="footerStat"></span>
- </div>
-</footer>
-
-<script>
-// mini-constellation — 43 niche-stars, current site highlighted in gold
-(function(){
- const SLUG = "architecturalwallcoverings";
- const NICHES = [
- ['silkwallpaper','Silk','mat'],['silkwallcoverings','Silk W/C','mat'],['linenwallpaper','Linen','mat'],
- ['jutewallpaper','Jute','mat'],['raffiawallcoverings','Raffia W/C','mat'],['raffiawalls','Raffia Walls','mat'],
- ['corkwallcovering','Cork','mat'],['fabricwallpaper','Fabric','mat'],['textilewallpaper','Textile','mat'],
- ['metallicwallpaper','Metallic','mat'],['silverleafwallpaper','Silver Leaf','mat'],['vinylwallpaper','Vinyl','mat'],
- ['micawallpaper','Mica','mat'],['madagascarwallpaper','Madagascar','mat'],['mylarwallpaper','Mylar','mat'],
- ['suedewallpaper','Suede','mat'],
- ['1800swallpaper','1800s','dec'],['1890swallpaper','1890s','dec'],['1900swallpaper','1900s','dec'],
- ['1920swallpaper','1920s','dec'],['1930swallpaper','1930s','dec'],['1940swallpaper','1940s','dec'],
- ['1950swallpaper','1950s','dec'],['1960swallpaper','1960s','dec'],['1970swallpaper','1970s','dec'],
- ['1980swallpaper','1980s','dec'],['retrowalls','Retro','dec'],['wallpapersback','W. Back','dec'],
- ['agedwallpaper','Aged','cra'],['handcraftedwallpaper','Handcrafted','cra'],['museumwallpaper','Museum','cra'],
- ['restorationwallpaper','Restoration','cra'],['pastelwallpaper','Pastel','cra'],['glitterwalls','Glitter','cra'],
- ['greenwallcoverings','Green','cra'],['naturalwallcoverings','Natural','cra'],['saloonwallpaper','Saloon','cra'],
- ['contractwallpaper','Contract','use'],['hotelwallcoverings','Hotel','use'],['hospitalitywallpaper','Hospitality','use'],
- ['healthcarewallpaper','Healthcare','use'],['restaurantwallpaper','Restaurant','use'],['architecturalwallcoverings','Architectural','use']
- ];
- const COLOR = { mat:'#c9b687', dec:'#b86a4a', cra:'#6b8e6f', use:'#4a6b8e' };
- const W = 1080, H = 200, BANDS = ['mat','dec','cra','use'];
- const groups = { mat:[], dec:[], cra:[], use:[] };
- for (const n of NICHES) groups[n[2]].push(n);
- const svg = document.getElementById('miniConst');
- if (!svg) return;
- const bandW = W / BANDS.length;
- let nodes = '';
- BANDS.forEach((band, bi) => {
- const list = groups[band];
- const cx = bi * bandW + bandW / 2;
- list.forEach((n, i) => {
- const t = list.length === 1 ? 0.5 : i / (list.length - 1);
- // deterministic jitter per slug
- let h = 0; for (let k = 0; k < n[0].length; k++) h = (h * 31 + n[0].charCodeAt(k)) | 0;
- const jx = ((h & 0xff) / 255 - 0.5) * (bandW * 0.5);
- const jy = (((h >> 8) & 0xff) / 255 - 0.5) * 6; // tightened from 14 → 6 to prevent same-band collisions (16 mat nodes / 144px = 9px spacing)
- const x = cx + jx, y = 28 + t * (H - 56) + jy;
- const isCurrent = n[0] === SLUG;
- const r = isCurrent ? 8 : 4;
- const op = isCurrent ? 1 : 0.55;
- nodes += `<g class="mc-node" data-slug="${n[0]}" data-label="${n[1]}" style="cursor:pointer">
- <circle cx="${x}" cy="${y}" r="${r}" fill="url(#dna-${band})" fill-opacity="${op}" stroke="${COLOR[band]}" stroke-opacity="${isCurrent?1:0.7}" stroke-width="${isCurrent?2:1}">
- <title>${n[1]} — ${n[0]}.com</title>
- </circle>
- ${isCurrent ? `<circle cx="${x}" cy="${y}" r="${r+5}" fill="none" stroke="${COLOR[band]}" stroke-opacity="0.4" stroke-width="1"><animate attributeName="r" values="${r+5};${r+12};${r+5}" dur="2.4s" repeatCount="indefinite"/><animate attributeName="stroke-opacity" values="0.4;0;0.4" dur="2.4s" repeatCount="indefinite"/></circle>` : ''}
- </g>`;
- });
- });
- // append nodes after defs
- svg.insertAdjacentHTML('beforeend', nodes);
- svg.querySelectorAll('.mc-node').forEach(n => {
- n.addEventListener('mouseenter', () => n.querySelector('circle').setAttribute('fill-opacity', '1'));
- n.addEventListener('mouseleave', e => {
- const isCurrent = n.dataset.slug === SLUG;
- n.querySelector('circle').setAttribute('fill-opacity', isCurrent ? '1' : '0.55');
- });
- n.addEventListener('click', () => window.open('https://' + n.dataset.slug + '.com', '_blank'));
- });
-})();
-</script>
-
-<script>
-const state = { q:'', facet:'all', page:1, pages:1, total:0, loading:false, exhausted:false };
-const LABELS = {"all":"All"};
-
-function escAttr(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[c])); }
-// Image-URL allowlist: only DW Shopify CDN + designerwallcoverings.com (defends against XSS via crafted products.json)
-function safeImg(u) { return /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(u || '') ? u : '/hero-bg.jpg'; }
-function cardHTML(p) {
- const eager = state.page === 1;
- return '<img loading="' + (eager ? 'eager' : 'lazy') + '"' + (eager ? ' fetchpriority="high"' : '') + ' src="' + escAttr(safeImg(p.image_url)) + '" alt="' + escAttr(p.title) + '">'
- + '<div class="overlay">'
- + '<div class="pat">' + escAttr(p.pattern_name || p.title) + '</div>'
- + '<div class="ven">' + escAttr((p.vendor || '').replace(/-/g, ' ')) + '</div>'
- + '<div class="actions">'
- + '<button class="sample-btn" onclick="event.stopPropagation();dwmOpen(\'Sample\',' + JSON.stringify({sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}).replace(/"/g,'"') + ')">Sample</button>'
- + '</div></div>';
-}
-
-async function loadFacets() {
- let f;
- try {
- const r = await fetch('/api/facets');
- if (!r.ok) throw new Error('HTTP ' + r.status);
- f = await r.json();
- } catch (e) { console.error('loadFacets failed:', e); return; }
- const el = document.getElementById('facets');
- for (const [k, v] of Object.entries(f.aesthetics).sort((a,b) => b[1] - a[1])) {
- const b = document.createElement('button');
- b.className = 'chip'; b.dataset.facet = k;
- b.innerHTML = (LABELS[k] || k) + ' <span style="opacity:.55;font-weight:500;margin-left:4px">' + v + '</span>';
- el.appendChild(b);
- }
- el.addEventListener('click', e => {
- if (e.target.tagName !== 'BUTTON') return;
- document.querySelectorAll('#facets button').forEach(b => b.classList.remove('active'));
- e.target.classList.add('active');
- state.facet = e.target.dataset.facet;
- resetGrid();
- });
- document.getElementById('totalCount').textContent = f.total;
- document.getElementById('footerStat').textContent = f.total + ' patterns · live archive';
- // Footer aesthetic links
- const footerEl = document.getElementById('footerFacets');
- for (const [k] of Object.entries(f.aesthetics)) {
- const b = document.createElement('button');
- b.textContent = LABELS[k] || k;
- b.onclick = () => { state.facet = k; resetGrid(); document.querySelectorAll('#facets button').forEach(x => x.classList.toggle('active', x.dataset.facet === k)); document.getElementById('shop').scrollIntoView({behavior:'smooth'}); };
- footerEl.appendChild(b);
- }
-}
-
-function resetGrid() {
- state.page = 1; state.exhausted = false;
- document.getElementById('grid').innerHTML = '';
- document.getElementById('loading').textContent = 'Loading…';
- loadGridPage();
-}
-
-async function loadGridPage() {
- if (state.loading || state.exhausted) return;
- state.loading = true;
- const params = new URLSearchParams({ page:state.page, limit:24 });
- if (state.q) params.set('q', state.q);
- if (state.facet !== 'all') params.set('aesthetic', state.facet);
- let data;
- try {
- const r = await fetch('/api/products?' + params);
- if (!r.ok) throw new Error('HTTP ' + r.status);
- data = await r.json();
- } catch (e) {
- console.error('loadGridPage failed:', e);
- document.getElementById('loading').textContent = '— offline — refresh to retry —';
- state.loading = false;
- return;
- }
- state.total = data.total; state.pages = data.pages;
-
- if (state.page === 1) {
- document.getElementById('statLine').textContent = data.total + ' patterns · ' + (state.facet === 'all' ? 'all aesthetics' : (LABELS[state.facet] || state.facet)) + (state.q ? ' · matching "' + state.q + '"' : '');
- }
- const grid = document.getElementById('grid');
- for (const p of data.items) {
- const a = document.createElement('a');
- a.className = 'card'; a.href = '#'; a.onclick = (e) => { e.preventDefault(); dwmOpen('Sample',{sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}); };
- a.innerHTML = cardHTML(p);
- grid.appendChild(a);
- }
- if (state.page >= state.pages || data.items.length === 0) {
- state.exhausted = true;
- document.getElementById('loading').textContent = state.total > 0 ? '— end of archive · ' + state.total + ' patterns —' : '';
- } else state.page++;
- state.loading = false;
-}
-
-const io = new IntersectionObserver(es => { for (const e of es) if (e.isIntersecting) loadGridPage(); }, { rootMargin:'600px 0px' });
-io.observe(document.getElementById('sentinel'));
-
-document.getElementById('searchInput').addEventListener('input', e => {
- state.q = e.target.value.trim();
- clearTimeout(window._t);
- window._t = setTimeout(resetGrid, 220);
-});
-
-// Density slider
-const slider = document.getElementById('densitySlider');
-const dlabel = document.getElementById('densityLabel');
-function setDensity(n) {
- document.documentElement.style.setProperty('--cols', n);
- dlabel.textContent = n + ' cols';
- try { localStorage.setItem('arch_theme_density', n); } catch(e){}
-}
-slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
-const savedDensity = parseInt(localStorage.getItem('arch_theme_density') || '6');
-if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
-
-// Theme toggle
-const tb = document.getElementById('theme-toggle');
-function setTheme(t){ document.documentElement.dataset.theme = t; try { localStorage.setItem('arch_theme', t); } catch(e){} tb.textContent = t === 'dark' ? '☾' : '☀'; }
-setTheme(document.documentElement.dataset.theme || 'light');
-tb.addEventListener('click', () => setTheme(document.documentElement.dataset.theme === 'dark' ? 'light' : 'dark'));
-
-loadFacets();
-loadGridPage();
-</script>
-<!-- ============================================================
- DW UNIVERSAL CONTACT MODULE — fashion-house UX
- Inject before </body> in every DW-family sister site.
- Self-contained: CSS + 4 modals + JS submission handlers.
- Uses host site's CSS vars (--bg, --fg, --gold, --rule).
- ============================================================ -->
-<style>
- /* === MODAL BASE === */
- .dwm{position:fixed;inset:0;background:rgba(0,0,0,0.78);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;overflow-y:auto}
- .dwm.open{display:flex}
- .dwm-box{background:var(--bg);border:1px solid var(--rule);max-width:520px;width:100%;padding:36px 32px;position:relative;max-height:90vh;overflow-y:auto;animation:dwm-in 0.25s ease}
- @keyframes dwm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
- .dwm-box h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;font-size:32px;line-height:1.05;margin-bottom:6px;color:var(--fg);letter-spacing:-0.01em}
- .dwm-box .sub{color:var(--muted);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
- .dwm-close{position:absolute;top:18px;right:18px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;width:32px;height:32px;line-height:1;padding:0}
- .dwm-close:hover{color:var(--gold)}
- .dwm-preview{display:flex;gap:14px;align-items:center;padding:12px;background:var(--bg-soft);margin-bottom:18px}
- .dwm-preview img{width:64px;height:64px;object-fit:cover}
- .dwm-preview .pn{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;line-height:1.2;color:var(--fg)}
- .dwm-preview .pc{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
- .dwm-field{margin-bottom:14px}
- .dwm-field label{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
- .dwm-field input,.dwm-field textarea,.dwm-field select{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:8px 4px;font-size:14px;font-family:inherit;color:var(--fg);outline:none;transition:border-color 0.2s}
- .dwm-field input:focus,.dwm-field textarea:focus{border-bottom-color:var(--gold)}
- .dwm-field textarea{min-height:60px;resize:vertical}
- .dwm-submit{background:transparent;color:var(--accent, var(--gold, #c9a14b));border:1px solid var(--accent, var(--gold, #c9a14b));padding:14px 28px;font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:700;cursor:pointer;width:100%;margin-top:8px;transition:background 0.15s, color 0.15s}
- .dwm-submit:hover{background:var(--accent, var(--gold, #c9a14b));color:var(--bg, #000)}
-
- .dwm-submit:disabled{opacity:0.5;cursor:default}
- .dwm-status{margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;display:none}
- .dwm-status.ok{color:var(--sage);display:block}
- .dwm-status.err{color:#e08070;display:block}
- /* contact-options */
- .dwm-options{display:flex;flex-direction:column;gap:10px}
- .dwm-option{display:flex;align-items:center;gap:14px;padding:18px 20px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;transition:all 0.2s;text-align:left;width:100%}
- .dwm-option:hover{border-color:var(--gold);color:var(--gold)}
- .dwm-option svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}
- .dwm-option .lbl{flex:1;display:block}
- .dwm-option .val{display:block;font-size:10px;letter-spacing:0.14em;text-transform:none;font-weight:500;opacity:0.65;margin-top:4px}
-
-/* graphics-loop pass 5: serif hero typography + nav legibility */
-.cinema h1, h1.headline { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; letter-spacing: -0.01em }
-.h-link { font-size: 13px; letter-spacing: 0.06em }
-</style>
-
-<!-- Contact options modal -->
-<div class="dwm" id="dwmContact" onclick="if(event.target===this)dwmClose('Contact')">
- <div class="dwm-box" style="max-width:440px">
- <button class="dwm-close" onclick="dwmClose('Contact')" aria-label="Close">×</button>
- <h3>Contact</h3>
- <p class="sub" id="dwmContactSub">Three ways to reach us</p>
- <div class="dwm-options">
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Inquiry')">
- <svg viewBox="0 0 24 24"><path d="M4 4h16v12H7l-3 3z"/></svg>
- <span class="lbl">Send an Inquiry<span class="val">Project name · scope · all the details</span></span>
- </button>
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Sample')">
- <svg viewBox="0 0 24 24"><rect x="4" y="6" width="16" height="14"/><path d="M4 10h16M9 6V3h6v3"/></svg>
- <span class="lbl">Request a Sample<span class="val">Memo sample · ships free · 3–5 business days</span></span>
- </button>
- <a class="dwm-option" id="dwmContactEmailLink" href="mailto:info@architecturalwallcoverings.com">
- <svg viewBox="0 0 24 24"><path d="M3 6h18v12H3z"/><path d="M3 6l9 7 9-7"/></svg>
- <span class="lbl">Email Us<span class="val" id="dwmContactEmailLabel">info@architecturalwallcoverings.com</span></span>
- </a>
- </div>
- </div>
-</div>
-
-<!-- Inquiry modal -->
-<div class="dwm" id="dwmInquiry" onclick="if(event.target===this)dwmClose('Inquiry')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Inquiry')" aria-label="Close">×</button>
- <h3>Project Inquiry</h3>
- <p class="sub">We'll respond within one business day</p>
- <form id="dwmInquiryForm" onsubmit="return dwmSubmit(event,'inquiry')">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Phone</label><input type="tel" name="phone"></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Project Name</label><input type="text" name="projectName" required></div>
- <div class="dwm-field"><label>Project Scope</label><textarea name="projectScope" placeholder="Square footage · room count · timeline" required></textarea></div>
- <div class="dwm-field"><label>Additional Information</label><textarea name="message" placeholder="Patterns of interest, finish preferences, budget"></textarea></div>
- <button type="submit" class="dwm-submit">Send Inquiry</button>
- <div class="dwm-status" id="dwmInquiryStatus"></div>
- </form>
- </div>
-</div>
-
-<!-- Sample-request modal -->
-<div class="dwm" id="dwmSample" onclick="if(event.target===this)dwmClose('Sample')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Sample')" aria-label="Close">×</button>
- <h3>Request a Sample</h3>
- <p class="sub">Memo sample · ships free · 3–5 business days</p>
- <div class="dwm-preview" id="dwmSamplePreview" style="display:none">
- <img id="dwmSampleImg" src="" alt="">
- <div><div class="pn" id="dwmSampleName"></div><div class="pc" id="dwmSampleSku"></div></div>
- </div>
- <form id="dwmSampleForm" onsubmit="return dwmSubmit(event,'sample')">
- <input type="hidden" name="sku" id="dwmSampleSkuInput">
- <input type="hidden" name="title" id="dwmSampleTitleInput">
- <input type="hidden" name="image_url" id="dwmSampleImageInput">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Shipping Address</label><input type="text" name="address" placeholder="Street" required></div>
- <div class="dwm-field" style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px">
- <input type="text" name="city" placeholder="City" required>
- <input type="text" name="state" placeholder="State" required>
- <input type="text" name="zip" placeholder="ZIP" required>
- </div>
- <div class="dwm-field"><label>Notes (optional)</label><textarea name="message" placeholder="Project, sq.ft., timing"></textarea></div>
- <button type="submit" class="dwm-submit">Send Sample Request</button>
- <div class="dwm-status" id="dwmSampleStatus"></div>
- </form>
- </div>
-</div>
-
-<script>
- // Universal modal control
- function dwmOpen(name, opts){
- document.getElementById('dwm' + name).classList.add('open');
- document.body.style.overflow = 'hidden';
- if (name === 'Sample' && opts) {
- document.getElementById('dwmSamplePreview').style.display = 'flex';
- document.getElementById('dwmSampleImg').src = opts.image_url || '';
- document.getElementById('dwmSampleName').textContent = opts.title || '';
- document.getElementById('dwmSampleSku').textContent = opts.sku || '';
- document.getElementById('dwmSampleSkuInput').value = opts.sku || '';
- document.getElementById('dwmSampleTitleInput').value = opts.title || '';
- document.getElementById('dwmSampleImageInput').value = opts.image_url || '';
- } else if (name === 'Sample') {
- document.getElementById('dwmSamplePreview').style.display = 'none';
- document.getElementById('dwmSampleSkuInput').value = '';
- document.getElementById('dwmSampleTitleInput').value = '';
- document.getElementById('dwmSampleImageInput').value = '';
- }
- }
- function dwmClose(name){ document.getElementById('dwm'+name).classList.remove('open'); document.body.style.overflow=''; }
-
- // Universal form submit — POSTs to /api/send-{kind}
- async function dwmSubmit(e, kind) {
- e.preventDefault();
- const form = e.target;
- const data = Object.fromEntries(new FormData(form).entries());
- const btn = form.querySelector('.dwm-submit');
- const status = form.querySelector('.dwm-status');
- btn.disabled = true; const orig = btn.textContent; btn.textContent = 'Sending…';
- status.className = 'dwm-status';
- try {
- const r = await fetch('/api/send-' + kind, { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
- if (!r.ok) throw new Error('HTTP '+r.status);
- const j = await r.json();
- status.textContent = kind === 'sample' ? 'Sample request sent — ships within 3–5 business days' : 'Inquiry sent — we respond within 1 business day';
- status.className = 'dwm-status ok';
- btn.textContent = 'Sent ✓';
- setTimeout(() => { dwmClose(kind === 'sample' ? 'Sample' : 'Inquiry'); btn.disabled = false; btn.textContent = orig; status.className = 'dwm-status'; form.reset(); }, 2800);
- } catch (err) {
- status.textContent = 'Send failed — please email info@designerwallcoverings.com';
- status.className = 'dwm-status err';
- btn.disabled = false; btn.textContent = orig;
- }
- return false;
- }
-
- // Wire up "Memo samples ship free" badge in hero to open sample modal directly
- document.querySelectorAll('.hero .badge, [data-open-sample]').forEach(el => {
- el.style.cursor = 'pointer';
- el.addEventListener('click', () => dwmOpen('Sample'));
- });
-
- // Wire nav "Trade" link to inquiry modal
- document.querySelectorAll('nav a[href*="designerwallcoverings.com"]').forEach(a => {
- a.removeAttribute('target');
- a.removeAttribute('href');
- a.style.cursor = 'pointer';
- a.addEventListener('click', e => { e.preventDefault(); dwmOpen('Contact'); });
- });
-
- // Override product card clicks — open Sample modal pre-filled instead of redirecting to DW
- document.addEventListener('click', e => {
- const card = e.target.closest('.card, .rail-card');
- if (!card) return;
- if (card.tagName === 'A' && (card.getAttribute('href') || '').startsWith('/sample/')) {
- e.preventDefault();
- const img = card.querySelector('img');
- const pat = card.querySelector('.pat');
- const sku = card.getAttribute('href').replace('/sample/', '');
- dwmOpen('Sample', {
- sku,
- title: pat ? pat.textContent.trim() : '',
- image_url: img ? img.src : ''
- });
- }
- }, true);
-// DW STANDARD: hero pulls from products.json[0].image_url so dw-collections-viewer
-// drag-drop / hero-pin updates the live front page on next deploy.
-// Always upgrades to the largest Shopify variant (strips _NxN size suffix) so
-// the full-page hero stays sharp.
-(async function hydrateHero() {
- try {
- const r = await fetch('/api/products?limit=1');
- if (!r.ok) return;
- const d = await r.json();
- let url = d.items && d.items[0] && d.items[0].image_url;
- if (!url) return;
- if (/^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(url)) {
- url = url.replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- const bg = document.getElementById('heroBg');
- if (bg) bg.style.backgroundImage = "url('" + url + "')";
- }
- } catch(e){}
-})();
-
-
-// DW STANDARD sort-select wire-up (added by fleet patcher)
-(function(){
- const sortSel = document.getElementById('sortSelect');
- if (!sortSel) return;
- const KEY = location.hostname.replace(/\./g, '_') + '_sort';
- const saved = localStorage.getItem(KEY);
- if (saved) { try { sortSel.value = saved; } catch(e){} }
- if (typeof state !== 'undefined') state.sort = sortSel.value;
- sortSel.addEventListener('change', e => {
- const v = e.target.value;
- try { localStorage.setItem(KEY, v); } catch(e){}
- if (typeof state !== 'undefined') state.sort = v;
- if (typeof resetGrid === 'function') resetGrid();
- else location.reload();
- });
-})();
-</script>
-
-</body>
-</html>
diff --git a/public/index.html.bak.dom.1778168197443 b/public/index.html.bak.dom.1778168197443
deleted file mode 100644
index 04a025e..0000000
--- a/public/index.html.bak.dom.1778168197443
+++ /dev/null
@@ -1,663 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
-<meta charset="utf-8">
-<!-- Google tag (gtag.js) -->
-<script async src="https://www.googletagmanager.com/gtag/js?id=G-PN839G9FD8"></script>
-<script>
- window.dataLayer = window.dataLayer || [];
- function gtag(){dataLayer.push(arguments);}
- gtag('js', new Date());
- gtag('config', 'G-PN839G9FD8');
-</script>
-
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>Studio Toten — architectural. Useful.</title>
-<meta name="description" content="Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.">
-<meta name="theme-color" content="#F5F2ED">
-<link rel="canonical" href="https://architecturalwallcoverings.com/">
-<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&display=swap" rel="stylesheet">
-<link rel="preload" as="image" href="/hero-bg.jpg" fetchpriority="high">
-<script type="application/ld+json">
-{
- "@context": "https://schema.org",
- "@type": "Organization",
- "name": "Studio Toten",
- "url": "https://architecturalwallcoverings.com/",
- "email": "info@architecturalwallcoverings.com"
-}
-</script>
-<script src="/zd-loader.js" defer></script>
-<style>
-:root {
- --bg: #F5F2ED;
- --paper: #1A1A1A;
- --muted: #8B7866;
- --line: #D5CFC4;
- --accent: #1A1A1A;
- --bg-soft: #D5CFC4;
- --cols: 6;
-}
-html[data-theme="dark"] {
- --bg: #1a1410;
- --paper: #F5F2ED;
- --muted: #C9B89E;
- --line: rgba(255,254,250,0.12);
- --accent: #1A1A1A;
- --bg-soft: #2a1f15;
-}
-* { margin:0; padding:0; box-sizing:border-box }
-html { scroll-behavior:smooth }
-body { font-family:'Inter', sans-serif; color:var(--paper); -webkit-font-smoothing:antialiased; background:var(--bg); min-height:100vh; overflow-x:hidden }
-/* DW-FASHION-TEMPLATE-OVERRIDE */
-.section-title .accent, .footer-brand, .center-mark, h1, h2, h3 { font-family:'Inter', Georgia, serif !important; font-weight:400 !important; }
-
-/* ===== Auto-hide header ===== */
-header { position:fixed; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 32px; z-index:100; background:rgba(0,0,0,0.55); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:transform .3s }
-.h-link { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); text-decoration:none; cursor:pointer; background:transparent; border:0 }
-.h-link:hover { opacity:0.7 }
-.h-icon { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }
-
-/* ===== Cinema hero ===== */
-.cinema { position:relative; height:100vh; width:100%; overflow:hidden }
-.cinema-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-image:url('/hero-bg.jpg') }
-.cinema-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.75) 100%) }
-.corner-mark { position:absolute; top:24px; left:32px; font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,0.55), 0 0 1px rgba(0,0,0,0.4); z-index:5 }
-.corner-mark::before { content:"◆ "; margin-right:6px }
-.center-mark { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-size:clamp(34px,5vw,72px); font-weight:300; letter-spacing:0.42em; text-transform:uppercase; text-align:center; color:#fff; z-index:5; mix-blend-mode:difference }
-.center-mark .tm { font-size:14px; vertical-align:super; opacity:0.7; margin-left:0.2em }
-.center-mark .sub { display:block; font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400; font-size:0.4em; letter-spacing:0.04em; text-transform:none; margin-top:14px; opacity:0.85 }
-.meta-line { position:absolute; bottom:32px; left:32px; font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:700; color:#fff; z-index:5; opacity:0.85 }
-.meta-line .num { font-size:12px; display:block; margin-top:4px; letter-spacing:0.05em }
-.enter { position:absolute; bottom:32px; right:32px; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:0.36em; text-transform:uppercase; font-weight:700; color:#fff; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #fff; transition:gap 0.25s; z-index:5 }
-.enter:hover { gap:22px }
-.enter svg { width:24px; height:12px }
-
-/* ===== Section ===== */
-.section { padding:96px 32px }
-.section-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--line) }
-.section-title { font-size:clamp(36px,5vw,64px); font-weight:300; letter-spacing:-0.02em; line-height:1 }
-.section-title .accent { color: var(--accent); font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400 }
-.section-eyebrow { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:16px }
-.section-meta { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--muted); text-align:right; line-height:1.6 }
-
-/* ===== Filter bar ===== */
-.filters { display:flex; gap:8px; align-items:center; margin-bottom:18px; flex-wrap:wrap }
-.chip { padding:8px 16px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); background:transparent; border:1px solid var(--line); cursor:pointer; transition:all 0.2s; font-family:inherit }
-.chip:hover { border-color:var(--paper) }
-.chip.active { background:var(--paper); color:var(--bg); border-color:var(--paper) }
-.search { flex:0 1 280px; margin-left:auto; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:6px 0 }
-.search input { flex:1; background:transparent; border:0; color:var(--paper); font-family:inherit; font-size:13px; outline:none; letter-spacing:0.04em }
-.search input::placeholder { color:var(--muted) }
-.search svg { width:16px; height:16px; stroke:var(--muted); fill:none; stroke-width:1.5 }
-
-/* ===== Grid-density slider ===== */
-.density { display:flex; align-items:center; gap:14px; padding:6px 0; margin-bottom:24px }
-.density label { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--muted) }
-.density input[type=range] { flex:1; max-width:240px; -webkit-appearance:none; appearance:none; height:1px; background:var(--line); outline:none }
-.density input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50% }
-.density input[type=range]::-moz-range-thumb { width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50%; border:0 }
-.density .ct { font-size:11px; color:var(--muted); letter-spacing:0.18em; text-transform:uppercase; font-weight:600; min-width:80px }
-
-/* ===== Stats line ===== */
-.stat-line { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:24px }
-
-/* ===== Product grid (novasuede pattern: flush grid + slide-up overlay) ===== */
-.grid { display:grid; grid-template-columns:repeat(var(--cols), 1fr); gap:0 }
-.card { position:relative; aspect-ratio:1/1.15; cursor:pointer; overflow:hidden; border:1px solid var(--bg); transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1); background:var(--bg-soft) }
-.card:hover { transform:scale(1.04); z-index:5 }
-.card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease }
-.card .overlay { position:absolute; left:0; right:0; bottom:0; padding:20px 16px 14px; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%); transform:translateY(48%); opacity:0.85; transition:transform 0.3s ease, opacity 0.3s ease }
-.card:hover .overlay { transform:translateY(0); opacity:1 }
-.card .pat { font-size:13px; font-weight:600; letter-spacing:0.02em; color:#fff; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
-.card .ven { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#fff; opacity:0.7; font-weight:500; margin-top:4px }
-.card .actions { margin-top:10px; display:flex; gap:6px }
-.card .sample-btn { flex:1; padding:7px 10px; background:#fff; color:#000; font-family:inherit; font-size:10px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; border:0; cursor:pointer; text-align:center; transition:all 0.2s }
-.card .sample-btn:hover { background:var(--accent); color:#fff }
-
-@media (max-width:1024px) { .grid { grid-template-columns:repeat(min(var(--cols), 4), 1fr) } }
-@media (max-width:720px) { .grid { grid-template-columns:repeat(2, 1fr) } .density { display:none } }
-
-.sentinel { height:1px }
-.loading { text-align:center; color:var(--muted); padding:32px; font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700 }
-
-/* ===== Footer ===== */
-footer { padding:64px 32px 32px; border-top:1px solid var(--line); margin-top:32px }
-.footer-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr; gap:48px; margin-bottom:48px }
-.footer-brand { font-size:24px; font-weight:300; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:12px }
-.footer-text { font-size:13px; line-height:1.6; color:var(--muted); max-width:380px }
-.footer-col h4 { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--paper); margin-bottom:18px }
-.footer-col a { display:block; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:8px; transition:color 0.2s; cursor:pointer; background:transparent; border:0; font-family:inherit; padding:0; text-align:left }
-.footer-col a:hover { color:var(--accent) }
-.footer-bottom { max-width:1400px; margin:0 auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted) }
-
-@media (max-width:720px) {
- .corner-mark, .meta-line, .enter { font-size:10px }
- .center-mark { font-size:30px; letter-spacing:0.32em }
- .section, footer { padding-left:20px; padding-right:20px }
- .footer-grid { grid-template-columns:1fr; gap:32px }
- .search { margin-left:0; flex:1 1 100% }
-}
-
-.theme-toggle { background:transparent; border:1px solid var(--line); width:32px; height:32px; cursor:pointer; color:var(--paper); display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; transition:all .15s; padding:0 }
-.theme-toggle:hover { border-color:var(--accent); color:var(--accent) }
-
-/* ===== WCAG 2.4.7 — keyboard focus indicators ===== */
-/* Strictly :focus-visible so mouse clicks do NOT show the ring */
-a:focus-visible,
-button:focus-visible,
-input:focus-visible,
-select:focus-visible,
-textarea:focus-visible,
-[tabindex]:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
-}
-</style>
-<script>
-(function(){ try { var t = localStorage.getItem('arch_theme') || 'light'; document.documentElement.dataset.theme = t; } catch(e){} })();
-</script>
-<link rel="preconnect" href="https://fonts.googleapis.com">
-<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&display=swap">
-</head>
-<body>
-
-<header>
- <button class="h-link" onclick="dwmOpen('Contact')" aria-label="Contact"><svg class="h-icon" viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/></svg><span>Contact</span></button>
- <button class="theme-toggle" id="theme-toggle" aria-label="Theme toggle">☾</button>
-</header>
-
-<section class="cinema">
- <div class="cinema-bg" id="heroBg"></div>
- <div class="corner-mark">Specifier-Grade</div>
- <div class="center-mark">ARCHITECTURAL<span class="tm">.</span><span class="sub">Spec. Build. Repeat.</span></div>
- <div class="meta-line">Architectural · Specifier · Class A · Contract<span class="num" id="heroNum"></span></div>
- <a class="enter" href="#shop">Enter <svg viewBox="0 0 24 12" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M0 6h22M16 1l6 5-6 5"/></svg></a>
-</section>
-
-<section class="section" id="shop">
- <div class="section-header">
- <div>
- <div class="section-eyebrow">The Collection</div>
- <h2 class="section-title"><span class="accent" id="totalCount">—</span> Patterns.</h2>
- </div>
- <div class="section-meta">Architectural · Specifier · Class A · Contract</div>
- </div>
-
- <div class="filters" id="facets">
- <button class="chip active" data-facet="all">All</button>
- </div>
-
- <div class="density">
- <label>Sort</label>
- <select id="sortSelect" aria-label="Sort products" style="background:transparent;color:inherit;border:1px solid var(--line,rgba(255,255,255,.2));font:inherit;font-size:11px;letter-spacing:.10em;text-transform:uppercase;padding:4px 8px;cursor:pointer;outline:none;margin-right:14px">
- <option value="newest">Newest</option>
- <option value="color">Color</option>
- <option value="style">Style</option>
- <option value="sku">SKU A→Z</option>
- <option value="title">Title A→Z</option>
- <option value="price-asc">Price ↑</option>
- <option value="price-desc">Price ↓</option>
- </select>
- <label>Grid</label>
- <input type="range" id="densitySlider" min="4" max="12" step="1" value="6" aria-label="Grid columns">
- <span class="ct" id="densityLabel">6 cols</span>
- <div class="search">
- <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-5.5-5.5"/></svg>
- <input type="text" id="searchInput" placeholder="Search by pattern, color…" autocomplete="off">
- </div>
- </div>
-
- <div class="stat-line" id="statLine">Loading…</div>
- <div class="grid" id="grid"></div>
- <div class="loading" id="loading">Loading more…</div>
- <div class="sentinel" id="sentinel"></div>
-</section>
-
-<footer>
- <div class="footer-grid">
- <div>
- <div class="footer-brand">ARCHITECTURAL</div>
- <p class="footer-text">Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.</p>
- <p class="footer-text" style="margin-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;color:var(--paper);opacity:0.7"><a href="/about" style="color:inherit;text-decoration:none;border-bottom:1px solid var(--accent)">About →</a></p>
- </div>
- <div class="footer-col">
- <h4>Aesthetic</h4>
- <div id="footerFacets"></div>
- </div>
- <div class="footer-col">
- <h4>Trade</h4>
- <button onclick="dwmOpen('Inquiry')">Project Inquiry</button>
- <button onclick="dwmOpen('Sample')">Request Sample</button>
- <button onclick="dwmOpen('Contact')">Contact</button>
- </div>
- </div>
- <div class="footer-bottom">
- <span>architecturalwallcoverings.com · Studio Toten</span>
- <span><a href="mailto:info@architecturalwallcoverings.com" style="color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px">info@architecturalwallcoverings.com</a></span>
- <span id="footerStat"></span>
- </div>
-</footer>
-
-<script>
-// mini-constellation — 43 niche-stars, current site highlighted in gold
-(function(){
- const SLUG = "architecturalwallcoverings";
- const NICHES = [
- ['silkwallpaper','Silk','mat'],['silkwallcoverings','Silk W/C','mat'],['linenwallpaper','Linen','mat'],
- ['jutewallpaper','Jute','mat'],['raffiawallcoverings','Raffia W/C','mat'],['raffiawalls','Raffia Walls','mat'],
- ['corkwallcovering','Cork','mat'],['fabricwallpaper','Fabric','mat'],['textilewallpaper','Textile','mat'],
- ['metallicwallpaper','Metallic','mat'],['silverleafwallpaper','Silver Leaf','mat'],['vinylwallpaper','Vinyl','mat'],
- ['micawallpaper','Mica','mat'],['madagascarwallpaper','Madagascar','mat'],['mylarwallpaper','Mylar','mat'],
- ['suedewallpaper','Suede','mat'],
- ['1800swallpaper','1800s','dec'],['1890swallpaper','1890s','dec'],['1900swallpaper','1900s','dec'],
- ['1920swallpaper','1920s','dec'],['1930swallpaper','1930s','dec'],['1940swallpaper','1940s','dec'],
- ['1950swallpaper','1950s','dec'],['1960swallpaper','1960s','dec'],['1970swallpaper','1970s','dec'],
- ['1980swallpaper','1980s','dec'],['retrowalls','Retro','dec'],['wallpapersback','W. Back','dec'],
- ['agedwallpaper','Aged','cra'],['handcraftedwallpaper','Handcrafted','cra'],['museumwallpaper','Museum','cra'],
- ['restorationwallpaper','Restoration','cra'],['pastelwallpaper','Pastel','cra'],['glitterwalls','Glitter','cra'],
- ['greenwallcoverings','Green','cra'],['naturalwallcoverings','Natural','cra'],['saloonwallpaper','Saloon','cra'],
- ['contractwallpaper','Contract','use'],['hotelwallcoverings','Hotel','use'],['hospitalitywallpaper','Hospitality','use'],
- ['healthcarewallpaper','Healthcare','use'],['restaurantwallpaper','Restaurant','use'],['architecturalwallcoverings','Architectural','use']
- ];
- const COLOR = { mat:'#c9b687', dec:'#b86a4a', cra:'#6b8e6f', use:'#4a6b8e' };
- const W = 1080, H = 200, BANDS = ['mat','dec','cra','use'];
- const groups = { mat:[], dec:[], cra:[], use:[] };
- for (const n of NICHES) groups[n[2]].push(n);
- const svg = document.getElementById('miniConst');
- if (!svg) return;
- const bandW = W / BANDS.length;
- let nodes = '';
- BANDS.forEach((band, bi) => {
- const list = groups[band];
- const cx = bi * bandW + bandW / 2;
- list.forEach((n, i) => {
- const t = list.length === 1 ? 0.5 : i / (list.length - 1);
- // deterministic jitter per slug
- let h = 0; for (let k = 0; k < n[0].length; k++) h = (h * 31 + n[0].charCodeAt(k)) | 0;
- const jx = ((h & 0xff) / 255 - 0.5) * (bandW * 0.5);
- const jy = (((h >> 8) & 0xff) / 255 - 0.5) * 6; // tightened from 14 → 6 to prevent same-band collisions (16 mat nodes / 144px = 9px spacing)
- const x = cx + jx, y = 28 + t * (H - 56) + jy;
- const isCurrent = n[0] === SLUG;
- const r = isCurrent ? 8 : 4;
- const op = isCurrent ? 1 : 0.55;
- nodes += `<g class="mc-node" data-slug="${n[0]}" data-label="${n[1]}" style="cursor:pointer">
- <circle cx="${x}" cy="${y}" r="${r}" fill="url(#dna-${band})" fill-opacity="${op}" stroke="${COLOR[band]}" stroke-opacity="${isCurrent?1:0.7}" stroke-width="${isCurrent?2:1}">
- <title>${n[1]} — ${n[0]}.com</title>
- </circle>
- ${isCurrent ? `<circle cx="${x}" cy="${y}" r="${r+5}" fill="none" stroke="${COLOR[band]}" stroke-opacity="0.4" stroke-width="1"><animate attributeName="r" values="${r+5};${r+12};${r+5}" dur="2.4s" repeatCount="indefinite"/><animate attributeName="stroke-opacity" values="0.4;0;0.4" dur="2.4s" repeatCount="indefinite"/></circle>` : ''}
- </g>`;
- });
- });
- // append nodes after defs
- svg.insertAdjacentHTML('beforeend', nodes);
- svg.querySelectorAll('.mc-node').forEach(n => {
- n.addEventListener('mouseenter', () => n.querySelector('circle').setAttribute('fill-opacity', '1'));
- n.addEventListener('mouseleave', e => {
- const isCurrent = n.dataset.slug === SLUG;
- n.querySelector('circle').setAttribute('fill-opacity', isCurrent ? '1' : '0.55');
- });
- n.addEventListener('click', () => window.open('https://' + n.dataset.slug + '.com', '_blank'));
- });
-})();
-</script>
-
-<script>
-const state = { q:'', facet:'all', page:1, pages:1, total:0, loading:false, exhausted:false };
-const LABELS = {"all":"All"};
-
-function escAttr(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[c])); }
-// Image-URL allowlist: only DW Shopify CDN + designerwallcoverings.com (defends against XSS via crafted products.json)
-function safeImg(u) { return /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(u || '') ? u : '/hero-bg.jpg'; }
-function cardHTML(p) {
- const eager = state.page === 1;
- return '<img loading="' + (eager ? 'eager' : 'lazy') + '"' + (eager ? ' fetchpriority="high"' : '') + ' src="' + escAttr(safeImg(p.image_url)) + '" alt="' + escAttr(p.title) + '">'
- + '<div class="overlay">'
- + '<div class="pat">' + escAttr(p.pattern_name || p.title) + '</div>'
- + '<div class="ven">' + escAttr((p.vendor || '').replace(/-/g, ' ')) + '</div>'
- + '<div class="actions">'
- + '<button class="sample-btn" onclick="event.stopPropagation();dwmOpen(\'Sample\',' + JSON.stringify({sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}).replace(/"/g,'"') + ')">Sample</button>'
- + '</div></div>';
-}
-
-async function loadFacets() {
- let f;
- try {
- const r = await fetch('/api/facets');
- if (!r.ok) throw new Error('HTTP ' + r.status);
- f = await r.json();
- } catch (e) { console.error('loadFacets failed:', e); return; }
- const el = document.getElementById('facets');
- for (const [k, v] of Object.entries(f.aesthetics).sort((a,b) => b[1] - a[1])) {
- const b = document.createElement('button');
- b.className = 'chip'; b.dataset.facet = k;
- b.innerHTML = (LABELS[k] || k) + ' <span style="opacity:.55;font-weight:500;margin-left:4px">' + v + '</span>';
- el.appendChild(b);
- }
- el.addEventListener('click', e => {
- if (e.target.tagName !== 'BUTTON') return;
- document.querySelectorAll('#facets button').forEach(b => b.classList.remove('active'));
- e.target.classList.add('active');
- state.facet = e.target.dataset.facet;
- resetGrid();
- });
- document.getElementById('totalCount').textContent = f.total;
- document.getElementById('footerStat').textContent = f.total + ' patterns · live archive';
- // Footer aesthetic links
- const footerEl = document.getElementById('footerFacets');
- for (const [k] of Object.entries(f.aesthetics)) {
- const b = document.createElement('button');
- b.textContent = LABELS[k] || k;
- b.onclick = () => { state.facet = k; resetGrid(); document.querySelectorAll('#facets button').forEach(x => x.classList.toggle('active', x.dataset.facet === k)); document.getElementById('shop').scrollIntoView({behavior:'smooth'}); };
- footerEl.appendChild(b);
- }
-}
-
-function resetGrid() {
- state.page = 1; state.exhausted = false;
- document.getElementById('grid').innerHTML = '';
- document.getElementById('loading').textContent = 'Loading…';
- loadGridPage();
-}
-
-async function loadGridPage() {
- if (state.loading || state.exhausted) return;
- state.loading = true;
- const params = new URLSearchParams({ page:state.page, limit:24 });
- if (state.q) params.set('q', state.q);
- if (state.facet !== 'all') params.set('aesthetic', state.facet);
- let data;
- try {
- const r = await fetch('/api/products?' + params);
- if (!r.ok) throw new Error('HTTP ' + r.status);
- data = await r.json();
- } catch (e) {
- console.error('loadGridPage failed:', e);
- document.getElementById('loading').textContent = '— offline — refresh to retry —';
- state.loading = false;
- return;
- }
- state.total = data.total; state.pages = data.pages;
-
- if (state.page === 1) {
- document.getElementById('statLine').textContent = data.total + ' patterns · ' + (state.facet === 'all' ? 'all aesthetics' : (LABELS[state.facet] || state.facet)) + (state.q ? ' · matching "' + state.q + '"' : '');
- }
- const grid = document.getElementById('grid');
- for (const p of data.items) {
- const a = document.createElement('a');
- a.className = 'card'; a.href = '#'; a.onclick = (e) => { e.preventDefault(); dwmOpen('Sample',{sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}); };
- a.innerHTML = cardHTML(p);
- grid.appendChild(a);
- }
- if (state.page >= state.pages || data.items.length === 0) {
- state.exhausted = true;
- document.getElementById('loading').textContent = state.total > 0 ? '— end of archive · ' + state.total + ' patterns —' : '';
- } else state.page++;
- state.loading = false;
-}
-
-const io = new IntersectionObserver(es => { for (const e of es) if (e.isIntersecting) loadGridPage(); }, { rootMargin:'600px 0px' });
-io.observe(document.getElementById('sentinel'));
-
-document.getElementById('searchInput').addEventListener('input', e => {
- state.q = e.target.value.trim();
- clearTimeout(window._t);
- window._t = setTimeout(resetGrid, 220);
-});
-
-// Density slider
-const slider = document.getElementById('densitySlider');
-const dlabel = document.getElementById('densityLabel');
-function setDensity(n) {
- document.documentElement.style.setProperty('--cols', n);
- dlabel.textContent = n + ' cols';
- try { localStorage.setItem('arch_theme_density', n); } catch(e){}
-}
-slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
-const savedDensity = parseInt(localStorage.getItem('arch_theme_density') || '6');
-if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
-
-// Theme toggle
-const tb = document.getElementById('theme-toggle');
-function setTheme(t){ document.documentElement.dataset.theme = t; try { localStorage.setItem('arch_theme', t); } catch(e){} tb.textContent = t === 'dark' ? '☾' : '☀'; }
-setTheme(document.documentElement.dataset.theme || 'light');
-tb.addEventListener('click', () => setTheme(document.documentElement.dataset.theme === 'dark' ? 'light' : 'dark'));
-
-loadFacets();
-loadGridPage();
-</script>
-<!-- ============================================================
- DW UNIVERSAL CONTACT MODULE — fashion-house UX
- Inject before </body> in every DW-family sister site.
- Self-contained: CSS + 4 modals + JS submission handlers.
- Uses host site's CSS vars (--bg, --fg, --gold, --rule).
- ============================================================ -->
-<style>
- /* === MODAL BASE === */
- .dwm{position:fixed;inset:0;background:rgba(0,0,0,0.78);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;overflow-y:auto}
- .dwm.open{display:flex}
- .dwm-box{background:var(--bg);border:1px solid var(--rule);max-width:520px;width:100%;padding:36px 32px;position:relative;max-height:90vh;overflow-y:auto;animation:dwm-in 0.25s ease}
- @keyframes dwm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
- .dwm-box h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;font-size:32px;line-height:1.05;margin-bottom:6px;color:var(--fg);letter-spacing:-0.01em}
- .dwm-box .sub{color:var(--muted);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
- .dwm-close{position:absolute;top:18px;right:18px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;width:32px;height:32px;line-height:1;padding:0}
- .dwm-close:hover{color:var(--gold)}
- .dwm-preview{display:flex;gap:14px;align-items:center;padding:12px;background:var(--bg-soft);margin-bottom:18px}
- .dwm-preview img{width:64px;height:64px;object-fit:cover}
- .dwm-preview .pn{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;line-height:1.2;color:var(--fg)}
- .dwm-preview .pc{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
- .dwm-field{margin-bottom:14px}
- .dwm-field label{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
- .dwm-field input,.dwm-field textarea,.dwm-field select{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:8px 4px;font-size:14px;font-family:inherit;color:var(--fg);outline:none;transition:border-color 0.2s}
- .dwm-field input:focus,.dwm-field textarea:focus{border-bottom-color:var(--gold)}
- .dwm-field textarea{min-height:60px;resize:vertical}
- .dwm-submit{background:var(--gold);color:#000;border:0;padding:14px 28px;font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:700;cursor:pointer;width:100%;margin-top:8px;transition:opacity 0.15s}
- .dwm-submit:hover{opacity:0.85}
- .dwm-submit:disabled{opacity:0.5;cursor:default}
- .dwm-status{margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;display:none}
- .dwm-status.ok{color:var(--sage);display:block}
- .dwm-status.err{color:#e08070;display:block}
- /* contact-options */
- .dwm-options{display:flex;flex-direction:column;gap:10px}
- .dwm-option{display:flex;align-items:center;gap:14px;padding:18px 20px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;transition:all 0.2s;text-align:left;width:100%}
- .dwm-option:hover{border-color:var(--gold);color:var(--gold)}
- .dwm-option svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}
- .dwm-option .lbl{flex:1;display:block}
- .dwm-option .val{display:block;font-size:10px;letter-spacing:0.14em;text-transform:none;font-weight:500;opacity:0.65;margin-top:4px}
-
-/* graphics-loop pass 5: serif hero typography + nav legibility */
-.cinema h1, h1.headline { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; letter-spacing: -0.01em }
-.h-link { font-size: 13px; letter-spacing: 0.06em }
-</style>
-
-<!-- Contact options modal -->
-<div class="dwm" id="dwmContact" onclick="if(event.target===this)dwmClose('Contact')">
- <div class="dwm-box" style="max-width:440px">
- <button class="dwm-close" onclick="dwmClose('Contact')" aria-label="Close">×</button>
- <h3>Contact</h3>
- <p class="sub" id="dwmContactSub">Three ways to reach us</p>
- <div class="dwm-options">
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Inquiry')">
- <svg viewBox="0 0 24 24"><path d="M4 4h16v12H7l-3 3z"/></svg>
- <span class="lbl">Send an Inquiry<span class="val">Project name · scope · all the details</span></span>
- </button>
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Sample')">
- <svg viewBox="0 0 24 24"><rect x="4" y="6" width="16" height="14"/><path d="M4 10h16M9 6V3h6v3"/></svg>
- <span class="lbl">Request a Sample<span class="val">Memo sample · ships free · 3–5 business days</span></span>
- </button>
- <a class="dwm-option" id="dwmContactEmailLink" href="mailto:info@{{DOMAIN}}">
- <svg viewBox="0 0 24 24"><path d="M3 6h18v12H3z"/><path d="M3 6l9 7 9-7"/></svg>
- <span class="lbl">Email Us<span class="val" id="dwmContactEmailLabel">info@{{DOMAIN}}</span></span>
- </a>
- </div>
- </div>
-</div>
-
-<!-- Inquiry modal -->
-<div class="dwm" id="dwmInquiry" onclick="if(event.target===this)dwmClose('Inquiry')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Inquiry')" aria-label="Close">×</button>
- <h3>Project Inquiry</h3>
- <p class="sub">We'll respond within one business day</p>
- <form id="dwmInquiryForm" onsubmit="return dwmSubmit(event,'inquiry')">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Phone</label><input type="tel" name="phone"></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Project Name</label><input type="text" name="projectName" required></div>
- <div class="dwm-field"><label>Project Scope</label><textarea name="projectScope" placeholder="Square footage · room count · timeline" required></textarea></div>
- <div class="dwm-field"><label>Additional Information</label><textarea name="message" placeholder="Patterns of interest, finish preferences, budget"></textarea></div>
- <button type="submit" class="dwm-submit">Send Inquiry</button>
- <div class="dwm-status" id="dwmInquiryStatus"></div>
- </form>
- </div>
-</div>
-
-<!-- Sample-request modal -->
-<div class="dwm" id="dwmSample" onclick="if(event.target===this)dwmClose('Sample')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Sample')" aria-label="Close">×</button>
- <h3>Request a Sample</h3>
- <p class="sub">Memo sample · ships free · 3–5 business days</p>
- <div class="dwm-preview" id="dwmSamplePreview" style="display:none">
- <img id="dwmSampleImg" src="" alt="">
- <div><div class="pn" id="dwmSampleName"></div><div class="pc" id="dwmSampleSku"></div></div>
- </div>
- <form id="dwmSampleForm" onsubmit="return dwmSubmit(event,'sample')">
- <input type="hidden" name="sku" id="dwmSampleSkuInput">
- <input type="hidden" name="title" id="dwmSampleTitleInput">
- <input type="hidden" name="image_url" id="dwmSampleImageInput">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Shipping Address</label><input type="text" name="address" placeholder="Street" required></div>
- <div class="dwm-field" style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px">
- <input type="text" name="city" placeholder="City" required>
- <input type="text" name="state" placeholder="State" required>
- <input type="text" name="zip" placeholder="ZIP" required>
- </div>
- <div class="dwm-field"><label>Notes (optional)</label><textarea name="message" placeholder="Project, sq.ft., timing"></textarea></div>
- <button type="submit" class="dwm-submit">Send Sample Request</button>
- <div class="dwm-status" id="dwmSampleStatus"></div>
- </form>
- </div>
-</div>
-
-<script>
- // Universal modal control
- function dwmOpen(name, opts){
- document.getElementById('dwm' + name).classList.add('open');
- document.body.style.overflow = 'hidden';
- if (name === 'Sample' && opts) {
- document.getElementById('dwmSamplePreview').style.display = 'flex';
- document.getElementById('dwmSampleImg').src = opts.image_url || '';
- document.getElementById('dwmSampleName').textContent = opts.title || '';
- document.getElementById('dwmSampleSku').textContent = opts.sku || '';
- document.getElementById('dwmSampleSkuInput').value = opts.sku || '';
- document.getElementById('dwmSampleTitleInput').value = opts.title || '';
- document.getElementById('dwmSampleImageInput').value = opts.image_url || '';
- } else if (name === 'Sample') {
- document.getElementById('dwmSamplePreview').style.display = 'none';
- document.getElementById('dwmSampleSkuInput').value = '';
- document.getElementById('dwmSampleTitleInput').value = '';
- document.getElementById('dwmSampleImageInput').value = '';
- }
- }
- function dwmClose(name){ document.getElementById('dwm'+name).classList.remove('open'); document.body.style.overflow=''; }
-
- // Universal form submit — POSTs to /api/send-{kind}
- async function dwmSubmit(e, kind) {
- e.preventDefault();
- const form = e.target;
- const data = Object.fromEntries(new FormData(form).entries());
- const btn = form.querySelector('.dwm-submit');
- const status = form.querySelector('.dwm-status');
- btn.disabled = true; const orig = btn.textContent; btn.textContent = 'Sending…';
- status.className = 'dwm-status';
- try {
- const r = await fetch('/api/send-' + kind, { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
- if (!r.ok) throw new Error('HTTP '+r.status);
- const j = await r.json();
- status.textContent = kind === 'sample' ? 'Sample request sent — ships within 3–5 business days' : 'Inquiry sent — we respond within 1 business day';
- status.className = 'dwm-status ok';
- btn.textContent = 'Sent ✓';
- setTimeout(() => { dwmClose(kind === 'sample' ? 'Sample' : 'Inquiry'); btn.disabled = false; btn.textContent = orig; status.className = 'dwm-status'; form.reset(); }, 2800);
- } catch (err) {
- status.textContent = 'Send failed — please email info@designerwallcoverings.com';
- status.className = 'dwm-status err';
- btn.disabled = false; btn.textContent = orig;
- }
- return false;
- }
-
- // Wire up "Memo samples ship free" badge in hero to open sample modal directly
- document.querySelectorAll('.hero .badge, [data-open-sample]').forEach(el => {
- el.style.cursor = 'pointer';
- el.addEventListener('click', () => dwmOpen('Sample'));
- });
-
- // Wire nav "Trade" link to inquiry modal
- document.querySelectorAll('nav a[href*="designerwallcoverings.com"]').forEach(a => {
- a.removeAttribute('target');
- a.removeAttribute('href');
- a.style.cursor = 'pointer';
- a.addEventListener('click', e => { e.preventDefault(); dwmOpen('Contact'); });
- });
-
- // Override product card clicks — open Sample modal pre-filled instead of redirecting to DW
- document.addEventListener('click', e => {
- const card = e.target.closest('.card, .rail-card');
- if (!card) return;
- if (card.tagName === 'A' && (card.getAttribute('href') || '').startsWith('/sample/')) {
- e.preventDefault();
- const img = card.querySelector('img');
- const pat = card.querySelector('.pat');
- const sku = card.getAttribute('href').replace('/sample/', '');
- dwmOpen('Sample', {
- sku,
- title: pat ? pat.textContent.trim() : '',
- image_url: img ? img.src : ''
- });
- }
- }, true);
-// DW STANDARD: hero pulls from products.json[0].image_url so dw-collections-viewer
-// drag-drop / hero-pin updates the live front page on next deploy.
-// Always upgrades to the largest Shopify variant (strips _NxN size suffix) so
-// the full-page hero stays sharp.
-(async function hydrateHero() {
- try {
- const r = await fetch('/api/products?limit=1');
- if (!r.ok) return;
- const d = await r.json();
- let url = d.items && d.items[0] && d.items[0].image_url;
- if (!url) return;
- if (/^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(url)) {
- url = url.replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- const bg = document.getElementById('heroBg');
- if (bg) bg.style.backgroundImage = "url('" + url + "')";
- }
- } catch(e){}
-})();
-
-
-// DW STANDARD sort-select wire-up (added by fleet patcher)
-(function(){
- const sortSel = document.getElementById('sortSelect');
- if (!sortSel) return;
- const KEY = location.hostname.replace(/\./g, '_') + '_sort';
- const saved = localStorage.getItem(KEY);
- if (saved) { try { sortSel.value = saved; } catch(e){} }
- if (typeof state !== 'undefined') state.sort = sortSel.value;
- sortSel.addEventListener('change', e => {
- const v = e.target.value;
- try { localStorage.setItem(KEY, v); } catch(e){}
- if (typeof state !== 'undefined') state.sort = v;
- if (typeof resetGrid === 'function') resetGrid();
- else location.reload();
- });
-})();
-</script>
-
-</body>
-</html>
diff --git a/public/index.html.bak.dwfoot.1778203445635 b/public/index.html.bak.dwfoot.1778203445635
deleted file mode 100644
index 7a5120a..0000000
--- a/public/index.html.bak.dwfoot.1778203445635
+++ /dev/null
@@ -1,969 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
-<meta charset="utf-8">
-<!-- Google tag (gtag.js) -->
-<script async src="https://www.googletagmanager.com/gtag/js?id=G-PN839G9FD8"></script>
-<script>
- window.dataLayer = window.dataLayer || [];
- function gtag(){dataLayer.push(arguments);}
- gtag('js', new Date());
- gtag('config', 'G-PN839G9FD8');
-</script>
-
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>Studio Toten — architectural. Useful.</title>
-<meta name="description" content="Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.">
-<meta name="theme-color" content="#F5F2ED">
-<link rel="canonical" href="https://architecturalwallcoverings.com/">
-<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&display=swap" rel="stylesheet">
-<link rel="preload" as="image" href="/hero-bg.jpg" fetchpriority="high">
-<script type="application/ld+json">
-{
- "@context": "https://schema.org",
- "@type": "Organization",
- "name": "Studio Toten",
- "url": "https://architecturalwallcoverings.com/",
- "email": "info@architecturalwallcoverings.com"
-}
-</script>
-<script src="/zd-loader.js" defer></script>
-<style>
-:root {
- --bg: #F5F2ED;
- --paper: #1A1A1A;
- --muted: #8B7866;
- --line: #D5CFC4;
- --accent: #1A1A1A;
- --bg-soft: #D5CFC4;
- --cols: 6;
-}
-html[data-theme="dark"] {
- --bg: #1a1410;
- --paper: #F5F2ED;
- --muted: #C9B89E;
- --line: rgba(255,254,250,0.12);
- --accent: #1A1A1A;
- --bg-soft: #2a1f15;
-}
-* { margin:0; padding:0; box-sizing:border-box }
-html { scroll-behavior:smooth }
-body { font-family:'Inter', sans-serif; color:var(--paper); -webkit-font-smoothing:antialiased; background:var(--bg); min-height:100vh; overflow-x:hidden }
-/* DW-FASHION-TEMPLATE-OVERRIDE */
-.section-title .accent, .footer-brand, .center-mark, h1, h2, h3 { font-family:'Inter', Georgia, serif !important; font-weight:400 !important; }
-
-/* ===== Auto-hide header ===== */
-header { position:fixed; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 32px; z-index:100; background:rgba(0,0,0,0.55); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:transform .3s }
-.h-link { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); text-decoration:none; cursor:pointer; background:transparent; border:0 }
-.h-link:hover { opacity:0.7 }
-.h-icon { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }
-
-/* ===== Cinema hero ===== */
-.cinema { position:relative; height:100vh; width:100%; overflow:hidden }
-.cinema-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-image:url('/hero-bg.jpg') }
-.cinema-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.75) 100%) }
-.corner-mark { position:absolute; top:24px; left:32px; font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,0.55), 0 0 1px rgba(0,0,0,0.4); z-index:5 }
-.corner-mark::before { content:"◆ "; margin-right:6px }
-.center-mark { position:absolute; top:clamp(80px,12vh,140px); left:50%; transform:translateX(-50%); font-size:clamp(28px,4vw,56px); font-weight:500; letter-spacing:0.18em; text-transform:uppercase; text-align:center; color:#fff; text-shadow:0 2px 8px rgba(0,0,0,0.65), 0 0 1px rgba(0,0,0,0.5); z-index:5 }
-.center-mark .tm { font-size:14px; vertical-align:super; opacity:0.7; margin-left:0.2em }
-.center-mark .sub { display:block; font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400; font-size:0.4em; letter-spacing:0.04em; text-transform:none; margin-top:14px; opacity:0.85 }
-.meta-line { position:absolute; bottom:32px; left:32px; font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:700; color:#fff; z-index:5; opacity:0.85 }
-.meta-line .num { font-size:12px; display:block; margin-top:4px; letter-spacing:0.05em }
-.enter { position:absolute; bottom:32px; right:32px; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:0.36em; text-transform:uppercase; font-weight:700; color:#fff; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #fff; transition:gap 0.25s; z-index:5 }
-.enter:hover { gap:22px }
-.enter svg { width:24px; height:12px }
-
-/* ===== Section ===== */
-.section { padding:96px 32px }
-.section-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--line) }
-.section-title { font-size:clamp(36px,5vw,64px); font-weight:300; letter-spacing:-0.02em; line-height:1 }
-.section-title .accent { color: var(--accent); font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400 }
-.section-eyebrow { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:16px }
-.section-meta { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--muted); text-align:right; line-height:1.6 }
-
-/* ===== Filter bar ===== */
-.filters { display:flex; gap:8px; align-items:center; margin-bottom:18px; flex-wrap:wrap }
-.chip { padding:8px 16px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); background:transparent; border:1px solid var(--line); cursor:pointer; transition:all 0.2s; font-family:inherit }
-.chip:hover { border-color:var(--paper) }
-.chip.active { background:var(--paper); color:var(--bg); border-color:var(--paper) }
-.search { flex:0 1 280px; margin-left:auto; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:6px 0 }
-.search input { flex:1; background:transparent; border:0; color:var(--paper); font-family:inherit; font-size:13px; outline:none; letter-spacing:0.04em }
-.search input::placeholder { color:var(--muted) }
-.search svg { width:16px; height:16px; stroke:var(--muted); fill:none; stroke-width:1.5 }
-
-/* ===== Grid-density slider ===== */
-.density { display:flex; align-items:center; gap:14px; padding:6px 0; margin-bottom:24px }
-.density label { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--muted) }
-.density input[type=range] { flex:1; max-width:240px; -webkit-appearance:none; appearance:none; height:1px; background:var(--line); outline:none }
-.density input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50% }
-.density input[type=range]::-moz-range-thumb { width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50%; border:0 }
-.density .ct { font-size:11px; color:var(--muted); letter-spacing:0.18em; text-transform:uppercase; font-weight:600; min-width:80px }
-
-/* ===== Stats line ===== */
-.stat-line { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:24px }
-
-/* ===== Product grid (novasuede pattern: flush grid + slide-up overlay) ===== */
-.grid { display:grid; grid-template-columns:repeat(var(--cols), 1fr); gap:0 }
-.card { position:relative; aspect-ratio:1/1.15; cursor:pointer; overflow:hidden; border:1px solid var(--bg); transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1); background:var(--bg-soft) }
-.card:hover { transform:scale(1.04); z-index:5 }
-.card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease }
-.card .overlay { position:absolute; left:0; right:0; bottom:0; padding:20px 16px 14px; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%); transform:translateY(48%); opacity:0.85; transition:transform 0.3s ease, opacity 0.3s ease }
-.card:hover .overlay { transform:translateY(0); opacity:1 }
-.card .pat { font-size:13px; font-weight:600; letter-spacing:0.02em; color:#fff; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
-.card .ven { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#fff; opacity:0.7; font-weight:500; margin-top:4px }
-.card .actions { margin-top:10px; display:flex; gap:6px }
-.card .sample-btn { flex:1; padding:7px 10px; background:#fff; color:#000; font-family:inherit; font-size:10px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; border:0; cursor:pointer; text-align:center; transition:all 0.2s }
-.card .sample-btn:hover { background:var(--accent); color:#fff }
-
-@media (max-width:1024px) { .grid { grid-template-columns:repeat(min(var(--cols), 4), 1fr) } }
-@media (max-width:720px) { .grid { grid-template-columns:repeat(2, 1fr) } .density { display:none } }
-
-.sentinel { height:1px }
-.loading { text-align:center; color:var(--muted); padding:32px; font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700 }
-
-/* ===== Footer ===== */
-footer { padding:64px 32px 32px; border-top:1px solid var(--line); margin-top:32px }
-.footer-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; margin-bottom:48px }
-.footer-brand { font-size:24px; font-weight:300; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:12px }
-.footer-text { font-size:13px; line-height:1.6; color:var(--muted); max-width:380px }
-.footer-col h4 { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--paper); margin-bottom:18px }
-.footer-col a { display:block; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:8px; transition:color 0.2s; cursor:pointer; background:transparent; border:0; font-family:inherit; padding:0; text-align:left }
-.footer-col a:hover { color:var(--accent) }
-.footer-bottom { max-width:1400px; margin:0 auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted) }
-
-@media (max-width:720px) {
- .corner-mark, .meta-line, .enter { font-size:10px }
- .center-mark { font-size:24px; letter-spacing:0.12em; top:clamp(60px,9vh,90px) }
- .section, footer { padding-left:20px; padding-right:20px }
- .footer-grid { grid-template-columns:1fr; gap:32px }
- .search { margin-left:0; flex:1 1 100% }
-}
-
-.theme-toggle { background:transparent; border:1px solid var(--line); width:32px; height:32px; cursor:pointer; color:var(--paper); display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; transition:all .15s; padding:0 }
-.theme-toggle:hover { border-color:var(--accent); color:var(--accent) }
-
-/* ===== WCAG 2.4.7 — keyboard focus indicators ===== */
-/* Strictly :focus-visible so mouse clicks do NOT show the ring */
-a:focus-visible,
-button:focus-visible,
-input:focus-visible,
-select:focus-visible,
-textarea:focus-visible,
-[tabindex]:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
-}
-</style>
-<script>
-(function(){ try { var t = localStorage.getItem('arch_theme') || 'light'; document.documentElement.dataset.theme = t; } catch(e){} })();
-</script>
-<link rel="preconnect" href="https://fonts.googleapis.com">
-<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap">
-
-<meta property="og:type" content="website">
-<meta property="og:url" content="https://architecturalwallcoverings.com/">
-<meta property="og:title" content="Architectural Wallcoverings">
-<meta property="og:description" content="Architectural Wallcoverings — Class A specifier-grade architectural wallcoverings.">
-<meta property="og:image" content="https://architecturalwallcoverings.com/hero-bg.jpg">
-<meta property="og:site_name" content="Architectural Wallcoverings">
-<meta property="article:publisher" content="https://www.facebook.com/SteveAbramsDesigns.DesignerWallcoverings">
-<meta name="twitter:card" content="summary_large_image">
-<meta name="twitter:title" content="Architectural Wallcoverings">
-<meta name="twitter:description" content="Architectural Wallcoverings — Class A specifier-grade architectural wallcoverings.">
-<meta name="twitter:image" content="https://architecturalwallcoverings.com/hero-bg.jpg">
-<!-- graphics-loop pass 13: footer + fb -->
-</head>
-<body>
-<style id="ns-header-modal-styles">
- .ns-header { position: sticky; top: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; padding: 18px 36px; background: rgba(10,10,10,0.92) !important; backdrop-filter: blur(8px); border-bottom: 1px solid rgba(245,241,232,0.06); }
- .ns-brand { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; }
- .ns-dot { width: 28px; height: 28px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #a98b5b 0%, #5d4c32 60%, #332a1b 100%); box-shadow: 0 0 0 1px rgba(245,241,232,0.10), 0 2px 12px rgba(180,90,60,0.30); flex-shrink: 0; }
- .ns-name { font-family: -apple-system, "SF Pro Display", "Helvetica Neue", system-ui, sans-serif; font-size: 18px !important; font-weight: 300 !important; letter-spacing: 0.02em !important; color: #f5f1e8 !important; text-transform: none !important; margin: 0 !important; }
- .ns-name sup { font-size: 0.55em; font-weight: 300; margin-left: 1px; }
- .ns-nav { display: flex; gap: 32px; align-items: center; list-style: none; padding: 0; margin: 0; }
- .ns-nav a, .ns-nav button { font-family: -apple-system, "SF Pro Text", system-ui, sans-serif; font-size: 15px !important; font-weight: 400 !important; color: #f5f1e8 !important; text-decoration: none !important; background: none !important; border: 0 !important; cursor: pointer; padding: 0 !important; transition: color 200ms; letter-spacing: 0 !important; text-transform: none !important; }
- .ns-nav a:hover, .ns-nav button:hover { color: #ffffff !important; }
- @media (max-width: 820px) { .ns-header { padding: 14px 18px; } .ns-nav { gap: 16px; } .ns-nav a, .ns-nav button { font-size: 13px !important; } }
- @media (max-width: 760px) {
- .ns-header { flex-wrap: wrap; }
- .ns-nav { display: none !important; flex-basis: 100%; flex-direction: column; align-items: flex-start; gap: 6px; padding: 14px 0 4px; }
- .ns-nav.open { display: flex !important; }
- .ns-nav a, .ns-nav button { padding: 10px 0 !important; border-bottom: 1px solid rgba(245,241,232,0.08); width: 100%; text-align: left; }
- .ns-nav a:nth-child(n+5), .ns-nav button:nth-child(n+5) { display: block !important; }
- .ns-header .mobile-toggle { display: flex !important; }
- }
- @media (min-width: 761px) {
- .ns-header .mobile-toggle { display: none !important; }
- }
- .ns-modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.78); z-index: 200; align-items: center; justify-content: center; padding: 24px; backdrop-filter: blur(6px); }
- .ns-modal.show { display: flex; }
- .ns-modal-card { max-width: 460px; width: 100%; background: #141414 !important; border: 1px solid rgba(245,241,232,0.14); border-radius: 6px; padding: 28px 30px 30px; position: relative; }
- .ns-modal-card .close-x { position: absolute; top: 12px; right: 14px; width: 30px; height: 30px; background: none; border: 1px solid rgba(245,241,232,0.18); color: rgba(245,241,232,0.6) !important; border-radius: 50%; cursor: pointer; font-size: 14px; display: flex; align-items: center; justify-content: center; }
- .ns-modal-card .close-x:hover { color: #ffffff !important; border-color: #ffffff; }
- .ns-modal-card h3 { font-family: -apple-system, "SF Pro Display", system-ui; font-weight: 300 !important; font-size: 22px !important; margin: 0 0 6px !important; color: #f5f1e8 !important; }
- .ns-modal-card .sub { color: rgba(245,241,232,0.65) !important; font-size: 13px; margin: 0 0 22px; }
- .ns-actions { display: flex; flex-direction: column; gap: 10px; }
- .ns-action { display: flex; align-items: center; gap: 14px; padding: 14px 16px; background: rgba(245,241,232,0.04) !important; border: 1px solid rgba(245,241,232,0.12) !important; color: #f5f1e8 !important; text-decoration: none !important; cursor: pointer; transition: all 200ms; font: inherit; text-align: left; }
- .ns-action:hover { background: rgba(245,241,232,0.08) !important; border-color: #d4b683 !important; }
- .ns-action .ico { width: 32px; height: 32px; border-radius: 50%; background: rgba(212,182,131,0.12); display: flex; align-items: center; justify-content: center; font-size: 15px; flex-shrink: 0; }
- .ns-action .txt { flex: 1; }
- .ns-action .txt b { display: block; font-weight: 500; font-size: 14px; color: #f5f1e8 !important; }
- .ns-action .txt span { font-size: 12px; color: rgba(245,241,232,0.55) !important; }
-
- /* ─── FINAL CONTRAST PASS — kill remaining gold-solid + white-island defects ─── */
- /* Replace all gold-fill accents with off-white (Gucci-aesthetic, no DW gold solids) */
- .new-badge, .new-arrivals-pill,
- .color-filter-btn.active,
- .drapery-btn, .sample-btn-chip, .cb-cta {
- background: #f5f1e8 !important;
- color: #0a0a0a !important;
- border-color: #f5f1e8 !important;
- }
- .new-badge:hover, .new-arrivals-pill:hover,
- .color-filter-btn.active:hover,
- .drapery-btn:hover, .sample-btn-chip:hover, .cb-cta:hover {
- background: #fff !important;
- color: #0a0a0a !important;
- }
- /* Gold accents stay only as edge color (links, glyphs) — not fills */
- a { color: #d4b683; }
- a:hover { color: #f5d97a; }
- /* Authorized-dealer footer line — small caps tracked, muted ink, no gold pill */
- .authorized, .authorized-dealer p {
- background: transparent !important;
- color: rgba(245,241,232,0.5) !important;
- font-size: 10px !important;
- letter-spacing: 0.22em !important;
- text-transform: uppercase !important;
- padding: 0 !important;
- border: none !important;
- margin-top: 14px !important;
- }
- /* Kill any straggler white bg in info-card / sample-related cards */
- .info-card, .info-card-link, .care-highlight, .feature-card, .spec-item {
- background-color: rgba(245,241,232,0.04) !important;
- border-color: rgba(245,241,232,0.12) !important;
- }
- /* Ensure modal content stays readable — Steve's earlier sweep made it #141414 with white text */
- .modal-content { background: #141414 !important; color: #f5f1e8 !important; }
- .modal-content * { color: #f5f1e8 !important; }
- .modal-content input, .modal-content textarea, .modal-content select {
- background: rgba(245,241,232,0.05) !important;
- color: #f5f1e8 !important;
- border-color: rgba(245,241,232,0.2) !important;
- }
- .modal-content label { color: rgba(245,241,232,0.6) !important; }
- /* Force the wide-tracked NOVASUEDE wordmark to stay white */
- .ns-wordmark, .ns-wordmark sup { color: #f5f1e8 !important; }
-
- /* ─── Modal-internal contrast (post-QA defects) ─── */
- /* Backdrop covers full viewport */
- .modal { width: 100vw !important; height: 100vh !important; left: 0 !important; top: 0 !important; background: rgba(0, 0, 0, 0.78) !important; backdrop-filter: blur(6px); }
- /* Chip — flip from white-on-white island to dark card */
- .request-chip {
- background: rgba(245, 241, 232, 0.06) !important;
- color: #f5f1e8 !important;
- border: 1px solid rgba(245, 241, 232, 0.18) !important;
- border-radius: 4px !important;
- }
- .request-chip * { color: #f5f1e8 !important; }
- .request-chip .chip-swatch {
- /* swatch dot ALWAYS displays the inline-style hex from JS — fight any sweep */
- border: 1px solid rgba(0, 0, 0, 0.4) !important;
- }
- /* + Add to request — hairline white-border on transparent (no gold) */
- .add-to-request-btn {
- background: transparent !important;
- color: #f5f1e8 !important;
- border: 1px solid rgba(245, 241, 232, 0.6) !important;
- border-radius: 0 !important;
- padding: 12px 22px !important;
- font-size: 11px !important;
- letter-spacing: 0.32em !important;
- text-transform: uppercase !important;
- font-weight: 400 !important;
- }
- .add-to-request-btn:hover {
- background: #f5f1e8 !important;
- color: #0a0a0a !important;
- border-color: #f5f1e8 !important;
- }
- /* Hex caption visible */
- .preview-hex, #colorPreviewHex {
- display: block !important;
- color: rgba(245, 241, 232, 0.55) !important;
- font-family: ui-monospace, "SF Mono", Menlo, monospace !important;
- font-size: 11px !important;
- margin-top: 4px !important;
- letter-spacing: 0.04em !important;
- text-transform: lowercase !important;
- }
- /* Color preview name — stays single, prominent */
- #colorPreviewName {
- color: #f5f1e8 !important;
- font-size: 11px !important;
- letter-spacing: 0.32em !important;
- text-transform: uppercase !important;
- font-weight: 500 !important;
- display: block !important;
- margin-top: 12px !important;
- }
-
- /* ─── Mobile hamburger nav (replaces the overflow at <760px) ─── */
- @media (max-width: 760px) {
- header .nav-container { flex-wrap: wrap; }
- header nav { display: none; flex-basis: 100%; flex-direction: column; gap: 6px; padding: 16px 0 6px; }
- header nav.open { display: flex; }
- header nav a { padding: 10px 0; border-bottom: 1px solid rgba(245,241,232,0.1); }
- header .mobile-toggle {
- display: flex !important;
- flex-direction: column;
- gap: 5px;
- background: transparent;
- border: 0;
- cursor: pointer;
- padding: 8px;
- }
- header .mobile-toggle span {
- width: 22px; height: 1.5px;
- background: #f5f1e8;
- display: block;
- }
- }
- @media (min-width: 761px) {
- header .mobile-toggle { display: none !important; }
- }
-
- </style>
-<style id="ns-gold-kill">
- /* novasuede: kill gold-solid fills, off-white instead. Edge color stays gold. */
- .new-badge, .new-arrivals-pill,
- .color-filter-btn.active, .drapery-btn,
- .sample-btn-chip, .cb-cta {
- background: #f5f1e8 !important;
- color: #0a0a0a !important;
- border-color: #f5f1e8 !important;
- }
- .new-badge:hover, .new-arrivals-pill:hover,
- .color-filter-btn.active:hover, .drapery-btn:hover,
- .sample-btn-chip:hover, .cb-cta:hover {
- background: #fff !important;
- color: #0a0a0a !important;
- }
- </style>
-<header class="ns-header">
- <a href="/" class="ns-brand" aria-label="Home">
- <span class="ns-dot"></span>
- <span class="ns-name">Studio Toten</span>
- </a>
- <nav class="ns-nav" id="nsPrimaryNav" aria-label="Primary">
- <a href="/">Home</a>
- <a href="/about">About</a>
- <button type="button" onclick="nsContactOpen()">Contact</button>
- </nav>
- <button type="button" class="mobile-toggle" aria-label="Toggle menu" aria-controls="nsPrimaryNav" aria-expanded="false" onclick="nsToggleNav(this)">
- <span></span><span></span><span></span>
- </button>
- </header>
-
-<div class="ns-modal" id="nsContactModal" role="dialog" aria-modal="true" aria-labelledby="nsContactTitle" onclick="if(event.target===this)nsContactClose()">
- <div class="ns-modal-card">
- <button type="button" class="close-x" onclick="nsContactClose()" aria-label="Close">×</button>
- <h3 id="nsContactTitle">How can we help?</h3>
- <p class="sub">Trade-account replies within one business day.</p>
- <div class="ns-actions">
- <a class="ns-action" href="#contact" onclick="nsContactClose()"><span class="ico">📋</span><div class="txt"><b>Get a Quote</b><span>Project specs → priced estimate</span></div></a>
- <a class="ns-action" href="#contact" onclick="nsContactClose();openModal();"><span class="ico">📦</span><div class="txt"><b>Order a Sample</b><span>Free swatch to your shop</span></div></a>
- <a class="ns-action" href="mailto:info@novasuede.com?subject=Novasuede%20inquiry"><span class="ico">✉️</span><div class="txt"><b>Email Us</b><span>info@novasuede.com</span></div></a>
- <a class="ns-action" href="tel:888-373-4564"><span class="ico">📞</span><div class="txt"><b>Call Us</b><span>(888) 373-4564 · M–F, 9–5 PT</span></div></a>
- </div>
- </div>
- </div>
-<script>
- function nsContactOpen() { var m = document.getElementById('nsContactModal'); if (m) m.classList.add('show'); }
- function nsContactClose() { var m = document.getElementById('nsContactModal'); if (m) m.classList.remove('show'); }
- function nsToggleNav(btn) {
- var nav = document.getElementById('nsPrimaryNav');
- if (!nav) return;
- var open = nav.classList.toggle('open');
- btn.setAttribute('aria-expanded', open ? 'true' : 'false');
- }
- document.addEventListener('keydown', function(e){ if (e.key === 'Escape') nsContactClose(); });
-</script>
-
-
-
-
-
-<header>
- <button class="h-link" onclick="dwmOpen('Contact')" aria-label="Contact"><svg class="h-icon" viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/></svg><span>Contact</span></button>
- <button class="theme-toggle" id="theme-toggle" aria-label="Theme toggle">☾</button>
-</header>
-
-<section class="cinema">
- <div class="cinema-bg" id="heroBg"></div>
- <div class="corner-mark">Specifier-Grade</div>
- <div class="center-mark">Architectural Wallcoverings</div>
- <div class="meta-line">Architectural · Specifier · Class A · Contract<span class="num" id="heroNum"></span></div>
- <a class="enter" href="#shop">Enter <svg viewBox="0 0 24 12" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M0 6h22M16 1l6 5-6 5"/></svg></a>
-</section>
-
-
-<section class="section" id="ideas">
- <div class="rail-block">
- <div class="rail-eyebrow">Ideas</div>
- <h2 class="rail-title">New this week</h2>
- <div class="rail" id="railNewest"></div>
- </div>
- <div class="rail-block">
- <div class="rail-eyebrow">Ideas</div>
- <h2 class="rail-title">Curated picks</h2>
- <div class="rail" id="railCurated"></div>
- </div>
-</section>
-
-<section class="section" id="shop">
- <div class="section-header">
- <div>
- <div class="section-eyebrow">The Collection</div>
- <h2 class="section-title"><span class="accent" id="totalCount">—</span> Patterns.</h2>
- </div>
- <div class="section-meta">Architectural · Specifier · Class A · Contract</div>
- </div>
-
- <div class="filters" id="facets">
- <button class="chip active" data-facet="all">All</button>
- </div>
-
- <div class="density">
- <label>Sort</label>
- <select id="sortSelect" aria-label="Sort products" style="background:transparent;color:inherit;border:1px solid var(--line,rgba(255,255,255,.2));font:inherit;font-size:11px;letter-spacing:.10em;text-transform:uppercase;padding:4px 8px;cursor:pointer;outline:none;margin-right:14px">
- <option value="newest">Newest</option>
- <option value="color">Color</option>
- <option value="style">Style</option>
- <option value="sku">SKU A→Z</option>
- <option value="title">Title A→Z</option>
- <option value="price-asc">Price ↑</option>
- <option value="price-desc">Price ↓</option>
- </select>
- <label>Grid</label>
- <input type="range" id="densitySlider" min="4" max="12" step="1" value="6" aria-label="Grid columns">
- <span class="ct" id="densityLabel">6 cols</span>
- <div class="search">
- <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-5.5-5.5"/></svg>
- <input type="text" id="searchInput" placeholder="Search by pattern, color…" autocomplete="off">
- </div>
- </div>
-
- <div class="stat-line" id="statLine">Loading…</div>
- <div class="grid" id="grid"></div>
- <div class="loading" id="loading">Loading more…</div>
- <div class="sentinel" id="sentinel"></div>
-</section>
-
-<footer>
- <div class="footer-grid">
- <div>
- <div class="footer-brand">Architectural Wallcoverings</div>
- <p class="footer-text">Architectural Wallcoverings is a specialty architectural archive within the Designer Wallcoverings family. Real samples ship free.</p>
- <p class="footer-text" style="margin-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;color:var(--paper);opacity:0.7"><a href="/about" style="color:inherit;text-decoration:none;border-bottom:1px solid var(--accent)">About →</a></p>
- </div>
- <div class="footer-col">
- <h4>Aesthetic</h4>
- <div id="footerFacets"></div>
- </div>
- <div class="footer-col">
- <h4>Trade</h4>
- <button onclick="dwmOpen('Inquiry')">Project Inquiry</button>
- <button onclick="dwmOpen('Sample')">Request Sample</button>
- <button onclick="dwmOpen('Contact')">Contact</button>
- </div>
-
- <div class="footer-col">
- <h4>Social</h4>
- <a class="fb-link" href="https://www.facebook.com/SteveAbramsDesigns.DesignerWallcoverings" target="_blank" rel="noopener">Facebook</a>
- </div>
- </div>
- <div class="footer-bottom">
- <span>architecturalwallcoverings.com · Studio Toten</span>
- <span><a href="mailto:info@architecturalwallcoverings.com" style="color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px">info@architecturalwallcoverings.com</a></span>
- <span id="footerStat"></span>
- </div>
-</footer>
-
-<script>
-// mini-constellation — 43 niche-stars, current site highlighted in gold
-(function(){
- const SLUG = "architecturalwallcoverings";
- const NICHES = [
- ['silkwallpaper','Silk','mat'],['silkwallcoverings','Silk W/C','mat'],['linenwallpaper','Linen','mat'],
- ['jutewallpaper','Jute','mat'],['raffiawallcoverings','Raffia W/C','mat'],['raffiawalls','Raffia Walls','mat'],
- ['corkwallcovering','Cork','mat'],['fabricwallpaper','Fabric','mat'],['textilewallpaper','Textile','mat'],
- ['metallicwallpaper','Metallic','mat'],['silverleafwallpaper','Silver Leaf','mat'],['vinylwallpaper','Vinyl','mat'],
- ['micawallpaper','Mica','mat'],['madagascarwallpaper','Madagascar','mat'],['mylarwallpaper','Mylar','mat'],
- ['suedewallpaper','Suede','mat'],
- ['1800swallpaper','1800s','dec'],['1890swallpaper','1890s','dec'],['1900swallpaper','1900s','dec'],
- ['1920swallpaper','1920s','dec'],['1930swallpaper','1930s','dec'],['1940swallpaper','1940s','dec'],
- ['1950swallpaper','1950s','dec'],['1960swallpaper','1960s','dec'],['1970swallpaper','1970s','dec'],
- ['1980swallpaper','1980s','dec'],['retrowalls','Retro','dec'],['wallpapersback','W. Back','dec'],
- ['agedwallpaper','Aged','cra'],['handcraftedwallpaper','Handcrafted','cra'],['museumwallpaper','Museum','cra'],
- ['restorationwallpaper','Restoration','cra'],['pastelwallpaper','Pastel','cra'],['glitterwalls','Glitter','cra'],
- ['greenwallcoverings','Green','cra'],['naturalwallcoverings','Natural','cra'],['saloonwallpaper','Saloon','cra'],
- ['contractwallpaper','Contract','use'],['hotelwallcoverings','Hotel','use'],['hospitalitywallpaper','Hospitality','use'],
- ['healthcarewallpaper','Healthcare','use'],['restaurantwallpaper','Restaurant','use'],['architecturalwallcoverings','Architectural','use']
- ];
- const COLOR = { mat:'#c9b687', dec:'#b86a4a', cra:'#6b8e6f', use:'#4a6b8e' };
- const W = 1080, H = 200, BANDS = ['mat','dec','cra','use'];
- const groups = { mat:[], dec:[], cra:[], use:[] };
- for (const n of NICHES) groups[n[2]].push(n);
- const svg = document.getElementById('miniConst');
- if (!svg) return;
- const bandW = W / BANDS.length;
- let nodes = '';
- BANDS.forEach((band, bi) => {
- const list = groups[band];
- const cx = bi * bandW + bandW / 2;
- list.forEach((n, i) => {
- const t = list.length === 1 ? 0.5 : i / (list.length - 1);
- // deterministic jitter per slug
- let h = 0; for (let k = 0; k < n[0].length; k++) h = (h * 31 + n[0].charCodeAt(k)) | 0;
- const jx = ((h & 0xff) / 255 - 0.5) * (bandW * 0.5);
- const jy = (((h >> 8) & 0xff) / 255 - 0.5) * 6; // tightened from 14 → 6 to prevent same-band collisions (16 mat nodes / 144px = 9px spacing)
- const x = cx + jx, y = 28 + t * (H - 56) + jy;
- const isCurrent = n[0] === SLUG;
- const r = isCurrent ? 8 : 4;
- const op = isCurrent ? 1 : 0.55;
- nodes += `<g class="mc-node" data-slug="${n[0]}" data-label="${n[1]}" style="cursor:pointer">
- <circle cx="${x}" cy="${y}" r="${r}" fill="url(#dna-${band})" fill-opacity="${op}" stroke="${COLOR[band]}" stroke-opacity="${isCurrent?1:0.7}" stroke-width="${isCurrent?2:1}">
- <title>${n[1]} — ${n[0]}.com</title>
- </circle>
- ${isCurrent ? `<circle cx="${x}" cy="${y}" r="${r+5}" fill="none" stroke="${COLOR[band]}" stroke-opacity="0.4" stroke-width="1"><animate attributeName="r" values="${r+5};${r+12};${r+5}" dur="2.4s" repeatCount="indefinite"/><animate attributeName="stroke-opacity" values="0.4;0;0.4" dur="2.4s" repeatCount="indefinite"/></circle>` : ''}
- </g>`;
- });
- });
- // append nodes after defs
- svg.insertAdjacentHTML('beforeend', nodes);
- svg.querySelectorAll('.mc-node').forEach(n => {
- n.addEventListener('mouseenter', () => n.querySelector('circle').setAttribute('fill-opacity', '1'));
- n.addEventListener('mouseleave', e => {
- const isCurrent = n.dataset.slug === SLUG;
- n.querySelector('circle').setAttribute('fill-opacity', isCurrent ? '1' : '0.55');
- });
- n.addEventListener('click', () => window.open('https://' + n.dataset.slug + '.com', '_blank'));
- });
-})();
-</script>
-
-<script>
-const state = { q:'', facet:'all', page:1, pages:1, total:0, loading:false, exhausted:false };
-const LABELS = {"all":"All"};
-
-function escAttr(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[c])); }
-// Image-URL allowlist: only DW Shopify CDN + designerwallcoverings.com (defends against XSS via crafted products.json)
-function safeImg(u) { return /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(u || '') ? u : '/hero-bg.jpg'; }
-function cardHTML(p) {
- const eager = state.page === 1;
- return '<img loading="' + (eager ? 'eager' : 'lazy') + '"' + (eager ? ' fetchpriority="high"' : '') + ' src="' + escAttr(safeImg(p.image_url)) + '" alt="' + escAttr(p.title) + '">'
- + '<div class="overlay">'
- + '<div class="pat">' + escAttr(p.pattern_name || p.title) + '</div>'
- + '<div class="ven">' + escAttr((p.vendor || '').replace(/-/g, ' ')) + '</div>'
- + '<div class="actions">'
- + '<button class="sample-btn" onclick="event.stopPropagation();dwmOpen(\'Sample\',' + JSON.stringify({sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}).replace(/"/g,'"') + ')">Sample</button>'
- + '</div></div>';
-}
-
-async function loadFacets() {
- let f;
- try {
- const r = await fetch('/api/facets');
- if (!r.ok) throw new Error('HTTP ' + r.status);
- f = await r.json();
- } catch (e) { console.error('loadFacets failed:', e); return; }
- const el = document.getElementById('facets');
- for (const [k, v] of Object.entries(f.aesthetics).sort((a,b) => b[1] - a[1])) {
- const b = document.createElement('button');
- b.className = 'chip'; b.dataset.facet = k;
- b.innerHTML = (LABELS[k] || k) + ' <span style="opacity:.55;font-weight:500;margin-left:4px">' + v + '</span>';
- el.appendChild(b);
- }
- el.addEventListener('click', e => {
- if (e.target.tagName !== 'BUTTON') return;
- document.querySelectorAll('#facets button').forEach(b => b.classList.remove('active'));
- e.target.classList.add('active');
- state.facet = e.target.dataset.facet;
- resetGrid();
- });
- document.getElementById('totalCount').textContent = f.total;
- document.getElementById('footerStat').textContent = f.total + ' patterns · live archive';
- // Footer aesthetic links
- const footerEl = document.getElementById('footerFacets');
- for (const [k] of Object.entries(f.aesthetics)) {
- const b = document.createElement('button');
- b.textContent = LABELS[k] || k;
- b.onclick = () => { state.facet = k; resetGrid(); document.querySelectorAll('#facets button').forEach(x => x.classList.toggle('active', x.dataset.facet === k)); document.getElementById('shop').scrollIntoView({behavior:'smooth'}); };
- footerEl.appendChild(b);
- }
-}
-
-function resetGrid() {
- state.page = 1; state.exhausted = false;
- document.getElementById('grid').innerHTML = '';
- document.getElementById('loading').textContent = 'Loading…';
- loadGridPage();
-}
-
-async function loadGridPage() {
- if (state.loading || state.exhausted) return;
- state.loading = true;
- const params = new URLSearchParams({ page:state.page, limit:24 });
- if (state.q) params.set('q', state.q);
- if (state.facet !== 'all') params.set('aesthetic', state.facet);
- let data;
- try {
- const r = await fetch('/api/products?' + params);
- if (!r.ok) throw new Error('HTTP ' + r.status);
- data = await r.json();
- } catch (e) {
- console.error('loadGridPage failed:', e);
- document.getElementById('loading').textContent = '— offline — refresh to retry —';
- state.loading = false;
- return;
- }
- state.total = data.total; state.pages = data.pages;
-
- if (state.page === 1) {
- document.getElementById('statLine').textContent = data.total + ' patterns · ' + (state.facet === 'all' ? 'all aesthetics' : (LABELS[state.facet] || state.facet)) + (state.q ? ' · matching "' + state.q + '"' : '');
- }
- const grid = document.getElementById('grid');
- for (const p of data.items) {
- const a = document.createElement('a');
- a.className = 'card'; a.href = '#'; a.onclick = (e) => { e.preventDefault(); dwmOpen('Sample',{sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}); };
- a.innerHTML = cardHTML(p);
- grid.appendChild(a);
- }
- if (state.page >= state.pages || data.items.length === 0) {
- state.exhausted = true;
- document.getElementById('loading').textContent = state.total > 0 ? '— end of archive · ' + state.total + ' patterns —' : '';
- } else state.page++;
- state.loading = false;
-}
-
-const io = new IntersectionObserver(es => { for (const e of es) if (e.isIntersecting) loadGridPage(); }, { rootMargin:'600px 0px' });
-io.observe(document.getElementById('sentinel'));
-
-document.getElementById('searchInput').addEventListener('input', e => {
- state.q = e.target.value.trim();
- clearTimeout(window._t);
- window._t = setTimeout(resetGrid, 220);
-});
-
-// Density slider
-const slider = document.getElementById('densitySlider');
-const dlabel = document.getElementById('densityLabel');
-function setDensity(n) {
- document.documentElement.style.setProperty('--cols', n);
- dlabel.textContent = n + ' cols';
- try { localStorage.setItem('arch_theme_density', n); } catch(e){}
-}
-slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
-const savedDensity = parseInt(localStorage.getItem('arch_theme_density') || '6');
-if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
-
-// Theme toggle
-const tb = document.getElementById('theme-toggle');
-function setTheme(t){ document.documentElement.dataset.theme = t; try { localStorage.setItem('arch_theme', t); } catch(e){} tb.textContent = t === 'dark' ? '☾' : '☀'; }
-setTheme(document.documentElement.dataset.theme || 'light');
-tb.addEventListener('click', () => setTheme(document.documentElement.dataset.theme === 'dark' ? 'light' : 'dark'));
-
-loadFacets();
-loadGridPage();
-</script>
-<!-- ============================================================
- DW UNIVERSAL CONTACT MODULE — fashion-house UX
- Inject before </body> in every DW-family sister site.
- Self-contained: CSS + 4 modals + JS submission handlers.
- Uses host site's CSS vars (--bg, --fg, --gold, --rule).
- ============================================================ -->
-<style>
- /* === MODAL BASE === */
- .dwm{position:fixed;inset:0;background:rgba(0,0,0,0.78);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;overflow-y:auto}
- .dwm.open{display:flex}
- .dwm-box{background:var(--bg);border:1px solid var(--rule);max-width:520px;width:100%;padding:36px 32px;position:relative;max-height:90vh;overflow-y:auto;animation:dwm-in 0.25s ease}
- @keyframes dwm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
- .dwm-box h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;font-size:32px;line-height:1.05;margin-bottom:6px;color:var(--fg);letter-spacing:-0.01em}
- .dwm-box .sub{color:var(--muted);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
- .dwm-close{position:absolute;top:18px;right:18px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;width:32px;height:32px;line-height:1;padding:0}
- .dwm-close:hover{color:var(--gold)}
- .dwm-preview{display:flex;gap:14px;align-items:center;padding:12px;background:var(--bg-soft);margin-bottom:18px}
- .dwm-preview img{width:64px;height:64px;object-fit:cover}
- .dwm-preview .pn{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;line-height:1.2;color:var(--fg)}
- .dwm-preview .pc{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
- .dwm-field{margin-bottom:14px}
- .dwm-field label{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
- .dwm-field input,.dwm-field textarea,.dwm-field select{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:8px 4px;font-size:14px;font-family:inherit;color:var(--fg);outline:none;transition:border-color 0.2s}
- .dwm-field input:focus,.dwm-field textarea:focus{border-bottom-color:var(--gold)}
- .dwm-field textarea{min-height:60px;resize:vertical}
- .dwm-submit{background:transparent;color:var(--muted, #c9b89e);border:1px solid var(--muted, #c9b89e);padding:14px 28px;font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:700;cursor:pointer;width:100%;margin-top:8px;transition:background 0.15s, color 0.15s}
- .dwm-submit:hover{background:var(--muted, #c9b89e);color:var(--bg, #000)}
-
- .dwm-submit:disabled{opacity:0.5;cursor:default}
- .dwm-status{margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;display:none}
- .dwm-status.ok{color:var(--sage);display:block}
- .dwm-status.err{color:#e08070;display:block}
- /* contact-options */
- .dwm-options{display:flex;flex-direction:column;gap:10px}
- .dwm-option{display:flex;align-items:center;gap:14px;padding:18px 20px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;transition:all 0.2s;text-align:left;width:100%}
- .dwm-option:hover{border-color:var(--gold);color:var(--gold)}
- .dwm-option svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}
- .dwm-option .lbl{flex:1;display:block}
- .dwm-option .val{display:block;font-size:10px;letter-spacing:0.14em;text-transform:none;font-weight:500;opacity:0.65;margin-top:4px}
-
-/* graphics-loop pass 5: serif hero typography + nav legibility */
-.cinema h1, h1.headline { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; letter-spacing: -0.01em }
-.h-link { font-size: 13px; letter-spacing: 0.06em }
-
-/* graphics-loop pass 11: Ideas rails */
-#ideas { padding: 56px 24px 24px; max-width:1600px; margin:0 auto }
-#ideas .rail-block { margin-bottom:48px }
-#ideas .rail-eyebrow { font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:var(--muted, #888); margin-bottom:8px }
-#ideas .rail-title { font-size:clamp(22px,2.6vw,32px); font-weight:500; letter-spacing:-0.01em; margin:0 0 18px; color:var(--ink,#fff) }
-#ideas .rail { display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:8px; scrollbar-width:none }
-#ideas .rail::-webkit-scrollbar { display:none }
-#ideas .rail-card { flex:0 0 240px; scroll-snap-align:start; cursor:pointer; transition:transform 0.2s }
-#ideas .rail-card:hover { transform:translateY(-3px) }
-#ideas .rail-card img { width:100%; aspect-ratio:1; object-fit:cover; display:block; background:var(--card,#222) }
-#ideas .rail-card .rc-title { font-size:13px; font-weight:500; color:var(--paper,#fff); padding:8px 0 2px; line-height:1.3 }
-#ideas .rail-card .rc-meta { font-size:11px; color:var(--muted,#888); letter-spacing:0.06em }
-@media (max-width:720px) { #ideas .rail-card { flex:0 0 160px } }
-</style>
-
-<!-- Contact options modal -->
-<div class="dwm" id="dwmContact" onclick="if(event.target===this)dwmClose('Contact')">
- <div class="dwm-box" style="max-width:440px">
- <button class="dwm-close" onclick="dwmClose('Contact')" aria-label="Close">×</button>
- <h3>Contact</h3>
- <p class="sub" id="dwmContactSub">Three ways to reach us</p>
- <div class="dwm-options">
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Inquiry')">
- <svg viewBox="0 0 24 24"><path d="M4 4h16v12H7l-3 3z"/></svg>
- <span class="lbl">Send an Inquiry<span class="val">Project name · scope · all the details</span></span>
- </button>
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Sample')">
- <svg viewBox="0 0 24 24"><rect x="4" y="6" width="16" height="14"/><path d="M4 10h16M9 6V3h6v3"/></svg>
- <span class="lbl">Request a Sample<span class="val">Memo sample · ships free · 3–5 business days</span></span>
- </button>
- <a class="dwm-option" id="dwmContactEmailLink" href="mailto:info@architecturalwallcoverings.com">
- <svg viewBox="0 0 24 24"><path d="M3 6h18v12H3z"/><path d="M3 6l9 7 9-7"/></svg>
- <span class="lbl">Email Us<span class="val" id="dwmContactEmailLabel">info@architecturalwallcoverings.com</span></span>
- </a>
- </div>
- </div>
-</div>
-
-<!-- Inquiry modal -->
-<div class="dwm" id="dwmInquiry" onclick="if(event.target===this)dwmClose('Inquiry')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Inquiry')" aria-label="Close">×</button>
- <h3>Project Inquiry</h3>
- <p class="sub">We'll respond within one business day</p>
- <form id="dwmInquiryForm" onsubmit="return dwmSubmit(event,'inquiry')">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Phone</label><input type="tel" name="phone"></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Project Name</label><input type="text" name="projectName" required></div>
- <div class="dwm-field"><label>Project Scope</label><textarea name="projectScope" placeholder="Square footage · room count · timeline" required></textarea></div>
- <div class="dwm-field"><label>Additional Information</label><textarea name="message" placeholder="Patterns of interest, finish preferences, budget"></textarea></div>
- <button type="submit" class="dwm-submit">Send Inquiry</button>
- <div class="dwm-status" id="dwmInquiryStatus"></div>
- </form>
- </div>
-</div>
-
-<!-- Sample-request modal -->
-<div class="dwm" id="dwmSample" onclick="if(event.target===this)dwmClose('Sample')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Sample')" aria-label="Close">×</button>
- <h3>Request a Sample</h3>
- <p class="sub">Memo sample · ships free · 3–5 business days</p>
- <div class="dwm-preview" id="dwmSamplePreview" style="display:none">
- <img id="dwmSampleImg" src="" alt="">
- <div><div class="pn" id="dwmSampleName"></div><div class="pc" id="dwmSampleSku"></div></div>
- </div>
- <form id="dwmSampleForm" onsubmit="return dwmSubmit(event,'sample')">
- <input type="hidden" name="sku" id="dwmSampleSkuInput">
- <input type="hidden" name="title" id="dwmSampleTitleInput">
- <input type="hidden" name="image_url" id="dwmSampleImageInput">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Shipping Address</label><input type="text" name="address" placeholder="Street" required></div>
- <div class="dwm-field" style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px">
- <input type="text" name="city" placeholder="City" required>
- <input type="text" name="state" placeholder="State" required>
- <input type="text" name="zip" placeholder="ZIP" required>
- </div>
- <div class="dwm-field"><label>Notes (optional)</label><textarea name="message" placeholder="Project, sq.ft., timing"></textarea></div>
- <button type="submit" class="dwm-submit">Send Sample Request</button>
- <div class="dwm-status" id="dwmSampleStatus"></div>
- </form>
- </div>
-</div>
-
-<script>
- // Universal modal control
- function dwmOpen(name, opts){
- document.getElementById('dwm' + name).classList.add('open');
- document.body.style.overflow = 'hidden';
- if (name === 'Sample' && opts) {
- document.getElementById('dwmSamplePreview').style.display = 'flex';
- document.getElementById('dwmSampleImg').src = opts.image_url || '';
- document.getElementById('dwmSampleName').textContent = opts.title || '';
- document.getElementById('dwmSampleSku').textContent = opts.sku || '';
- document.getElementById('dwmSampleSkuInput').value = opts.sku || '';
- document.getElementById('dwmSampleTitleInput').value = opts.title || '';
- document.getElementById('dwmSampleImageInput').value = opts.image_url || '';
- } else if (name === 'Sample') {
- document.getElementById('dwmSamplePreview').style.display = 'none';
- document.getElementById('dwmSampleSkuInput').value = '';
- document.getElementById('dwmSampleTitleInput').value = '';
- document.getElementById('dwmSampleImageInput').value = '';
- }
- }
- function dwmClose(name){ document.getElementById('dwm'+name).classList.remove('open'); document.body.style.overflow=''; }
-
- // Universal form submit — POSTs to /api/send-{kind}
- async function dwmSubmit(e, kind) {
- e.preventDefault();
- const form = e.target;
- const data = Object.fromEntries(new FormData(form).entries());
- const btn = form.querySelector('.dwm-submit');
- const status = form.querySelector('.dwm-status');
- btn.disabled = true; const orig = btn.textContent; btn.textContent = 'Sending…';
- status.className = 'dwm-status';
- try {
- const r = await fetch('/api/send-' + kind, { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
- if (!r.ok) throw new Error('HTTP '+r.status);
- const j = await r.json();
- status.textContent = kind === 'sample' ? 'Sample request sent — ships within 3–5 business days' : 'Inquiry sent — we respond within 1 business day';
- status.className = 'dwm-status ok';
- btn.textContent = 'Sent ✓';
- setTimeout(() => { dwmClose(kind === 'sample' ? 'Sample' : 'Inquiry'); btn.disabled = false; btn.textContent = orig; status.className = 'dwm-status'; form.reset(); }, 2800);
- } catch (err) {
- status.textContent = 'Send failed — please email info@designerwallcoverings.com';
- status.className = 'dwm-status err';
- btn.disabled = false; btn.textContent = orig;
- }
- return false;
- }
-
- // Wire up "Memo samples ship free" badge in hero to open sample modal directly
- document.querySelectorAll('.hero .badge, [data-open-sample]').forEach(el => {
- el.style.cursor = 'pointer';
- el.addEventListener('click', () => dwmOpen('Sample'));
- });
-
- // Wire nav "Trade" link to inquiry modal
- document.querySelectorAll('nav a[href*="designerwallcoverings.com"]').forEach(a => {
- a.removeAttribute('target');
- a.removeAttribute('href');
- a.style.cursor = 'pointer';
- a.addEventListener('click', e => { e.preventDefault(); dwmOpen('Contact'); });
- });
-
- // Override product card clicks — open Sample modal pre-filled instead of redirecting to DW
- document.addEventListener('click', e => {
- const card = e.target.closest('.card, .rail-card');
- if (!card) return;
- if (card.tagName === 'A' && (card.getAttribute('href') || '').startsWith('/sample/')) {
- e.preventDefault();
- const img = card.querySelector('img');
- const pat = card.querySelector('.pat');
- const sku = card.getAttribute('href').replace('/sample/', '');
- dwmOpen('Sample', {
- sku,
- title: pat ? pat.textContent.trim() : '',
- image_url: img ? img.src : ''
- });
- }
- }, true);
-// DW STANDARD: hero pulls from products.json[0].image_url so dw-collections-viewer
-// drag-drop / hero-pin updates the live front page on next deploy.
-// Always upgrades to the largest Shopify variant (strips _NxN size suffix) so
-// the full-page hero stays sharp.
-// DW STANDARD: hero rotates through top-20 NEWEST products on each visit
-// (novasuede.com pattern). Fetches /api/products?limit=100, sorts by created_at desc,
-// takes the freshest 20, picks one per visit via localStorage counter.
-// Falls back to static /hero-bg.jpg on any error.
-(async function rotateHero() {
- try {
- const r = await fetch('/api/products?limit=100');
- if (!r.ok) return;
- const d = await r.json();
- const items = (d.items || [])
- .filter(p => p && p.image_url && /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(p.image_url))
- .sort((a,b) => String(b.created_at || '').localeCompare(String(a.created_at || '')))
- .slice(0, 20);
- if (!items.length) return;
- let visits = 0;
- try {
- visits = parseInt(localStorage.getItem('hero_visits') || '0', 10) || 0;
- localStorage.setItem('hero_visits', String(visits + 1));
- } catch(e) {}
- const pick = items[visits % items.length];
- // Strip _NxN size suffix to get the largest CDN variant
- const url = pick.image_url.replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- const bg = document.getElementById('heroBg') || document.getElementById('cinemaBg');
- if (bg) bg.style.backgroundImage = "url('" + url + "')";
- } catch (e) {}
-})();
-
-
-// DW STANDARD sort-select wire-up (added by fleet patcher)
-(function(){
- const sortSel = document.getElementById('sortSelect');
- if (!sortSel) return;
- const KEY = location.hostname.replace(/\./g, '_') + '_sort';
- const saved = localStorage.getItem(KEY);
- if (saved) { try { sortSel.value = saved; } catch(e){} }
- if (typeof state !== 'undefined') state.sort = sortSel.value;
- sortSel.addEventListener('change', e => {
- const v = e.target.value;
- try { localStorage.setItem(KEY, v); } catch(e){}
- if (typeof state !== 'undefined') state.sort = v;
- if (typeof resetGrid === 'function') resetGrid();
- else location.reload();
- });
-})();
-
-// graphics-loop pass 11: hydrate Ideas rails from /api/products
-(async function hydrateIdeas() {
- try {
- const r = await fetch('/api/products?limit=80');
- if (!r.ok) return;
- const d = await r.json();
- const items = (d.items || []).filter(p => p && p.image_url);
- if (!items.length) return;
- const sorted = [...items].sort((a,b) => String(b.created_at || '').localeCompare(String(a.created_at || '')));
- const newest = sorted.slice(0, 12);
- // Curated = deterministic offset slice (every 5th item starting at idx 3) for variety
- const curated = items.filter((_, i) => i % 5 === 3).slice(0, 12);
- function card(p) {
- const url = (p.image_url || '').replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- return '<a class="rail-card" href="/sample/' + encodeURIComponent(p.handle || p.sku) + '">' +
- '<img src="' + url + '" alt="' + (p.title || '').replace(/"/g, '"') + '" loading="lazy">' +
- '<div class="rc-title">' + ((p.title || '').split('|')[0] || '').trim() + '</div>' +
- '<div class="rc-meta">' + (p.vendor || '') + '</div>' +
- '</a>';
- }
- const r1 = document.getElementById('railNewest');
- const r2 = document.getElementById('railCurated');
- if (r1) r1.innerHTML = newest.map(card).join('');
- if (r2) r2.innerHTML = curated.map(card).join('');
- } catch(e) {}
-})();
-</script>
-
-</body>
-</html>
diff --git a/public/index.html.bak.gtagev.1778426583602 b/public/index.html.bak.gtagev.1778426583602
deleted file mode 100644
index 4a0abfe..0000000
--- a/public/index.html.bak.gtagev.1778426583602
+++ /dev/null
@@ -1,977 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
- <link rel="icon" type="image/svg+xml" href="/favicon.svg">
-
-<meta charset="utf-8">
-<!-- Google tag (gtag.js) -->
-<script async src="https://www.googletagmanager.com/gtag/js?id=G-PN839G9FD8"></script>
-<script>
- window.dataLayer = window.dataLayer || [];
- function gtag(){dataLayer.push(arguments);}
- gtag('js', new Date());
- gtag('config', 'G-PN839G9FD8');
-</script>
-
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>Studio Toten — architectural. Useful.</title>
-<meta name="description" content="Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.">
-<meta name="theme-color" content="#F5F2ED">
-<link rel="canonical" href="https://architecturalwallcoverings.com/">
-<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&display=swap" rel="stylesheet">
-<link rel="preload" as="image" href="/hero-bg.jpg" fetchpriority="high">
-<script type="application/ld+json">
-{
- "@context": "https://schema.org",
- "@type": "Organization",
- "name": "Studio Toten",
- "url": "https://architecturalwallcoverings.com/",
- "email": "info@architecturalwallcoverings.com"
-}
-</script>
-<script src="/zd-loader.js" defer></script>
-<style>
-:root {
- --bg: #F5F2ED;
- --paper: #1A1A1A;
- --muted: #8B7866;
- --line: #D5CFC4;
- --accent: #1A1A1A;
- --bg-soft: #D5CFC4;
- --cols: 6;
-}
-html[data-theme="dark"] {
- --bg: #1a1410;
- --paper: #F5F2ED;
- --muted: #C9B89E;
- --line: rgba(255,254,250,0.12);
- --accent: #1A1A1A;
- --bg-soft: #2a1f15;
-}
-* { margin:0; padding:0; box-sizing:border-box }
-html { scroll-behavior:smooth }
-body { font-family:'Inter', sans-serif; color:var(--paper); -webkit-font-smoothing:antialiased; background:var(--bg); min-height:100vh; overflow-x:hidden }
-/* DW-FASHION-TEMPLATE-OVERRIDE */
-.section-title .accent, .footer-brand, .center-mark, h1, h2, h3 { font-family:'Inter', Georgia, serif !important; font-weight:400 !important; }
-
-/* ===== Auto-hide header ===== */
-header { position:fixed; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 32px; z-index:100; background:rgba(0,0,0,0.55); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:transform .3s }
-.h-link { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); text-decoration:none; cursor:pointer; background:transparent; border:0 }
-.h-link:hover { opacity:0.7 }
-.h-icon { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }
-
-/* ===== Cinema hero ===== */
-.cinema { position:relative; height:100vh; width:100%; overflow:hidden }
-.cinema-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-image:url('/hero-bg.jpg') }
-.cinema-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.75) 100%) }
-.corner-mark { position:absolute; top:24px; left:32px; font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,0.55), 0 0 1px rgba(0,0,0,0.4); z-index:5 }
-.corner-mark::before { content:"◆ "; margin-right:6px }
-.center-mark { position:absolute; top:clamp(80px,12vh,140px); left:50%; transform:translateX(-50%); font-size:clamp(28px,4vw,56px); font-weight:500; letter-spacing:0.18em; text-transform:uppercase; text-align:center; color:#fff; text-shadow:0 2px 8px rgba(0,0,0,0.65), 0 0 1px rgba(0,0,0,0.5); z-index:5 }
-.center-mark .tm { font-size:14px; vertical-align:super; opacity:0.7; margin-left:0.2em }
-.center-mark .sub { display:block; font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400; font-size:0.4em; letter-spacing:0.04em; text-transform:none; margin-top:14px; opacity:0.85 }
-.meta-line { position:absolute; bottom:32px; left:32px; font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:700; color:#fff; z-index:5; opacity:0.85 }
-.meta-line .num { font-size:12px; display:block; margin-top:4px; letter-spacing:0.05em }
-.enter { position:absolute; bottom:32px; right:32px; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:0.36em; text-transform:uppercase; font-weight:700; color:#fff; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #fff; transition:gap 0.25s; z-index:5 }
-.enter:hover { gap:22px }
-.enter svg { width:24px; height:12px }
-
-/* ===== Section ===== */
-.section { padding:96px 32px }
-.section-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--line) }
-.section-title { font-size:clamp(36px,5vw,64px); font-weight:300; letter-spacing:-0.02em; line-height:1 }
-.section-title .accent { color: var(--accent); font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400 }
-.section-eyebrow { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:16px }
-.section-meta { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--muted); text-align:right; line-height:1.6 }
-
-/* ===== Filter bar ===== */
-.filters { display:flex; gap:8px; align-items:center; margin-bottom:18px; flex-wrap:wrap }
-.chip { padding:8px 16px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); background:transparent; border:1px solid var(--line); cursor:pointer; transition:all 0.2s; font-family:inherit }
-.chip:hover { border-color:var(--paper) }
-.chip.active { background:var(--paper); color:var(--bg); border-color:var(--paper) }
-.search { flex:0 1 280px; margin-left:auto; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:6px 0 }
-.search input { flex:1; background:transparent; border:0; color:var(--paper); font-family:inherit; font-size:13px; outline:none; letter-spacing:0.04em }
-.search input::placeholder { color:var(--muted) }
-.search svg { width:16px; height:16px; stroke:var(--muted); fill:none; stroke-width:1.5 }
-
-/* ===== Grid-density slider ===== */
-.density { display:flex; align-items:center; gap:14px; padding:6px 0; margin-bottom:24px }
-.density label { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--muted) }
-.density input[type=range] { flex:1; max-width:240px; -webkit-appearance:none; appearance:none; height:1px; background:var(--line); outline:none }
-.density input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50% }
-.density input[type=range]::-moz-range-thumb { width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50%; border:0 }
-.density .ct { font-size:11px; color:var(--muted); letter-spacing:0.18em; text-transform:uppercase; font-weight:600; min-width:80px }
-
-/* ===== Stats line ===== */
-.stat-line { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:24px }
-
-/* ===== Product grid (novasuede pattern: flush grid + slide-up overlay) ===== */
-.grid { display:grid; grid-template-columns:repeat(var(--cols), 1fr); gap:0 }
-.card { position:relative; aspect-ratio:1/1.15; cursor:pointer; overflow:hidden; border:1px solid var(--bg); transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1); background:var(--bg-soft) }
-.card:hover { transform:scale(1.04); z-index:5 }
-.card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease }
-.card .overlay { position:absolute; left:0; right:0; bottom:0; padding:20px 16px 14px; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%); transform:translateY(48%); opacity:0.85; transition:transform 0.3s ease, opacity 0.3s ease }
-.card:hover .overlay { transform:translateY(0); opacity:1 }
-.card .pat { font-size:13px; font-weight:600; letter-spacing:0.02em; color:#fff; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
-.card .ven { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#fff; opacity:0.7; font-weight:500; margin-top:4px }
-.card .actions { margin-top:10px; display:flex; gap:6px }
-.card .sample-btn { flex:1; padding:7px 10px; background:#fff; color:#000; font-family:inherit; font-size:10px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; border:0; cursor:pointer; text-align:center; transition:all 0.2s }
-.card .sample-btn:hover { background:var(--accent); color:#fff }
-
-@media (max-width:1024px) { .grid { grid-template-columns:repeat(min(var(--cols), 4), 1fr) } }
-@media (max-width:720px) { .grid { grid-template-columns:repeat(2, 1fr) } .density { display:none } }
-
-.sentinel { height:1px }
-.loading { text-align:center; color:var(--muted); padding:32px; font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700 }
-
-/* ===== Footer ===== */
-footer { padding:64px 32px 32px; border-top:1px solid var(--line); margin-top:32px }
-.footer-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; margin-bottom:48px }
-.footer-brand { font-size:24px; font-weight:300; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:12px }
-.footer-text { font-size:13px; line-height:1.6; color:var(--muted); max-width:380px }
-.footer-col h4 { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--paper); margin-bottom:18px }
-.footer-col a { display:block; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:8px; transition:color 0.2s; cursor:pointer; background:transparent; border:0; font-family:inherit; padding:0; text-align:left }
-.footer-col a:hover { color:var(--accent) }
-.footer-bottom { max-width:1400px; margin:0 auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted) }
-
-@media (max-width:720px) {
- .corner-mark, .meta-line, .enter { font-size:10px }
- .center-mark { font-size:24px; letter-spacing:0.12em; top:clamp(60px,9vh,90px) }
- .section, footer { padding-left:20px; padding-right:20px }
- .footer-grid { grid-template-columns:1fr; gap:32px }
- .search { margin-left:0; flex:1 1 100% }
-}
-
-.theme-toggle { background:transparent; border:1px solid var(--line); width:32px; height:32px; cursor:pointer; color:var(--paper); display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; transition:all .15s; padding:0 }
-.theme-toggle:hover { border-color:var(--accent); color:var(--accent) }
-
-/* ===== WCAG 2.4.7 — keyboard focus indicators ===== */
-/* Strictly :focus-visible so mouse clicks do NOT show the ring */
-a:focus-visible,
-button:focus-visible,
-input:focus-visible,
-select:focus-visible,
-textarea:focus-visible,
-[tabindex]:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
-}
-</style>
-<script>
-(function(){ try { var t = localStorage.getItem('arch_theme') || 'light'; document.documentElement.dataset.theme = t; } catch(e){} })();
-</script>
-<link rel="preconnect" href="https://fonts.googleapis.com">
-<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap">
-
-<meta property="og:type" content="website">
-<meta property="og:url" content="https://architecturalwallcoverings.com/">
-<meta property="og:title" content="Architectural Wallcoverings">
-<meta property="og:description" content="Architectural Wallcoverings — Class A specifier-grade architectural wallcoverings.">
-<meta property="og:image" content="https://architecturalwallcoverings.com/hero-bg.jpg">
-<meta property="og:site_name" content="Architectural Wallcoverings">
-<meta property="article:publisher" content="https://www.facebook.com/SteveAbramsDesigns.DesignerWallcoverings">
-<meta name="twitter:card" content="summary_large_image">
-<meta name="twitter:title" content="Architectural Wallcoverings">
-<meta name="twitter:description" content="Architectural Wallcoverings — Class A specifier-grade architectural wallcoverings.">
-<meta name="twitter:image" content="https://architecturalwallcoverings.com/hero-bg.jpg">
-<!-- graphics-loop pass 13: footer + fb -->
-</head>
-<body>
-<style id="ns-header-modal-styles">
- .ns-header { position: sticky; top: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; padding: 18px 36px; background: rgba(10,10,10,0.92) !important; backdrop-filter: blur(8px); border-bottom: 1px solid rgba(245,241,232,0.06); }
- .ns-brand { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; }
- .ns-dot { width: 28px; height: 28px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #a98b5b 0%, #5d4c32 60%, #332a1b 100%); box-shadow: 0 0 0 1px rgba(245,241,232,0.10), 0 2px 12px rgba(180,90,60,0.30); flex-shrink: 0; }
- .ns-name { font-family: -apple-system, "SF Pro Display", "Helvetica Neue", system-ui, sans-serif; font-size: 18px !important; font-weight: 300 !important; letter-spacing: 0.02em !important; color: #f5f1e8 !important; text-transform: none !important; margin: 0 !important; }
- .ns-name sup { font-size: 0.55em; font-weight: 300; margin-left: 1px; }
- .ns-nav { display: flex; gap: 32px; align-items: center; list-style: none; padding: 0; margin: 0; }
- .ns-nav a, .ns-nav button { font-family: -apple-system, "SF Pro Text", system-ui, sans-serif; font-size: 15px !important; font-weight: 400 !important; color: #f5f1e8 !important; text-decoration: none !important; background: none !important; border: 0 !important; cursor: pointer; padding: 0 !important; transition: color 200ms; letter-spacing: 0 !important; text-transform: none !important; }
- .ns-nav a:hover, .ns-nav button:hover { color: #ffffff !important; }
- @media (max-width: 820px) { .ns-header { padding: 14px 18px; } .ns-nav { gap: 16px; } .ns-nav a, .ns-nav button { font-size: 13px !important; } }
- @media (max-width: 760px) {
- .ns-header { flex-wrap: wrap; }
- .ns-nav { display: none !important; flex-basis: 100%; flex-direction: column; align-items: flex-start; gap: 6px; padding: 14px 0 4px; }
- .ns-nav.open { display: flex !important; }
- .ns-nav a, .ns-nav button { padding: 10px 0 !important; border-bottom: 1px solid rgba(245,241,232,0.08); width: 100%; text-align: left; }
- .ns-nav a:nth-child(n+5), .ns-nav button:nth-child(n+5) { display: block !important; }
- .ns-header .mobile-toggle { display: flex !important; }
- }
- @media (min-width: 761px) {
- .ns-header .mobile-toggle { display: none !important; }
- }
- .ns-modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.78); z-index: 200; align-items: center; justify-content: center; padding: 24px; backdrop-filter: blur(6px); }
- .ns-modal.show { display: flex; }
- .ns-modal-card { max-width: 460px; width: 100%; background: #141414 !important; border: 1px solid rgba(245,241,232,0.14); border-radius: 6px; padding: 28px 30px 30px; position: relative; }
- .ns-modal-card .close-x { position: absolute; top: 12px; right: 14px; width: 30px; height: 30px; background: none; border: 1px solid rgba(245,241,232,0.18); color: rgba(245,241,232,0.6) !important; border-radius: 50%; cursor: pointer; font-size: 14px; display: flex; align-items: center; justify-content: center; }
- .ns-modal-card .close-x:hover { color: #ffffff !important; border-color: #ffffff; }
- .ns-modal-card h3 { font-family: -apple-system, "SF Pro Display", system-ui; font-weight: 300 !important; font-size: 22px !important; margin: 0 0 6px !important; color: #f5f1e8 !important; }
- .ns-modal-card .sub { color: rgba(245,241,232,0.65) !important; font-size: 13px; margin: 0 0 22px; }
- .ns-actions { display: flex; flex-direction: column; gap: 10px; }
- .ns-action { display: flex; align-items: center; gap: 14px; padding: 14px 16px; background: rgba(245,241,232,0.04) !important; border: 1px solid rgba(245,241,232,0.12) !important; color: #f5f1e8 !important; text-decoration: none !important; cursor: pointer; transition: all 200ms; font: inherit; text-align: left; }
- .ns-action:hover { background: rgba(245,241,232,0.08) !important; border-color: #d4b683 !important; }
- .ns-action .ico { width: 32px; height: 32px; border-radius: 50%; background: rgba(212,182,131,0.12); display: flex; align-items: center; justify-content: center; font-size: 15px; flex-shrink: 0; }
- .ns-action .txt { flex: 1; }
- .ns-action .txt b { display: block; font-weight: 500; font-size: 14px; color: #f5f1e8 !important; }
- .ns-action .txt span { font-size: 12px; color: rgba(245,241,232,0.55) !important; }
-
- /* ─── FINAL CONTRAST PASS — kill remaining gold-solid + white-island defects ─── */
- /* Replace all gold-fill accents with off-white (Gucci-aesthetic, no DW gold solids) */
- .new-badge, .new-arrivals-pill,
- .color-filter-btn.active,
- .drapery-btn, .sample-btn-chip, .cb-cta {
- background: #f5f1e8 !important;
- color: #0a0a0a !important;
- border-color: #f5f1e8 !important;
- }
- .new-badge:hover, .new-arrivals-pill:hover,
- .color-filter-btn.active:hover,
- .drapery-btn:hover, .sample-btn-chip:hover, .cb-cta:hover {
- background: #fff !important;
- color: #0a0a0a !important;
- }
- /* Gold accents stay only as edge color (links, glyphs) — not fills */
- a { color: #d4b683; }
- a:hover { color: #f5d97a; }
- /* Authorized-dealer footer line — small caps tracked, muted ink, no gold pill */
- .authorized, .authorized-dealer p {
- background: transparent !important;
- color: rgba(245,241,232,0.5) !important;
- font-size: 10px !important;
- letter-spacing: 0.22em !important;
- text-transform: uppercase !important;
- padding: 0 !important;
- border: none !important;
- margin-top: 14px !important;
- }
- /* Kill any straggler white bg in info-card / sample-related cards */
- .info-card, .info-card-link, .care-highlight, .feature-card, .spec-item {
- background-color: rgba(245,241,232,0.04) !important;
- border-color: rgba(245,241,232,0.12) !important;
- }
- /* Ensure modal content stays readable — Steve's earlier sweep made it #141414 with white text */
- .modal-content { background: #141414 !important; color: #f5f1e8 !important; }
- .modal-content * { color: #f5f1e8 !important; }
- .modal-content input, .modal-content textarea, .modal-content select {
- background: rgba(245,241,232,0.05) !important;
- color: #f5f1e8 !important;
- border-color: rgba(245,241,232,0.2) !important;
- }
- .modal-content label { color: rgba(245,241,232,0.6) !important; }
- /* Force the wide-tracked NOVASUEDE wordmark to stay white */
- .ns-wordmark, .ns-wordmark sup { color: #f5f1e8 !important; }
-
- /* ─── Modal-internal contrast (post-QA defects) ─── */
- /* Backdrop covers full viewport */
- .modal { width: 100vw !important; height: 100vh !important; left: 0 !important; top: 0 !important; background: rgba(0, 0, 0, 0.78) !important; backdrop-filter: blur(6px); }
- /* Chip — flip from white-on-white island to dark card */
- .request-chip {
- background: rgba(245, 241, 232, 0.06) !important;
- color: #f5f1e8 !important;
- border: 1px solid rgba(245, 241, 232, 0.18) !important;
- border-radius: 4px !important;
- }
- .request-chip * { color: #f5f1e8 !important; }
- .request-chip .chip-swatch {
- /* swatch dot ALWAYS displays the inline-style hex from JS — fight any sweep */
- border: 1px solid rgba(0, 0, 0, 0.4) !important;
- }
- /* + Add to request — hairline white-border on transparent (no gold) */
- .add-to-request-btn {
- background: transparent !important;
- color: #f5f1e8 !important;
- border: 1px solid rgba(245, 241, 232, 0.6) !important;
- border-radius: 0 !important;
- padding: 12px 22px !important;
- font-size: 11px !important;
- letter-spacing: 0.32em !important;
- text-transform: uppercase !important;
- font-weight: 400 !important;
- }
- .add-to-request-btn:hover {
- background: #f5f1e8 !important;
- color: #0a0a0a !important;
- border-color: #f5f1e8 !important;
- }
- /* Hex caption visible */
- .preview-hex, #colorPreviewHex {
- display: block !important;
- color: rgba(245, 241, 232, 0.55) !important;
- font-family: ui-monospace, "SF Mono", Menlo, monospace !important;
- font-size: 11px !important;
- margin-top: 4px !important;
- letter-spacing: 0.04em !important;
- text-transform: lowercase !important;
- }
- /* Color preview name — stays single, prominent */
- #colorPreviewName {
- color: #f5f1e8 !important;
- font-size: 11px !important;
- letter-spacing: 0.32em !important;
- text-transform: uppercase !important;
- font-weight: 500 !important;
- display: block !important;
- margin-top: 12px !important;
- }
-
- /* ─── Mobile hamburger nav (replaces the overflow at <760px) ─── */
- @media (max-width: 760px) {
- header .nav-container { flex-wrap: wrap; }
- header nav { display: none; flex-basis: 100%; flex-direction: column; gap: 6px; padding: 16px 0 6px; }
- header nav.open { display: flex; }
- header nav a { padding: 10px 0; border-bottom: 1px solid rgba(245,241,232,0.1); }
- header .mobile-toggle {
- display: flex !important;
- flex-direction: column;
- gap: 5px;
- background: transparent;
- border: 0;
- cursor: pointer;
- padding: 8px;
- }
- header .mobile-toggle span {
- width: 22px; height: 1.5px;
- background: #f5f1e8;
- display: block;
- }
- }
- @media (min-width: 761px) {
- header .mobile-toggle { display: none !important; }
- }
-
- </style>
-<style id="ns-gold-kill">
- /* novasuede: kill gold-solid fills, off-white instead. Edge color stays gold. */
- .new-badge, .new-arrivals-pill,
- .color-filter-btn.active, .drapery-btn,
- .sample-btn-chip, .cb-cta {
- background: #f5f1e8 !important;
- color: #0a0a0a !important;
- border-color: #f5f1e8 !important;
- }
- .new-badge:hover, .new-arrivals-pill:hover,
- .color-filter-btn.active:hover, .drapery-btn:hover,
- .sample-btn-chip:hover, .cb-cta:hover {
- background: #fff !important;
- color: #0a0a0a !important;
- }
- </style>
-<header class="ns-header">
- <a href="/" class="ns-brand" aria-label="Home">
- <span class="ns-dot"></span>
- <span class="ns-name">Studio Toten</span>
- </a>
- <nav class="ns-nav" id="nsPrimaryNav" aria-label="Primary">
- <a href="/">Home</a>
- <a href="/about">About</a>
- <button type="button" onclick="nsContactOpen()">Contact</button>
- </nav>
- <button type="button" class="mobile-toggle" aria-label="Toggle menu" aria-controls="nsPrimaryNav" aria-expanded="false" onclick="nsToggleNav(this)">
- <span></span><span></span><span></span>
- </button>
- </header>
-
-<div class="ns-modal" id="nsContactModal" role="dialog" aria-modal="true" aria-labelledby="nsContactTitle" onclick="if(event.target===this)nsContactClose()">
- <div class="ns-modal-card">
- <button type="button" class="close-x" onclick="nsContactClose()" aria-label="Close">×</button>
- <h3 id="nsContactTitle">How can we help?</h3>
- <p class="sub">Trade-account replies within one business day.</p>
- <div class="ns-actions">
- <a class="ns-action" href="#contact" onclick="nsContactClose()"><span class="ico">📋</span><div class="txt"><b>Get a Quote</b><span>Project specs → priced estimate</span></div></a>
- <a class="ns-action" href="#contact" onclick="nsContactClose();openModal();"><span class="ico">📦</span><div class="txt"><b>Order a Sample</b><span>Free swatch to your shop</span></div></a>
- <a class="ns-action" href="mailto:info@architecturalwallcoverings.com?subject=Studio%20Toten%20inquiry"><span class="ico">✉️</span><div class="txt"><b>Email Us</b><span>info@architecturalwallcoverings.com</span></div></a>
- <a class="ns-action" href="tel:888-373-4564"><span class="ico">📞</span><div class="txt"><b>Call Us</b><span>(888) 373-4564 · M–F, 9–5 PT</span></div></a>
- </div>
- </div>
- </div>
-<script>
- function nsContactOpen() { var m = document.getElementById('nsContactModal'); if (m) m.classList.add('show'); }
- function nsContactClose() { var m = document.getElementById('nsContactModal'); if (m) m.classList.remove('show'); }
- function nsToggleNav(btn) {
- var nav = document.getElementById('nsPrimaryNav');
- if (!nav) return;
- var open = nav.classList.toggle('open');
- btn.setAttribute('aria-expanded', open ? 'true' : 'false');
- }
- document.addEventListener('keydown', function(e){ if (e.key === 'Escape') nsContactClose(); });
-</script>
-
-
-
-
-
-
-
-
-
-
-
-<header>
- <button class="h-link" onclick="dwmOpen('Contact')" aria-label="Contact"><svg class="h-icon" viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/></svg><span>Contact</span></button>
- <button class="theme-toggle" id="theme-toggle" aria-label="Theme toggle">☾</button>
-</header>
-
-<section class="cinema">
- <div class="cinema-bg" id="heroBg"></div>
- <div class="corner-mark">Specifier-Grade</div>
- <div class="center-mark">Architectural Wallcoverings</div>
- <div class="meta-line">Architectural · Specifier · Class A · Contract<span class="num" id="heroNum"></span></div>
- <a class="enter" href="#shop">Enter <svg viewBox="0 0 24 12" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M0 6h22M16 1l6 5-6 5"/></svg></a>
-</section>
-
-
-<section class="section" id="ideas">
- <div class="rail-block">
- <div class="rail-eyebrow">Ideas</div>
- <h2 class="rail-title">New this week</h2>
- <div class="rail" id="railNewest"></div>
- </div>
- <div class="rail-block">
- <div class="rail-eyebrow">Ideas</div>
- <h2 class="rail-title">Curated picks</h2>
- <div class="rail" id="railCurated"></div>
- </div>
-</section>
-
-<section class="section" id="shop">
- <div class="section-header">
- <div>
- <div class="section-eyebrow">The Collection</div>
- <h2 class="section-title"><span class="accent" id="totalCount">—</span> Patterns.</h2>
- </div>
- <div class="section-meta">Architectural · Specifier · Class A · Contract</div>
- </div>
-
- <div class="filters" id="facets">
- <button class="chip active" data-facet="all">All</button>
- </div>
-
- <div class="density">
- <label>Sort</label>
- <select id="sortSelect" aria-label="Sort products" style="background:transparent;color:inherit;border:1px solid var(--line,rgba(255,255,255,.2));font:inherit;font-size:11px;letter-spacing:.10em;text-transform:uppercase;padding:4px 8px;cursor:pointer;outline:none;margin-right:14px">
- <option value="newest">Newest</option>
- <option value="color">Color</option>
- <option value="style">Style</option>
- <option value="sku">SKU A→Z</option>
- <option value="title">Title A→Z</option>
- <option value="price-asc">Price ↑</option>
- <option value="price-desc">Price ↓</option>
- </select>
- <label>Grid</label>
- <input type="range" id="densitySlider" min="4" max="12" step="1" value="6" aria-label="Grid columns">
- <span class="ct" id="densityLabel">6 cols</span>
- <div class="search">
- <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-5.5-5.5"/></svg>
- <input type="text" id="searchInput" placeholder="Search by pattern, color…" autocomplete="off">
- </div>
- </div>
-
- <div class="stat-line" id="statLine">Loading…</div>
- <div class="grid" id="grid"></div>
- <div class="loading" id="loading">Loading more…</div>
- <div class="sentinel" id="sentinel"></div>
-</section>
-
-<footer>
- <div class="footer-grid">
- <div>
- <div class="footer-brand">Studio Toten</div>
- <p class="footer-text">Studio Toten — real samples ship free.</p>
- <p class="footer-text" style="margin-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;color:var(--paper);opacity:0.7"><a href="/about" style="color:inherit;text-decoration:none;border-bottom:1px solid var(--accent)">About →</a></p>
- </div>
- <div class="footer-col">
- <h4>Aesthetic</h4>
- <div id="footerFacets"></div>
- </div>
- <div class="footer-col">
- <h4>Trade</h4>
- <button onclick="dwmOpen('Inquiry')">Project Inquiry</button>
- <button onclick="dwmOpen('Sample')">Request Sample</button>
- <button onclick="dwmOpen('Contact')">Contact</button>
- </div>
-
- <div class="footer-col">
- <h4>Social</h4>
- <a class="fb-link" href="https://www.facebook.com/SteveAbramsDesigns.DesignerWallcoverings" target="_blank" rel="noopener">Facebook</a>
- </div>
- </div>
- <div class="footer-bottom">
- <span>architecturalwallcoverings.com · Studio Toten</span>
- <span><a href="mailto:info@architecturalwallcoverings.com" style="color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px">info@architecturalwallcoverings.com</a></span>
- <span id="footerStat"></span>
- </div>
-</footer>
-
-<script>
-// mini-constellation — 43 niche-stars, current site highlighted in gold
-(function(){
- const SLUG = "architecturalwallcoverings";
- const NICHES = [
- ['silkwallpaper','Silk','mat'],['silkwallcoverings','Silk W/C','mat'],['linenwallpaper','Linen','mat'],
- ['jutewallpaper','Jute','mat'],['raffiawallcoverings','Raffia W/C','mat'],['raffiawalls','Raffia Walls','mat'],
- ['corkwallcovering','Cork','mat'],['fabricwallpaper','Fabric','mat'],['textilewallpaper','Textile','mat'],
- ['metallicwallpaper','Metallic','mat'],['silverleafwallpaper','Silver Leaf','mat'],['vinylwallpaper','Vinyl','mat'],
- ['micawallpaper','Mica','mat'],['madagascarwallpaper','Madagascar','mat'],['mylarwallpaper','Mylar','mat'],
- ['suedewallpaper','Suede','mat'],
- ['1800swallpaper','1800s','dec'],['1890swallpaper','1890s','dec'],['1900swallpaper','1900s','dec'],
- ['1920swallpaper','1920s','dec'],['1930swallpaper','1930s','dec'],['1940swallpaper','1940s','dec'],
- ['1950swallpaper','1950s','dec'],['1960swallpaper','1960s','dec'],['1970swallpaper','1970s','dec'],
- ['1980swallpaper','1980s','dec'],['retrowalls','Retro','dec'],['wallpapersback','W. Back','dec'],
- ['agedwallpaper','Aged','cra'],['handcraftedwallpaper','Handcrafted','cra'],['museumwallpaper','Museum','cra'],
- ['restorationwallpaper','Restoration','cra'],['pastelwallpaper','Pastel','cra'],['glitterwalls','Glitter','cra'],
- ['greenwallcoverings','Green','cra'],['naturalwallcoverings','Natural','cra'],['saloonwallpaper','Saloon','cra'],
- ['contractwallpaper','Contract','use'],['hotelwallcoverings','Hotel','use'],['hospitalitywallpaper','Hospitality','use'],
- ['healthcarewallpaper','Healthcare','use'],['restaurantwallpaper','Restaurant','use'],['architecturalwallcoverings','Architectural','use']
- ];
- const COLOR = { mat:'#c9b687', dec:'#b86a4a', cra:'#6b8e6f', use:'#4a6b8e' };
- const W = 1080, H = 200, BANDS = ['mat','dec','cra','use'];
- const groups = { mat:[], dec:[], cra:[], use:[] };
- for (const n of NICHES) groups[n[2]].push(n);
- const svg = document.getElementById('miniConst');
- if (!svg) return;
- const bandW = W / BANDS.length;
- let nodes = '';
- BANDS.forEach((band, bi) => {
- const list = groups[band];
- const cx = bi * bandW + bandW / 2;
- list.forEach((n, i) => {
- const t = list.length === 1 ? 0.5 : i / (list.length - 1);
- // deterministic jitter per slug
- let h = 0; for (let k = 0; k < n[0].length; k++) h = (h * 31 + n[0].charCodeAt(k)) | 0;
- const jx = ((h & 0xff) / 255 - 0.5) * (bandW * 0.5);
- const jy = (((h >> 8) & 0xff) / 255 - 0.5) * 6; // tightened from 14 → 6 to prevent same-band collisions (16 mat nodes / 144px = 9px spacing)
- const x = cx + jx, y = 28 + t * (H - 56) + jy;
- const isCurrent = n[0] === SLUG;
- const r = isCurrent ? 8 : 4;
- const op = isCurrent ? 1 : 0.55;
- nodes += `<g class="mc-node" data-slug="${n[0]}" data-label="${n[1]}" style="cursor:pointer">
- <circle cx="${x}" cy="${y}" r="${r}" fill="url(#dna-${band})" fill-opacity="${op}" stroke="${COLOR[band]}" stroke-opacity="${isCurrent?1:0.7}" stroke-width="${isCurrent?2:1}">
- <title>${n[1]} — ${n[0]}.com</title>
- </circle>
- ${isCurrent ? `<circle cx="${x}" cy="${y}" r="${r+5}" fill="none" stroke="${COLOR[band]}" stroke-opacity="0.4" stroke-width="1"><animate attributeName="r" values="${r+5};${r+12};${r+5}" dur="2.4s" repeatCount="indefinite"/><animate attributeName="stroke-opacity" values="0.4;0;0.4" dur="2.4s" repeatCount="indefinite"/></circle>` : ''}
- </g>`;
- });
- });
- // append nodes after defs
- svg.insertAdjacentHTML('beforeend', nodes);
- svg.querySelectorAll('.mc-node').forEach(n => {
- n.addEventListener('mouseenter', () => n.querySelector('circle').setAttribute('fill-opacity', '1'));
- n.addEventListener('mouseleave', e => {
- const isCurrent = n.dataset.slug === SLUG;
- n.querySelector('circle').setAttribute('fill-opacity', isCurrent ? '1' : '0.55');
- });
- n.addEventListener('click', () => window.open('https://' + n.dataset.slug + '.com', '_blank'));
- });
-})();
-</script>
-
-<script>
-const state = { q:'', facet:'all', page:1, pages:1, total:0, loading:false, exhausted:false };
-const LABELS = {"all":"All"};
-
-function escAttr(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[c])); }
-// Image-URL allowlist: only DW Shopify CDN + designerwallcoverings.com (defends against XSS via crafted products.json)
-function safeImg(u) { return /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(u || '') ? u : '/hero-bg.jpg'; }
-function cardHTML(p) {
- const eager = state.page === 1;
- return '<img loading="' + (eager ? 'eager' : 'lazy') + '"' + (eager ? ' fetchpriority="high"' : '') + ' src="' + escAttr(safeImg(p.image_url)) + '" alt="' + escAttr(p.title) + '">'
- + '<div class="overlay">'
- + '<div class="pat">' + escAttr(p.pattern_name || p.title) + '</div>'
- + '<div class="ven">' + escAttr((p.vendor || '').replace(/-/g, ' ')) + '</div>'
- + '<div class="actions">'
- + '<button class="sample-btn" onclick="event.stopPropagation();dwmOpen(\'Sample\',' + JSON.stringify({sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}).replace(/"/g,'"') + ')">Sample</button>'
- + '</div></div>';
-}
-
-async function loadFacets() {
- let f;
- try {
- const r = await fetch('/api/facets');
- if (!r.ok) throw new Error('HTTP ' + r.status);
- f = await r.json();
- } catch (e) { console.error('loadFacets failed:', e); return; }
- const el = document.getElementById('facets');
- for (const [k, v] of Object.entries(f.aesthetics).sort((a,b) => b[1] - a[1])) {
- const b = document.createElement('button');
- b.className = 'chip'; b.dataset.facet = k;
- b.innerHTML = (LABELS[k] || k) + ' <span style="opacity:.55;font-weight:500;margin-left:4px">' + v + '</span>';
- el.appendChild(b);
- }
- el.addEventListener('click', e => {
- if (e.target.tagName !== 'BUTTON') return;
- document.querySelectorAll('#facets button').forEach(b => b.classList.remove('active'));
- e.target.classList.add('active');
- state.facet = e.target.dataset.facet;
- resetGrid();
- });
- document.getElementById('totalCount').textContent = f.total;
- document.getElementById('footerStat').textContent = f.total + ' patterns · live archive';
- // Footer aesthetic links
- const footerEl = document.getElementById('footerFacets');
- for (const [k] of Object.entries(f.aesthetics)) {
- const b = document.createElement('button');
- b.textContent = LABELS[k] || k;
- b.onclick = () => { state.facet = k; resetGrid(); document.querySelectorAll('#facets button').forEach(x => x.classList.toggle('active', x.dataset.facet === k)); document.getElementById('shop').scrollIntoView({behavior:'smooth'}); };
- footerEl.appendChild(b);
- }
-}
-
-function resetGrid() {
- state.page = 1; state.exhausted = false;
- document.getElementById('grid').innerHTML = '';
- document.getElementById('loading').textContent = 'Loading…';
- loadGridPage();
-}
-
-async function loadGridPage() {
- if (state.loading || state.exhausted) return;
- state.loading = true;
- const params = new URLSearchParams({ page:state.page, limit:24 });
- if (state.q) params.set('q', state.q);
- if (state.facet !== 'all') params.set('aesthetic', state.facet);
- let data;
- try {
- const r = await fetch('/api/products?' + params);
- if (!r.ok) throw new Error('HTTP ' + r.status);
- data = await r.json();
- } catch (e) {
- console.error('loadGridPage failed:', e);
- document.getElementById('loading').textContent = '— offline — refresh to retry —';
- state.loading = false;
- return;
- }
- state.total = data.total; state.pages = data.pages;
-
- if (state.page === 1) {
- document.getElementById('statLine').textContent = data.total + ' patterns · ' + (state.facet === 'all' ? 'all aesthetics' : (LABELS[state.facet] || state.facet)) + (state.q ? ' · matching "' + state.q + '"' : '');
- }
- const grid = document.getElementById('grid');
- for (const p of data.items) {
- const a = document.createElement('a');
- a.className = 'card'; a.href = '#'; a.onclick = (e) => { e.preventDefault(); dwmOpen('Sample',{sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}); };
- a.innerHTML = cardHTML(p);
- grid.appendChild(a);
- }
- if (state.page >= state.pages || data.items.length === 0) {
- state.exhausted = true;
- document.getElementById('loading').textContent = state.total > 0 ? '— end of archive · ' + state.total + ' patterns —' : '';
- } else state.page++;
- state.loading = false;
-}
-
-const io = new IntersectionObserver(es => { for (const e of es) if (e.isIntersecting) loadGridPage(); }, { rootMargin:'600px 0px' });
-io.observe(document.getElementById('sentinel'));
-
-document.getElementById('searchInput').addEventListener('input', e => {
- state.q = e.target.value.trim();
- clearTimeout(window._t);
- window._t = setTimeout(resetGrid, 220);
-});
-
-// Density slider
-const slider = document.getElementById('densitySlider');
-const dlabel = document.getElementById('densityLabel');
-function setDensity(n) {
- document.documentElement.style.setProperty('--cols', n);
- dlabel.textContent = n + ' cols';
- try { localStorage.setItem('arch_theme_density', n); } catch(e){}
-}
-slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
-const savedDensity = parseInt(localStorage.getItem('arch_theme_density') || '6');
-if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
-
-// Theme toggle
-const tb = document.getElementById('theme-toggle');
-function setTheme(t){ document.documentElement.dataset.theme = t; try { localStorage.setItem('arch_theme', t); } catch(e){} tb.textContent = t === 'dark' ? '☾' : '☀'; }
-setTheme(document.documentElement.dataset.theme || 'light');
-tb.addEventListener('click', () => setTheme(document.documentElement.dataset.theme === 'dark' ? 'light' : 'dark'));
-
-loadFacets();
-loadGridPage();
-</script>
-<!-- ============================================================
- DW UNIVERSAL CONTACT MODULE — fashion-house UX
- Inject before </body> in every DW-family sister site.
- Self-contained: CSS + 4 modals + JS submission handlers.
- Uses host site's CSS vars (--bg, --fg, --gold, --rule).
- ============================================================ -->
-<style>
- /* === MODAL BASE === */
- .dwm{position:fixed;inset:0;background:rgba(0,0,0,0.78);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;overflow-y:auto}
- .dwm.open{display:flex}
- .dwm-box{background:var(--bg);border:1px solid var(--rule);max-width:520px;width:100%;padding:36px 32px;position:relative;max-height:90vh;overflow-y:auto;animation:dwm-in 0.25s ease}
- @keyframes dwm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
- .dwm-box h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;font-size:32px;line-height:1.05;margin-bottom:6px;color:var(--fg);letter-spacing:-0.01em}
- .dwm-box .sub{color:var(--muted);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
- .dwm-close{position:absolute;top:18px;right:18px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;width:32px;height:32px;line-height:1;padding:0}
- .dwm-close:hover{color:var(--gold)}
- .dwm-preview{display:flex;gap:14px;align-items:center;padding:12px;background:var(--bg-soft);margin-bottom:18px}
- .dwm-preview img{width:64px;height:64px;object-fit:cover}
- .dwm-preview .pn{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;line-height:1.2;color:var(--fg)}
- .dwm-preview .pc{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
- .dwm-field{margin-bottom:14px}
- .dwm-field label{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
- .dwm-field input,.dwm-field textarea,.dwm-field select{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:8px 4px;font-size:14px;font-family:inherit;color:var(--fg);outline:none;transition:border-color 0.2s}
- .dwm-field input:focus,.dwm-field textarea:focus{border-bottom-color:var(--gold)}
- .dwm-field textarea{min-height:60px;resize:vertical}
- .dwm-submit{background:transparent;color:var(--muted, #c9b89e);border:1px solid var(--muted, #c9b89e);padding:14px 28px;font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:700;cursor:pointer;width:100%;margin-top:8px;transition:background 0.15s, color 0.15s}
- .dwm-submit:hover{background:var(--muted, #c9b89e);color:var(--bg, #000)}
-
- .dwm-submit:disabled{opacity:0.5;cursor:default}
- .dwm-status{margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;display:none}
- .dwm-status.ok{color:var(--sage);display:block}
- .dwm-status.err{color:#e08070;display:block}
- /* contact-options */
- .dwm-options{display:flex;flex-direction:column;gap:10px}
- .dwm-option{display:flex;align-items:center;gap:14px;padding:18px 20px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;transition:all 0.2s;text-align:left;width:100%}
- .dwm-option:hover{border-color:var(--gold);color:var(--gold)}
- .dwm-option svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}
- .dwm-option .lbl{flex:1;display:block}
- .dwm-option .val{display:block;font-size:10px;letter-spacing:0.14em;text-transform:none;font-weight:500;opacity:0.65;margin-top:4px}
-
-/* graphics-loop pass 5: serif hero typography + nav legibility */
-.cinema h1, h1.headline { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; letter-spacing: -0.01em }
-.h-link { font-size: 13px; letter-spacing: 0.06em }
-
-/* graphics-loop pass 11: Ideas rails */
-#ideas { padding: 56px 24px 24px; max-width:1600px; margin:0 auto }
-#ideas .rail-block { margin-bottom:48px }
-#ideas .rail-eyebrow { font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:var(--muted, #888); margin-bottom:8px }
-#ideas .rail-title { font-size:clamp(22px,2.6vw,32px); font-weight:500; letter-spacing:-0.01em; margin:0 0 18px; color:var(--ink,#fff) }
-#ideas .rail { display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:8px; scrollbar-width:none }
-#ideas .rail::-webkit-scrollbar { display:none }
-#ideas .rail-card { flex:0 0 240px; scroll-snap-align:start; cursor:pointer; transition:transform 0.2s }
-#ideas .rail-card:hover { transform:translateY(-3px) }
-#ideas .rail-card img { width:100%; aspect-ratio:1; object-fit:cover; display:block; background:var(--card,#222) }
-#ideas .rail-card .rc-title { font-size:13px; font-weight:500; color:var(--paper,#fff); padding:8px 0 2px; line-height:1.3 }
-#ideas .rail-card .rc-meta { font-size:11px; color:var(--muted,#888); letter-spacing:0.06em }
-@media (max-width:720px) { #ideas .rail-card { flex:0 0 160px } }
-</style>
-
-<!-- Contact options modal -->
-<div class="dwm" id="dwmContact" onclick="if(event.target===this)dwmClose('Contact')">
- <div class="dwm-box" style="max-width:440px">
- <button class="dwm-close" onclick="dwmClose('Contact')" aria-label="Close">×</button>
- <h3>Contact</h3>
- <p class="sub" id="dwmContactSub">Three ways to reach us</p>
- <div class="dwm-options">
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Inquiry')">
- <svg viewBox="0 0 24 24"><path d="M4 4h16v12H7l-3 3z"/></svg>
- <span class="lbl">Send an Inquiry<span class="val">Project name · scope · all the details</span></span>
- </button>
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Sample')">
- <svg viewBox="0 0 24 24"><rect x="4" y="6" width="16" height="14"/><path d="M4 10h16M9 6V3h6v3"/></svg>
- <span class="lbl">Request a Sample<span class="val">Memo sample · ships free · 3–5 business days</span></span>
- </button>
- <a class="dwm-option" id="dwmContactEmailLink" href="mailto:info@architecturalwallcoverings.com">
- <svg viewBox="0 0 24 24"><path d="M3 6h18v12H3z"/><path d="M3 6l9 7 9-7"/></svg>
- <span class="lbl">Email Us<span class="val" id="dwmContactEmailLabel">info@architecturalwallcoverings.com</span></span>
- </a>
- </div>
- </div>
-</div>
-
-<!-- Inquiry modal -->
-<div class="dwm" id="dwmInquiry" onclick="if(event.target===this)dwmClose('Inquiry')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Inquiry')" aria-label="Close">×</button>
- <h3>Project Inquiry</h3>
- <p class="sub">We'll respond within one business day</p>
- <form id="dwmInquiryForm" onsubmit="return dwmSubmit(event,'inquiry')">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Phone</label><input type="tel" name="phone"></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Project Name</label><input type="text" name="projectName" required></div>
- <div class="dwm-field"><label>Project Scope</label><textarea name="projectScope" placeholder="Square footage · room count · timeline" required></textarea></div>
- <div class="dwm-field"><label>Additional Information</label><textarea name="message" placeholder="Patterns of interest, finish preferences, budget"></textarea></div>
- <button type="submit" class="dwm-submit">Send Inquiry</button>
- <div class="dwm-status" id="dwmInquiryStatus"></div>
- </form>
- </div>
-</div>
-
-<!-- Sample-request modal -->
-<div class="dwm" id="dwmSample" onclick="if(event.target===this)dwmClose('Sample')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Sample')" aria-label="Close">×</button>
- <h3>Request a Sample</h3>
- <p class="sub">Memo sample · ships free · 3–5 business days</p>
- <div class="dwm-preview" id="dwmSamplePreview" style="display:none">
- <img id="dwmSampleImg" src="" alt="">
- <div><div class="pn" id="dwmSampleName"></div><div class="pc" id="dwmSampleSku"></div></div>
- </div>
- <form id="dwmSampleForm" onsubmit="return dwmSubmit(event,'sample')">
- <input type="hidden" name="sku" id="dwmSampleSkuInput">
- <input type="hidden" name="title" id="dwmSampleTitleInput">
- <input type="hidden" name="image_url" id="dwmSampleImageInput">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Shipping Address</label><input type="text" name="address" placeholder="Street" required></div>
- <div class="dwm-field" style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px">
- <input type="text" name="city" placeholder="City" required>
- <input type="text" name="state" placeholder="State" required>
- <input type="text" name="zip" placeholder="ZIP" required>
- </div>
- <div class="dwm-field"><label>Notes (optional)</label><textarea name="message" placeholder="Project, sq.ft., timing"></textarea></div>
- <button type="submit" class="dwm-submit">Send Sample Request</button>
- <div class="dwm-status" id="dwmSampleStatus"></div>
- </form>
- </div>
-</div>
-
-<script>
- // Universal modal control
- function dwmOpen(name, opts){
- document.getElementById('dwm' + name).classList.add('open');
- document.body.style.overflow = 'hidden';
- if (name === 'Sample' && opts) {
- document.getElementById('dwmSamplePreview').style.display = 'flex';
- document.getElementById('dwmSampleImg').src = opts.image_url || '';
- document.getElementById('dwmSampleName').textContent = opts.title || '';
- document.getElementById('dwmSampleSku').textContent = opts.sku || '';
- document.getElementById('dwmSampleSkuInput').value = opts.sku || '';
- document.getElementById('dwmSampleTitleInput').value = opts.title || '';
- document.getElementById('dwmSampleImageInput').value = opts.image_url || '';
- } else if (name === 'Sample') {
- document.getElementById('dwmSamplePreview').style.display = 'none';
- document.getElementById('dwmSampleSkuInput').value = '';
- document.getElementById('dwmSampleTitleInput').value = '';
- document.getElementById('dwmSampleImageInput').value = '';
- }
- }
- function dwmClose(name){ document.getElementById('dwm'+name).classList.remove('open'); document.body.style.overflow=''; }
-
- // Universal form submit — POSTs to /api/send-{kind}
- async function dwmSubmit(e, kind) {
- e.preventDefault();
- const form = e.target;
- const data = Object.fromEntries(new FormData(form).entries());
- const btn = form.querySelector('.dwm-submit');
- const status = form.querySelector('.dwm-status');
- btn.disabled = true; const orig = btn.textContent; btn.textContent = 'Sending…';
- status.className = 'dwm-status';
- try {
- const r = await fetch('/api/send-' + kind, { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
- if (!r.ok) throw new Error('HTTP '+r.status);
- const j = await r.json();
- status.textContent = kind === 'sample' ? 'Sample request sent — ships within 3–5 business days' : 'Inquiry sent — we respond within 1 business day';
- status.className = 'dwm-status ok';
- btn.textContent = 'Sent ✓';
- setTimeout(() => { dwmClose(kind === 'sample' ? 'Sample' : 'Inquiry'); btn.disabled = false; btn.textContent = orig; status.className = 'dwm-status'; form.reset(); }, 2800);
- } catch (err) {
- status.textContent = 'Send failed — please email info@designerwallcoverings.com';
- status.className = 'dwm-status err';
- btn.disabled = false; btn.textContent = orig;
- }
- return false;
- }
-
- // Wire up "Memo samples ship free" badge in hero to open sample modal directly
- document.querySelectorAll('.hero .badge, [data-open-sample]').forEach(el => {
- el.style.cursor = 'pointer';
- el.addEventListener('click', () => dwmOpen('Sample'));
- });
-
- // Wire nav "Trade" link to inquiry modal
- document.querySelectorAll('nav a[href*="designerwallcoverings.com"]').forEach(a => {
- a.removeAttribute('target');
- a.removeAttribute('href');
- a.style.cursor = 'pointer';
- a.addEventListener('click', e => { e.preventDefault(); dwmOpen('Contact'); });
- });
-
- // Override product card clicks — open Sample modal pre-filled instead of redirecting to DW
- document.addEventListener('click', e => {
- const card = e.target.closest('.card, .rail-card');
- if (!card) return;
- if (card.tagName === 'A' && (card.getAttribute('href') || '').startsWith('/sample/')) {
- e.preventDefault();
- const img = card.querySelector('img');
- const pat = card.querySelector('.pat');
- const sku = card.getAttribute('href').replace('/sample/', '');
- dwmOpen('Sample', {
- sku,
- title: pat ? pat.textContent.trim() : '',
- image_url: img ? img.src : ''
- });
- }
- }, true);
-// DW STANDARD: hero pulls from products.json[0].image_url so dw-collections-viewer
-// drag-drop / hero-pin updates the live front page on next deploy.
-// Always upgrades to the largest Shopify variant (strips _NxN size suffix) so
-// the full-page hero stays sharp.
-// DW STANDARD: hero rotates through top-20 NEWEST products on each visit
-// (novasuede.com pattern). Fetches /api/products?limit=100, sorts by created_at desc,
-// takes the freshest 20, picks one per visit via localStorage counter.
-// Falls back to static /hero-bg.jpg on any error.
-(async function rotateHero() {
- try {
- const r = await fetch('/api/products?limit=100');
- if (!r.ok) return;
- const d = await r.json();
- const items = (d.items || [])
- .filter(p => p && p.image_url && /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(p.image_url))
- .sort((a,b) => String(b.created_at || '').localeCompare(String(a.created_at || '')))
- .slice(0, 20);
- if (!items.length) return;
- let visits = 0;
- try {
- visits = parseInt(localStorage.getItem('hero_visits') || '0', 10) || 0;
- localStorage.setItem('hero_visits', String(visits + 1));
- } catch(e) {}
- const pick = items[visits % items.length];
- // Strip _NxN size suffix to get the largest CDN variant
- const url = pick.image_url.replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- const bg = document.getElementById('heroBg') || document.getElementById('cinemaBg');
- if (bg) bg.style.backgroundImage = "url('" + url + "')";
- } catch (e) {}
-})();
-
-
-// DW STANDARD sort-select wire-up (added by fleet patcher)
-(function(){
- const sortSel = document.getElementById('sortSelect');
- if (!sortSel) return;
- const KEY = location.hostname.replace(/\./g, '_') + '_sort';
- const saved = localStorage.getItem(KEY);
- if (saved) { try { sortSel.value = saved; } catch(e){} }
- if (typeof state !== 'undefined') state.sort = sortSel.value;
- sortSel.addEventListener('change', e => {
- const v = e.target.value;
- try { localStorage.setItem(KEY, v); } catch(e){}
- if (typeof state !== 'undefined') state.sort = v;
- if (typeof resetGrid === 'function') resetGrid();
- else location.reload();
- });
-})();
-
-// graphics-loop pass 11: hydrate Ideas rails from /api/products
-(async function hydrateIdeas() {
- try {
- const r = await fetch('/api/products?limit=80');
- if (!r.ok) return;
- const d = await r.json();
- const items = (d.items || []).filter(p => p && p.image_url);
- if (!items.length) return;
- const sorted = [...items].sort((a,b) => String(b.created_at || '').localeCompare(String(a.created_at || '')));
- const newest = sorted.slice(0, 12);
- // Curated = deterministic offset slice (every 5th item starting at idx 3) for variety
- const curated = items.filter((_, i) => i % 5 === 3).slice(0, 12);
- function card(p) {
- const url = (p.image_url || '').replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- return '<a class="rail-card" href="/sample/' + encodeURIComponent(p.handle || p.sku) + '">' +
- '<img src="' + url + '" alt="' + (p.title || '').replace(/"/g, '"') + '" loading="lazy">' +
- '<div class="rc-title">' + ((p.title || '').split('|')[0] || '').trim() + '</div>' +
- '<div class="rc-meta">' + (p.vendor || '') + '</div>' +
- '</a>';
- }
- const r1 = document.getElementById('railNewest');
- const r2 = document.getElementById('railCurated');
- if (r1) r1.innerHTML = newest.map(card).join('');
- if (r2) r2.innerHTML = curated.map(card).join('');
- } catch(e) {}
-})();
-</script>
-
-</body>
-</html>
diff --git a/public/index.html.bak.ns-canonical b/public/index.html.bak.ns-canonical
deleted file mode 100644
index c95c028..0000000
--- a/public/index.html.bak.ns-canonical
+++ /dev/null
@@ -1,984 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
- <link rel="icon" type="image/svg+xml" href="/favicon.svg">
-
-<meta charset="utf-8">
-<!-- Google tag (gtag.js) -->
-<script async src="https://www.googletagmanager.com/gtag/js?id=G-PN839G9FD8"></script>
-<script>
- window.dataLayer = window.dataLayer || [];
- function gtag(){dataLayer.push(arguments);}
- gtag('js', new Date());
- gtag('config', 'G-PN839G9FD8');
-</script>
-
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>Studio Toten — architectural. Useful.</title>
-<meta name="description" content="Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.">
-<meta name="theme-color" content="#F5F2ED">
-<link rel="canonical" href="https://architecturalwallcoverings.com/">
-<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&display=swap" rel="stylesheet">
-<link rel="preload" as="image" href="/hero-bg.jpg" fetchpriority="high">
-<script type="application/ld+json">
-{
- "@context": "https://schema.org",
- "@type": "Organization",
- "name": "Studio Toten",
- "url": "https://architecturalwallcoverings.com/",
- "email": "info@architecturalwallcoverings.com"
-}
-</script>
-<script src="/zd-loader.js" defer></script>
-<style>
-:root {
- --bg: #F5F2ED;
- --paper: #1A1A1A;
- --muted: #8B7866;
- --line: #D5CFC4;
- --accent: #1A1A1A;
- --bg-soft: #D5CFC4;
- --cols: 6;
-}
-html[data-theme="dark"] {
- --bg: #1a1410;
- --paper: #F5F2ED;
- --muted: #C9B89E;
- --line: rgba(255,254,250,0.12);
- --accent: #1A1A1A;
- --bg-soft: #2a1f15;
-}
-* { margin:0; padding:0; box-sizing:border-box }
-html { scroll-behavior:smooth }
-body { font-family:'Inter', sans-serif; color:var(--paper); -webkit-font-smoothing:antialiased; background:var(--bg); min-height:100vh; overflow-x:hidden }
-/* DW-FASHION-TEMPLATE-OVERRIDE */
-.section-title .accent, .footer-brand, .center-mark, h1, h2, h3 { font-family:'Inter', Georgia, serif !important; font-weight:400 !important; }
-
-/* ===== Auto-hide header ===== */
-header { position:fixed; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 32px; z-index:100; background:rgba(0,0,0,0.55); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:transform .3s }
-.h-link { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); text-decoration:none; cursor:pointer; background:transparent; border:0 }
-.h-link:hover { opacity:0.7 }
-.h-icon { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }
-
-/* ===== Cinema hero ===== */
-.cinema { position:relative; height:100vh; width:100%; overflow:hidden }
-.cinema-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-image:url('/hero-bg.jpg') }
-.cinema-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.75) 100%) }
-.corner-mark { position:absolute; top:24px; left:32px; font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,0.55), 0 0 1px rgba(0,0,0,0.4); z-index:5 }
-.corner-mark::before { content:"◆ "; margin-right:6px }
-.center-mark { position:absolute; top:clamp(80px,12vh,140px); left:50%; transform:translateX(-50%); font-size:clamp(28px,4vw,56px); font-weight:500; letter-spacing:0.18em; text-transform:uppercase; text-align:center; color:#fff; text-shadow:0 2px 8px rgba(0,0,0,0.65), 0 0 1px rgba(0,0,0,0.5); z-index:5 }
-.center-mark .tm { font-size:14px; vertical-align:super; opacity:0.7; margin-left:0.2em }
-.center-mark .sub { display:block; font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400; font-size:0.4em; letter-spacing:0.04em; text-transform:none; margin-top:14px; opacity:0.85 }
-.meta-line { position:absolute; bottom:32px; left:32px; font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:700; color:#fff; z-index:5; opacity:0.85 }
-.meta-line .num { font-size:12px; display:block; margin-top:4px; letter-spacing:0.05em }
-.enter { position:absolute; bottom:32px; right:32px; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:0.36em; text-transform:uppercase; font-weight:700; color:#fff; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #fff; transition:gap 0.25s; z-index:5 }
-.enter:hover { gap:22px }
-.enter svg { width:24px; height:12px }
-
-/* ===== Section ===== */
-.section { padding:96px 32px }
-.section-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--line) }
-.section-title { font-size:clamp(36px,5vw,64px); font-weight:300; letter-spacing:-0.02em; line-height:1 }
-.section-title .accent { color: var(--accent); font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400 }
-.section-eyebrow { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:16px }
-.section-meta { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--muted); text-align:right; line-height:1.6 }
-
-/* ===== Filter bar ===== */
-.filters { display:flex; gap:8px; align-items:center; margin-bottom:18px; flex-wrap:wrap }
-.chip { padding:8px 16px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); background:transparent; border:1px solid var(--line); cursor:pointer; transition:all 0.2s; font-family:inherit }
-.chip:hover { border-color:var(--paper) }
-.chip.active { background:var(--paper); color:var(--bg); border-color:var(--paper) }
-.search { flex:0 1 280px; margin-left:auto; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:6px 0 }
-.search input { flex:1; background:transparent; border:0; color:var(--paper); font-family:inherit; font-size:13px; outline:none; letter-spacing:0.04em }
-.search input::placeholder { color:var(--muted) }
-.search svg { width:16px; height:16px; stroke:var(--muted); fill:none; stroke-width:1.5 }
-
-/* ===== Grid-density slider ===== */
-.density { display:flex; align-items:center; gap:14px; padding:6px 0; margin-bottom:24px }
-.density label { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--muted) }
-.density input[type=range] { flex:1; max-width:240px; -webkit-appearance:none; appearance:none; height:1px; background:var(--line); outline:none }
-.density input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50% }
-.density input[type=range]::-moz-range-thumb { width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50%; border:0 }
-.density .ct { font-size:11px; color:var(--muted); letter-spacing:0.18em; text-transform:uppercase; font-weight:600; min-width:80px }
-
-/* ===== Stats line ===== */
-.stat-line { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:24px }
-
-/* ===== Product grid (novasuede pattern: flush grid + slide-up overlay) ===== */
-.grid { display:grid; grid-template-columns:repeat(var(--cols), 1fr); gap:0 }
-.card { position:relative; aspect-ratio:1/1.15; cursor:pointer; overflow:hidden; border:1px solid var(--bg); transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1); background:var(--bg-soft) }
-.card:hover { transform:scale(1.04); z-index:5 }
-.card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease }
-.card .overlay { position:absolute; left:0; right:0; bottom:0; padding:20px 16px 14px; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%); transform:translateY(48%); opacity:0.85; transition:transform 0.3s ease, opacity 0.3s ease }
-.card:hover .overlay { transform:translateY(0); opacity:1 }
-.card .pat { font-size:13px; font-weight:600; letter-spacing:0.02em; color:#fff; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
-.card .ven { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#fff; opacity:0.7; font-weight:500; margin-top:4px }
-.card .actions { margin-top:10px; display:flex; gap:6px }
-.card .sample-btn { flex:1; padding:7px 10px; background:#fff; color:#000; font-family:inherit; font-size:10px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; border:0; cursor:pointer; text-align:center; transition:all 0.2s }
-.card .sample-btn:hover { background:var(--accent); color:#fff }
-
-@media (max-width:1024px) { .grid { grid-template-columns:repeat(min(var(--cols), 4), 1fr) } }
-@media (max-width:720px) { .grid { grid-template-columns:repeat(2, 1fr) } .density { display:none } }
-
-.sentinel { height:1px }
-.loading { text-align:center; color:var(--muted); padding:32px; font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700 }
-
-/* ===== Footer ===== */
-footer { padding:64px 32px 32px; border-top:1px solid var(--line); margin-top:32px }
-.footer-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; margin-bottom:48px }
-.footer-brand { font-size:24px; font-weight:300; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:12px }
-.footer-text { font-size:13px; line-height:1.6; color:var(--muted); max-width:380px }
-.footer-col h4 { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--paper); margin-bottom:18px }
-.footer-col a { display:block; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:8px; transition:color 0.2s; cursor:pointer; background:transparent; border:0; font-family:inherit; padding:0; text-align:left }
-.footer-col a:hover { color:var(--accent) }
-.footer-bottom { max-width:1400px; margin:0 auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted) }
-
-@media (max-width:720px) {
- .corner-mark, .meta-line, .enter { font-size:10px }
- .center-mark { font-size:24px; letter-spacing:0.12em; top:clamp(60px,9vh,90px) }
- .section, footer { padding-left:20px; padding-right:20px }
- .footer-grid { grid-template-columns:1fr; gap:32px }
- .search { margin-left:0; flex:1 1 100% }
-}
-
-.theme-toggle { background:transparent; border:1px solid var(--line); width:32px; height:32px; cursor:pointer; color:var(--paper); display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; transition:all .15s; padding:0 }
-.theme-toggle:hover { border-color:var(--accent); color:var(--accent) }
-
-/* ===== WCAG 2.4.7 — keyboard focus indicators ===== */
-/* Strictly :focus-visible so mouse clicks do NOT show the ring */
-a:focus-visible,
-button:focus-visible,
-input:focus-visible,
-select:focus-visible,
-textarea:focus-visible,
-[tabindex]:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
-}
-</style>
-<script>
-(function(){ try { var t = localStorage.getItem('arch_theme') || 'light'; document.documentElement.dataset.theme = t; } catch(e){} })();
-</script>
-<link rel="preconnect" href="https://fonts.googleapis.com">
-<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap">
-
-<meta property="og:type" content="website">
-<meta property="og:url" content="https://architecturalwallcoverings.com/">
-<meta property="og:title" content="Architectural Wallcoverings">
-<meta property="og:description" content="Architectural Wallcoverings — Class A specifier-grade architectural wallcoverings.">
-<meta property="og:image" content="https://architecturalwallcoverings.com/hero-bg.jpg">
-<meta property="og:site_name" content="Architectural Wallcoverings">
-<meta property="article:publisher" content="https://www.facebook.com/SteveAbramsDesigns.DesignerWallcoverings">
-<meta name="twitter:card" content="summary_large_image">
-<meta name="twitter:title" content="Architectural Wallcoverings">
-<meta name="twitter:description" content="Architectural Wallcoverings — Class A specifier-grade architectural wallcoverings.">
-<meta name="twitter:image" content="https://architecturalwallcoverings.com/hero-bg.jpg">
-<!-- graphics-loop pass 13: footer + fb -->
-</head>
-<body>
-<style id="ns-header-modal-styles">
- .ns-header { position: sticky; top: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; padding: 18px 36px; background: rgba(10,10,10,0.92) !important; backdrop-filter: blur(8px); border-bottom: 1px solid rgba(245,241,232,0.06); }
- .ns-brand { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; }
- .ns-dot { width: 28px; height: 28px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #a98b5b 0%, #5d4c32 60%, #332a1b 100%); box-shadow: 0 0 0 1px rgba(245,241,232,0.10), 0 2px 12px rgba(180,90,60,0.30); flex-shrink: 0; }
- .ns-name { font-family: -apple-system, "SF Pro Display", "Helvetica Neue", system-ui, sans-serif; font-size: 18px !important; font-weight: 300 !important; letter-spacing: 0.02em !important; color: #f5f1e8 !important; text-transform: none !important; margin: 0 !important; }
- .ns-name sup { font-size: 0.55em; font-weight: 300; margin-left: 1px; }
- .ns-nav { display: flex; gap: 32px; align-items: center; list-style: none; padding: 0; margin: 0; }
- .ns-nav a, .ns-nav button { font-family: -apple-system, "SF Pro Text", system-ui, sans-serif; font-size: 15px !important; font-weight: 400 !important; color: #f5f1e8 !important; text-decoration: none !important; background: none !important; border: 0 !important; cursor: pointer; padding: 0 !important; transition: color 200ms; letter-spacing: 0 !important; text-transform: none !important; }
- .ns-nav a:hover, .ns-nav button:hover { color: #ffffff !important; }
- @media (max-width: 820px) { .ns-header { padding: 14px 18px; } .ns-nav { gap: 16px; } .ns-nav a, .ns-nav button { font-size: 13px !important; } }
- @media (max-width: 760px) {
- .ns-header { flex-wrap: wrap; }
- .ns-nav { display: none !important; flex-basis: 100%; flex-direction: column; align-items: flex-start; gap: 6px; padding: 14px 0 4px; }
- .ns-nav.open { display: flex !important; }
- .ns-nav a, .ns-nav button { padding: 10px 0 !important; border-bottom: 1px solid rgba(245,241,232,0.08); width: 100%; text-align: left; }
- .ns-nav a:nth-child(n+5), .ns-nav button:nth-child(n+5) { display: block !important; }
- .ns-header .mobile-toggle { display: flex !important; }
- }
- @media (min-width: 761px) {
- .ns-header .mobile-toggle { display: none !important; }
- }
- .ns-modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.78); z-index: 200; align-items: center; justify-content: center; padding: 24px; backdrop-filter: blur(6px); }
- .ns-modal.show { display: flex; }
- .ns-modal-card { max-width: 460px; width: 100%; background: #141414 !important; border: 1px solid rgba(245,241,232,0.14); border-radius: 6px; padding: 28px 30px 30px; position: relative; }
- .ns-modal-card .close-x { position: absolute; top: 12px; right: 14px; width: 30px; height: 30px; background: none; border: 1px solid rgba(245,241,232,0.18); color: rgba(245,241,232,0.6) !important; border-radius: 50%; cursor: pointer; font-size: 14px; display: flex; align-items: center; justify-content: center; }
- .ns-modal-card .close-x:hover { color: #ffffff !important; border-color: #ffffff; }
- .ns-modal-card h3 { font-family: -apple-system, "SF Pro Display", system-ui; font-weight: 300 !important; font-size: 22px !important; margin: 0 0 6px !important; color: #f5f1e8 !important; }
- .ns-modal-card .sub { color: rgba(245,241,232,0.65) !important; font-size: 13px; margin: 0 0 22px; }
- .ns-actions { display: flex; flex-direction: column; gap: 10px; }
- .ns-action { display: flex; align-items: center; gap: 14px; padding: 14px 16px; background: rgba(245,241,232,0.04) !important; border: 1px solid rgba(245,241,232,0.12) !important; color: #f5f1e8 !important; text-decoration: none !important; cursor: pointer; transition: all 200ms; font: inherit; text-align: left; }
- .ns-action:hover { background: rgba(245,241,232,0.08) !important; border-color: #d4b683 !important; }
- .ns-action .ico { width: 32px; height: 32px; border-radius: 50%; background: rgba(212,182,131,0.12); display: flex; align-items: center; justify-content: center; font-size: 15px; flex-shrink: 0; }
- .ns-action .txt { flex: 1; }
- .ns-action .txt b { display: block; font-weight: 500; font-size: 14px; color: #f5f1e8 !important; }
- .ns-action .txt span { font-size: 12px; color: rgba(245,241,232,0.55) !important; }
-
- /* ─── FINAL CONTRAST PASS — kill remaining gold-solid + white-island defects ─── */
- /* Replace all gold-fill accents with off-white (Gucci-aesthetic, no DW gold solids) */
- .new-badge, .new-arrivals-pill,
- .color-filter-btn.active,
- .drapery-btn, .sample-btn-chip, .cb-cta {
- background: #f5f1e8 !important;
- color: #0a0a0a !important;
- border-color: #f5f1e8 !important;
- }
- .new-badge:hover, .new-arrivals-pill:hover,
- .color-filter-btn.active:hover,
- .drapery-btn:hover, .sample-btn-chip:hover, .cb-cta:hover {
- background: #fff !important;
- color: #0a0a0a !important;
- }
- /* Gold accents stay only as edge color (links, glyphs) — not fills */
- a { color: #d4b683; }
- a:hover { color: #f5d97a; }
- /* Authorized-dealer footer line — small caps tracked, muted ink, no gold pill */
- .authorized, .authorized-dealer p {
- background: transparent !important;
- color: rgba(245,241,232,0.5) !important;
- font-size: 10px !important;
- letter-spacing: 0.22em !important;
- text-transform: uppercase !important;
- padding: 0 !important;
- border: none !important;
- margin-top: 14px !important;
- }
- /* Kill any straggler white bg in info-card / sample-related cards */
- .info-card, .info-card-link, .care-highlight, .feature-card, .spec-item {
- background-color: rgba(245,241,232,0.04) !important;
- border-color: rgba(245,241,232,0.12) !important;
- }
- /* Ensure modal content stays readable — Steve's earlier sweep made it #141414 with white text */
- .modal-content { background: #141414 !important; color: #f5f1e8 !important; }
- .modal-content * { color: #f5f1e8 !important; }
- .modal-content input, .modal-content textarea, .modal-content select {
- background: rgba(245,241,232,0.05) !important;
- color: #f5f1e8 !important;
- border-color: rgba(245,241,232,0.2) !important;
- }
- .modal-content label { color: rgba(245,241,232,0.6) !important; }
- /* Force the wide-tracked NOVASUEDE wordmark to stay white */
- .ns-wordmark, .ns-wordmark sup { color: #f5f1e8 !important; }
-
- /* ─── Modal-internal contrast (post-QA defects) ─── */
- /* Backdrop covers full viewport */
- .modal { width: 100vw !important; height: 100vh !important; left: 0 !important; top: 0 !important; background: rgba(0, 0, 0, 0.78) !important; backdrop-filter: blur(6px); }
- /* Chip — flip from white-on-white island to dark card */
- .request-chip {
- background: rgba(245, 241, 232, 0.06) !important;
- color: #f5f1e8 !important;
- border: 1px solid rgba(245, 241, 232, 0.18) !important;
- border-radius: 4px !important;
- }
- .request-chip * { color: #f5f1e8 !important; }
- .request-chip .chip-swatch {
- /* swatch dot ALWAYS displays the inline-style hex from JS — fight any sweep */
- border: 1px solid rgba(0, 0, 0, 0.4) !important;
- }
- /* + Add to request — hairline white-border on transparent (no gold) */
- .add-to-request-btn {
- background: transparent !important;
- color: #f5f1e8 !important;
- border: 1px solid rgba(245, 241, 232, 0.6) !important;
- border-radius: 0 !important;
- padding: 12px 22px !important;
- font-size: 11px !important;
- letter-spacing: 0.32em !important;
- text-transform: uppercase !important;
- font-weight: 400 !important;
- }
- .add-to-request-btn:hover {
- background: #f5f1e8 !important;
- color: #0a0a0a !important;
- border-color: #f5f1e8 !important;
- }
- /* Hex caption visible */
- .preview-hex, #colorPreviewHex {
- display: block !important;
- color: rgba(245, 241, 232, 0.55) !important;
- font-family: ui-monospace, "SF Mono", Menlo, monospace !important;
- font-size: 11px !important;
- margin-top: 4px !important;
- letter-spacing: 0.04em !important;
- text-transform: lowercase !important;
- }
- /* Color preview name — stays single, prominent */
- #colorPreviewName {
- color: #f5f1e8 !important;
- font-size: 11px !important;
- letter-spacing: 0.32em !important;
- text-transform: uppercase !important;
- font-weight: 500 !important;
- display: block !important;
- margin-top: 12px !important;
- }
-
- /* ─── Mobile hamburger nav (replaces the overflow at <760px) ─── */
- @media (max-width: 760px) {
- header .nav-container { flex-wrap: wrap; }
- header nav { display: none; flex-basis: 100%; flex-direction: column; gap: 6px; padding: 16px 0 6px; }
- header nav.open { display: flex; }
- header nav a { padding: 10px 0; border-bottom: 1px solid rgba(245,241,232,0.1); }
- header .mobile-toggle {
- display: flex !important;
- flex-direction: column;
- gap: 5px;
- background: transparent;
- border: 0;
- cursor: pointer;
- padding: 8px;
- }
- header .mobile-toggle span {
- width: 22px; height: 1.5px;
- background: #f5f1e8;
- display: block;
- }
- }
- @media (min-width: 761px) {
- header .mobile-toggle { display: none !important; }
- }
-
- </style>
-<style id="ns-gold-kill">
- /* novasuede: kill gold-solid fills, off-white instead. Edge color stays gold. */
- .new-badge, .new-arrivals-pill,
- .color-filter-btn.active, .drapery-btn,
- .sample-btn-chip, .cb-cta {
- background: #f5f1e8 !important;
- color: #0a0a0a !important;
- border-color: #f5f1e8 !important;
- }
- .new-badge:hover, .new-arrivals-pill:hover,
- .color-filter-btn.active:hover, .drapery-btn:hover,
- .sample-btn-chip:hover, .cb-cta:hover {
- background: #fff !important;
- color: #0a0a0a !important;
- }
- </style>
-<header class="ns-header">
- <a href="/" class="ns-brand" aria-label="Home">
- <span class="ns-dot"></span>
- <span class="ns-name">Studio Toten</span>
- </a>
- <nav class="ns-nav" id="nsPrimaryNav" aria-label="Primary">
- <a href="/">Home</a>
- <a href="/about">About</a>
- <button type="button" onclick="nsContactOpen()">Contact</button>
- </nav>
- <button type="button" class="mobile-toggle" aria-label="Toggle menu" aria-controls="nsPrimaryNav" aria-expanded="false" onclick="nsToggleNav(this)">
- <span></span><span></span><span></span>
- </button>
- </header>
-
-<div class="ns-modal" id="nsContactModal" role="dialog" aria-modal="true" aria-labelledby="nsContactTitle" onclick="if(event.target===this)nsContactClose()">
- <div class="ns-modal-card">
- <button type="button" class="close-x" onclick="nsContactClose()" aria-label="Close">×</button>
- <h3 id="nsContactTitle">How can we help?</h3>
- <p class="sub">Trade-account replies within one business day.</p>
- <div class="ns-actions">
- <a class="ns-action" href="#contact" onclick="nsContactClose()"><span class="ico">📋</span><div class="txt"><b>Get a Quote</b><span>Project specs → priced estimate</span></div></a>
- <a class="ns-action" href="#contact" onclick="nsContactClose();openModal();"><span class="ico">📦</span><div class="txt"><b>Order a Sample</b><span>Free swatch to your shop</span></div></a>
- <a class="ns-action" href="mailto:info@architecturalwallcoverings.com?subject=Studio%20Toten%20inquiry"><span class="ico">✉️</span><div class="txt"><b>Email Us</b><span>info@architecturalwallcoverings.com</span></div></a>
- <a class="ns-action" href="tel:888-373-4564"><span class="ico">📞</span><div class="txt"><b>Call Us</b><span>(888) 373-4564 · M–F, 9–5 PT</span></div></a>
- </div>
- </div>
- </div>
-<script>
- function nsContactOpen() { var m = document.getElementById('nsContactModal'); if (m) m.classList.add('show'); }
- function nsContactClose() { var m = document.getElementById('nsContactModal'); if (m) m.classList.remove('show'); }
- function nsToggleNav(btn) {
- var nav = document.getElementById('nsPrimaryNav');
- if (!nav) return;
- var open = nav.classList.toggle('open');
- btn.setAttribute('aria-expanded', open ? 'true' : 'false');
- }
- document.addEventListener('keydown', function(e){ if (e.key === 'Escape') nsContactClose(); });
-</script>
-
-
-
-
-
-
-
-
-
-
-
-<header>
- <button class="h-link" onclick="dwmOpen('Contact')" aria-label="Contact"><svg class="h-icon" viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/></svg><span>Contact</span></button>
- <button class="theme-toggle" id="theme-toggle" aria-label="Theme toggle">☾</button>
-</header>
-
-<section class="cinema">
- <div class="cinema-bg" id="heroBg"></div>
- <div class="corner-mark">Specifier-Grade</div>
- <div class="center-mark">Architectural Wallcoverings</div>
- <div class="meta-line">Architectural · Specifier · Class A · Contract<span class="num" id="heroNum"></span></div>
- <a class="enter" href="#shop">Enter <svg viewBox="0 0 24 12" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M0 6h22M16 1l6 5-6 5"/></svg></a>
-</section>
-
-
-<section class="section" id="ideas">
- <div class="rail-block">
- <div class="rail-eyebrow">Ideas</div>
- <h2 class="rail-title">New this week</h2>
- <div class="rail" id="railNewest"></div>
- </div>
- <div class="rail-block">
- <div class="rail-eyebrow">Ideas</div>
- <h2 class="rail-title">Curated picks</h2>
- <div class="rail" id="railCurated"></div>
- </div>
-</section>
-
-<section class="section" id="shop">
- <div class="section-header">
- <div>
- <div class="section-eyebrow">The Collection</div>
- <h2 class="section-title"><span class="accent" id="totalCount">—</span> Patterns.</h2>
- </div>
- <div class="section-meta">Architectural · Specifier · Class A · Contract</div>
- </div>
-
- <div class="filters" id="facets">
- <button class="chip active" data-facet="all">All</button>
- </div>
-
- <div class="density">
- <label>Sort</label>
- <select id="sortSelect" aria-label="Sort products" style="background:transparent;color:inherit;border:1px solid var(--line,rgba(255,255,255,.2));font:inherit;font-size:11px;letter-spacing:.10em;text-transform:uppercase;padding:4px 8px;cursor:pointer;outline:none;margin-right:14px">
- <option value="newest">Newest</option>
- <option value="color">Color</option>
- <option value="style">Style</option>
- <option value="sku">SKU A→Z</option>
- <option value="title">Title A→Z</option>
- <option value="price-asc">Price ↑</option>
- <option value="price-desc">Price ↓</option>
- </select>
- <label>Grid</label>
- <input type="range" id="densitySlider" min="4" max="12" step="1" value="6" aria-label="Grid columns">
- <span class="ct" id="densityLabel">6 cols</span>
- <div class="search">
- <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-5.5-5.5"/></svg>
- <input type="text" id="searchInput" placeholder="Search by pattern, color…" autocomplete="off">
- </div>
- </div>
-
- <div class="stat-line" id="statLine">Loading…</div>
- <div class="grid" id="grid"></div>
- <div class="loading" id="loading">Loading more…</div>
- <div class="sentinel" id="sentinel"></div>
-</section>
-
-<footer>
- <div class="footer-grid">
- <div>
- <div class="footer-brand">Studio Toten</div>
- <p class="footer-text">Studio Toten — real samples ship free.</p>
- <p class="footer-text" style="margin-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;color:var(--paper);opacity:0.7"><a href="/about" style="color:inherit;text-decoration:none;border-bottom:1px solid var(--accent)">About →</a></p>
- </div>
- <div class="footer-col">
- <h4>Aesthetic</h4>
- <div id="footerFacets"></div>
- </div>
- <div class="footer-col">
- <h4>Trade</h4>
- <button onclick="dwmOpen('Inquiry')">Project Inquiry</button>
- <button onclick="dwmOpen('Sample')">Request Sample</button>
- <button onclick="dwmOpen('Contact')">Contact</button>
- </div>
-
- <div class="footer-col">
- <h4>Social</h4>
- <a class="fb-link" href="https://www.facebook.com/SteveAbramsDesigns.DesignerWallcoverings" target="_blank" rel="noopener">Facebook</a>
- </div>
- </div>
- <div class="footer-bottom">
- <span>architecturalwallcoverings.com · Studio Toten</span>
- <span><a href="mailto:info@architecturalwallcoverings.com" style="color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px">info@architecturalwallcoverings.com</a></span>
- <span id="footerStat"></span>
- </div>
-</footer>
-
-<script>
-// mini-constellation — 43 niche-stars, current site highlighted in gold
-(function(){
- const SLUG = "architecturalwallcoverings";
- const NICHES = [
- ['silkwallpaper','Silk','mat'],['silkwallcoverings','Silk W/C','mat'],['linenwallpaper','Linen','mat'],
- ['jutewallpaper','Jute','mat'],['raffiawallcoverings','Raffia W/C','mat'],['raffiawalls','Raffia Walls','mat'],
- ['corkwallcovering','Cork','mat'],['fabricwallpaper','Fabric','mat'],['textilewallpaper','Textile','mat'],
- ['metallicwallpaper','Metallic','mat'],['silverleafwallpaper','Silver Leaf','mat'],['vinylwallpaper','Vinyl','mat'],
- ['micawallpaper','Mica','mat'],['madagascarwallpaper','Madagascar','mat'],['mylarwallpaper','Mylar','mat'],
- ['suedewallpaper','Suede','mat'],
- ['1800swallpaper','1800s','dec'],['1890swallpaper','1890s','dec'],['1900swallpaper','1900s','dec'],
- ['1920swallpaper','1920s','dec'],['1930swallpaper','1930s','dec'],['1940swallpaper','1940s','dec'],
- ['1950swallpaper','1950s','dec'],['1960swallpaper','1960s','dec'],['1970swallpaper','1970s','dec'],
- ['1980swallpaper','1980s','dec'],['retrowalls','Retro','dec'],['wallpapersback','W. Back','dec'],
- ['agedwallpaper','Aged','cra'],['handcraftedwallpaper','Handcrafted','cra'],['museumwallpaper','Museum','cra'],
- ['restorationwallpaper','Restoration','cra'],['pastelwallpaper','Pastel','cra'],['glitterwalls','Glitter','cra'],
- ['greenwallcoverings','Green','cra'],['naturalwallcoverings','Natural','cra'],['saloonwallpaper','Saloon','cra'],
- ['contractwallpaper','Contract','use'],['hotelwallcoverings','Hotel','use'],['hospitalitywallpaper','Hospitality','use'],
- ['healthcarewallpaper','Healthcare','use'],['restaurantwallpaper','Restaurant','use'],['architecturalwallcoverings','Architectural','use']
- ];
- const COLOR = { mat:'#c9b687', dec:'#b86a4a', cra:'#6b8e6f', use:'#4a6b8e' };
- const W = 1080, H = 200, BANDS = ['mat','dec','cra','use'];
- const groups = { mat:[], dec:[], cra:[], use:[] };
- for (const n of NICHES) groups[n[2]].push(n);
- const svg = document.getElementById('miniConst');
- if (!svg) return;
- const bandW = W / BANDS.length;
- let nodes = '';
- BANDS.forEach((band, bi) => {
- const list = groups[band];
- const cx = bi * bandW + bandW / 2;
- list.forEach((n, i) => {
- const t = list.length === 1 ? 0.5 : i / (list.length - 1);
- // deterministic jitter per slug
- let h = 0; for (let k = 0; k < n[0].length; k++) h = (h * 31 + n[0].charCodeAt(k)) | 0;
- const jx = ((h & 0xff) / 255 - 0.5) * (bandW * 0.5);
- const jy = (((h >> 8) & 0xff) / 255 - 0.5) * 6; // tightened from 14 → 6 to prevent same-band collisions (16 mat nodes / 144px = 9px spacing)
- const x = cx + jx, y = 28 + t * (H - 56) + jy;
- const isCurrent = n[0] === SLUG;
- const r = isCurrent ? 8 : 4;
- const op = isCurrent ? 1 : 0.55;
- nodes += `<g class="mc-node" data-slug="${n[0]}" data-label="${n[1]}" style="cursor:pointer">
- <circle cx="${x}" cy="${y}" r="${r}" fill="url(#dna-${band})" fill-opacity="${op}" stroke="${COLOR[band]}" stroke-opacity="${isCurrent?1:0.7}" stroke-width="${isCurrent?2:1}">
- <title>${n[1]} — ${n[0]}.com</title>
- </circle>
- ${isCurrent ? `<circle cx="${x}" cy="${y}" r="${r+5}" fill="none" stroke="${COLOR[band]}" stroke-opacity="0.4" stroke-width="1"><animate attributeName="r" values="${r+5};${r+12};${r+5}" dur="2.4s" repeatCount="indefinite"/><animate attributeName="stroke-opacity" values="0.4;0;0.4" dur="2.4s" repeatCount="indefinite"/></circle>` : ''}
- </g>`;
- });
- });
- // append nodes after defs
- svg.insertAdjacentHTML('beforeend', nodes);
- svg.querySelectorAll('.mc-node').forEach(n => {
- n.addEventListener('mouseenter', () => n.querySelector('circle').setAttribute('fill-opacity', '1'));
- n.addEventListener('mouseleave', e => {
- const isCurrent = n.dataset.slug === SLUG;
- n.querySelector('circle').setAttribute('fill-opacity', isCurrent ? '1' : '0.55');
- });
- n.addEventListener('click', () => window.open('https://' + n.dataset.slug + '.com', '_blank'));
- });
-})();
-</script>
-
-<script>
-const state = { q:'', facet:'all', page:1, pages:1, total:0, loading:false, exhausted:false };
-const LABELS = {"all":"All"};
-
-function escAttr(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[c])); }
-// Image-URL allowlist: only DW Shopify CDN + designerwallcoverings.com (defends against XSS via crafted products.json)
-function safeImg(u) { return /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(u || '') ? u : '/hero-bg.jpg'; }
-function cardHTML(p) {
- const eager = state.page === 1;
- return '<img loading="' + (eager ? 'eager' : 'lazy') + '"' + (eager ? ' fetchpriority="high"' : '') + ' src="' + escAttr(safeImg(p.image_url)) + '" alt="' + escAttr(p.title) + '">'
- + '<div class="overlay">'
- + '<div class="pat">' + escAttr(p.pattern_name || p.title) + '</div>'
- + '<div class="ven">' + escAttr((p.vendor || '').replace(/-/g, ' ')) + '</div>'
- + '<div class="actions">'
- + '<button class="sample-btn" onclick="event.stopPropagation();dwmOpen(\'Sample\',' + JSON.stringify({sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}).replace(/"/g,'"') + ')">Sample</button>'
- + '</div></div>';
-}
-
-async function loadFacets() {
- let f;
- try {
- const r = await fetch('/api/facets');
- if (!r.ok) throw new Error('HTTP ' + r.status);
- f = await r.json();
- } catch (e) { console.error('loadFacets failed:', e); return; }
- const el = document.getElementById('facets');
- for (const [k, v] of Object.entries(f.aesthetics).sort((a,b) => b[1] - a[1])) {
- const b = document.createElement('button');
- b.className = 'chip'; b.dataset.facet = k;
- b.innerHTML = (LABELS[k] || k) + ' <span style="opacity:.55;font-weight:500;margin-left:4px">' + v + '</span>';
- el.appendChild(b);
- }
- el.addEventListener('click', e => {
- if (e.target.tagName !== 'BUTTON') return;
- document.querySelectorAll('#facets button').forEach(b => b.classList.remove('active'));
- e.target.classList.add('active');
- state.facet = e.target.dataset.facet;
- resetGrid();
- });
- document.getElementById('totalCount').textContent = f.total;
- document.getElementById('footerStat').textContent = f.total + ' patterns · live archive';
- // Footer aesthetic links
- const footerEl = document.getElementById('footerFacets');
- for (const [k] of Object.entries(f.aesthetics)) {
- const b = document.createElement('button');
- b.textContent = LABELS[k] || k;
- b.onclick = () => { state.facet = k; resetGrid(); document.querySelectorAll('#facets button').forEach(x => x.classList.toggle('active', x.dataset.facet === k)); document.getElementById('shop').scrollIntoView({behavior:'smooth'}); };
- footerEl.appendChild(b);
- }
-}
-
-function resetGrid() {
- state.page = 1; state.exhausted = false;
- document.getElementById('grid').innerHTML = '';
- document.getElementById('loading').textContent = 'Loading…';
- loadGridPage();
-}
-
-async function loadGridPage() {
- if (state.loading || state.exhausted) return;
- state.loading = true;
- const params = new URLSearchParams({ page:state.page, limit:24 });
- if (state.q) params.set('q', state.q);
- if (state.facet !== 'all') params.set('aesthetic', state.facet);
- let data;
- try {
- const r = await fetch('/api/products?' + params);
- if (!r.ok) throw new Error('HTTP ' + r.status);
- data = await r.json();
- } catch (e) {
- console.error('loadGridPage failed:', e);
- document.getElementById('loading').textContent = '— offline — refresh to retry —';
- state.loading = false;
- return;
- }
- state.total = data.total; state.pages = data.pages;
-
- if (state.page === 1) {
- document.getElementById('statLine').textContent = data.total + ' patterns · ' + (state.facet === 'all' ? 'all aesthetics' : (LABELS[state.facet] || state.facet)) + (state.q ? ' · matching "' + state.q + '"' : '');
- }
- const grid = document.getElementById('grid');
- for (const p of data.items) {
- const a = document.createElement('a');
- a.className = 'card'; a.href = '#'; a.onclick = (e) => { e.preventDefault(); dwmOpen('Sample',{sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}); };
- a.innerHTML = cardHTML(p);
- grid.appendChild(a);
- }
- if (state.page >= state.pages || data.items.length === 0) {
- state.exhausted = true;
- document.getElementById('loading').textContent = state.total > 0 ? '— end of archive · ' + state.total + ' patterns —' : '';
- } else state.page++;
- state.loading = false;
-}
-
-const io = new IntersectionObserver(es => { for (const e of es) if (e.isIntersecting) loadGridPage(); }, { rootMargin:'600px 0px' });
-io.observe(document.getElementById('sentinel'));
-
-document.getElementById('searchInput').addEventListener('input', e => {
- state.q = e.target.value.trim();
- clearTimeout(window._t);
- window._t = setTimeout(resetGrid, 220);
-});
-
-// Density slider
-const slider = document.getElementById('densitySlider');
-const dlabel = document.getElementById('densityLabel');
-function setDensity(n) {
- document.documentElement.style.setProperty('--cols', n);
- dlabel.textContent = n + ' cols';
- try { localStorage.setItem('arch_theme_density', n); } catch(e){}
-}
-slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
-const savedDensity = parseInt(localStorage.getItem('arch_theme_density') || '6');
-if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
-
-// Theme toggle
-const tb = document.getElementById('theme-toggle');
-function setTheme(t){ document.documentElement.dataset.theme = t; try { localStorage.setItem('arch_theme', t); } catch(e){} tb.textContent = t === 'dark' ? '☾' : '☀'; }
-setTheme(document.documentElement.dataset.theme || 'light');
-tb.addEventListener('click', () => setTheme(document.documentElement.dataset.theme === 'dark' ? 'light' : 'dark'));
-
-loadFacets();
-loadGridPage();
-</script>
-<!-- ============================================================
- DW UNIVERSAL CONTACT MODULE — fashion-house UX
- Inject before </body> in every DW-family sister site.
- Self-contained: CSS + 4 modals + JS submission handlers.
- Uses host site's CSS vars (--bg, --fg, --gold, --rule).
- ============================================================ -->
-<style>
- /* === MODAL BASE === */
- .dwm{position:fixed;inset:0;background:rgba(0,0,0,0.78);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;overflow-y:auto}
- .dwm.open{display:flex}
- .dwm-box{background:var(--bg);border:1px solid var(--rule);max-width:520px;width:100%;padding:36px 32px;position:relative;max-height:90vh;overflow-y:auto;animation:dwm-in 0.25s ease}
- @keyframes dwm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
- .dwm-box h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;font-size:32px;line-height:1.05;margin-bottom:6px;color:var(--fg);letter-spacing:-0.01em}
- .dwm-box .sub{color:var(--muted);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
- .dwm-close{position:absolute;top:18px;right:18px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;width:32px;height:32px;line-height:1;padding:0}
- .dwm-close:hover{color:var(--gold)}
- .dwm-preview{display:flex;gap:14px;align-items:center;padding:12px;background:var(--bg-soft);margin-bottom:18px}
- .dwm-preview img{width:64px;height:64px;object-fit:cover}
- .dwm-preview .pn{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;line-height:1.2;color:var(--fg)}
- .dwm-preview .pc{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
- .dwm-field{margin-bottom:14px}
- .dwm-field label{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
- .dwm-field input,.dwm-field textarea,.dwm-field select{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:8px 4px;font-size:14px;font-family:inherit;color:var(--fg);outline:none;transition:border-color 0.2s}
- .dwm-field input:focus,.dwm-field textarea:focus{border-bottom-color:var(--gold)}
- .dwm-field textarea{min-height:60px;resize:vertical}
- .dwm-submit{background:transparent;color:var(--muted, #c9b89e);border:1px solid var(--muted, #c9b89e);padding:14px 28px;font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:700;cursor:pointer;width:100%;margin-top:8px;transition:background 0.15s, color 0.15s}
- .dwm-submit:hover{background:var(--muted, #c9b89e);color:var(--bg, #000)}
-
- .dwm-submit:disabled{opacity:0.5;cursor:default}
- .dwm-status{margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;display:none}
- .dwm-status.ok{color:var(--sage);display:block}
- .dwm-status.err{color:#e08070;display:block}
- /* contact-options */
- .dwm-options{display:flex;flex-direction:column;gap:10px}
- .dwm-option{display:flex;align-items:center;gap:14px;padding:18px 20px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;transition:all 0.2s;text-align:left;width:100%}
- .dwm-option:hover{border-color:var(--gold);color:var(--gold)}
- .dwm-option svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}
- .dwm-option .lbl{flex:1;display:block}
- .dwm-option .val{display:block;font-size:10px;letter-spacing:0.14em;text-transform:none;font-weight:500;opacity:0.65;margin-top:4px}
-
-/* graphics-loop pass 5: serif hero typography + nav legibility */
-.cinema h1, h1.headline { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; letter-spacing: -0.01em }
-.h-link { font-size: 13px; letter-spacing: 0.06em }
-
-/* graphics-loop pass 11: Ideas rails */
-#ideas { padding: 56px 24px 24px; max-width:1600px; margin:0 auto }
-#ideas .rail-block { margin-bottom:48px }
-#ideas .rail-eyebrow { font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:var(--muted, #888); margin-bottom:8px }
-#ideas .rail-title { font-size:clamp(22px,2.6vw,32px); font-weight:500; letter-spacing:-0.01em; margin:0 0 18px; color:var(--ink,#fff) }
-#ideas .rail { display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:8px; scrollbar-width:none }
-#ideas .rail::-webkit-scrollbar { display:none }
-#ideas .rail-card { flex:0 0 240px; scroll-snap-align:start; cursor:pointer; transition:transform 0.2s }
-#ideas .rail-card:hover { transform:translateY(-3px) }
-#ideas .rail-card img { width:100%; aspect-ratio:1; object-fit:cover; display:block; background:var(--card,#222) }
-#ideas .rail-card .rc-title { font-size:13px; font-weight:500; color:var(--paper,#fff); padding:8px 0 2px; line-height:1.3 }
-#ideas .rail-card .rc-meta { font-size:11px; color:var(--muted,#888); letter-spacing:0.06em }
-@media (max-width:720px) { #ideas .rail-card { flex:0 0 160px } }
-</style>
-
-<!-- Contact options modal -->
-<div class="dwm" id="dwmContact" onclick="if(event.target===this)dwmClose('Contact')">
- <div class="dwm-box" style="max-width:440px">
- <button class="dwm-close" onclick="dwmClose('Contact')" aria-label="Close">×</button>
- <h3>Contact</h3>
- <p class="sub" id="dwmContactSub">Three ways to reach us</p>
- <div class="dwm-options">
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Inquiry')">
- <svg viewBox="0 0 24 24"><path d="M4 4h16v12H7l-3 3z"/></svg>
- <span class="lbl">Send an Inquiry<span class="val">Project name · scope · all the details</span></span>
- </button>
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Sample')">
- <svg viewBox="0 0 24 24"><rect x="4" y="6" width="16" height="14"/><path d="M4 10h16M9 6V3h6v3"/></svg>
- <span class="lbl">Request a Sample<span class="val">Memo sample · ships free · 3–5 business days</span></span>
- </button>
- <a class="dwm-option" id="dwmContactEmailLink" href="mailto:info@architecturalwallcoverings.com">
- <svg viewBox="0 0 24 24"><path d="M3 6h18v12H3z"/><path d="M3 6l9 7 9-7"/></svg>
- <span class="lbl">Email Us<span class="val" id="dwmContactEmailLabel">info@architecturalwallcoverings.com</span></span>
- </a>
- </div>
- </div>
-</div>
-
-<!-- Inquiry modal -->
-<div class="dwm" id="dwmInquiry" onclick="if(event.target===this)dwmClose('Inquiry')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Inquiry')" aria-label="Close">×</button>
- <h3>Project Inquiry</h3>
- <p class="sub">We'll respond within one business day</p>
- <form id="dwmInquiryForm" onsubmit="return dwmSubmit(event,'inquiry')">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Phone</label><input type="tel" name="phone"></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Project Name</label><input type="text" name="projectName" required></div>
- <div class="dwm-field"><label>Project Scope</label><textarea name="projectScope" placeholder="Square footage · room count · timeline" required></textarea></div>
- <div class="dwm-field"><label>Additional Information</label><textarea name="message" placeholder="Patterns of interest, finish preferences, budget"></textarea></div>
- <button type="submit" class="dwm-submit">Send Inquiry</button>
- <div class="dwm-status" id="dwmInquiryStatus"></div>
- </form>
- </div>
-</div>
-
-<!-- Sample-request modal -->
-<div class="dwm" id="dwmSample" onclick="if(event.target===this)dwmClose('Sample')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Sample')" aria-label="Close">×</button>
- <h3>Request a Sample</h3>
- <p class="sub">Memo sample · ships free · 3–5 business days</p>
- <div class="dwm-preview" id="dwmSamplePreview" style="display:none">
- <img id="dwmSampleImg" src="" alt="">
- <div><div class="pn" id="dwmSampleName"></div><div class="pc" id="dwmSampleSku"></div></div>
- </div>
- <form id="dwmSampleForm" onsubmit="return dwmSubmit(event,'sample')">
- <input type="hidden" name="sku" id="dwmSampleSkuInput">
- <input type="hidden" name="title" id="dwmSampleTitleInput">
- <input type="hidden" name="image_url" id="dwmSampleImageInput">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Shipping Address</label><input type="text" name="address" placeholder="Street" required></div>
- <div class="dwm-field" style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px">
- <input type="text" name="city" placeholder="City" required>
- <input type="text" name="state" placeholder="State" required>
- <input type="text" name="zip" placeholder="ZIP" required>
- </div>
- <div class="dwm-field"><label>Notes (optional)</label><textarea name="message" placeholder="Project, sq.ft., timing"></textarea></div>
- <button type="submit" class="dwm-submit">Send Sample Request</button>
- <div class="dwm-status" id="dwmSampleStatus"></div>
- </form>
- </div>
-</div>
-
-<script>
- // Universal modal control
- function dwmOpen(name, opts){
- document.getElementById('dwm' + name).classList.add('open');
- document.body.style.overflow = 'hidden';
- try { if (typeof gtag === 'function') gtag('event', 'modal_open', { modal_name: name, sku: (opts && opts.sku) || '' }); } catch(_){}
- if (name === 'Sample' && opts) {
- document.getElementById('dwmSamplePreview').style.display = 'flex';
- document.getElementById('dwmSampleImg').src = opts.image_url || '';
- document.getElementById('dwmSampleName').textContent = opts.title || '';
- document.getElementById('dwmSampleSku').textContent = opts.sku || '';
- document.getElementById('dwmSampleSkuInput').value = opts.sku || '';
- document.getElementById('dwmSampleTitleInput').value = opts.title || '';
- document.getElementById('dwmSampleImageInput').value = opts.image_url || '';
- } else if (name === 'Sample') {
- document.getElementById('dwmSamplePreview').style.display = 'none';
- document.getElementById('dwmSampleSkuInput').value = '';
- document.getElementById('dwmSampleTitleInput').value = '';
- document.getElementById('dwmSampleImageInput').value = '';
- }
- }
- function dwmClose(name){ document.getElementById('dwm'+name).classList.remove('open'); document.body.style.overflow=''; }
-
- // Universal form submit — POSTs to /api/send-{kind}
- async function dwmSubmit(e, kind) {
- e.preventDefault();
- const form = e.target;
- const data = Object.fromEntries(new FormData(form).entries());
- const btn = form.querySelector('.dwm-submit');
- const status = form.querySelector('.dwm-status');
- btn.disabled = true; const orig = btn.textContent; btn.textContent = 'Sending…';
- status.className = 'dwm-status';
- try {
- const r = await fetch('/api/send-' + kind, { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
- if (!r.ok) throw new Error('HTTP '+r.status);
- const j = await r.json();
- try {
- if (typeof gtag === 'function') {
- if (kind === 'sample') gtag('event', 'memo_request', { sku: data.sku || '', title: data.title || '' });
- else gtag('event', 'lead', { form_type: kind });
- }
- } catch(_){}
- status.textContent = kind === 'sample' ? 'Sample request sent — ships within 3–5 business days' : 'Inquiry sent — we respond within 1 business day';
- status.className = 'dwm-status ok';
- btn.textContent = 'Sent ✓';
- setTimeout(() => { dwmClose(kind === 'sample' ? 'Sample' : 'Inquiry'); btn.disabled = false; btn.textContent = orig; status.className = 'dwm-status'; form.reset(); }, 2800);
- } catch (err) {
- status.textContent = 'Send failed — please email info@designerwallcoverings.com';
- status.className = 'dwm-status err';
- btn.disabled = false; btn.textContent = orig;
- }
- return false;
- }
-
- // Wire up "Memo samples ship free" badge in hero to open sample modal directly
- document.querySelectorAll('.hero .badge, [data-open-sample]').forEach(el => {
- el.style.cursor = 'pointer';
- el.addEventListener('click', () => dwmOpen('Sample'));
- });
-
- // Wire nav "Trade" link to inquiry modal
- document.querySelectorAll('nav a[href*="designerwallcoverings.com"]').forEach(a => {
- a.removeAttribute('target');
- a.removeAttribute('href');
- a.style.cursor = 'pointer';
- a.addEventListener('click', e => { e.preventDefault(); dwmOpen('Contact'); });
- });
-
- // Override product card clicks — open Sample modal pre-filled instead of redirecting to DW
- document.addEventListener('click', e => {
- const card = e.target.closest('.card, .rail-card');
- if (!card) return;
- if (card.tagName === 'A' && (card.getAttribute('href') || '').startsWith('/sample/')) {
- e.preventDefault();
- const img = card.querySelector('img');
- const pat = card.querySelector('.pat');
- const sku = card.getAttribute('href').replace('/sample/', '');
- dwmOpen('Sample', {
- sku,
- title: pat ? pat.textContent.trim() : '',
- image_url: img ? img.src : ''
- });
- }
- }, true);
-// DW STANDARD: hero pulls from products.json[0].image_url so dw-collections-viewer
-// drag-drop / hero-pin updates the live front page on next deploy.
-// Always upgrades to the largest Shopify variant (strips _NxN size suffix) so
-// the full-page hero stays sharp.
-// DW STANDARD: hero rotates through top-20 NEWEST products on each visit
-// (novasuede.com pattern). Fetches /api/products?limit=100, sorts by created_at desc,
-// takes the freshest 20, picks one per visit via localStorage counter.
-// Falls back to static /hero-bg.jpg on any error.
-(async function rotateHero() {
- try {
- const r = await fetch('/api/products?limit=100');
- if (!r.ok) return;
- const d = await r.json();
- const items = (d.items || [])
- .filter(p => p && p.image_url && /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(p.image_url))
- .sort((a,b) => String(b.created_at || '').localeCompare(String(a.created_at || '')))
- .slice(0, 20);
- if (!items.length) return;
- let visits = 0;
- try {
- visits = parseInt(localStorage.getItem('hero_visits') || '0', 10) || 0;
- localStorage.setItem('hero_visits', String(visits + 1));
- } catch(e) {}
- const pick = items[visits % items.length];
- // Strip _NxN size suffix to get the largest CDN variant
- const url = pick.image_url.replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- const bg = document.getElementById('heroBg') || document.getElementById('cinemaBg');
- if (bg) bg.style.backgroundImage = "url('" + url + "')";
- } catch (e) {}
-})();
-
-
-// DW STANDARD sort-select wire-up (added by fleet patcher)
-(function(){
- const sortSel = document.getElementById('sortSelect');
- if (!sortSel) return;
- const KEY = location.hostname.replace(/\./g, '_') + '_sort';
- const saved = localStorage.getItem(KEY);
- if (saved) { try { sortSel.value = saved; } catch(e){} }
- if (typeof state !== 'undefined') state.sort = sortSel.value;
- sortSel.addEventListener('change', e => {
- const v = e.target.value;
- try { localStorage.setItem(KEY, v); } catch(e){}
- if (typeof state !== 'undefined') state.sort = v;
- if (typeof resetGrid === 'function') resetGrid();
- else location.reload();
- });
-})();
-
-// graphics-loop pass 11: hydrate Ideas rails from /api/products
-(async function hydrateIdeas() {
- try {
- const r = await fetch('/api/products?limit=80');
- if (!r.ok) return;
- const d = await r.json();
- const items = (d.items || []).filter(p => p && p.image_url);
- if (!items.length) return;
- const sorted = [...items].sort((a,b) => String(b.created_at || '').localeCompare(String(a.created_at || '')));
- const newest = sorted.slice(0, 12);
- // Curated = deterministic offset slice (every 5th item starting at idx 3) for variety
- const curated = items.filter((_, i) => i % 5 === 3).slice(0, 12);
- function card(p) {
- const url = (p.image_url || '').replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- return '<a class="rail-card" href="/sample/' + encodeURIComponent(p.handle || p.sku) + '">' +
- '<img src="' + url + '" alt="' + (p.title || '').replace(/"/g, '"') + '" loading="lazy">' +
- '<div class="rc-title">' + ((p.title || '').split('|')[0] || '').trim() + '</div>' +
- '<div class="rc-meta">' + (p.vendor || '') + '</div>' +
- '</a>';
- }
- const r1 = document.getElementById('railNewest');
- const r2 = document.getElementById('railCurated');
- if (r1) r1.innerHTML = newest.map(card).join('');
- if (r2) r2.innerHTML = curated.map(card).join('');
- } catch(e) {}
-})();
-</script>
-
-</body>
-</html>
diff --git a/public/index.html.bak.nspropagate.1778201378058 b/public/index.html.bak.nspropagate.1778201378058
deleted file mode 100644
index 72af0ff..0000000
--- a/public/index.html.bak.nspropagate.1778201378058
+++ /dev/null
@@ -1,731 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
-<meta charset="utf-8">
-<!-- Google tag (gtag.js) -->
-<script async src="https://www.googletagmanager.com/gtag/js?id=G-PN839G9FD8"></script>
-<script>
- window.dataLayer = window.dataLayer || [];
- function gtag(){dataLayer.push(arguments);}
- gtag('js', new Date());
- gtag('config', 'G-PN839G9FD8');
-</script>
-
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>Studio Toten — architectural. Useful.</title>
-<meta name="description" content="Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.">
-<meta name="theme-color" content="#F5F2ED">
-<link rel="canonical" href="https://architecturalwallcoverings.com/">
-<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&display=swap" rel="stylesheet">
-<link rel="preload" as="image" href="/hero-bg.jpg" fetchpriority="high">
-<script type="application/ld+json">
-{
- "@context": "https://schema.org",
- "@type": "Organization",
- "name": "Studio Toten",
- "url": "https://architecturalwallcoverings.com/",
- "email": "info@architecturalwallcoverings.com"
-}
-</script>
-<script src="/zd-loader.js" defer></script>
-<style>
-:root {
- --bg: #F5F2ED;
- --paper: #1A1A1A;
- --muted: #8B7866;
- --line: #D5CFC4;
- --accent: #1A1A1A;
- --bg-soft: #D5CFC4;
- --cols: 6;
-}
-html[data-theme="dark"] {
- --bg: #1a1410;
- --paper: #F5F2ED;
- --muted: #C9B89E;
- --line: rgba(255,254,250,0.12);
- --accent: #1A1A1A;
- --bg-soft: #2a1f15;
-}
-* { margin:0; padding:0; box-sizing:border-box }
-html { scroll-behavior:smooth }
-body { font-family:'Inter', sans-serif; color:var(--paper); -webkit-font-smoothing:antialiased; background:var(--bg); min-height:100vh; overflow-x:hidden }
-/* DW-FASHION-TEMPLATE-OVERRIDE */
-.section-title .accent, .footer-brand, .center-mark, h1, h2, h3 { font-family:'Inter', Georgia, serif !important; font-weight:400 !important; }
-
-/* ===== Auto-hide header ===== */
-header { position:fixed; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 32px; z-index:100; background:rgba(0,0,0,0.55); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:transform .3s }
-.h-link { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); text-decoration:none; cursor:pointer; background:transparent; border:0 }
-.h-link:hover { opacity:0.7 }
-.h-icon { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }
-
-/* ===== Cinema hero ===== */
-.cinema { position:relative; height:100vh; width:100%; overflow:hidden }
-.cinema-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-image:url('/hero-bg.jpg') }
-.cinema-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.75) 100%) }
-.corner-mark { position:absolute; top:24px; left:32px; font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,0.55), 0 0 1px rgba(0,0,0,0.4); z-index:5 }
-.corner-mark::before { content:"◆ "; margin-right:6px }
-.center-mark { position:absolute; top:clamp(80px,12vh,140px); left:50%; transform:translateX(-50%); font-size:clamp(28px,4vw,56px); font-weight:500; letter-spacing:0.18em; text-transform:uppercase; text-align:center; color:#fff; text-shadow:0 2px 8px rgba(0,0,0,0.65), 0 0 1px rgba(0,0,0,0.5); z-index:5 }
-.center-mark .tm { font-size:14px; vertical-align:super; opacity:0.7; margin-left:0.2em }
-.center-mark .sub { display:block; font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400; font-size:0.4em; letter-spacing:0.04em; text-transform:none; margin-top:14px; opacity:0.85 }
-.meta-line { position:absolute; bottom:32px; left:32px; font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:700; color:#fff; z-index:5; opacity:0.85 }
-.meta-line .num { font-size:12px; display:block; margin-top:4px; letter-spacing:0.05em }
-.enter { position:absolute; bottom:32px; right:32px; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:0.36em; text-transform:uppercase; font-weight:700; color:#fff; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #fff; transition:gap 0.25s; z-index:5 }
-.enter:hover { gap:22px }
-.enter svg { width:24px; height:12px }
-
-/* ===== Section ===== */
-.section { padding:96px 32px }
-.section-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--line) }
-.section-title { font-size:clamp(36px,5vw,64px); font-weight:300; letter-spacing:-0.02em; line-height:1 }
-.section-title .accent { color: var(--accent); font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400 }
-.section-eyebrow { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:16px }
-.section-meta { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--muted); text-align:right; line-height:1.6 }
-
-/* ===== Filter bar ===== */
-.filters { display:flex; gap:8px; align-items:center; margin-bottom:18px; flex-wrap:wrap }
-.chip { padding:8px 16px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); background:transparent; border:1px solid var(--line); cursor:pointer; transition:all 0.2s; font-family:inherit }
-.chip:hover { border-color:var(--paper) }
-.chip.active { background:var(--paper); color:var(--bg); border-color:var(--paper) }
-.search { flex:0 1 280px; margin-left:auto; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:6px 0 }
-.search input { flex:1; background:transparent; border:0; color:var(--paper); font-family:inherit; font-size:13px; outline:none; letter-spacing:0.04em }
-.search input::placeholder { color:var(--muted) }
-.search svg { width:16px; height:16px; stroke:var(--muted); fill:none; stroke-width:1.5 }
-
-/* ===== Grid-density slider ===== */
-.density { display:flex; align-items:center; gap:14px; padding:6px 0; margin-bottom:24px }
-.density label { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--muted) }
-.density input[type=range] { flex:1; max-width:240px; -webkit-appearance:none; appearance:none; height:1px; background:var(--line); outline:none }
-.density input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50% }
-.density input[type=range]::-moz-range-thumb { width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50%; border:0 }
-.density .ct { font-size:11px; color:var(--muted); letter-spacing:0.18em; text-transform:uppercase; font-weight:600; min-width:80px }
-
-/* ===== Stats line ===== */
-.stat-line { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:24px }
-
-/* ===== Product grid (novasuede pattern: flush grid + slide-up overlay) ===== */
-.grid { display:grid; grid-template-columns:repeat(var(--cols), 1fr); gap:0 }
-.card { position:relative; aspect-ratio:1/1.15; cursor:pointer; overflow:hidden; border:1px solid var(--bg); transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1); background:var(--bg-soft) }
-.card:hover { transform:scale(1.04); z-index:5 }
-.card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease }
-.card .overlay { position:absolute; left:0; right:0; bottom:0; padding:20px 16px 14px; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%); transform:translateY(48%); opacity:0.85; transition:transform 0.3s ease, opacity 0.3s ease }
-.card:hover .overlay { transform:translateY(0); opacity:1 }
-.card .pat { font-size:13px; font-weight:600; letter-spacing:0.02em; color:#fff; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
-.card .ven { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#fff; opacity:0.7; font-weight:500; margin-top:4px }
-.card .actions { margin-top:10px; display:flex; gap:6px }
-.card .sample-btn { flex:1; padding:7px 10px; background:#fff; color:#000; font-family:inherit; font-size:10px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; border:0; cursor:pointer; text-align:center; transition:all 0.2s }
-.card .sample-btn:hover { background:var(--accent); color:#fff }
-
-@media (max-width:1024px) { .grid { grid-template-columns:repeat(min(var(--cols), 4), 1fr) } }
-@media (max-width:720px) { .grid { grid-template-columns:repeat(2, 1fr) } .density { display:none } }
-
-.sentinel { height:1px }
-.loading { text-align:center; color:var(--muted); padding:32px; font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700 }
-
-/* ===== Footer ===== */
-footer { padding:64px 32px 32px; border-top:1px solid var(--line); margin-top:32px }
-.footer-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr; gap:48px; margin-bottom:48px }
-.footer-brand { font-size:24px; font-weight:300; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:12px }
-.footer-text { font-size:13px; line-height:1.6; color:var(--muted); max-width:380px }
-.footer-col h4 { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--paper); margin-bottom:18px }
-.footer-col a { display:block; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:8px; transition:color 0.2s; cursor:pointer; background:transparent; border:0; font-family:inherit; padding:0; text-align:left }
-.footer-col a:hover { color:var(--accent) }
-.footer-bottom { max-width:1400px; margin:0 auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted) }
-
-@media (max-width:720px) {
- .corner-mark, .meta-line, .enter { font-size:10px }
- .center-mark { font-size:24px; letter-spacing:0.12em; top:clamp(60px,9vh,90px) }
- .section, footer { padding-left:20px; padding-right:20px }
- .footer-grid { grid-template-columns:1fr; gap:32px }
- .search { margin-left:0; flex:1 1 100% }
-}
-
-.theme-toggle { background:transparent; border:1px solid var(--line); width:32px; height:32px; cursor:pointer; color:var(--paper); display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; transition:all .15s; padding:0 }
-.theme-toggle:hover { border-color:var(--accent); color:var(--accent) }
-
-/* ===== WCAG 2.4.7 — keyboard focus indicators ===== */
-/* Strictly :focus-visible so mouse clicks do NOT show the ring */
-a:focus-visible,
-button:focus-visible,
-input:focus-visible,
-select:focus-visible,
-textarea:focus-visible,
-[tabindex]:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
-}
-</style>
-<script>
-(function(){ try { var t = localStorage.getItem('arch_theme') || 'light'; document.documentElement.dataset.theme = t; } catch(e){} })();
-</script>
-<link rel="preconnect" href="https://fonts.googleapis.com">
-<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap">
-</head>
-<body>
-
-<header>
- <button class="h-link" onclick="dwmOpen('Contact')" aria-label="Contact"><svg class="h-icon" viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/></svg><span>Contact</span></button>
- <button class="theme-toggle" id="theme-toggle" aria-label="Theme toggle">☾</button>
-</header>
-
-<section class="cinema">
- <div class="cinema-bg" id="heroBg"></div>
- <div class="corner-mark">Specifier-Grade</div>
- <div class="center-mark">Architectural Wallcoverings</div>
- <div class="meta-line">Architectural · Specifier · Class A · Contract<span class="num" id="heroNum"></span></div>
- <a class="enter" href="#shop">Enter <svg viewBox="0 0 24 12" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M0 6h22M16 1l6 5-6 5"/></svg></a>
-</section>
-
-
-<section class="section" id="ideas">
- <div class="rail-block">
- <div class="rail-eyebrow">Ideas</div>
- <h2 class="rail-title">New this week</h2>
- <div class="rail" id="railNewest"></div>
- </div>
- <div class="rail-block">
- <div class="rail-eyebrow">Ideas</div>
- <h2 class="rail-title">Curated picks</h2>
- <div class="rail" id="railCurated"></div>
- </div>
-</section>
-
-<section class="section" id="shop">
- <div class="section-header">
- <div>
- <div class="section-eyebrow">The Collection</div>
- <h2 class="section-title"><span class="accent" id="totalCount">—</span> Patterns.</h2>
- </div>
- <div class="section-meta">Architectural · Specifier · Class A · Contract</div>
- </div>
-
- <div class="filters" id="facets">
- <button class="chip active" data-facet="all">All</button>
- </div>
-
- <div class="density">
- <label>Sort</label>
- <select id="sortSelect" aria-label="Sort products" style="background:transparent;color:inherit;border:1px solid var(--line,rgba(255,255,255,.2));font:inherit;font-size:11px;letter-spacing:.10em;text-transform:uppercase;padding:4px 8px;cursor:pointer;outline:none;margin-right:14px">
- <option value="newest">Newest</option>
- <option value="color">Color</option>
- <option value="style">Style</option>
- <option value="sku">SKU A→Z</option>
- <option value="title">Title A→Z</option>
- <option value="price-asc">Price ↑</option>
- <option value="price-desc">Price ↓</option>
- </select>
- <label>Grid</label>
- <input type="range" id="densitySlider" min="4" max="12" step="1" value="6" aria-label="Grid columns">
- <span class="ct" id="densityLabel">6 cols</span>
- <div class="search">
- <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-5.5-5.5"/></svg>
- <input type="text" id="searchInput" placeholder="Search by pattern, color…" autocomplete="off">
- </div>
- </div>
-
- <div class="stat-line" id="statLine">Loading…</div>
- <div class="grid" id="grid"></div>
- <div class="loading" id="loading">Loading more…</div>
- <div class="sentinel" id="sentinel"></div>
-</section>
-
-<footer>
- <div class="footer-grid">
- <div>
- <div class="footer-brand">ARCHITECTURAL</div>
- <p class="footer-text">Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.</p>
- <p class="footer-text" style="margin-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;color:var(--paper);opacity:0.7"><a href="/about" style="color:inherit;text-decoration:none;border-bottom:1px solid var(--accent)">About →</a></p>
- </div>
- <div class="footer-col">
- <h4>Aesthetic</h4>
- <div id="footerFacets"></div>
- </div>
- <div class="footer-col">
- <h4>Trade</h4>
- <button onclick="dwmOpen('Inquiry')">Project Inquiry</button>
- <button onclick="dwmOpen('Sample')">Request Sample</button>
- <button onclick="dwmOpen('Contact')">Contact</button>
- </div>
- </div>
- <div class="footer-bottom">
- <span>architecturalwallcoverings.com · Studio Toten</span>
- <span><a href="mailto:info@architecturalwallcoverings.com" style="color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px">info@architecturalwallcoverings.com</a></span>
- <span id="footerStat"></span>
- </div>
-</footer>
-
-<script>
-// mini-constellation — 43 niche-stars, current site highlighted in gold
-(function(){
- const SLUG = "architecturalwallcoverings";
- const NICHES = [
- ['silkwallpaper','Silk','mat'],['silkwallcoverings','Silk W/C','mat'],['linenwallpaper','Linen','mat'],
- ['jutewallpaper','Jute','mat'],['raffiawallcoverings','Raffia W/C','mat'],['raffiawalls','Raffia Walls','mat'],
- ['corkwallcovering','Cork','mat'],['fabricwallpaper','Fabric','mat'],['textilewallpaper','Textile','mat'],
- ['metallicwallpaper','Metallic','mat'],['silverleafwallpaper','Silver Leaf','mat'],['vinylwallpaper','Vinyl','mat'],
- ['micawallpaper','Mica','mat'],['madagascarwallpaper','Madagascar','mat'],['mylarwallpaper','Mylar','mat'],
- ['suedewallpaper','Suede','mat'],
- ['1800swallpaper','1800s','dec'],['1890swallpaper','1890s','dec'],['1900swallpaper','1900s','dec'],
- ['1920swallpaper','1920s','dec'],['1930swallpaper','1930s','dec'],['1940swallpaper','1940s','dec'],
- ['1950swallpaper','1950s','dec'],['1960swallpaper','1960s','dec'],['1970swallpaper','1970s','dec'],
- ['1980swallpaper','1980s','dec'],['retrowalls','Retro','dec'],['wallpapersback','W. Back','dec'],
- ['agedwallpaper','Aged','cra'],['handcraftedwallpaper','Handcrafted','cra'],['museumwallpaper','Museum','cra'],
- ['restorationwallpaper','Restoration','cra'],['pastelwallpaper','Pastel','cra'],['glitterwalls','Glitter','cra'],
- ['greenwallcoverings','Green','cra'],['naturalwallcoverings','Natural','cra'],['saloonwallpaper','Saloon','cra'],
- ['contractwallpaper','Contract','use'],['hotelwallcoverings','Hotel','use'],['hospitalitywallpaper','Hospitality','use'],
- ['healthcarewallpaper','Healthcare','use'],['restaurantwallpaper','Restaurant','use'],['architecturalwallcoverings','Architectural','use']
- ];
- const COLOR = { mat:'#c9b687', dec:'#b86a4a', cra:'#6b8e6f', use:'#4a6b8e' };
- const W = 1080, H = 200, BANDS = ['mat','dec','cra','use'];
- const groups = { mat:[], dec:[], cra:[], use:[] };
- for (const n of NICHES) groups[n[2]].push(n);
- const svg = document.getElementById('miniConst');
- if (!svg) return;
- const bandW = W / BANDS.length;
- let nodes = '';
- BANDS.forEach((band, bi) => {
- const list = groups[band];
- const cx = bi * bandW + bandW / 2;
- list.forEach((n, i) => {
- const t = list.length === 1 ? 0.5 : i / (list.length - 1);
- // deterministic jitter per slug
- let h = 0; for (let k = 0; k < n[0].length; k++) h = (h * 31 + n[0].charCodeAt(k)) | 0;
- const jx = ((h & 0xff) / 255 - 0.5) * (bandW * 0.5);
- const jy = (((h >> 8) & 0xff) / 255 - 0.5) * 6; // tightened from 14 → 6 to prevent same-band collisions (16 mat nodes / 144px = 9px spacing)
- const x = cx + jx, y = 28 + t * (H - 56) + jy;
- const isCurrent = n[0] === SLUG;
- const r = isCurrent ? 8 : 4;
- const op = isCurrent ? 1 : 0.55;
- nodes += `<g class="mc-node" data-slug="${n[0]}" data-label="${n[1]}" style="cursor:pointer">
- <circle cx="${x}" cy="${y}" r="${r}" fill="url(#dna-${band})" fill-opacity="${op}" stroke="${COLOR[band]}" stroke-opacity="${isCurrent?1:0.7}" stroke-width="${isCurrent?2:1}">
- <title>${n[1]} — ${n[0]}.com</title>
- </circle>
- ${isCurrent ? `<circle cx="${x}" cy="${y}" r="${r+5}" fill="none" stroke="${COLOR[band]}" stroke-opacity="0.4" stroke-width="1"><animate attributeName="r" values="${r+5};${r+12};${r+5}" dur="2.4s" repeatCount="indefinite"/><animate attributeName="stroke-opacity" values="0.4;0;0.4" dur="2.4s" repeatCount="indefinite"/></circle>` : ''}
- </g>`;
- });
- });
- // append nodes after defs
- svg.insertAdjacentHTML('beforeend', nodes);
- svg.querySelectorAll('.mc-node').forEach(n => {
- n.addEventListener('mouseenter', () => n.querySelector('circle').setAttribute('fill-opacity', '1'));
- n.addEventListener('mouseleave', e => {
- const isCurrent = n.dataset.slug === SLUG;
- n.querySelector('circle').setAttribute('fill-opacity', isCurrent ? '1' : '0.55');
- });
- n.addEventListener('click', () => window.open('https://' + n.dataset.slug + '.com', '_blank'));
- });
-})();
-</script>
-
-<script>
-const state = { q:'', facet:'all', page:1, pages:1, total:0, loading:false, exhausted:false };
-const LABELS = {"all":"All"};
-
-function escAttr(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[c])); }
-// Image-URL allowlist: only DW Shopify CDN + designerwallcoverings.com (defends against XSS via crafted products.json)
-function safeImg(u) { return /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(u || '') ? u : '/hero-bg.jpg'; }
-function cardHTML(p) {
- const eager = state.page === 1;
- return '<img loading="' + (eager ? 'eager' : 'lazy') + '"' + (eager ? ' fetchpriority="high"' : '') + ' src="' + escAttr(safeImg(p.image_url)) + '" alt="' + escAttr(p.title) + '">'
- + '<div class="overlay">'
- + '<div class="pat">' + escAttr(p.pattern_name || p.title) + '</div>'
- + '<div class="ven">' + escAttr((p.vendor || '').replace(/-/g, ' ')) + '</div>'
- + '<div class="actions">'
- + '<button class="sample-btn" onclick="event.stopPropagation();dwmOpen(\'Sample\',' + JSON.stringify({sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}).replace(/"/g,'"') + ')">Sample</button>'
- + '</div></div>';
-}
-
-async function loadFacets() {
- let f;
- try {
- const r = await fetch('/api/facets');
- if (!r.ok) throw new Error('HTTP ' + r.status);
- f = await r.json();
- } catch (e) { console.error('loadFacets failed:', e); return; }
- const el = document.getElementById('facets');
- for (const [k, v] of Object.entries(f.aesthetics).sort((a,b) => b[1] - a[1])) {
- const b = document.createElement('button');
- b.className = 'chip'; b.dataset.facet = k;
- b.innerHTML = (LABELS[k] || k) + ' <span style="opacity:.55;font-weight:500;margin-left:4px">' + v + '</span>';
- el.appendChild(b);
- }
- el.addEventListener('click', e => {
- if (e.target.tagName !== 'BUTTON') return;
- document.querySelectorAll('#facets button').forEach(b => b.classList.remove('active'));
- e.target.classList.add('active');
- state.facet = e.target.dataset.facet;
- resetGrid();
- });
- document.getElementById('totalCount').textContent = f.total;
- document.getElementById('footerStat').textContent = f.total + ' patterns · live archive';
- // Footer aesthetic links
- const footerEl = document.getElementById('footerFacets');
- for (const [k] of Object.entries(f.aesthetics)) {
- const b = document.createElement('button');
- b.textContent = LABELS[k] || k;
- b.onclick = () => { state.facet = k; resetGrid(); document.querySelectorAll('#facets button').forEach(x => x.classList.toggle('active', x.dataset.facet === k)); document.getElementById('shop').scrollIntoView({behavior:'smooth'}); };
- footerEl.appendChild(b);
- }
-}
-
-function resetGrid() {
- state.page = 1; state.exhausted = false;
- document.getElementById('grid').innerHTML = '';
- document.getElementById('loading').textContent = 'Loading…';
- loadGridPage();
-}
-
-async function loadGridPage() {
- if (state.loading || state.exhausted) return;
- state.loading = true;
- const params = new URLSearchParams({ page:state.page, limit:24 });
- if (state.q) params.set('q', state.q);
- if (state.facet !== 'all') params.set('aesthetic', state.facet);
- let data;
- try {
- const r = await fetch('/api/products?' + params);
- if (!r.ok) throw new Error('HTTP ' + r.status);
- data = await r.json();
- } catch (e) {
- console.error('loadGridPage failed:', e);
- document.getElementById('loading').textContent = '— offline — refresh to retry —';
- state.loading = false;
- return;
- }
- state.total = data.total; state.pages = data.pages;
-
- if (state.page === 1) {
- document.getElementById('statLine').textContent = data.total + ' patterns · ' + (state.facet === 'all' ? 'all aesthetics' : (LABELS[state.facet] || state.facet)) + (state.q ? ' · matching "' + state.q + '"' : '');
- }
- const grid = document.getElementById('grid');
- for (const p of data.items) {
- const a = document.createElement('a');
- a.className = 'card'; a.href = '#'; a.onclick = (e) => { e.preventDefault(); dwmOpen('Sample',{sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}); };
- a.innerHTML = cardHTML(p);
- grid.appendChild(a);
- }
- if (state.page >= state.pages || data.items.length === 0) {
- state.exhausted = true;
- document.getElementById('loading').textContent = state.total > 0 ? '— end of archive · ' + state.total + ' patterns —' : '';
- } else state.page++;
- state.loading = false;
-}
-
-const io = new IntersectionObserver(es => { for (const e of es) if (e.isIntersecting) loadGridPage(); }, { rootMargin:'600px 0px' });
-io.observe(document.getElementById('sentinel'));
-
-document.getElementById('searchInput').addEventListener('input', e => {
- state.q = e.target.value.trim();
- clearTimeout(window._t);
- window._t = setTimeout(resetGrid, 220);
-});
-
-// Density slider
-const slider = document.getElementById('densitySlider');
-const dlabel = document.getElementById('densityLabel');
-function setDensity(n) {
- document.documentElement.style.setProperty('--cols', n);
- dlabel.textContent = n + ' cols';
- try { localStorage.setItem('arch_theme_density', n); } catch(e){}
-}
-slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
-const savedDensity = parseInt(localStorage.getItem('arch_theme_density') || '6');
-if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
-
-// Theme toggle
-const tb = document.getElementById('theme-toggle');
-function setTheme(t){ document.documentElement.dataset.theme = t; try { localStorage.setItem('arch_theme', t); } catch(e){} tb.textContent = t === 'dark' ? '☾' : '☀'; }
-setTheme(document.documentElement.dataset.theme || 'light');
-tb.addEventListener('click', () => setTheme(document.documentElement.dataset.theme === 'dark' ? 'light' : 'dark'));
-
-loadFacets();
-loadGridPage();
-</script>
-<!-- ============================================================
- DW UNIVERSAL CONTACT MODULE — fashion-house UX
- Inject before </body> in every DW-family sister site.
- Self-contained: CSS + 4 modals + JS submission handlers.
- Uses host site's CSS vars (--bg, --fg, --gold, --rule).
- ============================================================ -->
-<style>
- /* === MODAL BASE === */
- .dwm{position:fixed;inset:0;background:rgba(0,0,0,0.78);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;overflow-y:auto}
- .dwm.open{display:flex}
- .dwm-box{background:var(--bg);border:1px solid var(--rule);max-width:520px;width:100%;padding:36px 32px;position:relative;max-height:90vh;overflow-y:auto;animation:dwm-in 0.25s ease}
- @keyframes dwm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
- .dwm-box h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;font-size:32px;line-height:1.05;margin-bottom:6px;color:var(--fg);letter-spacing:-0.01em}
- .dwm-box .sub{color:var(--muted);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
- .dwm-close{position:absolute;top:18px;right:18px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;width:32px;height:32px;line-height:1;padding:0}
- .dwm-close:hover{color:var(--gold)}
- .dwm-preview{display:flex;gap:14px;align-items:center;padding:12px;background:var(--bg-soft);margin-bottom:18px}
- .dwm-preview img{width:64px;height:64px;object-fit:cover}
- .dwm-preview .pn{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;line-height:1.2;color:var(--fg)}
- .dwm-preview .pc{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
- .dwm-field{margin-bottom:14px}
- .dwm-field label{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
- .dwm-field input,.dwm-field textarea,.dwm-field select{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:8px 4px;font-size:14px;font-family:inherit;color:var(--fg);outline:none;transition:border-color 0.2s}
- .dwm-field input:focus,.dwm-field textarea:focus{border-bottom-color:var(--gold)}
- .dwm-field textarea{min-height:60px;resize:vertical}
- .dwm-submit{background:transparent;color:var(--muted, #c9b89e);border:1px solid var(--muted, #c9b89e);padding:14px 28px;font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:700;cursor:pointer;width:100%;margin-top:8px;transition:background 0.15s, color 0.15s}
- .dwm-submit:hover{background:var(--muted, #c9b89e);color:var(--bg, #000)}
-
- .dwm-submit:disabled{opacity:0.5;cursor:default}
- .dwm-status{margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;display:none}
- .dwm-status.ok{color:var(--sage);display:block}
- .dwm-status.err{color:#e08070;display:block}
- /* contact-options */
- .dwm-options{display:flex;flex-direction:column;gap:10px}
- .dwm-option{display:flex;align-items:center;gap:14px;padding:18px 20px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;transition:all 0.2s;text-align:left;width:100%}
- .dwm-option:hover{border-color:var(--gold);color:var(--gold)}
- .dwm-option svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}
- .dwm-option .lbl{flex:1;display:block}
- .dwm-option .val{display:block;font-size:10px;letter-spacing:0.14em;text-transform:none;font-weight:500;opacity:0.65;margin-top:4px}
-
-/* graphics-loop pass 5: serif hero typography + nav legibility */
-.cinema h1, h1.headline { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; letter-spacing: -0.01em }
-.h-link { font-size: 13px; letter-spacing: 0.06em }
-
-/* graphics-loop pass 11: Ideas rails */
-#ideas { padding: 56px 24px 24px; max-width:1600px; margin:0 auto }
-#ideas .rail-block { margin-bottom:48px }
-#ideas .rail-eyebrow { font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:var(--muted, #888); margin-bottom:8px }
-#ideas .rail-title { font-size:clamp(22px,2.6vw,32px); font-weight:500; letter-spacing:-0.01em; margin:0 0 18px; color:var(--ink,#fff) }
-#ideas .rail { display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:8px; scrollbar-width:none }
-#ideas .rail::-webkit-scrollbar { display:none }
-#ideas .rail-card { flex:0 0 240px; scroll-snap-align:start; cursor:pointer; transition:transform 0.2s }
-#ideas .rail-card:hover { transform:translateY(-3px) }
-#ideas .rail-card img { width:100%; aspect-ratio:1; object-fit:cover; display:block; background:var(--card,#222) }
-#ideas .rail-card .rc-title { font-size:13px; font-weight:500; color:var(--paper,#fff); padding:8px 0 2px; line-height:1.3 }
-#ideas .rail-card .rc-meta { font-size:11px; color:var(--muted,#888); letter-spacing:0.06em }
-@media (max-width:720px) { #ideas .rail-card { flex:0 0 160px } }
-</style>
-
-<!-- Contact options modal -->
-<div class="dwm" id="dwmContact" onclick="if(event.target===this)dwmClose('Contact')">
- <div class="dwm-box" style="max-width:440px">
- <button class="dwm-close" onclick="dwmClose('Contact')" aria-label="Close">×</button>
- <h3>Contact</h3>
- <p class="sub" id="dwmContactSub">Three ways to reach us</p>
- <div class="dwm-options">
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Inquiry')">
- <svg viewBox="0 0 24 24"><path d="M4 4h16v12H7l-3 3z"/></svg>
- <span class="lbl">Send an Inquiry<span class="val">Project name · scope · all the details</span></span>
- </button>
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Sample')">
- <svg viewBox="0 0 24 24"><rect x="4" y="6" width="16" height="14"/><path d="M4 10h16M9 6V3h6v3"/></svg>
- <span class="lbl">Request a Sample<span class="val">Memo sample · ships free · 3–5 business days</span></span>
- </button>
- <a class="dwm-option" id="dwmContactEmailLink" href="mailto:info@architecturalwallcoverings.com">
- <svg viewBox="0 0 24 24"><path d="M3 6h18v12H3z"/><path d="M3 6l9 7 9-7"/></svg>
- <span class="lbl">Email Us<span class="val" id="dwmContactEmailLabel">info@architecturalwallcoverings.com</span></span>
- </a>
- </div>
- </div>
-</div>
-
-<!-- Inquiry modal -->
-<div class="dwm" id="dwmInquiry" onclick="if(event.target===this)dwmClose('Inquiry')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Inquiry')" aria-label="Close">×</button>
- <h3>Project Inquiry</h3>
- <p class="sub">We'll respond within one business day</p>
- <form id="dwmInquiryForm" onsubmit="return dwmSubmit(event,'inquiry')">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Phone</label><input type="tel" name="phone"></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Project Name</label><input type="text" name="projectName" required></div>
- <div class="dwm-field"><label>Project Scope</label><textarea name="projectScope" placeholder="Square footage · room count · timeline" required></textarea></div>
- <div class="dwm-field"><label>Additional Information</label><textarea name="message" placeholder="Patterns of interest, finish preferences, budget"></textarea></div>
- <button type="submit" class="dwm-submit">Send Inquiry</button>
- <div class="dwm-status" id="dwmInquiryStatus"></div>
- </form>
- </div>
-</div>
-
-<!-- Sample-request modal -->
-<div class="dwm" id="dwmSample" onclick="if(event.target===this)dwmClose('Sample')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Sample')" aria-label="Close">×</button>
- <h3>Request a Sample</h3>
- <p class="sub">Memo sample · ships free · 3–5 business days</p>
- <div class="dwm-preview" id="dwmSamplePreview" style="display:none">
- <img id="dwmSampleImg" src="" alt="">
- <div><div class="pn" id="dwmSampleName"></div><div class="pc" id="dwmSampleSku"></div></div>
- </div>
- <form id="dwmSampleForm" onsubmit="return dwmSubmit(event,'sample')">
- <input type="hidden" name="sku" id="dwmSampleSkuInput">
- <input type="hidden" name="title" id="dwmSampleTitleInput">
- <input type="hidden" name="image_url" id="dwmSampleImageInput">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Shipping Address</label><input type="text" name="address" placeholder="Street" required></div>
- <div class="dwm-field" style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px">
- <input type="text" name="city" placeholder="City" required>
- <input type="text" name="state" placeholder="State" required>
- <input type="text" name="zip" placeholder="ZIP" required>
- </div>
- <div class="dwm-field"><label>Notes (optional)</label><textarea name="message" placeholder="Project, sq.ft., timing"></textarea></div>
- <button type="submit" class="dwm-submit">Send Sample Request</button>
- <div class="dwm-status" id="dwmSampleStatus"></div>
- </form>
- </div>
-</div>
-
-<script>
- // Universal modal control
- function dwmOpen(name, opts){
- document.getElementById('dwm' + name).classList.add('open');
- document.body.style.overflow = 'hidden';
- if (name === 'Sample' && opts) {
- document.getElementById('dwmSamplePreview').style.display = 'flex';
- document.getElementById('dwmSampleImg').src = opts.image_url || '';
- document.getElementById('dwmSampleName').textContent = opts.title || '';
- document.getElementById('dwmSampleSku').textContent = opts.sku || '';
- document.getElementById('dwmSampleSkuInput').value = opts.sku || '';
- document.getElementById('dwmSampleTitleInput').value = opts.title || '';
- document.getElementById('dwmSampleImageInput').value = opts.image_url || '';
- } else if (name === 'Sample') {
- document.getElementById('dwmSamplePreview').style.display = 'none';
- document.getElementById('dwmSampleSkuInput').value = '';
- document.getElementById('dwmSampleTitleInput').value = '';
- document.getElementById('dwmSampleImageInput').value = '';
- }
- }
- function dwmClose(name){ document.getElementById('dwm'+name).classList.remove('open'); document.body.style.overflow=''; }
-
- // Universal form submit — POSTs to /api/send-{kind}
- async function dwmSubmit(e, kind) {
- e.preventDefault();
- const form = e.target;
- const data = Object.fromEntries(new FormData(form).entries());
- const btn = form.querySelector('.dwm-submit');
- const status = form.querySelector('.dwm-status');
- btn.disabled = true; const orig = btn.textContent; btn.textContent = 'Sending…';
- status.className = 'dwm-status';
- try {
- const r = await fetch('/api/send-' + kind, { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
- if (!r.ok) throw new Error('HTTP '+r.status);
- const j = await r.json();
- status.textContent = kind === 'sample' ? 'Sample request sent — ships within 3–5 business days' : 'Inquiry sent — we respond within 1 business day';
- status.className = 'dwm-status ok';
- btn.textContent = 'Sent ✓';
- setTimeout(() => { dwmClose(kind === 'sample' ? 'Sample' : 'Inquiry'); btn.disabled = false; btn.textContent = orig; status.className = 'dwm-status'; form.reset(); }, 2800);
- } catch (err) {
- status.textContent = 'Send failed — please email info@designerwallcoverings.com';
- status.className = 'dwm-status err';
- btn.disabled = false; btn.textContent = orig;
- }
- return false;
- }
-
- // Wire up "Memo samples ship free" badge in hero to open sample modal directly
- document.querySelectorAll('.hero .badge, [data-open-sample]').forEach(el => {
- el.style.cursor = 'pointer';
- el.addEventListener('click', () => dwmOpen('Sample'));
- });
-
- // Wire nav "Trade" link to inquiry modal
- document.querySelectorAll('nav a[href*="designerwallcoverings.com"]').forEach(a => {
- a.removeAttribute('target');
- a.removeAttribute('href');
- a.style.cursor = 'pointer';
- a.addEventListener('click', e => { e.preventDefault(); dwmOpen('Contact'); });
- });
-
- // Override product card clicks — open Sample modal pre-filled instead of redirecting to DW
- document.addEventListener('click', e => {
- const card = e.target.closest('.card, .rail-card');
- if (!card) return;
- if (card.tagName === 'A' && (card.getAttribute('href') || '').startsWith('/sample/')) {
- e.preventDefault();
- const img = card.querySelector('img');
- const pat = card.querySelector('.pat');
- const sku = card.getAttribute('href').replace('/sample/', '');
- dwmOpen('Sample', {
- sku,
- title: pat ? pat.textContent.trim() : '',
- image_url: img ? img.src : ''
- });
- }
- }, true);
-// DW STANDARD: hero pulls from products.json[0].image_url so dw-collections-viewer
-// drag-drop / hero-pin updates the live front page on next deploy.
-// Always upgrades to the largest Shopify variant (strips _NxN size suffix) so
-// the full-page hero stays sharp.
-// DW STANDARD: hero rotates through top-20 NEWEST products on each visit
-// (novasuede.com pattern). Fetches /api/products?limit=100, sorts by created_at desc,
-// takes the freshest 20, picks one per visit via localStorage counter.
-// Falls back to static /hero-bg.jpg on any error.
-(async function rotateHero() {
- try {
- const r = await fetch('/api/products?limit=100');
- if (!r.ok) return;
- const d = await r.json();
- const items = (d.items || [])
- .filter(p => p && p.image_url && /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(p.image_url))
- .sort((a,b) => String(b.created_at || '').localeCompare(String(a.created_at || '')))
- .slice(0, 20);
- if (!items.length) return;
- let visits = 0;
- try {
- visits = parseInt(localStorage.getItem('hero_visits') || '0', 10) || 0;
- localStorage.setItem('hero_visits', String(visits + 1));
- } catch(e) {}
- const pick = items[visits % items.length];
- // Strip _NxN size suffix to get the largest CDN variant
- const url = pick.image_url.replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- const bg = document.getElementById('heroBg') || document.getElementById('cinemaBg');
- if (bg) bg.style.backgroundImage = "url('" + url + "')";
- } catch (e) {}
-})();
-
-
-// DW STANDARD sort-select wire-up (added by fleet patcher)
-(function(){
- const sortSel = document.getElementById('sortSelect');
- if (!sortSel) return;
- const KEY = location.hostname.replace(/\./g, '_') + '_sort';
- const saved = localStorage.getItem(KEY);
- if (saved) { try { sortSel.value = saved; } catch(e){} }
- if (typeof state !== 'undefined') state.sort = sortSel.value;
- sortSel.addEventListener('change', e => {
- const v = e.target.value;
- try { localStorage.setItem(KEY, v); } catch(e){}
- if (typeof state !== 'undefined') state.sort = v;
- if (typeof resetGrid === 'function') resetGrid();
- else location.reload();
- });
-})();
-
-// graphics-loop pass 11: hydrate Ideas rails from /api/products
-(async function hydrateIdeas() {
- try {
- const r = await fetch('/api/products?limit=80');
- if (!r.ok) return;
- const d = await r.json();
- const items = (d.items || []).filter(p => p && p.image_url);
- if (!items.length) return;
- const sorted = [...items].sort((a,b) => String(b.created_at || '').localeCompare(String(a.created_at || '')));
- const newest = sorted.slice(0, 12);
- // Curated = deterministic offset slice (every 5th item starting at idx 3) for variety
- const curated = items.filter((_, i) => i % 5 === 3).slice(0, 12);
- function card(p) {
- const url = (p.image_url || '').replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- return '<a class="rail-card" href="/sample/' + encodeURIComponent(p.handle || p.sku) + '">' +
- '<img src="' + url + '" alt="' + (p.title || '').replace(/"/g, '"') + '" loading="lazy">' +
- '<div class="rc-title">' + ((p.title || '').split('|')[0] || '').trim() + '</div>' +
- '<div class="rc-meta">' + (p.vendor || '') + '</div>' +
- '</a>';
- }
- const r1 = document.getElementById('railNewest');
- const r2 = document.getElementById('railCurated');
- if (r1) r1.innerHTML = newest.map(card).join('');
- if (r2) r2.innerHTML = curated.map(card).join('');
- } catch(e) {}
-})();
-</script>
-
-</body>
-</html>
diff --git a/public/index.html.bak.nspropagate.1778203385065 b/public/index.html.bak.nspropagate.1778203385065
deleted file mode 100644
index 51d3b87..0000000
--- a/public/index.html.bak.nspropagate.1778203385065
+++ /dev/null
@@ -1,954 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
-<meta charset="utf-8">
-<!-- Google tag (gtag.js) -->
-<script async src="https://www.googletagmanager.com/gtag/js?id=G-PN839G9FD8"></script>
-<script>
- window.dataLayer = window.dataLayer || [];
- function gtag(){dataLayer.push(arguments);}
- gtag('js', new Date());
- gtag('config', 'G-PN839G9FD8');
-</script>
-
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>Studio Toten — architectural. Useful.</title>
-<meta name="description" content="Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.">
-<meta name="theme-color" content="#F5F2ED">
-<link rel="canonical" href="https://architecturalwallcoverings.com/">
-<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&display=swap" rel="stylesheet">
-<link rel="preload" as="image" href="/hero-bg.jpg" fetchpriority="high">
-<script type="application/ld+json">
-{
- "@context": "https://schema.org",
- "@type": "Organization",
- "name": "Studio Toten",
- "url": "https://architecturalwallcoverings.com/",
- "email": "info@architecturalwallcoverings.com"
-}
-</script>
-<script src="/zd-loader.js" defer></script>
-<style>
-:root {
- --bg: #F5F2ED;
- --paper: #1A1A1A;
- --muted: #8B7866;
- --line: #D5CFC4;
- --accent: #1A1A1A;
- --bg-soft: #D5CFC4;
- --cols: 6;
-}
-html[data-theme="dark"] {
- --bg: #1a1410;
- --paper: #F5F2ED;
- --muted: #C9B89E;
- --line: rgba(255,254,250,0.12);
- --accent: #1A1A1A;
- --bg-soft: #2a1f15;
-}
-* { margin:0; padding:0; box-sizing:border-box }
-html { scroll-behavior:smooth }
-body { font-family:'Inter', sans-serif; color:var(--paper); -webkit-font-smoothing:antialiased; background:var(--bg); min-height:100vh; overflow-x:hidden }
-/* DW-FASHION-TEMPLATE-OVERRIDE */
-.section-title .accent, .footer-brand, .center-mark, h1, h2, h3 { font-family:'Inter', Georgia, serif !important; font-weight:400 !important; }
-
-/* ===== Auto-hide header ===== */
-header { position:fixed; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 32px; z-index:100; background:rgba(0,0,0,0.55); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:transform .3s }
-.h-link { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); text-decoration:none; cursor:pointer; background:transparent; border:0 }
-.h-link:hover { opacity:0.7 }
-.h-icon { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }
-
-/* ===== Cinema hero ===== */
-.cinema { position:relative; height:100vh; width:100%; overflow:hidden }
-.cinema-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-image:url('/hero-bg.jpg') }
-.cinema-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.75) 100%) }
-.corner-mark { position:absolute; top:24px; left:32px; font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,0.55), 0 0 1px rgba(0,0,0,0.4); z-index:5 }
-.corner-mark::before { content:"◆ "; margin-right:6px }
-.center-mark { position:absolute; top:clamp(80px,12vh,140px); left:50%; transform:translateX(-50%); font-size:clamp(28px,4vw,56px); font-weight:500; letter-spacing:0.18em; text-transform:uppercase; text-align:center; color:#fff; text-shadow:0 2px 8px rgba(0,0,0,0.65), 0 0 1px rgba(0,0,0,0.5); z-index:5 }
-.center-mark .tm { font-size:14px; vertical-align:super; opacity:0.7; margin-left:0.2em }
-.center-mark .sub { display:block; font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400; font-size:0.4em; letter-spacing:0.04em; text-transform:none; margin-top:14px; opacity:0.85 }
-.meta-line { position:absolute; bottom:32px; left:32px; font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:700; color:#fff; z-index:5; opacity:0.85 }
-.meta-line .num { font-size:12px; display:block; margin-top:4px; letter-spacing:0.05em }
-.enter { position:absolute; bottom:32px; right:32px; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:0.36em; text-transform:uppercase; font-weight:700; color:#fff; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #fff; transition:gap 0.25s; z-index:5 }
-.enter:hover { gap:22px }
-.enter svg { width:24px; height:12px }
-
-/* ===== Section ===== */
-.section { padding:96px 32px }
-.section-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--line) }
-.section-title { font-size:clamp(36px,5vw,64px); font-weight:300; letter-spacing:-0.02em; line-height:1 }
-.section-title .accent { color: var(--accent); font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400 }
-.section-eyebrow { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:16px }
-.section-meta { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--muted); text-align:right; line-height:1.6 }
-
-/* ===== Filter bar ===== */
-.filters { display:flex; gap:8px; align-items:center; margin-bottom:18px; flex-wrap:wrap }
-.chip { padding:8px 16px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); background:transparent; border:1px solid var(--line); cursor:pointer; transition:all 0.2s; font-family:inherit }
-.chip:hover { border-color:var(--paper) }
-.chip.active { background:var(--paper); color:var(--bg); border-color:var(--paper) }
-.search { flex:0 1 280px; margin-left:auto; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:6px 0 }
-.search input { flex:1; background:transparent; border:0; color:var(--paper); font-family:inherit; font-size:13px; outline:none; letter-spacing:0.04em }
-.search input::placeholder { color:var(--muted) }
-.search svg { width:16px; height:16px; stroke:var(--muted); fill:none; stroke-width:1.5 }
-
-/* ===== Grid-density slider ===== */
-.density { display:flex; align-items:center; gap:14px; padding:6px 0; margin-bottom:24px }
-.density label { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--muted) }
-.density input[type=range] { flex:1; max-width:240px; -webkit-appearance:none; appearance:none; height:1px; background:var(--line); outline:none }
-.density input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50% }
-.density input[type=range]::-moz-range-thumb { width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50%; border:0 }
-.density .ct { font-size:11px; color:var(--muted); letter-spacing:0.18em; text-transform:uppercase; font-weight:600; min-width:80px }
-
-/* ===== Stats line ===== */
-.stat-line { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:24px }
-
-/* ===== Product grid (novasuede pattern: flush grid + slide-up overlay) ===== */
-.grid { display:grid; grid-template-columns:repeat(var(--cols), 1fr); gap:0 }
-.card { position:relative; aspect-ratio:1/1.15; cursor:pointer; overflow:hidden; border:1px solid var(--bg); transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1); background:var(--bg-soft) }
-.card:hover { transform:scale(1.04); z-index:5 }
-.card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease }
-.card .overlay { position:absolute; left:0; right:0; bottom:0; padding:20px 16px 14px; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%); transform:translateY(48%); opacity:0.85; transition:transform 0.3s ease, opacity 0.3s ease }
-.card:hover .overlay { transform:translateY(0); opacity:1 }
-.card .pat { font-size:13px; font-weight:600; letter-spacing:0.02em; color:#fff; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
-.card .ven { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#fff; opacity:0.7; font-weight:500; margin-top:4px }
-.card .actions { margin-top:10px; display:flex; gap:6px }
-.card .sample-btn { flex:1; padding:7px 10px; background:#fff; color:#000; font-family:inherit; font-size:10px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; border:0; cursor:pointer; text-align:center; transition:all 0.2s }
-.card .sample-btn:hover { background:var(--accent); color:#fff }
-
-@media (max-width:1024px) { .grid { grid-template-columns:repeat(min(var(--cols), 4), 1fr) } }
-@media (max-width:720px) { .grid { grid-template-columns:repeat(2, 1fr) } .density { display:none } }
-
-.sentinel { height:1px }
-.loading { text-align:center; color:var(--muted); padding:32px; font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700 }
-
-/* ===== Footer ===== */
-footer { padding:64px 32px 32px; border-top:1px solid var(--line); margin-top:32px }
-.footer-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; margin-bottom:48px }
-.footer-brand { font-size:24px; font-weight:300; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:12px }
-.footer-text { font-size:13px; line-height:1.6; color:var(--muted); max-width:380px }
-.footer-col h4 { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--paper); margin-bottom:18px }
-.footer-col a { display:block; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:8px; transition:color 0.2s; cursor:pointer; background:transparent; border:0; font-family:inherit; padding:0; text-align:left }
-.footer-col a:hover { color:var(--accent) }
-.footer-bottom { max-width:1400px; margin:0 auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted) }
-
-@media (max-width:720px) {
- .corner-mark, .meta-line, .enter { font-size:10px }
- .center-mark { font-size:24px; letter-spacing:0.12em; top:clamp(60px,9vh,90px) }
- .section, footer { padding-left:20px; padding-right:20px }
- .footer-grid { grid-template-columns:1fr; gap:32px }
- .search { margin-left:0; flex:1 1 100% }
-}
-
-.theme-toggle { background:transparent; border:1px solid var(--line); width:32px; height:32px; cursor:pointer; color:var(--paper); display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; transition:all .15s; padding:0 }
-.theme-toggle:hover { border-color:var(--accent); color:var(--accent) }
-
-/* ===== WCAG 2.4.7 — keyboard focus indicators ===== */
-/* Strictly :focus-visible so mouse clicks do NOT show the ring */
-a:focus-visible,
-button:focus-visible,
-input:focus-visible,
-select:focus-visible,
-textarea:focus-visible,
-[tabindex]:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
-}
-</style>
-<script>
-(function(){ try { var t = localStorage.getItem('arch_theme') || 'light'; document.documentElement.dataset.theme = t; } catch(e){} })();
-</script>
-<link rel="preconnect" href="https://fonts.googleapis.com">
-<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap">
-
-<meta property="og:type" content="website">
-<meta property="og:url" content="https://architecturalwallcoverings.com/">
-<meta property="og:title" content="Architectural Wallcoverings">
-<meta property="og:description" content="Architectural Wallcoverings — Class A specifier-grade architectural wallcoverings.">
-<meta property="og:image" content="https://architecturalwallcoverings.com/hero-bg.jpg">
-<meta property="og:site_name" content="Architectural Wallcoverings">
-<meta property="article:publisher" content="https://www.facebook.com/SteveAbramsDesigns.DesignerWallcoverings">
-<meta name="twitter:card" content="summary_large_image">
-<meta name="twitter:title" content="Architectural Wallcoverings">
-<meta name="twitter:description" content="Architectural Wallcoverings — Class A specifier-grade architectural wallcoverings.">
-<meta name="twitter:image" content="https://architecturalwallcoverings.com/hero-bg.jpg">
-<!-- graphics-loop pass 13: footer + fb -->
-</head>
-<body>
-<style id="ns-header-modal-styles">
- .ns-header { position: sticky; top: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; padding: 18px 36px; background: rgba(10,10,10,0.92) !important; backdrop-filter: blur(8px); border-bottom: 1px solid rgba(245,241,232,0.06); }
- .ns-brand { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; }
- .ns-dot { width: 28px; height: 28px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #a98b5b 0%, #5d4c32 60%, #332a1b 100%); box-shadow: 0 0 0 1px rgba(245,241,232,0.10), 0 2px 12px rgba(180,90,60,0.30); flex-shrink: 0; }
- .ns-name { font-family: -apple-system, "SF Pro Display", "Helvetica Neue", system-ui, sans-serif; font-size: 18px !important; font-weight: 300 !important; letter-spacing: 0.02em !important; color: #f5f1e8 !important; text-transform: none !important; margin: 0 !important; }
- .ns-name sup { font-size: 0.55em; font-weight: 300; margin-left: 1px; }
- .ns-nav { display: flex; gap: 32px; align-items: center; list-style: none; padding: 0; margin: 0; }
- .ns-nav a, .ns-nav button { font-family: -apple-system, "SF Pro Text", system-ui, sans-serif; font-size: 15px !important; font-weight: 400 !important; color: #f5f1e8 !important; text-decoration: none !important; background: none !important; border: 0 !important; cursor: pointer; padding: 0 !important; transition: color 200ms; letter-spacing: 0 !important; text-transform: none !important; }
- .ns-nav a:hover, .ns-nav button:hover { color: #ffffff !important; }
- @media (max-width: 820px) { .ns-header { padding: 14px 18px; } .ns-nav { gap: 16px; } .ns-nav a, .ns-nav button { font-size: 13px !important; } }
- @media (max-width: 760px) {
- .ns-header { flex-wrap: wrap; }
- .ns-nav { display: none !important; flex-basis: 100%; flex-direction: column; align-items: flex-start; gap: 6px; padding: 14px 0 4px; }
- .ns-nav.open { display: flex !important; }
- .ns-nav a, .ns-nav button { padding: 10px 0 !important; border-bottom: 1px solid rgba(245,241,232,0.08); width: 100%; text-align: left; }
- .ns-nav a:nth-child(n+5), .ns-nav button:nth-child(n+5) { display: block !important; }
- .ns-header .mobile-toggle { display: flex !important; }
- }
- @media (min-width: 761px) {
- .ns-header .mobile-toggle { display: none !important; }
- }
- .ns-modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.78); z-index: 200; align-items: center; justify-content: center; padding: 24px; backdrop-filter: blur(6px); }
- .ns-modal.show { display: flex; }
- .ns-modal-card { max-width: 460px; width: 100%; background: #141414 !important; border: 1px solid rgba(245,241,232,0.14); border-radius: 6px; padding: 28px 30px 30px; position: relative; }
- .ns-modal-card .close-x { position: absolute; top: 12px; right: 14px; width: 30px; height: 30px; background: none; border: 1px solid rgba(245,241,232,0.18); color: rgba(245,241,232,0.6) !important; border-radius: 50%; cursor: pointer; font-size: 14px; display: flex; align-items: center; justify-content: center; }
- .ns-modal-card .close-x:hover { color: #ffffff !important; border-color: #ffffff; }
- .ns-modal-card h3 { font-family: -apple-system, "SF Pro Display", system-ui; font-weight: 300 !important; font-size: 22px !important; margin: 0 0 6px !important; color: #f5f1e8 !important; }
- .ns-modal-card .sub { color: rgba(245,241,232,0.65) !important; font-size: 13px; margin: 0 0 22px; }
- .ns-actions { display: flex; flex-direction: column; gap: 10px; }
- .ns-action { display: flex; align-items: center; gap: 14px; padding: 14px 16px; background: rgba(245,241,232,0.04) !important; border: 1px solid rgba(245,241,232,0.12) !important; color: #f5f1e8 !important; text-decoration: none !important; cursor: pointer; transition: all 200ms; font: inherit; text-align: left; }
- .ns-action:hover { background: rgba(245,241,232,0.08) !important; border-color: #d4b683 !important; }
- .ns-action .ico { width: 32px; height: 32px; border-radius: 50%; background: rgba(212,182,131,0.12); display: flex; align-items: center; justify-content: center; font-size: 15px; flex-shrink: 0; }
- .ns-action .txt { flex: 1; }
- .ns-action .txt b { display: block; font-weight: 500; font-size: 14px; color: #f5f1e8 !important; }
- .ns-action .txt span { font-size: 12px; color: rgba(245,241,232,0.55) !important; }
-
- /* ─── FINAL CONTRAST PASS — kill remaining gold-solid + white-island defects ─── */
- /* Replace all gold-fill accents with off-white (Gucci-aesthetic, no DW gold solids) */
- .new-badge, .new-arrivals-pill,
- .color-filter-btn.active,
- .drapery-btn, .sample-btn-chip, .cb-cta {
- background: #f5f1e8 !important;
- color: #0a0a0a !important;
- border-color: #f5f1e8 !important;
- }
- .new-badge:hover, .new-arrivals-pill:hover,
- .color-filter-btn.active:hover,
- .drapery-btn:hover, .sample-btn-chip:hover, .cb-cta:hover {
- background: #fff !important;
- color: #0a0a0a !important;
- }
- /* Gold accents stay only as edge color (links, glyphs) — not fills */
- a { color: #d4b683; }
- a:hover { color: #f5d97a; }
- /* Authorized-dealer footer line — small caps tracked, muted ink, no gold pill */
- .authorized, .authorized-dealer p {
- background: transparent !important;
- color: rgba(245,241,232,0.5) !important;
- font-size: 10px !important;
- letter-spacing: 0.22em !important;
- text-transform: uppercase !important;
- padding: 0 !important;
- border: none !important;
- margin-top: 14px !important;
- }
- /* Kill any straggler white bg in info-card / sample-related cards */
- .info-card, .info-card-link, .care-highlight, .feature-card, .spec-item {
- background-color: rgba(245,241,232,0.04) !important;
- border-color: rgba(245,241,232,0.12) !important;
- }
- /* Ensure modal content stays readable — Steve's earlier sweep made it #141414 with white text */
- .modal-content { background: #141414 !important; color: #f5f1e8 !important; }
- .modal-content * { color: #f5f1e8 !important; }
- .modal-content input, .modal-content textarea, .modal-content select {
- background: rgba(245,241,232,0.05) !important;
- color: #f5f1e8 !important;
- border-color: rgba(245,241,232,0.2) !important;
- }
- .modal-content label { color: rgba(245,241,232,0.6) !important; }
- /* Force the wide-tracked NOVASUEDE wordmark to stay white */
- .ns-wordmark, .ns-wordmark sup { color: #f5f1e8 !important; }
-
- /* ─── Modal-internal contrast (post-QA defects) ─── */
- /* Backdrop covers full viewport */
- .modal { width: 100vw !important; height: 100vh !important; left: 0 !important; top: 0 !important; background: rgba(0, 0, 0, 0.78) !important; backdrop-filter: blur(6px); }
- /* Chip — flip from white-on-white island to dark card */
- .request-chip {
- background: rgba(245, 241, 232, 0.06) !important;
- color: #f5f1e8 !important;
- border: 1px solid rgba(245, 241, 232, 0.18) !important;
- border-radius: 4px !important;
- }
- .request-chip * { color: #f5f1e8 !important; }
- .request-chip .chip-swatch {
- /* swatch dot ALWAYS displays the inline-style hex from JS — fight any sweep */
- border: 1px solid rgba(0, 0, 0, 0.4) !important;
- }
- /* + Add to request — hairline white-border on transparent (no gold) */
- .add-to-request-btn {
- background: transparent !important;
- color: #f5f1e8 !important;
- border: 1px solid rgba(245, 241, 232, 0.6) !important;
- border-radius: 0 !important;
- padding: 12px 22px !important;
- font-size: 11px !important;
- letter-spacing: 0.32em !important;
- text-transform: uppercase !important;
- font-weight: 400 !important;
- }
- .add-to-request-btn:hover {
- background: #f5f1e8 !important;
- color: #0a0a0a !important;
- border-color: #f5f1e8 !important;
- }
- /* Hex caption visible */
- .preview-hex, #colorPreviewHex {
- display: block !important;
- color: rgba(245, 241, 232, 0.55) !important;
- font-family: ui-monospace, "SF Mono", Menlo, monospace !important;
- font-size: 11px !important;
- margin-top: 4px !important;
- letter-spacing: 0.04em !important;
- text-transform: lowercase !important;
- }
- /* Color preview name — stays single, prominent */
- #colorPreviewName {
- color: #f5f1e8 !important;
- font-size: 11px !important;
- letter-spacing: 0.32em !important;
- text-transform: uppercase !important;
- font-weight: 500 !important;
- display: block !important;
- margin-top: 12px !important;
- }
-
- /* ─── Mobile hamburger nav (replaces the overflow at <760px) ─── */
- @media (max-width: 760px) {
- header .nav-container { flex-wrap: wrap; }
- header nav { display: none; flex-basis: 100%; flex-direction: column; gap: 6px; padding: 16px 0 6px; }
- header nav.open { display: flex; }
- header nav a { padding: 10px 0; border-bottom: 1px solid rgba(245,241,232,0.1); }
- header .mobile-toggle {
- display: flex !important;
- flex-direction: column;
- gap: 5px;
- background: transparent;
- border: 0;
- cursor: pointer;
- padding: 8px;
- }
- header .mobile-toggle span {
- width: 22px; height: 1.5px;
- background: #f5f1e8;
- display: block;
- }
- }
- @media (min-width: 761px) {
- header .mobile-toggle { display: none !important; }
- }
-
- </style>
-<header class="ns-header">
- <a href="#home" class="ns-brand" aria-label="Studio Toten home">
- <span class="ns-dot"></span>
- <span class="ns-name">Studio Toten</span>
- </a>
- <nav class="ns-nav" id="nsPrimaryNav" aria-label="Primary">
- <a href="#home">Home</a>
- <a href="#colors">Colors</a>
- <a href="#specifications">Specifications</a>
- <a href="fire-ratings.html">Fire Ratings</a>
- <a href="faq.html">FAQ</a>
- <a href="about.html">About</a>
- <button type="button" onclick="nsContactOpen()">Contact</button>
- </nav>
- <button type="button" class="mobile-toggle" aria-label="Toggle menu" aria-controls="nsPrimaryNav" aria-expanded="false" onclick="nsToggleNav(this)">
- <span></span><span></span><span></span>
- </button>
- </header>
-<div class="ns-modal" id="nsContactModal" role="dialog" aria-modal="true" aria-labelledby="nsContactTitle" onclick="if(event.target===this)nsContactClose()">
- <div class="ns-modal-card">
- <button type="button" class="close-x" onclick="nsContactClose()" aria-label="Close">×</button>
- <h3 id="nsContactTitle">How can we help?</h3>
- <p class="sub">Trade-account replies within one business day.</p>
- <div class="ns-actions">
- <a class="ns-action" href="#contact" onclick="nsContactClose()"><span class="ico">📋</span><div class="txt"><b>Get a Quote</b><span>Project specs → priced estimate</span></div></a>
- <a class="ns-action" href="#contact" onclick="nsContactClose();openModal();"><span class="ico">📦</span><div class="txt"><b>Order a Sample</b><span>Free swatch to your shop</span></div></a>
- <a class="ns-action" href="mailto:info@novasuede.com?subject=Novasuede%20inquiry"><span class="ico">✉️</span><div class="txt"><b>Email Us</b><span>info@novasuede.com · Designer Wallcoverings</span></div></a>
- <a class="ns-action" href="tel:888-373-4564"><span class="ico">📞</span><div class="txt"><b>Call Us</b><span>(888) 373-4564 · M–F, 9–5 PT</span></div></a>
- </div>
- </div>
- </div>
-<script>
- function nsContactOpen() { var m = document.getElementById('nsContactModal'); if (m) m.classList.add('show'); }
- function nsContactClose() { var m = document.getElementById('nsContactModal'); if (m) m.classList.remove('show'); }
- function nsToggleNav(btn) {
- var nav = document.getElementById('nsPrimaryNav');
- if (!nav) return;
- var open = nav.classList.toggle('open');
- btn.setAttribute('aria-expanded', open ? 'true' : 'false');
- }
- document.addEventListener('keydown', function(e){ if (e.key === 'Escape') nsContactClose(); });
-</script>
-
-
-
-<header>
- <button class="h-link" onclick="dwmOpen('Contact')" aria-label="Contact"><svg class="h-icon" viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/></svg><span>Contact</span></button>
- <button class="theme-toggle" id="theme-toggle" aria-label="Theme toggle">☾</button>
-</header>
-
-<section class="cinema">
- <div class="cinema-bg" id="heroBg"></div>
- <div class="corner-mark">Specifier-Grade</div>
- <div class="center-mark">Architectural Wallcoverings</div>
- <div class="meta-line">Architectural · Specifier · Class A · Contract<span class="num" id="heroNum"></span></div>
- <a class="enter" href="#shop">Enter <svg viewBox="0 0 24 12" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M0 6h22M16 1l6 5-6 5"/></svg></a>
-</section>
-
-
-<section class="section" id="ideas">
- <div class="rail-block">
- <div class="rail-eyebrow">Ideas</div>
- <h2 class="rail-title">New this week</h2>
- <div class="rail" id="railNewest"></div>
- </div>
- <div class="rail-block">
- <div class="rail-eyebrow">Ideas</div>
- <h2 class="rail-title">Curated picks</h2>
- <div class="rail" id="railCurated"></div>
- </div>
-</section>
-
-<section class="section" id="shop">
- <div class="section-header">
- <div>
- <div class="section-eyebrow">The Collection</div>
- <h2 class="section-title"><span class="accent" id="totalCount">—</span> Patterns.</h2>
- </div>
- <div class="section-meta">Architectural · Specifier · Class A · Contract</div>
- </div>
-
- <div class="filters" id="facets">
- <button class="chip active" data-facet="all">All</button>
- </div>
-
- <div class="density">
- <label>Sort</label>
- <select id="sortSelect" aria-label="Sort products" style="background:transparent;color:inherit;border:1px solid var(--line,rgba(255,255,255,.2));font:inherit;font-size:11px;letter-spacing:.10em;text-transform:uppercase;padding:4px 8px;cursor:pointer;outline:none;margin-right:14px">
- <option value="newest">Newest</option>
- <option value="color">Color</option>
- <option value="style">Style</option>
- <option value="sku">SKU A→Z</option>
- <option value="title">Title A→Z</option>
- <option value="price-asc">Price ↑</option>
- <option value="price-desc">Price ↓</option>
- </select>
- <label>Grid</label>
- <input type="range" id="densitySlider" min="4" max="12" step="1" value="6" aria-label="Grid columns">
- <span class="ct" id="densityLabel">6 cols</span>
- <div class="search">
- <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-5.5-5.5"/></svg>
- <input type="text" id="searchInput" placeholder="Search by pattern, color…" autocomplete="off">
- </div>
- </div>
-
- <div class="stat-line" id="statLine">Loading…</div>
- <div class="grid" id="grid"></div>
- <div class="loading" id="loading">Loading more…</div>
- <div class="sentinel" id="sentinel"></div>
-</section>
-
-<footer>
- <div class="footer-grid">
- <div>
- <div class="footer-brand">Architectural Wallcoverings</div>
- <p class="footer-text">Architectural Wallcoverings is a specialty architectural archive within the Designer Wallcoverings family. Real samples ship free.</p>
- <p class="footer-text" style="margin-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;color:var(--paper);opacity:0.7"><a href="/about" style="color:inherit;text-decoration:none;border-bottom:1px solid var(--accent)">About →</a></p>
- </div>
- <div class="footer-col">
- <h4>Aesthetic</h4>
- <div id="footerFacets"></div>
- </div>
- <div class="footer-col">
- <h4>Trade</h4>
- <button onclick="dwmOpen('Inquiry')">Project Inquiry</button>
- <button onclick="dwmOpen('Sample')">Request Sample</button>
- <button onclick="dwmOpen('Contact')">Contact</button>
- </div>
-
- <div class="footer-col">
- <h4>Social</h4>
- <a class="fb-link" href="https://www.facebook.com/SteveAbramsDesigns.DesignerWallcoverings" target="_blank" rel="noopener">Facebook</a>
- </div>
- </div>
- <div class="footer-bottom">
- <span>architecturalwallcoverings.com · Studio Toten</span>
- <span><a href="mailto:info@architecturalwallcoverings.com" style="color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px">info@architecturalwallcoverings.com</a></span>
- <span id="footerStat"></span>
- </div>
-</footer>
-
-<script>
-// mini-constellation — 43 niche-stars, current site highlighted in gold
-(function(){
- const SLUG = "architecturalwallcoverings";
- const NICHES = [
- ['silkwallpaper','Silk','mat'],['silkwallcoverings','Silk W/C','mat'],['linenwallpaper','Linen','mat'],
- ['jutewallpaper','Jute','mat'],['raffiawallcoverings','Raffia W/C','mat'],['raffiawalls','Raffia Walls','mat'],
- ['corkwallcovering','Cork','mat'],['fabricwallpaper','Fabric','mat'],['textilewallpaper','Textile','mat'],
- ['metallicwallpaper','Metallic','mat'],['silverleafwallpaper','Silver Leaf','mat'],['vinylwallpaper','Vinyl','mat'],
- ['micawallpaper','Mica','mat'],['madagascarwallpaper','Madagascar','mat'],['mylarwallpaper','Mylar','mat'],
- ['suedewallpaper','Suede','mat'],
- ['1800swallpaper','1800s','dec'],['1890swallpaper','1890s','dec'],['1900swallpaper','1900s','dec'],
- ['1920swallpaper','1920s','dec'],['1930swallpaper','1930s','dec'],['1940swallpaper','1940s','dec'],
- ['1950swallpaper','1950s','dec'],['1960swallpaper','1960s','dec'],['1970swallpaper','1970s','dec'],
- ['1980swallpaper','1980s','dec'],['retrowalls','Retro','dec'],['wallpapersback','W. Back','dec'],
- ['agedwallpaper','Aged','cra'],['handcraftedwallpaper','Handcrafted','cra'],['museumwallpaper','Museum','cra'],
- ['restorationwallpaper','Restoration','cra'],['pastelwallpaper','Pastel','cra'],['glitterwalls','Glitter','cra'],
- ['greenwallcoverings','Green','cra'],['naturalwallcoverings','Natural','cra'],['saloonwallpaper','Saloon','cra'],
- ['contractwallpaper','Contract','use'],['hotelwallcoverings','Hotel','use'],['hospitalitywallpaper','Hospitality','use'],
- ['healthcarewallpaper','Healthcare','use'],['restaurantwallpaper','Restaurant','use'],['architecturalwallcoverings','Architectural','use']
- ];
- const COLOR = { mat:'#c9b687', dec:'#b86a4a', cra:'#6b8e6f', use:'#4a6b8e' };
- const W = 1080, H = 200, BANDS = ['mat','dec','cra','use'];
- const groups = { mat:[], dec:[], cra:[], use:[] };
- for (const n of NICHES) groups[n[2]].push(n);
- const svg = document.getElementById('miniConst');
- if (!svg) return;
- const bandW = W / BANDS.length;
- let nodes = '';
- BANDS.forEach((band, bi) => {
- const list = groups[band];
- const cx = bi * bandW + bandW / 2;
- list.forEach((n, i) => {
- const t = list.length === 1 ? 0.5 : i / (list.length - 1);
- // deterministic jitter per slug
- let h = 0; for (let k = 0; k < n[0].length; k++) h = (h * 31 + n[0].charCodeAt(k)) | 0;
- const jx = ((h & 0xff) / 255 - 0.5) * (bandW * 0.5);
- const jy = (((h >> 8) & 0xff) / 255 - 0.5) * 6; // tightened from 14 → 6 to prevent same-band collisions (16 mat nodes / 144px = 9px spacing)
- const x = cx + jx, y = 28 + t * (H - 56) + jy;
- const isCurrent = n[0] === SLUG;
- const r = isCurrent ? 8 : 4;
- const op = isCurrent ? 1 : 0.55;
- nodes += `<g class="mc-node" data-slug="${n[0]}" data-label="${n[1]}" style="cursor:pointer">
- <circle cx="${x}" cy="${y}" r="${r}" fill="url(#dna-${band})" fill-opacity="${op}" stroke="${COLOR[band]}" stroke-opacity="${isCurrent?1:0.7}" stroke-width="${isCurrent?2:1}">
- <title>${n[1]} — ${n[0]}.com</title>
- </circle>
- ${isCurrent ? `<circle cx="${x}" cy="${y}" r="${r+5}" fill="none" stroke="${COLOR[band]}" stroke-opacity="0.4" stroke-width="1"><animate attributeName="r" values="${r+5};${r+12};${r+5}" dur="2.4s" repeatCount="indefinite"/><animate attributeName="stroke-opacity" values="0.4;0;0.4" dur="2.4s" repeatCount="indefinite"/></circle>` : ''}
- </g>`;
- });
- });
- // append nodes after defs
- svg.insertAdjacentHTML('beforeend', nodes);
- svg.querySelectorAll('.mc-node').forEach(n => {
- n.addEventListener('mouseenter', () => n.querySelector('circle').setAttribute('fill-opacity', '1'));
- n.addEventListener('mouseleave', e => {
- const isCurrent = n.dataset.slug === SLUG;
- n.querySelector('circle').setAttribute('fill-opacity', isCurrent ? '1' : '0.55');
- });
- n.addEventListener('click', () => window.open('https://' + n.dataset.slug + '.com', '_blank'));
- });
-})();
-</script>
-
-<script>
-const state = { q:'', facet:'all', page:1, pages:1, total:0, loading:false, exhausted:false };
-const LABELS = {"all":"All"};
-
-function escAttr(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[c])); }
-// Image-URL allowlist: only DW Shopify CDN + designerwallcoverings.com (defends against XSS via crafted products.json)
-function safeImg(u) { return /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(u || '') ? u : '/hero-bg.jpg'; }
-function cardHTML(p) {
- const eager = state.page === 1;
- return '<img loading="' + (eager ? 'eager' : 'lazy') + '"' + (eager ? ' fetchpriority="high"' : '') + ' src="' + escAttr(safeImg(p.image_url)) + '" alt="' + escAttr(p.title) + '">'
- + '<div class="overlay">'
- + '<div class="pat">' + escAttr(p.pattern_name || p.title) + '</div>'
- + '<div class="ven">' + escAttr((p.vendor || '').replace(/-/g, ' ')) + '</div>'
- + '<div class="actions">'
- + '<button class="sample-btn" onclick="event.stopPropagation();dwmOpen(\'Sample\',' + JSON.stringify({sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}).replace(/"/g,'"') + ')">Sample</button>'
- + '</div></div>';
-}
-
-async function loadFacets() {
- let f;
- try {
- const r = await fetch('/api/facets');
- if (!r.ok) throw new Error('HTTP ' + r.status);
- f = await r.json();
- } catch (e) { console.error('loadFacets failed:', e); return; }
- const el = document.getElementById('facets');
- for (const [k, v] of Object.entries(f.aesthetics).sort((a,b) => b[1] - a[1])) {
- const b = document.createElement('button');
- b.className = 'chip'; b.dataset.facet = k;
- b.innerHTML = (LABELS[k] || k) + ' <span style="opacity:.55;font-weight:500;margin-left:4px">' + v + '</span>';
- el.appendChild(b);
- }
- el.addEventListener('click', e => {
- if (e.target.tagName !== 'BUTTON') return;
- document.querySelectorAll('#facets button').forEach(b => b.classList.remove('active'));
- e.target.classList.add('active');
- state.facet = e.target.dataset.facet;
- resetGrid();
- });
- document.getElementById('totalCount').textContent = f.total;
- document.getElementById('footerStat').textContent = f.total + ' patterns · live archive';
- // Footer aesthetic links
- const footerEl = document.getElementById('footerFacets');
- for (const [k] of Object.entries(f.aesthetics)) {
- const b = document.createElement('button');
- b.textContent = LABELS[k] || k;
- b.onclick = () => { state.facet = k; resetGrid(); document.querySelectorAll('#facets button').forEach(x => x.classList.toggle('active', x.dataset.facet === k)); document.getElementById('shop').scrollIntoView({behavior:'smooth'}); };
- footerEl.appendChild(b);
- }
-}
-
-function resetGrid() {
- state.page = 1; state.exhausted = false;
- document.getElementById('grid').innerHTML = '';
- document.getElementById('loading').textContent = 'Loading…';
- loadGridPage();
-}
-
-async function loadGridPage() {
- if (state.loading || state.exhausted) return;
- state.loading = true;
- const params = new URLSearchParams({ page:state.page, limit:24 });
- if (state.q) params.set('q', state.q);
- if (state.facet !== 'all') params.set('aesthetic', state.facet);
- let data;
- try {
- const r = await fetch('/api/products?' + params);
- if (!r.ok) throw new Error('HTTP ' + r.status);
- data = await r.json();
- } catch (e) {
- console.error('loadGridPage failed:', e);
- document.getElementById('loading').textContent = '— offline — refresh to retry —';
- state.loading = false;
- return;
- }
- state.total = data.total; state.pages = data.pages;
-
- if (state.page === 1) {
- document.getElementById('statLine').textContent = data.total + ' patterns · ' + (state.facet === 'all' ? 'all aesthetics' : (LABELS[state.facet] || state.facet)) + (state.q ? ' · matching "' + state.q + '"' : '');
- }
- const grid = document.getElementById('grid');
- for (const p of data.items) {
- const a = document.createElement('a');
- a.className = 'card'; a.href = '#'; a.onclick = (e) => { e.preventDefault(); dwmOpen('Sample',{sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}); };
- a.innerHTML = cardHTML(p);
- grid.appendChild(a);
- }
- if (state.page >= state.pages || data.items.length === 0) {
- state.exhausted = true;
- document.getElementById('loading').textContent = state.total > 0 ? '— end of archive · ' + state.total + ' patterns —' : '';
- } else state.page++;
- state.loading = false;
-}
-
-const io = new IntersectionObserver(es => { for (const e of es) if (e.isIntersecting) loadGridPage(); }, { rootMargin:'600px 0px' });
-io.observe(document.getElementById('sentinel'));
-
-document.getElementById('searchInput').addEventListener('input', e => {
- state.q = e.target.value.trim();
- clearTimeout(window._t);
- window._t = setTimeout(resetGrid, 220);
-});
-
-// Density slider
-const slider = document.getElementById('densitySlider');
-const dlabel = document.getElementById('densityLabel');
-function setDensity(n) {
- document.documentElement.style.setProperty('--cols', n);
- dlabel.textContent = n + ' cols';
- try { localStorage.setItem('arch_theme_density', n); } catch(e){}
-}
-slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
-const savedDensity = parseInt(localStorage.getItem('arch_theme_density') || '6');
-if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
-
-// Theme toggle
-const tb = document.getElementById('theme-toggle');
-function setTheme(t){ document.documentElement.dataset.theme = t; try { localStorage.setItem('arch_theme', t); } catch(e){} tb.textContent = t === 'dark' ? '☾' : '☀'; }
-setTheme(document.documentElement.dataset.theme || 'light');
-tb.addEventListener('click', () => setTheme(document.documentElement.dataset.theme === 'dark' ? 'light' : 'dark'));
-
-loadFacets();
-loadGridPage();
-</script>
-<!-- ============================================================
- DW UNIVERSAL CONTACT MODULE — fashion-house UX
- Inject before </body> in every DW-family sister site.
- Self-contained: CSS + 4 modals + JS submission handlers.
- Uses host site's CSS vars (--bg, --fg, --gold, --rule).
- ============================================================ -->
-<style>
- /* === MODAL BASE === */
- .dwm{position:fixed;inset:0;background:rgba(0,0,0,0.78);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;overflow-y:auto}
- .dwm.open{display:flex}
- .dwm-box{background:var(--bg);border:1px solid var(--rule);max-width:520px;width:100%;padding:36px 32px;position:relative;max-height:90vh;overflow-y:auto;animation:dwm-in 0.25s ease}
- @keyframes dwm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
- .dwm-box h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;font-size:32px;line-height:1.05;margin-bottom:6px;color:var(--fg);letter-spacing:-0.01em}
- .dwm-box .sub{color:var(--muted);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
- .dwm-close{position:absolute;top:18px;right:18px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;width:32px;height:32px;line-height:1;padding:0}
- .dwm-close:hover{color:var(--gold)}
- .dwm-preview{display:flex;gap:14px;align-items:center;padding:12px;background:var(--bg-soft);margin-bottom:18px}
- .dwm-preview img{width:64px;height:64px;object-fit:cover}
- .dwm-preview .pn{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;line-height:1.2;color:var(--fg)}
- .dwm-preview .pc{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
- .dwm-field{margin-bottom:14px}
- .dwm-field label{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
- .dwm-field input,.dwm-field textarea,.dwm-field select{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:8px 4px;font-size:14px;font-family:inherit;color:var(--fg);outline:none;transition:border-color 0.2s}
- .dwm-field input:focus,.dwm-field textarea:focus{border-bottom-color:var(--gold)}
- .dwm-field textarea{min-height:60px;resize:vertical}
- .dwm-submit{background:transparent;color:var(--muted, #c9b89e);border:1px solid var(--muted, #c9b89e);padding:14px 28px;font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:700;cursor:pointer;width:100%;margin-top:8px;transition:background 0.15s, color 0.15s}
- .dwm-submit:hover{background:var(--muted, #c9b89e);color:var(--bg, #000)}
-
- .dwm-submit:disabled{opacity:0.5;cursor:default}
- .dwm-status{margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;display:none}
- .dwm-status.ok{color:var(--sage);display:block}
- .dwm-status.err{color:#e08070;display:block}
- /* contact-options */
- .dwm-options{display:flex;flex-direction:column;gap:10px}
- .dwm-option{display:flex;align-items:center;gap:14px;padding:18px 20px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;transition:all 0.2s;text-align:left;width:100%}
- .dwm-option:hover{border-color:var(--gold);color:var(--gold)}
- .dwm-option svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}
- .dwm-option .lbl{flex:1;display:block}
- .dwm-option .val{display:block;font-size:10px;letter-spacing:0.14em;text-transform:none;font-weight:500;opacity:0.65;margin-top:4px}
-
-/* graphics-loop pass 5: serif hero typography + nav legibility */
-.cinema h1, h1.headline { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; letter-spacing: -0.01em }
-.h-link { font-size: 13px; letter-spacing: 0.06em }
-
-/* graphics-loop pass 11: Ideas rails */
-#ideas { padding: 56px 24px 24px; max-width:1600px; margin:0 auto }
-#ideas .rail-block { margin-bottom:48px }
-#ideas .rail-eyebrow { font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:var(--muted, #888); margin-bottom:8px }
-#ideas .rail-title { font-size:clamp(22px,2.6vw,32px); font-weight:500; letter-spacing:-0.01em; margin:0 0 18px; color:var(--ink,#fff) }
-#ideas .rail { display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:8px; scrollbar-width:none }
-#ideas .rail::-webkit-scrollbar { display:none }
-#ideas .rail-card { flex:0 0 240px; scroll-snap-align:start; cursor:pointer; transition:transform 0.2s }
-#ideas .rail-card:hover { transform:translateY(-3px) }
-#ideas .rail-card img { width:100%; aspect-ratio:1; object-fit:cover; display:block; background:var(--card,#222) }
-#ideas .rail-card .rc-title { font-size:13px; font-weight:500; color:var(--paper,#fff); padding:8px 0 2px; line-height:1.3 }
-#ideas .rail-card .rc-meta { font-size:11px; color:var(--muted,#888); letter-spacing:0.06em }
-@media (max-width:720px) { #ideas .rail-card { flex:0 0 160px } }
-</style>
-
-<!-- Contact options modal -->
-<div class="dwm" id="dwmContact" onclick="if(event.target===this)dwmClose('Contact')">
- <div class="dwm-box" style="max-width:440px">
- <button class="dwm-close" onclick="dwmClose('Contact')" aria-label="Close">×</button>
- <h3>Contact</h3>
- <p class="sub" id="dwmContactSub">Three ways to reach us</p>
- <div class="dwm-options">
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Inquiry')">
- <svg viewBox="0 0 24 24"><path d="M4 4h16v12H7l-3 3z"/></svg>
- <span class="lbl">Send an Inquiry<span class="val">Project name · scope · all the details</span></span>
- </button>
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Sample')">
- <svg viewBox="0 0 24 24"><rect x="4" y="6" width="16" height="14"/><path d="M4 10h16M9 6V3h6v3"/></svg>
- <span class="lbl">Request a Sample<span class="val">Memo sample · ships free · 3–5 business days</span></span>
- </button>
- <a class="dwm-option" id="dwmContactEmailLink" href="mailto:info@architecturalwallcoverings.com">
- <svg viewBox="0 0 24 24"><path d="M3 6h18v12H3z"/><path d="M3 6l9 7 9-7"/></svg>
- <span class="lbl">Email Us<span class="val" id="dwmContactEmailLabel">info@architecturalwallcoverings.com</span></span>
- </a>
- </div>
- </div>
-</div>
-
-<!-- Inquiry modal -->
-<div class="dwm" id="dwmInquiry" onclick="if(event.target===this)dwmClose('Inquiry')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Inquiry')" aria-label="Close">×</button>
- <h3>Project Inquiry</h3>
- <p class="sub">We'll respond within one business day</p>
- <form id="dwmInquiryForm" onsubmit="return dwmSubmit(event,'inquiry')">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Phone</label><input type="tel" name="phone"></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Project Name</label><input type="text" name="projectName" required></div>
- <div class="dwm-field"><label>Project Scope</label><textarea name="projectScope" placeholder="Square footage · room count · timeline" required></textarea></div>
- <div class="dwm-field"><label>Additional Information</label><textarea name="message" placeholder="Patterns of interest, finish preferences, budget"></textarea></div>
- <button type="submit" class="dwm-submit">Send Inquiry</button>
- <div class="dwm-status" id="dwmInquiryStatus"></div>
- </form>
- </div>
-</div>
-
-<!-- Sample-request modal -->
-<div class="dwm" id="dwmSample" onclick="if(event.target===this)dwmClose('Sample')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Sample')" aria-label="Close">×</button>
- <h3>Request a Sample</h3>
- <p class="sub">Memo sample · ships free · 3–5 business days</p>
- <div class="dwm-preview" id="dwmSamplePreview" style="display:none">
- <img id="dwmSampleImg" src="" alt="">
- <div><div class="pn" id="dwmSampleName"></div><div class="pc" id="dwmSampleSku"></div></div>
- </div>
- <form id="dwmSampleForm" onsubmit="return dwmSubmit(event,'sample')">
- <input type="hidden" name="sku" id="dwmSampleSkuInput">
- <input type="hidden" name="title" id="dwmSampleTitleInput">
- <input type="hidden" name="image_url" id="dwmSampleImageInput">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Shipping Address</label><input type="text" name="address" placeholder="Street" required></div>
- <div class="dwm-field" style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px">
- <input type="text" name="city" placeholder="City" required>
- <input type="text" name="state" placeholder="State" required>
- <input type="text" name="zip" placeholder="ZIP" required>
- </div>
- <div class="dwm-field"><label>Notes (optional)</label><textarea name="message" placeholder="Project, sq.ft., timing"></textarea></div>
- <button type="submit" class="dwm-submit">Send Sample Request</button>
- <div class="dwm-status" id="dwmSampleStatus"></div>
- </form>
- </div>
-</div>
-
-<script>
- // Universal modal control
- function dwmOpen(name, opts){
- document.getElementById('dwm' + name).classList.add('open');
- document.body.style.overflow = 'hidden';
- if (name === 'Sample' && opts) {
- document.getElementById('dwmSamplePreview').style.display = 'flex';
- document.getElementById('dwmSampleImg').src = opts.image_url || '';
- document.getElementById('dwmSampleName').textContent = opts.title || '';
- document.getElementById('dwmSampleSku').textContent = opts.sku || '';
- document.getElementById('dwmSampleSkuInput').value = opts.sku || '';
- document.getElementById('dwmSampleTitleInput').value = opts.title || '';
- document.getElementById('dwmSampleImageInput').value = opts.image_url || '';
- } else if (name === 'Sample') {
- document.getElementById('dwmSamplePreview').style.display = 'none';
- document.getElementById('dwmSampleSkuInput').value = '';
- document.getElementById('dwmSampleTitleInput').value = '';
- document.getElementById('dwmSampleImageInput').value = '';
- }
- }
- function dwmClose(name){ document.getElementById('dwm'+name).classList.remove('open'); document.body.style.overflow=''; }
-
- // Universal form submit — POSTs to /api/send-{kind}
- async function dwmSubmit(e, kind) {
- e.preventDefault();
- const form = e.target;
- const data = Object.fromEntries(new FormData(form).entries());
- const btn = form.querySelector('.dwm-submit');
- const status = form.querySelector('.dwm-status');
- btn.disabled = true; const orig = btn.textContent; btn.textContent = 'Sending…';
- status.className = 'dwm-status';
- try {
- const r = await fetch('/api/send-' + kind, { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
- if (!r.ok) throw new Error('HTTP '+r.status);
- const j = await r.json();
- status.textContent = kind === 'sample' ? 'Sample request sent — ships within 3–5 business days' : 'Inquiry sent — we respond within 1 business day';
- status.className = 'dwm-status ok';
- btn.textContent = 'Sent ✓';
- setTimeout(() => { dwmClose(kind === 'sample' ? 'Sample' : 'Inquiry'); btn.disabled = false; btn.textContent = orig; status.className = 'dwm-status'; form.reset(); }, 2800);
- } catch (err) {
- status.textContent = 'Send failed — please email info@designerwallcoverings.com';
- status.className = 'dwm-status err';
- btn.disabled = false; btn.textContent = orig;
- }
- return false;
- }
-
- // Wire up "Memo samples ship free" badge in hero to open sample modal directly
- document.querySelectorAll('.hero .badge, [data-open-sample]').forEach(el => {
- el.style.cursor = 'pointer';
- el.addEventListener('click', () => dwmOpen('Sample'));
- });
-
- // Wire nav "Trade" link to inquiry modal
- document.querySelectorAll('nav a[href*="designerwallcoverings.com"]').forEach(a => {
- a.removeAttribute('target');
- a.removeAttribute('href');
- a.style.cursor = 'pointer';
- a.addEventListener('click', e => { e.preventDefault(); dwmOpen('Contact'); });
- });
-
- // Override product card clicks — open Sample modal pre-filled instead of redirecting to DW
- document.addEventListener('click', e => {
- const card = e.target.closest('.card, .rail-card');
- if (!card) return;
- if (card.tagName === 'A' && (card.getAttribute('href') || '').startsWith('/sample/')) {
- e.preventDefault();
- const img = card.querySelector('img');
- const pat = card.querySelector('.pat');
- const sku = card.getAttribute('href').replace('/sample/', '');
- dwmOpen('Sample', {
- sku,
- title: pat ? pat.textContent.trim() : '',
- image_url: img ? img.src : ''
- });
- }
- }, true);
-// DW STANDARD: hero pulls from products.json[0].image_url so dw-collections-viewer
-// drag-drop / hero-pin updates the live front page on next deploy.
-// Always upgrades to the largest Shopify variant (strips _NxN size suffix) so
-// the full-page hero stays sharp.
-// DW STANDARD: hero rotates through top-20 NEWEST products on each visit
-// (novasuede.com pattern). Fetches /api/products?limit=100, sorts by created_at desc,
-// takes the freshest 20, picks one per visit via localStorage counter.
-// Falls back to static /hero-bg.jpg on any error.
-(async function rotateHero() {
- try {
- const r = await fetch('/api/products?limit=100');
- if (!r.ok) return;
- const d = await r.json();
- const items = (d.items || [])
- .filter(p => p && p.image_url && /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(p.image_url))
- .sort((a,b) => String(b.created_at || '').localeCompare(String(a.created_at || '')))
- .slice(0, 20);
- if (!items.length) return;
- let visits = 0;
- try {
- visits = parseInt(localStorage.getItem('hero_visits') || '0', 10) || 0;
- localStorage.setItem('hero_visits', String(visits + 1));
- } catch(e) {}
- const pick = items[visits % items.length];
- // Strip _NxN size suffix to get the largest CDN variant
- const url = pick.image_url.replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- const bg = document.getElementById('heroBg') || document.getElementById('cinemaBg');
- if (bg) bg.style.backgroundImage = "url('" + url + "')";
- } catch (e) {}
-})();
-
-
-// DW STANDARD sort-select wire-up (added by fleet patcher)
-(function(){
- const sortSel = document.getElementById('sortSelect');
- if (!sortSel) return;
- const KEY = location.hostname.replace(/\./g, '_') + '_sort';
- const saved = localStorage.getItem(KEY);
- if (saved) { try { sortSel.value = saved; } catch(e){} }
- if (typeof state !== 'undefined') state.sort = sortSel.value;
- sortSel.addEventListener('change', e => {
- const v = e.target.value;
- try { localStorage.setItem(KEY, v); } catch(e){}
- if (typeof state !== 'undefined') state.sort = v;
- if (typeof resetGrid === 'function') resetGrid();
- else location.reload();
- });
-})();
-
-// graphics-loop pass 11: hydrate Ideas rails from /api/products
-(async function hydrateIdeas() {
- try {
- const r = await fetch('/api/products?limit=80');
- if (!r.ok) return;
- const d = await r.json();
- const items = (d.items || []).filter(p => p && p.image_url);
- if (!items.length) return;
- const sorted = [...items].sort((a,b) => String(b.created_at || '').localeCompare(String(a.created_at || '')));
- const newest = sorted.slice(0, 12);
- // Curated = deterministic offset slice (every 5th item starting at idx 3) for variety
- const curated = items.filter((_, i) => i % 5 === 3).slice(0, 12);
- function card(p) {
- const url = (p.image_url || '').replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- return '<a class="rail-card" href="/sample/' + encodeURIComponent(p.handle || p.sku) + '">' +
- '<img src="' + url + '" alt="' + (p.title || '').replace(/"/g, '"') + '" loading="lazy">' +
- '<div class="rc-title">' + ((p.title || '').split('|')[0] || '').trim() + '</div>' +
- '<div class="rc-meta">' + (p.vendor || '') + '</div>' +
- '</a>';
- }
- const r1 = document.getElementById('railNewest');
- const r2 = document.getElementById('railCurated');
- if (r1) r1.innerHTML = newest.map(card).join('');
- if (r2) r2.innerHTML = curated.map(card).join('');
- } catch(e) {}
-})();
-</script>
-
-</body>
-</html>
diff --git a/public/index.html.bak.nspropagate.1778209715019 b/public/index.html.bak.nspropagate.1778209715019
deleted file mode 100644
index 38d7295..0000000
--- a/public/index.html.bak.nspropagate.1778209715019
+++ /dev/null
@@ -1,969 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
-<meta charset="utf-8">
-<!-- Google tag (gtag.js) -->
-<script async src="https://www.googletagmanager.com/gtag/js?id=G-PN839G9FD8"></script>
-<script>
- window.dataLayer = window.dataLayer || [];
- function gtag(){dataLayer.push(arguments);}
- gtag('js', new Date());
- gtag('config', 'G-PN839G9FD8');
-</script>
-
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>Studio Toten — architectural. Useful.</title>
-<meta name="description" content="Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.">
-<meta name="theme-color" content="#F5F2ED">
-<link rel="canonical" href="https://architecturalwallcoverings.com/">
-<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&display=swap" rel="stylesheet">
-<link rel="preload" as="image" href="/hero-bg.jpg" fetchpriority="high">
-<script type="application/ld+json">
-{
- "@context": "https://schema.org",
- "@type": "Organization",
- "name": "Studio Toten",
- "url": "https://architecturalwallcoverings.com/",
- "email": "info@architecturalwallcoverings.com"
-}
-</script>
-<script src="/zd-loader.js" defer></script>
-<style>
-:root {
- --bg: #F5F2ED;
- --paper: #1A1A1A;
- --muted: #8B7866;
- --line: #D5CFC4;
- --accent: #1A1A1A;
- --bg-soft: #D5CFC4;
- --cols: 6;
-}
-html[data-theme="dark"] {
- --bg: #1a1410;
- --paper: #F5F2ED;
- --muted: #C9B89E;
- --line: rgba(255,254,250,0.12);
- --accent: #1A1A1A;
- --bg-soft: #2a1f15;
-}
-* { margin:0; padding:0; box-sizing:border-box }
-html { scroll-behavior:smooth }
-body { font-family:'Inter', sans-serif; color:var(--paper); -webkit-font-smoothing:antialiased; background:var(--bg); min-height:100vh; overflow-x:hidden }
-/* DW-FASHION-TEMPLATE-OVERRIDE */
-.section-title .accent, .footer-brand, .center-mark, h1, h2, h3 { font-family:'Inter', Georgia, serif !important; font-weight:400 !important; }
-
-/* ===== Auto-hide header ===== */
-header { position:fixed; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 32px; z-index:100; background:rgba(0,0,0,0.55); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:transform .3s }
-.h-link { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); text-decoration:none; cursor:pointer; background:transparent; border:0 }
-.h-link:hover { opacity:0.7 }
-.h-icon { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }
-
-/* ===== Cinema hero ===== */
-.cinema { position:relative; height:100vh; width:100%; overflow:hidden }
-.cinema-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-image:url('/hero-bg.jpg') }
-.cinema-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.75) 100%) }
-.corner-mark { position:absolute; top:24px; left:32px; font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,0.55), 0 0 1px rgba(0,0,0,0.4); z-index:5 }
-.corner-mark::before { content:"◆ "; margin-right:6px }
-.center-mark { position:absolute; top:clamp(80px,12vh,140px); left:50%; transform:translateX(-50%); font-size:clamp(28px,4vw,56px); font-weight:500; letter-spacing:0.18em; text-transform:uppercase; text-align:center; color:#fff; text-shadow:0 2px 8px rgba(0,0,0,0.65), 0 0 1px rgba(0,0,0,0.5); z-index:5 }
-.center-mark .tm { font-size:14px; vertical-align:super; opacity:0.7; margin-left:0.2em }
-.center-mark .sub { display:block; font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400; font-size:0.4em; letter-spacing:0.04em; text-transform:none; margin-top:14px; opacity:0.85 }
-.meta-line { position:absolute; bottom:32px; left:32px; font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:700; color:#fff; z-index:5; opacity:0.85 }
-.meta-line .num { font-size:12px; display:block; margin-top:4px; letter-spacing:0.05em }
-.enter { position:absolute; bottom:32px; right:32px; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:0.36em; text-transform:uppercase; font-weight:700; color:#fff; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #fff; transition:gap 0.25s; z-index:5 }
-.enter:hover { gap:22px }
-.enter svg { width:24px; height:12px }
-
-/* ===== Section ===== */
-.section { padding:96px 32px }
-.section-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--line) }
-.section-title { font-size:clamp(36px,5vw,64px); font-weight:300; letter-spacing:-0.02em; line-height:1 }
-.section-title .accent { color: var(--accent); font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400 }
-.section-eyebrow { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:16px }
-.section-meta { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--muted); text-align:right; line-height:1.6 }
-
-/* ===== Filter bar ===== */
-.filters { display:flex; gap:8px; align-items:center; margin-bottom:18px; flex-wrap:wrap }
-.chip { padding:8px 16px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); background:transparent; border:1px solid var(--line); cursor:pointer; transition:all 0.2s; font-family:inherit }
-.chip:hover { border-color:var(--paper) }
-.chip.active { background:var(--paper); color:var(--bg); border-color:var(--paper) }
-.search { flex:0 1 280px; margin-left:auto; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:6px 0 }
-.search input { flex:1; background:transparent; border:0; color:var(--paper); font-family:inherit; font-size:13px; outline:none; letter-spacing:0.04em }
-.search input::placeholder { color:var(--muted) }
-.search svg { width:16px; height:16px; stroke:var(--muted); fill:none; stroke-width:1.5 }
-
-/* ===== Grid-density slider ===== */
-.density { display:flex; align-items:center; gap:14px; padding:6px 0; margin-bottom:24px }
-.density label { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--muted) }
-.density input[type=range] { flex:1; max-width:240px; -webkit-appearance:none; appearance:none; height:1px; background:var(--line); outline:none }
-.density input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50% }
-.density input[type=range]::-moz-range-thumb { width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50%; border:0 }
-.density .ct { font-size:11px; color:var(--muted); letter-spacing:0.18em; text-transform:uppercase; font-weight:600; min-width:80px }
-
-/* ===== Stats line ===== */
-.stat-line { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:24px }
-
-/* ===== Product grid (novasuede pattern: flush grid + slide-up overlay) ===== */
-.grid { display:grid; grid-template-columns:repeat(var(--cols), 1fr); gap:0 }
-.card { position:relative; aspect-ratio:1/1.15; cursor:pointer; overflow:hidden; border:1px solid var(--bg); transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1); background:var(--bg-soft) }
-.card:hover { transform:scale(1.04); z-index:5 }
-.card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease }
-.card .overlay { position:absolute; left:0; right:0; bottom:0; padding:20px 16px 14px; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%); transform:translateY(48%); opacity:0.85; transition:transform 0.3s ease, opacity 0.3s ease }
-.card:hover .overlay { transform:translateY(0); opacity:1 }
-.card .pat { font-size:13px; font-weight:600; letter-spacing:0.02em; color:#fff; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
-.card .ven { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#fff; opacity:0.7; font-weight:500; margin-top:4px }
-.card .actions { margin-top:10px; display:flex; gap:6px }
-.card .sample-btn { flex:1; padding:7px 10px; background:#fff; color:#000; font-family:inherit; font-size:10px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; border:0; cursor:pointer; text-align:center; transition:all 0.2s }
-.card .sample-btn:hover { background:var(--accent); color:#fff }
-
-@media (max-width:1024px) { .grid { grid-template-columns:repeat(min(var(--cols), 4), 1fr) } }
-@media (max-width:720px) { .grid { grid-template-columns:repeat(2, 1fr) } .density { display:none } }
-
-.sentinel { height:1px }
-.loading { text-align:center; color:var(--muted); padding:32px; font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700 }
-
-/* ===== Footer ===== */
-footer { padding:64px 32px 32px; border-top:1px solid var(--line); margin-top:32px }
-.footer-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; margin-bottom:48px }
-.footer-brand { font-size:24px; font-weight:300; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:12px }
-.footer-text { font-size:13px; line-height:1.6; color:var(--muted); max-width:380px }
-.footer-col h4 { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--paper); margin-bottom:18px }
-.footer-col a { display:block; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:8px; transition:color 0.2s; cursor:pointer; background:transparent; border:0; font-family:inherit; padding:0; text-align:left }
-.footer-col a:hover { color:var(--accent) }
-.footer-bottom { max-width:1400px; margin:0 auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted) }
-
-@media (max-width:720px) {
- .corner-mark, .meta-line, .enter { font-size:10px }
- .center-mark { font-size:24px; letter-spacing:0.12em; top:clamp(60px,9vh,90px) }
- .section, footer { padding-left:20px; padding-right:20px }
- .footer-grid { grid-template-columns:1fr; gap:32px }
- .search { margin-left:0; flex:1 1 100% }
-}
-
-.theme-toggle { background:transparent; border:1px solid var(--line); width:32px; height:32px; cursor:pointer; color:var(--paper); display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; transition:all .15s; padding:0 }
-.theme-toggle:hover { border-color:var(--accent); color:var(--accent) }
-
-/* ===== WCAG 2.4.7 — keyboard focus indicators ===== */
-/* Strictly :focus-visible so mouse clicks do NOT show the ring */
-a:focus-visible,
-button:focus-visible,
-input:focus-visible,
-select:focus-visible,
-textarea:focus-visible,
-[tabindex]:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
-}
-</style>
-<script>
-(function(){ try { var t = localStorage.getItem('arch_theme') || 'light'; document.documentElement.dataset.theme = t; } catch(e){} })();
-</script>
-<link rel="preconnect" href="https://fonts.googleapis.com">
-<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap">
-
-<meta property="og:type" content="website">
-<meta property="og:url" content="https://architecturalwallcoverings.com/">
-<meta property="og:title" content="Architectural Wallcoverings">
-<meta property="og:description" content="Architectural Wallcoverings — Class A specifier-grade architectural wallcoverings.">
-<meta property="og:image" content="https://architecturalwallcoverings.com/hero-bg.jpg">
-<meta property="og:site_name" content="Architectural Wallcoverings">
-<meta property="article:publisher" content="https://www.facebook.com/SteveAbramsDesigns.DesignerWallcoverings">
-<meta name="twitter:card" content="summary_large_image">
-<meta name="twitter:title" content="Architectural Wallcoverings">
-<meta name="twitter:description" content="Architectural Wallcoverings — Class A specifier-grade architectural wallcoverings.">
-<meta name="twitter:image" content="https://architecturalwallcoverings.com/hero-bg.jpg">
-<!-- graphics-loop pass 13: footer + fb -->
-</head>
-<body>
-<style id="ns-header-modal-styles">
- .ns-header { position: sticky; top: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; padding: 18px 36px; background: rgba(10,10,10,0.92) !important; backdrop-filter: blur(8px); border-bottom: 1px solid rgba(245,241,232,0.06); }
- .ns-brand { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; }
- .ns-dot { width: 28px; height: 28px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #a98b5b 0%, #5d4c32 60%, #332a1b 100%); box-shadow: 0 0 0 1px rgba(245,241,232,0.10), 0 2px 12px rgba(180,90,60,0.30); flex-shrink: 0; }
- .ns-name { font-family: -apple-system, "SF Pro Display", "Helvetica Neue", system-ui, sans-serif; font-size: 18px !important; font-weight: 300 !important; letter-spacing: 0.02em !important; color: #f5f1e8 !important; text-transform: none !important; margin: 0 !important; }
- .ns-name sup { font-size: 0.55em; font-weight: 300; margin-left: 1px; }
- .ns-nav { display: flex; gap: 32px; align-items: center; list-style: none; padding: 0; margin: 0; }
- .ns-nav a, .ns-nav button { font-family: -apple-system, "SF Pro Text", system-ui, sans-serif; font-size: 15px !important; font-weight: 400 !important; color: #f5f1e8 !important; text-decoration: none !important; background: none !important; border: 0 !important; cursor: pointer; padding: 0 !important; transition: color 200ms; letter-spacing: 0 !important; text-transform: none !important; }
- .ns-nav a:hover, .ns-nav button:hover { color: #ffffff !important; }
- @media (max-width: 820px) { .ns-header { padding: 14px 18px; } .ns-nav { gap: 16px; } .ns-nav a, .ns-nav button { font-size: 13px !important; } }
- @media (max-width: 760px) {
- .ns-header { flex-wrap: wrap; }
- .ns-nav { display: none !important; flex-basis: 100%; flex-direction: column; align-items: flex-start; gap: 6px; padding: 14px 0 4px; }
- .ns-nav.open { display: flex !important; }
- .ns-nav a, .ns-nav button { padding: 10px 0 !important; border-bottom: 1px solid rgba(245,241,232,0.08); width: 100%; text-align: left; }
- .ns-nav a:nth-child(n+5), .ns-nav button:nth-child(n+5) { display: block !important; }
- .ns-header .mobile-toggle { display: flex !important; }
- }
- @media (min-width: 761px) {
- .ns-header .mobile-toggle { display: none !important; }
- }
- .ns-modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.78); z-index: 200; align-items: center; justify-content: center; padding: 24px; backdrop-filter: blur(6px); }
- .ns-modal.show { display: flex; }
- .ns-modal-card { max-width: 460px; width: 100%; background: #141414 !important; border: 1px solid rgba(245,241,232,0.14); border-radius: 6px; padding: 28px 30px 30px; position: relative; }
- .ns-modal-card .close-x { position: absolute; top: 12px; right: 14px; width: 30px; height: 30px; background: none; border: 1px solid rgba(245,241,232,0.18); color: rgba(245,241,232,0.6) !important; border-radius: 50%; cursor: pointer; font-size: 14px; display: flex; align-items: center; justify-content: center; }
- .ns-modal-card .close-x:hover { color: #ffffff !important; border-color: #ffffff; }
- .ns-modal-card h3 { font-family: -apple-system, "SF Pro Display", system-ui; font-weight: 300 !important; font-size: 22px !important; margin: 0 0 6px !important; color: #f5f1e8 !important; }
- .ns-modal-card .sub { color: rgba(245,241,232,0.65) !important; font-size: 13px; margin: 0 0 22px; }
- .ns-actions { display: flex; flex-direction: column; gap: 10px; }
- .ns-action { display: flex; align-items: center; gap: 14px; padding: 14px 16px; background: rgba(245,241,232,0.04) !important; border: 1px solid rgba(245,241,232,0.12) !important; color: #f5f1e8 !important; text-decoration: none !important; cursor: pointer; transition: all 200ms; font: inherit; text-align: left; }
- .ns-action:hover { background: rgba(245,241,232,0.08) !important; border-color: #d4b683 !important; }
- .ns-action .ico { width: 32px; height: 32px; border-radius: 50%; background: rgba(212,182,131,0.12); display: flex; align-items: center; justify-content: center; font-size: 15px; flex-shrink: 0; }
- .ns-action .txt { flex: 1; }
- .ns-action .txt b { display: block; font-weight: 500; font-size: 14px; color: #f5f1e8 !important; }
- .ns-action .txt span { font-size: 12px; color: rgba(245,241,232,0.55) !important; }
-
- /* ─── FINAL CONTRAST PASS — kill remaining gold-solid + white-island defects ─── */
- /* Replace all gold-fill accents with off-white (Gucci-aesthetic, no DW gold solids) */
- .new-badge, .new-arrivals-pill,
- .color-filter-btn.active,
- .drapery-btn, .sample-btn-chip, .cb-cta {
- background: #f5f1e8 !important;
- color: #0a0a0a !important;
- border-color: #f5f1e8 !important;
- }
- .new-badge:hover, .new-arrivals-pill:hover,
- .color-filter-btn.active:hover,
- .drapery-btn:hover, .sample-btn-chip:hover, .cb-cta:hover {
- background: #fff !important;
- color: #0a0a0a !important;
- }
- /* Gold accents stay only as edge color (links, glyphs) — not fills */
- a { color: #d4b683; }
- a:hover { color: #f5d97a; }
- /* Authorized-dealer footer line — small caps tracked, muted ink, no gold pill */
- .authorized, .authorized-dealer p {
- background: transparent !important;
- color: rgba(245,241,232,0.5) !important;
- font-size: 10px !important;
- letter-spacing: 0.22em !important;
- text-transform: uppercase !important;
- padding: 0 !important;
- border: none !important;
- margin-top: 14px !important;
- }
- /* Kill any straggler white bg in info-card / sample-related cards */
- .info-card, .info-card-link, .care-highlight, .feature-card, .spec-item {
- background-color: rgba(245,241,232,0.04) !important;
- border-color: rgba(245,241,232,0.12) !important;
- }
- /* Ensure modal content stays readable — Steve's earlier sweep made it #141414 with white text */
- .modal-content { background: #141414 !important; color: #f5f1e8 !important; }
- .modal-content * { color: #f5f1e8 !important; }
- .modal-content input, .modal-content textarea, .modal-content select {
- background: rgba(245,241,232,0.05) !important;
- color: #f5f1e8 !important;
- border-color: rgba(245,241,232,0.2) !important;
- }
- .modal-content label { color: rgba(245,241,232,0.6) !important; }
- /* Force the wide-tracked NOVASUEDE wordmark to stay white */
- .ns-wordmark, .ns-wordmark sup { color: #f5f1e8 !important; }
-
- /* ─── Modal-internal contrast (post-QA defects) ─── */
- /* Backdrop covers full viewport */
- .modal { width: 100vw !important; height: 100vh !important; left: 0 !important; top: 0 !important; background: rgba(0, 0, 0, 0.78) !important; backdrop-filter: blur(6px); }
- /* Chip — flip from white-on-white island to dark card */
- .request-chip {
- background: rgba(245, 241, 232, 0.06) !important;
- color: #f5f1e8 !important;
- border: 1px solid rgba(245, 241, 232, 0.18) !important;
- border-radius: 4px !important;
- }
- .request-chip * { color: #f5f1e8 !important; }
- .request-chip .chip-swatch {
- /* swatch dot ALWAYS displays the inline-style hex from JS — fight any sweep */
- border: 1px solid rgba(0, 0, 0, 0.4) !important;
- }
- /* + Add to request — hairline white-border on transparent (no gold) */
- .add-to-request-btn {
- background: transparent !important;
- color: #f5f1e8 !important;
- border: 1px solid rgba(245, 241, 232, 0.6) !important;
- border-radius: 0 !important;
- padding: 12px 22px !important;
- font-size: 11px !important;
- letter-spacing: 0.32em !important;
- text-transform: uppercase !important;
- font-weight: 400 !important;
- }
- .add-to-request-btn:hover {
- background: #f5f1e8 !important;
- color: #0a0a0a !important;
- border-color: #f5f1e8 !important;
- }
- /* Hex caption visible */
- .preview-hex, #colorPreviewHex {
- display: block !important;
- color: rgba(245, 241, 232, 0.55) !important;
- font-family: ui-monospace, "SF Mono", Menlo, monospace !important;
- font-size: 11px !important;
- margin-top: 4px !important;
- letter-spacing: 0.04em !important;
- text-transform: lowercase !important;
- }
- /* Color preview name — stays single, prominent */
- #colorPreviewName {
- color: #f5f1e8 !important;
- font-size: 11px !important;
- letter-spacing: 0.32em !important;
- text-transform: uppercase !important;
- font-weight: 500 !important;
- display: block !important;
- margin-top: 12px !important;
- }
-
- /* ─── Mobile hamburger nav (replaces the overflow at <760px) ─── */
- @media (max-width: 760px) {
- header .nav-container { flex-wrap: wrap; }
- header nav { display: none; flex-basis: 100%; flex-direction: column; gap: 6px; padding: 16px 0 6px; }
- header nav.open { display: flex; }
- header nav a { padding: 10px 0; border-bottom: 1px solid rgba(245,241,232,0.1); }
- header .mobile-toggle {
- display: flex !important;
- flex-direction: column;
- gap: 5px;
- background: transparent;
- border: 0;
- cursor: pointer;
- padding: 8px;
- }
- header .mobile-toggle span {
- width: 22px; height: 1.5px;
- background: #f5f1e8;
- display: block;
- }
- }
- @media (min-width: 761px) {
- header .mobile-toggle { display: none !important; }
- }
-
- </style>
-<style id="ns-gold-kill">
- /* novasuede: kill gold-solid fills, off-white instead. Edge color stays gold. */
- .new-badge, .new-arrivals-pill,
- .color-filter-btn.active, .drapery-btn,
- .sample-btn-chip, .cb-cta {
- background: #f5f1e8 !important;
- color: #0a0a0a !important;
- border-color: #f5f1e8 !important;
- }
- .new-badge:hover, .new-arrivals-pill:hover,
- .color-filter-btn.active:hover, .drapery-btn:hover,
- .sample-btn-chip:hover, .cb-cta:hover {
- background: #fff !important;
- color: #0a0a0a !important;
- }
- </style>
-<header class="ns-header">
- <a href="/" class="ns-brand" aria-label="Home">
- <span class="ns-dot"></span>
- <span class="ns-name">Studio Toten</span>
- </a>
- <nav class="ns-nav" id="nsPrimaryNav" aria-label="Primary">
- <a href="/">Home</a>
- <a href="/about">About</a>
- <button type="button" onclick="nsContactOpen()">Contact</button>
- </nav>
- <button type="button" class="mobile-toggle" aria-label="Toggle menu" aria-controls="nsPrimaryNav" aria-expanded="false" onclick="nsToggleNav(this)">
- <span></span><span></span><span></span>
- </button>
- </header>
-
-<div class="ns-modal" id="nsContactModal" role="dialog" aria-modal="true" aria-labelledby="nsContactTitle" onclick="if(event.target===this)nsContactClose()">
- <div class="ns-modal-card">
- <button type="button" class="close-x" onclick="nsContactClose()" aria-label="Close">×</button>
- <h3 id="nsContactTitle">How can we help?</h3>
- <p class="sub">Trade-account replies within one business day.</p>
- <div class="ns-actions">
- <a class="ns-action" href="#contact" onclick="nsContactClose()"><span class="ico">📋</span><div class="txt"><b>Get a Quote</b><span>Project specs → priced estimate</span></div></a>
- <a class="ns-action" href="#contact" onclick="nsContactClose();openModal();"><span class="ico">📦</span><div class="txt"><b>Order a Sample</b><span>Free swatch to your shop</span></div></a>
- <a class="ns-action" href="mailto:info@novasuede.com?subject=Novasuede%20inquiry"><span class="ico">✉️</span><div class="txt"><b>Email Us</b><span>info@novasuede.com</span></div></a>
- <a class="ns-action" href="tel:888-373-4564"><span class="ico">📞</span><div class="txt"><b>Call Us</b><span>(888) 373-4564 · M–F, 9–5 PT</span></div></a>
- </div>
- </div>
- </div>
-<script>
- function nsContactOpen() { var m = document.getElementById('nsContactModal'); if (m) m.classList.add('show'); }
- function nsContactClose() { var m = document.getElementById('nsContactModal'); if (m) m.classList.remove('show'); }
- function nsToggleNav(btn) {
- var nav = document.getElementById('nsPrimaryNav');
- if (!nav) return;
- var open = nav.classList.toggle('open');
- btn.setAttribute('aria-expanded', open ? 'true' : 'false');
- }
- document.addEventListener('keydown', function(e){ if (e.key === 'Escape') nsContactClose(); });
-</script>
-
-
-
-
-
-<header>
- <button class="h-link" onclick="dwmOpen('Contact')" aria-label="Contact"><svg class="h-icon" viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/></svg><span>Contact</span></button>
- <button class="theme-toggle" id="theme-toggle" aria-label="Theme toggle">☾</button>
-</header>
-
-<section class="cinema">
- <div class="cinema-bg" id="heroBg"></div>
- <div class="corner-mark">Specifier-Grade</div>
- <div class="center-mark">Architectural Wallcoverings</div>
- <div class="meta-line">Architectural · Specifier · Class A · Contract<span class="num" id="heroNum"></span></div>
- <a class="enter" href="#shop">Enter <svg viewBox="0 0 24 12" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M0 6h22M16 1l6 5-6 5"/></svg></a>
-</section>
-
-
-<section class="section" id="ideas">
- <div class="rail-block">
- <div class="rail-eyebrow">Ideas</div>
- <h2 class="rail-title">New this week</h2>
- <div class="rail" id="railNewest"></div>
- </div>
- <div class="rail-block">
- <div class="rail-eyebrow">Ideas</div>
- <h2 class="rail-title">Curated picks</h2>
- <div class="rail" id="railCurated"></div>
- </div>
-</section>
-
-<section class="section" id="shop">
- <div class="section-header">
- <div>
- <div class="section-eyebrow">The Collection</div>
- <h2 class="section-title"><span class="accent" id="totalCount">—</span> Patterns.</h2>
- </div>
- <div class="section-meta">Architectural · Specifier · Class A · Contract</div>
- </div>
-
- <div class="filters" id="facets">
- <button class="chip active" data-facet="all">All</button>
- </div>
-
- <div class="density">
- <label>Sort</label>
- <select id="sortSelect" aria-label="Sort products" style="background:transparent;color:inherit;border:1px solid var(--line,rgba(255,255,255,.2));font:inherit;font-size:11px;letter-spacing:.10em;text-transform:uppercase;padding:4px 8px;cursor:pointer;outline:none;margin-right:14px">
- <option value="newest">Newest</option>
- <option value="color">Color</option>
- <option value="style">Style</option>
- <option value="sku">SKU A→Z</option>
- <option value="title">Title A→Z</option>
- <option value="price-asc">Price ↑</option>
- <option value="price-desc">Price ↓</option>
- </select>
- <label>Grid</label>
- <input type="range" id="densitySlider" min="4" max="12" step="1" value="6" aria-label="Grid columns">
- <span class="ct" id="densityLabel">6 cols</span>
- <div class="search">
- <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-5.5-5.5"/></svg>
- <input type="text" id="searchInput" placeholder="Search by pattern, color…" autocomplete="off">
- </div>
- </div>
-
- <div class="stat-line" id="statLine">Loading…</div>
- <div class="grid" id="grid"></div>
- <div class="loading" id="loading">Loading more…</div>
- <div class="sentinel" id="sentinel"></div>
-</section>
-
-<footer>
- <div class="footer-grid">
- <div>
- <div class="footer-brand">Studio Toten</div>
- <p class="footer-text">Studio Toten — real samples ship free.</p>
- <p class="footer-text" style="margin-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;color:var(--paper);opacity:0.7"><a href="/about" style="color:inherit;text-decoration:none;border-bottom:1px solid var(--accent)">About →</a></p>
- </div>
- <div class="footer-col">
- <h4>Aesthetic</h4>
- <div id="footerFacets"></div>
- </div>
- <div class="footer-col">
- <h4>Trade</h4>
- <button onclick="dwmOpen('Inquiry')">Project Inquiry</button>
- <button onclick="dwmOpen('Sample')">Request Sample</button>
- <button onclick="dwmOpen('Contact')">Contact</button>
- </div>
-
- <div class="footer-col">
- <h4>Social</h4>
- <a class="fb-link" href="https://www.facebook.com/SteveAbramsDesigns.DesignerWallcoverings" target="_blank" rel="noopener">Facebook</a>
- </div>
- </div>
- <div class="footer-bottom">
- <span>architecturalwallcoverings.com · Studio Toten</span>
- <span><a href="mailto:info@architecturalwallcoverings.com" style="color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px">info@architecturalwallcoverings.com</a></span>
- <span id="footerStat"></span>
- </div>
-</footer>
-
-<script>
-// mini-constellation — 43 niche-stars, current site highlighted in gold
-(function(){
- const SLUG = "architecturalwallcoverings";
- const NICHES = [
- ['silkwallpaper','Silk','mat'],['silkwallcoverings','Silk W/C','mat'],['linenwallpaper','Linen','mat'],
- ['jutewallpaper','Jute','mat'],['raffiawallcoverings','Raffia W/C','mat'],['raffiawalls','Raffia Walls','mat'],
- ['corkwallcovering','Cork','mat'],['fabricwallpaper','Fabric','mat'],['textilewallpaper','Textile','mat'],
- ['metallicwallpaper','Metallic','mat'],['silverleafwallpaper','Silver Leaf','mat'],['vinylwallpaper','Vinyl','mat'],
- ['micawallpaper','Mica','mat'],['madagascarwallpaper','Madagascar','mat'],['mylarwallpaper','Mylar','mat'],
- ['suedewallpaper','Suede','mat'],
- ['1800swallpaper','1800s','dec'],['1890swallpaper','1890s','dec'],['1900swallpaper','1900s','dec'],
- ['1920swallpaper','1920s','dec'],['1930swallpaper','1930s','dec'],['1940swallpaper','1940s','dec'],
- ['1950swallpaper','1950s','dec'],['1960swallpaper','1960s','dec'],['1970swallpaper','1970s','dec'],
- ['1980swallpaper','1980s','dec'],['retrowalls','Retro','dec'],['wallpapersback','W. Back','dec'],
- ['agedwallpaper','Aged','cra'],['handcraftedwallpaper','Handcrafted','cra'],['museumwallpaper','Museum','cra'],
- ['restorationwallpaper','Restoration','cra'],['pastelwallpaper','Pastel','cra'],['glitterwalls','Glitter','cra'],
- ['greenwallcoverings','Green','cra'],['naturalwallcoverings','Natural','cra'],['saloonwallpaper','Saloon','cra'],
- ['contractwallpaper','Contract','use'],['hotelwallcoverings','Hotel','use'],['hospitalitywallpaper','Hospitality','use'],
- ['healthcarewallpaper','Healthcare','use'],['restaurantwallpaper','Restaurant','use'],['architecturalwallcoverings','Architectural','use']
- ];
- const COLOR = { mat:'#c9b687', dec:'#b86a4a', cra:'#6b8e6f', use:'#4a6b8e' };
- const W = 1080, H = 200, BANDS = ['mat','dec','cra','use'];
- const groups = { mat:[], dec:[], cra:[], use:[] };
- for (const n of NICHES) groups[n[2]].push(n);
- const svg = document.getElementById('miniConst');
- if (!svg) return;
- const bandW = W / BANDS.length;
- let nodes = '';
- BANDS.forEach((band, bi) => {
- const list = groups[band];
- const cx = bi * bandW + bandW / 2;
- list.forEach((n, i) => {
- const t = list.length === 1 ? 0.5 : i / (list.length - 1);
- // deterministic jitter per slug
- let h = 0; for (let k = 0; k < n[0].length; k++) h = (h * 31 + n[0].charCodeAt(k)) | 0;
- const jx = ((h & 0xff) / 255 - 0.5) * (bandW * 0.5);
- const jy = (((h >> 8) & 0xff) / 255 - 0.5) * 6; // tightened from 14 → 6 to prevent same-band collisions (16 mat nodes / 144px = 9px spacing)
- const x = cx + jx, y = 28 + t * (H - 56) + jy;
- const isCurrent = n[0] === SLUG;
- const r = isCurrent ? 8 : 4;
- const op = isCurrent ? 1 : 0.55;
- nodes += `<g class="mc-node" data-slug="${n[0]}" data-label="${n[1]}" style="cursor:pointer">
- <circle cx="${x}" cy="${y}" r="${r}" fill="url(#dna-${band})" fill-opacity="${op}" stroke="${COLOR[band]}" stroke-opacity="${isCurrent?1:0.7}" stroke-width="${isCurrent?2:1}">
- <title>${n[1]} — ${n[0]}.com</title>
- </circle>
- ${isCurrent ? `<circle cx="${x}" cy="${y}" r="${r+5}" fill="none" stroke="${COLOR[band]}" stroke-opacity="0.4" stroke-width="1"><animate attributeName="r" values="${r+5};${r+12};${r+5}" dur="2.4s" repeatCount="indefinite"/><animate attributeName="stroke-opacity" values="0.4;0;0.4" dur="2.4s" repeatCount="indefinite"/></circle>` : ''}
- </g>`;
- });
- });
- // append nodes after defs
- svg.insertAdjacentHTML('beforeend', nodes);
- svg.querySelectorAll('.mc-node').forEach(n => {
- n.addEventListener('mouseenter', () => n.querySelector('circle').setAttribute('fill-opacity', '1'));
- n.addEventListener('mouseleave', e => {
- const isCurrent = n.dataset.slug === SLUG;
- n.querySelector('circle').setAttribute('fill-opacity', isCurrent ? '1' : '0.55');
- });
- n.addEventListener('click', () => window.open('https://' + n.dataset.slug + '.com', '_blank'));
- });
-})();
-</script>
-
-<script>
-const state = { q:'', facet:'all', page:1, pages:1, total:0, loading:false, exhausted:false };
-const LABELS = {"all":"All"};
-
-function escAttr(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[c])); }
-// Image-URL allowlist: only DW Shopify CDN + designerwallcoverings.com (defends against XSS via crafted products.json)
-function safeImg(u) { return /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(u || '') ? u : '/hero-bg.jpg'; }
-function cardHTML(p) {
- const eager = state.page === 1;
- return '<img loading="' + (eager ? 'eager' : 'lazy') + '"' + (eager ? ' fetchpriority="high"' : '') + ' src="' + escAttr(safeImg(p.image_url)) + '" alt="' + escAttr(p.title) + '">'
- + '<div class="overlay">'
- + '<div class="pat">' + escAttr(p.pattern_name || p.title) + '</div>'
- + '<div class="ven">' + escAttr((p.vendor || '').replace(/-/g, ' ')) + '</div>'
- + '<div class="actions">'
- + '<button class="sample-btn" onclick="event.stopPropagation();dwmOpen(\'Sample\',' + JSON.stringify({sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}).replace(/"/g,'"') + ')">Sample</button>'
- + '</div></div>';
-}
-
-async function loadFacets() {
- let f;
- try {
- const r = await fetch('/api/facets');
- if (!r.ok) throw new Error('HTTP ' + r.status);
- f = await r.json();
- } catch (e) { console.error('loadFacets failed:', e); return; }
- const el = document.getElementById('facets');
- for (const [k, v] of Object.entries(f.aesthetics).sort((a,b) => b[1] - a[1])) {
- const b = document.createElement('button');
- b.className = 'chip'; b.dataset.facet = k;
- b.innerHTML = (LABELS[k] || k) + ' <span style="opacity:.55;font-weight:500;margin-left:4px">' + v + '</span>';
- el.appendChild(b);
- }
- el.addEventListener('click', e => {
- if (e.target.tagName !== 'BUTTON') return;
- document.querySelectorAll('#facets button').forEach(b => b.classList.remove('active'));
- e.target.classList.add('active');
- state.facet = e.target.dataset.facet;
- resetGrid();
- });
- document.getElementById('totalCount').textContent = f.total;
- document.getElementById('footerStat').textContent = f.total + ' patterns · live archive';
- // Footer aesthetic links
- const footerEl = document.getElementById('footerFacets');
- for (const [k] of Object.entries(f.aesthetics)) {
- const b = document.createElement('button');
- b.textContent = LABELS[k] || k;
- b.onclick = () => { state.facet = k; resetGrid(); document.querySelectorAll('#facets button').forEach(x => x.classList.toggle('active', x.dataset.facet === k)); document.getElementById('shop').scrollIntoView({behavior:'smooth'}); };
- footerEl.appendChild(b);
- }
-}
-
-function resetGrid() {
- state.page = 1; state.exhausted = false;
- document.getElementById('grid').innerHTML = '';
- document.getElementById('loading').textContent = 'Loading…';
- loadGridPage();
-}
-
-async function loadGridPage() {
- if (state.loading || state.exhausted) return;
- state.loading = true;
- const params = new URLSearchParams({ page:state.page, limit:24 });
- if (state.q) params.set('q', state.q);
- if (state.facet !== 'all') params.set('aesthetic', state.facet);
- let data;
- try {
- const r = await fetch('/api/products?' + params);
- if (!r.ok) throw new Error('HTTP ' + r.status);
- data = await r.json();
- } catch (e) {
- console.error('loadGridPage failed:', e);
- document.getElementById('loading').textContent = '— offline — refresh to retry —';
- state.loading = false;
- return;
- }
- state.total = data.total; state.pages = data.pages;
-
- if (state.page === 1) {
- document.getElementById('statLine').textContent = data.total + ' patterns · ' + (state.facet === 'all' ? 'all aesthetics' : (LABELS[state.facet] || state.facet)) + (state.q ? ' · matching "' + state.q + '"' : '');
- }
- const grid = document.getElementById('grid');
- for (const p of data.items) {
- const a = document.createElement('a');
- a.className = 'card'; a.href = '#'; a.onclick = (e) => { e.preventDefault(); dwmOpen('Sample',{sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}); };
- a.innerHTML = cardHTML(p);
- grid.appendChild(a);
- }
- if (state.page >= state.pages || data.items.length === 0) {
- state.exhausted = true;
- document.getElementById('loading').textContent = state.total > 0 ? '— end of archive · ' + state.total + ' patterns —' : '';
- } else state.page++;
- state.loading = false;
-}
-
-const io = new IntersectionObserver(es => { for (const e of es) if (e.isIntersecting) loadGridPage(); }, { rootMargin:'600px 0px' });
-io.observe(document.getElementById('sentinel'));
-
-document.getElementById('searchInput').addEventListener('input', e => {
- state.q = e.target.value.trim();
- clearTimeout(window._t);
- window._t = setTimeout(resetGrid, 220);
-});
-
-// Density slider
-const slider = document.getElementById('densitySlider');
-const dlabel = document.getElementById('densityLabel');
-function setDensity(n) {
- document.documentElement.style.setProperty('--cols', n);
- dlabel.textContent = n + ' cols';
- try { localStorage.setItem('arch_theme_density', n); } catch(e){}
-}
-slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
-const savedDensity = parseInt(localStorage.getItem('arch_theme_density') || '6');
-if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
-
-// Theme toggle
-const tb = document.getElementById('theme-toggle');
-function setTheme(t){ document.documentElement.dataset.theme = t; try { localStorage.setItem('arch_theme', t); } catch(e){} tb.textContent = t === 'dark' ? '☾' : '☀'; }
-setTheme(document.documentElement.dataset.theme || 'light');
-tb.addEventListener('click', () => setTheme(document.documentElement.dataset.theme === 'dark' ? 'light' : 'dark'));
-
-loadFacets();
-loadGridPage();
-</script>
-<!-- ============================================================
- DW UNIVERSAL CONTACT MODULE — fashion-house UX
- Inject before </body> in every DW-family sister site.
- Self-contained: CSS + 4 modals + JS submission handlers.
- Uses host site's CSS vars (--bg, --fg, --gold, --rule).
- ============================================================ -->
-<style>
- /* === MODAL BASE === */
- .dwm{position:fixed;inset:0;background:rgba(0,0,0,0.78);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;overflow-y:auto}
- .dwm.open{display:flex}
- .dwm-box{background:var(--bg);border:1px solid var(--rule);max-width:520px;width:100%;padding:36px 32px;position:relative;max-height:90vh;overflow-y:auto;animation:dwm-in 0.25s ease}
- @keyframes dwm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
- .dwm-box h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;font-size:32px;line-height:1.05;margin-bottom:6px;color:var(--fg);letter-spacing:-0.01em}
- .dwm-box .sub{color:var(--muted);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
- .dwm-close{position:absolute;top:18px;right:18px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;width:32px;height:32px;line-height:1;padding:0}
- .dwm-close:hover{color:var(--gold)}
- .dwm-preview{display:flex;gap:14px;align-items:center;padding:12px;background:var(--bg-soft);margin-bottom:18px}
- .dwm-preview img{width:64px;height:64px;object-fit:cover}
- .dwm-preview .pn{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;line-height:1.2;color:var(--fg)}
- .dwm-preview .pc{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
- .dwm-field{margin-bottom:14px}
- .dwm-field label{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
- .dwm-field input,.dwm-field textarea,.dwm-field select{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:8px 4px;font-size:14px;font-family:inherit;color:var(--fg);outline:none;transition:border-color 0.2s}
- .dwm-field input:focus,.dwm-field textarea:focus{border-bottom-color:var(--gold)}
- .dwm-field textarea{min-height:60px;resize:vertical}
- .dwm-submit{background:transparent;color:var(--muted, #c9b89e);border:1px solid var(--muted, #c9b89e);padding:14px 28px;font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:700;cursor:pointer;width:100%;margin-top:8px;transition:background 0.15s, color 0.15s}
- .dwm-submit:hover{background:var(--muted, #c9b89e);color:var(--bg, #000)}
-
- .dwm-submit:disabled{opacity:0.5;cursor:default}
- .dwm-status{margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;display:none}
- .dwm-status.ok{color:var(--sage);display:block}
- .dwm-status.err{color:#e08070;display:block}
- /* contact-options */
- .dwm-options{display:flex;flex-direction:column;gap:10px}
- .dwm-option{display:flex;align-items:center;gap:14px;padding:18px 20px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;transition:all 0.2s;text-align:left;width:100%}
- .dwm-option:hover{border-color:var(--gold);color:var(--gold)}
- .dwm-option svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}
- .dwm-option .lbl{flex:1;display:block}
- .dwm-option .val{display:block;font-size:10px;letter-spacing:0.14em;text-transform:none;font-weight:500;opacity:0.65;margin-top:4px}
-
-/* graphics-loop pass 5: serif hero typography + nav legibility */
-.cinema h1, h1.headline { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; letter-spacing: -0.01em }
-.h-link { font-size: 13px; letter-spacing: 0.06em }
-
-/* graphics-loop pass 11: Ideas rails */
-#ideas { padding: 56px 24px 24px; max-width:1600px; margin:0 auto }
-#ideas .rail-block { margin-bottom:48px }
-#ideas .rail-eyebrow { font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:var(--muted, #888); margin-bottom:8px }
-#ideas .rail-title { font-size:clamp(22px,2.6vw,32px); font-weight:500; letter-spacing:-0.01em; margin:0 0 18px; color:var(--ink,#fff) }
-#ideas .rail { display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:8px; scrollbar-width:none }
-#ideas .rail::-webkit-scrollbar { display:none }
-#ideas .rail-card { flex:0 0 240px; scroll-snap-align:start; cursor:pointer; transition:transform 0.2s }
-#ideas .rail-card:hover { transform:translateY(-3px) }
-#ideas .rail-card img { width:100%; aspect-ratio:1; object-fit:cover; display:block; background:var(--card,#222) }
-#ideas .rail-card .rc-title { font-size:13px; font-weight:500; color:var(--paper,#fff); padding:8px 0 2px; line-height:1.3 }
-#ideas .rail-card .rc-meta { font-size:11px; color:var(--muted,#888); letter-spacing:0.06em }
-@media (max-width:720px) { #ideas .rail-card { flex:0 0 160px } }
-</style>
-
-<!-- Contact options modal -->
-<div class="dwm" id="dwmContact" onclick="if(event.target===this)dwmClose('Contact')">
- <div class="dwm-box" style="max-width:440px">
- <button class="dwm-close" onclick="dwmClose('Contact')" aria-label="Close">×</button>
- <h3>Contact</h3>
- <p class="sub" id="dwmContactSub">Three ways to reach us</p>
- <div class="dwm-options">
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Inquiry')">
- <svg viewBox="0 0 24 24"><path d="M4 4h16v12H7l-3 3z"/></svg>
- <span class="lbl">Send an Inquiry<span class="val">Project name · scope · all the details</span></span>
- </button>
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Sample')">
- <svg viewBox="0 0 24 24"><rect x="4" y="6" width="16" height="14"/><path d="M4 10h16M9 6V3h6v3"/></svg>
- <span class="lbl">Request a Sample<span class="val">Memo sample · ships free · 3–5 business days</span></span>
- </button>
- <a class="dwm-option" id="dwmContactEmailLink" href="mailto:info@architecturalwallcoverings.com">
- <svg viewBox="0 0 24 24"><path d="M3 6h18v12H3z"/><path d="M3 6l9 7 9-7"/></svg>
- <span class="lbl">Email Us<span class="val" id="dwmContactEmailLabel">info@architecturalwallcoverings.com</span></span>
- </a>
- </div>
- </div>
-</div>
-
-<!-- Inquiry modal -->
-<div class="dwm" id="dwmInquiry" onclick="if(event.target===this)dwmClose('Inquiry')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Inquiry')" aria-label="Close">×</button>
- <h3>Project Inquiry</h3>
- <p class="sub">We'll respond within one business day</p>
- <form id="dwmInquiryForm" onsubmit="return dwmSubmit(event,'inquiry')">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Phone</label><input type="tel" name="phone"></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Project Name</label><input type="text" name="projectName" required></div>
- <div class="dwm-field"><label>Project Scope</label><textarea name="projectScope" placeholder="Square footage · room count · timeline" required></textarea></div>
- <div class="dwm-field"><label>Additional Information</label><textarea name="message" placeholder="Patterns of interest, finish preferences, budget"></textarea></div>
- <button type="submit" class="dwm-submit">Send Inquiry</button>
- <div class="dwm-status" id="dwmInquiryStatus"></div>
- </form>
- </div>
-</div>
-
-<!-- Sample-request modal -->
-<div class="dwm" id="dwmSample" onclick="if(event.target===this)dwmClose('Sample')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Sample')" aria-label="Close">×</button>
- <h3>Request a Sample</h3>
- <p class="sub">Memo sample · ships free · 3–5 business days</p>
- <div class="dwm-preview" id="dwmSamplePreview" style="display:none">
- <img id="dwmSampleImg" src="" alt="">
- <div><div class="pn" id="dwmSampleName"></div><div class="pc" id="dwmSampleSku"></div></div>
- </div>
- <form id="dwmSampleForm" onsubmit="return dwmSubmit(event,'sample')">
- <input type="hidden" name="sku" id="dwmSampleSkuInput">
- <input type="hidden" name="title" id="dwmSampleTitleInput">
- <input type="hidden" name="image_url" id="dwmSampleImageInput">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Shipping Address</label><input type="text" name="address" placeholder="Street" required></div>
- <div class="dwm-field" style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px">
- <input type="text" name="city" placeholder="City" required>
- <input type="text" name="state" placeholder="State" required>
- <input type="text" name="zip" placeholder="ZIP" required>
- </div>
- <div class="dwm-field"><label>Notes (optional)</label><textarea name="message" placeholder="Project, sq.ft., timing"></textarea></div>
- <button type="submit" class="dwm-submit">Send Sample Request</button>
- <div class="dwm-status" id="dwmSampleStatus"></div>
- </form>
- </div>
-</div>
-
-<script>
- // Universal modal control
- function dwmOpen(name, opts){
- document.getElementById('dwm' + name).classList.add('open');
- document.body.style.overflow = 'hidden';
- if (name === 'Sample' && opts) {
- document.getElementById('dwmSamplePreview').style.display = 'flex';
- document.getElementById('dwmSampleImg').src = opts.image_url || '';
- document.getElementById('dwmSampleName').textContent = opts.title || '';
- document.getElementById('dwmSampleSku').textContent = opts.sku || '';
- document.getElementById('dwmSampleSkuInput').value = opts.sku || '';
- document.getElementById('dwmSampleTitleInput').value = opts.title || '';
- document.getElementById('dwmSampleImageInput').value = opts.image_url || '';
- } else if (name === 'Sample') {
- document.getElementById('dwmSamplePreview').style.display = 'none';
- document.getElementById('dwmSampleSkuInput').value = '';
- document.getElementById('dwmSampleTitleInput').value = '';
- document.getElementById('dwmSampleImageInput').value = '';
- }
- }
- function dwmClose(name){ document.getElementById('dwm'+name).classList.remove('open'); document.body.style.overflow=''; }
-
- // Universal form submit — POSTs to /api/send-{kind}
- async function dwmSubmit(e, kind) {
- e.preventDefault();
- const form = e.target;
- const data = Object.fromEntries(new FormData(form).entries());
- const btn = form.querySelector('.dwm-submit');
- const status = form.querySelector('.dwm-status');
- btn.disabled = true; const orig = btn.textContent; btn.textContent = 'Sending…';
- status.className = 'dwm-status';
- try {
- const r = await fetch('/api/send-' + kind, { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
- if (!r.ok) throw new Error('HTTP '+r.status);
- const j = await r.json();
- status.textContent = kind === 'sample' ? 'Sample request sent — ships within 3–5 business days' : 'Inquiry sent — we respond within 1 business day';
- status.className = 'dwm-status ok';
- btn.textContent = 'Sent ✓';
- setTimeout(() => { dwmClose(kind === 'sample' ? 'Sample' : 'Inquiry'); btn.disabled = false; btn.textContent = orig; status.className = 'dwm-status'; form.reset(); }, 2800);
- } catch (err) {
- status.textContent = 'Send failed — please email info@designerwallcoverings.com';
- status.className = 'dwm-status err';
- btn.disabled = false; btn.textContent = orig;
- }
- return false;
- }
-
- // Wire up "Memo samples ship free" badge in hero to open sample modal directly
- document.querySelectorAll('.hero .badge, [data-open-sample]').forEach(el => {
- el.style.cursor = 'pointer';
- el.addEventListener('click', () => dwmOpen('Sample'));
- });
-
- // Wire nav "Trade" link to inquiry modal
- document.querySelectorAll('nav a[href*="designerwallcoverings.com"]').forEach(a => {
- a.removeAttribute('target');
- a.removeAttribute('href');
- a.style.cursor = 'pointer';
- a.addEventListener('click', e => { e.preventDefault(); dwmOpen('Contact'); });
- });
-
- // Override product card clicks — open Sample modal pre-filled instead of redirecting to DW
- document.addEventListener('click', e => {
- const card = e.target.closest('.card, .rail-card');
- if (!card) return;
- if (card.tagName === 'A' && (card.getAttribute('href') || '').startsWith('/sample/')) {
- e.preventDefault();
- const img = card.querySelector('img');
- const pat = card.querySelector('.pat');
- const sku = card.getAttribute('href').replace('/sample/', '');
- dwmOpen('Sample', {
- sku,
- title: pat ? pat.textContent.trim() : '',
- image_url: img ? img.src : ''
- });
- }
- }, true);
-// DW STANDARD: hero pulls from products.json[0].image_url so dw-collections-viewer
-// drag-drop / hero-pin updates the live front page on next deploy.
-// Always upgrades to the largest Shopify variant (strips _NxN size suffix) so
-// the full-page hero stays sharp.
-// DW STANDARD: hero rotates through top-20 NEWEST products on each visit
-// (novasuede.com pattern). Fetches /api/products?limit=100, sorts by created_at desc,
-// takes the freshest 20, picks one per visit via localStorage counter.
-// Falls back to static /hero-bg.jpg on any error.
-(async function rotateHero() {
- try {
- const r = await fetch('/api/products?limit=100');
- if (!r.ok) return;
- const d = await r.json();
- const items = (d.items || [])
- .filter(p => p && p.image_url && /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(p.image_url))
- .sort((a,b) => String(b.created_at || '').localeCompare(String(a.created_at || '')))
- .slice(0, 20);
- if (!items.length) return;
- let visits = 0;
- try {
- visits = parseInt(localStorage.getItem('hero_visits') || '0', 10) || 0;
- localStorage.setItem('hero_visits', String(visits + 1));
- } catch(e) {}
- const pick = items[visits % items.length];
- // Strip _NxN size suffix to get the largest CDN variant
- const url = pick.image_url.replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- const bg = document.getElementById('heroBg') || document.getElementById('cinemaBg');
- if (bg) bg.style.backgroundImage = "url('" + url + "')";
- } catch (e) {}
-})();
-
-
-// DW STANDARD sort-select wire-up (added by fleet patcher)
-(function(){
- const sortSel = document.getElementById('sortSelect');
- if (!sortSel) return;
- const KEY = location.hostname.replace(/\./g, '_') + '_sort';
- const saved = localStorage.getItem(KEY);
- if (saved) { try { sortSel.value = saved; } catch(e){} }
- if (typeof state !== 'undefined') state.sort = sortSel.value;
- sortSel.addEventListener('change', e => {
- const v = e.target.value;
- try { localStorage.setItem(KEY, v); } catch(e){}
- if (typeof state !== 'undefined') state.sort = v;
- if (typeof resetGrid === 'function') resetGrid();
- else location.reload();
- });
-})();
-
-// graphics-loop pass 11: hydrate Ideas rails from /api/products
-(async function hydrateIdeas() {
- try {
- const r = await fetch('/api/products?limit=80');
- if (!r.ok) return;
- const d = await r.json();
- const items = (d.items || []).filter(p => p && p.image_url);
- if (!items.length) return;
- const sorted = [...items].sort((a,b) => String(b.created_at || '').localeCompare(String(a.created_at || '')));
- const newest = sorted.slice(0, 12);
- // Curated = deterministic offset slice (every 5th item starting at idx 3) for variety
- const curated = items.filter((_, i) => i % 5 === 3).slice(0, 12);
- function card(p) {
- const url = (p.image_url || '').replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- return '<a class="rail-card" href="/sample/' + encodeURIComponent(p.handle || p.sku) + '">' +
- '<img src="' + url + '" alt="' + (p.title || '').replace(/"/g, '"') + '" loading="lazy">' +
- '<div class="rc-title">' + ((p.title || '').split('|')[0] || '').trim() + '</div>' +
- '<div class="rc-meta">' + (p.vendor || '') + '</div>' +
- '</a>';
- }
- const r1 = document.getElementById('railNewest');
- const r2 = document.getElementById('railCurated');
- if (r1) r1.innerHTML = newest.map(card).join('');
- if (r2) r2.innerHTML = curated.map(card).join('');
- } catch(e) {}
-})();
-</script>
-
-</body>
-</html>
diff --git a/public/index.html.bak.nspropagate.1778226815121 b/public/index.html.bak.nspropagate.1778226815121
deleted file mode 100644
index c1d0c15..0000000
--- a/public/index.html.bak.nspropagate.1778226815121
+++ /dev/null
@@ -1,971 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
-<meta charset="utf-8">
-<!-- Google tag (gtag.js) -->
-<script async src="https://www.googletagmanager.com/gtag/js?id=G-PN839G9FD8"></script>
-<script>
- window.dataLayer = window.dataLayer || [];
- function gtag(){dataLayer.push(arguments);}
- gtag('js', new Date());
- gtag('config', 'G-PN839G9FD8');
-</script>
-
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>Studio Toten — architectural. Useful.</title>
-<meta name="description" content="Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.">
-<meta name="theme-color" content="#F5F2ED">
-<link rel="canonical" href="https://architecturalwallcoverings.com/">
-<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&display=swap" rel="stylesheet">
-<link rel="preload" as="image" href="/hero-bg.jpg" fetchpriority="high">
-<script type="application/ld+json">
-{
- "@context": "https://schema.org",
- "@type": "Organization",
- "name": "Studio Toten",
- "url": "https://architecturalwallcoverings.com/",
- "email": "info@architecturalwallcoverings.com"
-}
-</script>
-<script src="/zd-loader.js" defer></script>
-<style>
-:root {
- --bg: #F5F2ED;
- --paper: #1A1A1A;
- --muted: #8B7866;
- --line: #D5CFC4;
- --accent: #1A1A1A;
- --bg-soft: #D5CFC4;
- --cols: 6;
-}
-html[data-theme="dark"] {
- --bg: #1a1410;
- --paper: #F5F2ED;
- --muted: #C9B89E;
- --line: rgba(255,254,250,0.12);
- --accent: #1A1A1A;
- --bg-soft: #2a1f15;
-}
-* { margin:0; padding:0; box-sizing:border-box }
-html { scroll-behavior:smooth }
-body { font-family:'Inter', sans-serif; color:var(--paper); -webkit-font-smoothing:antialiased; background:var(--bg); min-height:100vh; overflow-x:hidden }
-/* DW-FASHION-TEMPLATE-OVERRIDE */
-.section-title .accent, .footer-brand, .center-mark, h1, h2, h3 { font-family:'Inter', Georgia, serif !important; font-weight:400 !important; }
-
-/* ===== Auto-hide header ===== */
-header { position:fixed; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 32px; z-index:100; background:rgba(0,0,0,0.55); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:transform .3s }
-.h-link { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); text-decoration:none; cursor:pointer; background:transparent; border:0 }
-.h-link:hover { opacity:0.7 }
-.h-icon { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }
-
-/* ===== Cinema hero ===== */
-.cinema { position:relative; height:100vh; width:100%; overflow:hidden }
-.cinema-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-image:url('/hero-bg.jpg') }
-.cinema-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.75) 100%) }
-.corner-mark { position:absolute; top:24px; left:32px; font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,0.55), 0 0 1px rgba(0,0,0,0.4); z-index:5 }
-.corner-mark::before { content:"◆ "; margin-right:6px }
-.center-mark { position:absolute; top:clamp(80px,12vh,140px); left:50%; transform:translateX(-50%); font-size:clamp(28px,4vw,56px); font-weight:500; letter-spacing:0.18em; text-transform:uppercase; text-align:center; color:#fff; text-shadow:0 2px 8px rgba(0,0,0,0.65), 0 0 1px rgba(0,0,0,0.5); z-index:5 }
-.center-mark .tm { font-size:14px; vertical-align:super; opacity:0.7; margin-left:0.2em }
-.center-mark .sub { display:block; font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400; font-size:0.4em; letter-spacing:0.04em; text-transform:none; margin-top:14px; opacity:0.85 }
-.meta-line { position:absolute; bottom:32px; left:32px; font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:700; color:#fff; z-index:5; opacity:0.85 }
-.meta-line .num { font-size:12px; display:block; margin-top:4px; letter-spacing:0.05em }
-.enter { position:absolute; bottom:32px; right:32px; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:0.36em; text-transform:uppercase; font-weight:700; color:#fff; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #fff; transition:gap 0.25s; z-index:5 }
-.enter:hover { gap:22px }
-.enter svg { width:24px; height:12px }
-
-/* ===== Section ===== */
-.section { padding:96px 32px }
-.section-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--line) }
-.section-title { font-size:clamp(36px,5vw,64px); font-weight:300; letter-spacing:-0.02em; line-height:1 }
-.section-title .accent { color: var(--accent); font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400 }
-.section-eyebrow { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:16px }
-.section-meta { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--muted); text-align:right; line-height:1.6 }
-
-/* ===== Filter bar ===== */
-.filters { display:flex; gap:8px; align-items:center; margin-bottom:18px; flex-wrap:wrap }
-.chip { padding:8px 16px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); background:transparent; border:1px solid var(--line); cursor:pointer; transition:all 0.2s; font-family:inherit }
-.chip:hover { border-color:var(--paper) }
-.chip.active { background:var(--paper); color:var(--bg); border-color:var(--paper) }
-.search { flex:0 1 280px; margin-left:auto; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:6px 0 }
-.search input { flex:1; background:transparent; border:0; color:var(--paper); font-family:inherit; font-size:13px; outline:none; letter-spacing:0.04em }
-.search input::placeholder { color:var(--muted) }
-.search svg { width:16px; height:16px; stroke:var(--muted); fill:none; stroke-width:1.5 }
-
-/* ===== Grid-density slider ===== */
-.density { display:flex; align-items:center; gap:14px; padding:6px 0; margin-bottom:24px }
-.density label { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--muted) }
-.density input[type=range] { flex:1; max-width:240px; -webkit-appearance:none; appearance:none; height:1px; background:var(--line); outline:none }
-.density input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50% }
-.density input[type=range]::-moz-range-thumb { width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50%; border:0 }
-.density .ct { font-size:11px; color:var(--muted); letter-spacing:0.18em; text-transform:uppercase; font-weight:600; min-width:80px }
-
-/* ===== Stats line ===== */
-.stat-line { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:24px }
-
-/* ===== Product grid (novasuede pattern: flush grid + slide-up overlay) ===== */
-.grid { display:grid; grid-template-columns:repeat(var(--cols), 1fr); gap:0 }
-.card { position:relative; aspect-ratio:1/1.15; cursor:pointer; overflow:hidden; border:1px solid var(--bg); transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1); background:var(--bg-soft) }
-.card:hover { transform:scale(1.04); z-index:5 }
-.card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease }
-.card .overlay { position:absolute; left:0; right:0; bottom:0; padding:20px 16px 14px; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%); transform:translateY(48%); opacity:0.85; transition:transform 0.3s ease, opacity 0.3s ease }
-.card:hover .overlay { transform:translateY(0); opacity:1 }
-.card .pat { font-size:13px; font-weight:600; letter-spacing:0.02em; color:#fff; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
-.card .ven { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#fff; opacity:0.7; font-weight:500; margin-top:4px }
-.card .actions { margin-top:10px; display:flex; gap:6px }
-.card .sample-btn { flex:1; padding:7px 10px; background:#fff; color:#000; font-family:inherit; font-size:10px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; border:0; cursor:pointer; text-align:center; transition:all 0.2s }
-.card .sample-btn:hover { background:var(--accent); color:#fff }
-
-@media (max-width:1024px) { .grid { grid-template-columns:repeat(min(var(--cols), 4), 1fr) } }
-@media (max-width:720px) { .grid { grid-template-columns:repeat(2, 1fr) } .density { display:none } }
-
-.sentinel { height:1px }
-.loading { text-align:center; color:var(--muted); padding:32px; font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700 }
-
-/* ===== Footer ===== */
-footer { padding:64px 32px 32px; border-top:1px solid var(--line); margin-top:32px }
-.footer-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; margin-bottom:48px }
-.footer-brand { font-size:24px; font-weight:300; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:12px }
-.footer-text { font-size:13px; line-height:1.6; color:var(--muted); max-width:380px }
-.footer-col h4 { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--paper); margin-bottom:18px }
-.footer-col a { display:block; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:8px; transition:color 0.2s; cursor:pointer; background:transparent; border:0; font-family:inherit; padding:0; text-align:left }
-.footer-col a:hover { color:var(--accent) }
-.footer-bottom { max-width:1400px; margin:0 auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted) }
-
-@media (max-width:720px) {
- .corner-mark, .meta-line, .enter { font-size:10px }
- .center-mark { font-size:24px; letter-spacing:0.12em; top:clamp(60px,9vh,90px) }
- .section, footer { padding-left:20px; padding-right:20px }
- .footer-grid { grid-template-columns:1fr; gap:32px }
- .search { margin-left:0; flex:1 1 100% }
-}
-
-.theme-toggle { background:transparent; border:1px solid var(--line); width:32px; height:32px; cursor:pointer; color:var(--paper); display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; transition:all .15s; padding:0 }
-.theme-toggle:hover { border-color:var(--accent); color:var(--accent) }
-
-/* ===== WCAG 2.4.7 — keyboard focus indicators ===== */
-/* Strictly :focus-visible so mouse clicks do NOT show the ring */
-a:focus-visible,
-button:focus-visible,
-input:focus-visible,
-select:focus-visible,
-textarea:focus-visible,
-[tabindex]:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
-}
-</style>
-<script>
-(function(){ try { var t = localStorage.getItem('arch_theme') || 'light'; document.documentElement.dataset.theme = t; } catch(e){} })();
-</script>
-<link rel="preconnect" href="https://fonts.googleapis.com">
-<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap">
-
-<meta property="og:type" content="website">
-<meta property="og:url" content="https://architecturalwallcoverings.com/">
-<meta property="og:title" content="Architectural Wallcoverings">
-<meta property="og:description" content="Architectural Wallcoverings — Class A specifier-grade architectural wallcoverings.">
-<meta property="og:image" content="https://architecturalwallcoverings.com/hero-bg.jpg">
-<meta property="og:site_name" content="Architectural Wallcoverings">
-<meta property="article:publisher" content="https://www.facebook.com/SteveAbramsDesigns.DesignerWallcoverings">
-<meta name="twitter:card" content="summary_large_image">
-<meta name="twitter:title" content="Architectural Wallcoverings">
-<meta name="twitter:description" content="Architectural Wallcoverings — Class A specifier-grade architectural wallcoverings.">
-<meta name="twitter:image" content="https://architecturalwallcoverings.com/hero-bg.jpg">
-<!-- graphics-loop pass 13: footer + fb -->
-</head>
-<body>
-<style id="ns-header-modal-styles">
- .ns-header { position: sticky; top: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; padding: 18px 36px; background: rgba(10,10,10,0.92) !important; backdrop-filter: blur(8px); border-bottom: 1px solid rgba(245,241,232,0.06); }
- .ns-brand { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; }
- .ns-dot { width: 28px; height: 28px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #a98b5b 0%, #5d4c32 60%, #332a1b 100%); box-shadow: 0 0 0 1px rgba(245,241,232,0.10), 0 2px 12px rgba(180,90,60,0.30); flex-shrink: 0; }
- .ns-name { font-family: -apple-system, "SF Pro Display", "Helvetica Neue", system-ui, sans-serif; font-size: 18px !important; font-weight: 300 !important; letter-spacing: 0.02em !important; color: #f5f1e8 !important; text-transform: none !important; margin: 0 !important; }
- .ns-name sup { font-size: 0.55em; font-weight: 300; margin-left: 1px; }
- .ns-nav { display: flex; gap: 32px; align-items: center; list-style: none; padding: 0; margin: 0; }
- .ns-nav a, .ns-nav button { font-family: -apple-system, "SF Pro Text", system-ui, sans-serif; font-size: 15px !important; font-weight: 400 !important; color: #f5f1e8 !important; text-decoration: none !important; background: none !important; border: 0 !important; cursor: pointer; padding: 0 !important; transition: color 200ms; letter-spacing: 0 !important; text-transform: none !important; }
- .ns-nav a:hover, .ns-nav button:hover { color: #ffffff !important; }
- @media (max-width: 820px) { .ns-header { padding: 14px 18px; } .ns-nav { gap: 16px; } .ns-nav a, .ns-nav button { font-size: 13px !important; } }
- @media (max-width: 760px) {
- .ns-header { flex-wrap: wrap; }
- .ns-nav { display: none !important; flex-basis: 100%; flex-direction: column; align-items: flex-start; gap: 6px; padding: 14px 0 4px; }
- .ns-nav.open { display: flex !important; }
- .ns-nav a, .ns-nav button { padding: 10px 0 !important; border-bottom: 1px solid rgba(245,241,232,0.08); width: 100%; text-align: left; }
- .ns-nav a:nth-child(n+5), .ns-nav button:nth-child(n+5) { display: block !important; }
- .ns-header .mobile-toggle { display: flex !important; }
- }
- @media (min-width: 761px) {
- .ns-header .mobile-toggle { display: none !important; }
- }
- .ns-modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.78); z-index: 200; align-items: center; justify-content: center; padding: 24px; backdrop-filter: blur(6px); }
- .ns-modal.show { display: flex; }
- .ns-modal-card { max-width: 460px; width: 100%; background: #141414 !important; border: 1px solid rgba(245,241,232,0.14); border-radius: 6px; padding: 28px 30px 30px; position: relative; }
- .ns-modal-card .close-x { position: absolute; top: 12px; right: 14px; width: 30px; height: 30px; background: none; border: 1px solid rgba(245,241,232,0.18); color: rgba(245,241,232,0.6) !important; border-radius: 50%; cursor: pointer; font-size: 14px; display: flex; align-items: center; justify-content: center; }
- .ns-modal-card .close-x:hover { color: #ffffff !important; border-color: #ffffff; }
- .ns-modal-card h3 { font-family: -apple-system, "SF Pro Display", system-ui; font-weight: 300 !important; font-size: 22px !important; margin: 0 0 6px !important; color: #f5f1e8 !important; }
- .ns-modal-card .sub { color: rgba(245,241,232,0.65) !important; font-size: 13px; margin: 0 0 22px; }
- .ns-actions { display: flex; flex-direction: column; gap: 10px; }
- .ns-action { display: flex; align-items: center; gap: 14px; padding: 14px 16px; background: rgba(245,241,232,0.04) !important; border: 1px solid rgba(245,241,232,0.12) !important; color: #f5f1e8 !important; text-decoration: none !important; cursor: pointer; transition: all 200ms; font: inherit; text-align: left; }
- .ns-action:hover { background: rgba(245,241,232,0.08) !important; border-color: #d4b683 !important; }
- .ns-action .ico { width: 32px; height: 32px; border-radius: 50%; background: rgba(212,182,131,0.12); display: flex; align-items: center; justify-content: center; font-size: 15px; flex-shrink: 0; }
- .ns-action .txt { flex: 1; }
- .ns-action .txt b { display: block; font-weight: 500; font-size: 14px; color: #f5f1e8 !important; }
- .ns-action .txt span { font-size: 12px; color: rgba(245,241,232,0.55) !important; }
-
- /* ─── FINAL CONTRAST PASS — kill remaining gold-solid + white-island defects ─── */
- /* Replace all gold-fill accents with off-white (Gucci-aesthetic, no DW gold solids) */
- .new-badge, .new-arrivals-pill,
- .color-filter-btn.active,
- .drapery-btn, .sample-btn-chip, .cb-cta {
- background: #f5f1e8 !important;
- color: #0a0a0a !important;
- border-color: #f5f1e8 !important;
- }
- .new-badge:hover, .new-arrivals-pill:hover,
- .color-filter-btn.active:hover,
- .drapery-btn:hover, .sample-btn-chip:hover, .cb-cta:hover {
- background: #fff !important;
- color: #0a0a0a !important;
- }
- /* Gold accents stay only as edge color (links, glyphs) — not fills */
- a { color: #d4b683; }
- a:hover { color: #f5d97a; }
- /* Authorized-dealer footer line — small caps tracked, muted ink, no gold pill */
- .authorized, .authorized-dealer p {
- background: transparent !important;
- color: rgba(245,241,232,0.5) !important;
- font-size: 10px !important;
- letter-spacing: 0.22em !important;
- text-transform: uppercase !important;
- padding: 0 !important;
- border: none !important;
- margin-top: 14px !important;
- }
- /* Kill any straggler white bg in info-card / sample-related cards */
- .info-card, .info-card-link, .care-highlight, .feature-card, .spec-item {
- background-color: rgba(245,241,232,0.04) !important;
- border-color: rgba(245,241,232,0.12) !important;
- }
- /* Ensure modal content stays readable — Steve's earlier sweep made it #141414 with white text */
- .modal-content { background: #141414 !important; color: #f5f1e8 !important; }
- .modal-content * { color: #f5f1e8 !important; }
- .modal-content input, .modal-content textarea, .modal-content select {
- background: rgba(245,241,232,0.05) !important;
- color: #f5f1e8 !important;
- border-color: rgba(245,241,232,0.2) !important;
- }
- .modal-content label { color: rgba(245,241,232,0.6) !important; }
- /* Force the wide-tracked NOVASUEDE wordmark to stay white */
- .ns-wordmark, .ns-wordmark sup { color: #f5f1e8 !important; }
-
- /* ─── Modal-internal contrast (post-QA defects) ─── */
- /* Backdrop covers full viewport */
- .modal { width: 100vw !important; height: 100vh !important; left: 0 !important; top: 0 !important; background: rgba(0, 0, 0, 0.78) !important; backdrop-filter: blur(6px); }
- /* Chip — flip from white-on-white island to dark card */
- .request-chip {
- background: rgba(245, 241, 232, 0.06) !important;
- color: #f5f1e8 !important;
- border: 1px solid rgba(245, 241, 232, 0.18) !important;
- border-radius: 4px !important;
- }
- .request-chip * { color: #f5f1e8 !important; }
- .request-chip .chip-swatch {
- /* swatch dot ALWAYS displays the inline-style hex from JS — fight any sweep */
- border: 1px solid rgba(0, 0, 0, 0.4) !important;
- }
- /* + Add to request — hairline white-border on transparent (no gold) */
- .add-to-request-btn {
- background: transparent !important;
- color: #f5f1e8 !important;
- border: 1px solid rgba(245, 241, 232, 0.6) !important;
- border-radius: 0 !important;
- padding: 12px 22px !important;
- font-size: 11px !important;
- letter-spacing: 0.32em !important;
- text-transform: uppercase !important;
- font-weight: 400 !important;
- }
- .add-to-request-btn:hover {
- background: #f5f1e8 !important;
- color: #0a0a0a !important;
- border-color: #f5f1e8 !important;
- }
- /* Hex caption visible */
- .preview-hex, #colorPreviewHex {
- display: block !important;
- color: rgba(245, 241, 232, 0.55) !important;
- font-family: ui-monospace, "SF Mono", Menlo, monospace !important;
- font-size: 11px !important;
- margin-top: 4px !important;
- letter-spacing: 0.04em !important;
- text-transform: lowercase !important;
- }
- /* Color preview name — stays single, prominent */
- #colorPreviewName {
- color: #f5f1e8 !important;
- font-size: 11px !important;
- letter-spacing: 0.32em !important;
- text-transform: uppercase !important;
- font-weight: 500 !important;
- display: block !important;
- margin-top: 12px !important;
- }
-
- /* ─── Mobile hamburger nav (replaces the overflow at <760px) ─── */
- @media (max-width: 760px) {
- header .nav-container { flex-wrap: wrap; }
- header nav { display: none; flex-basis: 100%; flex-direction: column; gap: 6px; padding: 16px 0 6px; }
- header nav.open { display: flex; }
- header nav a { padding: 10px 0; border-bottom: 1px solid rgba(245,241,232,0.1); }
- header .mobile-toggle {
- display: flex !important;
- flex-direction: column;
- gap: 5px;
- background: transparent;
- border: 0;
- cursor: pointer;
- padding: 8px;
- }
- header .mobile-toggle span {
- width: 22px; height: 1.5px;
- background: #f5f1e8;
- display: block;
- }
- }
- @media (min-width: 761px) {
- header .mobile-toggle { display: none !important; }
- }
-
- </style>
-<style id="ns-gold-kill">
- /* novasuede: kill gold-solid fills, off-white instead. Edge color stays gold. */
- .new-badge, .new-arrivals-pill,
- .color-filter-btn.active, .drapery-btn,
- .sample-btn-chip, .cb-cta {
- background: #f5f1e8 !important;
- color: #0a0a0a !important;
- border-color: #f5f1e8 !important;
- }
- .new-badge:hover, .new-arrivals-pill:hover,
- .color-filter-btn.active:hover, .drapery-btn:hover,
- .sample-btn-chip:hover, .cb-cta:hover {
- background: #fff !important;
- color: #0a0a0a !important;
- }
- </style>
-<header class="ns-header">
- <a href="/" class="ns-brand" aria-label="Home">
- <span class="ns-dot"></span>
- <span class="ns-name">Studio Toten</span>
- </a>
- <nav class="ns-nav" id="nsPrimaryNav" aria-label="Primary">
- <a href="/">Home</a>
- <a href="/about">About</a>
- <button type="button" onclick="nsContactOpen()">Contact</button>
- </nav>
- <button type="button" class="mobile-toggle" aria-label="Toggle menu" aria-controls="nsPrimaryNav" aria-expanded="false" onclick="nsToggleNav(this)">
- <span></span><span></span><span></span>
- </button>
- </header>
-
-<div class="ns-modal" id="nsContactModal" role="dialog" aria-modal="true" aria-labelledby="nsContactTitle" onclick="if(event.target===this)nsContactClose()">
- <div class="ns-modal-card">
- <button type="button" class="close-x" onclick="nsContactClose()" aria-label="Close">×</button>
- <h3 id="nsContactTitle">How can we help?</h3>
- <p class="sub">Trade-account replies within one business day.</p>
- <div class="ns-actions">
- <a class="ns-action" href="#contact" onclick="nsContactClose()"><span class="ico">📋</span><div class="txt"><b>Get a Quote</b><span>Project specs → priced estimate</span></div></a>
- <a class="ns-action" href="#contact" onclick="nsContactClose();openModal();"><span class="ico">📦</span><div class="txt"><b>Order a Sample</b><span>Free swatch to your shop</span></div></a>
- <a class="ns-action" href="mailto:info@architecturalwallcoverings.com?subject=Studio%20Toten%20inquiry"><span class="ico">✉️</span><div class="txt"><b>Email Us</b><span>info@architecturalwallcoverings.com</span></div></a>
- <a class="ns-action" href="tel:888-373-4564"><span class="ico">📞</span><div class="txt"><b>Call Us</b><span>(888) 373-4564 · M–F, 9–5 PT</span></div></a>
- </div>
- </div>
- </div>
-<script>
- function nsContactOpen() { var m = document.getElementById('nsContactModal'); if (m) m.classList.add('show'); }
- function nsContactClose() { var m = document.getElementById('nsContactModal'); if (m) m.classList.remove('show'); }
- function nsToggleNav(btn) {
- var nav = document.getElementById('nsPrimaryNav');
- if (!nav) return;
- var open = nav.classList.toggle('open');
- btn.setAttribute('aria-expanded', open ? 'true' : 'false');
- }
- document.addEventListener('keydown', function(e){ if (e.key === 'Escape') nsContactClose(); });
-</script>
-
-
-
-
-
-
-
-<header>
- <button class="h-link" onclick="dwmOpen('Contact')" aria-label="Contact"><svg class="h-icon" viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/></svg><span>Contact</span></button>
- <button class="theme-toggle" id="theme-toggle" aria-label="Theme toggle">☾</button>
-</header>
-
-<section class="cinema">
- <div class="cinema-bg" id="heroBg"></div>
- <div class="corner-mark">Specifier-Grade</div>
- <div class="center-mark">Architectural Wallcoverings</div>
- <div class="meta-line">Architectural · Specifier · Class A · Contract<span class="num" id="heroNum"></span></div>
- <a class="enter" href="#shop">Enter <svg viewBox="0 0 24 12" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M0 6h22M16 1l6 5-6 5"/></svg></a>
-</section>
-
-
-<section class="section" id="ideas">
- <div class="rail-block">
- <div class="rail-eyebrow">Ideas</div>
- <h2 class="rail-title">New this week</h2>
- <div class="rail" id="railNewest"></div>
- </div>
- <div class="rail-block">
- <div class="rail-eyebrow">Ideas</div>
- <h2 class="rail-title">Curated picks</h2>
- <div class="rail" id="railCurated"></div>
- </div>
-</section>
-
-<section class="section" id="shop">
- <div class="section-header">
- <div>
- <div class="section-eyebrow">The Collection</div>
- <h2 class="section-title"><span class="accent" id="totalCount">—</span> Patterns.</h2>
- </div>
- <div class="section-meta">Architectural · Specifier · Class A · Contract</div>
- </div>
-
- <div class="filters" id="facets">
- <button class="chip active" data-facet="all">All</button>
- </div>
-
- <div class="density">
- <label>Sort</label>
- <select id="sortSelect" aria-label="Sort products" style="background:transparent;color:inherit;border:1px solid var(--line,rgba(255,255,255,.2));font:inherit;font-size:11px;letter-spacing:.10em;text-transform:uppercase;padding:4px 8px;cursor:pointer;outline:none;margin-right:14px">
- <option value="newest">Newest</option>
- <option value="color">Color</option>
- <option value="style">Style</option>
- <option value="sku">SKU A→Z</option>
- <option value="title">Title A→Z</option>
- <option value="price-asc">Price ↑</option>
- <option value="price-desc">Price ↓</option>
- </select>
- <label>Grid</label>
- <input type="range" id="densitySlider" min="4" max="12" step="1" value="6" aria-label="Grid columns">
- <span class="ct" id="densityLabel">6 cols</span>
- <div class="search">
- <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-5.5-5.5"/></svg>
- <input type="text" id="searchInput" placeholder="Search by pattern, color…" autocomplete="off">
- </div>
- </div>
-
- <div class="stat-line" id="statLine">Loading…</div>
- <div class="grid" id="grid"></div>
- <div class="loading" id="loading">Loading more…</div>
- <div class="sentinel" id="sentinel"></div>
-</section>
-
-<footer>
- <div class="footer-grid">
- <div>
- <div class="footer-brand">Studio Toten</div>
- <p class="footer-text">Studio Toten — real samples ship free.</p>
- <p class="footer-text" style="margin-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;color:var(--paper);opacity:0.7"><a href="/about" style="color:inherit;text-decoration:none;border-bottom:1px solid var(--accent)">About →</a></p>
- </div>
- <div class="footer-col">
- <h4>Aesthetic</h4>
- <div id="footerFacets"></div>
- </div>
- <div class="footer-col">
- <h4>Trade</h4>
- <button onclick="dwmOpen('Inquiry')">Project Inquiry</button>
- <button onclick="dwmOpen('Sample')">Request Sample</button>
- <button onclick="dwmOpen('Contact')">Contact</button>
- </div>
-
- <div class="footer-col">
- <h4>Social</h4>
- <a class="fb-link" href="https://www.facebook.com/SteveAbramsDesigns.DesignerWallcoverings" target="_blank" rel="noopener">Facebook</a>
- </div>
- </div>
- <div class="footer-bottom">
- <span>architecturalwallcoverings.com · Studio Toten</span>
- <span><a href="mailto:info@architecturalwallcoverings.com" style="color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px">info@architecturalwallcoverings.com</a></span>
- <span id="footerStat"></span>
- </div>
-</footer>
-
-<script>
-// mini-constellation — 43 niche-stars, current site highlighted in gold
-(function(){
- const SLUG = "architecturalwallcoverings";
- const NICHES = [
- ['silkwallpaper','Silk','mat'],['silkwallcoverings','Silk W/C','mat'],['linenwallpaper','Linen','mat'],
- ['jutewallpaper','Jute','mat'],['raffiawallcoverings','Raffia W/C','mat'],['raffiawalls','Raffia Walls','mat'],
- ['corkwallcovering','Cork','mat'],['fabricwallpaper','Fabric','mat'],['textilewallpaper','Textile','mat'],
- ['metallicwallpaper','Metallic','mat'],['silverleafwallpaper','Silver Leaf','mat'],['vinylwallpaper','Vinyl','mat'],
- ['micawallpaper','Mica','mat'],['madagascarwallpaper','Madagascar','mat'],['mylarwallpaper','Mylar','mat'],
- ['suedewallpaper','Suede','mat'],
- ['1800swallpaper','1800s','dec'],['1890swallpaper','1890s','dec'],['1900swallpaper','1900s','dec'],
- ['1920swallpaper','1920s','dec'],['1930swallpaper','1930s','dec'],['1940swallpaper','1940s','dec'],
- ['1950swallpaper','1950s','dec'],['1960swallpaper','1960s','dec'],['1970swallpaper','1970s','dec'],
- ['1980swallpaper','1980s','dec'],['retrowalls','Retro','dec'],['wallpapersback','W. Back','dec'],
- ['agedwallpaper','Aged','cra'],['handcraftedwallpaper','Handcrafted','cra'],['museumwallpaper','Museum','cra'],
- ['restorationwallpaper','Restoration','cra'],['pastelwallpaper','Pastel','cra'],['glitterwalls','Glitter','cra'],
- ['greenwallcoverings','Green','cra'],['naturalwallcoverings','Natural','cra'],['saloonwallpaper','Saloon','cra'],
- ['contractwallpaper','Contract','use'],['hotelwallcoverings','Hotel','use'],['hospitalitywallpaper','Hospitality','use'],
- ['healthcarewallpaper','Healthcare','use'],['restaurantwallpaper','Restaurant','use'],['architecturalwallcoverings','Architectural','use']
- ];
- const COLOR = { mat:'#c9b687', dec:'#b86a4a', cra:'#6b8e6f', use:'#4a6b8e' };
- const W = 1080, H = 200, BANDS = ['mat','dec','cra','use'];
- const groups = { mat:[], dec:[], cra:[], use:[] };
- for (const n of NICHES) groups[n[2]].push(n);
- const svg = document.getElementById('miniConst');
- if (!svg) return;
- const bandW = W / BANDS.length;
- let nodes = '';
- BANDS.forEach((band, bi) => {
- const list = groups[band];
- const cx = bi * bandW + bandW / 2;
- list.forEach((n, i) => {
- const t = list.length === 1 ? 0.5 : i / (list.length - 1);
- // deterministic jitter per slug
- let h = 0; for (let k = 0; k < n[0].length; k++) h = (h * 31 + n[0].charCodeAt(k)) | 0;
- const jx = ((h & 0xff) / 255 - 0.5) * (bandW * 0.5);
- const jy = (((h >> 8) & 0xff) / 255 - 0.5) * 6; // tightened from 14 → 6 to prevent same-band collisions (16 mat nodes / 144px = 9px spacing)
- const x = cx + jx, y = 28 + t * (H - 56) + jy;
- const isCurrent = n[0] === SLUG;
- const r = isCurrent ? 8 : 4;
- const op = isCurrent ? 1 : 0.55;
- nodes += `<g class="mc-node" data-slug="${n[0]}" data-label="${n[1]}" style="cursor:pointer">
- <circle cx="${x}" cy="${y}" r="${r}" fill="url(#dna-${band})" fill-opacity="${op}" stroke="${COLOR[band]}" stroke-opacity="${isCurrent?1:0.7}" stroke-width="${isCurrent?2:1}">
- <title>${n[1]} — ${n[0]}.com</title>
- </circle>
- ${isCurrent ? `<circle cx="${x}" cy="${y}" r="${r+5}" fill="none" stroke="${COLOR[band]}" stroke-opacity="0.4" stroke-width="1"><animate attributeName="r" values="${r+5};${r+12};${r+5}" dur="2.4s" repeatCount="indefinite"/><animate attributeName="stroke-opacity" values="0.4;0;0.4" dur="2.4s" repeatCount="indefinite"/></circle>` : ''}
- </g>`;
- });
- });
- // append nodes after defs
- svg.insertAdjacentHTML('beforeend', nodes);
- svg.querySelectorAll('.mc-node').forEach(n => {
- n.addEventListener('mouseenter', () => n.querySelector('circle').setAttribute('fill-opacity', '1'));
- n.addEventListener('mouseleave', e => {
- const isCurrent = n.dataset.slug === SLUG;
- n.querySelector('circle').setAttribute('fill-opacity', isCurrent ? '1' : '0.55');
- });
- n.addEventListener('click', () => window.open('https://' + n.dataset.slug + '.com', '_blank'));
- });
-})();
-</script>
-
-<script>
-const state = { q:'', facet:'all', page:1, pages:1, total:0, loading:false, exhausted:false };
-const LABELS = {"all":"All"};
-
-function escAttr(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[c])); }
-// Image-URL allowlist: only DW Shopify CDN + designerwallcoverings.com (defends against XSS via crafted products.json)
-function safeImg(u) { return /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(u || '') ? u : '/hero-bg.jpg'; }
-function cardHTML(p) {
- const eager = state.page === 1;
- return '<img loading="' + (eager ? 'eager' : 'lazy') + '"' + (eager ? ' fetchpriority="high"' : '') + ' src="' + escAttr(safeImg(p.image_url)) + '" alt="' + escAttr(p.title) + '">'
- + '<div class="overlay">'
- + '<div class="pat">' + escAttr(p.pattern_name || p.title) + '</div>'
- + '<div class="ven">' + escAttr((p.vendor || '').replace(/-/g, ' ')) + '</div>'
- + '<div class="actions">'
- + '<button class="sample-btn" onclick="event.stopPropagation();dwmOpen(\'Sample\',' + JSON.stringify({sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}).replace(/"/g,'"') + ')">Sample</button>'
- + '</div></div>';
-}
-
-async function loadFacets() {
- let f;
- try {
- const r = await fetch('/api/facets');
- if (!r.ok) throw new Error('HTTP ' + r.status);
- f = await r.json();
- } catch (e) { console.error('loadFacets failed:', e); return; }
- const el = document.getElementById('facets');
- for (const [k, v] of Object.entries(f.aesthetics).sort((a,b) => b[1] - a[1])) {
- const b = document.createElement('button');
- b.className = 'chip'; b.dataset.facet = k;
- b.innerHTML = (LABELS[k] || k) + ' <span style="opacity:.55;font-weight:500;margin-left:4px">' + v + '</span>';
- el.appendChild(b);
- }
- el.addEventListener('click', e => {
- if (e.target.tagName !== 'BUTTON') return;
- document.querySelectorAll('#facets button').forEach(b => b.classList.remove('active'));
- e.target.classList.add('active');
- state.facet = e.target.dataset.facet;
- resetGrid();
- });
- document.getElementById('totalCount').textContent = f.total;
- document.getElementById('footerStat').textContent = f.total + ' patterns · live archive';
- // Footer aesthetic links
- const footerEl = document.getElementById('footerFacets');
- for (const [k] of Object.entries(f.aesthetics)) {
- const b = document.createElement('button');
- b.textContent = LABELS[k] || k;
- b.onclick = () => { state.facet = k; resetGrid(); document.querySelectorAll('#facets button').forEach(x => x.classList.toggle('active', x.dataset.facet === k)); document.getElementById('shop').scrollIntoView({behavior:'smooth'}); };
- footerEl.appendChild(b);
- }
-}
-
-function resetGrid() {
- state.page = 1; state.exhausted = false;
- document.getElementById('grid').innerHTML = '';
- document.getElementById('loading').textContent = 'Loading…';
- loadGridPage();
-}
-
-async function loadGridPage() {
- if (state.loading || state.exhausted) return;
- state.loading = true;
- const params = new URLSearchParams({ page:state.page, limit:24 });
- if (state.q) params.set('q', state.q);
- if (state.facet !== 'all') params.set('aesthetic', state.facet);
- let data;
- try {
- const r = await fetch('/api/products?' + params);
- if (!r.ok) throw new Error('HTTP ' + r.status);
- data = await r.json();
- } catch (e) {
- console.error('loadGridPage failed:', e);
- document.getElementById('loading').textContent = '— offline — refresh to retry —';
- state.loading = false;
- return;
- }
- state.total = data.total; state.pages = data.pages;
-
- if (state.page === 1) {
- document.getElementById('statLine').textContent = data.total + ' patterns · ' + (state.facet === 'all' ? 'all aesthetics' : (LABELS[state.facet] || state.facet)) + (state.q ? ' · matching "' + state.q + '"' : '');
- }
- const grid = document.getElementById('grid');
- for (const p of data.items) {
- const a = document.createElement('a');
- a.className = 'card'; a.href = '#'; a.onclick = (e) => { e.preventDefault(); dwmOpen('Sample',{sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}); };
- a.innerHTML = cardHTML(p);
- grid.appendChild(a);
- }
- if (state.page >= state.pages || data.items.length === 0) {
- state.exhausted = true;
- document.getElementById('loading').textContent = state.total > 0 ? '— end of archive · ' + state.total + ' patterns —' : '';
- } else state.page++;
- state.loading = false;
-}
-
-const io = new IntersectionObserver(es => { for (const e of es) if (e.isIntersecting) loadGridPage(); }, { rootMargin:'600px 0px' });
-io.observe(document.getElementById('sentinel'));
-
-document.getElementById('searchInput').addEventListener('input', e => {
- state.q = e.target.value.trim();
- clearTimeout(window._t);
- window._t = setTimeout(resetGrid, 220);
-});
-
-// Density slider
-const slider = document.getElementById('densitySlider');
-const dlabel = document.getElementById('densityLabel');
-function setDensity(n) {
- document.documentElement.style.setProperty('--cols', n);
- dlabel.textContent = n + ' cols';
- try { localStorage.setItem('arch_theme_density', n); } catch(e){}
-}
-slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
-const savedDensity = parseInt(localStorage.getItem('arch_theme_density') || '6');
-if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
-
-// Theme toggle
-const tb = document.getElementById('theme-toggle');
-function setTheme(t){ document.documentElement.dataset.theme = t; try { localStorage.setItem('arch_theme', t); } catch(e){} tb.textContent = t === 'dark' ? '☾' : '☀'; }
-setTheme(document.documentElement.dataset.theme || 'light');
-tb.addEventListener('click', () => setTheme(document.documentElement.dataset.theme === 'dark' ? 'light' : 'dark'));
-
-loadFacets();
-loadGridPage();
-</script>
-<!-- ============================================================
- DW UNIVERSAL CONTACT MODULE — fashion-house UX
- Inject before </body> in every DW-family sister site.
- Self-contained: CSS + 4 modals + JS submission handlers.
- Uses host site's CSS vars (--bg, --fg, --gold, --rule).
- ============================================================ -->
-<style>
- /* === MODAL BASE === */
- .dwm{position:fixed;inset:0;background:rgba(0,0,0,0.78);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;overflow-y:auto}
- .dwm.open{display:flex}
- .dwm-box{background:var(--bg);border:1px solid var(--rule);max-width:520px;width:100%;padding:36px 32px;position:relative;max-height:90vh;overflow-y:auto;animation:dwm-in 0.25s ease}
- @keyframes dwm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
- .dwm-box h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;font-size:32px;line-height:1.05;margin-bottom:6px;color:var(--fg);letter-spacing:-0.01em}
- .dwm-box .sub{color:var(--muted);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
- .dwm-close{position:absolute;top:18px;right:18px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;width:32px;height:32px;line-height:1;padding:0}
- .dwm-close:hover{color:var(--gold)}
- .dwm-preview{display:flex;gap:14px;align-items:center;padding:12px;background:var(--bg-soft);margin-bottom:18px}
- .dwm-preview img{width:64px;height:64px;object-fit:cover}
- .dwm-preview .pn{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;line-height:1.2;color:var(--fg)}
- .dwm-preview .pc{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
- .dwm-field{margin-bottom:14px}
- .dwm-field label{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
- .dwm-field input,.dwm-field textarea,.dwm-field select{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:8px 4px;font-size:14px;font-family:inherit;color:var(--fg);outline:none;transition:border-color 0.2s}
- .dwm-field input:focus,.dwm-field textarea:focus{border-bottom-color:var(--gold)}
- .dwm-field textarea{min-height:60px;resize:vertical}
- .dwm-submit{background:transparent;color:var(--muted, #c9b89e);border:1px solid var(--muted, #c9b89e);padding:14px 28px;font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:700;cursor:pointer;width:100%;margin-top:8px;transition:background 0.15s, color 0.15s}
- .dwm-submit:hover{background:var(--muted, #c9b89e);color:var(--bg, #000)}
-
- .dwm-submit:disabled{opacity:0.5;cursor:default}
- .dwm-status{margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;display:none}
- .dwm-status.ok{color:var(--sage);display:block}
- .dwm-status.err{color:#e08070;display:block}
- /* contact-options */
- .dwm-options{display:flex;flex-direction:column;gap:10px}
- .dwm-option{display:flex;align-items:center;gap:14px;padding:18px 20px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;transition:all 0.2s;text-align:left;width:100%}
- .dwm-option:hover{border-color:var(--gold);color:var(--gold)}
- .dwm-option svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}
- .dwm-option .lbl{flex:1;display:block}
- .dwm-option .val{display:block;font-size:10px;letter-spacing:0.14em;text-transform:none;font-weight:500;opacity:0.65;margin-top:4px}
-
-/* graphics-loop pass 5: serif hero typography + nav legibility */
-.cinema h1, h1.headline { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; letter-spacing: -0.01em }
-.h-link { font-size: 13px; letter-spacing: 0.06em }
-
-/* graphics-loop pass 11: Ideas rails */
-#ideas { padding: 56px 24px 24px; max-width:1600px; margin:0 auto }
-#ideas .rail-block { margin-bottom:48px }
-#ideas .rail-eyebrow { font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:var(--muted, #888); margin-bottom:8px }
-#ideas .rail-title { font-size:clamp(22px,2.6vw,32px); font-weight:500; letter-spacing:-0.01em; margin:0 0 18px; color:var(--ink,#fff) }
-#ideas .rail { display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:8px; scrollbar-width:none }
-#ideas .rail::-webkit-scrollbar { display:none }
-#ideas .rail-card { flex:0 0 240px; scroll-snap-align:start; cursor:pointer; transition:transform 0.2s }
-#ideas .rail-card:hover { transform:translateY(-3px) }
-#ideas .rail-card img { width:100%; aspect-ratio:1; object-fit:cover; display:block; background:var(--card,#222) }
-#ideas .rail-card .rc-title { font-size:13px; font-weight:500; color:var(--paper,#fff); padding:8px 0 2px; line-height:1.3 }
-#ideas .rail-card .rc-meta { font-size:11px; color:var(--muted,#888); letter-spacing:0.06em }
-@media (max-width:720px) { #ideas .rail-card { flex:0 0 160px } }
-</style>
-
-<!-- Contact options modal -->
-<div class="dwm" id="dwmContact" onclick="if(event.target===this)dwmClose('Contact')">
- <div class="dwm-box" style="max-width:440px">
- <button class="dwm-close" onclick="dwmClose('Contact')" aria-label="Close">×</button>
- <h3>Contact</h3>
- <p class="sub" id="dwmContactSub">Three ways to reach us</p>
- <div class="dwm-options">
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Inquiry')">
- <svg viewBox="0 0 24 24"><path d="M4 4h16v12H7l-3 3z"/></svg>
- <span class="lbl">Send an Inquiry<span class="val">Project name · scope · all the details</span></span>
- </button>
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Sample')">
- <svg viewBox="0 0 24 24"><rect x="4" y="6" width="16" height="14"/><path d="M4 10h16M9 6V3h6v3"/></svg>
- <span class="lbl">Request a Sample<span class="val">Memo sample · ships free · 3–5 business days</span></span>
- </button>
- <a class="dwm-option" id="dwmContactEmailLink" href="mailto:info@architecturalwallcoverings.com">
- <svg viewBox="0 0 24 24"><path d="M3 6h18v12H3z"/><path d="M3 6l9 7 9-7"/></svg>
- <span class="lbl">Email Us<span class="val" id="dwmContactEmailLabel">info@architecturalwallcoverings.com</span></span>
- </a>
- </div>
- </div>
-</div>
-
-<!-- Inquiry modal -->
-<div class="dwm" id="dwmInquiry" onclick="if(event.target===this)dwmClose('Inquiry')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Inquiry')" aria-label="Close">×</button>
- <h3>Project Inquiry</h3>
- <p class="sub">We'll respond within one business day</p>
- <form id="dwmInquiryForm" onsubmit="return dwmSubmit(event,'inquiry')">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Phone</label><input type="tel" name="phone"></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Project Name</label><input type="text" name="projectName" required></div>
- <div class="dwm-field"><label>Project Scope</label><textarea name="projectScope" placeholder="Square footage · room count · timeline" required></textarea></div>
- <div class="dwm-field"><label>Additional Information</label><textarea name="message" placeholder="Patterns of interest, finish preferences, budget"></textarea></div>
- <button type="submit" class="dwm-submit">Send Inquiry</button>
- <div class="dwm-status" id="dwmInquiryStatus"></div>
- </form>
- </div>
-</div>
-
-<!-- Sample-request modal -->
-<div class="dwm" id="dwmSample" onclick="if(event.target===this)dwmClose('Sample')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Sample')" aria-label="Close">×</button>
- <h3>Request a Sample</h3>
- <p class="sub">Memo sample · ships free · 3–5 business days</p>
- <div class="dwm-preview" id="dwmSamplePreview" style="display:none">
- <img id="dwmSampleImg" src="" alt="">
- <div><div class="pn" id="dwmSampleName"></div><div class="pc" id="dwmSampleSku"></div></div>
- </div>
- <form id="dwmSampleForm" onsubmit="return dwmSubmit(event,'sample')">
- <input type="hidden" name="sku" id="dwmSampleSkuInput">
- <input type="hidden" name="title" id="dwmSampleTitleInput">
- <input type="hidden" name="image_url" id="dwmSampleImageInput">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Shipping Address</label><input type="text" name="address" placeholder="Street" required></div>
- <div class="dwm-field" style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px">
- <input type="text" name="city" placeholder="City" required>
- <input type="text" name="state" placeholder="State" required>
- <input type="text" name="zip" placeholder="ZIP" required>
- </div>
- <div class="dwm-field"><label>Notes (optional)</label><textarea name="message" placeholder="Project, sq.ft., timing"></textarea></div>
- <button type="submit" class="dwm-submit">Send Sample Request</button>
- <div class="dwm-status" id="dwmSampleStatus"></div>
- </form>
- </div>
-</div>
-
-<script>
- // Universal modal control
- function dwmOpen(name, opts){
- document.getElementById('dwm' + name).classList.add('open');
- document.body.style.overflow = 'hidden';
- if (name === 'Sample' && opts) {
- document.getElementById('dwmSamplePreview').style.display = 'flex';
- document.getElementById('dwmSampleImg').src = opts.image_url || '';
- document.getElementById('dwmSampleName').textContent = opts.title || '';
- document.getElementById('dwmSampleSku').textContent = opts.sku || '';
- document.getElementById('dwmSampleSkuInput').value = opts.sku || '';
- document.getElementById('dwmSampleTitleInput').value = opts.title || '';
- document.getElementById('dwmSampleImageInput').value = opts.image_url || '';
- } else if (name === 'Sample') {
- document.getElementById('dwmSamplePreview').style.display = 'none';
- document.getElementById('dwmSampleSkuInput').value = '';
- document.getElementById('dwmSampleTitleInput').value = '';
- document.getElementById('dwmSampleImageInput').value = '';
- }
- }
- function dwmClose(name){ document.getElementById('dwm'+name).classList.remove('open'); document.body.style.overflow=''; }
-
- // Universal form submit — POSTs to /api/send-{kind}
- async function dwmSubmit(e, kind) {
- e.preventDefault();
- const form = e.target;
- const data = Object.fromEntries(new FormData(form).entries());
- const btn = form.querySelector('.dwm-submit');
- const status = form.querySelector('.dwm-status');
- btn.disabled = true; const orig = btn.textContent; btn.textContent = 'Sending…';
- status.className = 'dwm-status';
- try {
- const r = await fetch('/api/send-' + kind, { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
- if (!r.ok) throw new Error('HTTP '+r.status);
- const j = await r.json();
- status.textContent = kind === 'sample' ? 'Sample request sent — ships within 3–5 business days' : 'Inquiry sent — we respond within 1 business day';
- status.className = 'dwm-status ok';
- btn.textContent = 'Sent ✓';
- setTimeout(() => { dwmClose(kind === 'sample' ? 'Sample' : 'Inquiry'); btn.disabled = false; btn.textContent = orig; status.className = 'dwm-status'; form.reset(); }, 2800);
- } catch (err) {
- status.textContent = 'Send failed — please email info@designerwallcoverings.com';
- status.className = 'dwm-status err';
- btn.disabled = false; btn.textContent = orig;
- }
- return false;
- }
-
- // Wire up "Memo samples ship free" badge in hero to open sample modal directly
- document.querySelectorAll('.hero .badge, [data-open-sample]').forEach(el => {
- el.style.cursor = 'pointer';
- el.addEventListener('click', () => dwmOpen('Sample'));
- });
-
- // Wire nav "Trade" link to inquiry modal
- document.querySelectorAll('nav a[href*="designerwallcoverings.com"]').forEach(a => {
- a.removeAttribute('target');
- a.removeAttribute('href');
- a.style.cursor = 'pointer';
- a.addEventListener('click', e => { e.preventDefault(); dwmOpen('Contact'); });
- });
-
- // Override product card clicks — open Sample modal pre-filled instead of redirecting to DW
- document.addEventListener('click', e => {
- const card = e.target.closest('.card, .rail-card');
- if (!card) return;
- if (card.tagName === 'A' && (card.getAttribute('href') || '').startsWith('/sample/')) {
- e.preventDefault();
- const img = card.querySelector('img');
- const pat = card.querySelector('.pat');
- const sku = card.getAttribute('href').replace('/sample/', '');
- dwmOpen('Sample', {
- sku,
- title: pat ? pat.textContent.trim() : '',
- image_url: img ? img.src : ''
- });
- }
- }, true);
-// DW STANDARD: hero pulls from products.json[0].image_url so dw-collections-viewer
-// drag-drop / hero-pin updates the live front page on next deploy.
-// Always upgrades to the largest Shopify variant (strips _NxN size suffix) so
-// the full-page hero stays sharp.
-// DW STANDARD: hero rotates through top-20 NEWEST products on each visit
-// (novasuede.com pattern). Fetches /api/products?limit=100, sorts by created_at desc,
-// takes the freshest 20, picks one per visit via localStorage counter.
-// Falls back to static /hero-bg.jpg on any error.
-(async function rotateHero() {
- try {
- const r = await fetch('/api/products?limit=100');
- if (!r.ok) return;
- const d = await r.json();
- const items = (d.items || [])
- .filter(p => p && p.image_url && /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(p.image_url))
- .sort((a,b) => String(b.created_at || '').localeCompare(String(a.created_at || '')))
- .slice(0, 20);
- if (!items.length) return;
- let visits = 0;
- try {
- visits = parseInt(localStorage.getItem('hero_visits') || '0', 10) || 0;
- localStorage.setItem('hero_visits', String(visits + 1));
- } catch(e) {}
- const pick = items[visits % items.length];
- // Strip _NxN size suffix to get the largest CDN variant
- const url = pick.image_url.replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- const bg = document.getElementById('heroBg') || document.getElementById('cinemaBg');
- if (bg) bg.style.backgroundImage = "url('" + url + "')";
- } catch (e) {}
-})();
-
-
-// DW STANDARD sort-select wire-up (added by fleet patcher)
-(function(){
- const sortSel = document.getElementById('sortSelect');
- if (!sortSel) return;
- const KEY = location.hostname.replace(/\./g, '_') + '_sort';
- const saved = localStorage.getItem(KEY);
- if (saved) { try { sortSel.value = saved; } catch(e){} }
- if (typeof state !== 'undefined') state.sort = sortSel.value;
- sortSel.addEventListener('change', e => {
- const v = e.target.value;
- try { localStorage.setItem(KEY, v); } catch(e){}
- if (typeof state !== 'undefined') state.sort = v;
- if (typeof resetGrid === 'function') resetGrid();
- else location.reload();
- });
-})();
-
-// graphics-loop pass 11: hydrate Ideas rails from /api/products
-(async function hydrateIdeas() {
- try {
- const r = await fetch('/api/products?limit=80');
- if (!r.ok) return;
- const d = await r.json();
- const items = (d.items || []).filter(p => p && p.image_url);
- if (!items.length) return;
- const sorted = [...items].sort((a,b) => String(b.created_at || '').localeCompare(String(a.created_at || '')));
- const newest = sorted.slice(0, 12);
- // Curated = deterministic offset slice (every 5th item starting at idx 3) for variety
- const curated = items.filter((_, i) => i % 5 === 3).slice(0, 12);
- function card(p) {
- const url = (p.image_url || '').replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- return '<a class="rail-card" href="/sample/' + encodeURIComponent(p.handle || p.sku) + '">' +
- '<img src="' + url + '" alt="' + (p.title || '').replace(/"/g, '"') + '" loading="lazy">' +
- '<div class="rc-title">' + ((p.title || '').split('|')[0] || '').trim() + '</div>' +
- '<div class="rc-meta">' + (p.vendor || '') + '</div>' +
- '</a>';
- }
- const r1 = document.getElementById('railNewest');
- const r2 = document.getElementById('railCurated');
- if (r1) r1.innerHTML = newest.map(card).join('');
- if (r2) r2.innerHTML = curated.map(card).join('');
- } catch(e) {}
-})();
-</script>
-
-</body>
-</html>
diff --git a/public/index.html.bak.nspropagate.1778226888776 b/public/index.html.bak.nspropagate.1778226888776
deleted file mode 100644
index 15ca3ab..0000000
--- a/public/index.html.bak.nspropagate.1778226888776
+++ /dev/null
@@ -1,973 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
-<meta charset="utf-8">
-<!-- Google tag (gtag.js) -->
-<script async src="https://www.googletagmanager.com/gtag/js?id=G-PN839G9FD8"></script>
-<script>
- window.dataLayer = window.dataLayer || [];
- function gtag(){dataLayer.push(arguments);}
- gtag('js', new Date());
- gtag('config', 'G-PN839G9FD8');
-</script>
-
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>Studio Toten — architectural. Useful.</title>
-<meta name="description" content="Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.">
-<meta name="theme-color" content="#F5F2ED">
-<link rel="canonical" href="https://architecturalwallcoverings.com/">
-<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&display=swap" rel="stylesheet">
-<link rel="preload" as="image" href="/hero-bg.jpg" fetchpriority="high">
-<script type="application/ld+json">
-{
- "@context": "https://schema.org",
- "@type": "Organization",
- "name": "Studio Toten",
- "url": "https://architecturalwallcoverings.com/",
- "email": "info@architecturalwallcoverings.com"
-}
-</script>
-<script src="/zd-loader.js" defer></script>
-<style>
-:root {
- --bg: #F5F2ED;
- --paper: #1A1A1A;
- --muted: #8B7866;
- --line: #D5CFC4;
- --accent: #1A1A1A;
- --bg-soft: #D5CFC4;
- --cols: 6;
-}
-html[data-theme="dark"] {
- --bg: #1a1410;
- --paper: #F5F2ED;
- --muted: #C9B89E;
- --line: rgba(255,254,250,0.12);
- --accent: #1A1A1A;
- --bg-soft: #2a1f15;
-}
-* { margin:0; padding:0; box-sizing:border-box }
-html { scroll-behavior:smooth }
-body { font-family:'Inter', sans-serif; color:var(--paper); -webkit-font-smoothing:antialiased; background:var(--bg); min-height:100vh; overflow-x:hidden }
-/* DW-FASHION-TEMPLATE-OVERRIDE */
-.section-title .accent, .footer-brand, .center-mark, h1, h2, h3 { font-family:'Inter', Georgia, serif !important; font-weight:400 !important; }
-
-/* ===== Auto-hide header ===== */
-header { position:fixed; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 32px; z-index:100; background:rgba(0,0,0,0.55); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:transform .3s }
-.h-link { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); text-decoration:none; cursor:pointer; background:transparent; border:0 }
-.h-link:hover { opacity:0.7 }
-.h-icon { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }
-
-/* ===== Cinema hero ===== */
-.cinema { position:relative; height:100vh; width:100%; overflow:hidden }
-.cinema-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-image:url('/hero-bg.jpg') }
-.cinema-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.75) 100%) }
-.corner-mark { position:absolute; top:24px; left:32px; font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,0.55), 0 0 1px rgba(0,0,0,0.4); z-index:5 }
-.corner-mark::before { content:"◆ "; margin-right:6px }
-.center-mark { position:absolute; top:clamp(80px,12vh,140px); left:50%; transform:translateX(-50%); font-size:clamp(28px,4vw,56px); font-weight:500; letter-spacing:0.18em; text-transform:uppercase; text-align:center; color:#fff; text-shadow:0 2px 8px rgba(0,0,0,0.65), 0 0 1px rgba(0,0,0,0.5); z-index:5 }
-.center-mark .tm { font-size:14px; vertical-align:super; opacity:0.7; margin-left:0.2em }
-.center-mark .sub { display:block; font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400; font-size:0.4em; letter-spacing:0.04em; text-transform:none; margin-top:14px; opacity:0.85 }
-.meta-line { position:absolute; bottom:32px; left:32px; font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:700; color:#fff; z-index:5; opacity:0.85 }
-.meta-line .num { font-size:12px; display:block; margin-top:4px; letter-spacing:0.05em }
-.enter { position:absolute; bottom:32px; right:32px; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:0.36em; text-transform:uppercase; font-weight:700; color:#fff; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #fff; transition:gap 0.25s; z-index:5 }
-.enter:hover { gap:22px }
-.enter svg { width:24px; height:12px }
-
-/* ===== Section ===== */
-.section { padding:96px 32px }
-.section-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--line) }
-.section-title { font-size:clamp(36px,5vw,64px); font-weight:300; letter-spacing:-0.02em; line-height:1 }
-.section-title .accent { color: var(--accent); font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400 }
-.section-eyebrow { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:16px }
-.section-meta { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--muted); text-align:right; line-height:1.6 }
-
-/* ===== Filter bar ===== */
-.filters { display:flex; gap:8px; align-items:center; margin-bottom:18px; flex-wrap:wrap }
-.chip { padding:8px 16px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); background:transparent; border:1px solid var(--line); cursor:pointer; transition:all 0.2s; font-family:inherit }
-.chip:hover { border-color:var(--paper) }
-.chip.active { background:var(--paper); color:var(--bg); border-color:var(--paper) }
-.search { flex:0 1 280px; margin-left:auto; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:6px 0 }
-.search input { flex:1; background:transparent; border:0; color:var(--paper); font-family:inherit; font-size:13px; outline:none; letter-spacing:0.04em }
-.search input::placeholder { color:var(--muted) }
-.search svg { width:16px; height:16px; stroke:var(--muted); fill:none; stroke-width:1.5 }
-
-/* ===== Grid-density slider ===== */
-.density { display:flex; align-items:center; gap:14px; padding:6px 0; margin-bottom:24px }
-.density label { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--muted) }
-.density input[type=range] { flex:1; max-width:240px; -webkit-appearance:none; appearance:none; height:1px; background:var(--line); outline:none }
-.density input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50% }
-.density input[type=range]::-moz-range-thumb { width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50%; border:0 }
-.density .ct { font-size:11px; color:var(--muted); letter-spacing:0.18em; text-transform:uppercase; font-weight:600; min-width:80px }
-
-/* ===== Stats line ===== */
-.stat-line { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:24px }
-
-/* ===== Product grid (novasuede pattern: flush grid + slide-up overlay) ===== */
-.grid { display:grid; grid-template-columns:repeat(var(--cols), 1fr); gap:0 }
-.card { position:relative; aspect-ratio:1/1.15; cursor:pointer; overflow:hidden; border:1px solid var(--bg); transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1); background:var(--bg-soft) }
-.card:hover { transform:scale(1.04); z-index:5 }
-.card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease }
-.card .overlay { position:absolute; left:0; right:0; bottom:0; padding:20px 16px 14px; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%); transform:translateY(48%); opacity:0.85; transition:transform 0.3s ease, opacity 0.3s ease }
-.card:hover .overlay { transform:translateY(0); opacity:1 }
-.card .pat { font-size:13px; font-weight:600; letter-spacing:0.02em; color:#fff; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
-.card .ven { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#fff; opacity:0.7; font-weight:500; margin-top:4px }
-.card .actions { margin-top:10px; display:flex; gap:6px }
-.card .sample-btn { flex:1; padding:7px 10px; background:#fff; color:#000; font-family:inherit; font-size:10px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; border:0; cursor:pointer; text-align:center; transition:all 0.2s }
-.card .sample-btn:hover { background:var(--accent); color:#fff }
-
-@media (max-width:1024px) { .grid { grid-template-columns:repeat(min(var(--cols), 4), 1fr) } }
-@media (max-width:720px) { .grid { grid-template-columns:repeat(2, 1fr) } .density { display:none } }
-
-.sentinel { height:1px }
-.loading { text-align:center; color:var(--muted); padding:32px; font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700 }
-
-/* ===== Footer ===== */
-footer { padding:64px 32px 32px; border-top:1px solid var(--line); margin-top:32px }
-.footer-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; margin-bottom:48px }
-.footer-brand { font-size:24px; font-weight:300; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:12px }
-.footer-text { font-size:13px; line-height:1.6; color:var(--muted); max-width:380px }
-.footer-col h4 { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--paper); margin-bottom:18px }
-.footer-col a { display:block; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:8px; transition:color 0.2s; cursor:pointer; background:transparent; border:0; font-family:inherit; padding:0; text-align:left }
-.footer-col a:hover { color:var(--accent) }
-.footer-bottom { max-width:1400px; margin:0 auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted) }
-
-@media (max-width:720px) {
- .corner-mark, .meta-line, .enter { font-size:10px }
- .center-mark { font-size:24px; letter-spacing:0.12em; top:clamp(60px,9vh,90px) }
- .section, footer { padding-left:20px; padding-right:20px }
- .footer-grid { grid-template-columns:1fr; gap:32px }
- .search { margin-left:0; flex:1 1 100% }
-}
-
-.theme-toggle { background:transparent; border:1px solid var(--line); width:32px; height:32px; cursor:pointer; color:var(--paper); display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; transition:all .15s; padding:0 }
-.theme-toggle:hover { border-color:var(--accent); color:var(--accent) }
-
-/* ===== WCAG 2.4.7 — keyboard focus indicators ===== */
-/* Strictly :focus-visible so mouse clicks do NOT show the ring */
-a:focus-visible,
-button:focus-visible,
-input:focus-visible,
-select:focus-visible,
-textarea:focus-visible,
-[tabindex]:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
-}
-</style>
-<script>
-(function(){ try { var t = localStorage.getItem('arch_theme') || 'light'; document.documentElement.dataset.theme = t; } catch(e){} })();
-</script>
-<link rel="preconnect" href="https://fonts.googleapis.com">
-<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap">
-
-<meta property="og:type" content="website">
-<meta property="og:url" content="https://architecturalwallcoverings.com/">
-<meta property="og:title" content="Architectural Wallcoverings">
-<meta property="og:description" content="Architectural Wallcoverings — Class A specifier-grade architectural wallcoverings.">
-<meta property="og:image" content="https://architecturalwallcoverings.com/hero-bg.jpg">
-<meta property="og:site_name" content="Architectural Wallcoverings">
-<meta property="article:publisher" content="https://www.facebook.com/SteveAbramsDesigns.DesignerWallcoverings">
-<meta name="twitter:card" content="summary_large_image">
-<meta name="twitter:title" content="Architectural Wallcoverings">
-<meta name="twitter:description" content="Architectural Wallcoverings — Class A specifier-grade architectural wallcoverings.">
-<meta name="twitter:image" content="https://architecturalwallcoverings.com/hero-bg.jpg">
-<!-- graphics-loop pass 13: footer + fb -->
-</head>
-<body>
-<style id="ns-header-modal-styles">
- .ns-header { position: sticky; top: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; padding: 18px 36px; background: rgba(10,10,10,0.92) !important; backdrop-filter: blur(8px); border-bottom: 1px solid rgba(245,241,232,0.06); }
- .ns-brand { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; }
- .ns-dot { width: 28px; height: 28px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #a98b5b 0%, #5d4c32 60%, #332a1b 100%); box-shadow: 0 0 0 1px rgba(245,241,232,0.10), 0 2px 12px rgba(180,90,60,0.30); flex-shrink: 0; }
- .ns-name { font-family: -apple-system, "SF Pro Display", "Helvetica Neue", system-ui, sans-serif; font-size: 18px !important; font-weight: 300 !important; letter-spacing: 0.02em !important; color: #f5f1e8 !important; text-transform: none !important; margin: 0 !important; }
- .ns-name sup { font-size: 0.55em; font-weight: 300; margin-left: 1px; }
- .ns-nav { display: flex; gap: 32px; align-items: center; list-style: none; padding: 0; margin: 0; }
- .ns-nav a, .ns-nav button { font-family: -apple-system, "SF Pro Text", system-ui, sans-serif; font-size: 15px !important; font-weight: 400 !important; color: #f5f1e8 !important; text-decoration: none !important; background: none !important; border: 0 !important; cursor: pointer; padding: 0 !important; transition: color 200ms; letter-spacing: 0 !important; text-transform: none !important; }
- .ns-nav a:hover, .ns-nav button:hover { color: #ffffff !important; }
- @media (max-width: 820px) { .ns-header { padding: 14px 18px; } .ns-nav { gap: 16px; } .ns-nav a, .ns-nav button { font-size: 13px !important; } }
- @media (max-width: 760px) {
- .ns-header { flex-wrap: wrap; }
- .ns-nav { display: none !important; flex-basis: 100%; flex-direction: column; align-items: flex-start; gap: 6px; padding: 14px 0 4px; }
- .ns-nav.open { display: flex !important; }
- .ns-nav a, .ns-nav button { padding: 10px 0 !important; border-bottom: 1px solid rgba(245,241,232,0.08); width: 100%; text-align: left; }
- .ns-nav a:nth-child(n+5), .ns-nav button:nth-child(n+5) { display: block !important; }
- .ns-header .mobile-toggle { display: flex !important; }
- }
- @media (min-width: 761px) {
- .ns-header .mobile-toggle { display: none !important; }
- }
- .ns-modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.78); z-index: 200; align-items: center; justify-content: center; padding: 24px; backdrop-filter: blur(6px); }
- .ns-modal.show { display: flex; }
- .ns-modal-card { max-width: 460px; width: 100%; background: #141414 !important; border: 1px solid rgba(245,241,232,0.14); border-radius: 6px; padding: 28px 30px 30px; position: relative; }
- .ns-modal-card .close-x { position: absolute; top: 12px; right: 14px; width: 30px; height: 30px; background: none; border: 1px solid rgba(245,241,232,0.18); color: rgba(245,241,232,0.6) !important; border-radius: 50%; cursor: pointer; font-size: 14px; display: flex; align-items: center; justify-content: center; }
- .ns-modal-card .close-x:hover { color: #ffffff !important; border-color: #ffffff; }
- .ns-modal-card h3 { font-family: -apple-system, "SF Pro Display", system-ui; font-weight: 300 !important; font-size: 22px !important; margin: 0 0 6px !important; color: #f5f1e8 !important; }
- .ns-modal-card .sub { color: rgba(245,241,232,0.65) !important; font-size: 13px; margin: 0 0 22px; }
- .ns-actions { display: flex; flex-direction: column; gap: 10px; }
- .ns-action { display: flex; align-items: center; gap: 14px; padding: 14px 16px; background: rgba(245,241,232,0.04) !important; border: 1px solid rgba(245,241,232,0.12) !important; color: #f5f1e8 !important; text-decoration: none !important; cursor: pointer; transition: all 200ms; font: inherit; text-align: left; }
- .ns-action:hover { background: rgba(245,241,232,0.08) !important; border-color: #d4b683 !important; }
- .ns-action .ico { width: 32px; height: 32px; border-radius: 50%; background: rgba(212,182,131,0.12); display: flex; align-items: center; justify-content: center; font-size: 15px; flex-shrink: 0; }
- .ns-action .txt { flex: 1; }
- .ns-action .txt b { display: block; font-weight: 500; font-size: 14px; color: #f5f1e8 !important; }
- .ns-action .txt span { font-size: 12px; color: rgba(245,241,232,0.55) !important; }
-
- /* ─── FINAL CONTRAST PASS — kill remaining gold-solid + white-island defects ─── */
- /* Replace all gold-fill accents with off-white (Gucci-aesthetic, no DW gold solids) */
- .new-badge, .new-arrivals-pill,
- .color-filter-btn.active,
- .drapery-btn, .sample-btn-chip, .cb-cta {
- background: #f5f1e8 !important;
- color: #0a0a0a !important;
- border-color: #f5f1e8 !important;
- }
- .new-badge:hover, .new-arrivals-pill:hover,
- .color-filter-btn.active:hover,
- .drapery-btn:hover, .sample-btn-chip:hover, .cb-cta:hover {
- background: #fff !important;
- color: #0a0a0a !important;
- }
- /* Gold accents stay only as edge color (links, glyphs) — not fills */
- a { color: #d4b683; }
- a:hover { color: #f5d97a; }
- /* Authorized-dealer footer line — small caps tracked, muted ink, no gold pill */
- .authorized, .authorized-dealer p {
- background: transparent !important;
- color: rgba(245,241,232,0.5) !important;
- font-size: 10px !important;
- letter-spacing: 0.22em !important;
- text-transform: uppercase !important;
- padding: 0 !important;
- border: none !important;
- margin-top: 14px !important;
- }
- /* Kill any straggler white bg in info-card / sample-related cards */
- .info-card, .info-card-link, .care-highlight, .feature-card, .spec-item {
- background-color: rgba(245,241,232,0.04) !important;
- border-color: rgba(245,241,232,0.12) !important;
- }
- /* Ensure modal content stays readable — Steve's earlier sweep made it #141414 with white text */
- .modal-content { background: #141414 !important; color: #f5f1e8 !important; }
- .modal-content * { color: #f5f1e8 !important; }
- .modal-content input, .modal-content textarea, .modal-content select {
- background: rgba(245,241,232,0.05) !important;
- color: #f5f1e8 !important;
- border-color: rgba(245,241,232,0.2) !important;
- }
- .modal-content label { color: rgba(245,241,232,0.6) !important; }
- /* Force the wide-tracked NOVASUEDE wordmark to stay white */
- .ns-wordmark, .ns-wordmark sup { color: #f5f1e8 !important; }
-
- /* ─── Modal-internal contrast (post-QA defects) ─── */
- /* Backdrop covers full viewport */
- .modal { width: 100vw !important; height: 100vh !important; left: 0 !important; top: 0 !important; background: rgba(0, 0, 0, 0.78) !important; backdrop-filter: blur(6px); }
- /* Chip — flip from white-on-white island to dark card */
- .request-chip {
- background: rgba(245, 241, 232, 0.06) !important;
- color: #f5f1e8 !important;
- border: 1px solid rgba(245, 241, 232, 0.18) !important;
- border-radius: 4px !important;
- }
- .request-chip * { color: #f5f1e8 !important; }
- .request-chip .chip-swatch {
- /* swatch dot ALWAYS displays the inline-style hex from JS — fight any sweep */
- border: 1px solid rgba(0, 0, 0, 0.4) !important;
- }
- /* + Add to request — hairline white-border on transparent (no gold) */
- .add-to-request-btn {
- background: transparent !important;
- color: #f5f1e8 !important;
- border: 1px solid rgba(245, 241, 232, 0.6) !important;
- border-radius: 0 !important;
- padding: 12px 22px !important;
- font-size: 11px !important;
- letter-spacing: 0.32em !important;
- text-transform: uppercase !important;
- font-weight: 400 !important;
- }
- .add-to-request-btn:hover {
- background: #f5f1e8 !important;
- color: #0a0a0a !important;
- border-color: #f5f1e8 !important;
- }
- /* Hex caption visible */
- .preview-hex, #colorPreviewHex {
- display: block !important;
- color: rgba(245, 241, 232, 0.55) !important;
- font-family: ui-monospace, "SF Mono", Menlo, monospace !important;
- font-size: 11px !important;
- margin-top: 4px !important;
- letter-spacing: 0.04em !important;
- text-transform: lowercase !important;
- }
- /* Color preview name — stays single, prominent */
- #colorPreviewName {
- color: #f5f1e8 !important;
- font-size: 11px !important;
- letter-spacing: 0.32em !important;
- text-transform: uppercase !important;
- font-weight: 500 !important;
- display: block !important;
- margin-top: 12px !important;
- }
-
- /* ─── Mobile hamburger nav (replaces the overflow at <760px) ─── */
- @media (max-width: 760px) {
- header .nav-container { flex-wrap: wrap; }
- header nav { display: none; flex-basis: 100%; flex-direction: column; gap: 6px; padding: 16px 0 6px; }
- header nav.open { display: flex; }
- header nav a { padding: 10px 0; border-bottom: 1px solid rgba(245,241,232,0.1); }
- header .mobile-toggle {
- display: flex !important;
- flex-direction: column;
- gap: 5px;
- background: transparent;
- border: 0;
- cursor: pointer;
- padding: 8px;
- }
- header .mobile-toggle span {
- width: 22px; height: 1.5px;
- background: #f5f1e8;
- display: block;
- }
- }
- @media (min-width: 761px) {
- header .mobile-toggle { display: none !important; }
- }
-
- </style>
-<style id="ns-gold-kill">
- /* novasuede: kill gold-solid fills, off-white instead. Edge color stays gold. */
- .new-badge, .new-arrivals-pill,
- .color-filter-btn.active, .drapery-btn,
- .sample-btn-chip, .cb-cta {
- background: #f5f1e8 !important;
- color: #0a0a0a !important;
- border-color: #f5f1e8 !important;
- }
- .new-badge:hover, .new-arrivals-pill:hover,
- .color-filter-btn.active:hover, .drapery-btn:hover,
- .sample-btn-chip:hover, .cb-cta:hover {
- background: #fff !important;
- color: #0a0a0a !important;
- }
- </style>
-<header class="ns-header">
- <a href="/" class="ns-brand" aria-label="Home">
- <span class="ns-dot"></span>
- <span class="ns-name">Studio Toten</span>
- </a>
- <nav class="ns-nav" id="nsPrimaryNav" aria-label="Primary">
- <a href="/">Home</a>
- <a href="/about">About</a>
- <button type="button" onclick="nsContactOpen()">Contact</button>
- </nav>
- <button type="button" class="mobile-toggle" aria-label="Toggle menu" aria-controls="nsPrimaryNav" aria-expanded="false" onclick="nsToggleNav(this)">
- <span></span><span></span><span></span>
- </button>
- </header>
-
-<div class="ns-modal" id="nsContactModal" role="dialog" aria-modal="true" aria-labelledby="nsContactTitle" onclick="if(event.target===this)nsContactClose()">
- <div class="ns-modal-card">
- <button type="button" class="close-x" onclick="nsContactClose()" aria-label="Close">×</button>
- <h3 id="nsContactTitle">How can we help?</h3>
- <p class="sub">Trade-account replies within one business day.</p>
- <div class="ns-actions">
- <a class="ns-action" href="#contact" onclick="nsContactClose()"><span class="ico">📋</span><div class="txt"><b>Get a Quote</b><span>Project specs → priced estimate</span></div></a>
- <a class="ns-action" href="#contact" onclick="nsContactClose();openModal();"><span class="ico">📦</span><div class="txt"><b>Order a Sample</b><span>Free swatch to your shop</span></div></a>
- <a class="ns-action" href="mailto:info@architecturalwallcoverings.com?subject=Studio%20Toten%20inquiry"><span class="ico">✉️</span><div class="txt"><b>Email Us</b><span>info@architecturalwallcoverings.com</span></div></a>
- <a class="ns-action" href="tel:888-373-4564"><span class="ico">📞</span><div class="txt"><b>Call Us</b><span>(888) 373-4564 · M–F, 9–5 PT</span></div></a>
- </div>
- </div>
- </div>
-<script>
- function nsContactOpen() { var m = document.getElementById('nsContactModal'); if (m) m.classList.add('show'); }
- function nsContactClose() { var m = document.getElementById('nsContactModal'); if (m) m.classList.remove('show'); }
- function nsToggleNav(btn) {
- var nav = document.getElementById('nsPrimaryNav');
- if (!nav) return;
- var open = nav.classList.toggle('open');
- btn.setAttribute('aria-expanded', open ? 'true' : 'false');
- }
- document.addEventListener('keydown', function(e){ if (e.key === 'Escape') nsContactClose(); });
-</script>
-
-
-
-
-
-
-
-
-
-<header>
- <button class="h-link" onclick="dwmOpen('Contact')" aria-label="Contact"><svg class="h-icon" viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/></svg><span>Contact</span></button>
- <button class="theme-toggle" id="theme-toggle" aria-label="Theme toggle">☾</button>
-</header>
-
-<section class="cinema">
- <div class="cinema-bg" id="heroBg"></div>
- <div class="corner-mark">Specifier-Grade</div>
- <div class="center-mark">Architectural Wallcoverings</div>
- <div class="meta-line">Architectural · Specifier · Class A · Contract<span class="num" id="heroNum"></span></div>
- <a class="enter" href="#shop">Enter <svg viewBox="0 0 24 12" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M0 6h22M16 1l6 5-6 5"/></svg></a>
-</section>
-
-
-<section class="section" id="ideas">
- <div class="rail-block">
- <div class="rail-eyebrow">Ideas</div>
- <h2 class="rail-title">New this week</h2>
- <div class="rail" id="railNewest"></div>
- </div>
- <div class="rail-block">
- <div class="rail-eyebrow">Ideas</div>
- <h2 class="rail-title">Curated picks</h2>
- <div class="rail" id="railCurated"></div>
- </div>
-</section>
-
-<section class="section" id="shop">
- <div class="section-header">
- <div>
- <div class="section-eyebrow">The Collection</div>
- <h2 class="section-title"><span class="accent" id="totalCount">—</span> Patterns.</h2>
- </div>
- <div class="section-meta">Architectural · Specifier · Class A · Contract</div>
- </div>
-
- <div class="filters" id="facets">
- <button class="chip active" data-facet="all">All</button>
- </div>
-
- <div class="density">
- <label>Sort</label>
- <select id="sortSelect" aria-label="Sort products" style="background:transparent;color:inherit;border:1px solid var(--line,rgba(255,255,255,.2));font:inherit;font-size:11px;letter-spacing:.10em;text-transform:uppercase;padding:4px 8px;cursor:pointer;outline:none;margin-right:14px">
- <option value="newest">Newest</option>
- <option value="color">Color</option>
- <option value="style">Style</option>
- <option value="sku">SKU A→Z</option>
- <option value="title">Title A→Z</option>
- <option value="price-asc">Price ↑</option>
- <option value="price-desc">Price ↓</option>
- </select>
- <label>Grid</label>
- <input type="range" id="densitySlider" min="4" max="12" step="1" value="6" aria-label="Grid columns">
- <span class="ct" id="densityLabel">6 cols</span>
- <div class="search">
- <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-5.5-5.5"/></svg>
- <input type="text" id="searchInput" placeholder="Search by pattern, color…" autocomplete="off">
- </div>
- </div>
-
- <div class="stat-line" id="statLine">Loading…</div>
- <div class="grid" id="grid"></div>
- <div class="loading" id="loading">Loading more…</div>
- <div class="sentinel" id="sentinel"></div>
-</section>
-
-<footer>
- <div class="footer-grid">
- <div>
- <div class="footer-brand">Studio Toten</div>
- <p class="footer-text">Studio Toten — real samples ship free.</p>
- <p class="footer-text" style="margin-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;color:var(--paper);opacity:0.7"><a href="/about" style="color:inherit;text-decoration:none;border-bottom:1px solid var(--accent)">About →</a></p>
- </div>
- <div class="footer-col">
- <h4>Aesthetic</h4>
- <div id="footerFacets"></div>
- </div>
- <div class="footer-col">
- <h4>Trade</h4>
- <button onclick="dwmOpen('Inquiry')">Project Inquiry</button>
- <button onclick="dwmOpen('Sample')">Request Sample</button>
- <button onclick="dwmOpen('Contact')">Contact</button>
- </div>
-
- <div class="footer-col">
- <h4>Social</h4>
- <a class="fb-link" href="https://www.facebook.com/SteveAbramsDesigns.DesignerWallcoverings" target="_blank" rel="noopener">Facebook</a>
- </div>
- </div>
- <div class="footer-bottom">
- <span>architecturalwallcoverings.com · Studio Toten</span>
- <span><a href="mailto:info@architecturalwallcoverings.com" style="color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px">info@architecturalwallcoverings.com</a></span>
- <span id="footerStat"></span>
- </div>
-</footer>
-
-<script>
-// mini-constellation — 43 niche-stars, current site highlighted in gold
-(function(){
- const SLUG = "architecturalwallcoverings";
- const NICHES = [
- ['silkwallpaper','Silk','mat'],['silkwallcoverings','Silk W/C','mat'],['linenwallpaper','Linen','mat'],
- ['jutewallpaper','Jute','mat'],['raffiawallcoverings','Raffia W/C','mat'],['raffiawalls','Raffia Walls','mat'],
- ['corkwallcovering','Cork','mat'],['fabricwallpaper','Fabric','mat'],['textilewallpaper','Textile','mat'],
- ['metallicwallpaper','Metallic','mat'],['silverleafwallpaper','Silver Leaf','mat'],['vinylwallpaper','Vinyl','mat'],
- ['micawallpaper','Mica','mat'],['madagascarwallpaper','Madagascar','mat'],['mylarwallpaper','Mylar','mat'],
- ['suedewallpaper','Suede','mat'],
- ['1800swallpaper','1800s','dec'],['1890swallpaper','1890s','dec'],['1900swallpaper','1900s','dec'],
- ['1920swallpaper','1920s','dec'],['1930swallpaper','1930s','dec'],['1940swallpaper','1940s','dec'],
- ['1950swallpaper','1950s','dec'],['1960swallpaper','1960s','dec'],['1970swallpaper','1970s','dec'],
- ['1980swallpaper','1980s','dec'],['retrowalls','Retro','dec'],['wallpapersback','W. Back','dec'],
- ['agedwallpaper','Aged','cra'],['handcraftedwallpaper','Handcrafted','cra'],['museumwallpaper','Museum','cra'],
- ['restorationwallpaper','Restoration','cra'],['pastelwallpaper','Pastel','cra'],['glitterwalls','Glitter','cra'],
- ['greenwallcoverings','Green','cra'],['naturalwallcoverings','Natural','cra'],['saloonwallpaper','Saloon','cra'],
- ['contractwallpaper','Contract','use'],['hotelwallcoverings','Hotel','use'],['hospitalitywallpaper','Hospitality','use'],
- ['healthcarewallpaper','Healthcare','use'],['restaurantwallpaper','Restaurant','use'],['architecturalwallcoverings','Architectural','use']
- ];
- const COLOR = { mat:'#c9b687', dec:'#b86a4a', cra:'#6b8e6f', use:'#4a6b8e' };
- const W = 1080, H = 200, BANDS = ['mat','dec','cra','use'];
- const groups = { mat:[], dec:[], cra:[], use:[] };
- for (const n of NICHES) groups[n[2]].push(n);
- const svg = document.getElementById('miniConst');
- if (!svg) return;
- const bandW = W / BANDS.length;
- let nodes = '';
- BANDS.forEach((band, bi) => {
- const list = groups[band];
- const cx = bi * bandW + bandW / 2;
- list.forEach((n, i) => {
- const t = list.length === 1 ? 0.5 : i / (list.length - 1);
- // deterministic jitter per slug
- let h = 0; for (let k = 0; k < n[0].length; k++) h = (h * 31 + n[0].charCodeAt(k)) | 0;
- const jx = ((h & 0xff) / 255 - 0.5) * (bandW * 0.5);
- const jy = (((h >> 8) & 0xff) / 255 - 0.5) * 6; // tightened from 14 → 6 to prevent same-band collisions (16 mat nodes / 144px = 9px spacing)
- const x = cx + jx, y = 28 + t * (H - 56) + jy;
- const isCurrent = n[0] === SLUG;
- const r = isCurrent ? 8 : 4;
- const op = isCurrent ? 1 : 0.55;
- nodes += `<g class="mc-node" data-slug="${n[0]}" data-label="${n[1]}" style="cursor:pointer">
- <circle cx="${x}" cy="${y}" r="${r}" fill="url(#dna-${band})" fill-opacity="${op}" stroke="${COLOR[band]}" stroke-opacity="${isCurrent?1:0.7}" stroke-width="${isCurrent?2:1}">
- <title>${n[1]} — ${n[0]}.com</title>
- </circle>
- ${isCurrent ? `<circle cx="${x}" cy="${y}" r="${r+5}" fill="none" stroke="${COLOR[band]}" stroke-opacity="0.4" stroke-width="1"><animate attributeName="r" values="${r+5};${r+12};${r+5}" dur="2.4s" repeatCount="indefinite"/><animate attributeName="stroke-opacity" values="0.4;0;0.4" dur="2.4s" repeatCount="indefinite"/></circle>` : ''}
- </g>`;
- });
- });
- // append nodes after defs
- svg.insertAdjacentHTML('beforeend', nodes);
- svg.querySelectorAll('.mc-node').forEach(n => {
- n.addEventListener('mouseenter', () => n.querySelector('circle').setAttribute('fill-opacity', '1'));
- n.addEventListener('mouseleave', e => {
- const isCurrent = n.dataset.slug === SLUG;
- n.querySelector('circle').setAttribute('fill-opacity', isCurrent ? '1' : '0.55');
- });
- n.addEventListener('click', () => window.open('https://' + n.dataset.slug + '.com', '_blank'));
- });
-})();
-</script>
-
-<script>
-const state = { q:'', facet:'all', page:1, pages:1, total:0, loading:false, exhausted:false };
-const LABELS = {"all":"All"};
-
-function escAttr(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[c])); }
-// Image-URL allowlist: only DW Shopify CDN + designerwallcoverings.com (defends against XSS via crafted products.json)
-function safeImg(u) { return /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(u || '') ? u : '/hero-bg.jpg'; }
-function cardHTML(p) {
- const eager = state.page === 1;
- return '<img loading="' + (eager ? 'eager' : 'lazy') + '"' + (eager ? ' fetchpriority="high"' : '') + ' src="' + escAttr(safeImg(p.image_url)) + '" alt="' + escAttr(p.title) + '">'
- + '<div class="overlay">'
- + '<div class="pat">' + escAttr(p.pattern_name || p.title) + '</div>'
- + '<div class="ven">' + escAttr((p.vendor || '').replace(/-/g, ' ')) + '</div>'
- + '<div class="actions">'
- + '<button class="sample-btn" onclick="event.stopPropagation();dwmOpen(\'Sample\',' + JSON.stringify({sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}).replace(/"/g,'"') + ')">Sample</button>'
- + '</div></div>';
-}
-
-async function loadFacets() {
- let f;
- try {
- const r = await fetch('/api/facets');
- if (!r.ok) throw new Error('HTTP ' + r.status);
- f = await r.json();
- } catch (e) { console.error('loadFacets failed:', e); return; }
- const el = document.getElementById('facets');
- for (const [k, v] of Object.entries(f.aesthetics).sort((a,b) => b[1] - a[1])) {
- const b = document.createElement('button');
- b.className = 'chip'; b.dataset.facet = k;
- b.innerHTML = (LABELS[k] || k) + ' <span style="opacity:.55;font-weight:500;margin-left:4px">' + v + '</span>';
- el.appendChild(b);
- }
- el.addEventListener('click', e => {
- if (e.target.tagName !== 'BUTTON') return;
- document.querySelectorAll('#facets button').forEach(b => b.classList.remove('active'));
- e.target.classList.add('active');
- state.facet = e.target.dataset.facet;
- resetGrid();
- });
- document.getElementById('totalCount').textContent = f.total;
- document.getElementById('footerStat').textContent = f.total + ' patterns · live archive';
- // Footer aesthetic links
- const footerEl = document.getElementById('footerFacets');
- for (const [k] of Object.entries(f.aesthetics)) {
- const b = document.createElement('button');
- b.textContent = LABELS[k] || k;
- b.onclick = () => { state.facet = k; resetGrid(); document.querySelectorAll('#facets button').forEach(x => x.classList.toggle('active', x.dataset.facet === k)); document.getElementById('shop').scrollIntoView({behavior:'smooth'}); };
- footerEl.appendChild(b);
- }
-}
-
-function resetGrid() {
- state.page = 1; state.exhausted = false;
- document.getElementById('grid').innerHTML = '';
- document.getElementById('loading').textContent = 'Loading…';
- loadGridPage();
-}
-
-async function loadGridPage() {
- if (state.loading || state.exhausted) return;
- state.loading = true;
- const params = new URLSearchParams({ page:state.page, limit:24 });
- if (state.q) params.set('q', state.q);
- if (state.facet !== 'all') params.set('aesthetic', state.facet);
- let data;
- try {
- const r = await fetch('/api/products?' + params);
- if (!r.ok) throw new Error('HTTP ' + r.status);
- data = await r.json();
- } catch (e) {
- console.error('loadGridPage failed:', e);
- document.getElementById('loading').textContent = '— offline — refresh to retry —';
- state.loading = false;
- return;
- }
- state.total = data.total; state.pages = data.pages;
-
- if (state.page === 1) {
- document.getElementById('statLine').textContent = data.total + ' patterns · ' + (state.facet === 'all' ? 'all aesthetics' : (LABELS[state.facet] || state.facet)) + (state.q ? ' · matching "' + state.q + '"' : '');
- }
- const grid = document.getElementById('grid');
- for (const p of data.items) {
- const a = document.createElement('a');
- a.className = 'card'; a.href = '#'; a.onclick = (e) => { e.preventDefault(); dwmOpen('Sample',{sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}); };
- a.innerHTML = cardHTML(p);
- grid.appendChild(a);
- }
- if (state.page >= state.pages || data.items.length === 0) {
- state.exhausted = true;
- document.getElementById('loading').textContent = state.total > 0 ? '— end of archive · ' + state.total + ' patterns —' : '';
- } else state.page++;
- state.loading = false;
-}
-
-const io = new IntersectionObserver(es => { for (const e of es) if (e.isIntersecting) loadGridPage(); }, { rootMargin:'600px 0px' });
-io.observe(document.getElementById('sentinel'));
-
-document.getElementById('searchInput').addEventListener('input', e => {
- state.q = e.target.value.trim();
- clearTimeout(window._t);
- window._t = setTimeout(resetGrid, 220);
-});
-
-// Density slider
-const slider = document.getElementById('densitySlider');
-const dlabel = document.getElementById('densityLabel');
-function setDensity(n) {
- document.documentElement.style.setProperty('--cols', n);
- dlabel.textContent = n + ' cols';
- try { localStorage.setItem('arch_theme_density', n); } catch(e){}
-}
-slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
-const savedDensity = parseInt(localStorage.getItem('arch_theme_density') || '6');
-if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
-
-// Theme toggle
-const tb = document.getElementById('theme-toggle');
-function setTheme(t){ document.documentElement.dataset.theme = t; try { localStorage.setItem('arch_theme', t); } catch(e){} tb.textContent = t === 'dark' ? '☾' : '☀'; }
-setTheme(document.documentElement.dataset.theme || 'light');
-tb.addEventListener('click', () => setTheme(document.documentElement.dataset.theme === 'dark' ? 'light' : 'dark'));
-
-loadFacets();
-loadGridPage();
-</script>
-<!-- ============================================================
- DW UNIVERSAL CONTACT MODULE — fashion-house UX
- Inject before </body> in every DW-family sister site.
- Self-contained: CSS + 4 modals + JS submission handlers.
- Uses host site's CSS vars (--bg, --fg, --gold, --rule).
- ============================================================ -->
-<style>
- /* === MODAL BASE === */
- .dwm{position:fixed;inset:0;background:rgba(0,0,0,0.78);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;overflow-y:auto}
- .dwm.open{display:flex}
- .dwm-box{background:var(--bg);border:1px solid var(--rule);max-width:520px;width:100%;padding:36px 32px;position:relative;max-height:90vh;overflow-y:auto;animation:dwm-in 0.25s ease}
- @keyframes dwm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
- .dwm-box h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;font-size:32px;line-height:1.05;margin-bottom:6px;color:var(--fg);letter-spacing:-0.01em}
- .dwm-box .sub{color:var(--muted);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
- .dwm-close{position:absolute;top:18px;right:18px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;width:32px;height:32px;line-height:1;padding:0}
- .dwm-close:hover{color:var(--gold)}
- .dwm-preview{display:flex;gap:14px;align-items:center;padding:12px;background:var(--bg-soft);margin-bottom:18px}
- .dwm-preview img{width:64px;height:64px;object-fit:cover}
- .dwm-preview .pn{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;line-height:1.2;color:var(--fg)}
- .dwm-preview .pc{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
- .dwm-field{margin-bottom:14px}
- .dwm-field label{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
- .dwm-field input,.dwm-field textarea,.dwm-field select{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:8px 4px;font-size:14px;font-family:inherit;color:var(--fg);outline:none;transition:border-color 0.2s}
- .dwm-field input:focus,.dwm-field textarea:focus{border-bottom-color:var(--gold)}
- .dwm-field textarea{min-height:60px;resize:vertical}
- .dwm-submit{background:transparent;color:var(--muted, #c9b89e);border:1px solid var(--muted, #c9b89e);padding:14px 28px;font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:700;cursor:pointer;width:100%;margin-top:8px;transition:background 0.15s, color 0.15s}
- .dwm-submit:hover{background:var(--muted, #c9b89e);color:var(--bg, #000)}
-
- .dwm-submit:disabled{opacity:0.5;cursor:default}
- .dwm-status{margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;display:none}
- .dwm-status.ok{color:var(--sage);display:block}
- .dwm-status.err{color:#e08070;display:block}
- /* contact-options */
- .dwm-options{display:flex;flex-direction:column;gap:10px}
- .dwm-option{display:flex;align-items:center;gap:14px;padding:18px 20px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;transition:all 0.2s;text-align:left;width:100%}
- .dwm-option:hover{border-color:var(--gold);color:var(--gold)}
- .dwm-option svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}
- .dwm-option .lbl{flex:1;display:block}
- .dwm-option .val{display:block;font-size:10px;letter-spacing:0.14em;text-transform:none;font-weight:500;opacity:0.65;margin-top:4px}
-
-/* graphics-loop pass 5: serif hero typography + nav legibility */
-.cinema h1, h1.headline { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; letter-spacing: -0.01em }
-.h-link { font-size: 13px; letter-spacing: 0.06em }
-
-/* graphics-loop pass 11: Ideas rails */
-#ideas { padding: 56px 24px 24px; max-width:1600px; margin:0 auto }
-#ideas .rail-block { margin-bottom:48px }
-#ideas .rail-eyebrow { font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:var(--muted, #888); margin-bottom:8px }
-#ideas .rail-title { font-size:clamp(22px,2.6vw,32px); font-weight:500; letter-spacing:-0.01em; margin:0 0 18px; color:var(--ink,#fff) }
-#ideas .rail { display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:8px; scrollbar-width:none }
-#ideas .rail::-webkit-scrollbar { display:none }
-#ideas .rail-card { flex:0 0 240px; scroll-snap-align:start; cursor:pointer; transition:transform 0.2s }
-#ideas .rail-card:hover { transform:translateY(-3px) }
-#ideas .rail-card img { width:100%; aspect-ratio:1; object-fit:cover; display:block; background:var(--card,#222) }
-#ideas .rail-card .rc-title { font-size:13px; font-weight:500; color:var(--paper,#fff); padding:8px 0 2px; line-height:1.3 }
-#ideas .rail-card .rc-meta { font-size:11px; color:var(--muted,#888); letter-spacing:0.06em }
-@media (max-width:720px) { #ideas .rail-card { flex:0 0 160px } }
-</style>
-
-<!-- Contact options modal -->
-<div class="dwm" id="dwmContact" onclick="if(event.target===this)dwmClose('Contact')">
- <div class="dwm-box" style="max-width:440px">
- <button class="dwm-close" onclick="dwmClose('Contact')" aria-label="Close">×</button>
- <h3>Contact</h3>
- <p class="sub" id="dwmContactSub">Three ways to reach us</p>
- <div class="dwm-options">
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Inquiry')">
- <svg viewBox="0 0 24 24"><path d="M4 4h16v12H7l-3 3z"/></svg>
- <span class="lbl">Send an Inquiry<span class="val">Project name · scope · all the details</span></span>
- </button>
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Sample')">
- <svg viewBox="0 0 24 24"><rect x="4" y="6" width="16" height="14"/><path d="M4 10h16M9 6V3h6v3"/></svg>
- <span class="lbl">Request a Sample<span class="val">Memo sample · ships free · 3–5 business days</span></span>
- </button>
- <a class="dwm-option" id="dwmContactEmailLink" href="mailto:info@architecturalwallcoverings.com">
- <svg viewBox="0 0 24 24"><path d="M3 6h18v12H3z"/><path d="M3 6l9 7 9-7"/></svg>
- <span class="lbl">Email Us<span class="val" id="dwmContactEmailLabel">info@architecturalwallcoverings.com</span></span>
- </a>
- </div>
- </div>
-</div>
-
-<!-- Inquiry modal -->
-<div class="dwm" id="dwmInquiry" onclick="if(event.target===this)dwmClose('Inquiry')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Inquiry')" aria-label="Close">×</button>
- <h3>Project Inquiry</h3>
- <p class="sub">We'll respond within one business day</p>
- <form id="dwmInquiryForm" onsubmit="return dwmSubmit(event,'inquiry')">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Phone</label><input type="tel" name="phone"></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Project Name</label><input type="text" name="projectName" required></div>
- <div class="dwm-field"><label>Project Scope</label><textarea name="projectScope" placeholder="Square footage · room count · timeline" required></textarea></div>
- <div class="dwm-field"><label>Additional Information</label><textarea name="message" placeholder="Patterns of interest, finish preferences, budget"></textarea></div>
- <button type="submit" class="dwm-submit">Send Inquiry</button>
- <div class="dwm-status" id="dwmInquiryStatus"></div>
- </form>
- </div>
-</div>
-
-<!-- Sample-request modal -->
-<div class="dwm" id="dwmSample" onclick="if(event.target===this)dwmClose('Sample')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Sample')" aria-label="Close">×</button>
- <h3>Request a Sample</h3>
- <p class="sub">Memo sample · ships free · 3–5 business days</p>
- <div class="dwm-preview" id="dwmSamplePreview" style="display:none">
- <img id="dwmSampleImg" src="" alt="">
- <div><div class="pn" id="dwmSampleName"></div><div class="pc" id="dwmSampleSku"></div></div>
- </div>
- <form id="dwmSampleForm" onsubmit="return dwmSubmit(event,'sample')">
- <input type="hidden" name="sku" id="dwmSampleSkuInput">
- <input type="hidden" name="title" id="dwmSampleTitleInput">
- <input type="hidden" name="image_url" id="dwmSampleImageInput">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Shipping Address</label><input type="text" name="address" placeholder="Street" required></div>
- <div class="dwm-field" style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px">
- <input type="text" name="city" placeholder="City" required>
- <input type="text" name="state" placeholder="State" required>
- <input type="text" name="zip" placeholder="ZIP" required>
- </div>
- <div class="dwm-field"><label>Notes (optional)</label><textarea name="message" placeholder="Project, sq.ft., timing"></textarea></div>
- <button type="submit" class="dwm-submit">Send Sample Request</button>
- <div class="dwm-status" id="dwmSampleStatus"></div>
- </form>
- </div>
-</div>
-
-<script>
- // Universal modal control
- function dwmOpen(name, opts){
- document.getElementById('dwm' + name).classList.add('open');
- document.body.style.overflow = 'hidden';
- if (name === 'Sample' && opts) {
- document.getElementById('dwmSamplePreview').style.display = 'flex';
- document.getElementById('dwmSampleImg').src = opts.image_url || '';
- document.getElementById('dwmSampleName').textContent = opts.title || '';
- document.getElementById('dwmSampleSku').textContent = opts.sku || '';
- document.getElementById('dwmSampleSkuInput').value = opts.sku || '';
- document.getElementById('dwmSampleTitleInput').value = opts.title || '';
- document.getElementById('dwmSampleImageInput').value = opts.image_url || '';
- } else if (name === 'Sample') {
- document.getElementById('dwmSamplePreview').style.display = 'none';
- document.getElementById('dwmSampleSkuInput').value = '';
- document.getElementById('dwmSampleTitleInput').value = '';
- document.getElementById('dwmSampleImageInput').value = '';
- }
- }
- function dwmClose(name){ document.getElementById('dwm'+name).classList.remove('open'); document.body.style.overflow=''; }
-
- // Universal form submit — POSTs to /api/send-{kind}
- async function dwmSubmit(e, kind) {
- e.preventDefault();
- const form = e.target;
- const data = Object.fromEntries(new FormData(form).entries());
- const btn = form.querySelector('.dwm-submit');
- const status = form.querySelector('.dwm-status');
- btn.disabled = true; const orig = btn.textContent; btn.textContent = 'Sending…';
- status.className = 'dwm-status';
- try {
- const r = await fetch('/api/send-' + kind, { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
- if (!r.ok) throw new Error('HTTP '+r.status);
- const j = await r.json();
- status.textContent = kind === 'sample' ? 'Sample request sent — ships within 3–5 business days' : 'Inquiry sent — we respond within 1 business day';
- status.className = 'dwm-status ok';
- btn.textContent = 'Sent ✓';
- setTimeout(() => { dwmClose(kind === 'sample' ? 'Sample' : 'Inquiry'); btn.disabled = false; btn.textContent = orig; status.className = 'dwm-status'; form.reset(); }, 2800);
- } catch (err) {
- status.textContent = 'Send failed — please email info@designerwallcoverings.com';
- status.className = 'dwm-status err';
- btn.disabled = false; btn.textContent = orig;
- }
- return false;
- }
-
- // Wire up "Memo samples ship free" badge in hero to open sample modal directly
- document.querySelectorAll('.hero .badge, [data-open-sample]').forEach(el => {
- el.style.cursor = 'pointer';
- el.addEventListener('click', () => dwmOpen('Sample'));
- });
-
- // Wire nav "Trade" link to inquiry modal
- document.querySelectorAll('nav a[href*="designerwallcoverings.com"]').forEach(a => {
- a.removeAttribute('target');
- a.removeAttribute('href');
- a.style.cursor = 'pointer';
- a.addEventListener('click', e => { e.preventDefault(); dwmOpen('Contact'); });
- });
-
- // Override product card clicks — open Sample modal pre-filled instead of redirecting to DW
- document.addEventListener('click', e => {
- const card = e.target.closest('.card, .rail-card');
- if (!card) return;
- if (card.tagName === 'A' && (card.getAttribute('href') || '').startsWith('/sample/')) {
- e.preventDefault();
- const img = card.querySelector('img');
- const pat = card.querySelector('.pat');
- const sku = card.getAttribute('href').replace('/sample/', '');
- dwmOpen('Sample', {
- sku,
- title: pat ? pat.textContent.trim() : '',
- image_url: img ? img.src : ''
- });
- }
- }, true);
-// DW STANDARD: hero pulls from products.json[0].image_url so dw-collections-viewer
-// drag-drop / hero-pin updates the live front page on next deploy.
-// Always upgrades to the largest Shopify variant (strips _NxN size suffix) so
-// the full-page hero stays sharp.
-// DW STANDARD: hero rotates through top-20 NEWEST products on each visit
-// (novasuede.com pattern). Fetches /api/products?limit=100, sorts by created_at desc,
-// takes the freshest 20, picks one per visit via localStorage counter.
-// Falls back to static /hero-bg.jpg on any error.
-(async function rotateHero() {
- try {
- const r = await fetch('/api/products?limit=100');
- if (!r.ok) return;
- const d = await r.json();
- const items = (d.items || [])
- .filter(p => p && p.image_url && /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(p.image_url))
- .sort((a,b) => String(b.created_at || '').localeCompare(String(a.created_at || '')))
- .slice(0, 20);
- if (!items.length) return;
- let visits = 0;
- try {
- visits = parseInt(localStorage.getItem('hero_visits') || '0', 10) || 0;
- localStorage.setItem('hero_visits', String(visits + 1));
- } catch(e) {}
- const pick = items[visits % items.length];
- // Strip _NxN size suffix to get the largest CDN variant
- const url = pick.image_url.replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- const bg = document.getElementById('heroBg') || document.getElementById('cinemaBg');
- if (bg) bg.style.backgroundImage = "url('" + url + "')";
- } catch (e) {}
-})();
-
-
-// DW STANDARD sort-select wire-up (added by fleet patcher)
-(function(){
- const sortSel = document.getElementById('sortSelect');
- if (!sortSel) return;
- const KEY = location.hostname.replace(/\./g, '_') + '_sort';
- const saved = localStorage.getItem(KEY);
- if (saved) { try { sortSel.value = saved; } catch(e){} }
- if (typeof state !== 'undefined') state.sort = sortSel.value;
- sortSel.addEventListener('change', e => {
- const v = e.target.value;
- try { localStorage.setItem(KEY, v); } catch(e){}
- if (typeof state !== 'undefined') state.sort = v;
- if (typeof resetGrid === 'function') resetGrid();
- else location.reload();
- });
-})();
-
-// graphics-loop pass 11: hydrate Ideas rails from /api/products
-(async function hydrateIdeas() {
- try {
- const r = await fetch('/api/products?limit=80');
- if (!r.ok) return;
- const d = await r.json();
- const items = (d.items || []).filter(p => p && p.image_url);
- if (!items.length) return;
- const sorted = [...items].sort((a,b) => String(b.created_at || '').localeCompare(String(a.created_at || '')));
- const newest = sorted.slice(0, 12);
- // Curated = deterministic offset slice (every 5th item starting at idx 3) for variety
- const curated = items.filter((_, i) => i % 5 === 3).slice(0, 12);
- function card(p) {
- const url = (p.image_url || '').replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- return '<a class="rail-card" href="/sample/' + encodeURIComponent(p.handle || p.sku) + '">' +
- '<img src="' + url + '" alt="' + (p.title || '').replace(/"/g, '"') + '" loading="lazy">' +
- '<div class="rc-title">' + ((p.title || '').split('|')[0] || '').trim() + '</div>' +
- '<div class="rc-meta">' + (p.vendor || '') + '</div>' +
- '</a>';
- }
- const r1 = document.getElementById('railNewest');
- const r2 = document.getElementById('railCurated');
- if (r1) r1.innerHTML = newest.map(card).join('');
- if (r2) r2.innerHTML = curated.map(card).join('');
- } catch(e) {}
-})();
-</script>
-
-</body>
-</html>
diff --git a/public/index.html.pre-corner-mark-fix.bak b/public/index.html.pre-corner-mark-fix.bak
deleted file mode 100644
index c4b0d57..0000000
--- a/public/index.html.pre-corner-mark-fix.bak
+++ /dev/null
@@ -1,676 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
-<meta charset="utf-8">
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>ARCHITECTURAL — Spec. Build. Repeat.</title>
-<meta name="description" content="ARCHITECTURAL · Spec. Build. Repeat.. Curated wallcoverings sourced through the Designer Wallcoverings trade channel.">
-<meta name="theme-color" content="#0a0e10">
-<link rel="canonical" href="https://architecturalwallcoverings.com/">
-<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,400;1,400&display=swap" rel="stylesheet">
-<link rel="preload" as="image" href="/hero-bg.jpg" fetchpriority="high">
-<script type="application/ld+json">
-{
- "@context": "https://schema.org",
- "@type": "Organization",
- "name": "ARCHITECTURAL",
- "url": "https://architecturalwallcoverings.com/",
- "email": "info@architecturalwallcoverings.com",
- "parentOrganization": {
- "@type": "Organization",
- "name": "Designer Wallcoverings",
- "url": "https://designerwallcoverings.com/"
- }
-}
-</script>
-<script src="/zd-loader.js" defer></script>
-<style>
-:root {
- --bg: #0a0e10;
- --paper: #ffffff;
- --muted: #909090;
- --line: rgba(255,255,255,0.10);
- --accent: #a0a0a0;
- --bg-soft: #141a1c;
- --cols: 6; /* default grid density — slider controls this */
-}
-html[data-theme="light"] {
- --bg: #fafaf6;
- --paper: #1b1814;
- --muted: #6b5f56;
- --line: rgba(10,9,5,0.12);
- --accent: #652929;
- --bg-soft: #d9c9c9;
-}
-* { margin:0; padding:0; box-sizing:border-box }
-html { scroll-behavior:smooth }
-body { font-family:'Inter', sans-serif; color:var(--paper); -webkit-font-smoothing:antialiased; background:var(--bg); min-height:100vh; overflow-x:hidden }
-
-/* ===== Auto-hide header ===== */
-header { position:fixed; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 32px; z-index:100; background:rgba(0,0,0,0.55); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:transform .3s }
-.h-link { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); text-decoration:none; cursor:pointer; background:transparent; border:0 }
-.h-link:hover { opacity:0.7 }
-.h-icon { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }
-
-/* ===== Cinema hero ===== */
-.cinema { position:relative; height:100vh; width:100%; overflow:hidden }
-.cinema-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-image:url('/hero-bg.jpg') }
-.cinema-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.75) 100%) }
-.corner-mark { position:absolute; top:24px; left:32px; font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; mix-blend-mode:difference; color:#fff; z-index:5 }
-.corner-mark::before { content:"◆ "; margin-right:6px }
-.center-mark { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-size:clamp(34px,5vw,72px); font-weight:300; letter-spacing:0.42em; text-transform:uppercase; text-align:center; color:#fff; z-index:5; mix-blend-mode:difference }
-.center-mark .tm { font-size:14px; vertical-align:super; opacity:0.7; margin-left:0.2em }
-.center-mark .sub { display:block; font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400; font-size:0.4em; letter-spacing:0.04em; text-transform:none; margin-top:14px; opacity:0.85 }
-.meta-line { position:absolute; bottom:32px; left:32px; font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:700; color:#fff; z-index:5; opacity:0.85 }
-.meta-line .num { font-size:12px; display:block; margin-top:4px; letter-spacing:0.05em }
-.enter { position:absolute; bottom:32px; right:32px; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:0.36em; text-transform:uppercase; font-weight:700; color:#fff; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #fff; transition:gap 0.25s; z-index:5 }
-.enter:hover { gap:22px }
-.enter svg { width:24px; height:12px }
-
-/* ===== Section ===== */
-.section { padding:96px 32px }
-.section-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--line) }
-.section-title { font-size:clamp(36px,5vw,64px); font-weight:300; letter-spacing:-0.02em; line-height:1 }
-.section-title .accent { color: var(--accent); font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400 }
-.section-eyebrow { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:16px }
-.section-meta { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--muted); text-align:right; line-height:1.6 }
-
-/* ===== Filter bar ===== */
-.filters { display:flex; gap:8px; align-items:center; margin-bottom:18px; flex-wrap:wrap }
-.chip { padding:8px 16px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); background:transparent; border:1px solid var(--line); cursor:pointer; transition:all 0.2s; font-family:inherit }
-.chip:hover { border-color:var(--paper) }
-.chip.active { background:var(--paper); color:var(--bg); border-color:var(--paper) }
-.search { flex:0 1 280px; margin-left:auto; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:6px 0 }
-.search input { flex:1; background:transparent; border:0; color:var(--paper); font-family:inherit; font-size:13px; outline:none; letter-spacing:0.04em }
-.search input::placeholder { color:var(--muted) }
-.search svg { width:16px; height:16px; stroke:var(--muted); fill:none; stroke-width:1.5 }
-
-/* ===== Grid-density slider ===== */
-.density { display:flex; align-items:center; gap:14px; padding:6px 0; margin-bottom:24px }
-.density label { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--muted) }
-.density input[type=range] { flex:1; max-width:240px; -webkit-appearance:none; appearance:none; height:1px; background:var(--line); outline:none }
-.density input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50% }
-.density input[type=range]::-moz-range-thumb { width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50%; border:0 }
-.density .ct { font-size:11px; color:var(--muted); letter-spacing:0.18em; text-transform:uppercase; font-weight:600; min-width:80px }
-
-/* ===== Stats line ===== */
-.stat-line { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:24px }
-
-/* ===== Product grid (novasuede pattern: flush grid + slide-up overlay) ===== */
-.grid { display:grid; grid-template-columns:repeat(var(--cols), 1fr); gap:0 }
-.card { position:relative; aspect-ratio:1/1.15; cursor:pointer; overflow:hidden; border:1px solid var(--bg); transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1); background:var(--bg-soft) }
-.card:hover { transform:scale(1.04); z-index:5 }
-.card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease }
-.card .overlay { position:absolute; left:0; right:0; bottom:0; padding:20px 16px 14px; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%); transform:translateY(48%); opacity:0.85; transition:transform 0.3s ease, opacity 0.3s ease }
-.card:hover .overlay { transform:translateY(0); opacity:1 }
-.card .pat { font-size:13px; font-weight:600; letter-spacing:0.02em; color:#fff; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
-.card .ven { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#fff; opacity:0.7; font-weight:500; margin-top:4px }
-.card .actions { margin-top:10px; display:flex; gap:6px }
-.card .sample-btn { flex:1; padding:7px 10px; background:#fff; color:#000; font-family:inherit; font-size:10px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; border:0; cursor:pointer; text-align:center; transition:all 0.2s }
-.card .sample-btn:hover { background:var(--accent); color:#fff }
-
-@media (max-width:1024px) { .grid { grid-template-columns:repeat(min(var(--cols), 4), 1fr) } }
-@media (max-width:720px) { .grid { grid-template-columns:repeat(2, 1fr) } .density { display:none } }
-
-.sentinel { height:1px }
-.loading { text-align:center; color:var(--muted); padding:32px; font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700 }
-
-/* ===== Footer ===== */
-footer { padding:64px 32px 32px; border-top:1px solid var(--line); margin-top:32px }
-.footer-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr; gap:48px; margin-bottom:48px }
-.footer-brand { font-size:24px; font-weight:300; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:12px }
-.footer-text { font-size:13px; line-height:1.6; color:var(--muted); max-width:380px }
-.footer-col h4 { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--paper); margin-bottom:18px }
-.footer-col a { display:block; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:8px; transition:color 0.2s; cursor:pointer; background:transparent; border:0; font-family:inherit; padding:0; text-align:left }
-.footer-col a:hover { color:var(--accent) }
-.footer-bottom { max-width:1400px; margin:0 auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted) }
-
-@media (max-width:720px) {
- .corner-mark, .meta-line, .enter { font-size:10px }
- .center-mark { font-size:30px; letter-spacing:0.32em }
- .section, footer { padding-left:20px; padding-right:20px }
- .footer-grid { grid-template-columns:1fr; gap:32px }
- .search { margin-left:0; flex:1 1 100% }
-}
-
-.theme-toggle { background:transparent; border:1px solid var(--line); width:32px; height:32px; cursor:pointer; color:var(--paper); display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; transition:all .15s; padding:0 }
-.theme-toggle:hover { border-color:var(--accent); color:var(--accent) }
-
-/* ===== WCAG 2.4.7 — keyboard focus indicators ===== */
-/* Strictly :focus-visible so mouse clicks do NOT show the ring */
-a:focus-visible,
-button:focus-visible,
-input:focus-visible,
-select:focus-visible,
-textarea:focus-visible,
-[tabindex]:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
-}
-</style>
-<script>
-(function(){ try { var t = localStorage.getItem('arch_theme') || 'dark'; document.documentElement.dataset.theme = t; } catch(e){} })();
-</script>
-</head>
-<body>
-
-<header>
- <button class="h-link" onclick="dwmOpen('Contact')" aria-label="Contact"><svg class="h-icon" viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/></svg><span>Contact</span></button>
- <button class="theme-toggle" id="theme-toggle" aria-label="Theme toggle">☾</button>
-</header>
-
-<section class="cinema">
- <div class="cinema-bg" id="heroBg"></div>
- <div class="corner-mark">Specifier-Grade</div>
- <div class="center-mark">ARCHITECTURAL<span class="tm">.</span><span class="sub">Spec. Build. Repeat.</span></div>
- <div class="meta-line">Architectural · Specifier · Class A · Contract<span class="num" id="heroNum"></span></div>
- <a class="enter" href="#shop">Enter <svg viewBox="0 0 24 12" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M0 6h22M16 1l6 5-6 5"/></svg></a>
-</section>
-
-<section class="section" id="shop">
- <div class="section-header">
- <div>
- <div class="section-eyebrow">The Collection</div>
- <h2 class="section-title"><span class="accent" id="totalCount">—</span> Patterns.</h2>
- </div>
- <div class="section-meta">Architectural · Specifier · Class A · Contract</div>
- </div>
-
- <div class="filters" id="facets">
- <button class="chip active" data-facet="all">All</button>
- </div>
-
- <div class="density">
- <label>Sort</label>
- <select id="sortSelect" aria-label="Sort products" style="background:transparent;color:inherit;border:1px solid var(--line,rgba(255,255,255,.2));font:inherit;font-size:11px;letter-spacing:.10em;text-transform:uppercase;padding:4px 8px;cursor:pointer;outline:none;margin-right:14px">
- <option value="newest">Newest</option>
- <option value="color">Color</option>
- <option value="style">Style</option>
- <option value="sku">SKU A→Z</option>
- <option value="title">Title A→Z</option>
- <option value="price-asc">Price ↑</option>
- <option value="price-desc">Price ↓</option>
- </select>
- <label>Grid</label>
- <input type="range" id="densitySlider" min="4" max="12" step="1" value="6" aria-label="Grid columns">
- <span class="ct" id="densityLabel">6 cols</span>
- <div class="search">
- <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-5.5-5.5"/></svg>
- <input type="text" id="searchInput" placeholder="Search by pattern, color…" autocomplete="off">
- </div>
- </div>
-
- <div class="stat-line" id="statLine">Loading…</div>
- <div class="grid" id="grid"></div>
- <div class="loading" id="loading">Loading more…</div>
- <div class="sentinel" id="sentinel"></div>
-</section>
-
-<footer>
- <div class="footer-grid">
- <div>
- <div class="footer-brand">ARCHITECTURAL</div>
- <p class="footer-text">A specialty archive within the Designer Wallcoverings family. Curated architectural · specifier · class a · contract from heritage mills, fulfilled through the DW trade channel — memo samples ship free.</p>
- <p class="footer-text" style="margin-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;color:var(--paper);opacity:0.7">DesignerWallcoverings.com — Authorized Trade Channel</p>
- </div>
- <div class="footer-col">
- <h4>Aesthetic</h4>
- <div id="footerFacets"></div>
- </div>
- <div class="footer-col">
- <h4>Trade</h4>
- <button onclick="dwmOpen('Inquiry')">Project Inquiry</button>
- <button onclick="dwmOpen('Sample')">Request Sample</button>
- <button onclick="dwmOpen('Contact')">Contact</button>
- </div>
- </div>
- <!-- mini-constellation: every storefront shows its position in the family -->
- <div style="max-width:1400px;margin:0 auto 24px;padding:32px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)">
- <div style="display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:12px;margin-bottom:18px">
- <div>
- <div style="font-size:10px;letter-spacing:0.32em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:6px">★ DW FAMILY · 43 niches</div>
- <div style="font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:18px;color:var(--paper);letter-spacing:0.01em">You're on <span style="color:var(--accent);font-weight:500">architecturalwallcoverings</span>. Hover any star to leap.</div>
- </div>
- <a href="https://retrowalls.com/universe/" target="_blank" rel="noopener" style="font-size:10px;letter-spacing:0.32em;text-transform:uppercase;color:var(--accent);font-weight:600;text-decoration:none;border:1px solid var(--accent);padding:8px 14px">DW Universe →</a>
- </div>
- <svg id="miniConst" viewBox="0 0 1080 200" style="width:100%;height:200px;display:block" role="img" aria-label="DW family constellation: 43 niche sites; current site highlighted">
- <defs>
- <pattern id="dna-mat" width="5" height="5" patternUnits="userSpaceOnUse" patternTransform="rotate(45)"><line x1="0" y1="0" x2="0" y2="5" stroke="#c9b687" stroke-width="0.6"/></pattern>
- <pattern id="dna-dec" width="8" height="5" patternUnits="userSpaceOnUse"><polyline points="0,4 4,1 8,4" stroke="#b86a4a" stroke-width="0.6" fill="none"/></pattern>
- <pattern id="dna-cra" width="5" height="5" patternUnits="userSpaceOnUse" patternTransform="rotate(-30)"><line x1="0" y1="2.5" x2="5" y2="2.5" stroke="#6b8e6f" stroke-width="0.5" stroke-dasharray="1.4 1.2"/></pattern>
- <pattern id="dna-use" width="4" height="4" patternUnits="userSpaceOnUse"><path d="M0 0 L4 0 M0 0 L0 4" stroke="#4a6b8e" stroke-width="0.4" fill="none"/></pattern>
- </defs>
- </svg>
- <div style="display:flex;justify-content:space-between;font-size:9px;letter-spacing:0.32em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-top:6px;padding:0 8px">
- <span style="display:flex;align-items:center;gap:5px"><i style="display:inline-block;width:6px;height:6px;background:#c9b687;border-radius:50%"></i>Material</span>
- <span style="display:flex;align-items:center;gap:5px"><i style="display:inline-block;width:6px;height:6px;background:#b86a4a;border-radius:50%"></i>Decade</span>
- <span style="display:flex;align-items:center;gap:5px"><i style="display:inline-block;width:6px;height:6px;background:#6b8e6f;border-radius:50%"></i>Craft</span>
- <span style="display:flex;align-items:center;gap:5px"><i style="display:inline-block;width:6px;height:6px;background:#4a6b8e;border-radius:50%"></i>Use-case</span>
- </div>
- </div>
-
- <div class="footer-bottom">
- <span>architecturalwallcoverings.com · a designer wallcoverings family vertical</span>
- <span><a href="mailto:info@architecturalwallcoverings.com" style="color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px">info@architecturalwallcoverings.com</a></span>
- <span><a href="https://retrowalls.com/universe/" target="_blank" rel="noopener" style="color:var(--accent);text-decoration:none;letter-spacing:0.18em">DW Universe — search all 43 niches at once →</a></span>
- <span id="footerStat"></span>
- </div>
-</footer>
-
-<script>
-// mini-constellation — 43 niche-stars, current site highlighted in gold
-(function(){
- const SLUG = "architecturalwallcoverings";
- const NICHES = [
- ['silkwallpaper','Silk','mat'],['silkwallcoverings','Silk W/C','mat'],['linenwallpaper','Linen','mat'],
- ['jutewallpaper','Jute','mat'],['raffiawallcoverings','Raffia W/C','mat'],['raffiawalls','Raffia Walls','mat'],
- ['corkwallcovering','Cork','mat'],['fabricwallpaper','Fabric','mat'],['textilewallpaper','Textile','mat'],
- ['metallicwallpaper','Metallic','mat'],['silverleafwallpaper','Silver Leaf','mat'],['vinylwallpaper','Vinyl','mat'],
- ['micawallpaper','Mica','mat'],['madagascarwallpaper','Madagascar','mat'],['mylarwallpaper','Mylar','mat'],
- ['suedewallpaper','Suede','mat'],
- ['1800swallpaper','1800s','dec'],['1890swallpaper','1890s','dec'],['1900swallpaper','1900s','dec'],
- ['1920swallpaper','1920s','dec'],['1930swallpaper','1930s','dec'],['1940swallpaper','1940s','dec'],
- ['1950swallpaper','1950s','dec'],['1960swallpaper','1960s','dec'],['1970swallpaper','1970s','dec'],
- ['1980swallpaper','1980s','dec'],['retrowalls','Retro','dec'],['wallpapersback','W. Back','dec'],
- ['agedwallpaper','Aged','cra'],['handcraftedwallpaper','Handcrafted','cra'],['museumwallpaper','Museum','cra'],
- ['restorationwallpaper','Restoration','cra'],['pastelwallpaper','Pastel','cra'],['glitterwalls','Glitter','cra'],
- ['greenwallcoverings','Green','cra'],['naturalwallcoverings','Natural','cra'],['saloonwallpaper','Saloon','cra'],
- ['contractwallpaper','Contract','use'],['hotelwallcoverings','Hotel','use'],['hospitalitywallpaper','Hospitality','use'],
- ['healthcarewallpaper','Healthcare','use'],['restaurantwallpaper','Restaurant','use'],['architecturalwallcoverings','Architectural','use']
- ];
- const COLOR = { mat:'#c9b687', dec:'#b86a4a', cra:'#6b8e6f', use:'#4a6b8e' };
- const W = 1080, H = 200, BANDS = ['mat','dec','cra','use'];
- const groups = { mat:[], dec:[], cra:[], use:[] };
- for (const n of NICHES) groups[n[2]].push(n);
- const svg = document.getElementById('miniConst');
- if (!svg) return;
- const bandW = W / BANDS.length;
- let nodes = '';
- BANDS.forEach((band, bi) => {
- const list = groups[band];
- const cx = bi * bandW + bandW / 2;
- list.forEach((n, i) => {
- const t = list.length === 1 ? 0.5 : i / (list.length - 1);
- // deterministic jitter per slug
- let h = 0; for (let k = 0; k < n[0].length; k++) h = (h * 31 + n[0].charCodeAt(k)) | 0;
- const jx = ((h & 0xff) / 255 - 0.5) * (bandW * 0.5);
- const jy = (((h >> 8) & 0xff) / 255 - 0.5) * 6; // tightened from 14 → 6 to prevent same-band collisions (16 mat nodes / 144px = 9px spacing)
- const x = cx + jx, y = 28 + t * (H - 56) + jy;
- const isCurrent = n[0] === SLUG;
- const r = isCurrent ? 8 : 4;
- const op = isCurrent ? 1 : 0.55;
- nodes += `<g class="mc-node" data-slug="${n[0]}" data-label="${n[1]}" style="cursor:pointer">
- <circle cx="${x}" cy="${y}" r="${r}" fill="url(#dna-${band})" fill-opacity="${op}" stroke="${COLOR[band]}" stroke-opacity="${isCurrent?1:0.7}" stroke-width="${isCurrent?2:1}">
- <title>${n[1]} — ${n[0]}.com</title>
- </circle>
- ${isCurrent ? `<circle cx="${x}" cy="${y}" r="${r+5}" fill="none" stroke="${COLOR[band]}" stroke-opacity="0.4" stroke-width="1"><animate attributeName="r" values="${r+5};${r+12};${r+5}" dur="2.4s" repeatCount="indefinite"/><animate attributeName="stroke-opacity" values="0.4;0;0.4" dur="2.4s" repeatCount="indefinite"/></circle>` : ''}
- </g>`;
- });
- });
- // append nodes after defs
- svg.insertAdjacentHTML('beforeend', nodes);
- svg.querySelectorAll('.mc-node').forEach(n => {
- n.addEventListener('mouseenter', () => n.querySelector('circle').setAttribute('fill-opacity', '1'));
- n.addEventListener('mouseleave', e => {
- const isCurrent = n.dataset.slug === SLUG;
- n.querySelector('circle').setAttribute('fill-opacity', isCurrent ? '1' : '0.55');
- });
- n.addEventListener('click', () => window.open('https://' + n.dataset.slug + '.com', '_blank'));
- });
-})();
-</script>
-
-<script>
-const state = { q:'', facet:'all', page:1, pages:1, total:0, loading:false, exhausted:false };
-const LABELS = {"all":"All"};
-
-function escAttr(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[c])); }
-// Image-URL allowlist: only DW Shopify CDN + designerwallcoverings.com (defends against XSS via crafted products.json)
-function safeImg(u) { return /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(u || '') ? u : '/hero-bg.jpg'; }
-function cardHTML(p) {
- const eager = state.page === 1;
- return '<img loading="' + (eager ? 'eager' : 'lazy') + '"' + (eager ? ' fetchpriority="high"' : '') + ' src="' + escAttr(safeImg(p.image_url)) + '" alt="' + escAttr(p.title) + '">'
- + '<div class="overlay">'
- + '<div class="pat">' + escAttr(p.pattern_name || p.title) + '</div>'
- + '<div class="ven">' + escAttr((p.vendor || '').replace(/-/g, ' ')) + '</div>'
- + '<div class="actions">'
- + '<button class="sample-btn" onclick="event.stopPropagation();dwmOpen(\'Sample\',' + JSON.stringify({sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}).replace(/"/g,'"') + ')">Sample</button>'
- + '</div></div>';
-}
-
-async function loadFacets() {
- let f;
- try {
- const r = await fetch('/api/facets');
- if (!r.ok) throw new Error('HTTP ' + r.status);
- f = await r.json();
- } catch (e) { console.error('loadFacets failed:', e); return; }
- const el = document.getElementById('facets');
- for (const [k, v] of Object.entries(f.aesthetics).sort((a,b) => b[1] - a[1])) {
- const b = document.createElement('button');
- b.className = 'chip'; b.dataset.facet = k;
- b.innerHTML = (LABELS[k] || k) + ' <span style="opacity:.55;font-weight:500;margin-left:4px">' + v + '</span>';
- el.appendChild(b);
- }
- el.addEventListener('click', e => {
- if (e.target.tagName !== 'BUTTON') return;
- document.querySelectorAll('#facets button').forEach(b => b.classList.remove('active'));
- e.target.classList.add('active');
- state.facet = e.target.dataset.facet;
- resetGrid();
- });
- document.getElementById('totalCount').textContent = f.total;
- document.getElementById('footerStat').textContent = f.total + ' patterns · live archive';
- // Footer aesthetic links
- const footerEl = document.getElementById('footerFacets');
- for (const [k] of Object.entries(f.aesthetics)) {
- const b = document.createElement('button');
- b.textContent = LABELS[k] || k;
- b.onclick = () => { state.facet = k; resetGrid(); document.querySelectorAll('#facets button').forEach(x => x.classList.toggle('active', x.dataset.facet === k)); document.getElementById('shop').scrollIntoView({behavior:'smooth'}); };
- footerEl.appendChild(b);
- }
-}
-
-function resetGrid() {
- state.page = 1; state.exhausted = false;
- document.getElementById('grid').innerHTML = '';
- document.getElementById('loading').textContent = 'Loading…';
- loadGridPage();
-}
-
-async function loadGridPage() {
- if (state.loading || state.exhausted) return;
- state.loading = true;
- const params = new URLSearchParams({ page:state.page, limit:24 });
- if (state.q) params.set('q', state.q);
- if (state.facet !== 'all') params.set('aesthetic', state.facet);
- let data;
- try {
- const r = await fetch('/api/products?' + params);
- if (!r.ok) throw new Error('HTTP ' + r.status);
- data = await r.json();
- } catch (e) {
- console.error('loadGridPage failed:', e);
- document.getElementById('loading').textContent = '— offline — refresh to retry —';
- state.loading = false;
- return;
- }
- state.total = data.total; state.pages = data.pages;
-
- if (state.page === 1) {
- document.getElementById('statLine').textContent = data.total + ' patterns · ' + (state.facet === 'all' ? 'all aesthetics' : (LABELS[state.facet] || state.facet)) + (state.q ? ' · matching "' + state.q + '"' : '');
- }
- const grid = document.getElementById('grid');
- for (const p of data.items) {
- const a = document.createElement('a');
- a.className = 'card'; a.href = '#'; a.onclick = (e) => { e.preventDefault(); dwmOpen('Sample',{sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}); };
- a.innerHTML = cardHTML(p);
- grid.appendChild(a);
- }
- if (state.page >= state.pages || data.items.length === 0) {
- state.exhausted = true;
- document.getElementById('loading').textContent = state.total > 0 ? '— end of archive · ' + state.total + ' patterns —' : '';
- } else state.page++;
- state.loading = false;
-}
-
-const io = new IntersectionObserver(es => { for (const e of es) if (e.isIntersecting) loadGridPage(); }, { rootMargin:'600px 0px' });
-io.observe(document.getElementById('sentinel'));
-
-document.getElementById('searchInput').addEventListener('input', e => {
- state.q = e.target.value.trim();
- clearTimeout(window._t);
- window._t = setTimeout(resetGrid, 220);
-});
-
-// Density slider
-const slider = document.getElementById('densitySlider');
-const dlabel = document.getElementById('densityLabel');
-function setDensity(n) {
- document.documentElement.style.setProperty('--cols', n);
- dlabel.textContent = n + ' cols';
- try { localStorage.setItem('arch_theme_density', n); } catch(e){}
-}
-slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
-const savedDensity = parseInt(localStorage.getItem('arch_theme_density') || '6');
-if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
-
-// Theme toggle
-const tb = document.getElementById('theme-toggle');
-function setTheme(t){ document.documentElement.dataset.theme = t; try { localStorage.setItem('arch_theme', t); } catch(e){} tb.textContent = t === 'dark' ? '☾' : '☀'; }
-setTheme(document.documentElement.dataset.theme || 'dark');
-tb.addEventListener('click', () => setTheme(document.documentElement.dataset.theme === 'dark' ? 'light' : 'dark'));
-
-loadFacets();
-loadGridPage();
-</script>
-<!-- ============================================================
- DW UNIVERSAL CONTACT MODULE — fashion-house UX
- Inject before </body> in every DW-family sister site.
- Self-contained: CSS + 4 modals + JS submission handlers.
- Uses host site's CSS vars (--bg, --fg, --gold, --rule).
- ============================================================ -->
-<style>
- /* === MODAL BASE === */
- .dwm{position:fixed;inset:0;background:rgba(0,0,0,0.78);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;overflow-y:auto}
- .dwm.open{display:flex}
- .dwm-box{background:var(--bg);border:1px solid var(--rule);max-width:520px;width:100%;padding:36px 32px;position:relative;max-height:90vh;overflow-y:auto;animation:dwm-in 0.25s ease}
- @keyframes dwm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
- .dwm-box h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;font-size:32px;line-height:1.05;margin-bottom:6px;color:var(--fg);letter-spacing:-0.01em}
- .dwm-box .sub{color:var(--muted);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
- .dwm-close{position:absolute;top:18px;right:18px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;width:32px;height:32px;line-height:1;padding:0}
- .dwm-close:hover{color:var(--gold)}
- .dwm-preview{display:flex;gap:14px;align-items:center;padding:12px;background:var(--bg-soft);margin-bottom:18px}
- .dwm-preview img{width:64px;height:64px;object-fit:cover}
- .dwm-preview .pn{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;line-height:1.2;color:var(--fg)}
- .dwm-preview .pc{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
- .dwm-field{margin-bottom:14px}
- .dwm-field label{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
- .dwm-field input,.dwm-field textarea,.dwm-field select{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:8px 4px;font-size:14px;font-family:inherit;color:var(--fg);outline:none;transition:border-color 0.2s}
- .dwm-field input:focus,.dwm-field textarea:focus{border-bottom-color:var(--gold)}
- .dwm-field textarea{min-height:60px;resize:vertical}
- .dwm-submit{background:var(--gold);color:#000;border:0;padding:14px 28px;font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:700;cursor:pointer;width:100%;margin-top:8px;transition:opacity 0.15s}
- .dwm-submit:hover{opacity:0.85}
- .dwm-submit:disabled{opacity:0.5;cursor:default}
- .dwm-status{margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;display:none}
- .dwm-status.ok{color:var(--sage);display:block}
- .dwm-status.err{color:#e08070;display:block}
- /* contact-options */
- .dwm-options{display:flex;flex-direction:column;gap:10px}
- .dwm-option{display:flex;align-items:center;gap:14px;padding:18px 20px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;transition:all 0.2s;text-align:left;width:100%}
- .dwm-option:hover{border-color:var(--gold);color:var(--gold)}
- .dwm-option svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}
- .dwm-option .lbl{flex:1;display:block}
- .dwm-option .val{display:block;font-size:10px;letter-spacing:0.14em;text-transform:none;font-weight:500;opacity:0.65;margin-top:4px}
-</style>
-
-<!-- Contact options modal -->
-<div class="dwm" id="dwmContact" onclick="if(event.target===this)dwmClose('Contact')">
- <div class="dwm-box" style="max-width:440px">
- <button class="dwm-close" onclick="dwmClose('Contact')" aria-label="Close">×</button>
- <h3>Contact</h3>
- <p class="sub" id="dwmContactSub">Three ways to reach us</p>
- <div class="dwm-options">
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Inquiry')">
- <svg viewBox="0 0 24 24"><path d="M4 4h16v12H7l-3 3z"/></svg>
- <span class="lbl">Send an Inquiry<span class="val">Project name · scope · all the details</span></span>
- </button>
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Sample')">
- <svg viewBox="0 0 24 24"><rect x="4" y="6" width="16" height="14"/><path d="M4 10h16M9 6V3h6v3"/></svg>
- <span class="lbl">Request a Sample<span class="val">Memo sample · ships free · 3–5 business days</span></span>
- </button>
- <a class="dwm-option" id="dwmContactEmailLink" href="mailto:info@{{DOMAIN}}">
- <svg viewBox="0 0 24 24"><path d="M3 6h18v12H3z"/><path d="M3 6l9 7 9-7"/></svg>
- <span class="lbl">Email Us<span class="val" id="dwmContactEmailLabel">info@{{DOMAIN}}</span></span>
- </a>
- </div>
- </div>
-</div>
-
-<!-- Inquiry modal -->
-<div class="dwm" id="dwmInquiry" onclick="if(event.target===this)dwmClose('Inquiry')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Inquiry')" aria-label="Close">×</button>
- <h3>Project Inquiry</h3>
- <p class="sub">We'll respond within one business day</p>
- <form id="dwmInquiryForm" onsubmit="return dwmSubmit(event,'inquiry')">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Phone</label><input type="tel" name="phone"></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Project Name</label><input type="text" name="projectName" required></div>
- <div class="dwm-field"><label>Project Scope</label><textarea name="projectScope" placeholder="Square footage · room count · timeline" required></textarea></div>
- <div class="dwm-field"><label>Additional Information</label><textarea name="message" placeholder="Patterns of interest, finish preferences, budget"></textarea></div>
- <button type="submit" class="dwm-submit">Send Inquiry</button>
- <div class="dwm-status" id="dwmInquiryStatus"></div>
- </form>
- </div>
-</div>
-
-<!-- Sample-request modal -->
-<div class="dwm" id="dwmSample" onclick="if(event.target===this)dwmClose('Sample')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Sample')" aria-label="Close">×</button>
- <h3>Request a Sample</h3>
- <p class="sub">Memo sample · ships free · 3–5 business days</p>
- <div class="dwm-preview" id="dwmSamplePreview" style="display:none">
- <img id="dwmSampleImg" src="" alt="">
- <div><div class="pn" id="dwmSampleName"></div><div class="pc" id="dwmSampleSku"></div></div>
- </div>
- <form id="dwmSampleForm" onsubmit="return dwmSubmit(event,'sample')">
- <input type="hidden" name="sku" id="dwmSampleSkuInput">
- <input type="hidden" name="title" id="dwmSampleTitleInput">
- <input type="hidden" name="image_url" id="dwmSampleImageInput">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Shipping Address</label><input type="text" name="address" placeholder="Street" required></div>
- <div class="dwm-field" style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px">
- <input type="text" name="city" placeholder="City" required>
- <input type="text" name="state" placeholder="State" required>
- <input type="text" name="zip" placeholder="ZIP" required>
- </div>
- <div class="dwm-field"><label>Notes (optional)</label><textarea name="message" placeholder="Project, sq.ft., timing"></textarea></div>
- <button type="submit" class="dwm-submit">Send Sample Request</button>
- <div class="dwm-status" id="dwmSampleStatus"></div>
- </form>
- </div>
-</div>
-
-<script>
- // Universal modal control
- function dwmOpen(name, opts){
- document.getElementById('dwm' + name).classList.add('open');
- document.body.style.overflow = 'hidden';
- if (name === 'Sample' && opts) {
- document.getElementById('dwmSamplePreview').style.display = 'flex';
- document.getElementById('dwmSampleImg').src = opts.image_url || '';
- document.getElementById('dwmSampleName').textContent = opts.title || '';
- document.getElementById('dwmSampleSku').textContent = opts.sku || '';
- document.getElementById('dwmSampleSkuInput').value = opts.sku || '';
- document.getElementById('dwmSampleTitleInput').value = opts.title || '';
- document.getElementById('dwmSampleImageInput').value = opts.image_url || '';
- } else if (name === 'Sample') {
- document.getElementById('dwmSamplePreview').style.display = 'none';
- document.getElementById('dwmSampleSkuInput').value = '';
- document.getElementById('dwmSampleTitleInput').value = '';
- document.getElementById('dwmSampleImageInput').value = '';
- }
- }
- function dwmClose(name){ document.getElementById('dwm'+name).classList.remove('open'); document.body.style.overflow=''; }
-
- // Universal form submit — POSTs to /api/send-{kind}
- async function dwmSubmit(e, kind) {
- e.preventDefault();
- const form = e.target;
- const data = Object.fromEntries(new FormData(form).entries());
- const btn = form.querySelector('.dwm-submit');
- const status = form.querySelector('.dwm-status');
- btn.disabled = true; const orig = btn.textContent; btn.textContent = 'Sending…';
- status.className = 'dwm-status';
- try {
- const r = await fetch('/api/send-' + kind, { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
- if (!r.ok) throw new Error('HTTP '+r.status);
- const j = await r.json();
- status.textContent = kind === 'sample' ? 'Sample request sent — ships within 3–5 business days' : 'Inquiry sent — we respond within 1 business day';
- status.className = 'dwm-status ok';
- btn.textContent = 'Sent ✓';
- setTimeout(() => { dwmClose(kind === 'sample' ? 'Sample' : 'Inquiry'); btn.disabled = false; btn.textContent = orig; status.className = 'dwm-status'; form.reset(); }, 2800);
- } catch (err) {
- status.textContent = 'Send failed — please email info@designerwallcoverings.com';
- status.className = 'dwm-status err';
- btn.disabled = false; btn.textContent = orig;
- }
- return false;
- }
-
- // Wire up "Memo samples ship free" badge in hero to open sample modal directly
- document.querySelectorAll('.hero .badge, [data-open-sample]').forEach(el => {
- el.style.cursor = 'pointer';
- el.addEventListener('click', () => dwmOpen('Sample'));
- });
-
- // Wire nav "Trade" link to inquiry modal
- document.querySelectorAll('nav a[href*="designerwallcoverings.com"]').forEach(a => {
- a.removeAttribute('target');
- a.removeAttribute('href');
- a.style.cursor = 'pointer';
- a.addEventListener('click', e => { e.preventDefault(); dwmOpen('Contact'); });
- });
-
- // Override product card clicks — open Sample modal pre-filled instead of redirecting to DW
- document.addEventListener('click', e => {
- const card = e.target.closest('.card, .rail-card');
- if (!card) return;
- if (card.tagName === 'A' && (card.getAttribute('href') || '').startsWith('/sample/')) {
- e.preventDefault();
- const img = card.querySelector('img');
- const pat = card.querySelector('.pat');
- const sku = card.getAttribute('href').replace('/sample/', '');
- dwmOpen('Sample', {
- sku,
- title: pat ? pat.textContent.trim() : '',
- image_url: img ? img.src : ''
- });
- }
- }, true);
-// DW STANDARD: hero pulls from products.json[0].image_url so dw-collections-viewer
-// drag-drop / hero-pin updates the live front page on next deploy.
-// Always upgrades to the largest Shopify variant (strips _NxN size suffix) so
-// the full-page hero stays sharp.
-(async function hydrateHero() {
- try {
- const r = await fetch('/api/products?limit=1');
- if (!r.ok) return;
- const d = await r.json();
- let url = d.items && d.items[0] && d.items[0].image_url;
- if (!url) return;
- if (/^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(url)) {
- url = url.replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- const bg = document.getElementById('heroBg');
- if (bg) bg.style.backgroundImage = "url('" + url + "')";
- }
- } catch(e){}
-})();
-
-
-// DW STANDARD sort-select wire-up (added by fleet patcher)
-(function(){
- const sortSel = document.getElementById('sortSelect');
- if (!sortSel) return;
- const KEY = location.hostname.replace(/\./g, '_') + '_sort';
- const saved = localStorage.getItem(KEY);
- if (saved) { try { sortSel.value = saved; } catch(e){} }
- if (typeof state !== 'undefined') state.sort = sortSel.value;
- sortSel.addEventListener('change', e => {
- const v = e.target.value;
- try { localStorage.setItem(KEY, v); } catch(e){}
- if (typeof state !== 'undefined') state.sort = v;
- if (typeof resetGrid === 'function') resetGrid();
- else location.reload();
- });
-})();
-</script>
-
-</body>
-</html>
diff --git a/public/index.html.pre-pass10.bak b/public/index.html.pre-pass10.bak
deleted file mode 100644
index 0e79107..0000000
--- a/public/index.html.pre-pass10.bak
+++ /dev/null
@@ -1,676 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
-<meta charset="utf-8">
-<!-- Google tag (gtag.js) -->
-<script async src="https://www.googletagmanager.com/gtag/js?id=G-PN839G9FD8"></script>
-<script>
- window.dataLayer = window.dataLayer || [];
- function gtag(){dataLayer.push(arguments);}
- gtag('js', new Date());
- gtag('config', 'G-PN839G9FD8');
-</script>
-
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>Architectural Wallcoverings</title>
-<meta name="description" content="Architectural Wallcoverings — Class A specifier-grade architectural wallcoverings.">
-<meta name="theme-color" content="#F5F2ED">
-<link rel="canonical" href="https://architecturalwallcoverings.com/">
-<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&display=swap" rel="stylesheet">
-<link rel="preload" as="image" href="/hero-bg.jpg" fetchpriority="high">
-<script type="application/ld+json">
-{
- "@context": "https://schema.org",
- "@type": "Organization",
- "name": "Studio Toten",
- "url": "https://architecturalwallcoverings.com/",
- "email": "info@architecturalwallcoverings.com"
-}
-</script>
-<script src="/zd-loader.js" defer></script>
-<style>
-:root {
- --bg: #F5F2ED;
- --paper: #1A1A1A;
- --muted: #8B7866;
- --line: #D5CFC4;
- --accent: #1A1A1A;
- --bg-soft: #D5CFC4;
- --cols: 6;
-}
-html[data-theme="dark"] {
- --bg: #1a1410;
- --paper: #F5F2ED;
- --muted: #C9B89E;
- --line: rgba(255,254,250,0.12);
- --accent: #1A1A1A;
- --bg-soft: #2a1f15;
-}
-* { margin:0; padding:0; box-sizing:border-box }
-html { scroll-behavior:smooth }
-body { font-family:'Inter', sans-serif; color:var(--paper); -webkit-font-smoothing:antialiased; background:var(--bg); min-height:100vh; overflow-x:hidden }
-/* DW-FASHION-TEMPLATE-OVERRIDE */
-.section-title .accent, .footer-brand, .center-mark, h1, h2, h3 { font-family:'Inter', Georgia, serif !important; font-weight:400 !important; }
-
-/* ===== Auto-hide header ===== */
-header { position:fixed; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 32px; z-index:100; background:rgba(0,0,0,0.55); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:transform .3s }
-.h-link { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); text-decoration:none; cursor:pointer; background:transparent; border:0 }
-.h-link:hover { opacity:0.7 }
-.h-icon { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }
-
-/* ===== Cinema hero ===== */
-.cinema { position:relative; height:100vh; width:100%; overflow:hidden }
-.cinema-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-image:url('/hero-bg.jpg') }
-.cinema-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.75) 100%) }
-.corner-mark { position:absolute; top:24px; left:32px; font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,0.55), 0 0 1px rgba(0,0,0,0.4); z-index:5 }
-.corner-mark::before { content:"◆ "; margin-right:6px }
-.center-mark { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-size:clamp(34px,5vw,72px); font-weight:300; letter-spacing:0.42em; text-transform:uppercase; text-align:center; color:#fff; z-index:5; mix-blend-mode:difference }
-.center-mark .tm { font-size:14px; vertical-align:super; opacity:0.7; margin-left:0.2em }
-.center-mark .sub { display:block; font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400; font-size:0.4em; letter-spacing:0.04em; text-transform:none; margin-top:14px; opacity:0.85 }
-.meta-line { position:absolute; bottom:32px; left:32px; font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:700; color:#fff; z-index:5; opacity:0.85 }
-.meta-line .num { font-size:12px; display:block; margin-top:4px; letter-spacing:0.05em }
-.enter { position:absolute; bottom:32px; right:32px; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:0.36em; text-transform:uppercase; font-weight:700; color:#fff; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #fff; transition:gap 0.25s; z-index:5 }
-.enter:hover { gap:22px }
-.enter svg { width:24px; height:12px }
-
-/* ===== Section ===== */
-.section { padding:96px 32px }
-.section-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--line) }
-.section-title { font-size:clamp(36px,5vw,64px); font-weight:300; letter-spacing:-0.02em; line-height:1 }
-.section-title .accent { color: var(--accent); font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400 }
-.section-eyebrow { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:16px }
-.section-meta { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--muted); text-align:right; line-height:1.6 }
-
-/* ===== Filter bar ===== */
-.filters { display:flex; gap:8px; align-items:center; margin-bottom:18px; flex-wrap:wrap }
-.chip { padding:8px 16px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); background:transparent; border:1px solid var(--line); cursor:pointer; transition:all 0.2s; font-family:inherit }
-.chip:hover { border-color:var(--paper) }
-.chip.active { background:var(--paper); color:var(--bg); border-color:var(--paper) }
-.search { flex:0 1 280px; margin-left:auto; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:6px 0 }
-.search input { flex:1; background:transparent; border:0; color:var(--paper); font-family:inherit; font-size:13px; outline:none; letter-spacing:0.04em }
-.search input::placeholder { color:var(--muted) }
-.search svg { width:16px; height:16px; stroke:var(--muted); fill:none; stroke-width:1.5 }
-
-/* ===== Grid-density slider ===== */
-.density { display:flex; align-items:center; gap:14px; padding:6px 0; margin-bottom:24px }
-.density label { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--muted) }
-.density input[type=range] { flex:1; max-width:240px; -webkit-appearance:none; appearance:none; height:1px; background:var(--line); outline:none }
-.density input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50% }
-.density input[type=range]::-moz-range-thumb { width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50%; border:0 }
-.density .ct { font-size:11px; color:var(--muted); letter-spacing:0.18em; text-transform:uppercase; font-weight:600; min-width:80px }
-
-/* ===== Stats line ===== */
-.stat-line { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:24px }
-
-/* ===== Product grid (novasuede pattern: flush grid + slide-up overlay) ===== */
-.grid { display:grid; grid-template-columns:repeat(var(--cols), 1fr); gap:0 }
-.card { position:relative; aspect-ratio:1/1.15; cursor:pointer; overflow:hidden; border:1px solid var(--bg); transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1); background:var(--bg-soft) }
-.card:hover { transform:scale(1.04); z-index:5 }
-.card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease }
-.card .overlay { position:absolute; left:0; right:0; bottom:0; padding:20px 16px 14px; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%); transform:translateY(48%); opacity:0.85; transition:transform 0.3s ease, opacity 0.3s ease }
-.card:hover .overlay { transform:translateY(0); opacity:1 }
-.card .pat { font-size:13px; font-weight:600; letter-spacing:0.02em; color:#fff; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
-.card .ven { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#fff; opacity:0.7; font-weight:500; margin-top:4px }
-.card .actions { margin-top:10px; display:flex; gap:6px }
-.card .sample-btn { flex:1; padding:7px 10px; background:#fff; color:#000; font-family:inherit; font-size:10px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; border:0; cursor:pointer; text-align:center; transition:all 0.2s }
-.card .sample-btn:hover { background:var(--accent); color:#fff }
-
-@media (max-width:1024px) { .grid { grid-template-columns:repeat(min(var(--cols), 4), 1fr) } }
-@media (max-width:720px) { .grid { grid-template-columns:repeat(2, 1fr) } .density { display:none } }
-
-.sentinel { height:1px }
-.loading { text-align:center; color:var(--muted); padding:32px; font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700 }
-
-/* ===== Footer ===== */
-footer { padding:64px 32px 32px; border-top:1px solid var(--line); margin-top:32px }
-.footer-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr; gap:48px; margin-bottom:48px }
-.footer-brand { font-size:24px; font-weight:300; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:12px }
-.footer-text { font-size:13px; line-height:1.6; color:var(--muted); max-width:380px }
-.footer-col h4 { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--paper); margin-bottom:18px }
-.footer-col a { display:block; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:8px; transition:color 0.2s; cursor:pointer; background:transparent; border:0; font-family:inherit; padding:0; text-align:left }
-.footer-col a:hover { color:var(--accent) }
-.footer-bottom { max-width:1400px; margin:0 auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted) }
-
-@media (max-width:720px) {
- .corner-mark, .meta-line, .enter { font-size:10px }
- .center-mark { font-size:30px; letter-spacing:0.32em }
- .section, footer { padding-left:20px; padding-right:20px }
- .footer-grid { grid-template-columns:1fr; gap:32px }
- .search { margin-left:0; flex:1 1 100% }
-}
-
-.theme-toggle { background:transparent; border:1px solid var(--line); width:32px; height:32px; cursor:pointer; color:var(--paper); display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; transition:all .15s; padding:0 }
-.theme-toggle:hover { border-color:var(--accent); color:var(--accent) }
-
-/* ===== WCAG 2.4.7 — keyboard focus indicators ===== */
-/* Strictly :focus-visible so mouse clicks do NOT show the ring */
-a:focus-visible,
-button:focus-visible,
-input:focus-visible,
-select:focus-visible,
-textarea:focus-visible,
-[tabindex]:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
-}
-</style>
-<script>
-(function(){ try { var t = localStorage.getItem('arch_theme') || 'light'; document.documentElement.dataset.theme = t; } catch(e){} })();
-</script>
-<link rel="preconnect" href="https://fonts.googleapis.com">
-<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap">
-</head>
-<body>
-
-<header>
- <button class="h-link" onclick="dwmOpen('Contact')" aria-label="Contact"><svg class="h-icon" viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/></svg><span>Contact</span></button>
- <button class="theme-toggle" id="theme-toggle" aria-label="Theme toggle">☾</button>
-</header>
-
-<section class="cinema">
- <div class="cinema-bg" id="heroBg"></div>
- <div class="corner-mark">Specifier-Grade</div>
- <div class="center-mark">Architectural Wallcoverings</div>
- <div class="meta-line">Architectural · Specifier · Class A · Contract<span class="num" id="heroNum"></span></div>
- <a class="enter" href="#shop">Enter <svg viewBox="0 0 24 12" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M0 6h22M16 1l6 5-6 5"/></svg></a>
-</section>
-
-<section class="section" id="shop">
- <div class="section-header">
- <div>
- <div class="section-eyebrow">The Collection</div>
- <h2 class="section-title"><span class="accent" id="totalCount">—</span> Patterns.</h2>
- </div>
- <div class="section-meta">Architectural · Specifier · Class A · Contract</div>
- </div>
-
- <div class="filters" id="facets">
- <button class="chip active" data-facet="all">All</button>
- </div>
-
- <div class="density">
- <label>Sort</label>
- <select id="sortSelect" aria-label="Sort products" style="background:transparent;color:inherit;border:1px solid var(--line,rgba(255,255,255,.2));font:inherit;font-size:11px;letter-spacing:.10em;text-transform:uppercase;padding:4px 8px;cursor:pointer;outline:none;margin-right:14px">
- <option value="newest">Newest</option>
- <option value="color">Color</option>
- <option value="style">Style</option>
- <option value="sku">SKU A→Z</option>
- <option value="title">Title A→Z</option>
- <option value="price-asc">Price ↑</option>
- <option value="price-desc">Price ↓</option>
- </select>
- <label>Grid</label>
- <input type="range" id="densitySlider" min="4" max="12" step="1" value="6" aria-label="Grid columns">
- <span class="ct" id="densityLabel">6 cols</span>
- <div class="search">
- <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-5.5-5.5"/></svg>
- <input type="text" id="searchInput" placeholder="Search by pattern, color…" autocomplete="off">
- </div>
- </div>
-
- <div class="stat-line" id="statLine">Loading…</div>
- <div class="grid" id="grid"></div>
- <div class="loading" id="loading">Loading more…</div>
- <div class="sentinel" id="sentinel"></div>
-</section>
-
-<footer>
- <div class="footer-grid">
- <div>
- <div class="footer-brand">ARCHITECTURAL</div>
- <p class="footer-text">Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.</p>
- <p class="footer-text" style="margin-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;color:var(--paper);opacity:0.7"><a href="/about" style="color:inherit;text-decoration:none;border-bottom:1px solid var(--accent)">About →</a></p>
- </div>
- <div class="footer-col">
- <h4>Aesthetic</h4>
- <div id="footerFacets"></div>
- </div>
- <div class="footer-col">
- <h4>Trade</h4>
- <button onclick="dwmOpen('Inquiry')">Project Inquiry</button>
- <button onclick="dwmOpen('Sample')">Request Sample</button>
- <button onclick="dwmOpen('Contact')">Contact</button>
- </div>
- </div>
- <div class="footer-bottom">
- <span>architecturalwallcoverings.com · Studio Toten</span>
- <span><a href="mailto:info@architecturalwallcoverings.com" style="color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px">info@architecturalwallcoverings.com</a></span>
- <span id="footerStat"></span>
- </div>
-</footer>
-
-<script>
-// mini-constellation — 43 niche-stars, current site highlighted in gold
-(function(){
- const SLUG = "architecturalwallcoverings";
- const NICHES = [
- ['silkwallpaper','Silk','mat'],['silkwallcoverings','Silk W/C','mat'],['linenwallpaper','Linen','mat'],
- ['jutewallpaper','Jute','mat'],['raffiawallcoverings','Raffia W/C','mat'],['raffiawalls','Raffia Walls','mat'],
- ['corkwallcovering','Cork','mat'],['fabricwallpaper','Fabric','mat'],['textilewallpaper','Textile','mat'],
- ['metallicwallpaper','Metallic','mat'],['silverleafwallpaper','Silver Leaf','mat'],['vinylwallpaper','Vinyl','mat'],
- ['micawallpaper','Mica','mat'],['madagascarwallpaper','Madagascar','mat'],['mylarwallpaper','Mylar','mat'],
- ['suedewallpaper','Suede','mat'],
- ['1800swallpaper','1800s','dec'],['1890swallpaper','1890s','dec'],['1900swallpaper','1900s','dec'],
- ['1920swallpaper','1920s','dec'],['1930swallpaper','1930s','dec'],['1940swallpaper','1940s','dec'],
- ['1950swallpaper','1950s','dec'],['1960swallpaper','1960s','dec'],['1970swallpaper','1970s','dec'],
- ['1980swallpaper','1980s','dec'],['retrowalls','Retro','dec'],['wallpapersback','W. Back','dec'],
- ['agedwallpaper','Aged','cra'],['handcraftedwallpaper','Handcrafted','cra'],['museumwallpaper','Museum','cra'],
- ['restorationwallpaper','Restoration','cra'],['pastelwallpaper','Pastel','cra'],['glitterwalls','Glitter','cra'],
- ['greenwallcoverings','Green','cra'],['naturalwallcoverings','Natural','cra'],['saloonwallpaper','Saloon','cra'],
- ['contractwallpaper','Contract','use'],['hotelwallcoverings','Hotel','use'],['hospitalitywallpaper','Hospitality','use'],
- ['healthcarewallpaper','Healthcare','use'],['restaurantwallpaper','Restaurant','use'],['architecturalwallcoverings','Architectural','use']
- ];
- const COLOR = { mat:'#c9b687', dec:'#b86a4a', cra:'#6b8e6f', use:'#4a6b8e' };
- const W = 1080, H = 200, BANDS = ['mat','dec','cra','use'];
- const groups = { mat:[], dec:[], cra:[], use:[] };
- for (const n of NICHES) groups[n[2]].push(n);
- const svg = document.getElementById('miniConst');
- if (!svg) return;
- const bandW = W / BANDS.length;
- let nodes = '';
- BANDS.forEach((band, bi) => {
- const list = groups[band];
- const cx = bi * bandW + bandW / 2;
- list.forEach((n, i) => {
- const t = list.length === 1 ? 0.5 : i / (list.length - 1);
- // deterministic jitter per slug
- let h = 0; for (let k = 0; k < n[0].length; k++) h = (h * 31 + n[0].charCodeAt(k)) | 0;
- const jx = ((h & 0xff) / 255 - 0.5) * (bandW * 0.5);
- const jy = (((h >> 8) & 0xff) / 255 - 0.5) * 6; // tightened from 14 → 6 to prevent same-band collisions (16 mat nodes / 144px = 9px spacing)
- const x = cx + jx, y = 28 + t * (H - 56) + jy;
- const isCurrent = n[0] === SLUG;
- const r = isCurrent ? 8 : 4;
- const op = isCurrent ? 1 : 0.55;
- nodes += `<g class="mc-node" data-slug="${n[0]}" data-label="${n[1]}" style="cursor:pointer">
- <circle cx="${x}" cy="${y}" r="${r}" fill="url(#dna-${band})" fill-opacity="${op}" stroke="${COLOR[band]}" stroke-opacity="${isCurrent?1:0.7}" stroke-width="${isCurrent?2:1}">
- <title>${n[1]} — ${n[0]}.com</title>
- </circle>
- ${isCurrent ? `<circle cx="${x}" cy="${y}" r="${r+5}" fill="none" stroke="${COLOR[band]}" stroke-opacity="0.4" stroke-width="1"><animate attributeName="r" values="${r+5};${r+12};${r+5}" dur="2.4s" repeatCount="indefinite"/><animate attributeName="stroke-opacity" values="0.4;0;0.4" dur="2.4s" repeatCount="indefinite"/></circle>` : ''}
- </g>`;
- });
- });
- // append nodes after defs
- svg.insertAdjacentHTML('beforeend', nodes);
- svg.querySelectorAll('.mc-node').forEach(n => {
- n.addEventListener('mouseenter', () => n.querySelector('circle').setAttribute('fill-opacity', '1'));
- n.addEventListener('mouseleave', e => {
- const isCurrent = n.dataset.slug === SLUG;
- n.querySelector('circle').setAttribute('fill-opacity', isCurrent ? '1' : '0.55');
- });
- n.addEventListener('click', () => window.open('https://' + n.dataset.slug + '.com', '_blank'));
- });
-})();
-</script>
-
-<script>
-const state = { q:'', facet:'all', page:1, pages:1, total:0, loading:false, exhausted:false };
-const LABELS = {"all":"All"};
-
-function escAttr(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[c])); }
-// Image-URL allowlist: only DW Shopify CDN + designerwallcoverings.com (defends against XSS via crafted products.json)
-function safeImg(u) { return /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(u || '') ? u : '/hero-bg.jpg'; }
-function cardHTML(p) {
- const eager = state.page === 1;
- return '<img loading="' + (eager ? 'eager' : 'lazy') + '"' + (eager ? ' fetchpriority="high"' : '') + ' src="' + escAttr(safeImg(p.image_url)) + '" alt="' + escAttr(p.title) + '">'
- + '<div class="overlay">'
- + '<div class="pat">' + escAttr(p.pattern_name || p.title) + '</div>'
- + '<div class="ven">' + escAttr((p.vendor || '').replace(/-/g, ' ')) + '</div>'
- + '<div class="actions">'
- + '<button class="sample-btn" onclick="event.stopPropagation();dwmOpen(\'Sample\',' + JSON.stringify({sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}).replace(/"/g,'"') + ')">Sample</button>'
- + '</div></div>';
-}
-
-async function loadFacets() {
- let f;
- try {
- const r = await fetch('/api/facets');
- if (!r.ok) throw new Error('HTTP ' + r.status);
- f = await r.json();
- } catch (e) { console.error('loadFacets failed:', e); return; }
- const el = document.getElementById('facets');
- for (const [k, v] of Object.entries(f.aesthetics).sort((a,b) => b[1] - a[1])) {
- const b = document.createElement('button');
- b.className = 'chip'; b.dataset.facet = k;
- b.innerHTML = (LABELS[k] || k) + ' <span style="opacity:.55;font-weight:500;margin-left:4px">' + v + '</span>';
- el.appendChild(b);
- }
- el.addEventListener('click', e => {
- if (e.target.tagName !== 'BUTTON') return;
- document.querySelectorAll('#facets button').forEach(b => b.classList.remove('active'));
- e.target.classList.add('active');
- state.facet = e.target.dataset.facet;
- resetGrid();
- });
- document.getElementById('totalCount').textContent = f.total;
- document.getElementById('footerStat').textContent = f.total + ' patterns · live archive';
- // Footer aesthetic links
- const footerEl = document.getElementById('footerFacets');
- for (const [k] of Object.entries(f.aesthetics)) {
- const b = document.createElement('button');
- b.textContent = LABELS[k] || k;
- b.onclick = () => { state.facet = k; resetGrid(); document.querySelectorAll('#facets button').forEach(x => x.classList.toggle('active', x.dataset.facet === k)); document.getElementById('shop').scrollIntoView({behavior:'smooth'}); };
- footerEl.appendChild(b);
- }
-}
-
-function resetGrid() {
- state.page = 1; state.exhausted = false;
- document.getElementById('grid').innerHTML = '';
- document.getElementById('loading').textContent = 'Loading…';
- loadGridPage();
-}
-
-async function loadGridPage() {
- if (state.loading || state.exhausted) return;
- state.loading = true;
- const params = new URLSearchParams({ page:state.page, limit:24 });
- if (state.q) params.set('q', state.q);
- if (state.facet !== 'all') params.set('aesthetic', state.facet);
- let data;
- try {
- const r = await fetch('/api/products?' + params);
- if (!r.ok) throw new Error('HTTP ' + r.status);
- data = await r.json();
- } catch (e) {
- console.error('loadGridPage failed:', e);
- document.getElementById('loading').textContent = '— offline — refresh to retry —';
- state.loading = false;
- return;
- }
- state.total = data.total; state.pages = data.pages;
-
- if (state.page === 1) {
- document.getElementById('statLine').textContent = data.total + ' patterns · ' + (state.facet === 'all' ? 'all aesthetics' : (LABELS[state.facet] || state.facet)) + (state.q ? ' · matching "' + state.q + '"' : '');
- }
- const grid = document.getElementById('grid');
- for (const p of data.items) {
- const a = document.createElement('a');
- a.className = 'card'; a.href = '#'; a.onclick = (e) => { e.preventDefault(); dwmOpen('Sample',{sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}); };
- a.innerHTML = cardHTML(p);
- grid.appendChild(a);
- }
- if (state.page >= state.pages || data.items.length === 0) {
- state.exhausted = true;
- document.getElementById('loading').textContent = state.total > 0 ? '— end of archive · ' + state.total + ' patterns —' : '';
- } else state.page++;
- state.loading = false;
-}
-
-const io = new IntersectionObserver(es => { for (const e of es) if (e.isIntersecting) loadGridPage(); }, { rootMargin:'600px 0px' });
-io.observe(document.getElementById('sentinel'));
-
-document.getElementById('searchInput').addEventListener('input', e => {
- state.q = e.target.value.trim();
- clearTimeout(window._t);
- window._t = setTimeout(resetGrid, 220);
-});
-
-// Density slider
-const slider = document.getElementById('densitySlider');
-const dlabel = document.getElementById('densityLabel');
-function setDensity(n) {
- document.documentElement.style.setProperty('--cols', n);
- dlabel.textContent = n + ' cols';
- try { localStorage.setItem('arch_theme_density', n); } catch(e){}
-}
-slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
-const savedDensity = parseInt(localStorage.getItem('arch_theme_density') || '6');
-if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
-
-// Theme toggle
-const tb = document.getElementById('theme-toggle');
-function setTheme(t){ document.documentElement.dataset.theme = t; try { localStorage.setItem('arch_theme', t); } catch(e){} tb.textContent = t === 'dark' ? '☾' : '☀'; }
-setTheme(document.documentElement.dataset.theme || 'light');
-tb.addEventListener('click', () => setTheme(document.documentElement.dataset.theme === 'dark' ? 'light' : 'dark'));
-
-loadFacets();
-loadGridPage();
-</script>
-<!-- ============================================================
- DW UNIVERSAL CONTACT MODULE — fashion-house UX
- Inject before </body> in every DW-family sister site.
- Self-contained: CSS + 4 modals + JS submission handlers.
- Uses host site's CSS vars (--bg, --fg, --gold, --rule).
- ============================================================ -->
-<style>
- /* === MODAL BASE === */
- .dwm{position:fixed;inset:0;background:rgba(0,0,0,0.78);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;overflow-y:auto}
- .dwm.open{display:flex}
- .dwm-box{background:var(--bg);border:1px solid var(--rule);max-width:520px;width:100%;padding:36px 32px;position:relative;max-height:90vh;overflow-y:auto;animation:dwm-in 0.25s ease}
- @keyframes dwm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
- .dwm-box h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;font-size:32px;line-height:1.05;margin-bottom:6px;color:var(--fg);letter-spacing:-0.01em}
- .dwm-box .sub{color:var(--muted);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
- .dwm-close{position:absolute;top:18px;right:18px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;width:32px;height:32px;line-height:1;padding:0}
- .dwm-close:hover{color:var(--gold)}
- .dwm-preview{display:flex;gap:14px;align-items:center;padding:12px;background:var(--bg-soft);margin-bottom:18px}
- .dwm-preview img{width:64px;height:64px;object-fit:cover}
- .dwm-preview .pn{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;line-height:1.2;color:var(--fg)}
- .dwm-preview .pc{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
- .dwm-field{margin-bottom:14px}
- .dwm-field label{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
- .dwm-field input,.dwm-field textarea,.dwm-field select{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:8px 4px;font-size:14px;font-family:inherit;color:var(--fg);outline:none;transition:border-color 0.2s}
- .dwm-field input:focus,.dwm-field textarea:focus{border-bottom-color:var(--gold)}
- .dwm-field textarea{min-height:60px;resize:vertical}
- .dwm-submit{background:transparent;color:var(--muted, #c9b89e);border:1px solid var(--muted, #c9b89e);padding:14px 28px;font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:700;cursor:pointer;width:100%;margin-top:8px;transition:background 0.15s, color 0.15s}
- .dwm-submit:hover{background:var(--muted, #c9b89e);color:var(--bg, #000)}
-
- .dwm-submit:disabled{opacity:0.5;cursor:default}
- .dwm-status{margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;display:none}
- .dwm-status.ok{color:var(--sage);display:block}
- .dwm-status.err{color:#e08070;display:block}
- /* contact-options */
- .dwm-options{display:flex;flex-direction:column;gap:10px}
- .dwm-option{display:flex;align-items:center;gap:14px;padding:18px 20px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;transition:all 0.2s;text-align:left;width:100%}
- .dwm-option:hover{border-color:var(--gold);color:var(--gold)}
- .dwm-option svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}
- .dwm-option .lbl{flex:1;display:block}
- .dwm-option .val{display:block;font-size:10px;letter-spacing:0.14em;text-transform:none;font-weight:500;opacity:0.65;margin-top:4px}
-
-/* graphics-loop pass 5: serif hero typography + nav legibility */
-.cinema h1, h1.headline { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; letter-spacing: -0.01em }
-.h-link { font-size: 13px; letter-spacing: 0.06em }
-</style>
-
-<!-- Contact options modal -->
-<div class="dwm" id="dwmContact" onclick="if(event.target===this)dwmClose('Contact')">
- <div class="dwm-box" style="max-width:440px">
- <button class="dwm-close" onclick="dwmClose('Contact')" aria-label="Close">×</button>
- <h3>Contact</h3>
- <p class="sub" id="dwmContactSub">Three ways to reach us</p>
- <div class="dwm-options">
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Inquiry')">
- <svg viewBox="0 0 24 24"><path d="M4 4h16v12H7l-3 3z"/></svg>
- <span class="lbl">Send an Inquiry<span class="val">Project name · scope · all the details</span></span>
- </button>
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Sample')">
- <svg viewBox="0 0 24 24"><rect x="4" y="6" width="16" height="14"/><path d="M4 10h16M9 6V3h6v3"/></svg>
- <span class="lbl">Request a Sample<span class="val">Memo sample · ships free · 3–5 business days</span></span>
- </button>
- <a class="dwm-option" id="dwmContactEmailLink" href="mailto:info@architecturalwallcoverings.com">
- <svg viewBox="0 0 24 24"><path d="M3 6h18v12H3z"/><path d="M3 6l9 7 9-7"/></svg>
- <span class="lbl">Email Us<span class="val" id="dwmContactEmailLabel">info@architecturalwallcoverings.com</span></span>
- </a>
- </div>
- </div>
-</div>
-
-<!-- Inquiry modal -->
-<div class="dwm" id="dwmInquiry" onclick="if(event.target===this)dwmClose('Inquiry')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Inquiry')" aria-label="Close">×</button>
- <h3>Project Inquiry</h3>
- <p class="sub">We'll respond within one business day</p>
- <form id="dwmInquiryForm" onsubmit="return dwmSubmit(event,'inquiry')">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Phone</label><input type="tel" name="phone"></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Project Name</label><input type="text" name="projectName" required></div>
- <div class="dwm-field"><label>Project Scope</label><textarea name="projectScope" placeholder="Square footage · room count · timeline" required></textarea></div>
- <div class="dwm-field"><label>Additional Information</label><textarea name="message" placeholder="Patterns of interest, finish preferences, budget"></textarea></div>
- <button type="submit" class="dwm-submit">Send Inquiry</button>
- <div class="dwm-status" id="dwmInquiryStatus"></div>
- </form>
- </div>
-</div>
-
-<!-- Sample-request modal -->
-<div class="dwm" id="dwmSample" onclick="if(event.target===this)dwmClose('Sample')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Sample')" aria-label="Close">×</button>
- <h3>Request a Sample</h3>
- <p class="sub">Memo sample · ships free · 3–5 business days</p>
- <div class="dwm-preview" id="dwmSamplePreview" style="display:none">
- <img id="dwmSampleImg" src="" alt="">
- <div><div class="pn" id="dwmSampleName"></div><div class="pc" id="dwmSampleSku"></div></div>
- </div>
- <form id="dwmSampleForm" onsubmit="return dwmSubmit(event,'sample')">
- <input type="hidden" name="sku" id="dwmSampleSkuInput">
- <input type="hidden" name="title" id="dwmSampleTitleInput">
- <input type="hidden" name="image_url" id="dwmSampleImageInput">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Shipping Address</label><input type="text" name="address" placeholder="Street" required></div>
- <div class="dwm-field" style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px">
- <input type="text" name="city" placeholder="City" required>
- <input type="text" name="state" placeholder="State" required>
- <input type="text" name="zip" placeholder="ZIP" required>
- </div>
- <div class="dwm-field"><label>Notes (optional)</label><textarea name="message" placeholder="Project, sq.ft., timing"></textarea></div>
- <button type="submit" class="dwm-submit">Send Sample Request</button>
- <div class="dwm-status" id="dwmSampleStatus"></div>
- </form>
- </div>
-</div>
-
-<script>
- // Universal modal control
- function dwmOpen(name, opts){
- document.getElementById('dwm' + name).classList.add('open');
- document.body.style.overflow = 'hidden';
- if (name === 'Sample' && opts) {
- document.getElementById('dwmSamplePreview').style.display = 'flex';
- document.getElementById('dwmSampleImg').src = opts.image_url || '';
- document.getElementById('dwmSampleName').textContent = opts.title || '';
- document.getElementById('dwmSampleSku').textContent = opts.sku || '';
- document.getElementById('dwmSampleSkuInput').value = opts.sku || '';
- document.getElementById('dwmSampleTitleInput').value = opts.title || '';
- document.getElementById('dwmSampleImageInput').value = opts.image_url || '';
- } else if (name === 'Sample') {
- document.getElementById('dwmSamplePreview').style.display = 'none';
- document.getElementById('dwmSampleSkuInput').value = '';
- document.getElementById('dwmSampleTitleInput').value = '';
- document.getElementById('dwmSampleImageInput').value = '';
- }
- }
- function dwmClose(name){ document.getElementById('dwm'+name).classList.remove('open'); document.body.style.overflow=''; }
-
- // Universal form submit — POSTs to /api/send-{kind}
- async function dwmSubmit(e, kind) {
- e.preventDefault();
- const form = e.target;
- const data = Object.fromEntries(new FormData(form).entries());
- const btn = form.querySelector('.dwm-submit');
- const status = form.querySelector('.dwm-status');
- btn.disabled = true; const orig = btn.textContent; btn.textContent = 'Sending…';
- status.className = 'dwm-status';
- try {
- const r = await fetch('/api/send-' + kind, { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
- if (!r.ok) throw new Error('HTTP '+r.status);
- const j = await r.json();
- status.textContent = kind === 'sample' ? 'Sample request sent — ships within 3–5 business days' : 'Inquiry sent — we respond within 1 business day';
- status.className = 'dwm-status ok';
- btn.textContent = 'Sent ✓';
- setTimeout(() => { dwmClose(kind === 'sample' ? 'Sample' : 'Inquiry'); btn.disabled = false; btn.textContent = orig; status.className = 'dwm-status'; form.reset(); }, 2800);
- } catch (err) {
- status.textContent = 'Send failed — please email info@designerwallcoverings.com';
- status.className = 'dwm-status err';
- btn.disabled = false; btn.textContent = orig;
- }
- return false;
- }
-
- // Wire up "Memo samples ship free" badge in hero to open sample modal directly
- document.querySelectorAll('.hero .badge, [data-open-sample]').forEach(el => {
- el.style.cursor = 'pointer';
- el.addEventListener('click', () => dwmOpen('Sample'));
- });
-
- // Wire nav "Trade" link to inquiry modal
- document.querySelectorAll('nav a[href*="designerwallcoverings.com"]').forEach(a => {
- a.removeAttribute('target');
- a.removeAttribute('href');
- a.style.cursor = 'pointer';
- a.addEventListener('click', e => { e.preventDefault(); dwmOpen('Contact'); });
- });
-
- // Override product card clicks — open Sample modal pre-filled instead of redirecting to DW
- document.addEventListener('click', e => {
- const card = e.target.closest('.card, .rail-card');
- if (!card) return;
- if (card.tagName === 'A' && (card.getAttribute('href') || '').startsWith('/sample/')) {
- e.preventDefault();
- const img = card.querySelector('img');
- const pat = card.querySelector('.pat');
- const sku = card.getAttribute('href').replace('/sample/', '');
- dwmOpen('Sample', {
- sku,
- title: pat ? pat.textContent.trim() : '',
- image_url: img ? img.src : ''
- });
- }
- }, true);
-// DW STANDARD: hero pulls from products.json[0].image_url so dw-collections-viewer
-// drag-drop / hero-pin updates the live front page on next deploy.
-// Always upgrades to the largest Shopify variant (strips _NxN size suffix) so
-// the full-page hero stays sharp.
-// DW STANDARD: hero rotates through top-20 NEWEST products on each visit
-// (novasuede.com pattern). Fetches /api/products?limit=100, sorts by created_at desc,
-// takes the freshest 20, picks one per visit via localStorage counter.
-// Falls back to static /hero-bg.jpg on any error.
-(async function rotateHero() {
- try {
- const r = await fetch('/api/products?limit=100');
- if (!r.ok) return;
- const d = await r.json();
- const items = (d.items || [])
- .filter(p => p && p.image_url && /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(p.image_url))
- .sort((a,b) => String(b.created_at || '').localeCompare(String(a.created_at || '')))
- .slice(0, 20);
- if (!items.length) return;
- let visits = 0;
- try {
- visits = parseInt(localStorage.getItem('hero_visits') || '0', 10) || 0;
- localStorage.setItem('hero_visits', String(visits + 1));
- } catch(e) {}
- const pick = items[visits % items.length];
- // Strip _NxN size suffix to get the largest CDN variant
- const url = pick.image_url.replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- const bg = document.getElementById('heroBg') || document.getElementById('cinemaBg');
- if (bg) bg.style.backgroundImage = "url('" + url + "')";
- } catch (e) {}
-})();
-
-
-// DW STANDARD sort-select wire-up (added by fleet patcher)
-(function(){
- const sortSel = document.getElementById('sortSelect');
- if (!sortSel) return;
- const KEY = location.hostname.replace(/\./g, '_') + '_sort';
- const saved = localStorage.getItem(KEY);
- if (saved) { try { sortSel.value = saved; } catch(e){} }
- if (typeof state !== 'undefined') state.sort = sortSel.value;
- sortSel.addEventListener('change', e => {
- const v = e.target.value;
- try { localStorage.setItem(KEY, v); } catch(e){}
- if (typeof state !== 'undefined') state.sort = v;
- if (typeof resetGrid === 'function') resetGrid();
- else location.reload();
- });
-})();
-</script>
-
-</body>
-</html>
diff --git a/public/index.html.pre-pass11.bak b/public/index.html.pre-pass11.bak
deleted file mode 100644
index 6a53850..0000000
--- a/public/index.html.pre-pass11.bak
+++ /dev/null
@@ -1,676 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
-<meta charset="utf-8">
-<!-- Google tag (gtag.js) -->
-<script async src="https://www.googletagmanager.com/gtag/js?id=G-PN839G9FD8"></script>
-<script>
- window.dataLayer = window.dataLayer || [];
- function gtag(){dataLayer.push(arguments);}
- gtag('js', new Date());
- gtag('config', 'G-PN839G9FD8');
-</script>
-
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>Architectural Wallcoverings</title>
-<meta name="description" content="Architectural Wallcoverings — Class A specifier-grade architectural wallcoverings.">
-<meta name="theme-color" content="#F5F2ED">
-<link rel="canonical" href="https://architecturalwallcoverings.com/">
-<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&display=swap" rel="stylesheet">
-<link rel="preload" as="image" href="/hero-bg.jpg" fetchpriority="high">
-<script type="application/ld+json">
-{
- "@context": "https://schema.org",
- "@type": "Organization",
- "name": "Studio Toten",
- "url": "https://architecturalwallcoverings.com/",
- "email": "info@architecturalwallcoverings.com"
-}
-</script>
-<script src="/zd-loader.js" defer></script>
-<style>
-:root {
- --bg: #F5F2ED;
- --paper: #1A1A1A;
- --muted: #8B7866;
- --line: #D5CFC4;
- --accent: #1A1A1A;
- --bg-soft: #D5CFC4;
- --cols: 6;
-}
-html[data-theme="dark"] {
- --bg: #1a1410;
- --paper: #F5F2ED;
- --muted: #C9B89E;
- --line: rgba(255,254,250,0.12);
- --accent: #1A1A1A;
- --bg-soft: #2a1f15;
-}
-* { margin:0; padding:0; box-sizing:border-box }
-html { scroll-behavior:smooth }
-body { font-family:'Inter', sans-serif; color:var(--paper); -webkit-font-smoothing:antialiased; background:var(--bg); min-height:100vh; overflow-x:hidden }
-/* DW-FASHION-TEMPLATE-OVERRIDE */
-.section-title .accent, .footer-brand, .center-mark, h1, h2, h3 { font-family:'Inter', Georgia, serif !important; font-weight:400 !important; }
-
-/* ===== Auto-hide header ===== */
-header { position:fixed; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 32px; z-index:100; background:rgba(0,0,0,0.55); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:transform .3s }
-.h-link { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); text-decoration:none; cursor:pointer; background:transparent; border:0 }
-.h-link:hover { opacity:0.7 }
-.h-icon { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }
-
-/* ===== Cinema hero ===== */
-.cinema { position:relative; height:100vh; width:100%; overflow:hidden }
-.cinema-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-image:url('/hero-bg.jpg') }
-.cinema-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.75) 100%) }
-.corner-mark { position:absolute; top:24px; left:32px; font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,0.55), 0 0 1px rgba(0,0,0,0.4); z-index:5 }
-.corner-mark::before { content:"◆ "; margin-right:6px }
-.center-mark { position:absolute; top:clamp(80px,12vh,140px); left:50%; transform:translateX(-50%); font-size:clamp(28px,4vw,56px); font-weight:500; letter-spacing:0.18em; text-transform:uppercase; text-align:center; color:#fff; text-shadow:0 2px 8px rgba(0,0,0,0.65), 0 0 1px rgba(0,0,0,0.5); z-index:5 }
-.center-mark .tm { font-size:14px; vertical-align:super; opacity:0.7; margin-left:0.2em }
-.center-mark .sub { display:block; font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400; font-size:0.4em; letter-spacing:0.04em; text-transform:none; margin-top:14px; opacity:0.85 }
-.meta-line { position:absolute; bottom:32px; left:32px; font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:700; color:#fff; z-index:5; opacity:0.85 }
-.meta-line .num { font-size:12px; display:block; margin-top:4px; letter-spacing:0.05em }
-.enter { position:absolute; bottom:32px; right:32px; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:0.36em; text-transform:uppercase; font-weight:700; color:#fff; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #fff; transition:gap 0.25s; z-index:5 }
-.enter:hover { gap:22px }
-.enter svg { width:24px; height:12px }
-
-/* ===== Section ===== */
-.section { padding:96px 32px }
-.section-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--line) }
-.section-title { font-size:clamp(36px,5vw,64px); font-weight:300; letter-spacing:-0.02em; line-height:1 }
-.section-title .accent { color: var(--accent); font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400 }
-.section-eyebrow { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:16px }
-.section-meta { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--muted); text-align:right; line-height:1.6 }
-
-/* ===== Filter bar ===== */
-.filters { display:flex; gap:8px; align-items:center; margin-bottom:18px; flex-wrap:wrap }
-.chip { padding:8px 16px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); background:transparent; border:1px solid var(--line); cursor:pointer; transition:all 0.2s; font-family:inherit }
-.chip:hover { border-color:var(--paper) }
-.chip.active { background:var(--paper); color:var(--bg); border-color:var(--paper) }
-.search { flex:0 1 280px; margin-left:auto; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:6px 0 }
-.search input { flex:1; background:transparent; border:0; color:var(--paper); font-family:inherit; font-size:13px; outline:none; letter-spacing:0.04em }
-.search input::placeholder { color:var(--muted) }
-.search svg { width:16px; height:16px; stroke:var(--muted); fill:none; stroke-width:1.5 }
-
-/* ===== Grid-density slider ===== */
-.density { display:flex; align-items:center; gap:14px; padding:6px 0; margin-bottom:24px }
-.density label { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--muted) }
-.density input[type=range] { flex:1; max-width:240px; -webkit-appearance:none; appearance:none; height:1px; background:var(--line); outline:none }
-.density input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50% }
-.density input[type=range]::-moz-range-thumb { width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50%; border:0 }
-.density .ct { font-size:11px; color:var(--muted); letter-spacing:0.18em; text-transform:uppercase; font-weight:600; min-width:80px }
-
-/* ===== Stats line ===== */
-.stat-line { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:24px }
-
-/* ===== Product grid (novasuede pattern: flush grid + slide-up overlay) ===== */
-.grid { display:grid; grid-template-columns:repeat(var(--cols), 1fr); gap:0 }
-.card { position:relative; aspect-ratio:1/1.15; cursor:pointer; overflow:hidden; border:1px solid var(--bg); transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1); background:var(--bg-soft) }
-.card:hover { transform:scale(1.04); z-index:5 }
-.card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease }
-.card .overlay { position:absolute; left:0; right:0; bottom:0; padding:20px 16px 14px; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%); transform:translateY(48%); opacity:0.85; transition:transform 0.3s ease, opacity 0.3s ease }
-.card:hover .overlay { transform:translateY(0); opacity:1 }
-.card .pat { font-size:13px; font-weight:600; letter-spacing:0.02em; color:#fff; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
-.card .ven { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#fff; opacity:0.7; font-weight:500; margin-top:4px }
-.card .actions { margin-top:10px; display:flex; gap:6px }
-.card .sample-btn { flex:1; padding:7px 10px; background:#fff; color:#000; font-family:inherit; font-size:10px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; border:0; cursor:pointer; text-align:center; transition:all 0.2s }
-.card .sample-btn:hover { background:var(--accent); color:#fff }
-
-@media (max-width:1024px) { .grid { grid-template-columns:repeat(min(var(--cols), 4), 1fr) } }
-@media (max-width:720px) { .grid { grid-template-columns:repeat(2, 1fr) } .density { display:none } }
-
-.sentinel { height:1px }
-.loading { text-align:center; color:var(--muted); padding:32px; font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700 }
-
-/* ===== Footer ===== */
-footer { padding:64px 32px 32px; border-top:1px solid var(--line); margin-top:32px }
-.footer-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr; gap:48px; margin-bottom:48px }
-.footer-brand { font-size:24px; font-weight:300; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:12px }
-.footer-text { font-size:13px; line-height:1.6; color:var(--muted); max-width:380px }
-.footer-col h4 { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--paper); margin-bottom:18px }
-.footer-col a { display:block; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:8px; transition:color 0.2s; cursor:pointer; background:transparent; border:0; font-family:inherit; padding:0; text-align:left }
-.footer-col a:hover { color:var(--accent) }
-.footer-bottom { max-width:1400px; margin:0 auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted) }
-
-@media (max-width:720px) {
- .corner-mark, .meta-line, .enter { font-size:10px }
- .center-mark { font-size:24px; letter-spacing:0.12em; top:clamp(60px,9vh,90px) }
- .section, footer { padding-left:20px; padding-right:20px }
- .footer-grid { grid-template-columns:1fr; gap:32px }
- .search { margin-left:0; flex:1 1 100% }
-}
-
-.theme-toggle { background:transparent; border:1px solid var(--line); width:32px; height:32px; cursor:pointer; color:var(--paper); display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; transition:all .15s; padding:0 }
-.theme-toggle:hover { border-color:var(--accent); color:var(--accent) }
-
-/* ===== WCAG 2.4.7 — keyboard focus indicators ===== */
-/* Strictly :focus-visible so mouse clicks do NOT show the ring */
-a:focus-visible,
-button:focus-visible,
-input:focus-visible,
-select:focus-visible,
-textarea:focus-visible,
-[tabindex]:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
-}
-</style>
-<script>
-(function(){ try { var t = localStorage.getItem('arch_theme') || 'light'; document.documentElement.dataset.theme = t; } catch(e){} })();
-</script>
-<link rel="preconnect" href="https://fonts.googleapis.com">
-<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap">
-</head>
-<body>
-
-<header>
- <button class="h-link" onclick="dwmOpen('Contact')" aria-label="Contact"><svg class="h-icon" viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/></svg><span>Contact</span></button>
- <button class="theme-toggle" id="theme-toggle" aria-label="Theme toggle">☾</button>
-</header>
-
-<section class="cinema">
- <div class="cinema-bg" id="heroBg"></div>
- <div class="corner-mark">Specifier-Grade</div>
- <div class="center-mark">Architectural Wallcoverings</div>
- <div class="meta-line">Architectural · Specifier · Class A · Contract<span class="num" id="heroNum"></span></div>
- <a class="enter" href="#shop">Enter <svg viewBox="0 0 24 12" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M0 6h22M16 1l6 5-6 5"/></svg></a>
-</section>
-
-<section class="section" id="shop">
- <div class="section-header">
- <div>
- <div class="section-eyebrow">The Collection</div>
- <h2 class="section-title"><span class="accent" id="totalCount">—</span> Patterns.</h2>
- </div>
- <div class="section-meta">Architectural · Specifier · Class A · Contract</div>
- </div>
-
- <div class="filters" id="facets">
- <button class="chip active" data-facet="all">All</button>
- </div>
-
- <div class="density">
- <label>Sort</label>
- <select id="sortSelect" aria-label="Sort products" style="background:transparent;color:inherit;border:1px solid var(--line,rgba(255,255,255,.2));font:inherit;font-size:11px;letter-spacing:.10em;text-transform:uppercase;padding:4px 8px;cursor:pointer;outline:none;margin-right:14px">
- <option value="newest">Newest</option>
- <option value="color">Color</option>
- <option value="style">Style</option>
- <option value="sku">SKU A→Z</option>
- <option value="title">Title A→Z</option>
- <option value="price-asc">Price ↑</option>
- <option value="price-desc">Price ↓</option>
- </select>
- <label>Grid</label>
- <input type="range" id="densitySlider" min="4" max="12" step="1" value="6" aria-label="Grid columns">
- <span class="ct" id="densityLabel">6 cols</span>
- <div class="search">
- <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-5.5-5.5"/></svg>
- <input type="text" id="searchInput" placeholder="Search by pattern, color…" autocomplete="off">
- </div>
- </div>
-
- <div class="stat-line" id="statLine">Loading…</div>
- <div class="grid" id="grid"></div>
- <div class="loading" id="loading">Loading more…</div>
- <div class="sentinel" id="sentinel"></div>
-</section>
-
-<footer>
- <div class="footer-grid">
- <div>
- <div class="footer-brand">ARCHITECTURAL</div>
- <p class="footer-text">Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.</p>
- <p class="footer-text" style="margin-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;color:var(--paper);opacity:0.7"><a href="/about" style="color:inherit;text-decoration:none;border-bottom:1px solid var(--accent)">About →</a></p>
- </div>
- <div class="footer-col">
- <h4>Aesthetic</h4>
- <div id="footerFacets"></div>
- </div>
- <div class="footer-col">
- <h4>Trade</h4>
- <button onclick="dwmOpen('Inquiry')">Project Inquiry</button>
- <button onclick="dwmOpen('Sample')">Request Sample</button>
- <button onclick="dwmOpen('Contact')">Contact</button>
- </div>
- </div>
- <div class="footer-bottom">
- <span>architecturalwallcoverings.com · Studio Toten</span>
- <span><a href="mailto:info@architecturalwallcoverings.com" style="color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px">info@architecturalwallcoverings.com</a></span>
- <span id="footerStat"></span>
- </div>
-</footer>
-
-<script>
-// mini-constellation — 43 niche-stars, current site highlighted in gold
-(function(){
- const SLUG = "architecturalwallcoverings";
- const NICHES = [
- ['silkwallpaper','Silk','mat'],['silkwallcoverings','Silk W/C','mat'],['linenwallpaper','Linen','mat'],
- ['jutewallpaper','Jute','mat'],['raffiawallcoverings','Raffia W/C','mat'],['raffiawalls','Raffia Walls','mat'],
- ['corkwallcovering','Cork','mat'],['fabricwallpaper','Fabric','mat'],['textilewallpaper','Textile','mat'],
- ['metallicwallpaper','Metallic','mat'],['silverleafwallpaper','Silver Leaf','mat'],['vinylwallpaper','Vinyl','mat'],
- ['micawallpaper','Mica','mat'],['madagascarwallpaper','Madagascar','mat'],['mylarwallpaper','Mylar','mat'],
- ['suedewallpaper','Suede','mat'],
- ['1800swallpaper','1800s','dec'],['1890swallpaper','1890s','dec'],['1900swallpaper','1900s','dec'],
- ['1920swallpaper','1920s','dec'],['1930swallpaper','1930s','dec'],['1940swallpaper','1940s','dec'],
- ['1950swallpaper','1950s','dec'],['1960swallpaper','1960s','dec'],['1970swallpaper','1970s','dec'],
- ['1980swallpaper','1980s','dec'],['retrowalls','Retro','dec'],['wallpapersback','W. Back','dec'],
- ['agedwallpaper','Aged','cra'],['handcraftedwallpaper','Handcrafted','cra'],['museumwallpaper','Museum','cra'],
- ['restorationwallpaper','Restoration','cra'],['pastelwallpaper','Pastel','cra'],['glitterwalls','Glitter','cra'],
- ['greenwallcoverings','Green','cra'],['naturalwallcoverings','Natural','cra'],['saloonwallpaper','Saloon','cra'],
- ['contractwallpaper','Contract','use'],['hotelwallcoverings','Hotel','use'],['hospitalitywallpaper','Hospitality','use'],
- ['healthcarewallpaper','Healthcare','use'],['restaurantwallpaper','Restaurant','use'],['architecturalwallcoverings','Architectural','use']
- ];
- const COLOR = { mat:'#c9b687', dec:'#b86a4a', cra:'#6b8e6f', use:'#4a6b8e' };
- const W = 1080, H = 200, BANDS = ['mat','dec','cra','use'];
- const groups = { mat:[], dec:[], cra:[], use:[] };
- for (const n of NICHES) groups[n[2]].push(n);
- const svg = document.getElementById('miniConst');
- if (!svg) return;
- const bandW = W / BANDS.length;
- let nodes = '';
- BANDS.forEach((band, bi) => {
- const list = groups[band];
- const cx = bi * bandW + bandW / 2;
- list.forEach((n, i) => {
- const t = list.length === 1 ? 0.5 : i / (list.length - 1);
- // deterministic jitter per slug
- let h = 0; for (let k = 0; k < n[0].length; k++) h = (h * 31 + n[0].charCodeAt(k)) | 0;
- const jx = ((h & 0xff) / 255 - 0.5) * (bandW * 0.5);
- const jy = (((h >> 8) & 0xff) / 255 - 0.5) * 6; // tightened from 14 → 6 to prevent same-band collisions (16 mat nodes / 144px = 9px spacing)
- const x = cx + jx, y = 28 + t * (H - 56) + jy;
- const isCurrent = n[0] === SLUG;
- const r = isCurrent ? 8 : 4;
- const op = isCurrent ? 1 : 0.55;
- nodes += `<g class="mc-node" data-slug="${n[0]}" data-label="${n[1]}" style="cursor:pointer">
- <circle cx="${x}" cy="${y}" r="${r}" fill="url(#dna-${band})" fill-opacity="${op}" stroke="${COLOR[band]}" stroke-opacity="${isCurrent?1:0.7}" stroke-width="${isCurrent?2:1}">
- <title>${n[1]} — ${n[0]}.com</title>
- </circle>
- ${isCurrent ? `<circle cx="${x}" cy="${y}" r="${r+5}" fill="none" stroke="${COLOR[band]}" stroke-opacity="0.4" stroke-width="1"><animate attributeName="r" values="${r+5};${r+12};${r+5}" dur="2.4s" repeatCount="indefinite"/><animate attributeName="stroke-opacity" values="0.4;0;0.4" dur="2.4s" repeatCount="indefinite"/></circle>` : ''}
- </g>`;
- });
- });
- // append nodes after defs
- svg.insertAdjacentHTML('beforeend', nodes);
- svg.querySelectorAll('.mc-node').forEach(n => {
- n.addEventListener('mouseenter', () => n.querySelector('circle').setAttribute('fill-opacity', '1'));
- n.addEventListener('mouseleave', e => {
- const isCurrent = n.dataset.slug === SLUG;
- n.querySelector('circle').setAttribute('fill-opacity', isCurrent ? '1' : '0.55');
- });
- n.addEventListener('click', () => window.open('https://' + n.dataset.slug + '.com', '_blank'));
- });
-})();
-</script>
-
-<script>
-const state = { q:'', facet:'all', page:1, pages:1, total:0, loading:false, exhausted:false };
-const LABELS = {"all":"All"};
-
-function escAttr(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[c])); }
-// Image-URL allowlist: only DW Shopify CDN + designerwallcoverings.com (defends against XSS via crafted products.json)
-function safeImg(u) { return /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(u || '') ? u : '/hero-bg.jpg'; }
-function cardHTML(p) {
- const eager = state.page === 1;
- return '<img loading="' + (eager ? 'eager' : 'lazy') + '"' + (eager ? ' fetchpriority="high"' : '') + ' src="' + escAttr(safeImg(p.image_url)) + '" alt="' + escAttr(p.title) + '">'
- + '<div class="overlay">'
- + '<div class="pat">' + escAttr(p.pattern_name || p.title) + '</div>'
- + '<div class="ven">' + escAttr((p.vendor || '').replace(/-/g, ' ')) + '</div>'
- + '<div class="actions">'
- + '<button class="sample-btn" onclick="event.stopPropagation();dwmOpen(\'Sample\',' + JSON.stringify({sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}).replace(/"/g,'"') + ')">Sample</button>'
- + '</div></div>';
-}
-
-async function loadFacets() {
- let f;
- try {
- const r = await fetch('/api/facets');
- if (!r.ok) throw new Error('HTTP ' + r.status);
- f = await r.json();
- } catch (e) { console.error('loadFacets failed:', e); return; }
- const el = document.getElementById('facets');
- for (const [k, v] of Object.entries(f.aesthetics).sort((a,b) => b[1] - a[1])) {
- const b = document.createElement('button');
- b.className = 'chip'; b.dataset.facet = k;
- b.innerHTML = (LABELS[k] || k) + ' <span style="opacity:.55;font-weight:500;margin-left:4px">' + v + '</span>';
- el.appendChild(b);
- }
- el.addEventListener('click', e => {
- if (e.target.tagName !== 'BUTTON') return;
- document.querySelectorAll('#facets button').forEach(b => b.classList.remove('active'));
- e.target.classList.add('active');
- state.facet = e.target.dataset.facet;
- resetGrid();
- });
- document.getElementById('totalCount').textContent = f.total;
- document.getElementById('footerStat').textContent = f.total + ' patterns · live archive';
- // Footer aesthetic links
- const footerEl = document.getElementById('footerFacets');
- for (const [k] of Object.entries(f.aesthetics)) {
- const b = document.createElement('button');
- b.textContent = LABELS[k] || k;
- b.onclick = () => { state.facet = k; resetGrid(); document.querySelectorAll('#facets button').forEach(x => x.classList.toggle('active', x.dataset.facet === k)); document.getElementById('shop').scrollIntoView({behavior:'smooth'}); };
- footerEl.appendChild(b);
- }
-}
-
-function resetGrid() {
- state.page = 1; state.exhausted = false;
- document.getElementById('grid').innerHTML = '';
- document.getElementById('loading').textContent = 'Loading…';
- loadGridPage();
-}
-
-async function loadGridPage() {
- if (state.loading || state.exhausted) return;
- state.loading = true;
- const params = new URLSearchParams({ page:state.page, limit:24 });
- if (state.q) params.set('q', state.q);
- if (state.facet !== 'all') params.set('aesthetic', state.facet);
- let data;
- try {
- const r = await fetch('/api/products?' + params);
- if (!r.ok) throw new Error('HTTP ' + r.status);
- data = await r.json();
- } catch (e) {
- console.error('loadGridPage failed:', e);
- document.getElementById('loading').textContent = '— offline — refresh to retry —';
- state.loading = false;
- return;
- }
- state.total = data.total; state.pages = data.pages;
-
- if (state.page === 1) {
- document.getElementById('statLine').textContent = data.total + ' patterns · ' + (state.facet === 'all' ? 'all aesthetics' : (LABELS[state.facet] || state.facet)) + (state.q ? ' · matching "' + state.q + '"' : '');
- }
- const grid = document.getElementById('grid');
- for (const p of data.items) {
- const a = document.createElement('a');
- a.className = 'card'; a.href = '#'; a.onclick = (e) => { e.preventDefault(); dwmOpen('Sample',{sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}); };
- a.innerHTML = cardHTML(p);
- grid.appendChild(a);
- }
- if (state.page >= state.pages || data.items.length === 0) {
- state.exhausted = true;
- document.getElementById('loading').textContent = state.total > 0 ? '— end of archive · ' + state.total + ' patterns —' : '';
- } else state.page++;
- state.loading = false;
-}
-
-const io = new IntersectionObserver(es => { for (const e of es) if (e.isIntersecting) loadGridPage(); }, { rootMargin:'600px 0px' });
-io.observe(document.getElementById('sentinel'));
-
-document.getElementById('searchInput').addEventListener('input', e => {
- state.q = e.target.value.trim();
- clearTimeout(window._t);
- window._t = setTimeout(resetGrid, 220);
-});
-
-// Density slider
-const slider = document.getElementById('densitySlider');
-const dlabel = document.getElementById('densityLabel');
-function setDensity(n) {
- document.documentElement.style.setProperty('--cols', n);
- dlabel.textContent = n + ' cols';
- try { localStorage.setItem('arch_theme_density', n); } catch(e){}
-}
-slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
-const savedDensity = parseInt(localStorage.getItem('arch_theme_density') || '6');
-if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
-
-// Theme toggle
-const tb = document.getElementById('theme-toggle');
-function setTheme(t){ document.documentElement.dataset.theme = t; try { localStorage.setItem('arch_theme', t); } catch(e){} tb.textContent = t === 'dark' ? '☾' : '☀'; }
-setTheme(document.documentElement.dataset.theme || 'light');
-tb.addEventListener('click', () => setTheme(document.documentElement.dataset.theme === 'dark' ? 'light' : 'dark'));
-
-loadFacets();
-loadGridPage();
-</script>
-<!-- ============================================================
- DW UNIVERSAL CONTACT MODULE — fashion-house UX
- Inject before </body> in every DW-family sister site.
- Self-contained: CSS + 4 modals + JS submission handlers.
- Uses host site's CSS vars (--bg, --fg, --gold, --rule).
- ============================================================ -->
-<style>
- /* === MODAL BASE === */
- .dwm{position:fixed;inset:0;background:rgba(0,0,0,0.78);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;overflow-y:auto}
- .dwm.open{display:flex}
- .dwm-box{background:var(--bg);border:1px solid var(--rule);max-width:520px;width:100%;padding:36px 32px;position:relative;max-height:90vh;overflow-y:auto;animation:dwm-in 0.25s ease}
- @keyframes dwm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
- .dwm-box h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;font-size:32px;line-height:1.05;margin-bottom:6px;color:var(--fg);letter-spacing:-0.01em}
- .dwm-box .sub{color:var(--muted);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
- .dwm-close{position:absolute;top:18px;right:18px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;width:32px;height:32px;line-height:1;padding:0}
- .dwm-close:hover{color:var(--gold)}
- .dwm-preview{display:flex;gap:14px;align-items:center;padding:12px;background:var(--bg-soft);margin-bottom:18px}
- .dwm-preview img{width:64px;height:64px;object-fit:cover}
- .dwm-preview .pn{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;line-height:1.2;color:var(--fg)}
- .dwm-preview .pc{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
- .dwm-field{margin-bottom:14px}
- .dwm-field label{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
- .dwm-field input,.dwm-field textarea,.dwm-field select{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:8px 4px;font-size:14px;font-family:inherit;color:var(--fg);outline:none;transition:border-color 0.2s}
- .dwm-field input:focus,.dwm-field textarea:focus{border-bottom-color:var(--gold)}
- .dwm-field textarea{min-height:60px;resize:vertical}
- .dwm-submit{background:transparent;color:var(--muted, #c9b89e);border:1px solid var(--muted, #c9b89e);padding:14px 28px;font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:700;cursor:pointer;width:100%;margin-top:8px;transition:background 0.15s, color 0.15s}
- .dwm-submit:hover{background:var(--muted, #c9b89e);color:var(--bg, #000)}
-
- .dwm-submit:disabled{opacity:0.5;cursor:default}
- .dwm-status{margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;display:none}
- .dwm-status.ok{color:var(--sage);display:block}
- .dwm-status.err{color:#e08070;display:block}
- /* contact-options */
- .dwm-options{display:flex;flex-direction:column;gap:10px}
- .dwm-option{display:flex;align-items:center;gap:14px;padding:18px 20px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;transition:all 0.2s;text-align:left;width:100%}
- .dwm-option:hover{border-color:var(--gold);color:var(--gold)}
- .dwm-option svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}
- .dwm-option .lbl{flex:1;display:block}
- .dwm-option .val{display:block;font-size:10px;letter-spacing:0.14em;text-transform:none;font-weight:500;opacity:0.65;margin-top:4px}
-
-/* graphics-loop pass 5: serif hero typography + nav legibility */
-.cinema h1, h1.headline { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; letter-spacing: -0.01em }
-.h-link { font-size: 13px; letter-spacing: 0.06em }
-</style>
-
-<!-- Contact options modal -->
-<div class="dwm" id="dwmContact" onclick="if(event.target===this)dwmClose('Contact')">
- <div class="dwm-box" style="max-width:440px">
- <button class="dwm-close" onclick="dwmClose('Contact')" aria-label="Close">×</button>
- <h3>Contact</h3>
- <p class="sub" id="dwmContactSub">Three ways to reach us</p>
- <div class="dwm-options">
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Inquiry')">
- <svg viewBox="0 0 24 24"><path d="M4 4h16v12H7l-3 3z"/></svg>
- <span class="lbl">Send an Inquiry<span class="val">Project name · scope · all the details</span></span>
- </button>
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Sample')">
- <svg viewBox="0 0 24 24"><rect x="4" y="6" width="16" height="14"/><path d="M4 10h16M9 6V3h6v3"/></svg>
- <span class="lbl">Request a Sample<span class="val">Memo sample · ships free · 3–5 business days</span></span>
- </button>
- <a class="dwm-option" id="dwmContactEmailLink" href="mailto:info@architecturalwallcoverings.com">
- <svg viewBox="0 0 24 24"><path d="M3 6h18v12H3z"/><path d="M3 6l9 7 9-7"/></svg>
- <span class="lbl">Email Us<span class="val" id="dwmContactEmailLabel">info@architecturalwallcoverings.com</span></span>
- </a>
- </div>
- </div>
-</div>
-
-<!-- Inquiry modal -->
-<div class="dwm" id="dwmInquiry" onclick="if(event.target===this)dwmClose('Inquiry')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Inquiry')" aria-label="Close">×</button>
- <h3>Project Inquiry</h3>
- <p class="sub">We'll respond within one business day</p>
- <form id="dwmInquiryForm" onsubmit="return dwmSubmit(event,'inquiry')">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Phone</label><input type="tel" name="phone"></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Project Name</label><input type="text" name="projectName" required></div>
- <div class="dwm-field"><label>Project Scope</label><textarea name="projectScope" placeholder="Square footage · room count · timeline" required></textarea></div>
- <div class="dwm-field"><label>Additional Information</label><textarea name="message" placeholder="Patterns of interest, finish preferences, budget"></textarea></div>
- <button type="submit" class="dwm-submit">Send Inquiry</button>
- <div class="dwm-status" id="dwmInquiryStatus"></div>
- </form>
- </div>
-</div>
-
-<!-- Sample-request modal -->
-<div class="dwm" id="dwmSample" onclick="if(event.target===this)dwmClose('Sample')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Sample')" aria-label="Close">×</button>
- <h3>Request a Sample</h3>
- <p class="sub">Memo sample · ships free · 3–5 business days</p>
- <div class="dwm-preview" id="dwmSamplePreview" style="display:none">
- <img id="dwmSampleImg" src="" alt="">
- <div><div class="pn" id="dwmSampleName"></div><div class="pc" id="dwmSampleSku"></div></div>
- </div>
- <form id="dwmSampleForm" onsubmit="return dwmSubmit(event,'sample')">
- <input type="hidden" name="sku" id="dwmSampleSkuInput">
- <input type="hidden" name="title" id="dwmSampleTitleInput">
- <input type="hidden" name="image_url" id="dwmSampleImageInput">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Shipping Address</label><input type="text" name="address" placeholder="Street" required></div>
- <div class="dwm-field" style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px">
- <input type="text" name="city" placeholder="City" required>
- <input type="text" name="state" placeholder="State" required>
- <input type="text" name="zip" placeholder="ZIP" required>
- </div>
- <div class="dwm-field"><label>Notes (optional)</label><textarea name="message" placeholder="Project, sq.ft., timing"></textarea></div>
- <button type="submit" class="dwm-submit">Send Sample Request</button>
- <div class="dwm-status" id="dwmSampleStatus"></div>
- </form>
- </div>
-</div>
-
-<script>
- // Universal modal control
- function dwmOpen(name, opts){
- document.getElementById('dwm' + name).classList.add('open');
- document.body.style.overflow = 'hidden';
- if (name === 'Sample' && opts) {
- document.getElementById('dwmSamplePreview').style.display = 'flex';
- document.getElementById('dwmSampleImg').src = opts.image_url || '';
- document.getElementById('dwmSampleName').textContent = opts.title || '';
- document.getElementById('dwmSampleSku').textContent = opts.sku || '';
- document.getElementById('dwmSampleSkuInput').value = opts.sku || '';
- document.getElementById('dwmSampleTitleInput').value = opts.title || '';
- document.getElementById('dwmSampleImageInput').value = opts.image_url || '';
- } else if (name === 'Sample') {
- document.getElementById('dwmSamplePreview').style.display = 'none';
- document.getElementById('dwmSampleSkuInput').value = '';
- document.getElementById('dwmSampleTitleInput').value = '';
- document.getElementById('dwmSampleImageInput').value = '';
- }
- }
- function dwmClose(name){ document.getElementById('dwm'+name).classList.remove('open'); document.body.style.overflow=''; }
-
- // Universal form submit — POSTs to /api/send-{kind}
- async function dwmSubmit(e, kind) {
- e.preventDefault();
- const form = e.target;
- const data = Object.fromEntries(new FormData(form).entries());
- const btn = form.querySelector('.dwm-submit');
- const status = form.querySelector('.dwm-status');
- btn.disabled = true; const orig = btn.textContent; btn.textContent = 'Sending…';
- status.className = 'dwm-status';
- try {
- const r = await fetch('/api/send-' + kind, { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
- if (!r.ok) throw new Error('HTTP '+r.status);
- const j = await r.json();
- status.textContent = kind === 'sample' ? 'Sample request sent — ships within 3–5 business days' : 'Inquiry sent — we respond within 1 business day';
- status.className = 'dwm-status ok';
- btn.textContent = 'Sent ✓';
- setTimeout(() => { dwmClose(kind === 'sample' ? 'Sample' : 'Inquiry'); btn.disabled = false; btn.textContent = orig; status.className = 'dwm-status'; form.reset(); }, 2800);
- } catch (err) {
- status.textContent = 'Send failed — please email info@designerwallcoverings.com';
- status.className = 'dwm-status err';
- btn.disabled = false; btn.textContent = orig;
- }
- return false;
- }
-
- // Wire up "Memo samples ship free" badge in hero to open sample modal directly
- document.querySelectorAll('.hero .badge, [data-open-sample]').forEach(el => {
- el.style.cursor = 'pointer';
- el.addEventListener('click', () => dwmOpen('Sample'));
- });
-
- // Wire nav "Trade" link to inquiry modal
- document.querySelectorAll('nav a[href*="designerwallcoverings.com"]').forEach(a => {
- a.removeAttribute('target');
- a.removeAttribute('href');
- a.style.cursor = 'pointer';
- a.addEventListener('click', e => { e.preventDefault(); dwmOpen('Contact'); });
- });
-
- // Override product card clicks — open Sample modal pre-filled instead of redirecting to DW
- document.addEventListener('click', e => {
- const card = e.target.closest('.card, .rail-card');
- if (!card) return;
- if (card.tagName === 'A' && (card.getAttribute('href') || '').startsWith('/sample/')) {
- e.preventDefault();
- const img = card.querySelector('img');
- const pat = card.querySelector('.pat');
- const sku = card.getAttribute('href').replace('/sample/', '');
- dwmOpen('Sample', {
- sku,
- title: pat ? pat.textContent.trim() : '',
- image_url: img ? img.src : ''
- });
- }
- }, true);
-// DW STANDARD: hero pulls from products.json[0].image_url so dw-collections-viewer
-// drag-drop / hero-pin updates the live front page on next deploy.
-// Always upgrades to the largest Shopify variant (strips _NxN size suffix) so
-// the full-page hero stays sharp.
-// DW STANDARD: hero rotates through top-20 NEWEST products on each visit
-// (novasuede.com pattern). Fetches /api/products?limit=100, sorts by created_at desc,
-// takes the freshest 20, picks one per visit via localStorage counter.
-// Falls back to static /hero-bg.jpg on any error.
-(async function rotateHero() {
- try {
- const r = await fetch('/api/products?limit=100');
- if (!r.ok) return;
- const d = await r.json();
- const items = (d.items || [])
- .filter(p => p && p.image_url && /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(p.image_url))
- .sort((a,b) => String(b.created_at || '').localeCompare(String(a.created_at || '')))
- .slice(0, 20);
- if (!items.length) return;
- let visits = 0;
- try {
- visits = parseInt(localStorage.getItem('hero_visits') || '0', 10) || 0;
- localStorage.setItem('hero_visits', String(visits + 1));
- } catch(e) {}
- const pick = items[visits % items.length];
- // Strip _NxN size suffix to get the largest CDN variant
- const url = pick.image_url.replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- const bg = document.getElementById('heroBg') || document.getElementById('cinemaBg');
- if (bg) bg.style.backgroundImage = "url('" + url + "')";
- } catch (e) {}
-})();
-
-
-// DW STANDARD sort-select wire-up (added by fleet patcher)
-(function(){
- const sortSel = document.getElementById('sortSelect');
- if (!sortSel) return;
- const KEY = location.hostname.replace(/\./g, '_') + '_sort';
- const saved = localStorage.getItem(KEY);
- if (saved) { try { sortSel.value = saved; } catch(e){} }
- if (typeof state !== 'undefined') state.sort = sortSel.value;
- sortSel.addEventListener('change', e => {
- const v = e.target.value;
- try { localStorage.setItem(KEY, v); } catch(e){}
- if (typeof state !== 'undefined') state.sort = v;
- if (typeof resetGrid === 'function') resetGrid();
- else location.reload();
- });
-})();
-</script>
-
-</body>
-</html>
diff --git a/public/index.html.pre-pass13.bak b/public/index.html.pre-pass13.bak
deleted file mode 100644
index 6e01f68..0000000
--- a/public/index.html.pre-pass13.bak
+++ /dev/null
@@ -1,936 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
-<meta charset="utf-8">
-<!-- Google tag (gtag.js) -->
-<script async src="https://www.googletagmanager.com/gtag/js?id=G-PN839G9FD8"></script>
-<script>
- window.dataLayer = window.dataLayer || [];
- function gtag(){dataLayer.push(arguments);}
- gtag('js', new Date());
- gtag('config', 'G-PN839G9FD8');
-</script>
-
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>Studio Toten — architectural. Useful.</title>
-<meta name="description" content="Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.">
-<meta name="theme-color" content="#F5F2ED">
-<link rel="canonical" href="https://architecturalwallcoverings.com/">
-<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&display=swap" rel="stylesheet">
-<link rel="preload" as="image" href="/hero-bg.jpg" fetchpriority="high">
-<script type="application/ld+json">
-{
- "@context": "https://schema.org",
- "@type": "Organization",
- "name": "Studio Toten",
- "url": "https://architecturalwallcoverings.com/",
- "email": "info@architecturalwallcoverings.com"
-}
-</script>
-<script src="/zd-loader.js" defer></script>
-<style>
-:root {
- --bg: #F5F2ED;
- --paper: #1A1A1A;
- --muted: #8B7866;
- --line: #D5CFC4;
- --accent: #1A1A1A;
- --bg-soft: #D5CFC4;
- --cols: 6;
-}
-html[data-theme="dark"] {
- --bg: #1a1410;
- --paper: #F5F2ED;
- --muted: #C9B89E;
- --line: rgba(255,254,250,0.12);
- --accent: #1A1A1A;
- --bg-soft: #2a1f15;
-}
-* { margin:0; padding:0; box-sizing:border-box }
-html { scroll-behavior:smooth }
-body { font-family:'Inter', sans-serif; color:var(--paper); -webkit-font-smoothing:antialiased; background:var(--bg); min-height:100vh; overflow-x:hidden }
-/* DW-FASHION-TEMPLATE-OVERRIDE */
-.section-title .accent, .footer-brand, .center-mark, h1, h2, h3 { font-family:'Inter', Georgia, serif !important; font-weight:400 !important; }
-
-/* ===== Auto-hide header ===== */
-header { position:fixed; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 32px; z-index:100; background:rgba(0,0,0,0.55); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:transform .3s }
-.h-link { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); text-decoration:none; cursor:pointer; background:transparent; border:0 }
-.h-link:hover { opacity:0.7 }
-.h-icon { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }
-
-/* ===== Cinema hero ===== */
-.cinema { position:relative; height:100vh; width:100%; overflow:hidden }
-.cinema-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-image:url('/hero-bg.jpg') }
-.cinema-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.75) 100%) }
-.corner-mark { position:absolute; top:24px; left:32px; font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,0.55), 0 0 1px rgba(0,0,0,0.4); z-index:5 }
-.corner-mark::before { content:"◆ "; margin-right:6px }
-.center-mark { position:absolute; top:clamp(80px,12vh,140px); left:50%; transform:translateX(-50%); font-size:clamp(28px,4vw,56px); font-weight:500; letter-spacing:0.18em; text-transform:uppercase; text-align:center; color:#fff; text-shadow:0 2px 8px rgba(0,0,0,0.65), 0 0 1px rgba(0,0,0,0.5); z-index:5 }
-.center-mark .tm { font-size:14px; vertical-align:super; opacity:0.7; margin-left:0.2em }
-.center-mark .sub { display:block; font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400; font-size:0.4em; letter-spacing:0.04em; text-transform:none; margin-top:14px; opacity:0.85 }
-.meta-line { position:absolute; bottom:32px; left:32px; font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:700; color:#fff; z-index:5; opacity:0.85 }
-.meta-line .num { font-size:12px; display:block; margin-top:4px; letter-spacing:0.05em }
-.enter { position:absolute; bottom:32px; right:32px; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:0.36em; text-transform:uppercase; font-weight:700; color:#fff; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #fff; transition:gap 0.25s; z-index:5 }
-.enter:hover { gap:22px }
-.enter svg { width:24px; height:12px }
-
-/* ===== Section ===== */
-.section { padding:96px 32px }
-.section-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--line) }
-.section-title { font-size:clamp(36px,5vw,64px); font-weight:300; letter-spacing:-0.02em; line-height:1 }
-.section-title .accent { color: var(--accent); font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400 }
-.section-eyebrow { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:16px }
-.section-meta { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--muted); text-align:right; line-height:1.6 }
-
-/* ===== Filter bar ===== */
-.filters { display:flex; gap:8px; align-items:center; margin-bottom:18px; flex-wrap:wrap }
-.chip { padding:8px 16px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); background:transparent; border:1px solid var(--line); cursor:pointer; transition:all 0.2s; font-family:inherit }
-.chip:hover { border-color:var(--paper) }
-.chip.active { background:var(--paper); color:var(--bg); border-color:var(--paper) }
-.search { flex:0 1 280px; margin-left:auto; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:6px 0 }
-.search input { flex:1; background:transparent; border:0; color:var(--paper); font-family:inherit; font-size:13px; outline:none; letter-spacing:0.04em }
-.search input::placeholder { color:var(--muted) }
-.search svg { width:16px; height:16px; stroke:var(--muted); fill:none; stroke-width:1.5 }
-
-/* ===== Grid-density slider ===== */
-.density { display:flex; align-items:center; gap:14px; padding:6px 0; margin-bottom:24px }
-.density label { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--muted) }
-.density input[type=range] { flex:1; max-width:240px; -webkit-appearance:none; appearance:none; height:1px; background:var(--line); outline:none }
-.density input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50% }
-.density input[type=range]::-moz-range-thumb { width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50%; border:0 }
-.density .ct { font-size:11px; color:var(--muted); letter-spacing:0.18em; text-transform:uppercase; font-weight:600; min-width:80px }
-
-/* ===== Stats line ===== */
-.stat-line { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:24px }
-
-/* ===== Product grid (novasuede pattern: flush grid + slide-up overlay) ===== */
-.grid { display:grid; grid-template-columns:repeat(var(--cols), 1fr); gap:0 }
-.card { position:relative; aspect-ratio:1/1.15; cursor:pointer; overflow:hidden; border:1px solid var(--bg); transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1); background:var(--bg-soft) }
-.card:hover { transform:scale(1.04); z-index:5 }
-.card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease }
-.card .overlay { position:absolute; left:0; right:0; bottom:0; padding:20px 16px 14px; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%); transform:translateY(48%); opacity:0.85; transition:transform 0.3s ease, opacity 0.3s ease }
-.card:hover .overlay { transform:translateY(0); opacity:1 }
-.card .pat { font-size:13px; font-weight:600; letter-spacing:0.02em; color:#fff; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
-.card .ven { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#fff; opacity:0.7; font-weight:500; margin-top:4px }
-.card .actions { margin-top:10px; display:flex; gap:6px }
-.card .sample-btn { flex:1; padding:7px 10px; background:#fff; color:#000; font-family:inherit; font-size:10px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; border:0; cursor:pointer; text-align:center; transition:all 0.2s }
-.card .sample-btn:hover { background:var(--accent); color:#fff }
-
-@media (max-width:1024px) { .grid { grid-template-columns:repeat(min(var(--cols), 4), 1fr) } }
-@media (max-width:720px) { .grid { grid-template-columns:repeat(2, 1fr) } .density { display:none } }
-
-.sentinel { height:1px }
-.loading { text-align:center; color:var(--muted); padding:32px; font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700 }
-
-/* ===== Footer ===== */
-footer { padding:64px 32px 32px; border-top:1px solid var(--line); margin-top:32px }
-.footer-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr; gap:48px; margin-bottom:48px }
-.footer-brand { font-size:24px; font-weight:300; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:12px }
-.footer-text { font-size:13px; line-height:1.6; color:var(--muted); max-width:380px }
-.footer-col h4 { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--paper); margin-bottom:18px }
-.footer-col a { display:block; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:8px; transition:color 0.2s; cursor:pointer; background:transparent; border:0; font-family:inherit; padding:0; text-align:left }
-.footer-col a:hover { color:var(--accent) }
-.footer-bottom { max-width:1400px; margin:0 auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted) }
-
-@media (max-width:720px) {
- .corner-mark, .meta-line, .enter { font-size:10px }
- .center-mark { font-size:24px; letter-spacing:0.12em; top:clamp(60px,9vh,90px) }
- .section, footer { padding-left:20px; padding-right:20px }
- .footer-grid { grid-template-columns:1fr; gap:32px }
- .search { margin-left:0; flex:1 1 100% }
-}
-
-.theme-toggle { background:transparent; border:1px solid var(--line); width:32px; height:32px; cursor:pointer; color:var(--paper); display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; transition:all .15s; padding:0 }
-.theme-toggle:hover { border-color:var(--accent); color:var(--accent) }
-
-/* ===== WCAG 2.4.7 — keyboard focus indicators ===== */
-/* Strictly :focus-visible so mouse clicks do NOT show the ring */
-a:focus-visible,
-button:focus-visible,
-input:focus-visible,
-select:focus-visible,
-textarea:focus-visible,
-[tabindex]:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
-}
-</style>
-<script>
-(function(){ try { var t = localStorage.getItem('arch_theme') || 'light'; document.documentElement.dataset.theme = t; } catch(e){} })();
-</script>
-<link rel="preconnect" href="https://fonts.googleapis.com">
-<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap">
-</head>
-<body>
-<style id="ns-header-modal-styles">
- .ns-header { position: sticky; top: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; padding: 18px 36px; background: rgba(10,10,10,0.92) !important; backdrop-filter: blur(8px); border-bottom: 1px solid rgba(245,241,232,0.06); }
- .ns-brand { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; }
- .ns-dot { width: 28px; height: 28px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #a98b5b 0%, #5d4c32 60%, #332a1b 100%); box-shadow: 0 0 0 1px rgba(245,241,232,0.10), 0 2px 12px rgba(180,90,60,0.30); flex-shrink: 0; }
- .ns-name { font-family: -apple-system, "SF Pro Display", "Helvetica Neue", system-ui, sans-serif; font-size: 18px !important; font-weight: 300 !important; letter-spacing: 0.02em !important; color: #f5f1e8 !important; text-transform: none !important; margin: 0 !important; }
- .ns-name sup { font-size: 0.55em; font-weight: 300; margin-left: 1px; }
- .ns-nav { display: flex; gap: 32px; align-items: center; list-style: none; padding: 0; margin: 0; }
- .ns-nav a, .ns-nav button { font-family: -apple-system, "SF Pro Text", system-ui, sans-serif; font-size: 15px !important; font-weight: 400 !important; color: #f5f1e8 !important; text-decoration: none !important; background: none !important; border: 0 !important; cursor: pointer; padding: 0 !important; transition: color 200ms; letter-spacing: 0 !important; text-transform: none !important; }
- .ns-nav a:hover, .ns-nav button:hover { color: #ffffff !important; }
- @media (max-width: 820px) { .ns-header { padding: 14px 18px; } .ns-nav { gap: 16px; } .ns-nav a, .ns-nav button { font-size: 13px !important; } }
- @media (max-width: 760px) {
- .ns-header { flex-wrap: wrap; }
- .ns-nav { display: none !important; flex-basis: 100%; flex-direction: column; align-items: flex-start; gap: 6px; padding: 14px 0 4px; }
- .ns-nav.open { display: flex !important; }
- .ns-nav a, .ns-nav button { padding: 10px 0 !important; border-bottom: 1px solid rgba(245,241,232,0.08); width: 100%; text-align: left; }
- .ns-nav a:nth-child(n+5), .ns-nav button:nth-child(n+5) { display: block !important; }
- .ns-header .mobile-toggle { display: flex !important; }
- }
- @media (min-width: 761px) {
- .ns-header .mobile-toggle { display: none !important; }
- }
- .ns-modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.78); z-index: 200; align-items: center; justify-content: center; padding: 24px; backdrop-filter: blur(6px); }
- .ns-modal.show { display: flex; }
- .ns-modal-card { max-width: 460px; width: 100%; background: #141414 !important; border: 1px solid rgba(245,241,232,0.14); border-radius: 6px; padding: 28px 30px 30px; position: relative; }
- .ns-modal-card .close-x { position: absolute; top: 12px; right: 14px; width: 30px; height: 30px; background: none; border: 1px solid rgba(245,241,232,0.18); color: rgba(245,241,232,0.6) !important; border-radius: 50%; cursor: pointer; font-size: 14px; display: flex; align-items: center; justify-content: center; }
- .ns-modal-card .close-x:hover { color: #ffffff !important; border-color: #ffffff; }
- .ns-modal-card h3 { font-family: -apple-system, "SF Pro Display", system-ui; font-weight: 300 !important; font-size: 22px !important; margin: 0 0 6px !important; color: #f5f1e8 !important; }
- .ns-modal-card .sub { color: rgba(245,241,232,0.65) !important; font-size: 13px; margin: 0 0 22px; }
- .ns-actions { display: flex; flex-direction: column; gap: 10px; }
- .ns-action { display: flex; align-items: center; gap: 14px; padding: 14px 16px; background: rgba(245,241,232,0.04) !important; border: 1px solid rgba(245,241,232,0.12) !important; color: #f5f1e8 !important; text-decoration: none !important; cursor: pointer; transition: all 200ms; font: inherit; text-align: left; }
- .ns-action:hover { background: rgba(245,241,232,0.08) !important; border-color: #d4b683 !important; }
- .ns-action .ico { width: 32px; height: 32px; border-radius: 50%; background: rgba(212,182,131,0.12); display: flex; align-items: center; justify-content: center; font-size: 15px; flex-shrink: 0; }
- .ns-action .txt { flex: 1; }
- .ns-action .txt b { display: block; font-weight: 500; font-size: 14px; color: #f5f1e8 !important; }
- .ns-action .txt span { font-size: 12px; color: rgba(245,241,232,0.55) !important; }
-
- /* ─── FINAL CONTRAST PASS — kill remaining gold-solid + white-island defects ─── */
- /* Replace all gold-fill accents with off-white (Gucci-aesthetic, no DW gold solids) */
- .new-badge, .new-arrivals-pill,
- .color-filter-btn.active,
- .drapery-btn, .sample-btn-chip, .cb-cta {
- background: #f5f1e8 !important;
- color: #0a0a0a !important;
- border-color: #f5f1e8 !important;
- }
- .new-badge:hover, .new-arrivals-pill:hover,
- .color-filter-btn.active:hover,
- .drapery-btn:hover, .sample-btn-chip:hover, .cb-cta:hover {
- background: #fff !important;
- color: #0a0a0a !important;
- }
- /* Gold accents stay only as edge color (links, glyphs) — not fills */
- a { color: #d4b683; }
- a:hover { color: #f5d97a; }
- /* Authorized-dealer footer line — small caps tracked, muted ink, no gold pill */
- .authorized, .authorized-dealer p {
- background: transparent !important;
- color: rgba(245,241,232,0.5) !important;
- font-size: 10px !important;
- letter-spacing: 0.22em !important;
- text-transform: uppercase !important;
- padding: 0 !important;
- border: none !important;
- margin-top: 14px !important;
- }
- /* Kill any straggler white bg in info-card / sample-related cards */
- .info-card, .info-card-link, .care-highlight, .feature-card, .spec-item {
- background-color: rgba(245,241,232,0.04) !important;
- border-color: rgba(245,241,232,0.12) !important;
- }
- /* Ensure modal content stays readable — Steve's earlier sweep made it #141414 with white text */
- .modal-content { background: #141414 !important; color: #f5f1e8 !important; }
- .modal-content * { color: #f5f1e8 !important; }
- .modal-content input, .modal-content textarea, .modal-content select {
- background: rgba(245,241,232,0.05) !important;
- color: #f5f1e8 !important;
- border-color: rgba(245,241,232,0.2) !important;
- }
- .modal-content label { color: rgba(245,241,232,0.6) !important; }
- /* Force the wide-tracked NOVASUEDE wordmark to stay white */
- .ns-wordmark, .ns-wordmark sup { color: #f5f1e8 !important; }
-
- /* ─── Modal-internal contrast (post-QA defects) ─── */
- /* Backdrop covers full viewport */
- .modal { width: 100vw !important; height: 100vh !important; left: 0 !important; top: 0 !important; background: rgba(0, 0, 0, 0.78) !important; backdrop-filter: blur(6px); }
- /* Chip — flip from white-on-white island to dark card */
- .request-chip {
- background: rgba(245, 241, 232, 0.06) !important;
- color: #f5f1e8 !important;
- border: 1px solid rgba(245, 241, 232, 0.18) !important;
- border-radius: 4px !important;
- }
- .request-chip * { color: #f5f1e8 !important; }
- .request-chip .chip-swatch {
- /* swatch dot ALWAYS displays the inline-style hex from JS — fight any sweep */
- border: 1px solid rgba(0, 0, 0, 0.4) !important;
- }
- /* + Add to request — hairline white-border on transparent (no gold) */
- .add-to-request-btn {
- background: transparent !important;
- color: #f5f1e8 !important;
- border: 1px solid rgba(245, 241, 232, 0.6) !important;
- border-radius: 0 !important;
- padding: 12px 22px !important;
- font-size: 11px !important;
- letter-spacing: 0.32em !important;
- text-transform: uppercase !important;
- font-weight: 400 !important;
- }
- .add-to-request-btn:hover {
- background: #f5f1e8 !important;
- color: #0a0a0a !important;
- border-color: #f5f1e8 !important;
- }
- /* Hex caption visible */
- .preview-hex, #colorPreviewHex {
- display: block !important;
- color: rgba(245, 241, 232, 0.55) !important;
- font-family: ui-monospace, "SF Mono", Menlo, monospace !important;
- font-size: 11px !important;
- margin-top: 4px !important;
- letter-spacing: 0.04em !important;
- text-transform: lowercase !important;
- }
- /* Color preview name — stays single, prominent */
- #colorPreviewName {
- color: #f5f1e8 !important;
- font-size: 11px !important;
- letter-spacing: 0.32em !important;
- text-transform: uppercase !important;
- font-weight: 500 !important;
- display: block !important;
- margin-top: 12px !important;
- }
-
- /* ─── Mobile hamburger nav (replaces the overflow at <760px) ─── */
- @media (max-width: 760px) {
- header .nav-container { flex-wrap: wrap; }
- header nav { display: none; flex-basis: 100%; flex-direction: column; gap: 6px; padding: 16px 0 6px; }
- header nav.open { display: flex; }
- header nav a { padding: 10px 0; border-bottom: 1px solid rgba(245,241,232,0.1); }
- header .mobile-toggle {
- display: flex !important;
- flex-direction: column;
- gap: 5px;
- background: transparent;
- border: 0;
- cursor: pointer;
- padding: 8px;
- }
- header .mobile-toggle span {
- width: 22px; height: 1.5px;
- background: #f5f1e8;
- display: block;
- }
- }
- @media (min-width: 761px) {
- header .mobile-toggle { display: none !important; }
- }
-
- </style>
-<header class="ns-header">
- <a href="#home" class="ns-brand" aria-label="Studio Toten home">
- <span class="ns-dot"></span>
- <span class="ns-name">Studio Toten</span>
- </a>
- <nav class="ns-nav" id="nsPrimaryNav" aria-label="Primary">
- <a href="#home">Home</a>
- <a href="#colors">Colors</a>
- <a href="#specifications">Specifications</a>
- <a href="fire-ratings.html">Fire Ratings</a>
- <a href="faq.html">FAQ</a>
- <a href="about.html">About</a>
- <button type="button" onclick="nsContactOpen()">Contact</button>
- </nav>
- <button type="button" class="mobile-toggle" aria-label="Toggle menu" aria-controls="nsPrimaryNav" aria-expanded="false" onclick="nsToggleNav(this)">
- <span></span><span></span><span></span>
- </button>
- </header>
-<div class="ns-modal" id="nsContactModal" role="dialog" aria-modal="true" aria-labelledby="nsContactTitle" onclick="if(event.target===this)nsContactClose()">
- <div class="ns-modal-card">
- <button type="button" class="close-x" onclick="nsContactClose()" aria-label="Close">×</button>
- <h3 id="nsContactTitle">How can we help?</h3>
- <p class="sub">Trade-account replies within one business day.</p>
- <div class="ns-actions">
- <a class="ns-action" href="#contact" onclick="nsContactClose()"><span class="ico">📋</span><div class="txt"><b>Get a Quote</b><span>Project specs → priced estimate</span></div></a>
- <a class="ns-action" href="#contact" onclick="nsContactClose();openModal();"><span class="ico">📦</span><div class="txt"><b>Order a Sample</b><span>Free swatch to your shop</span></div></a>
- <a class="ns-action" href="mailto:info@novasuede.com?subject=Novasuede%20inquiry"><span class="ico">✉️</span><div class="txt"><b>Email Us</b><span>info@novasuede.com</span></div></a>
- <a class="ns-action" href="tel:888-373-4564"><span class="ico">📞</span><div class="txt"><b>Call Us</b><span>(888) 373-4564 · M–F, 9–5 PT</span></div></a>
- </div>
- </div>
- </div>
-<script>
- function nsContactOpen() { var m = document.getElementById('nsContactModal'); if (m) m.classList.add('show'); }
- function nsContactClose() { var m = document.getElementById('nsContactModal'); if (m) m.classList.remove('show'); }
- function nsToggleNav(btn) {
- var nav = document.getElementById('nsPrimaryNav');
- if (!nav) return;
- var open = nav.classList.toggle('open');
- btn.setAttribute('aria-expanded', open ? 'true' : 'false');
- }
- document.addEventListener('keydown', function(e){ if (e.key === 'Escape') nsContactClose(); });
-</script>
-
-
-
-<header>
- <button class="h-link" onclick="dwmOpen('Contact')" aria-label="Contact"><svg class="h-icon" viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/></svg><span>Contact</span></button>
- <button class="theme-toggle" id="theme-toggle" aria-label="Theme toggle">☾</button>
-</header>
-
-<section class="cinema">
- <div class="cinema-bg" id="heroBg"></div>
- <div class="corner-mark">Specifier-Grade</div>
- <div class="center-mark">Architectural Wallcoverings</div>
- <div class="meta-line">Architectural · Specifier · Class A · Contract<span class="num" id="heroNum"></span></div>
- <a class="enter" href="#shop">Enter <svg viewBox="0 0 24 12" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M0 6h22M16 1l6 5-6 5"/></svg></a>
-</section>
-
-
-<section class="section" id="ideas">
- <div class="rail-block">
- <div class="rail-eyebrow">Ideas</div>
- <h2 class="rail-title">New this week</h2>
- <div class="rail" id="railNewest"></div>
- </div>
- <div class="rail-block">
- <div class="rail-eyebrow">Ideas</div>
- <h2 class="rail-title">Curated picks</h2>
- <div class="rail" id="railCurated"></div>
- </div>
-</section>
-
-<section class="section" id="shop">
- <div class="section-header">
- <div>
- <div class="section-eyebrow">The Collection</div>
- <h2 class="section-title"><span class="accent" id="totalCount">—</span> Patterns.</h2>
- </div>
- <div class="section-meta">Architectural · Specifier · Class A · Contract</div>
- </div>
-
- <div class="filters" id="facets">
- <button class="chip active" data-facet="all">All</button>
- </div>
-
- <div class="density">
- <label>Sort</label>
- <select id="sortSelect" aria-label="Sort products" style="background:transparent;color:inherit;border:1px solid var(--line,rgba(255,255,255,.2));font:inherit;font-size:11px;letter-spacing:.10em;text-transform:uppercase;padding:4px 8px;cursor:pointer;outline:none;margin-right:14px">
- <option value="newest">Newest</option>
- <option value="color">Color</option>
- <option value="style">Style</option>
- <option value="sku">SKU A→Z</option>
- <option value="title">Title A→Z</option>
- <option value="price-asc">Price ↑</option>
- <option value="price-desc">Price ↓</option>
- </select>
- <label>Grid</label>
- <input type="range" id="densitySlider" min="4" max="12" step="1" value="6" aria-label="Grid columns">
- <span class="ct" id="densityLabel">6 cols</span>
- <div class="search">
- <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-5.5-5.5"/></svg>
- <input type="text" id="searchInput" placeholder="Search by pattern, color…" autocomplete="off">
- </div>
- </div>
-
- <div class="stat-line" id="statLine">Loading…</div>
- <div class="grid" id="grid"></div>
- <div class="loading" id="loading">Loading more…</div>
- <div class="sentinel" id="sentinel"></div>
-</section>
-
-<footer>
- <div class="footer-grid">
- <div>
- <div class="footer-brand">ARCHITECTURAL</div>
- <p class="footer-text">Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.</p>
- <p class="footer-text" style="margin-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;color:var(--paper);opacity:0.7"><a href="/about" style="color:inherit;text-decoration:none;border-bottom:1px solid var(--accent)">About →</a></p>
- </div>
- <div class="footer-col">
- <h4>Aesthetic</h4>
- <div id="footerFacets"></div>
- </div>
- <div class="footer-col">
- <h4>Trade</h4>
- <button onclick="dwmOpen('Inquiry')">Project Inquiry</button>
- <button onclick="dwmOpen('Sample')">Request Sample</button>
- <button onclick="dwmOpen('Contact')">Contact</button>
- </div>
- </div>
- <div class="footer-bottom">
- <span>architecturalwallcoverings.com · Studio Toten</span>
- <span><a href="mailto:info@architecturalwallcoverings.com" style="color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px">info@architecturalwallcoverings.com</a></span>
- <span id="footerStat"></span>
- </div>
-</footer>
-
-<script>
-// mini-constellation — 43 niche-stars, current site highlighted in gold
-(function(){
- const SLUG = "architecturalwallcoverings";
- const NICHES = [
- ['silkwallpaper','Silk','mat'],['silkwallcoverings','Silk W/C','mat'],['linenwallpaper','Linen','mat'],
- ['jutewallpaper','Jute','mat'],['raffiawallcoverings','Raffia W/C','mat'],['raffiawalls','Raffia Walls','mat'],
- ['corkwallcovering','Cork','mat'],['fabricwallpaper','Fabric','mat'],['textilewallpaper','Textile','mat'],
- ['metallicwallpaper','Metallic','mat'],['silverleafwallpaper','Silver Leaf','mat'],['vinylwallpaper','Vinyl','mat'],
- ['micawallpaper','Mica','mat'],['madagascarwallpaper','Madagascar','mat'],['mylarwallpaper','Mylar','mat'],
- ['suedewallpaper','Suede','mat'],
- ['1800swallpaper','1800s','dec'],['1890swallpaper','1890s','dec'],['1900swallpaper','1900s','dec'],
- ['1920swallpaper','1920s','dec'],['1930swallpaper','1930s','dec'],['1940swallpaper','1940s','dec'],
- ['1950swallpaper','1950s','dec'],['1960swallpaper','1960s','dec'],['1970swallpaper','1970s','dec'],
- ['1980swallpaper','1980s','dec'],['retrowalls','Retro','dec'],['wallpapersback','W. Back','dec'],
- ['agedwallpaper','Aged','cra'],['handcraftedwallpaper','Handcrafted','cra'],['museumwallpaper','Museum','cra'],
- ['restorationwallpaper','Restoration','cra'],['pastelwallpaper','Pastel','cra'],['glitterwalls','Glitter','cra'],
- ['greenwallcoverings','Green','cra'],['naturalwallcoverings','Natural','cra'],['saloonwallpaper','Saloon','cra'],
- ['contractwallpaper','Contract','use'],['hotelwallcoverings','Hotel','use'],['hospitalitywallpaper','Hospitality','use'],
- ['healthcarewallpaper','Healthcare','use'],['restaurantwallpaper','Restaurant','use'],['architecturalwallcoverings','Architectural','use']
- ];
- const COLOR = { mat:'#c9b687', dec:'#b86a4a', cra:'#6b8e6f', use:'#4a6b8e' };
- const W = 1080, H = 200, BANDS = ['mat','dec','cra','use'];
- const groups = { mat:[], dec:[], cra:[], use:[] };
- for (const n of NICHES) groups[n[2]].push(n);
- const svg = document.getElementById('miniConst');
- if (!svg) return;
- const bandW = W / BANDS.length;
- let nodes = '';
- BANDS.forEach((band, bi) => {
- const list = groups[band];
- const cx = bi * bandW + bandW / 2;
- list.forEach((n, i) => {
- const t = list.length === 1 ? 0.5 : i / (list.length - 1);
- // deterministic jitter per slug
- let h = 0; for (let k = 0; k < n[0].length; k++) h = (h * 31 + n[0].charCodeAt(k)) | 0;
- const jx = ((h & 0xff) / 255 - 0.5) * (bandW * 0.5);
- const jy = (((h >> 8) & 0xff) / 255 - 0.5) * 6; // tightened from 14 → 6 to prevent same-band collisions (16 mat nodes / 144px = 9px spacing)
- const x = cx + jx, y = 28 + t * (H - 56) + jy;
- const isCurrent = n[0] === SLUG;
- const r = isCurrent ? 8 : 4;
- const op = isCurrent ? 1 : 0.55;
- nodes += `<g class="mc-node" data-slug="${n[0]}" data-label="${n[1]}" style="cursor:pointer">
- <circle cx="${x}" cy="${y}" r="${r}" fill="url(#dna-${band})" fill-opacity="${op}" stroke="${COLOR[band]}" stroke-opacity="${isCurrent?1:0.7}" stroke-width="${isCurrent?2:1}">
- <title>${n[1]} — ${n[0]}.com</title>
- </circle>
- ${isCurrent ? `<circle cx="${x}" cy="${y}" r="${r+5}" fill="none" stroke="${COLOR[band]}" stroke-opacity="0.4" stroke-width="1"><animate attributeName="r" values="${r+5};${r+12};${r+5}" dur="2.4s" repeatCount="indefinite"/><animate attributeName="stroke-opacity" values="0.4;0;0.4" dur="2.4s" repeatCount="indefinite"/></circle>` : ''}
- </g>`;
- });
- });
- // append nodes after defs
- svg.insertAdjacentHTML('beforeend', nodes);
- svg.querySelectorAll('.mc-node').forEach(n => {
- n.addEventListener('mouseenter', () => n.querySelector('circle').setAttribute('fill-opacity', '1'));
- n.addEventListener('mouseleave', e => {
- const isCurrent = n.dataset.slug === SLUG;
- n.querySelector('circle').setAttribute('fill-opacity', isCurrent ? '1' : '0.55');
- });
- n.addEventListener('click', () => window.open('https://' + n.dataset.slug + '.com', '_blank'));
- });
-})();
-</script>
-
-<script>
-const state = { q:'', facet:'all', page:1, pages:1, total:0, loading:false, exhausted:false };
-const LABELS = {"all":"All"};
-
-function escAttr(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[c])); }
-// Image-URL allowlist: only DW Shopify CDN + designerwallcoverings.com (defends against XSS via crafted products.json)
-function safeImg(u) { return /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(u || '') ? u : '/hero-bg.jpg'; }
-function cardHTML(p) {
- const eager = state.page === 1;
- return '<img loading="' + (eager ? 'eager' : 'lazy') + '"' + (eager ? ' fetchpriority="high"' : '') + ' src="' + escAttr(safeImg(p.image_url)) + '" alt="' + escAttr(p.title) + '">'
- + '<div class="overlay">'
- + '<div class="pat">' + escAttr(p.pattern_name || p.title) + '</div>'
- + '<div class="ven">' + escAttr((p.vendor || '').replace(/-/g, ' ')) + '</div>'
- + '<div class="actions">'
- + '<button class="sample-btn" onclick="event.stopPropagation();dwmOpen(\'Sample\',' + JSON.stringify({sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}).replace(/"/g,'"') + ')">Sample</button>'
- + '</div></div>';
-}
-
-async function loadFacets() {
- let f;
- try {
- const r = await fetch('/api/facets');
- if (!r.ok) throw new Error('HTTP ' + r.status);
- f = await r.json();
- } catch (e) { console.error('loadFacets failed:', e); return; }
- const el = document.getElementById('facets');
- for (const [k, v] of Object.entries(f.aesthetics).sort((a,b) => b[1] - a[1])) {
- const b = document.createElement('button');
- b.className = 'chip'; b.dataset.facet = k;
- b.innerHTML = (LABELS[k] || k) + ' <span style="opacity:.55;font-weight:500;margin-left:4px">' + v + '</span>';
- el.appendChild(b);
- }
- el.addEventListener('click', e => {
- if (e.target.tagName !== 'BUTTON') return;
- document.querySelectorAll('#facets button').forEach(b => b.classList.remove('active'));
- e.target.classList.add('active');
- state.facet = e.target.dataset.facet;
- resetGrid();
- });
- document.getElementById('totalCount').textContent = f.total;
- document.getElementById('footerStat').textContent = f.total + ' patterns · live archive';
- // Footer aesthetic links
- const footerEl = document.getElementById('footerFacets');
- for (const [k] of Object.entries(f.aesthetics)) {
- const b = document.createElement('button');
- b.textContent = LABELS[k] || k;
- b.onclick = () => { state.facet = k; resetGrid(); document.querySelectorAll('#facets button').forEach(x => x.classList.toggle('active', x.dataset.facet === k)); document.getElementById('shop').scrollIntoView({behavior:'smooth'}); };
- footerEl.appendChild(b);
- }
-}
-
-function resetGrid() {
- state.page = 1; state.exhausted = false;
- document.getElementById('grid').innerHTML = '';
- document.getElementById('loading').textContent = 'Loading…';
- loadGridPage();
-}
-
-async function loadGridPage() {
- if (state.loading || state.exhausted) return;
- state.loading = true;
- const params = new URLSearchParams({ page:state.page, limit:24 });
- if (state.q) params.set('q', state.q);
- if (state.facet !== 'all') params.set('aesthetic', state.facet);
- let data;
- try {
- const r = await fetch('/api/products?' + params);
- if (!r.ok) throw new Error('HTTP ' + r.status);
- data = await r.json();
- } catch (e) {
- console.error('loadGridPage failed:', e);
- document.getElementById('loading').textContent = '— offline — refresh to retry —';
- state.loading = false;
- return;
- }
- state.total = data.total; state.pages = data.pages;
-
- if (state.page === 1) {
- document.getElementById('statLine').textContent = data.total + ' patterns · ' + (state.facet === 'all' ? 'all aesthetics' : (LABELS[state.facet] || state.facet)) + (state.q ? ' · matching "' + state.q + '"' : '');
- }
- const grid = document.getElementById('grid');
- for (const p of data.items) {
- const a = document.createElement('a');
- a.className = 'card'; a.href = '#'; a.onclick = (e) => { e.preventDefault(); dwmOpen('Sample',{sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}); };
- a.innerHTML = cardHTML(p);
- grid.appendChild(a);
- }
- if (state.page >= state.pages || data.items.length === 0) {
- state.exhausted = true;
- document.getElementById('loading').textContent = state.total > 0 ? '— end of archive · ' + state.total + ' patterns —' : '';
- } else state.page++;
- state.loading = false;
-}
-
-const io = new IntersectionObserver(es => { for (const e of es) if (e.isIntersecting) loadGridPage(); }, { rootMargin:'600px 0px' });
-io.observe(document.getElementById('sentinel'));
-
-document.getElementById('searchInput').addEventListener('input', e => {
- state.q = e.target.value.trim();
- clearTimeout(window._t);
- window._t = setTimeout(resetGrid, 220);
-});
-
-// Density slider
-const slider = document.getElementById('densitySlider');
-const dlabel = document.getElementById('densityLabel');
-function setDensity(n) {
- document.documentElement.style.setProperty('--cols', n);
- dlabel.textContent = n + ' cols';
- try { localStorage.setItem('arch_theme_density', n); } catch(e){}
-}
-slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
-const savedDensity = parseInt(localStorage.getItem('arch_theme_density') || '6');
-if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
-
-// Theme toggle
-const tb = document.getElementById('theme-toggle');
-function setTheme(t){ document.documentElement.dataset.theme = t; try { localStorage.setItem('arch_theme', t); } catch(e){} tb.textContent = t === 'dark' ? '☾' : '☀'; }
-setTheme(document.documentElement.dataset.theme || 'light');
-tb.addEventListener('click', () => setTheme(document.documentElement.dataset.theme === 'dark' ? 'light' : 'dark'));
-
-loadFacets();
-loadGridPage();
-</script>
-<!-- ============================================================
- DW UNIVERSAL CONTACT MODULE — fashion-house UX
- Inject before </body> in every DW-family sister site.
- Self-contained: CSS + 4 modals + JS submission handlers.
- Uses host site's CSS vars (--bg, --fg, --gold, --rule).
- ============================================================ -->
-<style>
- /* === MODAL BASE === */
- .dwm{position:fixed;inset:0;background:rgba(0,0,0,0.78);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;overflow-y:auto}
- .dwm.open{display:flex}
- .dwm-box{background:var(--bg);border:1px solid var(--rule);max-width:520px;width:100%;padding:36px 32px;position:relative;max-height:90vh;overflow-y:auto;animation:dwm-in 0.25s ease}
- @keyframes dwm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
- .dwm-box h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;font-size:32px;line-height:1.05;margin-bottom:6px;color:var(--fg);letter-spacing:-0.01em}
- .dwm-box .sub{color:var(--muted);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
- .dwm-close{position:absolute;top:18px;right:18px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;width:32px;height:32px;line-height:1;padding:0}
- .dwm-close:hover{color:var(--gold)}
- .dwm-preview{display:flex;gap:14px;align-items:center;padding:12px;background:var(--bg-soft);margin-bottom:18px}
- .dwm-preview img{width:64px;height:64px;object-fit:cover}
- .dwm-preview .pn{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;line-height:1.2;color:var(--fg)}
- .dwm-preview .pc{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
- .dwm-field{margin-bottom:14px}
- .dwm-field label{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
- .dwm-field input,.dwm-field textarea,.dwm-field select{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:8px 4px;font-size:14px;font-family:inherit;color:var(--fg);outline:none;transition:border-color 0.2s}
- .dwm-field input:focus,.dwm-field textarea:focus{border-bottom-color:var(--gold)}
- .dwm-field textarea{min-height:60px;resize:vertical}
- .dwm-submit{background:transparent;color:var(--muted, #c9b89e);border:1px solid var(--muted, #c9b89e);padding:14px 28px;font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:700;cursor:pointer;width:100%;margin-top:8px;transition:background 0.15s, color 0.15s}
- .dwm-submit:hover{background:var(--muted, #c9b89e);color:var(--bg, #000)}
-
- .dwm-submit:disabled{opacity:0.5;cursor:default}
- .dwm-status{margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;display:none}
- .dwm-status.ok{color:var(--sage);display:block}
- .dwm-status.err{color:#e08070;display:block}
- /* contact-options */
- .dwm-options{display:flex;flex-direction:column;gap:10px}
- .dwm-option{display:flex;align-items:center;gap:14px;padding:18px 20px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;transition:all 0.2s;text-align:left;width:100%}
- .dwm-option:hover{border-color:var(--gold);color:var(--gold)}
- .dwm-option svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}
- .dwm-option .lbl{flex:1;display:block}
- .dwm-option .val{display:block;font-size:10px;letter-spacing:0.14em;text-transform:none;font-weight:500;opacity:0.65;margin-top:4px}
-
-/* graphics-loop pass 5: serif hero typography + nav legibility */
-.cinema h1, h1.headline { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; letter-spacing: -0.01em }
-.h-link { font-size: 13px; letter-spacing: 0.06em }
-
-/* graphics-loop pass 11: Ideas rails */
-#ideas { padding: 56px 24px 24px; max-width:1600px; margin:0 auto }
-#ideas .rail-block { margin-bottom:48px }
-#ideas .rail-eyebrow { font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:var(--muted, #888); margin-bottom:8px }
-#ideas .rail-title { font-size:clamp(22px,2.6vw,32px); font-weight:500; letter-spacing:-0.01em; margin:0 0 18px; color:var(--ink,#fff) }
-#ideas .rail { display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:8px; scrollbar-width:none }
-#ideas .rail::-webkit-scrollbar { display:none }
-#ideas .rail-card { flex:0 0 240px; scroll-snap-align:start; cursor:pointer; transition:transform 0.2s }
-#ideas .rail-card:hover { transform:translateY(-3px) }
-#ideas .rail-card img { width:100%; aspect-ratio:1; object-fit:cover; display:block; background:var(--card,#222) }
-#ideas .rail-card .rc-title { font-size:13px; font-weight:500; color:var(--paper,#fff); padding:8px 0 2px; line-height:1.3 }
-#ideas .rail-card .rc-meta { font-size:11px; color:var(--muted,#888); letter-spacing:0.06em }
-@media (max-width:720px) { #ideas .rail-card { flex:0 0 160px } }
-</style>
-
-<!-- Contact options modal -->
-<div class="dwm" id="dwmContact" onclick="if(event.target===this)dwmClose('Contact')">
- <div class="dwm-box" style="max-width:440px">
- <button class="dwm-close" onclick="dwmClose('Contact')" aria-label="Close">×</button>
- <h3>Contact</h3>
- <p class="sub" id="dwmContactSub">Three ways to reach us</p>
- <div class="dwm-options">
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Inquiry')">
- <svg viewBox="0 0 24 24"><path d="M4 4h16v12H7l-3 3z"/></svg>
- <span class="lbl">Send an Inquiry<span class="val">Project name · scope · all the details</span></span>
- </button>
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Sample')">
- <svg viewBox="0 0 24 24"><rect x="4" y="6" width="16" height="14"/><path d="M4 10h16M9 6V3h6v3"/></svg>
- <span class="lbl">Request a Sample<span class="val">Memo sample · ships free · 3–5 business days</span></span>
- </button>
- <a class="dwm-option" id="dwmContactEmailLink" href="mailto:info@architecturalwallcoverings.com">
- <svg viewBox="0 0 24 24"><path d="M3 6h18v12H3z"/><path d="M3 6l9 7 9-7"/></svg>
- <span class="lbl">Email Us<span class="val" id="dwmContactEmailLabel">info@architecturalwallcoverings.com</span></span>
- </a>
- </div>
- </div>
-</div>
-
-<!-- Inquiry modal -->
-<div class="dwm" id="dwmInquiry" onclick="if(event.target===this)dwmClose('Inquiry')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Inquiry')" aria-label="Close">×</button>
- <h3>Project Inquiry</h3>
- <p class="sub">We'll respond within one business day</p>
- <form id="dwmInquiryForm" onsubmit="return dwmSubmit(event,'inquiry')">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Phone</label><input type="tel" name="phone"></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Project Name</label><input type="text" name="projectName" required></div>
- <div class="dwm-field"><label>Project Scope</label><textarea name="projectScope" placeholder="Square footage · room count · timeline" required></textarea></div>
- <div class="dwm-field"><label>Additional Information</label><textarea name="message" placeholder="Patterns of interest, finish preferences, budget"></textarea></div>
- <button type="submit" class="dwm-submit">Send Inquiry</button>
- <div class="dwm-status" id="dwmInquiryStatus"></div>
- </form>
- </div>
-</div>
-
-<!-- Sample-request modal -->
-<div class="dwm" id="dwmSample" onclick="if(event.target===this)dwmClose('Sample')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Sample')" aria-label="Close">×</button>
- <h3>Request a Sample</h3>
- <p class="sub">Memo sample · ships free · 3–5 business days</p>
- <div class="dwm-preview" id="dwmSamplePreview" style="display:none">
- <img id="dwmSampleImg" src="" alt="">
- <div><div class="pn" id="dwmSampleName"></div><div class="pc" id="dwmSampleSku"></div></div>
- </div>
- <form id="dwmSampleForm" onsubmit="return dwmSubmit(event,'sample')">
- <input type="hidden" name="sku" id="dwmSampleSkuInput">
- <input type="hidden" name="title" id="dwmSampleTitleInput">
- <input type="hidden" name="image_url" id="dwmSampleImageInput">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Shipping Address</label><input type="text" name="address" placeholder="Street" required></div>
- <div class="dwm-field" style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px">
- <input type="text" name="city" placeholder="City" required>
- <input type="text" name="state" placeholder="State" required>
- <input type="text" name="zip" placeholder="ZIP" required>
- </div>
- <div class="dwm-field"><label>Notes (optional)</label><textarea name="message" placeholder="Project, sq.ft., timing"></textarea></div>
- <button type="submit" class="dwm-submit">Send Sample Request</button>
- <div class="dwm-status" id="dwmSampleStatus"></div>
- </form>
- </div>
-</div>
-
-<script>
- // Universal modal control
- function dwmOpen(name, opts){
- document.getElementById('dwm' + name).classList.add('open');
- document.body.style.overflow = 'hidden';
- if (name === 'Sample' && opts) {
- document.getElementById('dwmSamplePreview').style.display = 'flex';
- document.getElementById('dwmSampleImg').src = opts.image_url || '';
- document.getElementById('dwmSampleName').textContent = opts.title || '';
- document.getElementById('dwmSampleSku').textContent = opts.sku || '';
- document.getElementById('dwmSampleSkuInput').value = opts.sku || '';
- document.getElementById('dwmSampleTitleInput').value = opts.title || '';
- document.getElementById('dwmSampleImageInput').value = opts.image_url || '';
- } else if (name === 'Sample') {
- document.getElementById('dwmSamplePreview').style.display = 'none';
- document.getElementById('dwmSampleSkuInput').value = '';
- document.getElementById('dwmSampleTitleInput').value = '';
- document.getElementById('dwmSampleImageInput').value = '';
- }
- }
- function dwmClose(name){ document.getElementById('dwm'+name).classList.remove('open'); document.body.style.overflow=''; }
-
- // Universal form submit — POSTs to /api/send-{kind}
- async function dwmSubmit(e, kind) {
- e.preventDefault();
- const form = e.target;
- const data = Object.fromEntries(new FormData(form).entries());
- const btn = form.querySelector('.dwm-submit');
- const status = form.querySelector('.dwm-status');
- btn.disabled = true; const orig = btn.textContent; btn.textContent = 'Sending…';
- status.className = 'dwm-status';
- try {
- const r = await fetch('/api/send-' + kind, { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
- if (!r.ok) throw new Error('HTTP '+r.status);
- const j = await r.json();
- status.textContent = kind === 'sample' ? 'Sample request sent — ships within 3–5 business days' : 'Inquiry sent — we respond within 1 business day';
- status.className = 'dwm-status ok';
- btn.textContent = 'Sent ✓';
- setTimeout(() => { dwmClose(kind === 'sample' ? 'Sample' : 'Inquiry'); btn.disabled = false; btn.textContent = orig; status.className = 'dwm-status'; form.reset(); }, 2800);
- } catch (err) {
- status.textContent = 'Send failed — please email info@designerwallcoverings.com';
- status.className = 'dwm-status err';
- btn.disabled = false; btn.textContent = orig;
- }
- return false;
- }
-
- // Wire up "Memo samples ship free" badge in hero to open sample modal directly
- document.querySelectorAll('.hero .badge, [data-open-sample]').forEach(el => {
- el.style.cursor = 'pointer';
- el.addEventListener('click', () => dwmOpen('Sample'));
- });
-
- // Wire nav "Trade" link to inquiry modal
- document.querySelectorAll('nav a[href*="designerwallcoverings.com"]').forEach(a => {
- a.removeAttribute('target');
- a.removeAttribute('href');
- a.style.cursor = 'pointer';
- a.addEventListener('click', e => { e.preventDefault(); dwmOpen('Contact'); });
- });
-
- // Override product card clicks — open Sample modal pre-filled instead of redirecting to DW
- document.addEventListener('click', e => {
- const card = e.target.closest('.card, .rail-card');
- if (!card) return;
- if (card.tagName === 'A' && (card.getAttribute('href') || '').startsWith('/sample/')) {
- e.preventDefault();
- const img = card.querySelector('img');
- const pat = card.querySelector('.pat');
- const sku = card.getAttribute('href').replace('/sample/', '');
- dwmOpen('Sample', {
- sku,
- title: pat ? pat.textContent.trim() : '',
- image_url: img ? img.src : ''
- });
- }
- }, true);
-// DW STANDARD: hero pulls from products.json[0].image_url so dw-collections-viewer
-// drag-drop / hero-pin updates the live front page on next deploy.
-// Always upgrades to the largest Shopify variant (strips _NxN size suffix) so
-// the full-page hero stays sharp.
-// DW STANDARD: hero rotates through top-20 NEWEST products on each visit
-// (novasuede.com pattern). Fetches /api/products?limit=100, sorts by created_at desc,
-// takes the freshest 20, picks one per visit via localStorage counter.
-// Falls back to static /hero-bg.jpg on any error.
-(async function rotateHero() {
- try {
- const r = await fetch('/api/products?limit=100');
- if (!r.ok) return;
- const d = await r.json();
- const items = (d.items || [])
- .filter(p => p && p.image_url && /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(p.image_url))
- .sort((a,b) => String(b.created_at || '').localeCompare(String(a.created_at || '')))
- .slice(0, 20);
- if (!items.length) return;
- let visits = 0;
- try {
- visits = parseInt(localStorage.getItem('hero_visits') || '0', 10) || 0;
- localStorage.setItem('hero_visits', String(visits + 1));
- } catch(e) {}
- const pick = items[visits % items.length];
- // Strip _NxN size suffix to get the largest CDN variant
- const url = pick.image_url.replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- const bg = document.getElementById('heroBg') || document.getElementById('cinemaBg');
- if (bg) bg.style.backgroundImage = "url('" + url + "')";
- } catch (e) {}
-})();
-
-
-// DW STANDARD sort-select wire-up (added by fleet patcher)
-(function(){
- const sortSel = document.getElementById('sortSelect');
- if (!sortSel) return;
- const KEY = location.hostname.replace(/\./g, '_') + '_sort';
- const saved = localStorage.getItem(KEY);
- if (saved) { try { sortSel.value = saved; } catch(e){} }
- if (typeof state !== 'undefined') state.sort = sortSel.value;
- sortSel.addEventListener('change', e => {
- const v = e.target.value;
- try { localStorage.setItem(KEY, v); } catch(e){}
- if (typeof state !== 'undefined') state.sort = v;
- if (typeof resetGrid === 'function') resetGrid();
- else location.reload();
- });
-})();
-
-// graphics-loop pass 11: hydrate Ideas rails from /api/products
-(async function hydrateIdeas() {
- try {
- const r = await fetch('/api/products?limit=80');
- if (!r.ok) return;
- const d = await r.json();
- const items = (d.items || []).filter(p => p && p.image_url);
- if (!items.length) return;
- const sorted = [...items].sort((a,b) => String(b.created_at || '').localeCompare(String(a.created_at || '')));
- const newest = sorted.slice(0, 12);
- // Curated = deterministic offset slice (every 5th item starting at idx 3) for variety
- const curated = items.filter((_, i) => i % 5 === 3).slice(0, 12);
- function card(p) {
- const url = (p.image_url || '').replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- return '<a class="rail-card" href="/sample/' + encodeURIComponent(p.handle || p.sku) + '">' +
- '<img src="' + url + '" alt="' + (p.title || '').replace(/"/g, '"') + '" loading="lazy">' +
- '<div class="rc-title">' + ((p.title || '').split('|')[0] || '').trim() + '</div>' +
- '<div class="rc-meta">' + (p.vendor || '') + '</div>' +
- '</a>';
- }
- const r1 = document.getElementById('railNewest');
- const r2 = document.getElementById('railCurated');
- if (r1) r1.innerHTML = newest.map(card).join('');
- if (r2) r2.innerHTML = curated.map(card).join('');
- } catch(e) {}
-})();
-</script>
-
-</body>
-</html>
diff --git a/public/index.html.pre-pass5-serif.bak b/public/index.html.pre-pass5-serif.bak
deleted file mode 100644
index d99d58f..0000000
--- a/public/index.html.pre-pass5-serif.bak
+++ /dev/null
@@ -1,647 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
-<meta charset="utf-8">
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>Studio Toten — architectural. Useful.</title>
-<meta name="description" content="Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.">
-<meta name="theme-color" content="#F5F2ED">
-<link rel="canonical" href="https://architecturalwallcoverings.com/">
-<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&display=swap" rel="stylesheet">
-<link rel="preload" as="image" href="/hero-bg.jpg" fetchpriority="high">
-<script type="application/ld+json">
-{
- "@context": "https://schema.org",
- "@type": "Organization",
- "name": "Studio Toten",
- "url": "https://architecturalwallcoverings.com/",
- "email": "info@architecturalwallcoverings.com"
-}
-</script>
-<script src="/zd-loader.js" defer></script>
-<style>
-:root {
- --bg: #F5F2ED;
- --paper: #1A1A1A;
- --muted: #8B7866;
- --line: #D5CFC4;
- --accent: #1A1A1A;
- --bg-soft: #D5CFC4;
- --cols: 6;
-}
-html[data-theme="dark"] {
- --bg: #1a1410;
- --paper: #F5F2ED;
- --muted: #C9B89E;
- --line: rgba(255,254,250,0.12);
- --accent: #1A1A1A;
- --bg-soft: #2a1f15;
-}
-* { margin:0; padding:0; box-sizing:border-box }
-html { scroll-behavior:smooth }
-body { font-family:'Inter', sans-serif; color:var(--paper); -webkit-font-smoothing:antialiased; background:var(--bg); min-height:100vh; overflow-x:hidden }
-/* DW-FASHION-TEMPLATE-OVERRIDE */
-.section-title .accent, .footer-brand, .center-mark, h1, h2, h3 { font-family:'Inter', Georgia, serif !important; font-weight:400 !important; }
-
-/* ===== Auto-hide header ===== */
-header { position:fixed; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 32px; z-index:100; background:rgba(0,0,0,0.55); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:transform .3s }
-.h-link { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); text-decoration:none; cursor:pointer; background:transparent; border:0 }
-.h-link:hover { opacity:0.7 }
-.h-icon { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }
-
-/* ===== Cinema hero ===== */
-.cinema { position:relative; height:100vh; width:100%; overflow:hidden }
-.cinema-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-image:url('/hero-bg.jpg') }
-.cinema-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.75) 100%) }
-.corner-mark { position:absolute; top:24px; left:32px; font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,0.55), 0 0 1px rgba(0,0,0,0.4); z-index:5 }
-.corner-mark::before { content:"◆ "; margin-right:6px }
-.center-mark { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-size:clamp(34px,5vw,72px); font-weight:300; letter-spacing:0.42em; text-transform:uppercase; text-align:center; color:#fff; z-index:5; mix-blend-mode:difference }
-.center-mark .tm { font-size:14px; vertical-align:super; opacity:0.7; margin-left:0.2em }
-.center-mark .sub { display:block; font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400; font-size:0.4em; letter-spacing:0.04em; text-transform:none; margin-top:14px; opacity:0.85 }
-.meta-line { position:absolute; bottom:32px; left:32px; font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:700; color:#fff; z-index:5; opacity:0.85 }
-.meta-line .num { font-size:12px; display:block; margin-top:4px; letter-spacing:0.05em }
-.enter { position:absolute; bottom:32px; right:32px; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:0.36em; text-transform:uppercase; font-weight:700; color:#fff; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #fff; transition:gap 0.25s; z-index:5 }
-.enter:hover { gap:22px }
-.enter svg { width:24px; height:12px }
-
-/* ===== Section ===== */
-.section { padding:96px 32px }
-.section-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--line) }
-.section-title { font-size:clamp(36px,5vw,64px); font-weight:300; letter-spacing:-0.02em; line-height:1 }
-.section-title .accent { color: var(--accent); font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400 }
-.section-eyebrow { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:16px }
-.section-meta { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--muted); text-align:right; line-height:1.6 }
-
-/* ===== Filter bar ===== */
-.filters { display:flex; gap:8px; align-items:center; margin-bottom:18px; flex-wrap:wrap }
-.chip { padding:8px 16px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); background:transparent; border:1px solid var(--line); cursor:pointer; transition:all 0.2s; font-family:inherit }
-.chip:hover { border-color:var(--paper) }
-.chip.active { background:var(--paper); color:var(--bg); border-color:var(--paper) }
-.search { flex:0 1 280px; margin-left:auto; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:6px 0 }
-.search input { flex:1; background:transparent; border:0; color:var(--paper); font-family:inherit; font-size:13px; outline:none; letter-spacing:0.04em }
-.search input::placeholder { color:var(--muted) }
-.search svg { width:16px; height:16px; stroke:var(--muted); fill:none; stroke-width:1.5 }
-
-/* ===== Grid-density slider ===== */
-.density { display:flex; align-items:center; gap:14px; padding:6px 0; margin-bottom:24px }
-.density label { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--muted) }
-.density input[type=range] { flex:1; max-width:240px; -webkit-appearance:none; appearance:none; height:1px; background:var(--line); outline:none }
-.density input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50% }
-.density input[type=range]::-moz-range-thumb { width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50%; border:0 }
-.density .ct { font-size:11px; color:var(--muted); letter-spacing:0.18em; text-transform:uppercase; font-weight:600; min-width:80px }
-
-/* ===== Stats line ===== */
-.stat-line { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:24px }
-
-/* ===== Product grid (novasuede pattern: flush grid + slide-up overlay) ===== */
-.grid { display:grid; grid-template-columns:repeat(var(--cols), 1fr); gap:0 }
-.card { position:relative; aspect-ratio:1/1.15; cursor:pointer; overflow:hidden; border:1px solid var(--bg); transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1); background:var(--bg-soft) }
-.card:hover { transform:scale(1.04); z-index:5 }
-.card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease }
-.card .overlay { position:absolute; left:0; right:0; bottom:0; padding:20px 16px 14px; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%); transform:translateY(48%); opacity:0.85; transition:transform 0.3s ease, opacity 0.3s ease }
-.card:hover .overlay { transform:translateY(0); opacity:1 }
-.card .pat { font-size:13px; font-weight:600; letter-spacing:0.02em; color:#fff; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
-.card .ven { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#fff; opacity:0.7; font-weight:500; margin-top:4px }
-.card .actions { margin-top:10px; display:flex; gap:6px }
-.card .sample-btn { flex:1; padding:7px 10px; background:#fff; color:#000; font-family:inherit; font-size:10px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; border:0; cursor:pointer; text-align:center; transition:all 0.2s }
-.card .sample-btn:hover { background:var(--accent); color:#fff }
-
-@media (max-width:1024px) { .grid { grid-template-columns:repeat(min(var(--cols), 4), 1fr) } }
-@media (max-width:720px) { .grid { grid-template-columns:repeat(2, 1fr) } .density { display:none } }
-
-.sentinel { height:1px }
-.loading { text-align:center; color:var(--muted); padding:32px; font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700 }
-
-/* ===== Footer ===== */
-footer { padding:64px 32px 32px; border-top:1px solid var(--line); margin-top:32px }
-.footer-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr; gap:48px; margin-bottom:48px }
-.footer-brand { font-size:24px; font-weight:300; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:12px }
-.footer-text { font-size:13px; line-height:1.6; color:var(--muted); max-width:380px }
-.footer-col h4 { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--paper); margin-bottom:18px }
-.footer-col a { display:block; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:8px; transition:color 0.2s; cursor:pointer; background:transparent; border:0; font-family:inherit; padding:0; text-align:left }
-.footer-col a:hover { color:var(--accent) }
-.footer-bottom { max-width:1400px; margin:0 auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted) }
-
-@media (max-width:720px) {
- .corner-mark, .meta-line, .enter { font-size:10px }
- .center-mark { font-size:30px; letter-spacing:0.32em }
- .section, footer { padding-left:20px; padding-right:20px }
- .footer-grid { grid-template-columns:1fr; gap:32px }
- .search { margin-left:0; flex:1 1 100% }
-}
-
-.theme-toggle { background:transparent; border:1px solid var(--line); width:32px; height:32px; cursor:pointer; color:var(--paper); display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; transition:all .15s; padding:0 }
-.theme-toggle:hover { border-color:var(--accent); color:var(--accent) }
-
-/* ===== WCAG 2.4.7 — keyboard focus indicators ===== */
-/* Strictly :focus-visible so mouse clicks do NOT show the ring */
-a:focus-visible,
-button:focus-visible,
-input:focus-visible,
-select:focus-visible,
-textarea:focus-visible,
-[tabindex]:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
-}
-</style>
-<script>
-(function(){ try { var t = localStorage.getItem('arch_theme') || 'light'; document.documentElement.dataset.theme = t; } catch(e){} })();
-</script>
-</head>
-<body>
-
-<header>
- <button class="h-link" onclick="dwmOpen('Contact')" aria-label="Contact"><svg class="h-icon" viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/></svg><span>Contact</span></button>
- <button class="theme-toggle" id="theme-toggle" aria-label="Theme toggle">☾</button>
-</header>
-
-<section class="cinema">
- <div class="cinema-bg" id="heroBg"></div>
- <div class="corner-mark">Specifier-Grade</div>
- <div class="center-mark">ARCHITECTURAL<span class="tm">.</span><span class="sub">Spec. Build. Repeat.</span></div>
- <div class="meta-line">Architectural · Specifier · Class A · Contract<span class="num" id="heroNum"></span></div>
- <a class="enter" href="#shop">Enter <svg viewBox="0 0 24 12" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M0 6h22M16 1l6 5-6 5"/></svg></a>
-</section>
-
-<section class="section" id="shop">
- <div class="section-header">
- <div>
- <div class="section-eyebrow">The Collection</div>
- <h2 class="section-title"><span class="accent" id="totalCount">—</span> Patterns.</h2>
- </div>
- <div class="section-meta">Architectural · Specifier · Class A · Contract</div>
- </div>
-
- <div class="filters" id="facets">
- <button class="chip active" data-facet="all">All</button>
- </div>
-
- <div class="density">
- <label>Sort</label>
- <select id="sortSelect" aria-label="Sort products" style="background:transparent;color:inherit;border:1px solid var(--line,rgba(255,255,255,.2));font:inherit;font-size:11px;letter-spacing:.10em;text-transform:uppercase;padding:4px 8px;cursor:pointer;outline:none;margin-right:14px">
- <option value="newest">Newest</option>
- <option value="color">Color</option>
- <option value="style">Style</option>
- <option value="sku">SKU A→Z</option>
- <option value="title">Title A→Z</option>
- <option value="price-asc">Price ↑</option>
- <option value="price-desc">Price ↓</option>
- </select>
- <label>Grid</label>
- <input type="range" id="densitySlider" min="4" max="12" step="1" value="6" aria-label="Grid columns">
- <span class="ct" id="densityLabel">6 cols</span>
- <div class="search">
- <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-5.5-5.5"/></svg>
- <input type="text" id="searchInput" placeholder="Search by pattern, color…" autocomplete="off">
- </div>
- </div>
-
- <div class="stat-line" id="statLine">Loading…</div>
- <div class="grid" id="grid"></div>
- <div class="loading" id="loading">Loading more…</div>
- <div class="sentinel" id="sentinel"></div>
-</section>
-
-<footer>
- <div class="footer-grid">
- <div>
- <div class="footer-brand">ARCHITECTURAL</div>
- <p class="footer-text">Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.</p>
- <p class="footer-text" style="margin-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;color:var(--paper);opacity:0.7"><a href="/about" style="color:inherit;text-decoration:none;border-bottom:1px solid var(--accent)">About →</a></p>
- </div>
- <div class="footer-col">
- <h4>Aesthetic</h4>
- <div id="footerFacets"></div>
- </div>
- <div class="footer-col">
- <h4>Trade</h4>
- <button onclick="dwmOpen('Inquiry')">Project Inquiry</button>
- <button onclick="dwmOpen('Sample')">Request Sample</button>
- <button onclick="dwmOpen('Contact')">Contact</button>
- </div>
- </div>
- <div class="footer-bottom">
- <span>architecturalwallcoverings.com · Studio Toten</span>
- <span><a href="mailto:info@architecturalwallcoverings.com" style="color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px">info@architecturalwallcoverings.com</a></span>
- <span id="footerStat"></span>
- </div>
-</footer>
-
-<script>
-// mini-constellation — 43 niche-stars, current site highlighted in gold
-(function(){
- const SLUG = "architecturalwallcoverings";
- const NICHES = [
- ['silkwallpaper','Silk','mat'],['silkwallcoverings','Silk W/C','mat'],['linenwallpaper','Linen','mat'],
- ['jutewallpaper','Jute','mat'],['raffiawallcoverings','Raffia W/C','mat'],['raffiawalls','Raffia Walls','mat'],
- ['corkwallcovering','Cork','mat'],['fabricwallpaper','Fabric','mat'],['textilewallpaper','Textile','mat'],
- ['metallicwallpaper','Metallic','mat'],['silverleafwallpaper','Silver Leaf','mat'],['vinylwallpaper','Vinyl','mat'],
- ['micawallpaper','Mica','mat'],['madagascarwallpaper','Madagascar','mat'],['mylarwallpaper','Mylar','mat'],
- ['suedewallpaper','Suede','mat'],
- ['1800swallpaper','1800s','dec'],['1890swallpaper','1890s','dec'],['1900swallpaper','1900s','dec'],
- ['1920swallpaper','1920s','dec'],['1930swallpaper','1930s','dec'],['1940swallpaper','1940s','dec'],
- ['1950swallpaper','1950s','dec'],['1960swallpaper','1960s','dec'],['1970swallpaper','1970s','dec'],
- ['1980swallpaper','1980s','dec'],['retrowalls','Retro','dec'],['wallpapersback','W. Back','dec'],
- ['agedwallpaper','Aged','cra'],['handcraftedwallpaper','Handcrafted','cra'],['museumwallpaper','Museum','cra'],
- ['restorationwallpaper','Restoration','cra'],['pastelwallpaper','Pastel','cra'],['glitterwalls','Glitter','cra'],
- ['greenwallcoverings','Green','cra'],['naturalwallcoverings','Natural','cra'],['saloonwallpaper','Saloon','cra'],
- ['contractwallpaper','Contract','use'],['hotelwallcoverings','Hotel','use'],['hospitalitywallpaper','Hospitality','use'],
- ['healthcarewallpaper','Healthcare','use'],['restaurantwallpaper','Restaurant','use'],['architecturalwallcoverings','Architectural','use']
- ];
- const COLOR = { mat:'#c9b687', dec:'#b86a4a', cra:'#6b8e6f', use:'#4a6b8e' };
- const W = 1080, H = 200, BANDS = ['mat','dec','cra','use'];
- const groups = { mat:[], dec:[], cra:[], use:[] };
- for (const n of NICHES) groups[n[2]].push(n);
- const svg = document.getElementById('miniConst');
- if (!svg) return;
- const bandW = W / BANDS.length;
- let nodes = '';
- BANDS.forEach((band, bi) => {
- const list = groups[band];
- const cx = bi * bandW + bandW / 2;
- list.forEach((n, i) => {
- const t = list.length === 1 ? 0.5 : i / (list.length - 1);
- // deterministic jitter per slug
- let h = 0; for (let k = 0; k < n[0].length; k++) h = (h * 31 + n[0].charCodeAt(k)) | 0;
- const jx = ((h & 0xff) / 255 - 0.5) * (bandW * 0.5);
- const jy = (((h >> 8) & 0xff) / 255 - 0.5) * 6; // tightened from 14 → 6 to prevent same-band collisions (16 mat nodes / 144px = 9px spacing)
- const x = cx + jx, y = 28 + t * (H - 56) + jy;
- const isCurrent = n[0] === SLUG;
- const r = isCurrent ? 8 : 4;
- const op = isCurrent ? 1 : 0.55;
- nodes += `<g class="mc-node" data-slug="${n[0]}" data-label="${n[1]}" style="cursor:pointer">
- <circle cx="${x}" cy="${y}" r="${r}" fill="url(#dna-${band})" fill-opacity="${op}" stroke="${COLOR[band]}" stroke-opacity="${isCurrent?1:0.7}" stroke-width="${isCurrent?2:1}">
- <title>${n[1]} — ${n[0]}.com</title>
- </circle>
- ${isCurrent ? `<circle cx="${x}" cy="${y}" r="${r+5}" fill="none" stroke="${COLOR[band]}" stroke-opacity="0.4" stroke-width="1"><animate attributeName="r" values="${r+5};${r+12};${r+5}" dur="2.4s" repeatCount="indefinite"/><animate attributeName="stroke-opacity" values="0.4;0;0.4" dur="2.4s" repeatCount="indefinite"/></circle>` : ''}
- </g>`;
- });
- });
- // append nodes after defs
- svg.insertAdjacentHTML('beforeend', nodes);
- svg.querySelectorAll('.mc-node').forEach(n => {
- n.addEventListener('mouseenter', () => n.querySelector('circle').setAttribute('fill-opacity', '1'));
- n.addEventListener('mouseleave', e => {
- const isCurrent = n.dataset.slug === SLUG;
- n.querySelector('circle').setAttribute('fill-opacity', isCurrent ? '1' : '0.55');
- });
- n.addEventListener('click', () => window.open('https://' + n.dataset.slug + '.com', '_blank'));
- });
-})();
-</script>
-
-<script>
-const state = { q:'', facet:'all', page:1, pages:1, total:0, loading:false, exhausted:false };
-const LABELS = {"all":"All"};
-
-function escAttr(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[c])); }
-// Image-URL allowlist: only DW Shopify CDN + designerwallcoverings.com (defends against XSS via crafted products.json)
-function safeImg(u) { return /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(u || '') ? u : '/hero-bg.jpg'; }
-function cardHTML(p) {
- const eager = state.page === 1;
- return '<img loading="' + (eager ? 'eager' : 'lazy') + '"' + (eager ? ' fetchpriority="high"' : '') + ' src="' + escAttr(safeImg(p.image_url)) + '" alt="' + escAttr(p.title) + '">'
- + '<div class="overlay">'
- + '<div class="pat">' + escAttr(p.pattern_name || p.title) + '</div>'
- + '<div class="ven">' + escAttr((p.vendor || '').replace(/-/g, ' ')) + '</div>'
- + '<div class="actions">'
- + '<button class="sample-btn" onclick="event.stopPropagation();dwmOpen(\'Sample\',' + JSON.stringify({sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}).replace(/"/g,'"') + ')">Sample</button>'
- + '</div></div>';
-}
-
-async function loadFacets() {
- let f;
- try {
- const r = await fetch('/api/facets');
- if (!r.ok) throw new Error('HTTP ' + r.status);
- f = await r.json();
- } catch (e) { console.error('loadFacets failed:', e); return; }
- const el = document.getElementById('facets');
- for (const [k, v] of Object.entries(f.aesthetics).sort((a,b) => b[1] - a[1])) {
- const b = document.createElement('button');
- b.className = 'chip'; b.dataset.facet = k;
- b.innerHTML = (LABELS[k] || k) + ' <span style="opacity:.55;font-weight:500;margin-left:4px">' + v + '</span>';
- el.appendChild(b);
- }
- el.addEventListener('click', e => {
- if (e.target.tagName !== 'BUTTON') return;
- document.querySelectorAll('#facets button').forEach(b => b.classList.remove('active'));
- e.target.classList.add('active');
- state.facet = e.target.dataset.facet;
- resetGrid();
- });
- document.getElementById('totalCount').textContent = f.total;
- document.getElementById('footerStat').textContent = f.total + ' patterns · live archive';
- // Footer aesthetic links
- const footerEl = document.getElementById('footerFacets');
- for (const [k] of Object.entries(f.aesthetics)) {
- const b = document.createElement('button');
- b.textContent = LABELS[k] || k;
- b.onclick = () => { state.facet = k; resetGrid(); document.querySelectorAll('#facets button').forEach(x => x.classList.toggle('active', x.dataset.facet === k)); document.getElementById('shop').scrollIntoView({behavior:'smooth'}); };
- footerEl.appendChild(b);
- }
-}
-
-function resetGrid() {
- state.page = 1; state.exhausted = false;
- document.getElementById('grid').innerHTML = '';
- document.getElementById('loading').textContent = 'Loading…';
- loadGridPage();
-}
-
-async function loadGridPage() {
- if (state.loading || state.exhausted) return;
- state.loading = true;
- const params = new URLSearchParams({ page:state.page, limit:24 });
- if (state.q) params.set('q', state.q);
- if (state.facet !== 'all') params.set('aesthetic', state.facet);
- let data;
- try {
- const r = await fetch('/api/products?' + params);
- if (!r.ok) throw new Error('HTTP ' + r.status);
- data = await r.json();
- } catch (e) {
- console.error('loadGridPage failed:', e);
- document.getElementById('loading').textContent = '— offline — refresh to retry —';
- state.loading = false;
- return;
- }
- state.total = data.total; state.pages = data.pages;
-
- if (state.page === 1) {
- document.getElementById('statLine').textContent = data.total + ' patterns · ' + (state.facet === 'all' ? 'all aesthetics' : (LABELS[state.facet] || state.facet)) + (state.q ? ' · matching "' + state.q + '"' : '');
- }
- const grid = document.getElementById('grid');
- for (const p of data.items) {
- const a = document.createElement('a');
- a.className = 'card'; a.href = '#'; a.onclick = (e) => { e.preventDefault(); dwmOpen('Sample',{sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}); };
- a.innerHTML = cardHTML(p);
- grid.appendChild(a);
- }
- if (state.page >= state.pages || data.items.length === 0) {
- state.exhausted = true;
- document.getElementById('loading').textContent = state.total > 0 ? '— end of archive · ' + state.total + ' patterns —' : '';
- } else state.page++;
- state.loading = false;
-}
-
-const io = new IntersectionObserver(es => { for (const e of es) if (e.isIntersecting) loadGridPage(); }, { rootMargin:'600px 0px' });
-io.observe(document.getElementById('sentinel'));
-
-document.getElementById('searchInput').addEventListener('input', e => {
- state.q = e.target.value.trim();
- clearTimeout(window._t);
- window._t = setTimeout(resetGrid, 220);
-});
-
-// Density slider
-const slider = document.getElementById('densitySlider');
-const dlabel = document.getElementById('densityLabel');
-function setDensity(n) {
- document.documentElement.style.setProperty('--cols', n);
- dlabel.textContent = n + ' cols';
- try { localStorage.setItem('arch_theme_density', n); } catch(e){}
-}
-slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
-const savedDensity = parseInt(localStorage.getItem('arch_theme_density') || '6');
-if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
-
-// Theme toggle
-const tb = document.getElementById('theme-toggle');
-function setTheme(t){ document.documentElement.dataset.theme = t; try { localStorage.setItem('arch_theme', t); } catch(e){} tb.textContent = t === 'dark' ? '☾' : '☀'; }
-setTheme(document.documentElement.dataset.theme || 'light');
-tb.addEventListener('click', () => setTheme(document.documentElement.dataset.theme === 'dark' ? 'light' : 'dark'));
-
-loadFacets();
-loadGridPage();
-</script>
-<!-- ============================================================
- DW UNIVERSAL CONTACT MODULE — fashion-house UX
- Inject before </body> in every DW-family sister site.
- Self-contained: CSS + 4 modals + JS submission handlers.
- Uses host site's CSS vars (--bg, --fg, --gold, --rule).
- ============================================================ -->
-<style>
- /* === MODAL BASE === */
- .dwm{position:fixed;inset:0;background:rgba(0,0,0,0.78);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;overflow-y:auto}
- .dwm.open{display:flex}
- .dwm-box{background:var(--bg);border:1px solid var(--rule);max-width:520px;width:100%;padding:36px 32px;position:relative;max-height:90vh;overflow-y:auto;animation:dwm-in 0.25s ease}
- @keyframes dwm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
- .dwm-box h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;font-size:32px;line-height:1.05;margin-bottom:6px;color:var(--fg);letter-spacing:-0.01em}
- .dwm-box .sub{color:var(--muted);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
- .dwm-close{position:absolute;top:18px;right:18px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;width:32px;height:32px;line-height:1;padding:0}
- .dwm-close:hover{color:var(--gold)}
- .dwm-preview{display:flex;gap:14px;align-items:center;padding:12px;background:var(--bg-soft);margin-bottom:18px}
- .dwm-preview img{width:64px;height:64px;object-fit:cover}
- .dwm-preview .pn{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;line-height:1.2;color:var(--fg)}
- .dwm-preview .pc{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
- .dwm-field{margin-bottom:14px}
- .dwm-field label{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
- .dwm-field input,.dwm-field textarea,.dwm-field select{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:8px 4px;font-size:14px;font-family:inherit;color:var(--fg);outline:none;transition:border-color 0.2s}
- .dwm-field input:focus,.dwm-field textarea:focus{border-bottom-color:var(--gold)}
- .dwm-field textarea{min-height:60px;resize:vertical}
- .dwm-submit{background:var(--gold);color:#000;border:0;padding:14px 28px;font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:700;cursor:pointer;width:100%;margin-top:8px;transition:opacity 0.15s}
- .dwm-submit:hover{opacity:0.85}
- .dwm-submit:disabled{opacity:0.5;cursor:default}
- .dwm-status{margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;display:none}
- .dwm-status.ok{color:var(--sage);display:block}
- .dwm-status.err{color:#e08070;display:block}
- /* contact-options */
- .dwm-options{display:flex;flex-direction:column;gap:10px}
- .dwm-option{display:flex;align-items:center;gap:14px;padding:18px 20px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;transition:all 0.2s;text-align:left;width:100%}
- .dwm-option:hover{border-color:var(--gold);color:var(--gold)}
- .dwm-option svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}
- .dwm-option .lbl{flex:1;display:block}
- .dwm-option .val{display:block;font-size:10px;letter-spacing:0.14em;text-transform:none;font-weight:500;opacity:0.65;margin-top:4px}
-</style>
-
-<!-- Contact options modal -->
-<div class="dwm" id="dwmContact" onclick="if(event.target===this)dwmClose('Contact')">
- <div class="dwm-box" style="max-width:440px">
- <button class="dwm-close" onclick="dwmClose('Contact')" aria-label="Close">×</button>
- <h3>Contact</h3>
- <p class="sub" id="dwmContactSub">Three ways to reach us</p>
- <div class="dwm-options">
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Inquiry')">
- <svg viewBox="0 0 24 24"><path d="M4 4h16v12H7l-3 3z"/></svg>
- <span class="lbl">Send an Inquiry<span class="val">Project name · scope · all the details</span></span>
- </button>
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Sample')">
- <svg viewBox="0 0 24 24"><rect x="4" y="6" width="16" height="14"/><path d="M4 10h16M9 6V3h6v3"/></svg>
- <span class="lbl">Request a Sample<span class="val">Memo sample · ships free · 3–5 business days</span></span>
- </button>
- <a class="dwm-option" id="dwmContactEmailLink" href="mailto:info@{{DOMAIN}}">
- <svg viewBox="0 0 24 24"><path d="M3 6h18v12H3z"/><path d="M3 6l9 7 9-7"/></svg>
- <span class="lbl">Email Us<span class="val" id="dwmContactEmailLabel">info@{{DOMAIN}}</span></span>
- </a>
- </div>
- </div>
-</div>
-
-<!-- Inquiry modal -->
-<div class="dwm" id="dwmInquiry" onclick="if(event.target===this)dwmClose('Inquiry')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Inquiry')" aria-label="Close">×</button>
- <h3>Project Inquiry</h3>
- <p class="sub">We'll respond within one business day</p>
- <form id="dwmInquiryForm" onsubmit="return dwmSubmit(event,'inquiry')">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Phone</label><input type="tel" name="phone"></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Project Name</label><input type="text" name="projectName" required></div>
- <div class="dwm-field"><label>Project Scope</label><textarea name="projectScope" placeholder="Square footage · room count · timeline" required></textarea></div>
- <div class="dwm-field"><label>Additional Information</label><textarea name="message" placeholder="Patterns of interest, finish preferences, budget"></textarea></div>
- <button type="submit" class="dwm-submit">Send Inquiry</button>
- <div class="dwm-status" id="dwmInquiryStatus"></div>
- </form>
- </div>
-</div>
-
-<!-- Sample-request modal -->
-<div class="dwm" id="dwmSample" onclick="if(event.target===this)dwmClose('Sample')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Sample')" aria-label="Close">×</button>
- <h3>Request a Sample</h3>
- <p class="sub">Memo sample · ships free · 3–5 business days</p>
- <div class="dwm-preview" id="dwmSamplePreview" style="display:none">
- <img id="dwmSampleImg" src="" alt="">
- <div><div class="pn" id="dwmSampleName"></div><div class="pc" id="dwmSampleSku"></div></div>
- </div>
- <form id="dwmSampleForm" onsubmit="return dwmSubmit(event,'sample')">
- <input type="hidden" name="sku" id="dwmSampleSkuInput">
- <input type="hidden" name="title" id="dwmSampleTitleInput">
- <input type="hidden" name="image_url" id="dwmSampleImageInput">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Shipping Address</label><input type="text" name="address" placeholder="Street" required></div>
- <div class="dwm-field" style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px">
- <input type="text" name="city" placeholder="City" required>
- <input type="text" name="state" placeholder="State" required>
- <input type="text" name="zip" placeholder="ZIP" required>
- </div>
- <div class="dwm-field"><label>Notes (optional)</label><textarea name="message" placeholder="Project, sq.ft., timing"></textarea></div>
- <button type="submit" class="dwm-submit">Send Sample Request</button>
- <div class="dwm-status" id="dwmSampleStatus"></div>
- </form>
- </div>
-</div>
-
-<script>
- // Universal modal control
- function dwmOpen(name, opts){
- document.getElementById('dwm' + name).classList.add('open');
- document.body.style.overflow = 'hidden';
- if (name === 'Sample' && opts) {
- document.getElementById('dwmSamplePreview').style.display = 'flex';
- document.getElementById('dwmSampleImg').src = opts.image_url || '';
- document.getElementById('dwmSampleName').textContent = opts.title || '';
- document.getElementById('dwmSampleSku').textContent = opts.sku || '';
- document.getElementById('dwmSampleSkuInput').value = opts.sku || '';
- document.getElementById('dwmSampleTitleInput').value = opts.title || '';
- document.getElementById('dwmSampleImageInput').value = opts.image_url || '';
- } else if (name === 'Sample') {
- document.getElementById('dwmSamplePreview').style.display = 'none';
- document.getElementById('dwmSampleSkuInput').value = '';
- document.getElementById('dwmSampleTitleInput').value = '';
- document.getElementById('dwmSampleImageInput').value = '';
- }
- }
- function dwmClose(name){ document.getElementById('dwm'+name).classList.remove('open'); document.body.style.overflow=''; }
-
- // Universal form submit — POSTs to /api/send-{kind}
- async function dwmSubmit(e, kind) {
- e.preventDefault();
- const form = e.target;
- const data = Object.fromEntries(new FormData(form).entries());
- const btn = form.querySelector('.dwm-submit');
- const status = form.querySelector('.dwm-status');
- btn.disabled = true; const orig = btn.textContent; btn.textContent = 'Sending…';
- status.className = 'dwm-status';
- try {
- const r = await fetch('/api/send-' + kind, { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
- if (!r.ok) throw new Error('HTTP '+r.status);
- const j = await r.json();
- status.textContent = kind === 'sample' ? 'Sample request sent — ships within 3–5 business days' : 'Inquiry sent — we respond within 1 business day';
- status.className = 'dwm-status ok';
- btn.textContent = 'Sent ✓';
- setTimeout(() => { dwmClose(kind === 'sample' ? 'Sample' : 'Inquiry'); btn.disabled = false; btn.textContent = orig; status.className = 'dwm-status'; form.reset(); }, 2800);
- } catch (err) {
- status.textContent = 'Send failed — please email info@designerwallcoverings.com';
- status.className = 'dwm-status err';
- btn.disabled = false; btn.textContent = orig;
- }
- return false;
- }
-
- // Wire up "Memo samples ship free" badge in hero to open sample modal directly
- document.querySelectorAll('.hero .badge, [data-open-sample]').forEach(el => {
- el.style.cursor = 'pointer';
- el.addEventListener('click', () => dwmOpen('Sample'));
- });
-
- // Wire nav "Trade" link to inquiry modal
- document.querySelectorAll('nav a[href*="designerwallcoverings.com"]').forEach(a => {
- a.removeAttribute('target');
- a.removeAttribute('href');
- a.style.cursor = 'pointer';
- a.addEventListener('click', e => { e.preventDefault(); dwmOpen('Contact'); });
- });
-
- // Override product card clicks — open Sample modal pre-filled instead of redirecting to DW
- document.addEventListener('click', e => {
- const card = e.target.closest('.card, .rail-card');
- if (!card) return;
- if (card.tagName === 'A' && (card.getAttribute('href') || '').startsWith('/sample/')) {
- e.preventDefault();
- const img = card.querySelector('img');
- const pat = card.querySelector('.pat');
- const sku = card.getAttribute('href').replace('/sample/', '');
- dwmOpen('Sample', {
- sku,
- title: pat ? pat.textContent.trim() : '',
- image_url: img ? img.src : ''
- });
- }
- }, true);
-// DW STANDARD: hero pulls from products.json[0].image_url so dw-collections-viewer
-// drag-drop / hero-pin updates the live front page on next deploy.
-// Always upgrades to the largest Shopify variant (strips _NxN size suffix) so
-// the full-page hero stays sharp.
-(async function hydrateHero() {
- try {
- const r = await fetch('/api/products?limit=1');
- if (!r.ok) return;
- const d = await r.json();
- let url = d.items && d.items[0] && d.items[0].image_url;
- if (!url) return;
- if (/^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(url)) {
- url = url.replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- const bg = document.getElementById('heroBg');
- if (bg) bg.style.backgroundImage = "url('" + url + "')";
- }
- } catch(e){}
-})();
-
-
-// DW STANDARD sort-select wire-up (added by fleet patcher)
-(function(){
- const sortSel = document.getElementById('sortSelect');
- if (!sortSel) return;
- const KEY = location.hostname.replace(/\./g, '_') + '_sort';
- const saved = localStorage.getItem(KEY);
- if (saved) { try { sortSel.value = saved; } catch(e){} }
- if (typeof state !== 'undefined') state.sort = sortSel.value;
- sortSel.addEventListener('change', e => {
- const v = e.target.value;
- try { localStorage.setItem(KEY, v); } catch(e){}
- if (typeof state !== 'undefined') state.sort = v;
- if (typeof resetGrid === 'function') resetGrid();
- else location.reload();
- });
-})();
-</script>
-
-</body>
-</html>
diff --git a/public/index.html.pre-pass8.bak b/public/index.html.pre-pass8.bak
deleted file mode 100644
index efe069f..0000000
--- a/public/index.html.pre-pass8.bak
+++ /dev/null
@@ -1,663 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
-<meta charset="utf-8">
-<!-- Google tag (gtag.js) -->
-<script async src="https://www.googletagmanager.com/gtag/js?id=G-PN839G9FD8"></script>
-<script>
- window.dataLayer = window.dataLayer || [];
- function gtag(){dataLayer.push(arguments);}
- gtag('js', new Date());
- gtag('config', 'G-PN839G9FD8');
-</script>
-
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>Studio Toten — architectural. Useful.</title>
-<meta name="description" content="Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.">
-<meta name="theme-color" content="#F5F2ED">
-<link rel="canonical" href="https://architecturalwallcoverings.com/">
-<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&display=swap" rel="stylesheet">
-<link rel="preload" as="image" href="/hero-bg.jpg" fetchpriority="high">
-<script type="application/ld+json">
-{
- "@context": "https://schema.org",
- "@type": "Organization",
- "name": "Studio Toten",
- "url": "https://architecturalwallcoverings.com/",
- "email": "info@architecturalwallcoverings.com"
-}
-</script>
-<script src="/zd-loader.js" defer></script>
-<style>
-:root {
- --bg: #F5F2ED;
- --paper: #1A1A1A;
- --muted: #8B7866;
- --line: #D5CFC4;
- --accent: #1A1A1A;
- --bg-soft: #D5CFC4;
- --cols: 6;
-}
-html[data-theme="dark"] {
- --bg: #1a1410;
- --paper: #F5F2ED;
- --muted: #C9B89E;
- --line: rgba(255,254,250,0.12);
- --accent: #1A1A1A;
- --bg-soft: #2a1f15;
-}
-* { margin:0; padding:0; box-sizing:border-box }
-html { scroll-behavior:smooth }
-body { font-family:'Inter', sans-serif; color:var(--paper); -webkit-font-smoothing:antialiased; background:var(--bg); min-height:100vh; overflow-x:hidden }
-/* DW-FASHION-TEMPLATE-OVERRIDE */
-.section-title .accent, .footer-brand, .center-mark, h1, h2, h3 { font-family:'Inter', Georgia, serif !important; font-weight:400 !important; }
-
-/* ===== Auto-hide header ===== */
-header { position:fixed; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 32px; z-index:100; background:rgba(0,0,0,0.55); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:transform .3s }
-.h-link { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); text-decoration:none; cursor:pointer; background:transparent; border:0 }
-.h-link:hover { opacity:0.7 }
-.h-icon { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }
-
-/* ===== Cinema hero ===== */
-.cinema { position:relative; height:100vh; width:100%; overflow:hidden }
-.cinema-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-image:url('/hero-bg.jpg') }
-.cinema-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.75) 100%) }
-.corner-mark { position:absolute; top:24px; left:32px; font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,0.55), 0 0 1px rgba(0,0,0,0.4); z-index:5 }
-.corner-mark::before { content:"◆ "; margin-right:6px }
-.center-mark { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-size:clamp(34px,5vw,72px); font-weight:300; letter-spacing:0.42em; text-transform:uppercase; text-align:center; color:#fff; z-index:5; mix-blend-mode:difference }
-.center-mark .tm { font-size:14px; vertical-align:super; opacity:0.7; margin-left:0.2em }
-.center-mark .sub { display:block; font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400; font-size:0.4em; letter-spacing:0.04em; text-transform:none; margin-top:14px; opacity:0.85 }
-.meta-line { position:absolute; bottom:32px; left:32px; font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:700; color:#fff; z-index:5; opacity:0.85 }
-.meta-line .num { font-size:12px; display:block; margin-top:4px; letter-spacing:0.05em }
-.enter { position:absolute; bottom:32px; right:32px; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:0.36em; text-transform:uppercase; font-weight:700; color:#fff; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #fff; transition:gap 0.25s; z-index:5 }
-.enter:hover { gap:22px }
-.enter svg { width:24px; height:12px }
-
-/* ===== Section ===== */
-.section { padding:96px 32px }
-.section-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--line) }
-.section-title { font-size:clamp(36px,5vw,64px); font-weight:300; letter-spacing:-0.02em; line-height:1 }
-.section-title .accent { color: var(--accent); font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400 }
-.section-eyebrow { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:16px }
-.section-meta { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--muted); text-align:right; line-height:1.6 }
-
-/* ===== Filter bar ===== */
-.filters { display:flex; gap:8px; align-items:center; margin-bottom:18px; flex-wrap:wrap }
-.chip { padding:8px 16px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); background:transparent; border:1px solid var(--line); cursor:pointer; transition:all 0.2s; font-family:inherit }
-.chip:hover { border-color:var(--paper) }
-.chip.active { background:var(--paper); color:var(--bg); border-color:var(--paper) }
-.search { flex:0 1 280px; margin-left:auto; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:6px 0 }
-.search input { flex:1; background:transparent; border:0; color:var(--paper); font-family:inherit; font-size:13px; outline:none; letter-spacing:0.04em }
-.search input::placeholder { color:var(--muted) }
-.search svg { width:16px; height:16px; stroke:var(--muted); fill:none; stroke-width:1.5 }
-
-/* ===== Grid-density slider ===== */
-.density { display:flex; align-items:center; gap:14px; padding:6px 0; margin-bottom:24px }
-.density label { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--muted) }
-.density input[type=range] { flex:1; max-width:240px; -webkit-appearance:none; appearance:none; height:1px; background:var(--line); outline:none }
-.density input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50% }
-.density input[type=range]::-moz-range-thumb { width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50%; border:0 }
-.density .ct { font-size:11px; color:var(--muted); letter-spacing:0.18em; text-transform:uppercase; font-weight:600; min-width:80px }
-
-/* ===== Stats line ===== */
-.stat-line { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:24px }
-
-/* ===== Product grid (novasuede pattern: flush grid + slide-up overlay) ===== */
-.grid { display:grid; grid-template-columns:repeat(var(--cols), 1fr); gap:0 }
-.card { position:relative; aspect-ratio:1/1.15; cursor:pointer; overflow:hidden; border:1px solid var(--bg); transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1); background:var(--bg-soft) }
-.card:hover { transform:scale(1.04); z-index:5 }
-.card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease }
-.card .overlay { position:absolute; left:0; right:0; bottom:0; padding:20px 16px 14px; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%); transform:translateY(48%); opacity:0.85; transition:transform 0.3s ease, opacity 0.3s ease }
-.card:hover .overlay { transform:translateY(0); opacity:1 }
-.card .pat { font-size:13px; font-weight:600; letter-spacing:0.02em; color:#fff; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
-.card .ven { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#fff; opacity:0.7; font-weight:500; margin-top:4px }
-.card .actions { margin-top:10px; display:flex; gap:6px }
-.card .sample-btn { flex:1; padding:7px 10px; background:#fff; color:#000; font-family:inherit; font-size:10px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; border:0; cursor:pointer; text-align:center; transition:all 0.2s }
-.card .sample-btn:hover { background:var(--accent); color:#fff }
-
-@media (max-width:1024px) { .grid { grid-template-columns:repeat(min(var(--cols), 4), 1fr) } }
-@media (max-width:720px) { .grid { grid-template-columns:repeat(2, 1fr) } .density { display:none } }
-
-.sentinel { height:1px }
-.loading { text-align:center; color:var(--muted); padding:32px; font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700 }
-
-/* ===== Footer ===== */
-footer { padding:64px 32px 32px; border-top:1px solid var(--line); margin-top:32px }
-.footer-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr; gap:48px; margin-bottom:48px }
-.footer-brand { font-size:24px; font-weight:300; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:12px }
-.footer-text { font-size:13px; line-height:1.6; color:var(--muted); max-width:380px }
-.footer-col h4 { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--paper); margin-bottom:18px }
-.footer-col a { display:block; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:8px; transition:color 0.2s; cursor:pointer; background:transparent; border:0; font-family:inherit; padding:0; text-align:left }
-.footer-col a:hover { color:var(--accent) }
-.footer-bottom { max-width:1400px; margin:0 auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted) }
-
-@media (max-width:720px) {
- .corner-mark, .meta-line, .enter { font-size:10px }
- .center-mark { font-size:30px; letter-spacing:0.32em }
- .section, footer { padding-left:20px; padding-right:20px }
- .footer-grid { grid-template-columns:1fr; gap:32px }
- .search { margin-left:0; flex:1 1 100% }
-}
-
-.theme-toggle { background:transparent; border:1px solid var(--line); width:32px; height:32px; cursor:pointer; color:var(--paper); display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; transition:all .15s; padding:0 }
-.theme-toggle:hover { border-color:var(--accent); color:var(--accent) }
-
-/* ===== WCAG 2.4.7 — keyboard focus indicators ===== */
-/* Strictly :focus-visible so mouse clicks do NOT show the ring */
-a:focus-visible,
-button:focus-visible,
-input:focus-visible,
-select:focus-visible,
-textarea:focus-visible,
-[tabindex]:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
-}
-</style>
-<script>
-(function(){ try { var t = localStorage.getItem('arch_theme') || 'light'; document.documentElement.dataset.theme = t; } catch(e){} })();
-</script>
-<link rel="preconnect" href="https://fonts.googleapis.com">
-<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&display=swap">
-</head>
-<body>
-
-<header>
- <button class="h-link" onclick="dwmOpen('Contact')" aria-label="Contact"><svg class="h-icon" viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/></svg><span>Contact</span></button>
- <button class="theme-toggle" id="theme-toggle" aria-label="Theme toggle">☾</button>
-</header>
-
-<section class="cinema">
- <div class="cinema-bg" id="heroBg"></div>
- <div class="corner-mark">Specifier-Grade</div>
- <div class="center-mark">ARCHITECTURAL<span class="tm">.</span><span class="sub">Spec. Build. Repeat.</span></div>
- <div class="meta-line">Architectural · Specifier · Class A · Contract<span class="num" id="heroNum"></span></div>
- <a class="enter" href="#shop">Enter <svg viewBox="0 0 24 12" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M0 6h22M16 1l6 5-6 5"/></svg></a>
-</section>
-
-<section class="section" id="shop">
- <div class="section-header">
- <div>
- <div class="section-eyebrow">The Collection</div>
- <h2 class="section-title"><span class="accent" id="totalCount">—</span> Patterns.</h2>
- </div>
- <div class="section-meta">Architectural · Specifier · Class A · Contract</div>
- </div>
-
- <div class="filters" id="facets">
- <button class="chip active" data-facet="all">All</button>
- </div>
-
- <div class="density">
- <label>Sort</label>
- <select id="sortSelect" aria-label="Sort products" style="background:transparent;color:inherit;border:1px solid var(--line,rgba(255,255,255,.2));font:inherit;font-size:11px;letter-spacing:.10em;text-transform:uppercase;padding:4px 8px;cursor:pointer;outline:none;margin-right:14px">
- <option value="newest">Newest</option>
- <option value="color">Color</option>
- <option value="style">Style</option>
- <option value="sku">SKU A→Z</option>
- <option value="title">Title A→Z</option>
- <option value="price-asc">Price ↑</option>
- <option value="price-desc">Price ↓</option>
- </select>
- <label>Grid</label>
- <input type="range" id="densitySlider" min="4" max="12" step="1" value="6" aria-label="Grid columns">
- <span class="ct" id="densityLabel">6 cols</span>
- <div class="search">
- <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-5.5-5.5"/></svg>
- <input type="text" id="searchInput" placeholder="Search by pattern, color…" autocomplete="off">
- </div>
- </div>
-
- <div class="stat-line" id="statLine">Loading…</div>
- <div class="grid" id="grid"></div>
- <div class="loading" id="loading">Loading more…</div>
- <div class="sentinel" id="sentinel"></div>
-</section>
-
-<footer>
- <div class="footer-grid">
- <div>
- <div class="footer-brand">ARCHITECTURAL</div>
- <p class="footer-text">Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.</p>
- <p class="footer-text" style="margin-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;color:var(--paper);opacity:0.7"><a href="/about" style="color:inherit;text-decoration:none;border-bottom:1px solid var(--accent)">About →</a></p>
- </div>
- <div class="footer-col">
- <h4>Aesthetic</h4>
- <div id="footerFacets"></div>
- </div>
- <div class="footer-col">
- <h4>Trade</h4>
- <button onclick="dwmOpen('Inquiry')">Project Inquiry</button>
- <button onclick="dwmOpen('Sample')">Request Sample</button>
- <button onclick="dwmOpen('Contact')">Contact</button>
- </div>
- </div>
- <div class="footer-bottom">
- <span>architecturalwallcoverings.com · Studio Toten</span>
- <span><a href="mailto:info@architecturalwallcoverings.com" style="color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px">info@architecturalwallcoverings.com</a></span>
- <span id="footerStat"></span>
- </div>
-</footer>
-
-<script>
-// mini-constellation — 43 niche-stars, current site highlighted in gold
-(function(){
- const SLUG = "architecturalwallcoverings";
- const NICHES = [
- ['silkwallpaper','Silk','mat'],['silkwallcoverings','Silk W/C','mat'],['linenwallpaper','Linen','mat'],
- ['jutewallpaper','Jute','mat'],['raffiawallcoverings','Raffia W/C','mat'],['raffiawalls','Raffia Walls','mat'],
- ['corkwallcovering','Cork','mat'],['fabricwallpaper','Fabric','mat'],['textilewallpaper','Textile','mat'],
- ['metallicwallpaper','Metallic','mat'],['silverleafwallpaper','Silver Leaf','mat'],['vinylwallpaper','Vinyl','mat'],
- ['micawallpaper','Mica','mat'],['madagascarwallpaper','Madagascar','mat'],['mylarwallpaper','Mylar','mat'],
- ['suedewallpaper','Suede','mat'],
- ['1800swallpaper','1800s','dec'],['1890swallpaper','1890s','dec'],['1900swallpaper','1900s','dec'],
- ['1920swallpaper','1920s','dec'],['1930swallpaper','1930s','dec'],['1940swallpaper','1940s','dec'],
- ['1950swallpaper','1950s','dec'],['1960swallpaper','1960s','dec'],['1970swallpaper','1970s','dec'],
- ['1980swallpaper','1980s','dec'],['retrowalls','Retro','dec'],['wallpapersback','W. Back','dec'],
- ['agedwallpaper','Aged','cra'],['handcraftedwallpaper','Handcrafted','cra'],['museumwallpaper','Museum','cra'],
- ['restorationwallpaper','Restoration','cra'],['pastelwallpaper','Pastel','cra'],['glitterwalls','Glitter','cra'],
- ['greenwallcoverings','Green','cra'],['naturalwallcoverings','Natural','cra'],['saloonwallpaper','Saloon','cra'],
- ['contractwallpaper','Contract','use'],['hotelwallcoverings','Hotel','use'],['hospitalitywallpaper','Hospitality','use'],
- ['healthcarewallpaper','Healthcare','use'],['restaurantwallpaper','Restaurant','use'],['architecturalwallcoverings','Architectural','use']
- ];
- const COLOR = { mat:'#c9b687', dec:'#b86a4a', cra:'#6b8e6f', use:'#4a6b8e' };
- const W = 1080, H = 200, BANDS = ['mat','dec','cra','use'];
- const groups = { mat:[], dec:[], cra:[], use:[] };
- for (const n of NICHES) groups[n[2]].push(n);
- const svg = document.getElementById('miniConst');
- if (!svg) return;
- const bandW = W / BANDS.length;
- let nodes = '';
- BANDS.forEach((band, bi) => {
- const list = groups[band];
- const cx = bi * bandW + bandW / 2;
- list.forEach((n, i) => {
- const t = list.length === 1 ? 0.5 : i / (list.length - 1);
- // deterministic jitter per slug
- let h = 0; for (let k = 0; k < n[0].length; k++) h = (h * 31 + n[0].charCodeAt(k)) | 0;
- const jx = ((h & 0xff) / 255 - 0.5) * (bandW * 0.5);
- const jy = (((h >> 8) & 0xff) / 255 - 0.5) * 6; // tightened from 14 → 6 to prevent same-band collisions (16 mat nodes / 144px = 9px spacing)
- const x = cx + jx, y = 28 + t * (H - 56) + jy;
- const isCurrent = n[0] === SLUG;
- const r = isCurrent ? 8 : 4;
- const op = isCurrent ? 1 : 0.55;
- nodes += `<g class="mc-node" data-slug="${n[0]}" data-label="${n[1]}" style="cursor:pointer">
- <circle cx="${x}" cy="${y}" r="${r}" fill="url(#dna-${band})" fill-opacity="${op}" stroke="${COLOR[band]}" stroke-opacity="${isCurrent?1:0.7}" stroke-width="${isCurrent?2:1}">
- <title>${n[1]} — ${n[0]}.com</title>
- </circle>
- ${isCurrent ? `<circle cx="${x}" cy="${y}" r="${r+5}" fill="none" stroke="${COLOR[band]}" stroke-opacity="0.4" stroke-width="1"><animate attributeName="r" values="${r+5};${r+12};${r+5}" dur="2.4s" repeatCount="indefinite"/><animate attributeName="stroke-opacity" values="0.4;0;0.4" dur="2.4s" repeatCount="indefinite"/></circle>` : ''}
- </g>`;
- });
- });
- // append nodes after defs
- svg.insertAdjacentHTML('beforeend', nodes);
- svg.querySelectorAll('.mc-node').forEach(n => {
- n.addEventListener('mouseenter', () => n.querySelector('circle').setAttribute('fill-opacity', '1'));
- n.addEventListener('mouseleave', e => {
- const isCurrent = n.dataset.slug === SLUG;
- n.querySelector('circle').setAttribute('fill-opacity', isCurrent ? '1' : '0.55');
- });
- n.addEventListener('click', () => window.open('https://' + n.dataset.slug + '.com', '_blank'));
- });
-})();
-</script>
-
-<script>
-const state = { q:'', facet:'all', page:1, pages:1, total:0, loading:false, exhausted:false };
-const LABELS = {"all":"All"};
-
-function escAttr(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[c])); }
-// Image-URL allowlist: only DW Shopify CDN + designerwallcoverings.com (defends against XSS via crafted products.json)
-function safeImg(u) { return /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(u || '') ? u : '/hero-bg.jpg'; }
-function cardHTML(p) {
- const eager = state.page === 1;
- return '<img loading="' + (eager ? 'eager' : 'lazy') + '"' + (eager ? ' fetchpriority="high"' : '') + ' src="' + escAttr(safeImg(p.image_url)) + '" alt="' + escAttr(p.title) + '">'
- + '<div class="overlay">'
- + '<div class="pat">' + escAttr(p.pattern_name || p.title) + '</div>'
- + '<div class="ven">' + escAttr((p.vendor || '').replace(/-/g, ' ')) + '</div>'
- + '<div class="actions">'
- + '<button class="sample-btn" onclick="event.stopPropagation();dwmOpen(\'Sample\',' + JSON.stringify({sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}).replace(/"/g,'"') + ')">Sample</button>'
- + '</div></div>';
-}
-
-async function loadFacets() {
- let f;
- try {
- const r = await fetch('/api/facets');
- if (!r.ok) throw new Error('HTTP ' + r.status);
- f = await r.json();
- } catch (e) { console.error('loadFacets failed:', e); return; }
- const el = document.getElementById('facets');
- for (const [k, v] of Object.entries(f.aesthetics).sort((a,b) => b[1] - a[1])) {
- const b = document.createElement('button');
- b.className = 'chip'; b.dataset.facet = k;
- b.innerHTML = (LABELS[k] || k) + ' <span style="opacity:.55;font-weight:500;margin-left:4px">' + v + '</span>';
- el.appendChild(b);
- }
- el.addEventListener('click', e => {
- if (e.target.tagName !== 'BUTTON') return;
- document.querySelectorAll('#facets button').forEach(b => b.classList.remove('active'));
- e.target.classList.add('active');
- state.facet = e.target.dataset.facet;
- resetGrid();
- });
- document.getElementById('totalCount').textContent = f.total;
- document.getElementById('footerStat').textContent = f.total + ' patterns · live archive';
- // Footer aesthetic links
- const footerEl = document.getElementById('footerFacets');
- for (const [k] of Object.entries(f.aesthetics)) {
- const b = document.createElement('button');
- b.textContent = LABELS[k] || k;
- b.onclick = () => { state.facet = k; resetGrid(); document.querySelectorAll('#facets button').forEach(x => x.classList.toggle('active', x.dataset.facet === k)); document.getElementById('shop').scrollIntoView({behavior:'smooth'}); };
- footerEl.appendChild(b);
- }
-}
-
-function resetGrid() {
- state.page = 1; state.exhausted = false;
- document.getElementById('grid').innerHTML = '';
- document.getElementById('loading').textContent = 'Loading…';
- loadGridPage();
-}
-
-async function loadGridPage() {
- if (state.loading || state.exhausted) return;
- state.loading = true;
- const params = new URLSearchParams({ page:state.page, limit:24 });
- if (state.q) params.set('q', state.q);
- if (state.facet !== 'all') params.set('aesthetic', state.facet);
- let data;
- try {
- const r = await fetch('/api/products?' + params);
- if (!r.ok) throw new Error('HTTP ' + r.status);
- data = await r.json();
- } catch (e) {
- console.error('loadGridPage failed:', e);
- document.getElementById('loading').textContent = '— offline — refresh to retry —';
- state.loading = false;
- return;
- }
- state.total = data.total; state.pages = data.pages;
-
- if (state.page === 1) {
- document.getElementById('statLine').textContent = data.total + ' patterns · ' + (state.facet === 'all' ? 'all aesthetics' : (LABELS[state.facet] || state.facet)) + (state.q ? ' · matching "' + state.q + '"' : '');
- }
- const grid = document.getElementById('grid');
- for (const p of data.items) {
- const a = document.createElement('a');
- a.className = 'card'; a.href = '#'; a.onclick = (e) => { e.preventDefault(); dwmOpen('Sample',{sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}); };
- a.innerHTML = cardHTML(p);
- grid.appendChild(a);
- }
- if (state.page >= state.pages || data.items.length === 0) {
- state.exhausted = true;
- document.getElementById('loading').textContent = state.total > 0 ? '— end of archive · ' + state.total + ' patterns —' : '';
- } else state.page++;
- state.loading = false;
-}
-
-const io = new IntersectionObserver(es => { for (const e of es) if (e.isIntersecting) loadGridPage(); }, { rootMargin:'600px 0px' });
-io.observe(document.getElementById('sentinel'));
-
-document.getElementById('searchInput').addEventListener('input', e => {
- state.q = e.target.value.trim();
- clearTimeout(window._t);
- window._t = setTimeout(resetGrid, 220);
-});
-
-// Density slider
-const slider = document.getElementById('densitySlider');
-const dlabel = document.getElementById('densityLabel');
-function setDensity(n) {
- document.documentElement.style.setProperty('--cols', n);
- dlabel.textContent = n + ' cols';
- try { localStorage.setItem('arch_theme_density', n); } catch(e){}
-}
-slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
-const savedDensity = parseInt(localStorage.getItem('arch_theme_density') || '6');
-if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
-
-// Theme toggle
-const tb = document.getElementById('theme-toggle');
-function setTheme(t){ document.documentElement.dataset.theme = t; try { localStorage.setItem('arch_theme', t); } catch(e){} tb.textContent = t === 'dark' ? '☾' : '☀'; }
-setTheme(document.documentElement.dataset.theme || 'light');
-tb.addEventListener('click', () => setTheme(document.documentElement.dataset.theme === 'dark' ? 'light' : 'dark'));
-
-loadFacets();
-loadGridPage();
-</script>
-<!-- ============================================================
- DW UNIVERSAL CONTACT MODULE — fashion-house UX
- Inject before </body> in every DW-family sister site.
- Self-contained: CSS + 4 modals + JS submission handlers.
- Uses host site's CSS vars (--bg, --fg, --gold, --rule).
- ============================================================ -->
-<style>
- /* === MODAL BASE === */
- .dwm{position:fixed;inset:0;background:rgba(0,0,0,0.78);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;overflow-y:auto}
- .dwm.open{display:flex}
- .dwm-box{background:var(--bg);border:1px solid var(--rule);max-width:520px;width:100%;padding:36px 32px;position:relative;max-height:90vh;overflow-y:auto;animation:dwm-in 0.25s ease}
- @keyframes dwm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
- .dwm-box h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;font-size:32px;line-height:1.05;margin-bottom:6px;color:var(--fg);letter-spacing:-0.01em}
- .dwm-box .sub{color:var(--muted);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
- .dwm-close{position:absolute;top:18px;right:18px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;width:32px;height:32px;line-height:1;padding:0}
- .dwm-close:hover{color:var(--gold)}
- .dwm-preview{display:flex;gap:14px;align-items:center;padding:12px;background:var(--bg-soft);margin-bottom:18px}
- .dwm-preview img{width:64px;height:64px;object-fit:cover}
- .dwm-preview .pn{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;line-height:1.2;color:var(--fg)}
- .dwm-preview .pc{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
- .dwm-field{margin-bottom:14px}
- .dwm-field label{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
- .dwm-field input,.dwm-field textarea,.dwm-field select{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:8px 4px;font-size:14px;font-family:inherit;color:var(--fg);outline:none;transition:border-color 0.2s}
- .dwm-field input:focus,.dwm-field textarea:focus{border-bottom-color:var(--gold)}
- .dwm-field textarea{min-height:60px;resize:vertical}
- .dwm-submit{background:var(--gold);color:#000;border:0;padding:14px 28px;font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:700;cursor:pointer;width:100%;margin-top:8px;transition:opacity 0.15s}
- .dwm-submit:hover{opacity:0.85}
- .dwm-submit:disabled{opacity:0.5;cursor:default}
- .dwm-status{margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;display:none}
- .dwm-status.ok{color:var(--sage);display:block}
- .dwm-status.err{color:#e08070;display:block}
- /* contact-options */
- .dwm-options{display:flex;flex-direction:column;gap:10px}
- .dwm-option{display:flex;align-items:center;gap:14px;padding:18px 20px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;transition:all 0.2s;text-align:left;width:100%}
- .dwm-option:hover{border-color:var(--gold);color:var(--gold)}
- .dwm-option svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}
- .dwm-option .lbl{flex:1;display:block}
- .dwm-option .val{display:block;font-size:10px;letter-spacing:0.14em;text-transform:none;font-weight:500;opacity:0.65;margin-top:4px}
-
-/* graphics-loop pass 5: serif hero typography + nav legibility */
-.cinema h1, h1.headline { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; letter-spacing: -0.01em }
-.h-link { font-size: 13px; letter-spacing: 0.06em }
-</style>
-
-<!-- Contact options modal -->
-<div class="dwm" id="dwmContact" onclick="if(event.target===this)dwmClose('Contact')">
- <div class="dwm-box" style="max-width:440px">
- <button class="dwm-close" onclick="dwmClose('Contact')" aria-label="Close">×</button>
- <h3>Contact</h3>
- <p class="sub" id="dwmContactSub">Three ways to reach us</p>
- <div class="dwm-options">
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Inquiry')">
- <svg viewBox="0 0 24 24"><path d="M4 4h16v12H7l-3 3z"/></svg>
- <span class="lbl">Send an Inquiry<span class="val">Project name · scope · all the details</span></span>
- </button>
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Sample')">
- <svg viewBox="0 0 24 24"><rect x="4" y="6" width="16" height="14"/><path d="M4 10h16M9 6V3h6v3"/></svg>
- <span class="lbl">Request a Sample<span class="val">Memo sample · ships free · 3–5 business days</span></span>
- </button>
- <a class="dwm-option" id="dwmContactEmailLink" href="mailto:info@architecturalwallcoverings.com">
- <svg viewBox="0 0 24 24"><path d="M3 6h18v12H3z"/><path d="M3 6l9 7 9-7"/></svg>
- <span class="lbl">Email Us<span class="val" id="dwmContactEmailLabel">info@architecturalwallcoverings.com</span></span>
- </a>
- </div>
- </div>
-</div>
-
-<!-- Inquiry modal -->
-<div class="dwm" id="dwmInquiry" onclick="if(event.target===this)dwmClose('Inquiry')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Inquiry')" aria-label="Close">×</button>
- <h3>Project Inquiry</h3>
- <p class="sub">We'll respond within one business day</p>
- <form id="dwmInquiryForm" onsubmit="return dwmSubmit(event,'inquiry')">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Phone</label><input type="tel" name="phone"></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Project Name</label><input type="text" name="projectName" required></div>
- <div class="dwm-field"><label>Project Scope</label><textarea name="projectScope" placeholder="Square footage · room count · timeline" required></textarea></div>
- <div class="dwm-field"><label>Additional Information</label><textarea name="message" placeholder="Patterns of interest, finish preferences, budget"></textarea></div>
- <button type="submit" class="dwm-submit">Send Inquiry</button>
- <div class="dwm-status" id="dwmInquiryStatus"></div>
- </form>
- </div>
-</div>
-
-<!-- Sample-request modal -->
-<div class="dwm" id="dwmSample" onclick="if(event.target===this)dwmClose('Sample')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Sample')" aria-label="Close">×</button>
- <h3>Request a Sample</h3>
- <p class="sub">Memo sample · ships free · 3–5 business days</p>
- <div class="dwm-preview" id="dwmSamplePreview" style="display:none">
- <img id="dwmSampleImg" src="" alt="">
- <div><div class="pn" id="dwmSampleName"></div><div class="pc" id="dwmSampleSku"></div></div>
- </div>
- <form id="dwmSampleForm" onsubmit="return dwmSubmit(event,'sample')">
- <input type="hidden" name="sku" id="dwmSampleSkuInput">
- <input type="hidden" name="title" id="dwmSampleTitleInput">
- <input type="hidden" name="image_url" id="dwmSampleImageInput">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Shipping Address</label><input type="text" name="address" placeholder="Street" required></div>
- <div class="dwm-field" style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px">
- <input type="text" name="city" placeholder="City" required>
- <input type="text" name="state" placeholder="State" required>
- <input type="text" name="zip" placeholder="ZIP" required>
- </div>
- <div class="dwm-field"><label>Notes (optional)</label><textarea name="message" placeholder="Project, sq.ft., timing"></textarea></div>
- <button type="submit" class="dwm-submit">Send Sample Request</button>
- <div class="dwm-status" id="dwmSampleStatus"></div>
- </form>
- </div>
-</div>
-
-<script>
- // Universal modal control
- function dwmOpen(name, opts){
- document.getElementById('dwm' + name).classList.add('open');
- document.body.style.overflow = 'hidden';
- if (name === 'Sample' && opts) {
- document.getElementById('dwmSamplePreview').style.display = 'flex';
- document.getElementById('dwmSampleImg').src = opts.image_url || '';
- document.getElementById('dwmSampleName').textContent = opts.title || '';
- document.getElementById('dwmSampleSku').textContent = opts.sku || '';
- document.getElementById('dwmSampleSkuInput').value = opts.sku || '';
- document.getElementById('dwmSampleTitleInput').value = opts.title || '';
- document.getElementById('dwmSampleImageInput').value = opts.image_url || '';
- } else if (name === 'Sample') {
- document.getElementById('dwmSamplePreview').style.display = 'none';
- document.getElementById('dwmSampleSkuInput').value = '';
- document.getElementById('dwmSampleTitleInput').value = '';
- document.getElementById('dwmSampleImageInput').value = '';
- }
- }
- function dwmClose(name){ document.getElementById('dwm'+name).classList.remove('open'); document.body.style.overflow=''; }
-
- // Universal form submit — POSTs to /api/send-{kind}
- async function dwmSubmit(e, kind) {
- e.preventDefault();
- const form = e.target;
- const data = Object.fromEntries(new FormData(form).entries());
- const btn = form.querySelector('.dwm-submit');
- const status = form.querySelector('.dwm-status');
- btn.disabled = true; const orig = btn.textContent; btn.textContent = 'Sending…';
- status.className = 'dwm-status';
- try {
- const r = await fetch('/api/send-' + kind, { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
- if (!r.ok) throw new Error('HTTP '+r.status);
- const j = await r.json();
- status.textContent = kind === 'sample' ? 'Sample request sent — ships within 3–5 business days' : 'Inquiry sent — we respond within 1 business day';
- status.className = 'dwm-status ok';
- btn.textContent = 'Sent ✓';
- setTimeout(() => { dwmClose(kind === 'sample' ? 'Sample' : 'Inquiry'); btn.disabled = false; btn.textContent = orig; status.className = 'dwm-status'; form.reset(); }, 2800);
- } catch (err) {
- status.textContent = 'Send failed — please email info@designerwallcoverings.com';
- status.className = 'dwm-status err';
- btn.disabled = false; btn.textContent = orig;
- }
- return false;
- }
-
- // Wire up "Memo samples ship free" badge in hero to open sample modal directly
- document.querySelectorAll('.hero .badge, [data-open-sample]').forEach(el => {
- el.style.cursor = 'pointer';
- el.addEventListener('click', () => dwmOpen('Sample'));
- });
-
- // Wire nav "Trade" link to inquiry modal
- document.querySelectorAll('nav a[href*="designerwallcoverings.com"]').forEach(a => {
- a.removeAttribute('target');
- a.removeAttribute('href');
- a.style.cursor = 'pointer';
- a.addEventListener('click', e => { e.preventDefault(); dwmOpen('Contact'); });
- });
-
- // Override product card clicks — open Sample modal pre-filled instead of redirecting to DW
- document.addEventListener('click', e => {
- const card = e.target.closest('.card, .rail-card');
- if (!card) return;
- if (card.tagName === 'A' && (card.getAttribute('href') || '').startsWith('/sample/')) {
- e.preventDefault();
- const img = card.querySelector('img');
- const pat = card.querySelector('.pat');
- const sku = card.getAttribute('href').replace('/sample/', '');
- dwmOpen('Sample', {
- sku,
- title: pat ? pat.textContent.trim() : '',
- image_url: img ? img.src : ''
- });
- }
- }, true);
-// DW STANDARD: hero pulls from products.json[0].image_url so dw-collections-viewer
-// drag-drop / hero-pin updates the live front page on next deploy.
-// Always upgrades to the largest Shopify variant (strips _NxN size suffix) so
-// the full-page hero stays sharp.
-(async function hydrateHero() {
- try {
- const r = await fetch('/api/products?limit=1');
- if (!r.ok) return;
- const d = await r.json();
- let url = d.items && d.items[0] && d.items[0].image_url;
- if (!url) return;
- if (/^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(url)) {
- url = url.replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- const bg = document.getElementById('heroBg');
- if (bg) bg.style.backgroundImage = "url('" + url + "')";
- }
- } catch(e){}
-})();
-
-
-// DW STANDARD sort-select wire-up (added by fleet patcher)
-(function(){
- const sortSel = document.getElementById('sortSelect');
- if (!sortSel) return;
- const KEY = location.hostname.replace(/\./g, '_') + '_sort';
- const saved = localStorage.getItem(KEY);
- if (saved) { try { sortSel.value = saved; } catch(e){} }
- if (typeof state !== 'undefined') state.sort = sortSel.value;
- sortSel.addEventListener('change', e => {
- const v = e.target.value;
- try { localStorage.setItem(KEY, v); } catch(e){}
- if (typeof state !== 'undefined') state.sort = v;
- if (typeof resetGrid === 'function') resetGrid();
- else location.reload();
- });
-})();
-</script>
-
-</body>
-</html>
diff --git a/public/index.html.pre-pass9.bak b/public/index.html.pre-pass9.bak
deleted file mode 100644
index 89468d1..0000000
--- a/public/index.html.pre-pass9.bak
+++ /dev/null
@@ -1,664 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
-<meta charset="utf-8">
-<!-- Google tag (gtag.js) -->
-<script async src="https://www.googletagmanager.com/gtag/js?id=G-PN839G9FD8"></script>
-<script>
- window.dataLayer = window.dataLayer || [];
- function gtag(){dataLayer.push(arguments);}
- gtag('js', new Date());
- gtag('config', 'G-PN839G9FD8');
-</script>
-
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>Studio Toten — architectural. Useful.</title>
-<meta name="description" content="Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.">
-<meta name="theme-color" content="#F5F2ED">
-<link rel="canonical" href="https://architecturalwallcoverings.com/">
-<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&display=swap" rel="stylesheet">
-<link rel="preload" as="image" href="/hero-bg.jpg" fetchpriority="high">
-<script type="application/ld+json">
-{
- "@context": "https://schema.org",
- "@type": "Organization",
- "name": "Studio Toten",
- "url": "https://architecturalwallcoverings.com/",
- "email": "info@architecturalwallcoverings.com"
-}
-</script>
-<script src="/zd-loader.js" defer></script>
-<style>
-:root {
- --bg: #F5F2ED;
- --paper: #1A1A1A;
- --muted: #8B7866;
- --line: #D5CFC4;
- --accent: #1A1A1A;
- --bg-soft: #D5CFC4;
- --cols: 6;
-}
-html[data-theme="dark"] {
- --bg: #1a1410;
- --paper: #F5F2ED;
- --muted: #C9B89E;
- --line: rgba(255,254,250,0.12);
- --accent: #1A1A1A;
- --bg-soft: #2a1f15;
-}
-* { margin:0; padding:0; box-sizing:border-box }
-html { scroll-behavior:smooth }
-body { font-family:'Inter', sans-serif; color:var(--paper); -webkit-font-smoothing:antialiased; background:var(--bg); min-height:100vh; overflow-x:hidden }
-/* DW-FASHION-TEMPLATE-OVERRIDE */
-.section-title .accent, .footer-brand, .center-mark, h1, h2, h3 { font-family:'Inter', Georgia, serif !important; font-weight:400 !important; }
-
-/* ===== Auto-hide header ===== */
-header { position:fixed; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 32px; z-index:100; background:rgba(0,0,0,0.55); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:transform .3s }
-.h-link { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); text-decoration:none; cursor:pointer; background:transparent; border:0 }
-.h-link:hover { opacity:0.7 }
-.h-icon { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }
-
-/* ===== Cinema hero ===== */
-.cinema { position:relative; height:100vh; width:100%; overflow:hidden }
-.cinema-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-image:url('/hero-bg.jpg') }
-.cinema-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.75) 100%) }
-.corner-mark { position:absolute; top:24px; left:32px; font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,0.55), 0 0 1px rgba(0,0,0,0.4); z-index:5 }
-.corner-mark::before { content:"◆ "; margin-right:6px }
-.center-mark { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-size:clamp(34px,5vw,72px); font-weight:300; letter-spacing:0.42em; text-transform:uppercase; text-align:center; color:#fff; z-index:5; mix-blend-mode:difference }
-.center-mark .tm { font-size:14px; vertical-align:super; opacity:0.7; margin-left:0.2em }
-.center-mark .sub { display:block; font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400; font-size:0.4em; letter-spacing:0.04em; text-transform:none; margin-top:14px; opacity:0.85 }
-.meta-line { position:absolute; bottom:32px; left:32px; font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:700; color:#fff; z-index:5; opacity:0.85 }
-.meta-line .num { font-size:12px; display:block; margin-top:4px; letter-spacing:0.05em }
-.enter { position:absolute; bottom:32px; right:32px; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:0.36em; text-transform:uppercase; font-weight:700; color:#fff; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #fff; transition:gap 0.25s; z-index:5 }
-.enter:hover { gap:22px }
-.enter svg { width:24px; height:12px }
-
-/* ===== Section ===== */
-.section { padding:96px 32px }
-.section-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--line) }
-.section-title { font-size:clamp(36px,5vw,64px); font-weight:300; letter-spacing:-0.02em; line-height:1 }
-.section-title .accent { color: var(--accent); font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400 }
-.section-eyebrow { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:16px }
-.section-meta { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--muted); text-align:right; line-height:1.6 }
-
-/* ===== Filter bar ===== */
-.filters { display:flex; gap:8px; align-items:center; margin-bottom:18px; flex-wrap:wrap }
-.chip { padding:8px 16px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); background:transparent; border:1px solid var(--line); cursor:pointer; transition:all 0.2s; font-family:inherit }
-.chip:hover { border-color:var(--paper) }
-.chip.active { background:var(--paper); color:var(--bg); border-color:var(--paper) }
-.search { flex:0 1 280px; margin-left:auto; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:6px 0 }
-.search input { flex:1; background:transparent; border:0; color:var(--paper); font-family:inherit; font-size:13px; outline:none; letter-spacing:0.04em }
-.search input::placeholder { color:var(--muted) }
-.search svg { width:16px; height:16px; stroke:var(--muted); fill:none; stroke-width:1.5 }
-
-/* ===== Grid-density slider ===== */
-.density { display:flex; align-items:center; gap:14px; padding:6px 0; margin-bottom:24px }
-.density label { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--muted) }
-.density input[type=range] { flex:1; max-width:240px; -webkit-appearance:none; appearance:none; height:1px; background:var(--line); outline:none }
-.density input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50% }
-.density input[type=range]::-moz-range-thumb { width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50%; border:0 }
-.density .ct { font-size:11px; color:var(--muted); letter-spacing:0.18em; text-transform:uppercase; font-weight:600; min-width:80px }
-
-/* ===== Stats line ===== */
-.stat-line { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:24px }
-
-/* ===== Product grid (novasuede pattern: flush grid + slide-up overlay) ===== */
-.grid { display:grid; grid-template-columns:repeat(var(--cols), 1fr); gap:0 }
-.card { position:relative; aspect-ratio:1/1.15; cursor:pointer; overflow:hidden; border:1px solid var(--bg); transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1); background:var(--bg-soft) }
-.card:hover { transform:scale(1.04); z-index:5 }
-.card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease }
-.card .overlay { position:absolute; left:0; right:0; bottom:0; padding:20px 16px 14px; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%); transform:translateY(48%); opacity:0.85; transition:transform 0.3s ease, opacity 0.3s ease }
-.card:hover .overlay { transform:translateY(0); opacity:1 }
-.card .pat { font-size:13px; font-weight:600; letter-spacing:0.02em; color:#fff; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
-.card .ven { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#fff; opacity:0.7; font-weight:500; margin-top:4px }
-.card .actions { margin-top:10px; display:flex; gap:6px }
-.card .sample-btn { flex:1; padding:7px 10px; background:#fff; color:#000; font-family:inherit; font-size:10px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; border:0; cursor:pointer; text-align:center; transition:all 0.2s }
-.card .sample-btn:hover { background:var(--accent); color:#fff }
-
-@media (max-width:1024px) { .grid { grid-template-columns:repeat(min(var(--cols), 4), 1fr) } }
-@media (max-width:720px) { .grid { grid-template-columns:repeat(2, 1fr) } .density { display:none } }
-
-.sentinel { height:1px }
-.loading { text-align:center; color:var(--muted); padding:32px; font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700 }
-
-/* ===== Footer ===== */
-footer { padding:64px 32px 32px; border-top:1px solid var(--line); margin-top:32px }
-.footer-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr; gap:48px; margin-bottom:48px }
-.footer-brand { font-size:24px; font-weight:300; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:12px }
-.footer-text { font-size:13px; line-height:1.6; color:var(--muted); max-width:380px }
-.footer-col h4 { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--paper); margin-bottom:18px }
-.footer-col a { display:block; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:8px; transition:color 0.2s; cursor:pointer; background:transparent; border:0; font-family:inherit; padding:0; text-align:left }
-.footer-col a:hover { color:var(--accent) }
-.footer-bottom { max-width:1400px; margin:0 auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted) }
-
-@media (max-width:720px) {
- .corner-mark, .meta-line, .enter { font-size:10px }
- .center-mark { font-size:30px; letter-spacing:0.32em }
- .section, footer { padding-left:20px; padding-right:20px }
- .footer-grid { grid-template-columns:1fr; gap:32px }
- .search { margin-left:0; flex:1 1 100% }
-}
-
-.theme-toggle { background:transparent; border:1px solid var(--line); width:32px; height:32px; cursor:pointer; color:var(--paper); display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; transition:all .15s; padding:0 }
-.theme-toggle:hover { border-color:var(--accent); color:var(--accent) }
-
-/* ===== WCAG 2.4.7 — keyboard focus indicators ===== */
-/* Strictly :focus-visible so mouse clicks do NOT show the ring */
-a:focus-visible,
-button:focus-visible,
-input:focus-visible,
-select:focus-visible,
-textarea:focus-visible,
-[tabindex]:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
-}
-</style>
-<script>
-(function(){ try { var t = localStorage.getItem('arch_theme') || 'light'; document.documentElement.dataset.theme = t; } catch(e){} })();
-</script>
-<link rel="preconnect" href="https://fonts.googleapis.com">
-<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap">
-</head>
-<body>
-
-<header>
- <button class="h-link" onclick="dwmOpen('Contact')" aria-label="Contact"><svg class="h-icon" viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/></svg><span>Contact</span></button>
- <button class="theme-toggle" id="theme-toggle" aria-label="Theme toggle">☾</button>
-</header>
-
-<section class="cinema">
- <div class="cinema-bg" id="heroBg"></div>
- <div class="corner-mark">Specifier-Grade</div>
- <div class="center-mark">ARCHITECTURAL<span class="tm">.</span><span class="sub">Spec. Build. Repeat.</span></div>
- <div class="meta-line">Architectural · Specifier · Class A · Contract<span class="num" id="heroNum"></span></div>
- <a class="enter" href="#shop">Enter <svg viewBox="0 0 24 12" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M0 6h22M16 1l6 5-6 5"/></svg></a>
-</section>
-
-<section class="section" id="shop">
- <div class="section-header">
- <div>
- <div class="section-eyebrow">The Collection</div>
- <h2 class="section-title"><span class="accent" id="totalCount">—</span> Patterns.</h2>
- </div>
- <div class="section-meta">Architectural · Specifier · Class A · Contract</div>
- </div>
-
- <div class="filters" id="facets">
- <button class="chip active" data-facet="all">All</button>
- </div>
-
- <div class="density">
- <label>Sort</label>
- <select id="sortSelect" aria-label="Sort products" style="background:transparent;color:inherit;border:1px solid var(--line,rgba(255,255,255,.2));font:inherit;font-size:11px;letter-spacing:.10em;text-transform:uppercase;padding:4px 8px;cursor:pointer;outline:none;margin-right:14px">
- <option value="newest">Newest</option>
- <option value="color">Color</option>
- <option value="style">Style</option>
- <option value="sku">SKU A→Z</option>
- <option value="title">Title A→Z</option>
- <option value="price-asc">Price ↑</option>
- <option value="price-desc">Price ↓</option>
- </select>
- <label>Grid</label>
- <input type="range" id="densitySlider" min="4" max="12" step="1" value="6" aria-label="Grid columns">
- <span class="ct" id="densityLabel">6 cols</span>
- <div class="search">
- <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-5.5-5.5"/></svg>
- <input type="text" id="searchInput" placeholder="Search by pattern, color…" autocomplete="off">
- </div>
- </div>
-
- <div class="stat-line" id="statLine">Loading…</div>
- <div class="grid" id="grid"></div>
- <div class="loading" id="loading">Loading more…</div>
- <div class="sentinel" id="sentinel"></div>
-</section>
-
-<footer>
- <div class="footer-grid">
- <div>
- <div class="footer-brand">ARCHITECTURAL</div>
- <p class="footer-text">Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.</p>
- <p class="footer-text" style="margin-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;color:var(--paper);opacity:0.7"><a href="/about" style="color:inherit;text-decoration:none;border-bottom:1px solid var(--accent)">About →</a></p>
- </div>
- <div class="footer-col">
- <h4>Aesthetic</h4>
- <div id="footerFacets"></div>
- </div>
- <div class="footer-col">
- <h4>Trade</h4>
- <button onclick="dwmOpen('Inquiry')">Project Inquiry</button>
- <button onclick="dwmOpen('Sample')">Request Sample</button>
- <button onclick="dwmOpen('Contact')">Contact</button>
- </div>
- </div>
- <div class="footer-bottom">
- <span>architecturalwallcoverings.com · Studio Toten</span>
- <span><a href="mailto:info@architecturalwallcoverings.com" style="color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px">info@architecturalwallcoverings.com</a></span>
- <span id="footerStat"></span>
- </div>
-</footer>
-
-<script>
-// mini-constellation — 43 niche-stars, current site highlighted in gold
-(function(){
- const SLUG = "architecturalwallcoverings";
- const NICHES = [
- ['silkwallpaper','Silk','mat'],['silkwallcoverings','Silk W/C','mat'],['linenwallpaper','Linen','mat'],
- ['jutewallpaper','Jute','mat'],['raffiawallcoverings','Raffia W/C','mat'],['raffiawalls','Raffia Walls','mat'],
- ['corkwallcovering','Cork','mat'],['fabricwallpaper','Fabric','mat'],['textilewallpaper','Textile','mat'],
- ['metallicwallpaper','Metallic','mat'],['silverleafwallpaper','Silver Leaf','mat'],['vinylwallpaper','Vinyl','mat'],
- ['micawallpaper','Mica','mat'],['madagascarwallpaper','Madagascar','mat'],['mylarwallpaper','Mylar','mat'],
- ['suedewallpaper','Suede','mat'],
- ['1800swallpaper','1800s','dec'],['1890swallpaper','1890s','dec'],['1900swallpaper','1900s','dec'],
- ['1920swallpaper','1920s','dec'],['1930swallpaper','1930s','dec'],['1940swallpaper','1940s','dec'],
- ['1950swallpaper','1950s','dec'],['1960swallpaper','1960s','dec'],['1970swallpaper','1970s','dec'],
- ['1980swallpaper','1980s','dec'],['retrowalls','Retro','dec'],['wallpapersback','W. Back','dec'],
- ['agedwallpaper','Aged','cra'],['handcraftedwallpaper','Handcrafted','cra'],['museumwallpaper','Museum','cra'],
- ['restorationwallpaper','Restoration','cra'],['pastelwallpaper','Pastel','cra'],['glitterwalls','Glitter','cra'],
- ['greenwallcoverings','Green','cra'],['naturalwallcoverings','Natural','cra'],['saloonwallpaper','Saloon','cra'],
- ['contractwallpaper','Contract','use'],['hotelwallcoverings','Hotel','use'],['hospitalitywallpaper','Hospitality','use'],
- ['healthcarewallpaper','Healthcare','use'],['restaurantwallpaper','Restaurant','use'],['architecturalwallcoverings','Architectural','use']
- ];
- const COLOR = { mat:'#c9b687', dec:'#b86a4a', cra:'#6b8e6f', use:'#4a6b8e' };
- const W = 1080, H = 200, BANDS = ['mat','dec','cra','use'];
- const groups = { mat:[], dec:[], cra:[], use:[] };
- for (const n of NICHES) groups[n[2]].push(n);
- const svg = document.getElementById('miniConst');
- if (!svg) return;
- const bandW = W / BANDS.length;
- let nodes = '';
- BANDS.forEach((band, bi) => {
- const list = groups[band];
- const cx = bi * bandW + bandW / 2;
- list.forEach((n, i) => {
- const t = list.length === 1 ? 0.5 : i / (list.length - 1);
- // deterministic jitter per slug
- let h = 0; for (let k = 0; k < n[0].length; k++) h = (h * 31 + n[0].charCodeAt(k)) | 0;
- const jx = ((h & 0xff) / 255 - 0.5) * (bandW * 0.5);
- const jy = (((h >> 8) & 0xff) / 255 - 0.5) * 6; // tightened from 14 → 6 to prevent same-band collisions (16 mat nodes / 144px = 9px spacing)
- const x = cx + jx, y = 28 + t * (H - 56) + jy;
- const isCurrent = n[0] === SLUG;
- const r = isCurrent ? 8 : 4;
- const op = isCurrent ? 1 : 0.55;
- nodes += `<g class="mc-node" data-slug="${n[0]}" data-label="${n[1]}" style="cursor:pointer">
- <circle cx="${x}" cy="${y}" r="${r}" fill="url(#dna-${band})" fill-opacity="${op}" stroke="${COLOR[band]}" stroke-opacity="${isCurrent?1:0.7}" stroke-width="${isCurrent?2:1}">
- <title>${n[1]} — ${n[0]}.com</title>
- </circle>
- ${isCurrent ? `<circle cx="${x}" cy="${y}" r="${r+5}" fill="none" stroke="${COLOR[band]}" stroke-opacity="0.4" stroke-width="1"><animate attributeName="r" values="${r+5};${r+12};${r+5}" dur="2.4s" repeatCount="indefinite"/><animate attributeName="stroke-opacity" values="0.4;0;0.4" dur="2.4s" repeatCount="indefinite"/></circle>` : ''}
- </g>`;
- });
- });
- // append nodes after defs
- svg.insertAdjacentHTML('beforeend', nodes);
- svg.querySelectorAll('.mc-node').forEach(n => {
- n.addEventListener('mouseenter', () => n.querySelector('circle').setAttribute('fill-opacity', '1'));
- n.addEventListener('mouseleave', e => {
- const isCurrent = n.dataset.slug === SLUG;
- n.querySelector('circle').setAttribute('fill-opacity', isCurrent ? '1' : '0.55');
- });
- n.addEventListener('click', () => window.open('https://' + n.dataset.slug + '.com', '_blank'));
- });
-})();
-</script>
-
-<script>
-const state = { q:'', facet:'all', page:1, pages:1, total:0, loading:false, exhausted:false };
-const LABELS = {"all":"All"};
-
-function escAttr(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[c])); }
-// Image-URL allowlist: only DW Shopify CDN + designerwallcoverings.com (defends against XSS via crafted products.json)
-function safeImg(u) { return /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(u || '') ? u : '/hero-bg.jpg'; }
-function cardHTML(p) {
- const eager = state.page === 1;
- return '<img loading="' + (eager ? 'eager' : 'lazy') + '"' + (eager ? ' fetchpriority="high"' : '') + ' src="' + escAttr(safeImg(p.image_url)) + '" alt="' + escAttr(p.title) + '">'
- + '<div class="overlay">'
- + '<div class="pat">' + escAttr(p.pattern_name || p.title) + '</div>'
- + '<div class="ven">' + escAttr((p.vendor || '').replace(/-/g, ' ')) + '</div>'
- + '<div class="actions">'
- + '<button class="sample-btn" onclick="event.stopPropagation();dwmOpen(\'Sample\',' + JSON.stringify({sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}).replace(/"/g,'"') + ')">Sample</button>'
- + '</div></div>';
-}
-
-async function loadFacets() {
- let f;
- try {
- const r = await fetch('/api/facets');
- if (!r.ok) throw new Error('HTTP ' + r.status);
- f = await r.json();
- } catch (e) { console.error('loadFacets failed:', e); return; }
- const el = document.getElementById('facets');
- for (const [k, v] of Object.entries(f.aesthetics).sort((a,b) => b[1] - a[1])) {
- const b = document.createElement('button');
- b.className = 'chip'; b.dataset.facet = k;
- b.innerHTML = (LABELS[k] || k) + ' <span style="opacity:.55;font-weight:500;margin-left:4px">' + v + '</span>';
- el.appendChild(b);
- }
- el.addEventListener('click', e => {
- if (e.target.tagName !== 'BUTTON') return;
- document.querySelectorAll('#facets button').forEach(b => b.classList.remove('active'));
- e.target.classList.add('active');
- state.facet = e.target.dataset.facet;
- resetGrid();
- });
- document.getElementById('totalCount').textContent = f.total;
- document.getElementById('footerStat').textContent = f.total + ' patterns · live archive';
- // Footer aesthetic links
- const footerEl = document.getElementById('footerFacets');
- for (const [k] of Object.entries(f.aesthetics)) {
- const b = document.createElement('button');
- b.textContent = LABELS[k] || k;
- b.onclick = () => { state.facet = k; resetGrid(); document.querySelectorAll('#facets button').forEach(x => x.classList.toggle('active', x.dataset.facet === k)); document.getElementById('shop').scrollIntoView({behavior:'smooth'}); };
- footerEl.appendChild(b);
- }
-}
-
-function resetGrid() {
- state.page = 1; state.exhausted = false;
- document.getElementById('grid').innerHTML = '';
- document.getElementById('loading').textContent = 'Loading…';
- loadGridPage();
-}
-
-async function loadGridPage() {
- if (state.loading || state.exhausted) return;
- state.loading = true;
- const params = new URLSearchParams({ page:state.page, limit:24 });
- if (state.q) params.set('q', state.q);
- if (state.facet !== 'all') params.set('aesthetic', state.facet);
- let data;
- try {
- const r = await fetch('/api/products?' + params);
- if (!r.ok) throw new Error('HTTP ' + r.status);
- data = await r.json();
- } catch (e) {
- console.error('loadGridPage failed:', e);
- document.getElementById('loading').textContent = '— offline — refresh to retry —';
- state.loading = false;
- return;
- }
- state.total = data.total; state.pages = data.pages;
-
- if (state.page === 1) {
- document.getElementById('statLine').textContent = data.total + ' patterns · ' + (state.facet === 'all' ? 'all aesthetics' : (LABELS[state.facet] || state.facet)) + (state.q ? ' · matching "' + state.q + '"' : '');
- }
- const grid = document.getElementById('grid');
- for (const p of data.items) {
- const a = document.createElement('a');
- a.className = 'card'; a.href = '#'; a.onclick = (e) => { e.preventDefault(); dwmOpen('Sample',{sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}); };
- a.innerHTML = cardHTML(p);
- grid.appendChild(a);
- }
- if (state.page >= state.pages || data.items.length === 0) {
- state.exhausted = true;
- document.getElementById('loading').textContent = state.total > 0 ? '— end of archive · ' + state.total + ' patterns —' : '';
- } else state.page++;
- state.loading = false;
-}
-
-const io = new IntersectionObserver(es => { for (const e of es) if (e.isIntersecting) loadGridPage(); }, { rootMargin:'600px 0px' });
-io.observe(document.getElementById('sentinel'));
-
-document.getElementById('searchInput').addEventListener('input', e => {
- state.q = e.target.value.trim();
- clearTimeout(window._t);
- window._t = setTimeout(resetGrid, 220);
-});
-
-// Density slider
-const slider = document.getElementById('densitySlider');
-const dlabel = document.getElementById('densityLabel');
-function setDensity(n) {
- document.documentElement.style.setProperty('--cols', n);
- dlabel.textContent = n + ' cols';
- try { localStorage.setItem('arch_theme_density', n); } catch(e){}
-}
-slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
-const savedDensity = parseInt(localStorage.getItem('arch_theme_density') || '6');
-if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
-
-// Theme toggle
-const tb = document.getElementById('theme-toggle');
-function setTheme(t){ document.documentElement.dataset.theme = t; try { localStorage.setItem('arch_theme', t); } catch(e){} tb.textContent = t === 'dark' ? '☾' : '☀'; }
-setTheme(document.documentElement.dataset.theme || 'light');
-tb.addEventListener('click', () => setTheme(document.documentElement.dataset.theme === 'dark' ? 'light' : 'dark'));
-
-loadFacets();
-loadGridPage();
-</script>
-<!-- ============================================================
- DW UNIVERSAL CONTACT MODULE — fashion-house UX
- Inject before </body> in every DW-family sister site.
- Self-contained: CSS + 4 modals + JS submission handlers.
- Uses host site's CSS vars (--bg, --fg, --gold, --rule).
- ============================================================ -->
-<style>
- /* === MODAL BASE === */
- .dwm{position:fixed;inset:0;background:rgba(0,0,0,0.78);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;overflow-y:auto}
- .dwm.open{display:flex}
- .dwm-box{background:var(--bg);border:1px solid var(--rule);max-width:520px;width:100%;padding:36px 32px;position:relative;max-height:90vh;overflow-y:auto;animation:dwm-in 0.25s ease}
- @keyframes dwm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
- .dwm-box h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;font-size:32px;line-height:1.05;margin-bottom:6px;color:var(--fg);letter-spacing:-0.01em}
- .dwm-box .sub{color:var(--muted);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
- .dwm-close{position:absolute;top:18px;right:18px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;width:32px;height:32px;line-height:1;padding:0}
- .dwm-close:hover{color:var(--gold)}
- .dwm-preview{display:flex;gap:14px;align-items:center;padding:12px;background:var(--bg-soft);margin-bottom:18px}
- .dwm-preview img{width:64px;height:64px;object-fit:cover}
- .dwm-preview .pn{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;line-height:1.2;color:var(--fg)}
- .dwm-preview .pc{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
- .dwm-field{margin-bottom:14px}
- .dwm-field label{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
- .dwm-field input,.dwm-field textarea,.dwm-field select{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:8px 4px;font-size:14px;font-family:inherit;color:var(--fg);outline:none;transition:border-color 0.2s}
- .dwm-field input:focus,.dwm-field textarea:focus{border-bottom-color:var(--gold)}
- .dwm-field textarea{min-height:60px;resize:vertical}
- .dwm-submit{background:transparent;color:var(--muted, #c9b89e);border:1px solid var(--muted, #c9b89e);padding:14px 28px;font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:700;cursor:pointer;width:100%;margin-top:8px;transition:background 0.15s, color 0.15s}
- .dwm-submit:hover{background:var(--muted, #c9b89e);color:var(--bg, #000)}
-
- .dwm-submit:disabled{opacity:0.5;cursor:default}
- .dwm-status{margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;display:none}
- .dwm-status.ok{color:var(--sage);display:block}
- .dwm-status.err{color:#e08070;display:block}
- /* contact-options */
- .dwm-options{display:flex;flex-direction:column;gap:10px}
- .dwm-option{display:flex;align-items:center;gap:14px;padding:18px 20px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;transition:all 0.2s;text-align:left;width:100%}
- .dwm-option:hover{border-color:var(--gold);color:var(--gold)}
- .dwm-option svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}
- .dwm-option .lbl{flex:1;display:block}
- .dwm-option .val{display:block;font-size:10px;letter-spacing:0.14em;text-transform:none;font-weight:500;opacity:0.65;margin-top:4px}
-
-/* graphics-loop pass 5: serif hero typography + nav legibility */
-.cinema h1, h1.headline { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; letter-spacing: -0.01em }
-.h-link { font-size: 13px; letter-spacing: 0.06em }
-</style>
-
-<!-- Contact options modal -->
-<div class="dwm" id="dwmContact" onclick="if(event.target===this)dwmClose('Contact')">
- <div class="dwm-box" style="max-width:440px">
- <button class="dwm-close" onclick="dwmClose('Contact')" aria-label="Close">×</button>
- <h3>Contact</h3>
- <p class="sub" id="dwmContactSub">Three ways to reach us</p>
- <div class="dwm-options">
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Inquiry')">
- <svg viewBox="0 0 24 24"><path d="M4 4h16v12H7l-3 3z"/></svg>
- <span class="lbl">Send an Inquiry<span class="val">Project name · scope · all the details</span></span>
- </button>
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Sample')">
- <svg viewBox="0 0 24 24"><rect x="4" y="6" width="16" height="14"/><path d="M4 10h16M9 6V3h6v3"/></svg>
- <span class="lbl">Request a Sample<span class="val">Memo sample · ships free · 3–5 business days</span></span>
- </button>
- <a class="dwm-option" id="dwmContactEmailLink" href="mailto:info@architecturalwallcoverings.com">
- <svg viewBox="0 0 24 24"><path d="M3 6h18v12H3z"/><path d="M3 6l9 7 9-7"/></svg>
- <span class="lbl">Email Us<span class="val" id="dwmContactEmailLabel">info@architecturalwallcoverings.com</span></span>
- </a>
- </div>
- </div>
-</div>
-
-<!-- Inquiry modal -->
-<div class="dwm" id="dwmInquiry" onclick="if(event.target===this)dwmClose('Inquiry')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Inquiry')" aria-label="Close">×</button>
- <h3>Project Inquiry</h3>
- <p class="sub">We'll respond within one business day</p>
- <form id="dwmInquiryForm" onsubmit="return dwmSubmit(event,'inquiry')">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Phone</label><input type="tel" name="phone"></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Project Name</label><input type="text" name="projectName" required></div>
- <div class="dwm-field"><label>Project Scope</label><textarea name="projectScope" placeholder="Square footage · room count · timeline" required></textarea></div>
- <div class="dwm-field"><label>Additional Information</label><textarea name="message" placeholder="Patterns of interest, finish preferences, budget"></textarea></div>
- <button type="submit" class="dwm-submit">Send Inquiry</button>
- <div class="dwm-status" id="dwmInquiryStatus"></div>
- </form>
- </div>
-</div>
-
-<!-- Sample-request modal -->
-<div class="dwm" id="dwmSample" onclick="if(event.target===this)dwmClose('Sample')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Sample')" aria-label="Close">×</button>
- <h3>Request a Sample</h3>
- <p class="sub">Memo sample · ships free · 3–5 business days</p>
- <div class="dwm-preview" id="dwmSamplePreview" style="display:none">
- <img id="dwmSampleImg" src="" alt="">
- <div><div class="pn" id="dwmSampleName"></div><div class="pc" id="dwmSampleSku"></div></div>
- </div>
- <form id="dwmSampleForm" onsubmit="return dwmSubmit(event,'sample')">
- <input type="hidden" name="sku" id="dwmSampleSkuInput">
- <input type="hidden" name="title" id="dwmSampleTitleInput">
- <input type="hidden" name="image_url" id="dwmSampleImageInput">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Shipping Address</label><input type="text" name="address" placeholder="Street" required></div>
- <div class="dwm-field" style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px">
- <input type="text" name="city" placeholder="City" required>
- <input type="text" name="state" placeholder="State" required>
- <input type="text" name="zip" placeholder="ZIP" required>
- </div>
- <div class="dwm-field"><label>Notes (optional)</label><textarea name="message" placeholder="Project, sq.ft., timing"></textarea></div>
- <button type="submit" class="dwm-submit">Send Sample Request</button>
- <div class="dwm-status" id="dwmSampleStatus"></div>
- </form>
- </div>
-</div>
-
-<script>
- // Universal modal control
- function dwmOpen(name, opts){
- document.getElementById('dwm' + name).classList.add('open');
- document.body.style.overflow = 'hidden';
- if (name === 'Sample' && opts) {
- document.getElementById('dwmSamplePreview').style.display = 'flex';
- document.getElementById('dwmSampleImg').src = opts.image_url || '';
- document.getElementById('dwmSampleName').textContent = opts.title || '';
- document.getElementById('dwmSampleSku').textContent = opts.sku || '';
- document.getElementById('dwmSampleSkuInput').value = opts.sku || '';
- document.getElementById('dwmSampleTitleInput').value = opts.title || '';
- document.getElementById('dwmSampleImageInput').value = opts.image_url || '';
- } else if (name === 'Sample') {
- document.getElementById('dwmSamplePreview').style.display = 'none';
- document.getElementById('dwmSampleSkuInput').value = '';
- document.getElementById('dwmSampleTitleInput').value = '';
- document.getElementById('dwmSampleImageInput').value = '';
- }
- }
- function dwmClose(name){ document.getElementById('dwm'+name).classList.remove('open'); document.body.style.overflow=''; }
-
- // Universal form submit — POSTs to /api/send-{kind}
- async function dwmSubmit(e, kind) {
- e.preventDefault();
- const form = e.target;
- const data = Object.fromEntries(new FormData(form).entries());
- const btn = form.querySelector('.dwm-submit');
- const status = form.querySelector('.dwm-status');
- btn.disabled = true; const orig = btn.textContent; btn.textContent = 'Sending…';
- status.className = 'dwm-status';
- try {
- const r = await fetch('/api/send-' + kind, { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
- if (!r.ok) throw new Error('HTTP '+r.status);
- const j = await r.json();
- status.textContent = kind === 'sample' ? 'Sample request sent — ships within 3–5 business days' : 'Inquiry sent — we respond within 1 business day';
- status.className = 'dwm-status ok';
- btn.textContent = 'Sent ✓';
- setTimeout(() => { dwmClose(kind === 'sample' ? 'Sample' : 'Inquiry'); btn.disabled = false; btn.textContent = orig; status.className = 'dwm-status'; form.reset(); }, 2800);
- } catch (err) {
- status.textContent = 'Send failed — please email info@designerwallcoverings.com';
- status.className = 'dwm-status err';
- btn.disabled = false; btn.textContent = orig;
- }
- return false;
- }
-
- // Wire up "Memo samples ship free" badge in hero to open sample modal directly
- document.querySelectorAll('.hero .badge, [data-open-sample]').forEach(el => {
- el.style.cursor = 'pointer';
- el.addEventListener('click', () => dwmOpen('Sample'));
- });
-
- // Wire nav "Trade" link to inquiry modal
- document.querySelectorAll('nav a[href*="designerwallcoverings.com"]').forEach(a => {
- a.removeAttribute('target');
- a.removeAttribute('href');
- a.style.cursor = 'pointer';
- a.addEventListener('click', e => { e.preventDefault(); dwmOpen('Contact'); });
- });
-
- // Override product card clicks — open Sample modal pre-filled instead of redirecting to DW
- document.addEventListener('click', e => {
- const card = e.target.closest('.card, .rail-card');
- if (!card) return;
- if (card.tagName === 'A' && (card.getAttribute('href') || '').startsWith('/sample/')) {
- e.preventDefault();
- const img = card.querySelector('img');
- const pat = card.querySelector('.pat');
- const sku = card.getAttribute('href').replace('/sample/', '');
- dwmOpen('Sample', {
- sku,
- title: pat ? pat.textContent.trim() : '',
- image_url: img ? img.src : ''
- });
- }
- }, true);
-// DW STANDARD: hero pulls from products.json[0].image_url so dw-collections-viewer
-// drag-drop / hero-pin updates the live front page on next deploy.
-// Always upgrades to the largest Shopify variant (strips _NxN size suffix) so
-// the full-page hero stays sharp.
-(async function hydrateHero() {
- try {
- const r = await fetch('/api/products?limit=1');
- if (!r.ok) return;
- const d = await r.json();
- let url = d.items && d.items[0] && d.items[0].image_url;
- if (!url) return;
- if (/^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(url)) {
- url = url.replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- const bg = document.getElementById('heroBg');
- if (bg) bg.style.backgroundImage = "url('" + url + "')";
- }
- } catch(e){}
-})();
-
-
-// DW STANDARD sort-select wire-up (added by fleet patcher)
-(function(){
- const sortSel = document.getElementById('sortSelect');
- if (!sortSel) return;
- const KEY = location.hostname.replace(/\./g, '_') + '_sort';
- const saved = localStorage.getItem(KEY);
- if (saved) { try { sortSel.value = saved; } catch(e){} }
- if (typeof state !== 'undefined') state.sort = sortSel.value;
- sortSel.addEventListener('change', e => {
- const v = e.target.value;
- try { localStorage.setItem(KEY, v); } catch(e){}
- if (typeof state !== 'undefined') state.sort = v;
- if (typeof resetGrid === 'function') resetGrid();
- else location.reload();
- });
-})();
-</script>
-
-</body>
-</html>
diff --git a/public/index.html.pre-sort-frontend b/public/index.html.pre-sort-frontend
deleted file mode 100644
index 925703c..0000000
--- a/public/index.html.pre-sort-frontend
+++ /dev/null
@@ -1,857 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
- <link rel="icon" type="image/svg+xml" href="/favicon.svg">
-
-<meta charset="utf-8">
-<!-- Google tag (gtag.js) -->
-<script async src="https://www.googletagmanager.com/gtag/js?id=G-PN839G9FD8"></script>
-<script>
- window.dataLayer = window.dataLayer || [];
- function gtag(){dataLayer.push(arguments);}
- gtag('js', new Date());
- gtag('config', 'G-PN839G9FD8');
-</script>
-
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>Studio Toten — architectural. Useful.</title>
-<meta name="description" content="Studio Toten is a curated atelier dedicated entirely to architectural. We do one thing — and we do it carefully.">
-<meta name="theme-color" content="#F5F2ED">
-<link rel="canonical" href="https://architecturalwallcoverings.com/">
-<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&display=swap" rel="stylesheet">
-<link rel="preload" as="image" href="/hero-bg.jpg" fetchpriority="high">
-<script type="application/ld+json">
-{
- "@context": "https://schema.org",
- "@type": "Organization",
- "name": "Studio Toten",
- "url": "https://architecturalwallcoverings.com/",
- "email": "info@architecturalwallcoverings.com"
-}
-</script>
-<script src="/zd-loader.js" defer></script>
-<style>
-:root {
- --bg: #F5F2ED;
- --paper: #1A1A1A;
- --muted: #8B7866;
- --line: #D5CFC4;
- --accent: #1A1A1A;
- --bg-soft: #D5CFC4;
- --cols: 6;
-}
-html[data-theme="dark"] {
- --bg: #1a1410;
- --paper: #F5F2ED;
- --muted: #C9B89E;
- --line: rgba(255,254,250,0.12);
- --accent: #1A1A1A;
- --bg-soft: #2a1f15;
-}
-* { margin:0; padding:0; box-sizing:border-box }
-html { scroll-behavior:smooth }
-body { font-family:'Inter', sans-serif; color:var(--paper); -webkit-font-smoothing:antialiased; background:var(--bg); min-height:100vh; overflow-x:hidden }
-/* DW-FASHION-TEMPLATE-OVERRIDE */
-.section-title .accent, .footer-brand, .center-mark, h1, h2, h3 { font-family:'Inter', Georgia, serif !important; font-weight:400 !important; }
-
-/* ===== Auto-hide header ===== */
-header { position:fixed; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:22px 32px; z-index:100; background:rgba(0,0,0,0.55); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:transform .3s }
-.h-link { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); text-decoration:none; cursor:pointer; background:transparent; border:0 }
-.h-link:hover { opacity:0.7 }
-.h-icon { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }
-
-/* ===== Cinema hero ===== */
-.cinema { position:relative; height:100vh; width:100%; overflow:hidden }
-.cinema-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-image:url('/hero-bg.jpg') }
-.cinema-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.75) 100%) }
-.corner-mark { position:absolute; top:24px; left:32px; font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,0.55), 0 0 1px rgba(0,0,0,0.4); z-index:5 }
-.corner-mark::before { content:"◆ "; margin-right:6px }
-.center-mark { position:absolute; top:clamp(80px,12vh,140px); left:50%; transform:translateX(-50%); font-size:clamp(28px,4vw,56px); font-weight:500; letter-spacing:0.18em; text-transform:uppercase; text-align:center; color:#fff; text-shadow:0 2px 8px rgba(0,0,0,0.65), 0 0 1px rgba(0,0,0,0.5); z-index:5 }
-.center-mark .tm { font-size:14px; vertical-align:super; opacity:0.7; margin-left:0.2em }
-.center-mark .sub { display:block; font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400; font-size:0.4em; letter-spacing:0.04em; text-transform:none; margin-top:14px; opacity:0.85 }
-.meta-line { position:absolute; bottom:32px; left:32px; font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:700; color:#fff; z-index:5; opacity:0.85 }
-.meta-line .num { font-size:12px; display:block; margin-top:4px; letter-spacing:0.05em }
-.enter { position:absolute; bottom:32px; right:32px; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:0.36em; text-transform:uppercase; font-weight:700; color:#fff; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #fff; transition:gap 0.25s; z-index:5 }
-.enter:hover { gap:22px }
-.enter svg { width:24px; height:12px }
-
-/* ===== Section ===== */
-.section { padding:96px 32px }
-.section-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--line) }
-.section-title { font-size:clamp(36px,5vw,64px); font-weight:300; letter-spacing:-0.02em; line-height:1 }
-.section-title .accent { color: var(--accent); font-family:'Playfair Display', Georgia, serif; font-style:italic; font-weight:400 }
-.section-eyebrow { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:16px }
-.section-meta { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--muted); text-align:right; line-height:1.6 }
-
-/* ===== Filter bar ===== */
-.filters { display:flex; gap:8px; align-items:center; margin-bottom:18px; flex-wrap:wrap }
-.chip { padding:8px 16px; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; color:var(--paper); background:transparent; border:1px solid var(--line); cursor:pointer; transition:all 0.2s; font-family:inherit }
-.chip:hover { border-color:var(--paper) }
-.chip.active { background:var(--paper); color:var(--bg); border-color:var(--paper) }
-.search { flex:0 1 280px; margin-left:auto; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding:6px 0 }
-.search input { flex:1; background:transparent; border:0; color:var(--paper); font-family:inherit; font-size:13px; outline:none; letter-spacing:0.04em }
-.search input::placeholder { color:var(--muted) }
-.search svg { width:16px; height:16px; stroke:var(--muted); fill:none; stroke-width:1.5 }
-
-/* ===== Grid-density slider ===== */
-.density { display:flex; align-items:center; gap:14px; padding:6px 0; margin-bottom:24px }
-.density label { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--muted) }
-.density input[type=range] { flex:1; max-width:240px; -webkit-appearance:none; appearance:none; height:1px; background:var(--line); outline:none }
-.density input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50% }
-.density input[type=range]::-moz-range-thumb { width:14px; height:14px; background:var(--accent); cursor:pointer; border-radius:50%; border:0 }
-.density .ct { font-size:11px; color:var(--muted); letter-spacing:0.18em; text-transform:uppercase; font-weight:600; min-width:80px }
-
-/* ===== Stats line ===== */
-.stat-line { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:24px }
-
-/* ===== Product grid (novasuede pattern: flush grid + slide-up overlay) ===== */
-.grid { display:grid; grid-template-columns:repeat(var(--cols), 1fr); gap:0 }
-.card { position:relative; aspect-ratio:1/1.15; cursor:pointer; overflow:hidden; border:1px solid var(--bg); transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1); background:var(--bg-soft) }
-.card:hover { transform:scale(1.04); z-index:5 }
-.card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease }
-.card .overlay { position:absolute; left:0; right:0; bottom:0; padding:20px 16px 14px; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%); transform:translateY(48%); opacity:0.85; transition:transform 0.3s ease, opacity 0.3s ease }
-.card:hover .overlay { transform:translateY(0); opacity:1 }
-.card .pat { font-size:13px; font-weight:600; letter-spacing:0.02em; color:#fff; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
-.card .ven { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:#fff; opacity:0.7; font-weight:500; margin-top:4px }
-.card .actions { margin-top:10px; display:flex; gap:6px }
-.card .sample-btn { flex:1; padding:7px 10px; background:#fff; color:#000; font-family:inherit; font-size:10px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; border:0; cursor:pointer; text-align:center; transition:all 0.2s }
-.card .sample-btn:hover { background:var(--accent); color:#fff }
-
-@media (max-width:1024px) { .grid { grid-template-columns:repeat(min(var(--cols), 4), 1fr) } }
-@media (max-width:720px) { .grid { grid-template-columns:repeat(2, 1fr) } .density { display:none } }
-
-.sentinel { height:1px }
-.loading { text-align:center; color:var(--muted); padding:32px; font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700 }
-
-/* ===== Footer ===== */
-footer { padding:64px 32px 32px; border-top:1px solid var(--line); margin-top:32px }
-.footer-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; margin-bottom:48px }
-.footer-brand { font-size:24px; font-weight:300; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:12px }
-.footer-text { font-size:13px; line-height:1.6; color:var(--muted); max-width:380px }
-.footer-col h4 { font-size:10px; letter-spacing:0.32em; text-transform:uppercase; font-weight:700; color:var(--paper); margin-bottom:18px }
-.footer-col a { display:block; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:8px; transition:color 0.2s; cursor:pointer; background:transparent; border:0; font-family:inherit; padding:0; text-align:left }
-.footer-col a:hover { color:var(--accent) }
-.footer-bottom { max-width:1400px; margin:0 auto; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted) }
-
-@media (max-width:720px) {
- .corner-mark, .meta-line, .enter { font-size:10px }
- .center-mark { font-size:24px; letter-spacing:0.12em; top:clamp(60px,9vh,90px) }
- .section, footer { padding-left:20px; padding-right:20px }
- .footer-grid { grid-template-columns:1fr; gap:32px }
- .search { margin-left:0; flex:1 1 100% }
-}
-
-.theme-toggle { background:transparent; border:1px solid var(--line); width:32px; height:32px; cursor:pointer; color:var(--paper); display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; transition:all .15s; padding:0 }
-.theme-toggle:hover { border-color:var(--accent); color:var(--accent) }
-
-/* ===== WCAG 2.4.7 — keyboard focus indicators ===== */
-/* Strictly :focus-visible so mouse clicks do NOT show the ring */
-a:focus-visible,
-button:focus-visible,
-input:focus-visible,
-select:focus-visible,
-textarea:focus-visible,
-[tabindex]:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
-}
-</style>
-<script>
-(function(){ try { var t = localStorage.getItem('arch_theme') || 'light'; document.documentElement.dataset.theme = t; } catch(e){} })();
-</script>
-<link rel="preconnect" href="https://fonts.googleapis.com">
-<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
-<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap">
-
-<meta property="og:type" content="website">
-<meta property="og:url" content="https://architecturalwallcoverings.com/">
-<meta property="og:title" content="Architectural Wallcoverings">
-<meta property="og:description" content="Architectural Wallcoverings — Class A specifier-grade architectural wallcoverings.">
-<meta property="og:image" content="https://architecturalwallcoverings.com/hero-bg.jpg">
-<meta property="og:site_name" content="Architectural Wallcoverings">
-<meta property="article:publisher" content="https://www.facebook.com/SteveAbramsDesigns.DesignerWallcoverings">
-<meta name="twitter:card" content="summary_large_image">
-<meta name="twitter:title" content="Architectural Wallcoverings">
-<meta name="twitter:description" content="Architectural Wallcoverings — Class A specifier-grade architectural wallcoverings.">
-<meta name="twitter:image" content="https://architecturalwallcoverings.com/hero-bg.jpg">
-<!-- graphics-loop pass 13: footer + fb -->
-</head>
-<body>
-<style id="ns-header-modal-styles">
- .ns-header { position: sticky; top: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; padding: 18px 36px; background: rgba(10,10,10,0.92) !important; backdrop-filter: blur(8px); border-bottom: 1px solid rgba(245,241,232,0.06); }
- .ns-brand { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; }
- .ns-dot { width: 28px; height: 28px; border-radius: 50%; background: var(--ns-dot-bg, radial-gradient(circle at 35% 35%, #b66a4d 0%, #8a4a30 60%, #5a2d1c 100%)); box-shadow: 0 0 0 1px rgba(245,241,232,0.10), 0 2px 12px rgba(180,90,60,0.30); flex-shrink: 0; }
- .ns-name { font-family: -apple-system, "SF Pro Display", "Helvetica Neue", system-ui, sans-serif; font-size: 18px !important; font-weight: 300 !important; letter-spacing: 0.02em !important; color: #f5f1e8 !important; text-transform: none !important; margin: 0 !important; }
- .ns-name sup { font-size: 0.55em; font-weight: 300; margin-left: 1px; }
- .ns-nav a, .ns-nav button { font-family: -apple-system, "SF Pro Text", system-ui, sans-serif; font-size: 15px !important; font-weight: 400 !important; color: #f5f1e8 !important; text-decoration: none !important; background: none !important; border: 0 !important; cursor: pointer; transition: color 200ms; letter-spacing: 0 !important; text-transform: none !important; }
- .ns-nav a:hover, .ns-nav button:hover { color: #ffffff !important; }
- /* All widths: hide nav by default, hamburger always visible on right, nav opens as right-anchored dropdown panel */
- .ns-nav {
- display: none !important;
- position: absolute; top: 100%; right: 18px;
- flex-direction: column; align-items: stretch; gap: 0;
- background: rgba(10,10,10,0.96); backdrop-filter: blur(10px);
- border: 1px solid rgba(245,241,232,0.10); border-top: 0;
- min-width: 220px; padding: 10px 0; margin: 0;
- box-shadow: 0 16px 40px rgba(0,0,0,0.55);
- z-index: 150;
- }
- .ns-nav.open { display: flex !important; }
- .ns-nav a, .ns-nav button {
- padding: 12px 22px !important;
- border-bottom: 1px solid rgba(245,241,232,0.06);
- width: 100%; text-align: left;
- }
- .ns-nav a:last-child, .ns-nav button:last-child { border-bottom: 0; }
- .ns-nav a:hover, .ns-nav button:hover { background: rgba(245,241,232,0.06) !important; color: #ffffff !important; }
- @media (max-width: 480px) { .ns-nav { right: 12px; min-width: 200px; } }
- .ns-header .mobile-toggle { display: flex !important; align-items: center; justify-content: center; width: 36px; height: 36px; background: transparent; border: 0; cursor: pointer; padding: 0; gap: 4px; flex-direction: column; }
- .ns-header .mobile-toggle span { display: block; width: 22px; height: 1.5px; background: #f5f1e8; transition: transform 200ms, opacity 200ms; }
- .ns-header .mobile-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(5px) rotate(45deg); }
- .ns-header .mobile-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
- .ns-header .mobile-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }
- </style>
-<style id="ns-gold-kill">
- /* novasuede: kill gold-solid fills, off-white instead. Edge color stays gold. */
- .new-badge, .new-arrivals-pill,
- .color-filter-btn.active, .drapery-btn,
- .sample-btn-chip, .cb-cta {
- background: #f5f1e8 !important;
- color: #0a0a0a !important;
- border-color: #f5f1e8 !important;
- }
- .new-badge:hover, .new-arrivals-pill:hover,
- .color-filter-btn.active:hover, .drapery-btn:hover,
- .sample-btn-chip:hover, .cb-cta:hover {
- background: #fff !important;
- color: #0a0a0a !important;
- }
- </style>
-<header class="ns-header">
- <a href="/" class="ns-brand" aria-label="Home">
- <span class="ns-dot"></span>
- <span class="ns-name">Studio Toten</span>
- </a>
- <nav class="ns-nav" id="nsPrimaryNav" aria-label="Primary">
- <a href="/">Home</a>
- <a href="/about">About</a>
- <button type="button" onclick="nsContactOpen()">Contact</button>
- </nav>
- <button type="button" class="mobile-toggle" aria-label="Toggle menu" aria-controls="nsPrimaryNav" aria-expanded="false" onclick="nsToggleNav(this)">
- <span></span><span></span><span></span>
- </button>
- </header>
-
-<div class="ns-modal" id="nsContactModal" role="dialog" aria-modal="true" aria-labelledby="nsContactTitle" onclick="if(event.target===this)nsContactClose()">
- <div class="ns-modal-card">
- <button type="button" class="close-x" onclick="nsContactClose()" aria-label="Close">×</button>
- <h3 id="nsContactTitle">How can we help?</h3>
- <p class="sub">Trade-account replies within one business day.</p>
- <div class="ns-actions">
- <a class="ns-action" href="#contact" onclick="nsContactClose()"><span class="ico">📋</span><div class="txt"><b>Get a Quote</b><span>Project specs → priced estimate</span></div></a>
- <a class="ns-action" href="#contact" onclick="nsContactClose();openModal();"><span class="ico">📦</span><div class="txt"><b>Order a Sample</b><span>Free swatch to your shop</span></div></a>
- <a class="ns-action" href="mailto:info@architecturalwallcoverings.com?subject=Studio%20Toten%20inquiry"><span class="ico">✉️</span><div class="txt"><b>Email Us</b><span>info@architecturalwallcoverings.com</span></div></a>
- <a class="ns-action" href="tel:888-373-4564"><span class="ico">📞</span><div class="txt"><b>Call Us</b><span>(888) 373-4564 · M–F, 9–5 PT</span></div></a>
- </div>
- </div>
- </div>
-<script>
- function nsContactOpen() { var m = document.getElementById('nsContactModal'); if (m) m.classList.add('show'); }
- function nsContactClose() { var m = document.getElementById('nsContactModal'); if (m) m.classList.remove('show'); }
- function nsToggleNav(btn) {
- var nav = document.getElementById('nsPrimaryNav');
- if (!nav) return;
- var open = nav.classList.toggle('open');
- btn.setAttribute('aria-expanded', open ? 'true' : 'false');
- }
- document.addEventListener('keydown', function(e){ if (e.key === 'Escape') nsContactClose(); });
-</script>
-
-
-
-
-
-
-
-
-
-
-
-<header>
- <button class="h-link" onclick="dwmOpen('Contact')" aria-label="Contact"><svg class="h-icon" viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/></svg><span>Contact</span></button>
- <button class="theme-toggle" id="theme-toggle" aria-label="Theme toggle">☾</button>
-</header>
-
-<section class="cinema">
- <div class="cinema-bg" id="heroBg"></div>
- <div class="corner-mark">Specifier-Grade</div>
- <div class="center-mark">Architectural Wallcoverings</div>
- <div class="meta-line">Architectural · Specifier · Class A · Contract<span class="num" id="heroNum"></span></div>
- <a class="enter" href="#shop">Enter <svg viewBox="0 0 24 12" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M0 6h22M16 1l6 5-6 5"/></svg></a>
-</section>
-
-
-<section class="section" id="ideas">
- <div class="rail-block">
- <div class="rail-eyebrow">Ideas</div>
- <h2 class="rail-title">New this week</h2>
- <div class="rail" id="railNewest"></div>
- </div>
- <div class="rail-block">
- <div class="rail-eyebrow">Ideas</div>
- <h2 class="rail-title">Curated picks</h2>
- <div class="rail" id="railCurated"></div>
- </div>
-</section>
-
-<section class="section" id="shop">
- <div class="section-header">
- <div>
- <div class="section-eyebrow">The Collection</div>
- <h2 class="section-title"><span class="accent" id="totalCount">—</span> Patterns.</h2>
- </div>
- <div class="section-meta">Architectural · Specifier · Class A · Contract</div>
- </div>
-
- <div class="filters" id="facets">
- <button class="chip active" data-facet="all">All</button>
- </div>
-
- <div class="density">
- <label>Sort</label>
- <select id="sortSelect" aria-label="Sort products" style="background:transparent;color:inherit;border:1px solid var(--line,rgba(255,255,255,.2));font:inherit;font-size:11px;letter-spacing:.10em;text-transform:uppercase;padding:4px 8px;cursor:pointer;outline:none;margin-right:14px">
- <option value="newest">Newest</option>
- <option value="color">Color</option>
- <option value="style">Style</option>
- <option value="sku">SKU A→Z</option>
- <option value="title">Title A→Z</option>
- <option value="price-asc">Price ↑</option>
- <option value="price-desc">Price ↓</option>
- </select>
- <label>Grid</label>
- <input type="range" id="densitySlider" min="4" max="12" step="1" value="6" aria-label="Grid columns">
- <span class="ct" id="densityLabel">6 cols</span>
- <div class="search">
- <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-5.5-5.5"/></svg>
- <input type="text" id="searchInput" placeholder="Search by pattern, color…" autocomplete="off">
- </div>
- </div>
-
- <div class="stat-line" id="statLine">Loading…</div>
- <div class="grid" id="grid"></div>
- <div class="loading" id="loading">Loading more…</div>
- <div class="sentinel" id="sentinel"></div>
-</section>
-
-<footer>
- <div class="footer-grid">
- <div>
- <div class="footer-brand">Studio Toten</div>
- <p class="footer-text">Studio Toten — real samples ship free.</p>
- <p class="footer-text" style="margin-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;color:var(--paper);opacity:0.7"><a href="/about" style="color:inherit;text-decoration:none;border-bottom:1px solid var(--accent)">About →</a></p>
- </div>
- <div class="footer-col">
- <h4>Aesthetic</h4>
- <div id="footerFacets"></div>
- </div>
- <div class="footer-col">
- <h4>Trade</h4>
- <button onclick="dwmOpen('Inquiry')">Project Inquiry</button>
- <button onclick="dwmOpen('Sample')">Request Sample</button>
- <button onclick="dwmOpen('Contact')">Contact</button>
- </div>
-
- <div class="footer-col">
- <h4>Social</h4>
- <a class="fb-link" href="https://www.facebook.com/SteveAbramsDesigns.DesignerWallcoverings" target="_blank" rel="noopener">Facebook</a>
- </div>
- </div>
- <div class="footer-bottom">
- <span>architecturalwallcoverings.com · Studio Toten</span>
- <span><a href="mailto:info@architecturalwallcoverings.com" style="color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px">info@architecturalwallcoverings.com</a></span>
- <span id="footerStat"></span>
- </div>
-</footer>
-
-<script>
-// mini-constellation — 43 niche-stars, current site highlighted in gold
-(function(){
- const SLUG = "architecturalwallcoverings";
- const NICHES = [
- ['silkwallpaper','Silk','mat'],['silkwallcoverings','Silk W/C','mat'],['linenwallpaper','Linen','mat'],
- ['jutewallpaper','Jute','mat'],['raffiawallcoverings','Raffia W/C','mat'],['raffiawalls','Raffia Walls','mat'],
- ['corkwallcovering','Cork','mat'],['fabricwallpaper','Fabric','mat'],['textilewallpaper','Textile','mat'],
- ['metallicwallpaper','Metallic','mat'],['silverleafwallpaper','Silver Leaf','mat'],['vinylwallpaper','Vinyl','mat'],
- ['micawallpaper','Mica','mat'],['madagascarwallpaper','Madagascar','mat'],['mylarwallpaper','Mylar','mat'],
- ['suedewallpaper','Suede','mat'],
- ['1800swallpaper','1800s','dec'],['1890swallpaper','1890s','dec'],['1900swallpaper','1900s','dec'],
- ['1920swallpaper','1920s','dec'],['1930swallpaper','1930s','dec'],['1940swallpaper','1940s','dec'],
- ['1950swallpaper','1950s','dec'],['1960swallpaper','1960s','dec'],['1970swallpaper','1970s','dec'],
- ['1980swallpaper','1980s','dec'],['retrowalls','Retro','dec'],['wallpapersback','W. Back','dec'],
- ['agedwallpaper','Aged','cra'],['handcraftedwallpaper','Handcrafted','cra'],['museumwallpaper','Museum','cra'],
- ['restorationwallpaper','Restoration','cra'],['pastelwallpaper','Pastel','cra'],['glitterwalls','Glitter','cra'],
- ['greenwallcoverings','Green','cra'],['naturalwallcoverings','Natural','cra'],['saloonwallpaper','Saloon','cra'],
- ['contractwallpaper','Contract','use'],['hotelwallcoverings','Hotel','use'],['hospitalitywallpaper','Hospitality','use'],
- ['healthcarewallpaper','Healthcare','use'],['restaurantwallpaper','Restaurant','use'],['architecturalwallcoverings','Architectural','use']
- ];
- const COLOR = { mat:'#c9b687', dec:'#b86a4a', cra:'#6b8e6f', use:'#4a6b8e' };
- const W = 1080, H = 200, BANDS = ['mat','dec','cra','use'];
- const groups = { mat:[], dec:[], cra:[], use:[] };
- for (const n of NICHES) groups[n[2]].push(n);
- const svg = document.getElementById('miniConst');
- if (!svg) return;
- const bandW = W / BANDS.length;
- let nodes = '';
- BANDS.forEach((band, bi) => {
- const list = groups[band];
- const cx = bi * bandW + bandW / 2;
- list.forEach((n, i) => {
- const t = list.length === 1 ? 0.5 : i / (list.length - 1);
- // deterministic jitter per slug
- let h = 0; for (let k = 0; k < n[0].length; k++) h = (h * 31 + n[0].charCodeAt(k)) | 0;
- const jx = ((h & 0xff) / 255 - 0.5) * (bandW * 0.5);
- const jy = (((h >> 8) & 0xff) / 255 - 0.5) * 6; // tightened from 14 → 6 to prevent same-band collisions (16 mat nodes / 144px = 9px spacing)
- const x = cx + jx, y = 28 + t * (H - 56) + jy;
- const isCurrent = n[0] === SLUG;
- const r = isCurrent ? 8 : 4;
- const op = isCurrent ? 1 : 0.55;
- nodes += `<g class="mc-node" data-slug="${n[0]}" data-label="${n[1]}" style="cursor:pointer">
- <circle cx="${x}" cy="${y}" r="${r}" fill="url(#dna-${band})" fill-opacity="${op}" stroke="${COLOR[band]}" stroke-opacity="${isCurrent?1:0.7}" stroke-width="${isCurrent?2:1}">
- <title>${n[1]} — ${n[0]}.com</title>
- </circle>
- ${isCurrent ? `<circle cx="${x}" cy="${y}" r="${r+5}" fill="none" stroke="${COLOR[band]}" stroke-opacity="0.4" stroke-width="1"><animate attributeName="r" values="${r+5};${r+12};${r+5}" dur="2.4s" repeatCount="indefinite"/><animate attributeName="stroke-opacity" values="0.4;0;0.4" dur="2.4s" repeatCount="indefinite"/></circle>` : ''}
- </g>`;
- });
- });
- // append nodes after defs
- svg.insertAdjacentHTML('beforeend', nodes);
- svg.querySelectorAll('.mc-node').forEach(n => {
- n.addEventListener('mouseenter', () => n.querySelector('circle').setAttribute('fill-opacity', '1'));
- n.addEventListener('mouseleave', e => {
- const isCurrent = n.dataset.slug === SLUG;
- n.querySelector('circle').setAttribute('fill-opacity', isCurrent ? '1' : '0.55');
- });
- n.addEventListener('click', () => window.open('https://' + n.dataset.slug + '.com', '_blank'));
- });
-})();
-</script>
-
-<script>
-const state = { q:'', facet:'all', page:1, pages:1, total:0, loading:false, exhausted:false };
-const LABELS = {"all":"All"};
-
-function escAttr(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&':'&','<':'<','>':'>','"':'"',"'":''' }[c])); }
-// Image-URL allowlist: only DW Shopify CDN + designerwallcoverings.com (defends against XSS via crafted products.json)
-function safeImg(u) { return /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(u || '') ? u : '/hero-bg.jpg'; }
-function cardHTML(p) {
- const eager = state.page === 1;
- return '<img loading="' + (eager ? 'eager' : 'lazy') + '"' + (eager ? ' fetchpriority="high"' : '') + ' src="' + escAttr(safeImg(p.image_url)) + '" alt="' + escAttr(p.title) + '">'
- + '<div class="overlay">'
- + '<div class="pat">' + escAttr(p.pattern_name || p.title) + '</div>'
- + '<div class="ven">' + escAttr((p.vendor || '').replace(/-/g, ' ')) + '</div>'
- + '<div class="actions">'
- + '<button class="sample-btn" onclick="event.stopPropagation();dwmOpen(\'Sample\',' + JSON.stringify({sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}).replace(/"/g,'"') + ')">Sample</button>'
- + '</div></div>';
-}
-
-async function loadFacets() {
- let f;
- try {
- const r = await fetch('/api/facets');
- if (!r.ok) throw new Error('HTTP ' + r.status);
- f = await r.json();
- } catch (e) { console.error('loadFacets failed:', e); return; }
- const el = document.getElementById('facets');
- for (const [k, v] of Object.entries(f.aesthetics).sort((a,b) => b[1] - a[1])) {
- const b = document.createElement('button');
- b.className = 'chip'; b.dataset.facet = k;
- b.innerHTML = (LABELS[k] || k) + ' <span style="opacity:.55;font-weight:500;margin-left:4px">' + v + '</span>';
- el.appendChild(b);
- }
- el.addEventListener('click', e => {
- if (e.target.tagName !== 'BUTTON') return;
- document.querySelectorAll('#facets button').forEach(b => b.classList.remove('active'));
- e.target.classList.add('active');
- state.facet = e.target.dataset.facet;
- resetGrid();
- });
- document.getElementById('totalCount').textContent = f.total;
- document.getElementById('footerStat').textContent = f.total + ' patterns · live archive';
- // Footer aesthetic links
- const footerEl = document.getElementById('footerFacets');
- for (const [k] of Object.entries(f.aesthetics)) {
- const b = document.createElement('button');
- b.textContent = LABELS[k] || k;
- b.onclick = () => { state.facet = k; resetGrid(); document.querySelectorAll('#facets button').forEach(x => x.classList.toggle('active', x.dataset.facet === k)); document.getElementById('shop').scrollIntoView({behavior:'smooth'}); };
- footerEl.appendChild(b);
- }
-}
-
-function resetGrid() {
- state.page = 1; state.exhausted = false;
- document.getElementById('grid').innerHTML = '';
- document.getElementById('loading').textContent = 'Loading…';
- loadGridPage();
-}
-
-async function loadGridPage() {
- if (state.loading || state.exhausted) return;
- state.loading = true;
- const params = new URLSearchParams({ page:state.page, limit:24 });
- if (state.q) params.set('q', state.q);
- if (state.facet !== 'all') params.set('aesthetic', state.facet);
- let data;
- try {
- const r = await fetch('/api/products?' + params);
- if (!r.ok) throw new Error('HTTP ' + r.status);
- data = await r.json();
- } catch (e) {
- console.error('loadGridPage failed:', e);
- document.getElementById('loading').textContent = '— offline — refresh to retry —';
- state.loading = false;
- return;
- }
- state.total = data.total; state.pages = data.pages;
-
- if (state.page === 1) {
- document.getElementById('statLine').textContent = data.total + ' patterns · ' + (state.facet === 'all' ? 'all aesthetics' : (LABELS[state.facet] || state.facet)) + (state.q ? ' · matching "' + state.q + '"' : '');
- }
- const grid = document.getElementById('grid');
- for (const p of data.items) {
- const a = document.createElement('a');
- a.className = 'card'; a.href = '#'; a.onclick = (e) => { e.preventDefault(); dwmOpen('Sample',{sku:p.sku||p.handle, title:p.title, image_url:safeImg(p.image_url)}); };
- a.innerHTML = cardHTML(p);
- grid.appendChild(a);
- }
- if (state.page >= state.pages || data.items.length === 0) {
- state.exhausted = true;
- document.getElementById('loading').textContent = state.total > 0 ? '— end of archive · ' + state.total + ' patterns —' : '';
- } else state.page++;
- state.loading = false;
-}
-
-const io = new IntersectionObserver(es => { for (const e of es) if (e.isIntersecting) loadGridPage(); }, { rootMargin:'600px 0px' });
-io.observe(document.getElementById('sentinel'));
-
-document.getElementById('searchInput').addEventListener('input', e => {
- state.q = e.target.value.trim();
- clearTimeout(window._t);
- window._t = setTimeout(resetGrid, 220);
-});
-
-// Density slider
-const slider = document.getElementById('densitySlider');
-const dlabel = document.getElementById('densityLabel');
-function setDensity(n) {
- document.documentElement.style.setProperty('--cols', n);
- dlabel.textContent = n + ' cols';
- try { localStorage.setItem('arch_theme_density', n); } catch(e){}
-}
-slider.addEventListener('input', e => setDensity(parseInt(e.target.value)));
-const savedDensity = parseInt(localStorage.getItem('arch_theme_density') || '6');
-if (savedDensity >= 4 && savedDensity <= 12) { slider.value = savedDensity; setDensity(savedDensity); }
-
-// Theme toggle
-const tb = document.getElementById('theme-toggle');
-function setTheme(t){ document.documentElement.dataset.theme = t; try { localStorage.setItem('arch_theme', t); } catch(e){} tb.textContent = t === 'dark' ? '☾' : '☀'; }
-setTheme(document.documentElement.dataset.theme || 'light');
-tb.addEventListener('click', () => setTheme(document.documentElement.dataset.theme === 'dark' ? 'light' : 'dark'));
-
-loadFacets();
-loadGridPage();
-</script>
-<!-- ============================================================
- DW UNIVERSAL CONTACT MODULE — fashion-house UX
- Inject before </body> in every DW-family sister site.
- Self-contained: CSS + 4 modals + JS submission handlers.
- Uses host site's CSS vars (--bg, --fg, --gold, --rule).
- ============================================================ -->
-<style>
- /* === MODAL BASE === */
- .dwm{position:fixed;inset:0;background:rgba(0,0,0,0.78);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;overflow-y:auto}
- .dwm.open{display:flex}
- .dwm-box{background:var(--bg);border:1px solid var(--rule);max-width:520px;width:100%;padding:36px 32px;position:relative;max-height:90vh;overflow-y:auto;animation:dwm-in 0.25s ease}
- @keyframes dwm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
- .dwm-box h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;font-size:32px;line-height:1.05;margin-bottom:6px;color:var(--fg);letter-spacing:-0.01em}
- .dwm-box .sub{color:var(--muted);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
- .dwm-close{position:absolute;top:18px;right:18px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;width:32px;height:32px;line-height:1;padding:0}
- .dwm-close:hover{color:var(--gold)}
- .dwm-preview{display:flex;gap:14px;align-items:center;padding:12px;background:var(--bg-soft);margin-bottom:18px}
- .dwm-preview img{width:64px;height:64px;object-fit:cover}
- .dwm-preview .pn{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:15px;line-height:1.2;color:var(--fg)}
- .dwm-preview .pc{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
- .dwm-field{margin-bottom:14px}
- .dwm-field label{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
- .dwm-field input,.dwm-field textarea,.dwm-field select{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:8px 4px;font-size:14px;font-family:inherit;color:var(--fg);outline:none;transition:border-color 0.2s}
- .dwm-field input:focus,.dwm-field textarea:focus{border-bottom-color:var(--gold)}
- .dwm-field textarea{min-height:60px;resize:vertical}
- .dwm-submit{background:transparent;color:var(--muted, #c9b89e);border:1px solid var(--muted, #c9b89e);padding:14px 28px;font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:700;cursor:pointer;width:100%;margin-top:8px;transition:background 0.15s, color 0.15s}
- .dwm-submit:hover{background:var(--muted, #c9b89e);color:var(--bg, #000)}
-
- .dwm-submit:disabled{opacity:0.5;cursor:default}
- .dwm-status{margin-top:14px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;display:none}
- .dwm-status.ok{color:var(--sage);display:block}
- .dwm-status.err{color:#e08070;display:block}
- /* contact-options */
- .dwm-options{display:flex;flex-direction:column;gap:10px}
- .dwm-option{display:flex;align-items:center;gap:14px;padding:18px 20px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:0.20em;text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;transition:all 0.2s;text-align:left;width:100%}
- .dwm-option:hover{border-color:var(--gold);color:var(--gold)}
- .dwm-option svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}
- .dwm-option .lbl{flex:1;display:block}
- .dwm-option .val{display:block;font-size:10px;letter-spacing:0.14em;text-transform:none;font-weight:500;opacity:0.65;margin-top:4px}
-
-/* graphics-loop pass 5: serif hero typography + nav legibility */
-.cinema h1, h1.headline { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; letter-spacing: -0.01em }
-.h-link { font-size: 13px; letter-spacing: 0.06em }
-
-/* graphics-loop pass 11: Ideas rails */
-#ideas { padding: 56px 24px 24px; max-width:1600px; margin:0 auto }
-#ideas .rail-block { margin-bottom:48px }
-#ideas .rail-eyebrow { font-size:11px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; color:var(--muted, #888); margin-bottom:8px }
-#ideas .rail-title { font-size:clamp(22px,2.6vw,32px); font-weight:500; letter-spacing:-0.01em; margin:0 0 18px; color:var(--ink,#fff) }
-#ideas .rail { display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:8px; scrollbar-width:none }
-#ideas .rail::-webkit-scrollbar { display:none }
-#ideas .rail-card { flex:0 0 240px; scroll-snap-align:start; cursor:pointer; transition:transform 0.2s }
-#ideas .rail-card:hover { transform:translateY(-3px) }
-#ideas .rail-card img { width:100%; aspect-ratio:1; object-fit:cover; display:block; background:var(--card,#222) }
-#ideas .rail-card .rc-title { font-size:13px; font-weight:500; color:var(--paper,#fff); padding:8px 0 2px; line-height:1.3 }
-#ideas .rail-card .rc-meta { font-size:11px; color:var(--muted,#888); letter-spacing:0.06em }
-@media (max-width:720px) { #ideas .rail-card { flex:0 0 160px } }
-</style>
-
-<!-- Contact options modal -->
-<div class="dwm" id="dwmContact" onclick="if(event.target===this)dwmClose('Contact')">
- <div class="dwm-box" style="max-width:440px">
- <button class="dwm-close" onclick="dwmClose('Contact')" aria-label="Close">×</button>
- <h3>Contact</h3>
- <p class="sub" id="dwmContactSub">Three ways to reach us</p>
- <div class="dwm-options">
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Inquiry')">
- <svg viewBox="0 0 24 24"><path d="M4 4h16v12H7l-3 3z"/></svg>
- <span class="lbl">Send an Inquiry<span class="val">Project name · scope · all the details</span></span>
- </button>
- <button class="dwm-option" type="button" onclick="dwmClose('Contact');dwmOpen('Sample')">
- <svg viewBox="0 0 24 24"><rect x="4" y="6" width="16" height="14"/><path d="M4 10h16M9 6V3h6v3"/></svg>
- <span class="lbl">Request a Sample<span class="val">Memo sample · ships free · 3–5 business days</span></span>
- </button>
- <a class="dwm-option" id="dwmContactEmailLink" href="mailto:info@architecturalwallcoverings.com">
- <svg viewBox="0 0 24 24"><path d="M3 6h18v12H3z"/><path d="M3 6l9 7 9-7"/></svg>
- <span class="lbl">Email Us<span class="val" id="dwmContactEmailLabel">info@architecturalwallcoverings.com</span></span>
- </a>
- </div>
- </div>
-</div>
-
-<!-- Inquiry modal -->
-<div class="dwm" id="dwmInquiry" onclick="if(event.target===this)dwmClose('Inquiry')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Inquiry')" aria-label="Close">×</button>
- <h3>Project Inquiry</h3>
- <p class="sub">We'll respond within one business day</p>
- <form id="dwmInquiryForm" onsubmit="return dwmSubmit(event,'inquiry')">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Phone</label><input type="tel" name="phone"></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Project Name</label><input type="text" name="projectName" required></div>
- <div class="dwm-field"><label>Project Scope</label><textarea name="projectScope" placeholder="Square footage · room count · timeline" required></textarea></div>
- <div class="dwm-field"><label>Additional Information</label><textarea name="message" placeholder="Patterns of interest, finish preferences, budget"></textarea></div>
- <button type="submit" class="dwm-submit">Send Inquiry</button>
- <div class="dwm-status" id="dwmInquiryStatus"></div>
- </form>
- </div>
-</div>
-
-<!-- Sample-request modal -->
-<div class="dwm" id="dwmSample" onclick="if(event.target===this)dwmClose('Sample')">
- <div class="dwm-box">
- <button class="dwm-close" onclick="dwmClose('Sample')" aria-label="Close">×</button>
- <h3>Request a Sample</h3>
- <p class="sub">Memo sample · ships free · 3–5 business days</p>
- <div class="dwm-preview" id="dwmSamplePreview" style="display:none">
- <img id="dwmSampleImg" src="" alt="">
- <div><div class="pn" id="dwmSampleName"></div><div class="pc" id="dwmSampleSku"></div></div>
- </div>
- <form id="dwmSampleForm" onsubmit="return dwmSubmit(event,'sample')">
- <input type="hidden" name="sku" id="dwmSampleSkuInput">
- <input type="hidden" name="title" id="dwmSampleTitleInput">
- <input type="hidden" name="image_url" id="dwmSampleImageInput">
- <div class="dwm-field"><label>Name</label><input type="text" name="name" required></div>
- <div class="dwm-field"><label>Email</label><input type="email" name="email" required></div>
- <div class="dwm-field"><label>Company / Trade</label><input type="text" name="company"></div>
- <div class="dwm-field"><label>Shipping Address</label><input type="text" name="address" placeholder="Street" required></div>
- <div class="dwm-field" style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px">
- <input type="text" name="city" placeholder="City" required>
- <input type="text" name="state" placeholder="State" required>
- <input type="text" name="zip" placeholder="ZIP" required>
- </div>
- <div class="dwm-field"><label>Notes (optional)</label><textarea name="message" placeholder="Project, sq.ft., timing"></textarea></div>
- <button type="submit" class="dwm-submit">Send Sample Request</button>
- <div class="dwm-status" id="dwmSampleStatus"></div>
- </form>
- </div>
-</div>
-
-<script>
- // Universal modal control
- function dwmOpen(name, opts){
- document.getElementById('dwm' + name).classList.add('open');
- document.body.style.overflow = 'hidden';
- try { if (typeof gtag === 'function') gtag('event', 'modal_open', { modal_name: name, sku: (opts && opts.sku) || '' }); } catch(_){}
- if (name === 'Sample' && opts) {
- document.getElementById('dwmSamplePreview').style.display = 'flex';
- document.getElementById('dwmSampleImg').src = opts.image_url || '';
- document.getElementById('dwmSampleName').textContent = opts.title || '';
- document.getElementById('dwmSampleSku').textContent = opts.sku || '';
- document.getElementById('dwmSampleSkuInput').value = opts.sku || '';
- document.getElementById('dwmSampleTitleInput').value = opts.title || '';
- document.getElementById('dwmSampleImageInput').value = opts.image_url || '';
- } else if (name === 'Sample') {
- document.getElementById('dwmSamplePreview').style.display = 'none';
- document.getElementById('dwmSampleSkuInput').value = '';
- document.getElementById('dwmSampleTitleInput').value = '';
- document.getElementById('dwmSampleImageInput').value = '';
- }
- }
- function dwmClose(name){ document.getElementById('dwm'+name).classList.remove('open'); document.body.style.overflow=''; }
-
- // Universal form submit — POSTs to /api/send-{kind}
- async function dwmSubmit(e, kind) {
- e.preventDefault();
- const form = e.target;
- const data = Object.fromEntries(new FormData(form).entries());
- const btn = form.querySelector('.dwm-submit');
- const status = form.querySelector('.dwm-status');
- btn.disabled = true; const orig = btn.textContent; btn.textContent = 'Sending…';
- status.className = 'dwm-status';
- try {
- const r = await fetch('/api/send-' + kind, { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
- if (!r.ok) throw new Error('HTTP '+r.status);
- const j = await r.json();
- try {
- if (typeof gtag === 'function') {
- if (kind === 'sample') gtag('event', 'memo_request', { sku: data.sku || '', title: data.title || '' });
- else gtag('event', 'lead', { form_type: kind });
- }
- } catch(_){}
- status.textContent = kind === 'sample' ? 'Sample request sent — ships within 3–5 business days' : 'Inquiry sent — we respond within 1 business day';
- status.className = 'dwm-status ok';
- btn.textContent = 'Sent ✓';
- setTimeout(() => { dwmClose(kind === 'sample' ? 'Sample' : 'Inquiry'); btn.disabled = false; btn.textContent = orig; status.className = 'dwm-status'; form.reset(); }, 2800);
- } catch (err) {
- status.textContent = 'Send failed — please email info@designerwallcoverings.com';
- status.className = 'dwm-status err';
- btn.disabled = false; btn.textContent = orig;
- }
- return false;
- }
-
- // Wire up "Memo samples ship free" badge in hero to open sample modal directly
- document.querySelectorAll('.hero .badge, [data-open-sample]').forEach(el => {
- el.style.cursor = 'pointer';
- el.addEventListener('click', () => dwmOpen('Sample'));
- });
-
- // Wire nav "Trade" link to inquiry modal
- document.querySelectorAll('nav a[href*="designerwallcoverings.com"]').forEach(a => {
- a.removeAttribute('target');
- a.removeAttribute('href');
- a.style.cursor = 'pointer';
- a.addEventListener('click', e => { e.preventDefault(); dwmOpen('Contact'); });
- });
-
- // Override product card clicks — open Sample modal pre-filled instead of redirecting to DW
- document.addEventListener('click', e => {
- const card = e.target.closest('.card, .rail-card');
- if (!card) return;
- if (card.tagName === 'A' && (card.getAttribute('href') || '').startsWith('/sample/')) {
- e.preventDefault();
- const img = card.querySelector('img');
- const pat = card.querySelector('.pat');
- const sku = card.getAttribute('href').replace('/sample/', '');
- dwmOpen('Sample', {
- sku,
- title: pat ? pat.textContent.trim() : '',
- image_url: img ? img.src : ''
- });
- }
- }, true);
-// DW STANDARD: hero pulls from products.json[0].image_url so dw-collections-viewer
-// drag-drop / hero-pin updates the live front page on next deploy.
-// Always upgrades to the largest Shopify variant (strips _NxN size suffix) so
-// the full-page hero stays sharp.
-// DW STANDARD: hero rotates through top-20 NEWEST products on each visit
-// (novasuede.com pattern). Fetches /api/products?limit=100, sorts by created_at desc,
-// takes the freshest 20, picks one per visit via localStorage counter.
-// Falls back to static /hero-bg.jpg on any error.
-(async function rotateHero() {
- try {
- const r = await fetch('/api/products?limit=100');
- if (!r.ok) return;
- const d = await r.json();
- const items = (d.items || [])
- .filter(p => p && p.image_url && /^https:\/\/(?:cdn\.shopify\.com|designerwallcoverings\.com)\//.test(p.image_url))
- .sort((a,b) => String(b.created_at || '').localeCompare(String(a.created_at || '')))
- .slice(0, 20);
- if (!items.length) return;
- let visits = 0;
- try {
- visits = parseInt(localStorage.getItem('hero_visits') || '0', 10) || 0;
- localStorage.setItem('hero_visits', String(visits + 1));
- } catch(e) {}
- const pick = items[visits % items.length];
- // Strip _NxN size suffix to get the largest CDN variant
- const url = pick.image_url.replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- const bg = document.getElementById('heroBg') || document.getElementById('cinemaBg');
- if (bg) bg.style.backgroundImage = "url('" + url + "')";
- } catch (e) {}
-})();
-
-
-// DW STANDARD sort-select wire-up (added by fleet patcher)
-(function(){
- const sortSel = document.getElementById('sortSelect');
- if (!sortSel) return;
- const KEY = location.hostname.replace(/\./g, '_') + '_sort';
- const saved = localStorage.getItem(KEY);
- if (saved) { try { sortSel.value = saved; } catch(e){} }
- if (typeof state !== 'undefined') state.sort = sortSel.value;
- sortSel.addEventListener('change', e => {
- const v = e.target.value;
- try { localStorage.setItem(KEY, v); } catch(e){}
- if (typeof state !== 'undefined') state.sort = v;
- if (typeof resetGrid === 'function') resetGrid();
- else location.reload();
- });
-})();
-
-// graphics-loop pass 11: hydrate Ideas rails from /api/products
-(async function hydrateIdeas() {
- try {
- const r = await fetch('/api/products?limit=80');
- if (!r.ok) return;
- const d = await r.json();
- const items = (d.items || []).filter(p => p && p.image_url);
- if (!items.length) return;
- const sorted = [...items].sort((a,b) => String(b.created_at || '').localeCompare(String(a.created_at || '')));
- const newest = sorted.slice(0, 12);
- // Curated = deterministic offset slice (every 5th item starting at idx 3) for variety
- const curated = items.filter((_, i) => i % 5 === 3).slice(0, 12);
- function card(p) {
- const url = (p.image_url || '').replace(/(_\d+x\d*)(\.(jpg|jpeg|png|webp|gif))(\?|$)/i, '$2$4');
- return '<a class="rail-card" href="/sample/' + encodeURIComponent(p.handle || p.sku) + '">' +
- '<img src="' + url + '" alt="' + (p.title || '').replace(/"/g, '"') + '" loading="lazy">' +
- '<div class="rc-title">' + ((p.title || '').split('|')[0] || '').trim() + '</div>' +
- '<div class="rc-meta">' + (p.vendor || '') + '</div>' +
- '</a>';
- }
- const r1 = document.getElementById('railNewest');
- const r2 = document.getElementById('railCurated');
- if (r1) r1.innerHTML = newest.map(card).join('');
- if (r2) r2.innerHTML = curated.map(card).join('');
- } catch(e) {}
-})();
-</script>
-
-</body>
-</html>
diff --git a/server.js.bak.1778117945098 b/server.js.bak.1778117945098
deleted file mode 100644
index 3dbe3a9..0000000
--- a/server.js.bak.1778117945098
+++ /dev/null
@@ -1,107 +0,0 @@
-/**
- * ARCHITECTURAL WALLCOVERINGS — DW family vertical
- * Curated slice from live designerwallcoverings.com Shopify catalog.
- */
-try { require('dotenv').config(); } catch (e) {}
-const express = require('express');
-const path = require('path');
-const fs = require('fs');
-
-const PORT = process.env.PORT || 9879;
-const DW_SHOPIFY = 'https://designerwallcoverings.com';
-const __SITE = path.basename(__dirname);
-let DATA_RAW;
-try {
- const raw = fs.readFileSync(path.join(__dirname, 'data', 'products.json'), 'utf8');
- DATA_RAW = JSON.parse(raw);
- if (!Array.isArray(DATA_RAW)) throw new Error('products.json must be an array');
-} catch (e) {
- console.error(`[${__SITE}] FATAL: could not load products.json — ${e.message}`);
- console.error(`[${__SITE}] Starting with empty catalog. Run pull script to populate data/products.json.`);
- DATA_RAW = [];
-}
-
-function isJunk(p) {
- if (!p.image_url || !p.image_url.trim()) return true;
- if (!p.handle && !p.sku) return true;
- const t = p.title || '';
- if (/lamp|rug|pillow|throw|tripod|frame|mirror|vase|candle|sculpture|figurine/i.test(t)) return true;
- if (/visual.{0,3}merchandiser/i.test(t)) return true;
- if (/(?:^|\W)image[ _-]?4(?:\W|$)/i.test(t)) return true;
- if (/bh.?90210|beverly.?hills.?90210|iconic.{0,4}bh/i.test(t)) return true;
- return false;
-}
-
-const PRODUCTS = DATA_RAW.filter(p => !isJunk(p));
-const DROPPED = DATA_RAW.length - PRODUCTS.length;
-console.log(`Loaded ${DATA_RAW.length}, kept ${PRODUCTS.length}, dropped ${DROPPED}`);
-
-const app = express();
-app.use(express.json({ limit: "256kb" }));
-const cfg = require('../_shared/site-config').load(__dirname);
-require("./_universal-contact")(app, cfg.contact);
-require("./_universal-auth")(app, cfg.auth);
-app.use(express.static(path.join(__dirname, 'public')));
-
-app.get('/api/products', (req, res) => {
- const { q, aesthetic, vendor, page = 1, limit = 24 } = req.query;
- let list = PRODUCTS;
- if (q) {
- const needle = q.toLowerCase();
- list = list.filter(p => (p.title || '').toLowerCase().includes(needle) || (p.tags || []).some(t => t.toLowerCase().includes(needle)));
- }
- if (aesthetic && aesthetic !== 'all') list = list.filter(p => p.aesthetic === aesthetic);
- if (vendor && vendor !== 'all') list = list.filter(p => p.vendor === vendor);
- const total = list.length;
- const pageNum = Math.max(1, parseInt(page) || 1);
- const lim = Math.min(60, parseInt(limit) || 24);
- const start = (pageNum - 1) * lim;
- res.json({ total, page: pageNum, limit: lim, pages: Math.ceil(total / lim), items: list.slice(start, start + lim) });
-});
-
-app.get('/api/sliders', (req, res) => {
- const SLIDER_AESTHETICS = ["mural","natural","abstract","botanical","contract","metallic"];
- const out = [];
- for (const a of SLIDER_AESTHETICS) {
- const items = PRODUCTS.filter(p => p.aesthetic === a).slice(0, 12);
- if (items.length >= 4) out.push({ aesthetic: a, items });
- }
- res.json({ rails: out });
-});
-
-app.get('/api/facets', (req, res) => {
- const aesthetics = {}; const vendors = {};
- for (const p of PRODUCTS) {
- aesthetics[p.aesthetic] = (aesthetics[p.aesthetic] || 0) + 1;
- vendors[p.vendor] = (vendors[p.vendor] || 0) + 1;
- }
- res.json({ aesthetics, vendors, total: PRODUCTS.length });
-});
-
-app.get('/api/health', (req, res) => res.json({ status: 'ok', count: PRODUCTS.length, dropped: DROPPED }));
-
-app.get('/sample/:handle', (req, res) => {
- const p = PRODUCTS.find(x => x.handle === req.params.handle || x.sku === req.params.handle);
- if (!p) return res.status(404).send('Not found');
- res.redirect(302, p.product_url || `${DW_SHOPIFY}/products/${encodeURIComponent(p.handle)}#sample`);
-});
-
-// sitemap.xml + robots.txt for SEO
-app.get('/robots.txt', (req, res) => {
- res.type('text/plain').send(`User-agent: *
-Allow: /
-Sitemap: https://architecturalwallcoverings.com/sitemap.xml
-`);
-});
-app.get('/sitemap.xml', (req, res) => {
- const urls = ['/'];
- const xml = `<?xml version="1.0" encoding="UTF-8"?>
-<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-${urls.map(u => ` <url><loc>https://architecturalwallcoverings.com${u}</loc><changefreq>weekly</changefreq></url>`).join('\n')}
-</urlset>`;
- res.type('application/xml').send(xml);
-});
-
-app.listen(PORT, '127.0.0.1', () => {
- console.log(`architecturalwallcoverings listening on http://127.0.0.1:${PORT}`);
-});
diff --git a/server.js.pre-pass12.bak b/server.js.pre-pass12.bak
deleted file mode 100644
index 589d938..0000000
--- a/server.js.pre-pass12.bak
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- * ARCHITECTURAL WALLCOVERINGS — DW family vertical
- * Curated slice from live designerwallcoverings.com Shopify catalog.
- */
-try { require('dotenv').config(); } catch (e) {}
-const express = require('express');
-const path = require('path');
-const fs = require('fs');
-
-const PORT = process.env.PORT || 9879;
-const DW_SHOPIFY = 'https://designerwallcoverings.com';
-const __SITE = path.basename(__dirname);
-let DATA_RAW;
-try {
- const raw = fs.readFileSync(path.join(__dirname, 'data', 'products.json'), 'utf8');
- DATA_RAW = JSON.parse(raw);
- if (!Array.isArray(DATA_RAW)) throw new Error('products.json must be an array');
-} catch (e) {
- console.error(`[${__SITE}] FATAL: could not load products.json — ${e.message}`);
- console.error(`[${__SITE}] Starting with empty catalog. Run pull script to populate data/products.json.`);
- DATA_RAW = [];
-}
-
-function isJunk(p) {
- if (!p.image_url || !p.image_url.trim()) return true;
- if (!p.handle && !p.sku) return true;
- const t = p.title || '';
- if (/lamp|rug|pillow|throw|tripod|frame|mirror|vase|candle|sculpture|figurine/i.test(t)) return true;
- if (/visual.{0,3}merchandiser/i.test(t)) return true;
- if (/(?:^|\W)image[ _-]?4(?:\W|$)/i.test(t)) return true;
- if (/bh.?90210|beverly.?hills.?90210|iconic.{0,4}bh/i.test(t)) return true;
- return false;
-}
-
-const PRODUCTS = DATA_RAW.filter(p => !isJunk(p));
-const DROPPED = DATA_RAW.length - PRODUCTS.length;
-console.log(`Loaded ${DATA_RAW.length}, kept ${PRODUCTS.length}, dropped ${DROPPED}`);
-
-const app = express();
-// DW STANDARD: sort by color/style/sku/title for any product-rendering site.
-const COLOR_RANK = {
- black:0,gray:1,grey:1,silver:2,white:3,ivory:4,cream:5,beige:6,brown:7,tan:8,khaki:9,copper:10,
- red:20,pink:21,coral:22,orange:23,peach:24,salmon:25,
- yellow:30,gold:31,mustard:32,olive:33,
- green:40,lime:41,mint:42,teal:50,aqua:51,turquoise:52,cyan:53,
- blue:60,navy:61,indigo:62,periwinkle:63,
- purple:70,violet:71,lavender:72,plum:73,magenta:74,fuchsia:75,
-};
-function colorRank(p) {
- const tags = (p.tags || []).map(t => String(t).toLowerCase());
- for (const t of tags) for (const k of Object.keys(COLOR_RANK)) if (t.includes(k)) return COLOR_RANK[k];
- return 999;
-}
-const STYLE_TAGS = ['traditional','transitional','modern','contemporary','minimalist','art deco','victorian','mid-century','mid century','rustic','industrial','farmhouse','bohemian','boho','geometric','floral','botanical','damask','toile','grasscloth','silk','linen','vinyl','natural'];
-function styleKey(p) {
- const tags = (p.tags || []).map(t => String(t).toLowerCase());
- for (const s of STYLE_TAGS) if (tags.some(t => t.includes(s))) return s;
- return 'zzz';
-}
-function sortProducts(list, mode) {
- if (mode === 'sku') return [...list].sort((a,b) => String(a.sku || a.handle || '').localeCompare(String(b.sku || b.handle || '')));
- if (mode === 'title') return [...list].sort((a,b) => String(a.title || '').localeCompare(String(b.title || '')));
- if (mode === 'color') return [...list].sort((a,b) => colorRank(a) - colorRank(b) || String(a.title || '').localeCompare(String(b.title || '')));
- if (mode === 'style') return [...list].sort((a,b) => styleKey(a).localeCompare(styleKey(b)) || String(a.title || '').localeCompare(String(b.title || '')));
- if (mode === 'price-asc') return [...list].sort((a,b) => (Number(a.max_price) || 0) - (Number(b.max_price) || 0));
- if (mode === 'price-desc') return [...list].sort((a,b) => (Number(b.max_price) || 0) - (Number(a.max_price) || 0));
- return list;
-}
-
-
-app.use(express.json({ limit: "256kb" }));
-const cfg = require('../_shared/site-config').load(__dirname);
-require("./_universal-contact")(app, cfg.contact);
-require("./_universal-auth")(app, cfg.auth);
-app.use(express.static(path.join(__dirname, 'public')));
-
-app.get('/api/products', (req, res) => {
- const { q, aesthetic, vendor, page = 1, limit = 24, sort = 'newest'} = req.query;
- let list = PRODUCTS;
- if (q) {
- const needle = q.toLowerCase();
- list = list.filter(p => (p.title || '').toLowerCase().includes(needle) || (p.tags || []).some(t => t.toLowerCase().includes(needle)));
- }
- if (aesthetic && aesthetic !== 'all') list = list.filter(p => p.aesthetic === aesthetic);
- if (vendor && vendor !== 'all') list = list.filter(p => p.vendor === vendor);
- list = sortProducts(list, sort);
- const total = list.length;
- const pageNum = Math.max(1, parseInt(page) || 1);
- const lim = Math.min(60, parseInt(limit) || 24);
- const start = (pageNum - 1) * lim;
- res.json({ total, page: pageNum, limit: lim, pages: Math.ceil(total/lim), sort, items: list.slice(start, start + lim) });
- // (replaced) old: pages: Math.ceil(total / lim), items: list.slice(start, start + lim) });
-});
-
-app.get('/api/sliders', (req, res) => {
- const SLIDER_AESTHETICS = ["mural","natural","abstract","botanical","contract","metallic"];
- const out = [];
- for (const a of SLIDER_AESTHETICS) {
- const items = PRODUCTS.filter(p => p.aesthetic === a).slice(0, 12);
- if (items.length >= 4) out.push({ aesthetic: a, items });
- }
- res.json({ rails: out });
-});
-
-app.get('/api/facets', (req, res) => {
- const aesthetics = {}; const vendors = {};
- for (const p of PRODUCTS) {
- aesthetics[p.aesthetic] = (aesthetics[p.aesthetic] || 0) + 1;
- vendors[p.vendor] = (vendors[p.vendor] || 0) + 1;
- }
- res.json({ aesthetics, vendors, total: PRODUCTS.length });
-});
-
-app.get('/api/health', (req, res) => res.json({ status: 'ok', count: PRODUCTS.length, dropped: DROPPED }));
-
-app.get('/sample/:handle', (req, res) => {
- const p = PRODUCTS.find(x => x.handle === req.params.handle || x.sku === req.params.handle);
- if (!p) return res.status(404).send('Not found');
- res.redirect(302, p.product_url || `${DW_SHOPIFY}/products/${encodeURIComponent(p.handle)}#sample`);
-});
-
-// sitemap.xml + robots.txt for SEO
-app.get('/robots.txt', (req, res) => {
- res.type('text/plain').send(`User-agent: *
-Allow: /
-Sitemap: https://architecturalwallcoverings.com/sitemap.xml
-`);
-});
-app.get('/sitemap.xml', (req, res) => {
- const urls = ['/'];
- const xml = `<?xml version="1.0" encoding="UTF-8"?>
-<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-${urls.map(u => ` <url><loc>https://architecturalwallcoverings.com${u}</loc><changefreq>weekly</changefreq></url>`).join('\n')}
-</urlset>`;
- res.type('application/xml').send(xml);
-});
-
-app.listen(PORT, '127.0.0.1', () => {
- console.log(`architecturalwallcoverings listening on http://127.0.0.1:${PORT}`);
-});
diff --git a/server.js.pre-sort-skill b/server.js.pre-sort-skill
deleted file mode 100644
index 8311b53..0000000
--- a/server.js.pre-sort-skill
+++ /dev/null
@@ -1,156 +0,0 @@
-/**
- * ARCHITECTURAL WALLCOVERINGS — DW family vertical
- * Curated slice from live designerwallcoverings.com Shopify catalog.
- */
-try { require('dotenv').config(); } catch (e) {}
-const express = require('express');
-const path = require('path');
-const fs = require('fs');
-
-const PORT = process.env.PORT || 9879;
-const DW_SHOPIFY = 'https://designerwallcoverings.com';
-const __SITE = path.basename(__dirname);
-let DATA_RAW;
-try {
- const raw = fs.readFileSync(path.join(__dirname, 'data', 'products.json'), 'utf8');
- DATA_RAW = JSON.parse(raw);
- if (!Array.isArray(DATA_RAW)) throw new Error('products.json must be an array');
-} catch (e) {
- console.error(`[${__SITE}] FATAL: could not load products.json — ${e.message}`);
- console.error(`[${__SITE}] Starting with empty catalog. Run pull script to populate data/products.json.`);
- DATA_RAW = [];
-}
-
-function isJunk(p) {
- if (!p.image_url || !p.image_url.trim()) return true;
- if (!p.handle && !p.sku) return true;
- const t = p.title || '';
- if (/lamp|rug|pillow|throw|tripod|frame|mirror|vase|candle|sculpture|figurine/i.test(t)) return true;
- if (/visual.{0,3}merchandiser/i.test(t)) return true;
- if (/(?:^|\W)image[ _-]?4(?:\W|$)/i.test(t)) return true;
- if (/bh.?90210|beverly.?hills.?90210|iconic.{0,4}bh/i.test(t)) return true;
- return false;
-}
-
-const PRODUCTS = DATA_RAW.filter(p => !isJunk(p));
-const DROPPED = DATA_RAW.length - PRODUCTS.length;
-console.log(`Loaded ${DATA_RAW.length}, kept ${PRODUCTS.length}, dropped ${DROPPED}`);
-
-// graphics-loop pass 12: niche keyword filter — only show products that fit this site's niche
-const NICHE_POS = ["architectural","specifier","class a","contract","commercial","spec"];
-const NICHE_NEG = ["solid","blank","plain"];
-function nicheFit(p) {
- const blob = ((p.title || '') + ' ' + (p.tags || []).join(' ')).toLowerCase();
- if (NICHE_NEG.some(n => blob.includes(n.toLowerCase()))) return false;
- return NICHE_POS.length === 0 || NICHE_POS.some(k => blob.includes(k.toLowerCase()));
-}
-const PRODUCTS_NICHE = PRODUCTS.filter(nicheFit);
-const NICHE_DROPPED = PRODUCTS.length - PRODUCTS_NICHE.length;
-console.log(`Niche filter: kept ${PRODUCTS_NICHE.length} of ${PRODUCTS.length}, dropped ${NICHE_DROPPED}`);
-// Replace PRODUCTS reference with the niche-filtered list for all downstream handlers.
-const PRODUCTS_ORIG = PRODUCTS;
-Object.defineProperty(global, '__products_niche_applied', { value: true });
-
-
-const app = express();
-// DW STANDARD: sort by color/style/sku/title for any product-rendering site.
-const COLOR_RANK = {
- black:0,gray:1,grey:1,silver:2,white:3,ivory:4,cream:5,beige:6,brown:7,tan:8,khaki:9,copper:10,
- red:20,pink:21,coral:22,orange:23,peach:24,salmon:25,
- yellow:30,gold:31,mustard:32,olive:33,
- green:40,lime:41,mint:42,teal:50,aqua:51,turquoise:52,cyan:53,
- blue:60,navy:61,indigo:62,periwinkle:63,
- purple:70,violet:71,lavender:72,plum:73,magenta:74,fuchsia:75,
-};
-function colorRank(p) {
- const tags = (p.tags || []).map(t => String(t).toLowerCase());
- for (const t of tags) for (const k of Object.keys(COLOR_RANK)) if (t.includes(k)) return COLOR_RANK[k];
- return 999;
-}
-const STYLE_TAGS = ['traditional','transitional','modern','contemporary','minimalist','art deco','victorian','mid-century','mid century','rustic','industrial','farmhouse','bohemian','boho','geometric','floral','botanical','damask','toile','grasscloth','silk','linen','vinyl','natural'];
-function styleKey(p) {
- const tags = (p.tags || []).map(t => String(t).toLowerCase());
- for (const s of STYLE_TAGS) if (tags.some(t => t.includes(s))) return s;
- return 'zzz';
-}
-function sortProducts(list, mode) {
- if (mode === 'sku') return [...list].sort((a,b) => String(a.sku || a.handle || '').localeCompare(String(b.sku || b.handle || '')));
- if (mode === 'title') return [...list].sort((a,b) => String(a.title || '').localeCompare(String(b.title || '')));
- if (mode === 'color') return [...list].sort((a,b) => colorRank(a) - colorRank(b) || String(a.title || '').localeCompare(String(b.title || '')));
- if (mode === 'style') return [...list].sort((a,b) => styleKey(a).localeCompare(styleKey(b)) || String(a.title || '').localeCompare(String(b.title || '')));
- if (mode === 'price-asc') return [...list].sort((a,b) => (Number(a.max_price) || 0) - (Number(b.max_price) || 0));
- if (mode === 'price-desc') return [...list].sort((a,b) => (Number(b.max_price) || 0) - (Number(a.max_price) || 0));
- return list;
-}
-
-
-app.use(express.json({ limit: "256kb" }));
-const cfg = require('../_shared/site-config').load(__dirname);
-require("./_universal-contact")(app, cfg.contact);
-require("./_universal-auth")(app, cfg.auth);
-app.use(express.static(path.join(__dirname, 'public')));
-
-app.get('/api/products', (req, res) => {
- const { q, aesthetic, vendor, page = 1, limit = 24, sort = 'newest'} = req.query;
- let list = PRODUCTS_NICHE;
- if (q) {
- const needle = q.toLowerCase();
- list = list.filter(p => (p.title || '').toLowerCase().includes(needle) || (p.tags || []).some(t => t.toLowerCase().includes(needle)));
- }
- if (aesthetic && aesthetic !== 'all') list = list.filter(p => p.aesthetic === aesthetic);
- if (vendor && vendor !== 'all') list = list.filter(p => p.vendor === vendor);
- list = sortProducts(list, sort);
- const total = list.length;
- const pageNum = Math.max(1, parseInt(page) || 1);
- const lim = Math.min(60, parseInt(limit) || 24);
- const start = (pageNum - 1) * lim;
- res.json({ total, page: pageNum, limit: lim, pages: Math.ceil(total/lim), sort, items: list.slice(start, start + lim) });
- // (replaced) old: pages: Math.ceil(total / lim), items: list.slice(start, start + lim) });
-});
-
-app.get('/api/sliders', (req, res) => {
- const SLIDER_AESTHETICS = ["mural","natural","abstract","botanical","contract","metallic"];
- const out = [];
- for (const a of SLIDER_AESTHETICS) {
- const items = PRODUCTS_NICHE.filter(p => p.aesthetic === a).slice(0, 12);
- if (items.length >= 4) out.push({ aesthetic: a, items });
- }
- res.json({ rails: out });
-});
-
-app.get('/api/facets', (req, res) => {
- const aesthetics = {}; const vendors = {};
- for (const p of PRODUCTS_NICHE) {
- aesthetics[p.aesthetic] = (aesthetics[p.aesthetic] || 0) + 1;
- vendors[p.vendor] = (vendors[p.vendor] || 0) + 1;
- }
- res.json({ aesthetics, vendors, total: PRODUCTS.length });
-});
-
-app.get('/api/health', (req, res) => res.json({ status: 'ok', count: PRODUCTS_NICHE.length, dropped: DROPPED }));
-
-app.get('/sample/:handle', (req, res) => {
- const p = PRODUCTS_NICHE.find(x => x.handle === req.params.handle || x.sku === req.params.handle);
- if (!p) return res.status(404).send('Not found');
- res.redirect(302, p.product_url || `${DW_SHOPIFY}/products/${encodeURIComponent(p.handle)}#sample`);
-});
-
-// sitemap.xml + robots.txt for SEO
-app.get('/robots.txt', (req, res) => {
- res.type('text/plain').send(`User-agent: *
-Allow: /
-Sitemap: https://architecturalwallcoverings.com/sitemap.xml
-`);
-});
-app.get('/sitemap.xml', (req, res) => {
- const urls = ['/'];
- const xml = `<?xml version="1.0" encoding="UTF-8"?>
-<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-${urls.map(u => ` <url><loc>https://architecturalwallcoverings.com${u}</loc><changefreq>weekly</changefreq></url>`).join('\n')}
-</urlset>`;
- res.type('application/xml').send(xml);
-});
-
-app.listen(PORT, '127.0.0.1', () => {
- console.log(`architecturalwallcoverings listening on http://127.0.0.1:${PORT}`);
-});
← 8764206 sitemap.xml: include the real static content pages
·
back to Architecturalwallcoverings
·
stage2: wire microsite catalog + admin CRUD + grid/list view 02d520e →