[object Object]

← back to Dw Vendor Mailer

Real hosted logos (re-uploaded to Shopify Files), remove $4.25 sample price, reduce image padding

638751149863de0e530973ee766923f6a5c25d18 · 2026-09-09 12:12:50 -0700 · Steve Abrams

Files touched

Diff

commit 638751149863de0e530973ee766923f6a5c25d18
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed Sep 9 12:12:50 2026 -0700

    Real hosted logos (re-uploaded to Shopify Files), remove $4.25 sample price, reduce image padding
---
 build.py         |  34 +++++-----
 logo-urls.json   |   7 +++
 mailer.html      | 188 +++++++++++++++++++++++++++----------------------------
 upload_logos.mjs |  58 +++++++++++++++++
 4 files changed, 179 insertions(+), 108 deletions(-)

diff --git a/build.py b/build.py
index a418f56..babe979 100644
--- a/build.py
+++ b/build.py
@@ -33,7 +33,8 @@ VENDORS = [
     },
     {
         "name": "Thibaut",
-        "logo": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/thibaut.png?v=1771978235",
+        "logo": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/thibaut.png?v=1788980975",
+        "logo_w": 250,
         "tagline": "American heritage prints & grounds.",
         "collection": "thibaut-wallcoverings",
         "products": [
@@ -49,7 +50,8 @@ VENDORS = [
     },
     {
         "name": "Cole & Son",
-        "logo": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/cole-son.png?v=1771978045",
+        "logo": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/cole-son.png?v=1788980977",
+        "logo_w": 190,
         "tagline": "Iconic British archive & botanicals.",
         "collection": "cole-and-son",
         "products": [
@@ -65,7 +67,8 @@ VENDORS = [
     },
     {
         "name": "Brunschwig & Fils",
-        "logo": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/brunschwig-fils.png?v=1771979287",
+        "logo": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/brunschwig-fils.png?v=1788980979",
+        "logo_w": 150,
         "tagline": "Timeless texture & French elegance.",
         "collection": "brunschwig-fils",
         "products": [
@@ -81,7 +84,8 @@ VENDORS = [
     },
     {
         "name": "Designers Guild",
-        "logo": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/designers-guild.webp?v=1771978051",
+        "logo": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/designers-guild.png?v=1788980984",
+        "logo_w": 300,
         "tagline": "Colour-led damasks & florals.",
         "collection": "designers-guild-wallpaper",
         # Outlook-safe: DG's catalog is ~99% WebP; these 3 are the JPG-imaged patterns.
@@ -96,7 +100,8 @@ VENDORS = [
     },
     {
         "name": "Osborne & Little",
-        "logo": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/osborne-little-shopify.png?v=1771978100",
+        "logo": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/osborne-little-shopify.png?v=1788980982",
+        "logo_w": 100,
         "tagline": "London design house — pattern & stripe.",
         "collection": "osborne-little",
         "products": [
@@ -123,10 +128,10 @@ SANS = "-apple-system, 'Helvetica Neue', Arial, sans-serif"
 def product_cell(name, handle, img):
     url = f"{STORE}/products/{handle}"
     name_e = html.escape(name)
-    return f"""              <td width="130" valign="top" style="padding:6px;">
+    return f"""              <td width="132" valign="top" style="padding:2px;">
                 <a href="{url}" target="_blank" style="text-decoration:none;color:{INK};">
-                  <img src="{img}" width="118" alt="{name_e}" style="display:block;width:118px;height:118px;object-fit:cover;border:1px solid {LINE};border-radius:3px;background:#fff;">
-                  <div style="font-family:{SANS};font-size:11px;line-height:1.35;color:{INK};padding:7px 2px 0;">{name_e}</div>
+                  <img src="{img}" width="128" alt="{name_e}" style="display:block;width:128px;height:128px;object-fit:cover;border:1px solid {LINE};border-radius:3px;background:#fff;">
+                  <div style="font-family:{SANS};font-size:11px;line-height:1.3;color:{INK};padding:5px 2px 0;">{name_e}</div>
                 </a>
               </td>"""
 
@@ -137,24 +142,25 @@ def vendor_block(v):
         header = (f'<div style="font-family:{SERIF};font-weight:600;font-size:30px;'
                   f'letter-spacing:.3px;color:{INK};">{html.escape(v["wordmark"])}</div>')
     else:
+        w = v.get("logo_w", 200)
         header = (f'<img src="{v["logo"]}" alt="{html.escape(v["name"])}" '
-                  f'height="42" style="display:inline-block;height:42px;max-height:42px;width:auto;border:0;">')
+                  f'width="{w}" style="display:inline-block;width:{w}px;max-width:82%;height:auto;border:0;">')
     cells = "\n".join(product_cell(*p) for p in v["products"])
     coll = f"{STORE}/collections/{v['collection']}"
     tagline = html.escape(v.get("tagline", ""))
     return f"""
         <!-- {html.escape(v['name'])} -->
-        <tr><td style="padding:26px 24px 4px;text-align:center;">
+        <tr><td style="padding:16px 24px 4px;text-align:center;">
           {header}
           <div style="font-family:{SANS};font-size:12px;color:{MUTED};padding-top:6px;">{tagline}</div>
         </td></tr>
-        <tr><td style="padding:8px 18px 0;">
+        <tr><td style="padding:6px 10px 0;">
           <table role="presentation" cellpadding="0" cellspacing="0" border="0" width="100%"><tr>
 {cells}
           </tr></table>
         </td></tr>
         <tr><td style="padding:12px 24px 6px;text-align:center;">
-          <div style="font-family:{SANS};font-size:12px;color:{MUTED};padding-bottom:12px;">Order any as a <strong style="color:{INK};">$4.25 sample</strong>.</div>
+          <div style="font-family:{SANS};font-size:12px;color:{MUTED};padding-bottom:12px;">Order any pattern as a <strong style="color:{INK};">sample</strong>.</div>
           <a href="{coll}" target="_blank" style="display:inline-block;font-family:{SANS};font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:{INK};text-decoration:none;border:1px solid {INK};padding:10px 26px;border-radius:2px;">Shop {html.escape(v['name'])} &rarr;</a>
         </td></tr>
         <tr><td style="padding:22px 24px 0;"><div style="border-top:1px solid {LINE};font-size:0;line-height:0;">&nbsp;</div></td></tr>"""
@@ -166,7 +172,7 @@ def build():
 <html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
 <title>New — Houses We Represent</title></head>
 <body style="margin:0;padding:0;background:{CREAM};">
-<div style="display:none;max-height:0;overflow:hidden;opacity:0;">Six ateliers we represent — Phillipe Romano, Thibaut, Cole &amp; Son, Brunschwig &amp; Fils, Designers Guild &amp; Osborne &amp; Little. Order any pattern as a $4.25 sample.</div>
+<div style="display:none;max-height:0;overflow:hidden;opacity:0;">Six ateliers we represent — Phillipe Romano, Thibaut, Cole &amp; Son, Brunschwig &amp; Fils, Designers Guild &amp; Osborne &amp; Little. Order any pattern as a sample.</div>
 <table role="presentation" width="100%" cellpadding="0" cellspacing="0" border="0" style="background:{CREAM};">
 <tr><td align="center" style="padding:24px 12px;">
   <table role="presentation" width="600" cellpadding="0" cellspacing="0" border="0" style="width:600px;max-width:600px;background:#ffffff;border:1px solid {LINE};">
@@ -177,7 +183,7 @@ def build():
     </td></tr>
     <tr><td style="padding:6px 24px 4px;text-align:center;">
       <div style="font-family:{SERIF};font-size:32px;line-height:1.15;color:{INK};">The Houses We Represent</div>
-      <div style="font-family:{SANS};font-size:13px;line-height:1.55;color:{MUTED};padding:10px 20px 0;">Six ateliers, on our shelves. A few new arrivals from each &mdash; order any pattern as a <strong style="color:{INK};">$4.25 sample</strong>, shipped to your studio the same week.</div>
+      <div style="font-family:{SANS};font-size:13px;line-height:1.55;color:{MUTED};padding:10px 20px 0;">Six ateliers, on our shelves. A few new arrivals from each &mdash; order any pattern as a <strong style="color:{INK};">sample</strong>, shipped to your studio the same week.</div>
     </td></tr>
     <tr><td style="padding:18px 24px 0;"><div style="border-top:2px solid {INK};font-size:0;line-height:0;">&nbsp;</div></td></tr>
 {rows}
diff --git a/logo-urls.json b/logo-urls.json
new file mode 100644
index 0000000..282bd61
--- /dev/null
+++ b/logo-urls.json
@@ -0,0 +1,7 @@
+{
+  "thibaut.png": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/thibaut.png?v=1788980975",
+  "cole-son.png": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/cole-son.png?v=1788980977",
+  "brunschwig-fils.png": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/brunschwig-fils.png?v=1788980979",
+  "osborne-little-shopify.png": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/osborne-little-shopify.png?v=1788980982",
+  "designers-guild.png": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/designers-guild.png?v=1788980984"
+}
\ No newline at end of file
diff --git a/mailer.html b/mailer.html
index edfcd60..fe6e613 100644
--- a/mailer.html
+++ b/mailer.html
@@ -2,7 +2,7 @@
 <html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
 <title>New — Houses We Represent</title></head>
 <body style="margin:0;padding:0;background:#f7f5f2;">
-<div style="display:none;max-height:0;overflow:hidden;opacity:0;">Six ateliers we represent — Phillipe Romano, Thibaut, Cole &amp; Son, Brunschwig &amp; Fils, Designers Guild &amp; Osborne &amp; Little. Order any pattern as a $4.25 sample.</div>
+<div style="display:none;max-height:0;overflow:hidden;opacity:0;">Six ateliers we represent — Phillipe Romano, Thibaut, Cole &amp; Son, Brunschwig &amp; Fils, Designers Guild &amp; Osborne &amp; Little. Order any pattern as a sample.</div>
 <table role="presentation" width="100%" cellpadding="0" cellspacing="0" border="0" style="background:#f7f5f2;">
 <tr><td align="center" style="padding:24px 12px;">
   <table role="presentation" width="600" cellpadding="0" cellspacing="0" border="0" style="width:600px;max-width:600px;background:#ffffff;border:1px solid #e7e2db;">
@@ -13,229 +13,229 @@
     </td></tr>
     <tr><td style="padding:6px 24px 4px;text-align:center;">
       <div style="font-family:'Playfair Display', Georgia, 'Times New Roman', serif;font-size:32px;line-height:1.15;color:#221f1c;">The Houses We Represent</div>
-      <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:13px;line-height:1.55;color:#8a8178;padding:10px 20px 0;">Six ateliers, on our shelves. A few new arrivals from each &mdash; order any pattern as a <strong style="color:#221f1c;">$4.25 sample</strong>, shipped to your studio the same week.</div>
+      <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:13px;line-height:1.55;color:#8a8178;padding:10px 20px 0;">Six ateliers, on our shelves. A few new arrivals from each &mdash; order any pattern as a <strong style="color:#221f1c;">sample</strong>, shipped to your studio the same week.</div>
     </td></tr>
     <tr><td style="padding:18px 24px 0;"><div style="border-top:2px solid #221f1c;font-size:0;line-height:0;">&nbsp;</div></td></tr>
 
         <!-- Phillipe Romano -->
-        <tr><td style="padding:26px 24px 4px;text-align:center;">
+        <tr><td style="padding:16px 24px 4px;text-align:center;">
           <div style="font-family:'Playfair Display', Georgia, 'Times New Roman', serif;font-weight:600;font-size:30px;letter-spacing:.3px;color:#221f1c;">Phillipe Romano</div>
           <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:12px;color:#8a8178;padding-top:6px;">From our own atelier — Milano metallics &amp; grasscloth.</div>
         </td></tr>
-        <tr><td style="padding:8px 18px 0;">
+        <tr><td style="padding:6px 10px 0;">
           <table role="presentation" cellpadding="0" cellspacing="0" border="0" width="100%"><tr>
-              <td width="130" valign="top" style="padding:6px;">
+              <td width="132" valign="top" style="padding:2px;">
                 <a href="https://designerwallcoverings.com/products/regalita-nera-black-wallcovering-phillipe-romano" target="_blank" style="text-decoration:none;color:#221f1c;">
-                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/MI739_MI739_MI739.jpg?v=1775512460" width="118" alt="Regalita Nera — Black" style="display:block;width:118px;height:118px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
-                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.35;color:#221f1c;padding:7px 2px 0;">Regalita Nera — Black</div>
+                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/MI739_MI739_MI739.jpg?v=1775512460" width="128" alt="Regalita Nera — Black" style="display:block;width:128px;height:128px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
+                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.3;color:#221f1c;padding:5px 2px 0;">Regalita Nera — Black</div>
                 </a>
               </td>
-              <td width="130" valign="top" style="padding:6px;">
+              <td width="132" valign="top" style="padding:2px;">
                 <a href="https://designerwallcoverings.com/products/regalita-rossa-red-wallcovering-phillipe-romano" target="_blank" style="text-decoration:none;color:#221f1c;">
-                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/MI738_MI738_MI738.jpg?v=1775512459" width="118" alt="Regalita Rossa — Red" style="display:block;width:118px;height:118px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
-                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.35;color:#221f1c;padding:7px 2px 0;">Regalita Rossa — Red</div>
+                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/MI738_MI738_MI738.jpg?v=1775512459" width="128" alt="Regalita Rossa — Red" style="display:block;width:128px;height:128px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
+                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.3;color:#221f1c;padding:5px 2px 0;">Regalita Rossa — Red</div>
                 </a>
               </td>
-              <td width="130" valign="top" style="padding:6px;">
+              <td width="132" valign="top" style="padding:2px;">
                 <a href="https://designerwallcoverings.com/products/regalita-dorata-gold-wallcovering-phillipe-romano" target="_blank" style="text-decoration:none;color:#221f1c;">
-                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/MI737_MI737_MI737.jpg?v=1775512459" width="118" alt="Regalita Dorata — Gold" style="display:block;width:118px;height:118px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
-                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.35;color:#221f1c;padding:7px 2px 0;">Regalita Dorata — Gold</div>
+                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/MI737_MI737_MI737.jpg?v=1775512459" width="128" alt="Regalita Dorata — Gold" style="display:block;width:128px;height:128px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
+                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.3;color:#221f1c;padding:5px 2px 0;">Regalita Dorata — Gold</div>
                 </a>
               </td>
-              <td width="130" valign="top" style="padding:6px;">
+              <td width="132" valign="top" style="padding:2px;">
                 <a href="https://designerwallcoverings.com/products/regalita-bronzo-bronze-wallcovering-phillipe-romano" target="_blank" style="text-decoration:none;color:#221f1c;">
-                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/MI736_MI736_MI736.jpg?v=1775512459" width="118" alt="Regalita Bronzo — Bronze" style="display:block;width:118px;height:118px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
-                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.35;color:#221f1c;padding:7px 2px 0;">Regalita Bronzo — Bronze</div>
+                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/MI736_MI736_MI736.jpg?v=1775512459" width="128" alt="Regalita Bronzo — Bronze" style="display:block;width:128px;height:128px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
+                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.3;color:#221f1c;padding:5px 2px 0;">Regalita Bronzo — Bronze</div>
                 </a>
               </td>
           </tr></table>
         </td></tr>
         <tr><td style="padding:12px 24px 6px;text-align:center;">
-          <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:12px;color:#8a8178;padding-bottom:12px;">Order any as a <strong style="color:#221f1c;">$4.25 sample</strong>.</div>
+          <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:12px;color:#8a8178;padding-bottom:12px;">Order any pattern as a <strong style="color:#221f1c;">sample</strong>.</div>
           <a href="https://designerwallcoverings.com/collections/phillipe-romano" target="_blank" style="display:inline-block;font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:#221f1c;text-decoration:none;border:1px solid #221f1c;padding:10px 26px;border-radius:2px;">Shop Phillipe Romano &rarr;</a>
         </td></tr>
         <tr><td style="padding:22px 24px 0;"><div style="border-top:1px solid #e7e2db;font-size:0;line-height:0;">&nbsp;</div></td></tr>
         <!-- Thibaut -->
-        <tr><td style="padding:26px 24px 4px;text-align:center;">
-          <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/thibaut.png?v=1771978235" alt="Thibaut" height="42" style="display:inline-block;height:42px;max-height:42px;width:auto;border:0;">
+        <tr><td style="padding:16px 24px 4px;text-align:center;">
+          <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/thibaut.png?v=1788980975" alt="Thibaut" width="250" style="display:inline-block;width:250px;max-width:82%;height:auto;border:0;">
           <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:12px;color:#8a8178;padding-top:6px;">American heritage prints &amp; grounds.</div>
         </td></tr>
-        <tr><td style="padding:8px 18px 0;">
+        <tr><td style="padding:6px 10px 0;">
           <table role="presentation" cellpadding="0" cellspacing="0" border="0" width="100%"><tr>
-              <td width="130" valign="top" style="padding:6px;">
+              <td width="132" valign="top" style="padding:2px;">
                 <a href="https://designerwallcoverings.com/products/onda-pearl-and-silver-dwtt-73419" target="_blank" style="text-decoration:none;color:#221f1c;">
-                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/AT7900_ee1a8674-8c14-4d27-85ee-af82dcbed06c.jpg?v=1782268872" width="118" alt="Onda — Pearl &amp; Silver" style="display:block;width:118px;height:118px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
-                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.35;color:#221f1c;padding:7px 2px 0;">Onda — Pearl &amp; Silver</div>
+                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/AT7900_ee1a8674-8c14-4d27-85ee-af82dcbed06c.jpg?v=1782268872" width="128" alt="Onda — Pearl &amp; Silver" style="display:block;width:128px;height:128px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
+                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.3;color:#221f1c;padding:5px 2px 0;">Onda — Pearl &amp; Silver</div>
                 </a>
               </td>
-              <td width="130" valign="top" style="padding:6px;">
+              <td width="132" valign="top" style="padding:2px;">
                 <a href="https://designerwallcoverings.com/products/gibson-navy-dwtt-73418" target="_blank" style="text-decoration:none;color:#221f1c;">
-                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/AT78793_995d5590-271c-4116-8877-814c9e53bb9a.jpg?v=1782268867" width="118" alt="Gibson — Navy" style="display:block;width:118px;height:118px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
-                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.35;color:#221f1c;padding:7px 2px 0;">Gibson — Navy</div>
+                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/AT78793_995d5590-271c-4116-8877-814c9e53bb9a.jpg?v=1782268867" width="128" alt="Gibson — Navy" style="display:block;width:128px;height:128px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
+                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.3;color:#221f1c;padding:5px 2px 0;">Gibson — Navy</div>
                 </a>
               </td>
-              <td width="130" valign="top" style="padding:6px;">
+              <td width="132" valign="top" style="padding:2px;">
                 <a href="https://designerwallcoverings.com/products/gibson-blue-dwtt-73417" target="_blank" style="text-decoration:none;color:#221f1c;">
-                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/AT78792.jpg?v=1782268864" width="118" alt="Gibson — Blue" style="display:block;width:118px;height:118px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
-                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.35;color:#221f1c;padding:7px 2px 0;">Gibson — Blue</div>
+                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/AT78792.jpg?v=1782268864" width="128" alt="Gibson — Blue" style="display:block;width:128px;height:128px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
+                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.3;color:#221f1c;padding:5px 2px 0;">Gibson — Blue</div>
                 </a>
               </td>
-              <td width="130" valign="top" style="padding:6px;">
+              <td width="132" valign="top" style="padding:2px;">
                 <a href="https://designerwallcoverings.com/products/gibson-grey-dwtt-73416" target="_blank" style="text-decoration:none;color:#221f1c;">
-                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/AT78791_a79740f1-bead-4cd2-943f-18286bfa06d4.jpg?v=1782261625" width="118" alt="Gibson — Grey" style="display:block;width:118px;height:118px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
-                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.35;color:#221f1c;padding:7px 2px 0;">Gibson — Grey</div>
+                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/AT78791_a79740f1-bead-4cd2-943f-18286bfa06d4.jpg?v=1782261625" width="128" alt="Gibson — Grey" style="display:block;width:128px;height:128px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
+                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.3;color:#221f1c;padding:5px 2px 0;">Gibson — Grey</div>
                 </a>
               </td>
           </tr></table>
         </td></tr>
         <tr><td style="padding:12px 24px 6px;text-align:center;">
-          <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:12px;color:#8a8178;padding-bottom:12px;">Order any as a <strong style="color:#221f1c;">$4.25 sample</strong>.</div>
+          <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:12px;color:#8a8178;padding-bottom:12px;">Order any pattern as a <strong style="color:#221f1c;">sample</strong>.</div>
           <a href="https://designerwallcoverings.com/collections/thibaut-wallcoverings" target="_blank" style="display:inline-block;font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:#221f1c;text-decoration:none;border:1px solid #221f1c;padding:10px 26px;border-radius:2px;">Shop Thibaut &rarr;</a>
         </td></tr>
         <tr><td style="padding:22px 24px 0;"><div style="border-top:1px solid #e7e2db;font-size:0;line-height:0;">&nbsp;</div></td></tr>
         <!-- Cole &amp; Son -->
-        <tr><td style="padding:26px 24px 4px;text-align:center;">
-          <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/cole-son.png?v=1771978045" alt="Cole &amp; Son" height="42" style="display:inline-block;height:42px;max-height:42px;width:auto;border:0;">
+        <tr><td style="padding:16px 24px 4px;text-align:center;">
+          <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/cole-son.png?v=1788980977" alt="Cole &amp; Son" width="190" style="display:inline-block;width:190px;max-width:82%;height:auto;border:0;">
           <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:12px;color:#8a8178;padding-top:6px;">Iconic British archive &amp; botanicals.</div>
         </td></tr>
-        <tr><td style="padding:8px 18px 0;">
+        <tr><td style="padding:6px 10px 0;">
           <table role="presentation" cellpadding="0" cellspacing="0" border="0" width="100%"><tr>
-              <td width="130" valign="top" style="padding:6px;">
+              <td width="132" valign="top" style="padding:2px;">
                 <a href="https://designerwallcoverings.com/products/palm-jungle-olive-green-on-white-cole-son-contemporary-restyled-botanical-floral-wallcovering" target="_blank" style="text-decoration:none;color:#221f1c;">
-                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/PalmJungle_Image_Flatshot_Item_95-1001.jpg?v=1779809928" width="118" alt="Palm Jungle — Olive/White" style="display:block;width:118px;height:118px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
-                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.35;color:#221f1c;padding:7px 2px 0;">Palm Jungle — Olive/White</div>
+                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/PalmJungle_Image_Flatshot_Item_95-1001.jpg?v=1779809928" width="128" alt="Palm Jungle — Olive/White" style="display:block;width:128px;height:128px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
+                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.3;color:#221f1c;padding:5px 2px 0;">Palm Jungle — Olive/White</div>
                 </a>
               </td>
-              <td width="130" valign="top" style="padding:6px;">
+              <td width="132" valign="top" style="padding:2px;">
                 <a href="https://designerwallcoverings.com/products/seasonal-woods-silk-platinum-cole-son" target="_blank" style="text-decoration:none;color:#221f1c;">
-                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/seasonal-woods-silk-platinum-cole-son-37235620446259.jpg?v=1785462973" width="118" alt="Seasonal Woods — Platinum" style="display:block;width:118px;height:118px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
-                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.35;color:#221f1c;padding:7px 2px 0;">Seasonal Woods — Platinum</div>
+                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/seasonal-woods-silk-platinum-cole-son-37235620446259.jpg?v=1785462973" width="128" alt="Seasonal Woods — Platinum" style="display:block;width:128px;height:128px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
+                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.3;color:#221f1c;padding:5px 2px 0;">Seasonal Woods — Platinum</div>
                 </a>
               </td>
-              <td width="130" valign="top" style="padding:6px;">
+              <td width="132" valign="top" style="padding:2px;">
                 <a href="https://designerwallcoverings.com/products/verdure-tapestry-silk-pts-l-cole-son" target="_blank" style="text-decoration:none;color:#221f1c;">
-                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/verdure-tapestry-silk-pts-l-cole-son-37223445364787.jpg?v=1785464400" width="118" alt="Verdure Tapestry — Silk" style="display:block;width:118px;height:118px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
-                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.35;color:#221f1c;padding:7px 2px 0;">Verdure Tapestry — Silk</div>
+                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/verdure-tapestry-silk-pts-l-cole-son-37223445364787.jpg?v=1785464400" width="128" alt="Verdure Tapestry — Silk" style="display:block;width:128px;height:128px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
+                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.3;color:#221f1c;padding:5px 2px 0;">Verdure Tapestry — Silk</div>
                 </a>
               </td>
-              <td width="130" valign="top" style="padding:6px;">
+              <td width="132" valign="top" style="padding:2px;">
                 <a href="https://designerwallcoverings.com/products/protea-garden-silk-olvgrn-tngrn-wht-cole-son" target="_blank" style="text-decoration:none;color:#221f1c;">
-                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/119_10045_CS_dab7e6e6-dd85-439c-8a7e-52c91452a607.jpg?v=1776794876" width="118" alt="Protea Garden — Silk" style="display:block;width:118px;height:118px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
-                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.35;color:#221f1c;padding:7px 2px 0;">Protea Garden — Silk</div>
+                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/119_10045_CS_dab7e6e6-dd85-439c-8a7e-52c91452a607.jpg?v=1776794876" width="128" alt="Protea Garden — Silk" style="display:block;width:128px;height:128px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
+                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.3;color:#221f1c;padding:5px 2px 0;">Protea Garden — Silk</div>
                 </a>
               </td>
           </tr></table>
         </td></tr>
         <tr><td style="padding:12px 24px 6px;text-align:center;">
-          <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:12px;color:#8a8178;padding-bottom:12px;">Order any as a <strong style="color:#221f1c;">$4.25 sample</strong>.</div>
+          <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:12px;color:#8a8178;padding-bottom:12px;">Order any pattern as a <strong style="color:#221f1c;">sample</strong>.</div>
           <a href="https://designerwallcoverings.com/collections/cole-and-son" target="_blank" style="display:inline-block;font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:#221f1c;text-decoration:none;border:1px solid #221f1c;padding:10px 26px;border-radius:2px;">Shop Cole &amp; Son &rarr;</a>
         </td></tr>
         <tr><td style="padding:22px 24px 0;"><div style="border-top:1px solid #e7e2db;font-size:0;line-height:0;">&nbsp;</div></td></tr>
         <!-- Brunschwig &amp; Fils -->
-        <tr><td style="padding:26px 24px 4px;text-align:center;">
-          <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/brunschwig-fils.png?v=1771979287" alt="Brunschwig &amp; Fils" height="42" style="display:inline-block;height:42px;max-height:42px;width:auto;border:0;">
+        <tr><td style="padding:16px 24px 4px;text-align:center;">
+          <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/brunschwig-fils.png?v=1788980979" alt="Brunschwig &amp; Fils" width="150" style="display:inline-block;width:150px;max-width:82%;height:auto;border:0;">
           <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:12px;color:#8a8178;padding-top:6px;">Timeless texture &amp; French elegance.</div>
         </td></tr>
-        <tr><td style="padding:8px 18px 0;">
+        <tr><td style="padding:6px 10px 0;">
           <table role="presentation" cellpadding="0" cellspacing="0" border="0" width="100%"><tr>
-              <td width="130" valign="top" style="padding:6px;">
+              <td width="132" valign="top" style="padding:2px;">
                 <a href="https://designerwallcoverings.com/products/yasu-silver-brunschwig-fils" target="_blank" style="text-decoration:none;color:#221f1c;">
-                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/P8015111_11_926bf78a-0113-4b3d-a601-d75cad06b09c.jpg?v=1777019993" width="118" alt="Yasu — Silver" style="display:block;width:118px;height:118px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
-                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.35;color:#221f1c;padding:7px 2px 0;">Yasu — Silver</div>
+                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/P8015111_11_926bf78a-0113-4b3d-a601-d75cad06b09c.jpg?v=1777019993" width="128" alt="Yasu — Silver" style="display:block;width:128px;height:128px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
+                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.3;color:#221f1c;padding:5px 2px 0;">Yasu — Silver</div>
                 </a>
               </td>
-              <td width="130" valign="top" style="padding:6px;">
+              <td width="132" valign="top" style="padding:2px;">
                 <a href="https://designerwallcoverings.com/products/aya-silver-brunschwig-fils" target="_blank" style="text-decoration:none;color:#221f1c;">
-                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/P8015110_11_d7f516c7-b57d-46e0-af8a-a2b65ba5848c.jpg?v=1776818900" width="118" alt="Aya — Silver" style="display:block;width:118px;height:118px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
-                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.35;color:#221f1c;padding:7px 2px 0;">Aya — Silver</div>
+                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/P8015110_11_d7f516c7-b57d-46e0-af8a-a2b65ba5848c.jpg?v=1776818900" width="128" alt="Aya — Silver" style="display:block;width:128px;height:128px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
+                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.3;color:#221f1c;padding:5px 2px 0;">Aya — Silver</div>
                 </a>
               </td>
-              <td width="130" valign="top" style="padding:6px;">
+              <td width="132" valign="top" style="padding:2px;">
                 <a href="https://designerwallcoverings.com/products/haizu-silver-brunschwig-fils" target="_blank" style="text-decoration:none;color:#221f1c;">
-                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/P8015109_11_107b9977-9cb8-45c1-89c2-d3c128ab661a.jpg?v=1776795793" width="118" alt="Haizu — Silver" style="display:block;width:118px;height:118px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
-                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.35;color:#221f1c;padding:7px 2px 0;">Haizu — Silver</div>
+                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/P8015109_11_107b9977-9cb8-45c1-89c2-d3c128ab661a.jpg?v=1776795793" width="128" alt="Haizu — Silver" style="display:block;width:128px;height:128px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
+                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.3;color:#221f1c;padding:5px 2px 0;">Haizu — Silver</div>
                 </a>
               </td>
-              <td width="130" valign="top" style="padding:6px;">
+              <td width="132" valign="top" style="padding:2px;">
                 <a href="https://designerwallcoverings.com/products/kashmiri-sapphire-blue-wallcovering-brunschwig-fils" target="_blank" style="text-decoration:none;color:#221f1c;">
-                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/kashmiri-sapphire-blue-wallcovering-brunschwig-fils-37155195748403.jpg?v=1785456694" width="118" alt="Kashmiri — Sapphire/Blue" style="display:block;width:118px;height:118px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
-                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.35;color:#221f1c;padding:7px 2px 0;">Kashmiri — Sapphire/Blue</div>
+                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/kashmiri-sapphire-blue-wallcovering-brunschwig-fils-37155195748403.jpg?v=1785456694" width="128" alt="Kashmiri — Sapphire/Blue" style="display:block;width:128px;height:128px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
+                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.3;color:#221f1c;padding:5px 2px 0;">Kashmiri — Sapphire/Blue</div>
                 </a>
               </td>
           </tr></table>
         </td></tr>
         <tr><td style="padding:12px 24px 6px;text-align:center;">
-          <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:12px;color:#8a8178;padding-bottom:12px;">Order any as a <strong style="color:#221f1c;">$4.25 sample</strong>.</div>
+          <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:12px;color:#8a8178;padding-bottom:12px;">Order any pattern as a <strong style="color:#221f1c;">sample</strong>.</div>
           <a href="https://designerwallcoverings.com/collections/brunschwig-fils" target="_blank" style="display:inline-block;font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:#221f1c;text-decoration:none;border:1px solid #221f1c;padding:10px 26px;border-radius:2px;">Shop Brunschwig &amp; Fils &rarr;</a>
         </td></tr>
         <tr><td style="padding:22px 24px 0;"><div style="border-top:1px solid #e7e2db;font-size:0;line-height:0;">&nbsp;</div></td></tr>
         <!-- Designers Guild -->
-        <tr><td style="padding:26px 24px 4px;text-align:center;">
-          <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/designers-guild.webp?v=1771978051" alt="Designers Guild" height="42" style="display:inline-block;height:42px;max-height:42px;width:auto;border:0;">
+        <tr><td style="padding:16px 24px 4px;text-align:center;">
+          <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/designers-guild.png?v=1788980984" alt="Designers Guild" width="300" style="display:inline-block;width:300px;max-width:82%;height:auto;border:0;">
           <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:12px;color:#8a8178;padding-top:6px;">Colour-led damasks &amp; florals.</div>
         </td></tr>
-        <tr><td style="padding:8px 18px 0;">
+        <tr><td style="padding:6px 10px 0;">
           <table role="presentation" cellpadding="0" cellspacing="0" border="0" width="100%"><tr>
-              <td width="130" valign="top" style="padding:6px;">
+              <td width="132" valign="top" style="padding:2px;">
                 <a href="https://designerwallcoverings.com/products/eur-90365-designer-wallcoverings-los-angeles" target="_blank" style="text-decoration:none;color:#221f1c;">
-                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/96434.jpg?v=1782461438" width="118" alt="Surimono Watercolour — Rose" style="display:block;width:118px;height:118px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
-                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.35;color:#221f1c;padding:7px 2px 0;">Surimono Watercolour — Rose</div>
+                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/96434.jpg?v=1782461438" width="128" alt="Surimono Watercolour — Rose" style="display:block;width:128px;height:128px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
+                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.3;color:#221f1c;padding:5px 2px 0;">Surimono Watercolour — Rose</div>
                 </a>
               </td>
-              <td width="130" valign="top" style="padding:6px;">
+              <td width="132" valign="top" style="padding:2px;">
                 <a href="https://designerwallcoverings.com/products/eur-80735-pdg1050-designer-wallcoverings-los-angeles" target="_blank" style="text-decoration:none;color:#221f1c;">
-                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/91544.jpg?v=1782461419" width="118" alt="Emilie Botanical — Platinum" style="display:block;width:118px;height:118px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
-                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.35;color:#221f1c;padding:7px 2px 0;">Emilie Botanical — Platinum</div>
+                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/91544.jpg?v=1782461419" width="128" alt="Emilie Botanical — Platinum" style="display:block;width:128px;height:128px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
+                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.3;color:#221f1c;padding:5px 2px 0;">Emilie Botanical — Platinum</div>
                 </a>
               </td>
-              <td width="130" valign="top" style="padding:6px;">
+              <td width="132" valign="top" style="padding:2px;">
                 <a href="https://designerwallcoverings.com/products/eur-80706-pdg1036-designer-wallcoverings-los-angeles" target="_blank" style="text-decoration:none;color:#221f1c;">
-                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/82097.jpg?v=1782461625" width="118" alt="Angelique Damask — Blue" style="display:block;width:118px;height:118px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
-                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.35;color:#221f1c;padding:7px 2px 0;">Angelique Damask — Blue</div>
+                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/82097.jpg?v=1782461625" width="128" alt="Angelique Damask — Blue" style="display:block;width:128px;height:128px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
+                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.3;color:#221f1c;padding:5px 2px 0;">Angelique Damask — Blue</div>
                 </a>
               </td>
           </tr></table>
         </td></tr>
         <tr><td style="padding:12px 24px 6px;text-align:center;">
-          <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:12px;color:#8a8178;padding-bottom:12px;">Order any as a <strong style="color:#221f1c;">$4.25 sample</strong>.</div>
+          <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:12px;color:#8a8178;padding-bottom:12px;">Order any pattern as a <strong style="color:#221f1c;">sample</strong>.</div>
           <a href="https://designerwallcoverings.com/collections/designers-guild-wallpaper" target="_blank" style="display:inline-block;font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:#221f1c;text-decoration:none;border:1px solid #221f1c;padding:10px 26px;border-radius:2px;">Shop Designers Guild &rarr;</a>
         </td></tr>
         <tr><td style="padding:22px 24px 0;"><div style="border-top:1px solid #e7e2db;font-size:0;line-height:0;">&nbsp;</div></td></tr>
         <!-- Osborne &amp; Little -->
-        <tr><td style="padding:26px 24px 4px;text-align:center;">
-          <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/osborne-little-shopify.png?v=1771978100" alt="Osborne &amp; Little" height="42" style="display:inline-block;height:42px;max-height:42px;width:auto;border:0;">
+        <tr><td style="padding:16px 24px 4px;text-align:center;">
+          <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/osborne-little-shopify.png?v=1788980982" alt="Osborne &amp; Little" width="100" style="display:inline-block;width:100px;max-width:82%;height:auto;border:0;">
           <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:12px;color:#8a8178;padding-top:6px;">London design house — pattern &amp; stripe.</div>
         </td></tr>
-        <tr><td style="padding:8px 18px 0;">
+        <tr><td style="padding:6px 10px 0;">
           <table role="presentation" cellpadding="0" cellspacing="0" border="0" width="100%"><tr>
-              <td width="130" valign="top" style="padding:6px;">
+              <td width="132" valign="top" style="padding:2px;">
                 <a href="https://designerwallcoverings.com/products/fitzroy-white-stone-osborne-little" target="_blank" style="text-decoration:none;color:#221f1c;">
-                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W6295-06.jpg?v=1781902811" width="118" alt="Fitzroy — White/Stone" style="display:block;width:118px;height:118px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
-                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.35;color:#221f1c;padding:7px 2px 0;">Fitzroy — White/Stone</div>
+                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W6295-06.jpg?v=1781902811" width="128" alt="Fitzroy — White/Stone" style="display:block;width:128px;height:128px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
+                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.3;color:#221f1c;padding:5px 2px 0;">Fitzroy — White/Stone</div>
                 </a>
               </td>
-              <td width="130" valign="top" style="padding:6px;">
+              <td width="132" valign="top" style="padding:2px;">
                 <a href="https://designerwallcoverings.com/products/karabali-teal-russet-osborne-little" target="_blank" style="text-decoration:none;color:#221f1c;">
-                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/NCW4597-04.jpg?v=1781902807" width="118" alt="Karabali — Teal/Russet" style="display:block;width:118px;height:118px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
-                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.35;color:#221f1c;padding:7px 2px 0;">Karabali — Teal/Russet</div>
+                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/NCW4597-04.jpg?v=1781902807" width="128" alt="Karabali — Teal/Russet" style="display:block;width:128px;height:128px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
+                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.3;color:#221f1c;padding:5px 2px 0;">Karabali — Teal/Russet</div>
                 </a>
               </td>
-              <td width="130" valign="top" style="padding:6px;">
+              <td width="132" valign="top" style="padding:2px;">
                 <a href="https://designerwallcoverings.com/products/bramante-stripe-wallcovering-osborne-little" target="_blank" style="text-decoration:none;color:#221f1c;">
-                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/bramante-stripe.jpg?v=1760735635" width="118" alt="Bramante Stripe" style="display:block;width:118px;height:118px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
-                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.35;color:#221f1c;padding:7px 2px 0;">Bramante Stripe</div>
+                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/bramante-stripe.jpg?v=1760735635" width="128" alt="Bramante Stripe" style="display:block;width:128px;height:128px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
+                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.3;color:#221f1c;padding:5px 2px 0;">Bramante Stripe</div>
                 </a>
               </td>
-              <td width="130" valign="top" style="padding:6px;">
+              <td width="132" valign="top" style="padding:2px;">
                 <a href="https://designerwallcoverings.com/products/eur-71338-designer-wallcoverings-los-angeles" target="_blank" style="text-decoration:none;color:#221f1c;">
-                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/cw5410-09.jpg?v=1782461570" width="118" alt="Quartz" style="display:block;width:118px;height:118px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
-                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.35;color:#221f1c;padding:7px 2px 0;">Quartz</div>
+                  <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/cw5410-09.jpg?v=1782461570" width="128" alt="Quartz" style="display:block;width:128px;height:128px;object-fit:cover;border:1px solid #e7e2db;border-radius:3px;background:#fff;">
+                  <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:11px;line-height:1.3;color:#221f1c;padding:5px 2px 0;">Quartz</div>
                 </a>
               </td>
           </tr></table>
         </td></tr>
         <tr><td style="padding:12px 24px 6px;text-align:center;">
-          <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:12px;color:#8a8178;padding-bottom:12px;">Order any as a <strong style="color:#221f1c;">$4.25 sample</strong>.</div>
+          <div style="font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:12px;color:#8a8178;padding-bottom:12px;">Order any pattern as a <strong style="color:#221f1c;">sample</strong>.</div>
           <a href="https://designerwallcoverings.com/collections/osborne-little" target="_blank" style="display:inline-block;font-family:-apple-system, 'Helvetica Neue', Arial, sans-serif;font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:#221f1c;text-decoration:none;border:1px solid #221f1c;padding:10px 26px;border-radius:2px;">Shop Osborne &amp; Little &rarr;</a>
         </td></tr>
         <tr><td style="padding:22px 24px 0;"><div style="border-top:1px solid #e7e2db;font-size:0;line-height:0;">&nbsp;</div></td></tr>
diff --git a/upload_logos.mjs b/upload_logos.mjs
new file mode 100644
index 0000000..a385180
--- /dev/null
+++ b/upload_logos.mjs
@@ -0,0 +1,58 @@
+import fs from 'node:fs';
+import path from 'node:path';
+
+const env = fs.readFileSync(path.join(process.env.HOME,'Projects/secrets-manager/.env'),'utf8');
+const g = k => (env.match(new RegExp('^'+k+'=(.*)$','m'))||[])[1]?.trim().replace(/^["']|["']$/g,'');
+const TOKEN = g('SHOPIFY_FULL_ACCESS_TOKEN') || g('SHOPIFY_ADMIN_TOKEN');
+const SHOP = 'designer-laboratory-sandbox.myshopify.com';
+const API = '2024-10';
+const GQL = `https://${SHOP}/admin/api/${API}/graphql.json`;
+const H = { 'X-Shopify-Access-Token': TOKEN, 'Content-Type':'application/json' };
+
+const files = ['thibaut.png','cole-son.png','brunschwig-fils.png','osborne-little-shopify.png','designers-guild.png']
+  .map(f => path.join('/tmp/dwlogos', f));
+
+async function gql(query, variables){
+  const r = await fetch(GQL,{method:'POST',headers:H,body:JSON.stringify({query,variables})});
+  const j = await r.json();
+  if(j.errors) throw new Error(JSON.stringify(j.errors));
+  return j.data;
+}
+
+async function uploadOne(fp){
+  const filename = path.basename(fp);
+  // 1) staged target
+  const d1 = await gql(`mutation($input:[StagedUploadInput!]!){stagedUploadsCreate(input:$input){stagedTargets{url resourceUrl parameters{name value}} userErrors{field message}}}`,
+    {input:[{filename, mimeType:'image/png', resource:'FILE', httpMethod:'POST'}]});
+  const t = d1.stagedUploadsCreate.stagedTargets[0];
+  if(!t) throw new Error('no staged target: '+JSON.stringify(d1));
+  // 2) upload to staged url (multipart)
+  const form = new FormData();
+  for(const p of t.parameters) form.append(p.name, p.value);
+  form.append('file', new Blob([fs.readFileSync(fp)],{type:'image/png'}), filename);
+  const up = await fetch(t.url,{method:'POST',body:form});
+  if(!(up.status>=200 && up.status<300)) throw new Error('staged upload failed '+up.status+' '+await up.text());
+  // 3) fileCreate
+  const d2 = await gql(`mutation($files:[FileCreateInput!]!){fileCreate(files:$files){files{id fileStatus alt} userErrors{field message}}}`,
+    {files:[{originalSource:t.resourceUrl, contentType:'IMAGE', alt:filename.replace('.png','')}]});
+  const errs = d2.fileCreate.userErrors;
+  if(errs && errs.length) throw new Error('fileCreate: '+JSON.stringify(errs));
+  const id = d2.fileCreate.files[0].id;
+  // 4) poll for READY url
+  for(let i=0;i<20;i++){
+    await new Promise(r=>setTimeout(r,1500));
+    const d3 = await gql(`query($id:ID!){node(id:$id){... on MediaImage{fileStatus image{url}}}}`,{id});
+    const n = d3.node;
+    if(n && n.fileStatus==='READY' && n.image && n.image.url) return {filename, url:n.image.url};
+    if(n && n.fileStatus==='FAILED') throw new Error('file processing FAILED');
+  }
+  throw new Error('timeout waiting for READY: '+filename);
+}
+
+const out={};
+for(const fp of files){
+  try{ const r=await uploadOne(fp); out[r.filename]=r.url; console.log('✓',r.filename,'->',r.url); }
+  catch(e){ console.error('✗',path.basename(fp),e.message); }
+}
+fs.writeFileSync('logo-urls.json', JSON.stringify(out,null,2));
+console.log('\nsaved logo-urls.json');

← e9cab77 Keep cc_finish.py (code-exchange+draft); CC API app rejects  ·  back to Dw Vendor Mailer  ·  Center captions, dedupe colorways->distinct patterns (newest 754d65c →