{"product_id":"magna-anchor™-magnetic-golf-towel-the-40-16-40","title":"Magna-Anchor™ Magnetic Golf Towel – The 40 (16×40)","description":"\u003cstyle\u003e\n\/* =========================\n   AF APPLE-STYLE DARK MODE — THE 40 PDP (FINAL)\n   LOCKED OPTION A PALETTE\n   ========================= *\/\n:root {\n  \/* Locked Palette *\/\n  --af-graphite: #0B0D0B;\n  --af-tech: #9FB8A0;\n  --af-olive: #1A2517;\n  --af-signal: #22C55E;\n\n  \/* Functional Mappings *\/\n  --bg-color: var(--af-graphite);\n  --card-bg: #0B0D0B;\n  --text-main: #f5f5f7;\n  --text-muted: #A3A3A8;\n  \n  \/* Borders \u0026 Shadows *\/\n  --border: rgba(159, 184, 160, 0.2); \n  --border-soft: rgba(159, 184, 160, 0.1);\n  --shadow: 0 20px 40px rgba(0,0,0,0.6);\n  --glow: 0 0 20px rgba(159, 184, 160, 0.15); \/* Premium lift *\/\n}\n\n.af-luxury-page {\n  background: var(--bg-color);\n  color: var(--text-main);\n  padding: 60px 20px;\n  font-family: -apple-system, BlinkMacSystemFont, \"SF Pro Text\", \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  line-height: 1.6;\n  -webkit-font-smoothing: antialiased;\n}\n.af-luxury-page * { box-sizing: border-box; }\n.af-container { max-width: 1000px; margin: 0 auto; }\n\n\/* HEADER \u0026 TYPOGRAPHY *\/\n.af-eyebrow {\n  color: var(--af-tech);\n  letter-spacing: .1em;\n  text-transform: uppercase;\n  font-weight: 800;\n  font-size: .75rem;\n  margin: 0 0 16px;\n  text-align: center;\n}\n.af-hero {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  margin-bottom: 32px;\n}\n.af-hero h1 {\n  margin: 0 0 14px;\n  font-weight: 800;\n  line-height: 1.05;\n  font-size: clamp(2.5rem, 5vw, 4rem);\n  letter-spacing: -0.02em;\n  background: linear-gradient(180deg, #fff, #a1a1aa);\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  text-align: center;\n}\n.af-lead {\n  font-size: 1.3rem;\n  color: #fff;\n  font-weight: 750;\n  text-align: center;\n  margin: 12px 0 10px;\n}\n.af-lede {\n  margin: 0 auto 0;\n  max-width: 760px;\n  color: var(--text-muted);\n  font-size: 1.1rem;\n  text-align: center;\n  line-height: 1.6;\n}\n\n\/* CARDS *\/\n.af-card {\n  background: rgba(255,255,255,0.02);\n  border-radius: 24px;\n  padding: 32px;\n  margin: 24px 0;\n  border: 1px solid var(--border);\n  box-shadow: var(--shadow);\n}\n.af-card--tech {\n  background: linear-gradient(180deg, rgba(159,184,160,0.05), var(--af-graphite));\n  border: 1px solid rgba(159,184,160,0.25);\n}\n.af-card--glow {\n  box-shadow: var(--glow);\n  border-color: rgba(159,184,160,0.4);\n}\n.af-h2 {\n  margin: 0 0 12px;\n  font-size: 1.8rem;\n  line-height: 1.2;\n  font-weight: 800;\n  color: #fff;\n  letter-spacing: -0.01em;\n}\n.af-muted {\n  color: var(--text-muted);\n  font-size: 1.05rem;\n  margin: 0 0 1rem;\n}\n\n\/* VALUE SNAPSHOT MODULE (NEW) *\/\n.af-value-stack {\n  display: flex;\n  flex-direction: column;\n  gap: 16px;\n}\n.af-value-row {\n  display: flex;\n  align-items: flex-start;\n  gap: 16px;\n  padding: 12px 0;\n  border-bottom: 1px solid var(--border-soft);\n}\n.af-value-row:last-child { border-bottom: none; }\n.af-value-icon {\n  color: var(--af-tech);\n  font-size: 1.4rem;\n  line-height: 1;\n  flex-shrink: 0;\n  margin-top: 2px;\n}\n.af-value-content strong {\n  display: block;\n  color: #fff;\n  font-size: 1.05rem;\n  font-weight: 700;\n  margin-bottom: 4px;\n}\n.af-value-content span {\n  color: var(--text-muted);\n  font-size: 0.95rem;\n  line-height: 1.4;\n}\n\n\/* IMAGE WRAPPERS *\/\n.af-img-wrap {\n  margin: 0 0 16px 0;\n  border-radius: 20px;\n  overflow: hidden;\n  border: 1px solid var(--border-soft);\n  background: #000;\n  position: relative;\n}\n.af-img { display: block; width: 100%; height: auto; }\nvideo.af-img { border-radius: 20px; width: 100%; height: auto; }\n\n\/* BUTTONS *\/\n.af-btn-wrap {\n  display: flex;\n  justify-content: center;\n  flex-wrap: wrap;\n  gap: 12px;\n  margin-top: 20px;\n  align-items: center;\n}\n.af-btn {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  padding: 16px 32px;\n  border-radius: 999px;\n  font-weight: 750;\n  text-decoration: none;\n  font-size: 1.05rem;\n  transition: all .2s ease;\n  border: 0;\n  cursor: pointer;\n  min-height: 52px;\n}\n.af-btn-primary {\n  background: var(--af-signal);\n  color: #000;\n  border: 1px solid var(--af-signal);\n  font-weight: 900;\n  box-shadow: 0 4px 15px rgba(34, 197, 94, 0.4);\n}\n.af-btn-primary:hover { filter: brightness(1.1); transform: translateY(-2px); }\n.af-btn-secondary {\n  background: rgba(255,255,255,0.03);\n  color: #fff;\n  border: 1px solid rgba(255,255,255,0.15);\n  font-size: 1rem;\n}\n.af-btn-secondary:hover { background: rgba(255,255,255,0.08); border-color: #fff; }\n\n\/* INTERACTION MODULE *\/\n.af-hero-interaction {\n  background: rgba(255,255,255,0.03);\n  border: 1px solid var(--af-tech);\n  border-radius: 28px;\n  padding: 24px;\n  margin: 0 auto;\n  max-width: 580px;\n  width: 100%;\n  backdrop-filter: blur(10px);\n  text-align: center;\n  \/* Glow applied via class in HTML, or default shadow here *\/\n  box-shadow: 0 20px 50px rgba(0,0,0,0.5);\n}\n.af-interaction-label {\n  font-size: .85rem;\n  text-transform: uppercase;\n  letter-spacing: .08em;\n  color: var(--af-tech);\n  margin-bottom: 12px;\n  font-weight: 800;\n  display: block;\n}\n.af-swatch-row {\n  display: flex;\n  justify-content: center;\n  gap: 14px;\n  margin-bottom: 16px;\n  flex-wrap: wrap;\n}\n.af-swatch {\n  width: 36px; height: 36px; border-radius: 50%;\n  border: 2px solid rgba(255,255,255,0.2);\n  cursor: pointer;\n  transition: transform .2s;\n  padding: 0;\n  background: #111;\n}\n.af-swatch:hover { transform: scale(1.15); border-color: #fff; }\n.af-swatch[aria-selected=\"true\"] {\n  border-color: var(--af-signal);\n  box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.25);\n  transform: scale(1.15);\n}\n\/* Swatch Colors *\/\n.af-swatch[data-af-finish=\"Black\"], .af-swatch[data-af-bundle-finish=\"Black\"], .af-swatch[data-af-finish-both-stubby=\"Black\"], .af-swatch[data-af-finish-40=\"Black\"], .af-swatch[data-af-finish-both-40=\"Black\"] {background:#111;}\n.af-swatch[data-af-finish=\"Blue\"], .af-swatch[data-af-bundle-finish=\"Blue\"], .af-swatch[data-af-finish-both-stubby=\"Blue\"], .af-swatch[data-af-finish-40=\"Blue\"], .af-swatch[data-af-finish-both-40=\"Blue\"] {background:#1e3a8a;}\n.af-swatch[data-af-finish=\"Augusta Green\"], .af-swatch[data-af-bundle-finish=\"Augusta Green\"], .af-swatch[data-af-finish-both-stubby=\"Augusta Green\"], .af-swatch[data-af-finish-40=\"Green\"], .af-swatch[data-af-finish-both-40=\"Green\"] {background:#14532d;}\n.af-swatch[data-af-finish=\"Birdie Blue\"], .af-swatch[data-af-bundle-finish=\"Birdie Blue\"], .af-swatch[data-af-finish-both-stubby=\"Birdie Blue\"] {background:#0ea5e9;}\n.af-swatch[data-af-finish=\"Grey\"], .af-swatch[data-af-bundle-finish=\"Grey\"], .af-swatch[data-af-finish-both-stubby=\"Grey\"], .af-swatch[data-af-finish-40=\"Grey\"], .af-swatch[data-af-finish-both-40=\"Grey\"] {background:#4b5563;}\n.af-swatch[data-af-finish=\"Gunmetal Grey\"], .af-swatch[data-af-bundle-finish=\"Gunmetal Grey\"], .af-swatch[data-af-finish-both-stubby=\"Gunmetal Grey\"] {background:#374151;}\n.af-swatch[data-af-finish=\"Red\"], .af-swatch[data-af-bundle-finish=\"Red\"], .af-swatch[data-af-finish-both-stubby=\"Red\"] {background:#991b1b;}\n\n.af-nudge {\n  text-align: center;\n  margin-top: 12px;\n  color: var(--text-muted);\n  font-size: .95rem;\n}\n\n\/* STEPS *\/\n.af-steps {\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: 20px;\n  margin-top: 20px;\n}\n.af-step {\n  background: rgba(159,184,160,0.05);\n  border: 1px solid rgba(159,184,160,0.2);\n  border-radius: 20px;\n  padding: 24px;\n}\n.af-step h3 {\n  margin: 16px 0 8px 0;\n  font-size: 1.3rem;\n  font-weight: 900;\n  color: var(--af-signal);\n  text-transform: uppercase;\n  letter-spacing: 0.02em;\n}\n.af-step p {\n  margin: 0;\n  color: #e5e7eb;\n  font-size: 1.1rem;\n  line-height: 1.5;\n}\n\n\/* DRAWERS *\/\n.af-drawer {\n  border-top: 1px solid var(--border);\n  padding: 16px 0;\n  margin-top: 16px;\n}\n.af-drawer summary {\n  cursor: pointer;\n  font-weight: 700;\n  color: #fff;\n  font-size: 1.05rem;\n  list-style: none;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  padding: 4px 0;\n}\n.af-drawer summary::-webkit-details-marker { display: none; }\n.af-drawer summary::after { content: \"+\"; font-weight: 400; color: var(--text-muted); font-size: 1.5rem; }\n.af-drawer[open] summary::after { content: \"−\"; }\n.af-drawer .af-drawer-body { margin-top: 12px; color: var(--text-muted); line-height: 1.6; }\n\n\/* TABLES \u0026 GRIDS *\/\n.af-compare-table {\n  width: 100%;\n  border-collapse: separate;\n  border-spacing: 0;\n  margin: 20px 0;\n  font-size: 1rem;\n  color: var(--text-main);\n  border: 1px solid var(--border);\n  border-radius: 12px;\n  overflow: hidden;\n}\n.af-compare-table th, .af-compare-table td { padding: 14px 16px; text-align: left; border-bottom: 1px solid var(--border-soft); }\n.af-compare-table th { background: rgba(159,184,160,0.1); color: #fff; font-weight: 700; }\n.af-compare-table td:first-child { font-weight: 700; color: var(--af-tech); width: 35%; }\n.af-compare-table tr:last-child td { border-bottom: none; }\n\n.af-grid-2 { display: grid; grid-template-columns: 1fr; gap: 24px; }\n@media (min-width: 768px) {\n  .af-grid-2 { grid-template-columns: 1fr 1fr; }\n  .af-bundle-preview { grid-template-columns: 1fr 1fr !important; }\n}\n@media (max-width: 767px) {\n  .af-luxury-page { padding: 40px 16px; }\n  .af-card { padding: 24px; }\n  .af-btn { width: 100%; }\n}\n\n\/* STANDARDS *\/\n.af-standards-citation {\n  margin: 40px 0 0 0;\n  padding: 24px;\n  background: var(--af-olive);\n  border: 1px solid rgba(159,184,160,0.3);\n  border-radius: 20px;\n}\n\u003c\/style\u003e\n\u003cdiv class=\"af-luxury-page\"\u003e\n\u003cdiv class=\"af-container\"\u003e\n\u003cheader class=\"af-hero\"\u003e\n\u003cp class=\"af-eyebrow\"\u003e16×40 Size • Dual Wash Pockets • Center Magnet\u003c\/p\u003e\n\u003ch1\u003eMagna-Anchor™ Magnetic Towel — “The 40”\u003c\/h1\u003e\n\u003cp class=\"af-lead\"\u003eTwo 20-inch towels in one system.\u003c\/p\u003e\n\u003cp style=\"margin-bottom: 24px;\" class=\"af-lede\"\u003eMost large towels are just \"big.\" The 40 is engineered: centered docking keeps it balanced, and dual wash pockets give you true separation between the dirty work and the dry finish.\u003c\/p\u003e\n\u003cdiv class=\"af-hero-interaction af-card--glow\" data-af-variant-sync=\"\"\u003e\n\u003cdiv class=\"af-img-wrap\"\u003e\u003cimg loading=\"eager\" alt=\"Magna-Anchor Magnetic Towel — The 40\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/mAIN_IMAGE_UPDATE_28.jpg?v=1767904750\" data-af-hero-img=\"\" class=\"af-img\"\u003e\u003c\/div\u003e\n\u003cspan class=\"af-interaction-label\"\u003eSelect Finish\u003c\/span\u003e\n\u003cdiv aria-label=\"Choose finish\" role=\"listbox\" class=\"af-swatch-row\"\u003e\n\u003cbutton aria-label=\"Black\" data-af-finish=\"Black\" type=\"button\" class=\"af-swatch\"\u003e\u003c\/button\u003e \u003cbutton aria-label=\"Blue\" data-af-finish=\"Blue\" type=\"button\" class=\"af-swatch\"\u003e\u003c\/button\u003e \u003cbutton aria-label=\"Green\" data-af-finish=\"Green\" type=\"button\" class=\"af-swatch\"\u003e\u003c\/button\u003e \u003cbutton aria-label=\"Grey\" data-af-finish=\"Grey\" type=\"button\" class=\"af-swatch\"\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv data-af-status=\"\" class=\"af-nudge\"\u003ePick a finish to see it.\u003c\/div\u003e\n\u003cdiv class=\"af-btn-wrap\"\u003e\n\u003cbutton data-af-atc=\"\" type=\"button\" class=\"af-btn af-btn-primary\"\u003eAdd The 40 to Cart\u003c\/button\u003e \u003ca href=\"#workflow\" class=\"af-btn af-btn-secondary\"\u003eSee the Routine\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"margin-top: 32px; padding: 24px;\" class=\"af-card af-card--glow\"\u003e\n\u003cdiv class=\"af-value-stack\"\u003e\n\u003cdiv class=\"af-value-row\"\u003e\n\u003cdiv class=\"af-value-icon\"\u003e◉\u003c\/div\u003e\n\u003cdiv class=\"af-value-content\"\u003e\n\u003cstrong\u003eCentered Magnet\u003c\/strong\u003e \u003cspan\u003eDocks perfectly balanced.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"af-value-row\"\u003e\n\u003cdiv class=\"af-value-icon\"\u003e◉\u003c\/div\u003e\n\u003cdiv class=\"af-value-content\"\u003e\n\u003cstrong\u003eDual Wash Pockets\u003c\/strong\u003e \u003cspan\u003eSeparate zones for wet\/dry or face\/hands.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"af-value-row\"\u003e\n\u003cdiv class=\"af-value-icon\"\u003e◉\u003c\/div\u003e\n\u003cdiv class=\"af-value-content\"\u003e\n\u003cstrong\u003eMaximum Coverage\u003c\/strong\u003e \u003cspan\u003e16×40 size creates a massive cleaning surface.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/header\u003e\n\u003csection style=\"padding: 24px;\" class=\"af-card\"\u003e\n\u003ch2 style=\"font-size: 1.4rem;\" class=\"af-h2\"\u003eWatch a golfer test it\u003c\/h2\u003e\n\u003cp style=\"font-size: 1rem;\" class=\"af-muted\"\u003eReal speed. Real routine.\u003c\/p\u003e\n\u003cdiv class=\"af-img-wrap\"\u003e\u003cvideo poster=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/2026_Amazon_Main_Image.jpg?v=1769714394\" preload=\"metadata\" playsinline=\"\" controls=\"controls\" class=\"af-img\"\u003e\n      \u003csource type=\"video\/mp4\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/01bd39c9ab2c44e6b5036037fc35b895.mp4\"\u003e\u003c\/video\u003e\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"af-card af-card--tech\" id=\"workflow\"\u003e\n\u003ch2 class=\"af-h2\"\u003eScrub → Wash → Dry\u003c\/h2\u003e\n\u003cp class=\"af-muted\"\u003eThree steps. No thinking. Clean gear without slowing the round.\u003c\/p\u003e\n\u003cdiv aria-label=\"Scrub Wash Dry steps\" class=\"af-steps\"\u003e\n\u003cdiv class=\"af-step\"\u003e\n\u003cdiv class=\"af-img-wrap\"\u003e\u003cimg alt=\"Scrubbing club\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/Gemini_Generated_Image_x5yyywx5yyywx5yy.png?v=1770299282\" class=\"af-img\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"af-img-wrap\"\u003e\u003cvideo poster=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/Gemini_Generated_Image_x5yyywx5yyywx5yy.png?v=1770299282\" preload=\"metadata\" playsinline=\"\" controls=\"controls\" class=\"af-img\"\u003e\u003csource type=\"video\/quicktime\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/60c75c71626e4e409c45f976ad497ce7.mov\"\u003e\u003csource type=\"video\/mp4\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/60c75c71626e4e409c45f976ad497ce7.mov\"\u003e\u003c\/source\u003e\u003c\/video\u003e\u003c\/div\u003e\n\u003ch3\u003e1. Scrub\u003c\/h3\u003e\n\u003cp\u003eLoosen what wiping can’t remove. The scrub pad applies focused friction to break packed debris free.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"af-step\"\u003e\n\u003cdiv class=\"af-img-wrap\"\u003e\u003cimg alt=\"Washing ball\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/Gemini_Generated_Image_8sxn1w8sxn1w8sxn.png?v=1770299798\" class=\"af-img\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"af-img-wrap\"\u003e\u003cvideo poster=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/Gemini_Generated_Image_8sxn1w8sxn1w8sxn.png?v=1770299798\" preload=\"metadata\" playsinline=\"\" controls=\"controls\" class=\"af-img\"\u003e\u003csource type=\"video\/quicktime\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/40052d60ea544d01bf589309f85e13f3.mov\"\u003e\u003csource type=\"video\/mp4\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/40052d60ea544d01bf589309f85e13f3.mov\"\u003e\u003c\/source\u003e\u003c\/video\u003e\u003c\/div\u003e\n\u003ch3\u003e2. Wash\u003c\/h3\u003e\n\u003cp\u003eRinse grime away. The wet pocket keeps mud off your grips and hands.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"af-step\"\u003e\n\u003cdiv class=\"af-img-wrap\"\u003e\u003cimg alt=\"Drying ball\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/Gemini_Generated_Image_wqabnrwqabnrwqab.jpg?v=1770300553\" class=\"af-img\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003ch3\u003e3. Dry\u003c\/h3\u003e\n\u003cp\u003eRestore clean contact. A dry ball flies true and rolls true.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection style=\"margin-top: 40px;\" class=\"af-card af-card--tech\" id=\"instant-access\"\u003e\n\u003ch2 class=\"af-h2\"\u003eMake it automatic: Instant Access Upgrade\u003c\/h2\u003e\n\u003cp class=\"af-muted\"\u003eStop chasing your towel. Give it a home.\u003c\/p\u003e\n\u003cdiv style=\"justify-content: flex-start; margin: 20px 0;\" class=\"af-pill-module\"\u003e\n\u003cdiv class=\"af-pill\"\u003eGuaranteed Docking\u003c\/div\u003e\n\u003cdiv class=\"af-pill\"\u003eInside Bag Dividers\u003c\/div\u003e\n\u003cdiv class=\"af-pill\"\u003eProtected\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"af-img-wrap\"\u003e\n\u003cdiv style=\"display: grid; grid-template-columns: 1fr; gap: 12px;\" class=\"af-bundle-preview\"\u003e\n\u003cimg alt=\"Magnetic Landing Pad preview\" data-af-bundle-pad-img=\"\" class=\"af-img\" loading=\"lazy\"\u003e \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/Updated_Main_21196650-eeaf-4b5b-a449-9e56e0c587a1.jpg?v=1769716887\" alt=\"The 40 towel bundle preview\" data-af-bundle-towel-img=\"\" class=\"af-img\" loading=\"lazy\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cspan class=\"af-interaction-label\"\u003ePick Bundle Finish\u003c\/span\u003e\n\u003cdiv data-af-bundle-variant-sync=\"\" class=\"af-swatch-row\" role=\"listbox\" aria-label=\"Choose finish for bundle\"\u003e\n\u003cbutton type=\"button\" data-af-bundle-finish=\"Black\" class=\"af-swatch\"\u003e\u003c\/button\u003e \u003cbutton type=\"button\" data-af-bundle-finish=\"Blue\" class=\"af-swatch\"\u003e\u003c\/button\u003e \u003cbutton type=\"button\" data-af-bundle-finish=\"Green\" class=\"af-swatch\"\u003e\u003c\/button\u003e \u003cbutton type=\"button\" data-af-bundle-finish=\"Grey\" class=\"af-swatch\"\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"af-btn-wrap\"\u003e\n\u003cbutton type=\"button\" class=\"af-btn af-btn-primary\" data-af-atc-bundle=\"\"\u003eAdd The 40 + Landing Pad (Instant Access)\u003c\/button\u003e \u003ca class=\"af-btn af-btn-secondary\" href=\"\/products\/magnetic-landing-pad\"\u003eView Pad Details\u003c\/a\u003e\n\u003c\/div\u003e\n\u003cdetails style=\"margin-top: 24px;\" class=\"af-drawer\"\u003e\n\u003csummary\u003eWhy access is the multiplier\u003c\/summary\u003e\n\u003cdiv class=\"af-drawer-body\"\u003eAccess friction kills routines. If the towel doesn’t re-dock to the same spot every time, you stop using it. The Landing Pad creates a guaranteed, steel-core docking point so The 40 is always where your hand expects it.\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c\/section\u003e\n\u003csection class=\"af-grid-2\"\u003e\n\u003cdiv class=\"af-card\"\u003e\n\u003ch2 class=\"af-h2\"\u003eWho it’s for\u003c\/h2\u003e\n\u003cul class=\"af-bullets\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eRiders:\u003c\/strong\u003e center magnet for secure cart attachment.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMuddy Rounds:\u003c\/strong\u003e extra length for deep cleaning.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMax Prep:\u003c\/strong\u003e dedicated zones for wet\/dry.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"af-card\"\u003e\n\u003ch2 class=\"af-h2\"\u003eWho it’s not for\u003c\/h2\u003e\n\u003cul class=\"af-bullets\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eMinimalists:\u003c\/strong\u003e check out the Stubby for a compact carry.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eClip lovers:\u003c\/strong\u003e if you prefer dangly towels, this system isn't for you.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"af-card\"\u003e\n\u003ch2 class=\"af-h2\"\u003eProof \u0026amp; Method\u003c\/h2\u003e\n\u003cdetails class=\"af-drawer\"\u003e\n\u003csummary\u003eWhat we test\u003c\/summary\u003e\n\u003cdiv class=\"af-drawer-body\"\u003eWe test magnet strength (retention), scrub pad effectiveness (cleaning), ease of access (usability), and stitching quality (durability). Reliability beats marketing hype.\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"af-drawer\"\u003e\n\u003csummary\u003eWhy rinse beats smear\u003c\/summary\u003e\n\u003cdiv class=\"af-drawer-body\"\u003eWiping dirt on a dry towel just moves it around. The wet wash pocket rinses debris off the club so you don't transfer mud to your hands or grips.\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"af-drawer\"\u003e\n\u003csummary\u003eWhy docking beats clipping\u003c\/summary\u003e\n\u003cdiv class=\"af-drawer-body\"\u003eClips require two hands or awkward fumbling. Magnetic docking is instant and one-handed, removing friction from your routine so you actually use the towel.\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"af-drawer\"\u003e\n\u003csummary\u003eCare \u0026amp; wash instructions\u003c\/summary\u003e\n\u003cdiv class=\"af-drawer-body\"\u003eWash cold on gentle cycle. Air dry or tumble dry low. Do not use high heat, as it can degrade microfiber performance. Magnet is sealed.\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"af-drawer\"\u003e\n\u003csummary\u003eFull comparison: Stubby vs The 40\u003c\/summary\u003e\n\u003cdiv class=\"af-drawer-body\"\u003e\n\u003ctable class=\"af-compare-table\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth scope=\"col\"\u003eFeature\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eStubby (16×24)\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eThe 40 (16×40)\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eSize\u003c\/th\u003e\n\u003ctd\u003eCompact (16\" x 24\")\u003c\/td\u003e\n\u003ctd\u003eLarge (16\" x 40\")\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eBest for\u003c\/th\u003e\n\u003ctd\u003eWalkers, Fast Routine\u003c\/td\u003e\n\u003ctd\u003eRiders, Muddy Rounds\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eWet\/Dry\u003c\/th\u003e\n\u003ctd\u003eSingle wash pocket\u003c\/td\u003e\n\u003ctd\u003eDual wash pockets\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c\/section\u003e\n\u003csection style=\"display: block;\" id=\"other-options\"\u003e\n\u003cdiv class=\"af-card\"\u003e\n\u003ch2 class=\"af-h2\"\u003eNeed less towel?\u003c\/h2\u003e\n\u003cp class=\"af-muted\"\u003eMeet \"Stubby\" (16x24). Best for walkers and fast play.\u003c\/p\u003e\n\u003cdiv data-af-variant-sync=\"\" class=\"af-hero-interaction\"\u003e\n\u003cdiv class=\"af-img-wrap\"\u003e\u003cimg alt=\"Stubby Magnetic Towel\" class=\"af-img\" data-af-hero-img=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/Updated_Main_Image_2.jpg?v=1769714394\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cspan class=\"af-interaction-label\"\u003eFinish\u003c\/span\u003e\n\u003cdiv role=\"listbox\" class=\"af-swatch-row\"\u003e\n\u003cbutton data-af-finish=\"Black\" class=\"af-swatch\"\u003e\u003c\/button\u003e \u003cbutton data-af-finish=\"Blue\" class=\"af-swatch\"\u003e\u003c\/button\u003e \u003cbutton data-af-finish=\"Augusta Green\" class=\"af-swatch\"\u003e\u003c\/button\u003e \u003cbutton data-af-finish=\"Birdie Blue\" class=\"af-swatch\"\u003e\u003c\/button\u003e \u003cbutton data-af-finish=\"Grey\" class=\"af-swatch\"\u003e\u003c\/button\u003e \u003cbutton data-af-finish=\"Gunmetal Grey\" class=\"af-swatch\"\u003e\u003c\/button\u003e \u003cbutton data-af-finish=\"Red\" class=\"af-swatch\"\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"af-btn-wrap\"\u003e\u003cbutton data-af-atc-towel=\"\" class=\"af-btn af-btn-secondary\" type=\"button\"\u003eAdd Stubby Only\u003c\/button\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"af-card\"\u003e\n\u003ch2 class=\"af-h2\"\u003eRun both?\u003c\/h2\u003e\n\u003cp class=\"af-muted\"\u003eStubby for dirt. The 40 for hands\/grips.\u003c\/p\u003e\n\u003cdiv style=\"margin-top: 14px;\"\u003e\n\u003cdiv data-af-both-stubby-sync=\"\" style=\"margin-bottom: 24px;\"\u003e\n\u003cdiv class=\"af-img-wrap\"\u003e\u003cimg class=\"af-img\" data-af-both-stubby-img=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/2026_Amazon_Main_Image.jpg?v=1769714394\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"af-swatch-row\"\u003e\n\u003cbutton data-af-finish-both-stubby=\"Black\" class=\"af-swatch\"\u003e\u003c\/button\u003e\u003cbutton data-af-finish-both-stubby=\"Blue\" class=\"af-swatch\"\u003e\u003c\/button\u003e\u003cbutton data-af-finish-both-stubby=\"Augusta Green\" class=\"af-swatch\"\u003e\u003c\/button\u003e\u003cbutton data-af-finish-both-stubby=\"Birdie Blue\" class=\"af-swatch\"\u003e\u003c\/button\u003e\u003cbutton data-af-finish-both-stubby=\"Grey\" class=\"af-swatch\"\u003e\u003c\/button\u003e\u003cbutton data-af-finish-both-stubby=\"Gunmetal Grey\" class=\"af-swatch\"\u003e\u003c\/button\u003e\u003cbutton data-af-finish-both-stubby=\"Red\" class=\"af-swatch\"\u003e\u003c\/button\u003e\u003cbr\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv data-af-both-40-sync=\"\"\u003e\n\u003cdiv class=\"af-img-wrap\"\u003e\u003cimg class=\"af-img\" data-af-both-40-img=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/mAIN_IMAGE_UPDATE_28.jpg?v=1767904750\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"af-swatch-row\"\u003e\n\u003cbutton data-af-finish-both-40=\"Black\" class=\"af-swatch\"\u003e\u003c\/button\u003e\u003cbutton data-af-finish-both-40=\"Blue\" class=\"af-swatch\"\u003e\u003c\/button\u003e\u003cbutton data-af-finish-both-40=\"Green\" class=\"af-swatch\"\u003e\u003c\/button\u003e\u003cbutton data-af-finish-both-40=\"Grey\" class=\"af-swatch\"\u003e\u003c\/button\u003e\u003cbr\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"margin-top: 14px;\" class=\"af-btn-wrap\"\u003e\u003cbutton data-af-atc-both=\"\" class=\"af-btn af-btn-secondary\" type=\"button\"\u003eAdd Both Towels\u003c\/button\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"af-card\" style=\"text-align: center;\"\u003e\n\u003ch2 class=\"af-h2\"\u003eClean contact. Reliable feedback.\u003c\/h2\u003e\n\u003cp class=\"af-muted\"\u003eStart with The 40. Upgrade your system.\u003c\/p\u003e\n\u003cdiv class=\"af-btn-wrap\"\u003e\n\u003cbutton data-af-atc=\"\" type=\"button\" class=\"af-btn af-btn-primary\"\u003eAdd The 40 to cart\u003c\/button\u003e \u003ca href=\"\/pages\/our-golf-gear-testing-design-standards\" class=\"af-btn af-btn-secondary\"\u003eTesting Standards\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"af-standards-citation\"\u003e\n\u003ch3 style=\"margin: 0 0 .75rem 0; font-size: 1.15rem; font-weight: 900; color: #ffffff;\"\u003eEvaluated Against Published Testing Standards\u003c\/h3\u003e\n\u003cp style=\"margin: 0 0 1rem 0; font-size: 1.02rem; color: #d1d5db; line-height: 1.6;\"\u003eThis product is evaluated using Aiming Fluid Golf’s published magnetic gear testing framework.\u003c\/p\u003e\n\u003cdiv class=\"af-btn-wrap\"\u003e\u003ca href=\"\/pages\/our-golf-gear-testing-design-standards\" class=\"af-btn af-btn-secondary\"\u003eView Standards\u003c\/a\u003e\u003c\/div\u003e\n\u003c\/section\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Does The 40 drag on the ground?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Because the magnet is centered, it hangs balanced (20 inches on each side when folded over a club). On most cart bags and stand bags, it hangs perfectly. If you carry a very low-slung Sunday bag, check the Stubby.\"}},{\"@type\":\"Question\",\"name\":\"Why dual wash pockets?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"So you can use one pocket for aggressive mud cleaning and the other for a quick ball rinse, or just keep one side entirely dry. It’s about separation.\"}},{\"@type\":\"Question\",\"name\":\"Where is the magnet?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Dead center. This allows the towel to drape evenly over a club or stick flat to the Landing Pad without twisting.\"}},{\"@type\":\"Question\",\"name\":\"Do I need a Landing Pad?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"It is highly recommended for The 40 to ensure a secure, high docking point on your bag, keeping the towel off the ground.\"}},{\"@type\":\"Question\",\"name\":\"Can I wash it?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. Wash cold on gentle\/low spin and air dry. Avoid high heat; hot dryers can degrade microfiber performance over time.\"}}]}\u003c\/script\u003e \u003cscript\u003e\n(function(){\n  const finishToImage40 = {\"Green\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/mAIN_IMAGE_UPDATE_29.jpg?v=1767904750\",\"Grey\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/mAIN_IMAGE_UPDATE_26.jpg?v=1764811297\",\"Blue\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/mAIN_IMAGE_UPDATE_27.jpg?v=1767904750\",\"Black\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/mAIN_IMAGE_UPDATE_28.jpg?v=1767904750\"};\n  const finishToVariantId40 = {\"Green\": 40882080153643,\"Grey\": 40882080088107,\"Blue\": 40882080055339,\"Black\": 40882080022571};\n  \n  const finishToImageStubby = {\"Red\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/Updated_Main_Image_2.jpg?v=1769714394\",\"Birdie Blue\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/2026_Amazon_Main_Image_4a14208d-a588-4d0c-8257-be4c6f929d2c.jpg?v=1769714394\",\"Gunmetal Grey\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/2026_Main_Image_732dcd44-f78d-458d-bd41-2e148e5b7af7.jpg?v=1769714394\",\"Grey\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/2026_amazon_Main_Image_a81807c5-6f77-44c4-a531-5cf6b47a5bbd.jpg?v=1769714394\",\"Augusta Green\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/2026_Amazon_Main_Image_128423e7-67ac-4508-82b8-2b1076ec7e3e.jpg?v=1769714394\",\"Blue\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/2026_main_image.jpg?v=1769714394\",\"Black\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/2026_Amazon_Main_Image.jpg?v=1769714394\"};\n  const finishToVariantIdStubby = {\"Red\": 40987341815851,\"Birdie Blue\": 42663187546155,\"Gunmetal Grey\": 41151790088235,\"Grey\": 40882080743467,\"Augusta Green\": 40882080776235,\"Blue\": 40882080710699,\"Black\": 40882080677931};\n\n  \/\/ Bundle Map (The 40 + Pad)\n  const bundleMap = {\n    \"Grey\": { img: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/Updated_Main_70852911-336a-4f52-8952-ad7a71331ee4.jpg?v=1769717226\", id: 42694796181547 },\n    \"Green\": { img: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/Updated_Main_a9bf27d1-982b-4134-838c-4ba64802284c.jpg?v=1769717110\", id: 42694796148779 },\n    \"Blue\": { img: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/Updated_Main_5dc2ca4f-7081-4422-9bb5-ab1ed1d87985.jpg?v=1769717255\", id: 42694796116011 },\n    \"Black\": { img: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/Updated_Main_21196650-eeaf-4b5b-a449-9e56e0c587a1.jpg?v=1769716887\", id: 42694796214315 }\n  };\n\n  const landingPadHandle = \"magnetic-landing-pad\";\n  const module = document.querySelector('[data-af-variant-sync]');\n  if(!module) return;\n  \n  const status = module.querySelector('[data-af-status]');\n  const swatches = Array.from(module.querySelectorAll('[data-af-finish]'));\n  const heroImg = module.querySelector('[data-af-hero-img]');\n  const towelOnlyBtns = Array.from(document.querySelectorAll('[data-af-atc]'));\n  \n  const bundleSwatches = Array.from(document.querySelectorAll('[data-af-bundle-finish]'));\n  const bundleTowelImg = document.querySelector('[data-af-bundle-towel-img]');\n  const bundlePadImg = document.querySelector('[data-af-bundle-pad-img]');\n  const bundleBtns = Array.from(document.querySelectorAll('[data-af-atc-bundle]'));\n  const bundleStatus = document.querySelector('[data-af-bundle-status]');\n  \n  const bothStubbySwatches = Array.from(document.querySelectorAll('[data-af-finish-both-stubby]'));\n  const both40Swatches = Array.from(document.querySelectorAll('[data-af-finish-both-40]'));\n  const bothStubbyImg = document.querySelector('[data-af-both-stubby-img]');\n  const both40Img = document.querySelector('[data-af-both-40-img]');\n  const atcBothBtn = document.querySelector('[data-af-atc-both]');\n  const statusBoth = document.querySelector('[data-af-both-status]');\n  \n  \/\/ TOWEL ONLY (STUBBY DOWNSELL)\n  const towelOnlySwatches = Array.from(document.querySelectorAll('[data-af-finish]')); \/\/ Reuse generic selector if unique ID not present\n  const atcTowelBtn = document.querySelector('[data-af-atc-towel]');\n  \n  let selectedFinish40 = 'Black';\n  let selectedBundleFinish = 'Black';\n  let selectedBothStubbyFinish = 'Black';\n  let selectedBoth40Finish = 'Black';\n  \n  function setStatus(msg){ if(status) status.textContent = msg; }\n  function setBundleStatus(msg){ if(bundleStatus) bundleStatus.textContent = msg; }\n  \n  \/\/ 1. NATIVE SYNC\n  const variantSelect = document.querySelector('select[name=\"id\"]');\n  function setVariantByFinish(finishLabel){\n    if(!variantSelect) return;\n    const id = finishToVariantId40[finishLabel];\n    if(id){\n      variantSelect.value = id;\n      variantSelect.dispatchEvent(new Event('change', { bubbles:true }));\n    }\n  }\n\n  \/\/ 2. HERO LOGIC (The 40)\n  function updateMainHero(finishLabel){\n    selectedFinish40 = finishLabel;\n    swatches.forEach(btn =\u003e btn.setAttribute('aria-selected', btn.getAttribute('data-af-finish') === finishLabel ? 'true' : 'false'));\n    if(heroImg \u0026\u0026 finishToImage40[finishLabel]) heroImg.src = finishToImage40[finishLabel];\n    setVariantByFinish(finishLabel);\n    setStatus('Selected: ' + finishLabel);\n  }\n  swatches.forEach(btn =\u003e btn.addEventListener('click', () =\u003e updateMainHero(btn.getAttribute('data-af-finish'))));\n\n  \/\/ 3. BUNDLE LOGIC\n  bundleSwatches.forEach(btn =\u003e btn.addEventListener('click', () =\u003e {\n    const f = btn.getAttribute('data-af-bundle-finish');\n    selectedBundleFinish = f;\n    bundleSwatches.forEach(b =\u003e b.setAttribute('aria-selected', b.getAttribute('data-af-bundle-finish') === f ? 'true' : 'false'));\n    if(bundleMap[f] \u0026\u0026 bundleTowelImg) bundleTowelImg.src = bundleMap[f].img;\n  }));\n\n  let cachedPadId = null;\n  async function getPadId(){\n    if(cachedPadId) return cachedPadId;\n    const res = await fetch('\/products\/' + landingPadHandle + '.js');\n    const data = await res.json();\n    cachedPadId = data.variants[0].id;\n    if(bundlePadImg \u0026\u0026 data.featured_image) bundlePadImg.src = data.featured_image;\n    return cachedPadId;\n  }\n\n  bundleBtns.forEach(b =\u003e b.addEventListener('click', async () =\u003e {\n    setBundleStatus('Adding...');\n    try {\n        const padId = await getPadId();\n        const towelId = bundleMap[selectedBundleFinish].id;\n        await addToCart([{ id: towelId, quantity: 1 }, { id: padId, quantity: 1 }], bundleStatus);\n    } catch(e){ setBundleStatus(\"Error adding.\"); }\n  }));\n\n  \/\/ 4. BOTH SYSTEM LOGIC\n  bothStubbySwatches.forEach(btn =\u003e btn.addEventListener('click', () =\u003e {\n    const f = btn.getAttribute('data-af-finish-both-stubby');\n    selectedBothStubbyFinish = f;\n    bothStubbySwatches.forEach(b =\u003e b.setAttribute('aria-selected', b.getAttribute('data-af-finish-both-stubby') === f ? 'true' : 'false'));\n    if(bothStubbyImg \u0026\u0026 finishToImageStubby[f]) bothStubbyImg.src = finishToImageStubby[f];\n  }));\n\n  both40Swatches.forEach(btn =\u003e btn.addEventListener('click', () =\u003e {\n    const f = btn.getAttribute('data-af-finish-both-40');\n    selectedBoth40Finish = f;\n    both40Swatches.forEach(b =\u003e b.setAttribute('aria-selected', b.getAttribute('data-af-finish-both-40') === f ? 'true' : 'false'));\n    if(both40Img \u0026\u0026 finishToImage40[f]) both40Img.src = finishToImage40[f];\n  }));\n\n  if(atcBothBtn){\n    atcBothBtn.addEventListener('click', async () =\u003e {\n        if(statusBoth) statusBoth.textContent = \"Adding...\";\n        const id40 = finishToVariantId40[selectedBoth40Finish];\n        const idStubby = finishToVariantIdStubby[selectedBothStubbyFinish];\n        if(!id40 || !idStubby){\n            if(statusBoth) statusBoth.textContent = \"Error: Invalid selection.\";\n            return;\n        }\n        await addToCart([{ id: id40, quantity: 1 }, { id: idStubby, quantity: 1 }], statusBoth);\n    });\n  }\n\n  \/\/ 5. STUBBY ONLY DOWNSELL LOGIC\n  \/\/ Re-using the Stubby Image\/ID map above. We need swatches for this section.\n  \/\/ Assuming the HTML structure uses similar data attributes or reuse existing ones if unique.\n  \/\/ The provided HTML reused `data-af-finish` which conflicts with hero. \n  \/\/ I'll add logic to handle the Stubby Downsell specifically if elements exist.\n  const stubbyDownsellSwatches = document.querySelectorAll('#other-options [data-af-finish]'); \n  let selectedStubbyDownsell = 'Black';\n  \n  if(stubbyDownsellSwatches.length){\n      stubbyDownsellSwatches.forEach(btn =\u003e {\n          btn.addEventListener('click', () =\u003e {\n             const f = btn.getAttribute('data-af-finish') || 'Black'; \/\/ Fallback\n             selectedStubbyDownsell = f;\n             \/\/ Visual update just for this section\n             stubbyDownsellSwatches.forEach(b =\u003e b.setAttribute('aria-selected', b.getAttribute('data-af-finish') === f ? 'true' : 'false'));\n             const img = document.querySelector('#other-options [data-af-hero-img]'); \/\/ Reusing class\/attr\n             if(img \u0026\u0026 finishToImageStubby[f]) img.src = finishToImageStubby[f];\n          });\n      });\n  }\n  \n  if(atcTowelBtn){\n      atcTowelBtn.addEventListener('click', async () =\u003e {\n          const id = finishToVariantIdStubby[selectedStubbyDownsell];\n          if(id) await addToCart([{ id: id, quantity: 1 }]);\n      });\n  }\n\n\n  \/\/ 6. GLOBAL ATC HELPER\n  async function addToCart(items, statusEl){\n    try{\n        const res = await fetch('\/cart\/add.js', {\n            method: 'POST',\n            headers: { 'Content-Type': 'application\/json' },\n            body: JSON.stringify({ items })\n        });\n        if(!res.ok) throw new Error();\n        window.location.href = '\/cart';\n    } catch(e){\n        if(statusEl) statusEl.textContent = \"Add failed.\";\n    }\n  }\n\n  \/\/ 7. HERO ATC\n  towelOnlyBtns.forEach(b =\u003e b.addEventListener('click', async () =\u003e {\n      \/\/ Main hero is The 40\n      const id = finishToVariantId40[selectedFinish40];\n      if(id) await addToCart([{ id: id, quantity: 1 }]);\n  }));\n\n  \/\/ Init\n  updateMainHero('Black');\n  if(bundleSwatches[0]) bundleSwatches[0].click(); \n  if(both40Swatches[0]) both40Swatches[0].click();\n  if(bothStubbySwatches[0]) bothStubbySwatches[0].click();\n  getPadId().catch(()=\u003e{});\n\n})();\n\u003c\/script\u003e\n\u003c\/div\u003e\n\u003c!-- AUTHORITY BRIDGE: Why Magnetic Towels Fall Off --\u003e\n\u003csection style=\"margin-top: 40px;\" class=\"af-card\"\u003e\n\u003ch3 style=\"margin-top: 0; color: #fff;\"\u003eWhy Magnetic Towels Fall Off (It’s Physics)\u003c\/h3\u003e\n\u003cp style=\"color: var(--text-muted); max-width: 700px;\"\u003eIf your magnetic golf towel keeps dropping off the cart rail, it’s not bad luck. Round rails create a geometry mismatch, vibration creates shear force, and aluminum frames kill magnetic hold. See the full breakdown.\u003c\/p\u003e\n\u003cdiv class=\"af-btn-wrap\"\u003e\u003ca class=\"af-btn af-btn-secondary\" href=\"\/pages\/magnetic-golf-towel-that-doesnt-fall-off\"\u003e Read the Full Explanation \u003c\/a\u003e\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c\/div\u003e","brand":"Aiming Fluid Golf","offers":[{"title":"Black","offer_id":42152555020373,"sku":"AFMLT2-B","price":39.69,"currency_code":"USD","in_stock":true},{"title":"Blue","offer_id":42152555053141,"sku":"AFMLT2-BL","price":39.69,"currency_code":"USD","in_stock":true},{"title":"Grey","offer_id":42152555085909,"sku":"AFMLT2-G","price":39.69,"currency_code":"USD","in_stock":true},{"title":"Green","offer_id":42152555118677,"sku":"AFMLT2-GR","price":39.69,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0631\/8142\/2677\/files\/mAIN_IMAGE_UPDATE_26.jpg?v=1771357527","url":"https:\/\/themodestmulligan.com\/products\/magna-anchor%e2%84%a2-magnetic-golf-towel-the-40-16-40","provider":"The Modest Mulligan Golf Co.","version":"1.0","type":"link"}